我正在用星号设置 DISA。我想做的是在星号接收 DTMF 时向呼叫者播放音乐。当接收到“#”的 DTMF 时,DTMF 将停止播放
我曾尝试使用背景()和回放()命令,但它们没有达到目的!
有任何想法吗?
汗
您可以尝试使用phpagi。有一个名为 fastpass_get_data 的函数,可以在播放声音的同时获取 dtmf 输入。
http://phpagi.sourceforge.net/phpagi22/api-docs/phpAGI/AGI.html#fastpass_get_data
我假设仅使用内置的 DISA 应用程序不能满足您的需求。如果是这样,请使用它。
对星号进行编程有不同的方法。您可以使用普通的拨号方案、ael 拨号方案、AGI、AMI,甚至可以用 C 编写自己的模块。
您可以在拨号方案中做更多的事情,但通常通过 AGI 使用真实语言会导致代码更具可读性。
使用拨号方案应用程序 StartMusicOnHold、StopMusicOnHold 以及 Read 或 WaitExten,您应该能够做您想做的事情。运行 asterisk -rx 'core show application StartMusicOnHold' 等,以了解其中的每一个。
您基本上想运行 StartMusicOnHold,然后使用 Read 或 WaitExten 收集数字,直到完成(可能将它们收集到通道变量中),然后运行 StopMusicOnHold。