重新配置Asterisk服务器以添加错误消息

重新配置Asterisk服务器以添加错误消息,asterisk,ivr,Asterisk,Ivr,我有一个需要重新配置的星号服务器。它是由外部承包商建造的,我需要对它做一些修改。现在,它所做的只是接听电话,接受7位数的密码,然后挂断电话。在后端,它记录呼叫的时间戳、呼叫者id和7位代码 我们遇到的问题是,有些人没有输入7位密码,或者他们花的时间太长。然后系统重新启动,并将以无休止的循环继续,直到它们以7位数字输入。打电话的人最近认为系统坏了,因为他们没有输入7位数的代码 我想弄清楚的是,当系统必须返回到开始时,它可能会说“您只输入了6位数字,请再试一次”之类的话。我不能100%确定如何将其添

我有一个需要重新配置的星号服务器。它是由外部承包商建造的,我需要对它做一些修改。现在,它所做的只是接听电话,接受7位数的密码,然后挂断电话。在后端,它记录呼叫的时间戳、呼叫者id和7位代码

我们遇到的问题是,有些人没有输入7位密码,或者他们花的时间太长。然后系统重新启动,并将以无休止的循环继续,直到它们以7位数字输入。打电话的人最近认为系统坏了,因为他们没有输入7位数的代码

我想弄清楚的是,当系统必须返回到开始时,它可能会说“您只输入了6位数字,请再试一次”之类的话。我不能100%确定如何将其添加到当前配置中。以下是我们目前的情况:

[inbound]
exten => 1234567890,1,Answer
exten => 1234567890,2,Set(COUNTER=4)
exten => 1234567890,3,Set(COUNTER=$[${COUNTER} -1 ])
exten => 1234567890,4,NoOp(${COUNTER})
exten => 1234567890,5,GotoIf($[${COUNTER} > 0 ]?10:122)

exten => 1234567890,10,Wait(1)
exten => 1234567890,11,read(SCODE,EnterCode,7,)
exten => 1234567890,12,GotoIf($[${LEN(${SCODE})}=7]?13:3)
exten => 1234567890,13,Playback(YouEntered)
exten => 1234567890,n,SayDigits(${SCODE})
exten => 1234567890,n,read(SCHOICE,correctpressone,1,)
exten => 1234567890,n,Gotoif($[ ${SCHOICE} = 1 ]?20:1)

exten => 1234567890,20,NoOp(${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)} ${SCODE} ${CALLERID(num)})
exten => 1234567890,n,TrySystem(/bin/echo ${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}, ${SCODE}, ${CALLERID(num)} >> /opt/codes.log)

exten => 1234567890,n,Playback(SuccessfullyActivate)
exten => 1234567890,n,Hangup()

exten => 1234567890,122,Playback(tt-somethingwrong)
exten => 1234567890,n,Hangup()
感谢您在此问题上提供的帮助…

类似以下内容:

exten => 1234567890,12,GotoIf($[${LEN(${SCODE})}=7]?13:200)

exten => 1234567890,200,Playback(your_inpout_too_short)
exten => 1234567890,201,Goto(3)

顺便说一句,你的拨号计划质量很差,看起来做这件事的人也没有经验。

太棒了!非常感谢。我今天将实施这一点。我现在明白了。你能举个例子说明什么是“好”的拨号计划吗?或者,你知道一个好的资源可以作为教程查看吗?再次感谢!extensions.conf.sample文件中有很多示例。在拨号计划中:不使用标签,转到下一行的否定选项(不需要,它将自动转到下一行)+拨号计划中prio编号和n(下一个prio)的组合。