]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
chlog: freetdm: Channel indicator IE only included in first response
authorDavid Yat Sin <dyatsin@sangoma.com>
Thu, 17 Feb 2011 16:44:57 +0000 (11:44 -0500)
committerDavid Yat Sin <dyatsin@sangoma.com>
Thu, 17 Feb 2011 16:44:57 +0000 (11:44 -0500)
libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h
libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c

index 80dc73f0fad8faa04a89586083bb865ca69da5c2..b369deae1f2bfae68d964f946c09d657e5e9b748 100644 (file)
@@ -80,6 +80,8 @@ typedef enum {
        FLAG_ACTIVATING                 = (1 << 10),
        /* Used when we receive an ALERT msg + inband tones ready */
        FLAG_MEDIA_READY                = (1 << 11),
+       /* Set when we already sent a Channel ID IE */
+       FLAG_SENT_CHAN_ID               = (1 << 12),
 } sngisdn_flag_t;
 
 
index 23fe08b983ed2faa28193a67ff7408068244f056..08e5984a4f163ffc1b96a5a811fb30c576fe9c92 100644 (file)
@@ -821,9 +821,17 @@ ftdm_status_t set_prog_ind_ie(ftdm_channel_t *ftdmchan, ProgInd *progInd, ftdm_s
 
 ftdm_status_t set_chan_id_ie(ftdm_channel_t *ftdmchan, ChanId *chanId)
 {
+       sngisdn_chan_data_t *sngisdn_info = (sngisdn_chan_data_t*)ftdmchan->call_data;
        if (!ftdmchan) {
                return FTDM_SUCCESS;
        }
+
+       if (ftdm_test_flag(sngisdn_info, FLAG_SENT_CHAN_ID)) {
+               /* Indicate channel ID only in first response */
+               return FTDM_SUCCESS;
+       }
+       ftdm_set_flag(sngisdn_info, FLAG_SENT_CHAN_ID);
+       
        chanId->eh.pres = PRSNT_NODEF;
        chanId->prefExc.pres = PRSNT_NODEF;
        chanId->prefExc.val = IN_PE_EXCLSVE;