Merge pull request #241 in FS/freeswitch from ~LAZEDO/freeswitch-fs-7463:FS-7463 to master

* commit 'b33563138b0953693dbe0d32a439c533ea8b4316':
  conditionally allow intercept of replaced call-id when processing replaces header
This commit is contained in:
Anthony Minessale II 2015-05-14 11:37:51 -05:00
commit c2c04632f3
1 changed files with 8 additions and 1 deletions

View File

@ -9885,7 +9885,14 @@ void sofia_handle_sip_i_invite(switch_core_session_t *session, nua_t *nua, sofia
"%sanswer,sofia_sla:%s", codec_str, b_private->uuid); "%sanswer,sofia_sla:%s", codec_str, b_private->uuid);
} }
} else { } else {
if (!zstr(bridge_uuid)) { char* pickup = NULL;
if(sip->sip_replaces->rq_url->url_params && sip->sip_replaces->rp_call_id) {
pickup = switch_find_parameter(sip->sip_replaces->rq_url->url_params,"pickup", switch_core_session_get_pool(session));
}
if(pickup) {
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);
} else if (!zstr(bridge_uuid)) {
switch_channel_mark_hold(b_channel, SWITCH_FALSE); 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", bridge_uuid); tech_pvt->caller_profile->destination_number = switch_core_sprintf(tech_pvt->caller_profile->pool, "answer,intercept:%s", bridge_uuid);
} else { } else {