我有 asterisk 13.21.0 并开发了一个基于 perl 的 agi。我正在尝试使用 agi 中的 EXEC() 函数执行带有“m”选项的 WaitExten 应用程序。 例如。 $AGI->exec("WaitExten","2,m(默认)"); 上面的代码在 while 循环中,我不断检查呼叫者是否输入了任何 DTMF。它工作正常,但问题是每次执行上述行时音频都会中断。因此,它播放的不是连续的 moh,而是中间有 1 秒的暂停。
如何摆脱这个问题?在继续 MOH 的同时,还有其他替代方法可以在 AGI 中收听 DTMF 吗? 任何帮助将不胜感激。 谢谢你。
如果启用莫赫序列,只有两种方式获取 DTMF。
但是,只需将 moh 文件直接提供给读取或后台应用程序,您就可以实现类似的行为。
AGI 不适合用户后台/等待,因此您应该使用以 moh 音乐文件作为文件名的 Read 应用程序。