]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
freetdm: ss7 - Fix for some SIP RDNIS headers being overwritten
authorDavid Yat Sin <dyatsin@sangoma.com>
Tue, 26 Apr 2011 15:04:44 +0000 (11:04 -0400)
committerroot <root@marc-ss71.sangoma.local>
Tue, 26 Apr 2011 15:07:40 +0000 (11:07 -0400)
libs/freetdm/mod_freetdm/mod_freetdm.c

index 8739c4c0bf80b1480823d037fe91197e81b77439..e6930ab16f59aeeccaebb22b5c034e1c452bbeaa 100755 (executable)
@@ -1301,22 +1301,27 @@ static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *sessi
                        ftdm_set_string(caller_data.rdnis.digits, sipvar);
                }
 
-               sipvar = switch_channel_get_variable(channel, "sip_h_X-FreeTDM-RDNIS-TON");
-               if (sipvar) {
-                       caller_data.rdnis.type = (uint8_t)atoi(sipvar);
-               }
-
                sipvar = switch_channel_get_variable(channel, "sip_h_X-FreeTDM-RDNIS-Plan");
                if (sipvar) {
-                       caller_data.rdnis.plan = (uint8_t)atoi(sipvar);
+                       ftdm_call_add_var(&caller_data, "ss7_rdnis_plan", sipvar);
                }
 
-               /* Used by ftmod_sangoma_ss7 only */
                sipvar = switch_channel_get_variable(channel, "sip_h_X-FreeTDM-RDNIS-NADI");
                if (sipvar) {
                        ftdm_usrmsg_add_var(&usrmsg, "ss7_rdnis_nadi", sipvar);
                }
 
+               sipvar = switch_channel_get_variable(channel, "sip_h_X-FreeTDM-RDNIS-Screen");
+               if (sipvar) {
+                       ftdm_call_add_var(&caller_data, "ss7_rdnis_screen_ind", sipvar);
+               }
+
+               sipvar = switch_channel_get_variable(channel, "sip_h_X-FreeTDM-RDNIS-Presentation");
+               if (sipvar) {
+                       ftdm_call_add_var(&caller_data, "ss7_rdnis_pres_ind", sipvar);
+               }
+
+
                sipvar = switch_channel_get_variable(channel, "sip_h_X-FreeTDM-Screen");
                if (sipvar) {
                        caller_data.screen = (uint8_t)atoi(sipvar);