From: Anthony Minessale Date: Sat, 14 Mar 2009 14:14:51 +0000 (+0000) Subject: fix origination_privacy var X-Git-Tag: v1.0.4~1528 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8b6aeebdbc925c0a198405b1b819c5770fcd11e5;p=thirdparty%2Ffreeswitch.git fix origination_privacy var git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@12603 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- diff --git a/src/switch_ivr_originate.c b/src/switch_ivr_originate.c index c6bca07a73..d9e267364e 100644 --- a/src/switch_ivr_originate.c +++ b/src/switch_ivr_originate.c @@ -1305,7 +1305,8 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess char *vdata; end = NULL; chan_type = peer_names[i]; - + const char *privacy_str = NULL; + while (chan_type && *chan_type && *chan_type == ' ') { chan_type++; } @@ -1432,28 +1433,28 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess } else { strncpy(tmp, var_begin, strlen(var_begin)); } - + + switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, "origination_privacy", tmp); + } + + switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, "originate_early_media", oglobals.early_ok ? "true" : "false"); + + if ((privacy_str = switch_event_get_header(var_event, "origination_privacy"))) { new_profile->flags = SWITCH_CPF_NONE; - - if (switch_stristr("screen", tmp)) { + + if (switch_stristr("screen", privacy_str)) { switch_set_flag(new_profile, SWITCH_CPF_SCREEN); } - if (switch_stristr("hide_name", tmp)) { + if (switch_stristr("hide_name", privacy_str)) { switch_set_flag(new_profile, SWITCH_CPF_HIDE_NAME); } - if (switch_stristr("hide_number", tmp)) { + if (switch_stristr("hide_number", privacy_str)) { switch_set_flag(new_profile, SWITCH_CPF_HIDE_NUMBER); } - - new_profile->caller_id_name = switch_core_strdup(new_profile->pool, tmp); - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, "origination_privacy", tmp); } - switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, "originate_early_media", oglobals.early_ok ? "true" : "false"); - - if ((reason = switch_core_session_outgoing_channel(oglobals.session, var_event, chan_type, new_profile, &new_session, &pool, myflags)) != SWITCH_CAUSE_SUCCESS) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Cannot create outgoing channel of type [%s] cause: [%s]\n",