提交 60395cea authored 作者: David Yat Sin's avatar David Yat Sin

chlog: freetdm: Channel indicator IE only included in first response

上级 bb797286
...@@ -80,6 +80,8 @@ typedef enum { ...@@ -80,6 +80,8 @@ typedef enum {
FLAG_ACTIVATING = (1 << 10), FLAG_ACTIVATING = (1 << 10),
/* Used when we receive an ALERT msg + inband tones ready */ /* Used when we receive an ALERT msg + inband tones ready */
FLAG_MEDIA_READY = (1 << 11), FLAG_MEDIA_READY = (1 << 11),
/* Set when we already sent a Channel ID IE */
FLAG_SENT_CHAN_ID = (1 << 12),
} sngisdn_flag_t; } sngisdn_flag_t;
......
...@@ -821,9 +821,17 @@ ftdm_status_t set_prog_ind_ie(ftdm_channel_t *ftdmchan, ProgInd *progInd, ftdm_s ...@@ -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) 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) { if (!ftdmchan) {
return FTDM_SUCCESS; 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->eh.pres = PRSNT_NODEF;
chanId->prefExc.pres = PRSNT_NODEF; chanId->prefExc.pres = PRSNT_NODEF;
chanId->prefExc.val = IN_PE_EXCLSVE; chanId->prefExc.val = IN_PE_EXCLSVE;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论