From: Luis Azedo Date: Thu, 12 Jan 2017 14:37:18 +0000 (-0600) Subject: [mod_sofia] FS-9940 fix finding a-leg parameter X-Git-Tag: v1.8.0~918^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=52e1785d947c8798de72457003660c05e2240651;p=thirdparty%2Ffreeswitch.git [mod_sofia] FS-9940 fix finding a-leg parameter --- diff --git a/src/mod/endpoints/mod_sofia/sofia.c b/src/mod/endpoints/mod_sofia/sofia.c index baff7c1045..d958de7046 100644 --- a/src/mod/endpoints/mod_sofia/sofia.c +++ b/src/mod/endpoints/mod_sofia/sofia.c @@ -11046,12 +11046,12 @@ void sofia_handle_sip_i_invite(switch_core_session_t *session, nua_t *nua, sofia "%sanswer,sofia_sla:%s", codec_str, b_private->uuid); } } else { - char *a_leg = NULL; + char const *a_leg = NULL; switch_event_t *event = NULL; if (sip->sip_replaces && sip->sip_replaces->rp_params && sip->sip_replaces->rp_call_id) { - a_leg = switch_find_parameter(*(sip->sip_replaces->rp_params), "a-leg", switch_core_session_get_pool(session)); + a_leg = msg_header_find_param(sip->sip_replaces->rp_common, "a-leg"); } - if(a_leg) { + if(a_leg && switch_true(a_leg)) { switch_channel_mark_hold(b_channel, SWITCH_FALSE); tech_pvt->caller_profile->destination_number = switch_core_sprintf(tech_pvt->caller_profile->pool, "answer,intercept:%s", sip->sip_replaces->rp_call_id); switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "call %s picked up on a-leg\n", sip->sip_replaces->rp_call_id);