From 513fb792c867d3791fbd258151ab32c66c6c6249 Mon Sep 17 00:00:00 2001 From: Nanang Izzuddin Date: Tue, 28 Sep 2010 10:48:48 +0000 Subject: Close #1137: added field reg_hdr_list into pjsua_acc_config to specify custom headers for REGISTER requests of the account. git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3326 74dad513-b988-da41-8d7b-12977e46ad98 --- pjsip/include/pjsua-lib/pjsua.h | 6 ++++++ pjsip/src/pjsua-lib/pjsua_acc.c | 14 ++++++++++++++ pjsip/src/pjsua-lib/pjsua_core.c | 1 + 3 files changed, 21 insertions(+) (limited to 'pjsip') diff --git a/pjsip/include/pjsua-lib/pjsua.h b/pjsip/include/pjsua-lib/pjsua.h index 10e1b0fe..dc013c0e 100644 --- a/pjsip/include/pjsua-lib/pjsua.h +++ b/pjsip/include/pjsua-lib/pjsua.h @@ -2078,6 +2078,12 @@ typedef struct pjsua_acc_config */ pj_str_t reg_uri; + /** + * The optional custom SIP headers to be put in the registration + * request. + */ + pjsip_hdr reg_hdr_list; + /** * Subscribe to message waiting indication events (RFC 3842). * diff --git a/pjsip/src/pjsua-lib/pjsua_acc.c b/pjsip/src/pjsua-lib/pjsua_acc.c index fdd37a51..027b88de 100644 --- a/pjsip/src/pjsua-lib/pjsua_acc.c +++ b/pjsip/src/pjsua-lib/pjsua_acc.c @@ -91,6 +91,17 @@ PJ_DEF(void) pjsua_acc_config_dup( pj_pool_t *pool, pjsip_cred_dup(pool, &dst->cred_info[i], &src->cred_info[i]); } + pj_list_init(&dst->reg_hdr_list); + if (!pj_list_empty(&src->reg_hdr_list)) { + const pjsip_hdr *hdr; + + hdr = src->reg_hdr_list.next; + while (hdr != &src->reg_hdr_list) { + pj_list_push_back(&dst->reg_hdr_list, pjsip_hdr_clone(pool, hdr)); + hdr = hdr->next; + } + } + dst->ka_interval = src->ka_interval; pj_strdup(pool, &dst->ka_data, &src->ka_data); } @@ -1657,6 +1668,9 @@ static pj_status_t pjsua_regc_init(int acc_id) pjsip_regc_set_route_set( acc->regc, &route_set ); } + /* Add custom request headers specified in the account config */ + pjsip_regc_add_headers(acc->regc, &acc->cfg.reg_hdr_list); + /* Add other request headers. */ if (pjsua_var.ua_cfg.user_agent.slen) { pjsip_hdr hdr_list; diff --git a/pjsip/src/pjsua-lib/pjsua_core.c b/pjsip/src/pjsua-lib/pjsua_core.c index 0dcd0f2a..4adc191b 100644 --- a/pjsip/src/pjsua-lib/pjsua_core.c +++ b/pjsip/src/pjsua-lib/pjsua_core.c @@ -188,6 +188,7 @@ PJ_DEF(void) pjsua_acc_config_default(pjsua_acc_config *cfg) #if defined(PJMEDIA_STREAM_ENABLE_KA) && PJMEDIA_STREAM_ENABLE_KA!=0 cfg->use_stream_ka = (PJMEDIA_STREAM_ENABLE_KA != 0); #endif + pj_list_init(&cfg->reg_hdr_list); } PJ_DEF(void) pjsua_buddy_config_default(pjsua_buddy_config *cfg) -- cgit v1.2.3