]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
freetdm: SS7 - CIC value stored in freetdm_ss7_cic variable (cherry-picked from relea...
authorMoises Silva <moy@sangoma.com>
Fri, 26 Aug 2011 21:49:34 +0000 (17:49 -0400)
committerMoises Silva <moy@sangoma.com>
Thu, 15 Sep 2011 16:04:23 +0000 (12:04 -0400)
Conflicts:

libs/freetdm/mod_freetdm/mod_freetdm.c
libs/freetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c

libs/freetdm/mod_freetdm/mod_freetdm.c
libs/freetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_handle.c

index 5117c6dbe8f33bb8801c431f2bfd6f1a8d772b20..caee4dcec97d7d5e2132a0b1728822358e574093 100755 (executable)
@@ -1703,7 +1703,6 @@ ftdm_status_t ftdm_channel_from_event(ftdm_sigmsg_t *sigmsg, switch_core_session
                switch_channel_set_variable_printf(channel, "sip_h_X-FreeTDM-RDNIS-Plan", "%d", channel_caller_data->rdnis.plan);
                switch_channel_set_variable_printf(channel, "sip_h_X-FreeTDM-CPC", "%s", ftdm_calling_party_category2str(channel_caller_data->cpc));
                
-
                var_value = ftdm_sigmsg_get_var(sigmsg, "ss7_rdnis_screen_ind");
                if (!ftdm_strlen_zero(var_value)) {
                        switch_channel_set_variable_printf(channel, "sip_h_X-FreeTDM-RDNIS-Screen", "%d", var_value);
@@ -1754,6 +1753,11 @@ ftdm_status_t ftdm_channel_from_event(ftdm_sigmsg_t *sigmsg, switch_core_session
                        switch_channel_set_variable_printf(channel, "sip_h_X-FreeTDM-IAM", "%s", var_value);
                }
 
+               var_value = ftdm_sigmsg_get_var(sigmsg, "ss7_cic");
+               if (!ftdm_strlen_zero(var_value)) {
+                       switch_channel_set_variable_printf(channel, "sip_h_X-FreeTDM-CIC", "%s", var_value);
+               }
+
                switch_channel_set_variable_printf(channel, "sip_h_X-FreeTDM-Screen", "%d", channel_caller_data->screen);
                switch_channel_set_variable_printf(channel, "sip_h_X-FreeTDM-Presentation", "%d", channel_caller_data->pres);
        }
index 20e9a1261c1287f256219cc12777dbf1aee84691..b541e1b5512b3679d81c81ca29137abfac6bbdf5 100644 (file)
@@ -89,12 +89,13 @@ ftdm_status_t handle_olm_msg(uint32_t suInstId, uint32_t spInstId, uint32_t circ
 
 ftdm_status_t handle_con_ind(uint32_t suInstId, uint32_t spInstId, uint32_t circuit, SiConEvnt *siConEvnt)
 {
-       sngss7_chan_data_t  *sngss7_info = NULL;
-       ftdm_channel_t          *ftdmchan = NULL;
-       char                            nadi[2];
-       
        SS7_FUNC_TRACE_ENTER(__FUNCTION__);
-       memset(nadi, '\0', sizeof(nadi));
+
+       sngss7_chan_data_t *sngss7_info = NULL;
+       ftdm_channel_t *ftdmchan = NULL;
+       char var[10];
+
+       memset(var, '\0', sizeof(var));
 
        /* get the ftdmchan and ss7_chan_data from the circuit */
        if (extract_chan_data(circuit, &sngss7_info, &ftdmchan)) {
@@ -209,11 +210,14 @@ ftdm_status_t handle_con_ind(uint32_t suInstId, uint32_t spInstId, uint32_t circ
                        }
 
                        /* add any special variables for the dialplan */
-                       sprintf(nadi, "%d", siConEvnt->cgPtyNum.natAddrInd.val);
-                       sngss7_add_var(sngss7_info, "ss7_clg_nadi", nadi);
+                       sprintf(var, "%d", siConEvnt->cgPtyNum.natAddrInd.val);
+                       sngss7_add_var(sngss7_info, "ss7_clg_nadi", var);
+
+                       sprintf(var, "%d", siConEvnt->cdPtyNum.natAddrInd.val);
+                       sngss7_add_var(sngss7_info, "ss7_cld_nadi", var);
 
-                       sprintf(nadi, "%d", siConEvnt->cdPtyNum.natAddrInd.val);
-                       sngss7_add_var(sngss7_info, "ss7_cld_nadi", nadi);
+                       sprintf(var, "%d", sngss7_info->circuit->cic);
+                       sngss7_add_var(sngss7_info, "ss7_cic", var);
 
                        if (sngss7_info->circuit->transparent_iam) {
                                sngss7_save_iam(ftdmchan, siConEvnt);