繁体   English   中英

星号Dialplan SayNumber cmd限制

[英]Asterisk dialplan SayNumber cmd limits

我很难考虑这个问题的解决方案,我正在使用asterisk开发一个电话ivr智能应用程序,该程序需要一些时间才能读取呼叫方的号码,而asterisk的工作方式是使用say.conf文件建立要播放的音频文件以输入数字。

例如,如果我写了saynumber(123) ,它将进入say.conf文件并找到匹配的正则表达式,然后构建要播放的文件列表(例如,它将先播放/ digits / hundred然后是digits /然后是digits / twenty然后是数字/三

现在解决问题:

SayNumber命令在播放文件时没有监听用户输入,这意味着用户无法通过在手机上键入一些数字来中断系统,这对用户来说不方便。

命令Read(var,filestoplayseperatedby&)能够在播放文件列表时侦听用户dtmf输入。 我想要实现的是将基于say.conf文件的文件列表获取到一个变量,然后在获得文件后,我将使用Read命令,并且在听用户输入时它将显示数字。 我也不想使用tts引擎,因为它是一种多语言应用程序,并非所有人都可以使用tts(希伯来语等)。而且tts不会解决播放时听用户输入的主要问题。

对不起,我的英语不是我的母语。

这是星号say.conf文件的一部分:

_[n]um:X000000000 => num:${SAY:0:1}, digits/billion
_[n]um:XXXXXXXXXX => num:${SAY:0:1}, digits/billion, num:${SAY:1}
_[n]um:XX000000000 => num:${SAY:0:2}, digits/billion
_[n]um:XXXXXXXXXXX => num:${SAY:0:2}, digits/billion, num:${SAY:2}
_[n]um:XXX000000000 => num:${SAY:0:3}, digits/billion
_[n]um:XXXXXXXXXXXX => num:${SAY:0:3}, digits/billion, num:${SAY:3}

任何帮助将不胜感激。

您有2个选择

1)将数字变成读数字(C / C ++编程)

2)给READ应用提供正确的字符串(使用fastagi / agi或其他方法)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM