Тайм-аут увеличения звездочки между тонами dtmf

Я работаю над схемой набора номеров, где пользователю предлагается ввести 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)

2 ответа

Решение

Исправлено: вызов TIMEOUT(цифра) до исправления фона позволяет настроить период 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)

Да, у вас есть тайм-аут функции

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

Другие вопросы по тегам