From 306c2fa205559adfd2e1825c60fb12de74f7aff1 Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Mon, 5 Nov 2012 15:12:38 -0500 Subject: [PATCH] don't skip sending cid number if there is a + in it --- libs/freetdm/mod_freetdm/mod_freetdm.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/libs/freetdm/mod_freetdm/mod_freetdm.c b/libs/freetdm/mod_freetdm/mod_freetdm.c index 06dc587a4b..7ed8be290a 100755 --- a/libs/freetdm/mod_freetdm/mod_freetdm.c +++ b/libs/freetdm/mod_freetdm/mod_freetdm.c @@ -1318,6 +1318,9 @@ static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *sessi if (!zstr(outbound_profile->caller_id_number)) { callerid_num = switch_sanitize_number(switch_core_strdup(outbound_profile->pool, outbound_profile->caller_id_number)); + if ( callerid_num && *callerid_num == '+' ) { + callerid_num++; + } } if (!zstr(callerid_num) && !strcmp(callerid_num, SWITCH_DEFAULT_CLID_NUMBER)) { @@ -1394,6 +1397,9 @@ static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *sessi sipvar = switch_channel_get_variable(channel, "sip_h_X-FreeTDM-CallerNumber"); if (sipvar) { + if ( *sipvar == '+' ) { + sipvar++; + } ftdm_set_string(caller_data.cid_num.digits, sipvar); } @@ -1653,7 +1659,7 @@ static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *sessi caller_data.rdnis.plan = outbound_profile->rdnis_numplan; ftdm_set_string(caller_data.cid_name, outbound_profile->caller_id_name); - ftdm_set_string(caller_data.cid_num.digits, switch_str_nil(outbound_profile->caller_id_number)); + ftdm_set_string(caller_data.cid_num.digits, switch_str_nil(callerid_num)); memset(&hunting, 0, sizeof(hunting));