1

我正在做 Asterisk 拨号计划extensions.conf

我正在创建一个简单的 IVR,其中客户的无效按键应该只重复两次。之后,它应该断开连接。

但是这里的循环是无限期的。

[ivr1]
exten => 100,1,Goto(ivr1,s,1)
exten => s,1,Set(VOLUME(TX)=20)
exten => s,n,Answer(500)
same => n(loop),Background(playfile)
same => n,WaitExten(10)
exten => 1,1,Dial(SIP/ivr_218/xxxx,30,m(waiting-audio))
exten => 1,2,Dial(SIP/ivr_218/xxxx,30,m(waiting-audio))
same => n,Hangup(${ActionID},keypress1)
exten => 2,1,Dial(SIP/ivr_218/xxxx,30,m(waiting-audio))
same => n,Hangup(${ActionID},keypress2)
exten => i,1,Playback(playfile_for_invalid)
same => n,Goto(s,loop)
exten => t,1,Playback(playfile_for_noresponse)
same => n,Goto(s,loop)
exten => n,Hangup()
4

1 回答 1

1

你可以像这样添加计数器,

[ivr1]
exten => 100,1,Goto(ivr1,s,1)
**exten => s,1,Set(Counter = 0)**
exten => s,1,Set(VOLUME(TX)=20)
exten => s,n,Answer(500)
same => n(loop),Background(playfile)
same => n,WaitExten(10)
exten => 1,1,Dial(SIP/ivr_218/xxxx,30,m(waiting-audio))
exten => 1,2,Dial(SIP/ivr_218/xxxx,30,m(waiting-audio))
same => n,Hangup(${ActionID},keypress1)
exten => 2,1,Dial(SIP/ivr_218/xxxx,30,m(waiting-audio))
same => n,Hangup(${ActionID},keypress2)
exten => i,1,Playback(playfile_for_invalid)
**same => n,Set(Counter=$[${Counter}+1])
same => n,GotoIf($["${Counter}"<"2"]?s,loop)
same => n,Hangup()**
exten => t,1,Playback(playfile_for_noresponse)
same => n,Goto(s,loop)
exten => n,Hangup()
于 2021-11-03T11:13:53.537 回答