您的位置:首页 > 理论基础 > 数据结构算法

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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: