【问题标题】:Asterisk increase timeout between dtmf tones星号增加 dtmf 音之间的超时
【发布时间】:2017-10-25 12:45:21
【问题描述】:

我正在制定一个拨号计划,提示用户输入一个 4 位数的号码,下面的拨号计划在正常情况下可以正常工作。当用户需要超过 5 秒的时间来敲击下一个 dtmf 音时,就会出现此问题。

示例用户按下 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)

【问题讨论】:

    标签: asterisk pbx dtmf


    【解决方案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

    【讨论】:

      【解决方案2】:

      已修复,在后台修复之前调用 TIMEOUT(digit) 可让您调整 TIMEOUT 周期。

      [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)
      

      【讨论】:

        猜你喜欢
        • 2013-04-14
        • 1970-01-01
        • 2014-06-21
        • 2010-10-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多