From 8b6aeebdbc925c0a198405b1b819c5770fcd11e5 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Sat, 14 Mar 2009 14:14:51 +0000 Subject: [PATCH] fix origination_privacy var git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@12603 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/switch_ivr_originate.c | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) 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)); } - - new_profile->flags = SWITCH_CPF_NONE; - - if (switch_stristr("screen", tmp)) { - switch_set_flag(new_profile, SWITCH_CPF_SCREEN); - } - - if (switch_stristr("hide_name", tmp)) { - switch_set_flag(new_profile, SWITCH_CPF_HIDE_NAME); - } - - if (switch_stristr("hide_number", tmp)) { - 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 ((privacy_str = switch_event_get_header(var_event, "origination_privacy"))) { + new_profile->flags = SWITCH_CPF_NONE; + + if (switch_stristr("screen", privacy_str)) { + switch_set_flag(new_profile, SWITCH_CPF_SCREEN); + } + if (switch_stristr("hide_name", privacy_str)) { + switch_set_flag(new_profile, SWITCH_CPF_HIDE_NAME); + } + + if (switch_stristr("hide_number", privacy_str)) { + switch_set_flag(new_profile, SWITCH_CPF_HIDE_NUMBER); + } + } + 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",