summaryrefslogtreecommitdiff
path: root/pjsip/src/pjsua-lib/pjsua_core.c
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2008-09-24 10:10:15 +0000
committerBenny Prijono <bennylp@teluu.com>2008-09-24 10:10:15 +0000
commitc2476cfffd0fa7f90ac72295de24ba6dea4ea161 (patch)
tree0a76d346be96d75d14e4ce627f689f76c1914a07 /pjsip/src/pjsua-lib/pjsua_core.c
parent8fa5079ad7ee39493cd3231de2030335ad56eccc (diff)
Ticket #635: Disconnect the other call leg when multiple 2xx/OK responses to INVITE are received due to forking
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2315 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip/src/pjsua-lib/pjsua_core.c')
-rw-r--r--pjsip/src/pjsua-lib/pjsua_core.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/pjsip/src/pjsua-lib/pjsua_core.c b/pjsip/src/pjsua-lib/pjsua_core.c
index 40830d73..650217a2 100644
--- a/pjsip/src/pjsua-lib/pjsua_core.c
+++ b/pjsip/src/pjsua-lib/pjsua_core.c
@@ -96,6 +96,7 @@ PJ_DEF(void) pjsua_config_default(pjsua_config *cfg)
cfg->use_srtp = PJSUA_DEFAULT_USE_SRTP;
cfg->srtp_secure_signaling = PJSUA_DEFAULT_SRTP_SECURE_SIGNALING;
#endif
+ cfg->hangup_forked_call = PJ_TRUE;
}
PJ_DEF(void) pjsua_config_dup(pj_pool_t *pool,
@@ -622,6 +623,7 @@ PJ_DEF(pj_status_t) pjsua_init( const pjsua_config *ua_cfg,
pjsua_config default_cfg;
pjsua_media_config default_media_cfg;
const pj_str_t STR_OPTIONS = { "OPTIONS", 7 };
+ pjsip_ua_init_param ua_init_param;
pj_status_t status;
@@ -694,7 +696,11 @@ PJ_DEF(pj_status_t) pjsua_init( const pjsua_config *ua_cfg,
/* Initialize UA layer module: */
- status = pjsip_ua_init_module( pjsua_var.endpt, NULL );
+ pj_bzero(&ua_init_param, sizeof(ua_init_param));
+ if (ua_cfg->hangup_forked_call) {
+ ua_init_param.on_dlg_forked = &on_dlg_forked;
+ }
+ status = pjsip_ua_init_module( pjsua_var.endpt, &ua_init_param);
PJ_ASSERT_RETURN(status == PJ_SUCCESS, status);