我希望 IVR 在读取命令期间说出数字。
这意味着,我不想在用户输入之后说出数字,而是在用户输入期间说出数字。
例如输入您的用户代码:124567#
在此期间我希望 IVR 一一说出数字。例如:您输入了 1 ,您输入了 2 ,或者一,二,...
我知道可以使用循环来做到这一点,但这看起来像是不稳定的代码。
答案1
当您播放消息时,大多数情况下会影响 dtmf 识别。唯一不会影响的情况是用户通过数字协议(sip/iax2)从数字电话呼叫的情况。如果用户拨打 PSTN 线路,则两个方向的声音都通过同一根线,因此播放的声音可能比 dtmf 更大或频率相似,这会影响识别。
但如果仍然想这样做,你有两个选择
1) 用户了解该功能,并缓慢按下。如果是这样,您可以使用读取命令,将数字限制设置为 1,然后再使用另一个读取命令,其中包含前一个数字等。限制:加载盒子上的数字之间至少有 100 毫秒,如果没有负载,可以更小。
2)用户不知道。您需要了解 c/c++,阅读星号源(app_read.c 就足够了)并编写其他将等待数字并同时播放数字的应用程序。接缝好像并不复杂,但见注解有关识别。