doubango sipstack 数据结构

来源:互联网 发布:邻家女孩服饰淘宝网 编辑:程序博客网 时间:2024/06/07 00:02

代码位置          


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;

structtnet_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;

constvoid* 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;

0 0