【问题标题】:Asterisk AMI - How to simulate a DTMF sending action over AMIAsterisk AMI - 如何通过 AMI 模拟 DTMF 发送操作
【发布时间】:2016-09-18 07:28:55
【问题描述】:

我正在 Asterisk 中构建一个应用程序,它必须模拟手机按键操作,即 DTMF。例如,如果呼叫者呼叫一个号码并且 IVR 要求按一个数字,则应用程序(例如网页)也应该能够模拟相同的按键操作。我尝试了以下方法: - 我有一个 Web 应用程序,它通过 AMI 触发 PlayDTMF 操作,以模拟呼叫者通道上的按键。不幸的是,这不起作用,因为它在频道上播放了 DTMF 数字(可以听到按键),但星号没有收到 DTMF。它只是播放 DTMF,这是 AMI 动作的设计目的。从技术上讲,我需要在频道上“发送”DTMF 数字。 - 星号中的 sendDTMF 函数也不能使用,因为它是一个拨号计划函数,我需要一个 AMI 操作来从外部源触发 DTMF。

以前曾报告过类似问题:Asterisk AMI: DTMF not received on SIP channel

我正在使用 Asterisk 11。有没有办法使用 AMI/AGI 实现上述功能?还是我需要将我的 Asterisk 进一步升级到 12 才能使用 ARI?

感谢您的投入。

【问题讨论】:

  • Asterisk 12 或 13 升级对您没有帮助。您目前不了解星号的工作原理。
  • 如何在 Asterisk 11 中模拟 DTMF。此外,我尝试在本地频道上发起呼叫并使用 sendDTMF 方法触发对我想要的频道的 DTMF 操作。我确实在所需频道上听到了 DTMF 音。但是就像 PlayDTMF AMI 动作一样,Asterisk 也没有捕获到它进行处理。

标签: asterisk


【解决方案1】:

我设法模拟了 DTMF 操作,方法是拨号/发起到本地上下文并使用传出桥接通道 id 进行 DTMF 输入。所以流程是: 呼叫登陆 Asterisk -> Asterisk 拨出到本地上下文 -> 拨出创建具有传出通道 id 的桥接事件(存储在某些数据库中)-> 本地上下文可以具有 IVR 流并使用存储的通道和 PLayDTMF动作 - 可以插入 dtmf 数字。不确定是否有更优雅的解决方案!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多