提交 21f8605d authored 作者: David Yat Sin's avatar David Yat Sin

freetdm: fix for enabling DTMF detection on d-channel

上级 e42c423c
...@@ -2923,23 +2923,27 @@ FT_DECLARE(ftdm_status_t) ftdm_channel_command(ftdm_channel_t *ftdmchan, ftdm_co ...@@ -2923,23 +2923,27 @@ FT_DECLARE(ftdm_status_t) ftdm_channel_command(ftdm_channel_t *ftdmchan, ftdm_co
case FTDM_COMMAND_ENABLE_DTMF_DETECT: case FTDM_COMMAND_ENABLE_DTMF_DETECT:
{ {
/* if they don't have thier own, use ours */ /* if they don't have thier own, use ours */
if (!ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_DTMF_DETECT)) { if (FTDM_IS_VOICE_CHANNEL(ftdmchan)) {
teletone_dtmf_detect_init (&ftdmchan->dtmf_detect, ftdmchan->rate); if (!ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_DTMF_DETECT)) {
ftdm_set_flag(ftdmchan, FTDM_CHANNEL_DTMF_DETECT); teletone_dtmf_detect_init (&ftdmchan->dtmf_detect, ftdmchan->rate);
ftdm_set_flag(ftdmchan, FTDM_CHANNEL_SUPRESS_DTMF); ftdm_set_flag(ftdmchan, FTDM_CHANNEL_DTMF_DETECT);
ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Enabled software DTMF detector\n"); ftdm_set_flag(ftdmchan, FTDM_CHANNEL_SUPRESS_DTMF);
GOTO_STATUS(done, FTDM_SUCCESS); ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Enabled software DTMF detector\n");
GOTO_STATUS(done, FTDM_SUCCESS);
}
} }
} }
break; break;
case FTDM_COMMAND_DISABLE_DTMF_DETECT: case FTDM_COMMAND_DISABLE_DTMF_DETECT:
{ {
if (!ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_DTMF_DETECT)) { if (FTDM_IS_VOICE_CHANNEL(ftdmchan)) {
teletone_dtmf_detect_init (&ftdmchan->dtmf_detect, ftdmchan->rate); if (!ftdm_channel_test_feature(ftdmchan, FTDM_CHANNEL_FEATURE_DTMF_DETECT)) {
ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_DTMF_DETECT); teletone_dtmf_detect_init (&ftdmchan->dtmf_detect, ftdmchan->rate);
ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_SUPRESS_DTMF); ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_DTMF_DETECT);
ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Disabled software DTMF detector\n"); ftdm_clear_flag(ftdmchan, FTDM_CHANNEL_SUPRESS_DTMF);
GOTO_STATUS(done, FTDM_SUCCESS); ftdm_log_chan_msg(ftdmchan, FTDM_LOG_DEBUG, "Disabled software DTMF detector\n");
GOTO_STATUS(done, FTDM_SUCCESS);
}
} }
} }
break; break;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论