doubango sipstack 数据结构
2015-06-29 17:16
555 查看
代码位置
typedef struct tsip_stack_s
{
TSK_DECLARE_RUNNABLE;
TSK_DECLARE_SAFEOBJ;
tsk_timer_manager_handle_t* timer_mgr_global;
tsk_bool_t started;
tsip_stack_callback_f callback;
/* === Identity === */
struct{
char* display_name;
tsip_uri_t *impu;
tsip_uri_t *preferred;
char *impi;
char *password;
} identity;
/* === SigComp === */
struct{
tsip_sigcomp_handle_t* handle;
unsigned dms;
unsigned sms;
unsigned cpb;
tsk_bool_t sip_dict;
tsk_bool_t pres_dict;
} sigcomp;
/* === Network === */
struct{
tsip_stack_mode_t mode;
char *local_ip[TSIP_TRANSPORT_IDX_MAX];
tnet_port_t local_port[TSIP_TRANSPORT_IDX_MAX];
char *proxy_cscf[TSIP_TRANSPORT_IDX_MAX];
tnet_port_t proxy_cscf_port[TSIP_TRANSPORT_IDX_MAX];
tnet_socket_type_t proxy_cscf_type[TSIP_TRANSPORT_IDX_MAX];
tnet_socket_type_t transport_types[TSIP_TRANSPORT_IDX_MAX];
int32_t transport_idx_default;
tsip_uri_t *realm;
//! IP adddress and port to use as AOR (user-defined)
struct{
char* ip[TSIP_TRANSPORT_IDX_MAX];
tnet_port_t port[TSIP_TRANSPORT_IDX_MAX];
} aor;
tsk_bool_t discovery_naptr;
tsk_bool_t discovery_dhcp;
tsk_size_t max_fds;
} network;
/* === Security === */
struct{
char* secagree_mech;
tsk_bool_t earlyIMS;
operator_id_t operator_id;
amf_t amf;
/* IPSec */
struct{
char* alg;
char* ealg;
char* mode;
char* protocol;
} ipsec;
tsk_bool_t enable_secagree_ipsec;
/* TLS */
struct {
char* ca;
char* pbk;
char* pvk;
tsk_bool_t verify;
}tls;
tsk_bool_t enable_secagree_tls;
} security;
tsip_uris_L_t* paths;
tsip_uris_L_t* service_routes;
tsip_uris_L_t* associated_uris;
/* DNS context */
tnet_dns_ctx_t *dns_ctx;
/* NAT Traversal context */
struct {
// STUN
struct{
char* ip;
tnet_port_t port;
char* login;
char* pwd;
tsk_bool_t enabled;
} stun;
struct
tnet_nat_ctx_s* ctx;
} natt;
/* DHCP context */
/* QoS */
/* Internals. */
//tsk_timer_manager_handle_t* timer_mgr;
tsip_timers_t timers;
tsip_ssessions_L_t *ssessions;
tsk_params_L_t *headers;
const
void* userdata;
/* Layers */
struct tsip_dialog_layer_s *layer_dialog;
struct tsip_transac_layer_s *layer_transac;
struct tsip_transport_layer_s *layer_transport;
}
tsip_stack_t;
typedef struct tsip_stack_s
{
TSK_DECLARE_RUNNABLE;
TSK_DECLARE_SAFEOBJ;
tsk_timer_manager_handle_t* timer_mgr_global;
tsk_bool_t started;
tsip_stack_callback_f callback;
/* === Identity === */
struct{
char* display_name;
tsip_uri_t *impu;
tsip_uri_t *preferred;
char *impi;
char *password;
} identity;
/* === SigComp === */
struct{
tsip_sigcomp_handle_t* handle;
unsigned dms;
unsigned sms;
unsigned cpb;
tsk_bool_t sip_dict;
tsk_bool_t pres_dict;
} sigcomp;
/* === Network === */
struct{
tsip_stack_mode_t mode;
char *local_ip[TSIP_TRANSPORT_IDX_MAX];
tnet_port_t local_port[TSIP_TRANSPORT_IDX_MAX];
char *proxy_cscf[TSIP_TRANSPORT_IDX_MAX];
tnet_port_t proxy_cscf_port[TSIP_TRANSPORT_IDX_MAX];
tnet_socket_type_t proxy_cscf_type[TSIP_TRANSPORT_IDX_MAX];
tnet_socket_type_t transport_types[TSIP_TRANSPORT_IDX_MAX];
int32_t transport_idx_default;
tsip_uri_t *realm;
//! IP adddress and port to use as AOR (user-defined)
struct{
char* ip[TSIP_TRANSPORT_IDX_MAX];
tnet_port_t port[TSIP_TRANSPORT_IDX_MAX];
} aor;
tsk_bool_t discovery_naptr;
tsk_bool_t discovery_dhcp;
tsk_size_t max_fds;
} network;
/* === Security === */
struct{
char* secagree_mech;
tsk_bool_t earlyIMS;
operator_id_t operator_id;
amf_t amf;
/* IPSec */
struct{
char* alg;
char* ealg;
char* mode;
char* protocol;
} ipsec;
tsk_bool_t enable_secagree_ipsec;
/* TLS */
struct {
char* ca;
char* pbk;
char* pvk;
tsk_bool_t verify;
}tls;
tsk_bool_t enable_secagree_tls;
} security;
tsip_uris_L_t* paths;
tsip_uris_L_t* service_routes;
tsip_uris_L_t* associated_uris;
/* DNS context */
tnet_dns_ctx_t *dns_ctx;
/* NAT Traversal context */
struct {
// STUN
struct{
char* ip;
tnet_port_t port;
char* login;
char* pwd;
tsk_bool_t enabled;
} stun;
struct
tnet_nat_ctx_s* ctx;
} natt;
/* DHCP context */
/* QoS */
/* Internals. */
//tsk_timer_manager_handle_t* timer_mgr;
tsip_timers_t timers;
tsip_ssessions_L_t *ssessions;
tsk_params_L_t *headers;
const
void* userdata;
/* Layers */
struct tsip_dialog_layer_s *layer_dialog;
struct tsip_transac_layer_s *layer_transac;
struct tsip_transport_layer_s *layer_transport;
}
tsip_stack_t;
相关文章推荐
- 开源hsm代码学习笔记---数据结构的定义
- 排序算法之归并排序 分类: C/C++ 数据结构与算法 2015-06-29 16:46 190人阅读 评论(0) 收藏
- 简单数据结构之二叉树(C++实现)
- 数据结构和算法经典文章汇总
- 数据结构:回溯法与树的遍历
- Java数据结构-栈(2)
- Python数据结构之序列
- 单链表的基本操作
- 20150628菜鸟对数据结构的 疑问
- 数据结构的基本内容
- mongodb数据结构学习1--增删改查
- 数据结构与算法 介绍(笔记)
- 图示化各种数据结构和算法是怎么实现的
- acm 常用数据结构与算法专题(未分类均放于此)
- Redis数据结构分析
- 数据结构--顺序循环队列和链式队列
- 数据结构——二叉树的遍历
- 【采摘】CSDN谚语
- 数据结构--二进制转化为十进制的实现
- 数据结构算法代码实现——树与二叉树(一)