]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
don't skip sending cid number if there is a + in it
authorMichael Jerris <mike@jerris.com>
Mon, 5 Nov 2012 20:12:38 +0000 (15:12 -0500)
committerMichael Jerris <mike@jerris.com>
Mon, 5 Nov 2012 20:12:38 +0000 (15:12 -0500)
libs/freetdm/mod_freetdm/mod_freetdm.c

index 06dc587a4b978ceffbf89658a2b61112636f7ba0..7ed8be290aa73e57489c280e8fb35c9cf449ae14 100755 (executable)
@@ -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));