星号增加 dtmf 音调之间的超时

Asterisk increase timeout between dtmf tones

我正在制定一个拨号计划,系统会提示用户输入一个 4 位数字,下面的拨号计划在正常情况下可以很好地满足我的需要。当用户按下一个 dtmf 音调的时间超过 5 秒时,就会出现此问题。

示例用户按 111(等待 > 5 秒)系统提示我输入无效音轨并重复该过程。有没有办法将超时时间增加到 10 秒?

[Example_IVR_Start]
exten => s,1,Verbose(1, Starting the IVR example)
        same => n,Set(CORRECTNUM=1111)    
        same => n(menu),Background(example_start)
        same => n,WaitExten(5)
        same => n,Background(long_silence)
        same => n,Goto(Timeout_hangup,s,1)
exten => _XXXX,1,GotoIf($[${EXTEN}=${CORRECTNUM}]?Example_IVR_TWO,s,1:i,invalid)
exten => *,1,Goto(s,menu)
exten => i,1(invalid),Playback(invalid)
exten => i,n,Goto(s,menu)
exten => t,1,Goto(Timeout_hangup,s,1)

已修复,在后台修复之前调用 TIMEOUT(digit) 可以调整超时时间。

[Example_IVR_Start]
exten => s,1,Verbose(1, Starting the IVR example)
    same => n,Set(CORRECTNUM=1111)    
    same => n,Set(TIMEOUT(digit)=10) ;needs to come before Background
    same => n(menu),Background(example_start)
    same => n,WaitExten(5)
    same => n,Background(long_silence)
    same => n,Goto(Timeout_hangup,s,1)
exten => _XXXX,1,GotoIf($[${EXTEN}=${CORRECTNUM}]?Example_IVR_TWO,s,1:i,invalid)
exten => *,1,Goto(s,menu)
exten => i,1(invalid),Playback(invalid)
exten => i,n,Goto(s,menu)
exten => t,1,Goto(Timeout_hangup,s,1)

是的,你有函数超时

TIMEOUT(digit) - set timeout between keypress
TIMEOUT(absolute) - set overal timeout before hangup(not forget reset after input done).

https://wiki.asterisk.org/wiki/display/AST/Function_TIMEOUT