]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
freetdm:Support for transmission of Caller ID Name on NI-2
authorDavid Yat Sin <dyatsin@sangoma.com>
Mon, 19 Sep 2011 17:51:41 +0000 (13:51 -0400)
committerDavid Yat Sin <dyatsin@sangoma.com>
Mon, 19 Sep 2011 17:51:41 +0000 (13:51 -0400)
libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_out.c
libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c

index c2305e445f5a7e58262bee0fef9740ada42f1ab2..add4d3fad069570db2712e0e77a777a6ed58251a 100644 (file)
@@ -69,6 +69,8 @@ void sngisdn_snd_setup(ftdm_channel_t *ftdmchan)
        set_calling_subaddr(ftdmchan, &conEvnt.cgPtySad);
        set_redir_num(ftdmchan, &conEvnt.redirNmb);
        set_calling_name(ftdmchan, &conEvnt);
+
+       /* set_facility_ie will overwrite Calling Name for NI-2 if user specifies custom Facility IE */
        set_facility_ie(ftdmchan, &conEvnt.facilityStr);
        set_prog_ind_ie(ftdmchan, &conEvnt.progInd, prog_ind);
 
index 9a633b902a72a0eb8138bf58dab51015204437ad..d744ad2942b34c88e64556bc360b45eae9eed2d7 100644 (file)
@@ -719,12 +719,19 @@ ftdm_status_t set_calling_name(ftdm_channel_t *ftdmchan, ConEvnt *conEvnt)
        } else {
                switch (signal_data->switchtype) {
                case SNGISDN_SWITCH_NI2:
-                       /* TODO: Need to send the caller ID as a facility IE */
-
+#ifdef SNGISDN_SUPPORT_CALLING_NAME_IN_FACILITY
+                       {
+                               if (signal_data->signalling == SNGISDN_SIGNALING_NET) {
+                                       sng_isdn_encode_facility_caller_name(caller_data->cid_name, conEvnt->facilityStr.facilityStr.val, &conEvnt->facilityStr.facilityStr.len);
+                                       conEvnt->facilityStr.eh.pres = PRSNT_NODEF;
+                                       conEvnt->facilityStr.facilityStr.pres = PRSNT_NODEF;
+                               }
+                       }
+#endif
                        break;
                case SNGISDN_SWITCH_EUROISDN:
                        if (signal_data->signalling != SNGISDN_SIGNALING_NET) {
-                       break;
+                               break;
                        }
                        /* follow through */
                case SNGISDN_SWITCH_5ESS: