exten => s,1,Set(CALLERID(all)= 8${CALLERID(number):1})
exten => s,n,Read(UserChoice,,4,,20)
exten => s,n,GotoIf($[${READSTATUS}=OK]?7:4)
exten => s,4,Queue(DepartSales,${DIALOPTIONS})
exten => s,5,Hangup()
..........
если по в течении 20 сек ничего не введено то связь прерывается. Тоже самое с WaitExten()
_________________
платный суппорт по мере возможностей
Added after 6 minutes:
-- Executing [s@main_ivr:1] Set("SIP/gsm_ea_gw1600-00002adc", "CALLERID(all)= 88443323737") in new stack
-- Executing [s@main_ivr:2] Read("SIP/gsm_ea_gw1600-00002adc", "UserChoice,,4,,20") in new stack
-- Accepting a maximum of 4 digits.
-- SIP/volga2-00002adb answered SIP/2041-00002ada
-- User entered nothing, 19 chances left
-- User disconnected
== Spawn extension (macro-trunkdial-failover-0.3, 1-dial, 1) exited non-zero on 'SIP/2041-00002ada' in macro 'trunkdial-failover-0.3'
== Spawn extension (DLPN_WorkDialPlan, 917166, 5) exited non-zero on 'SIP/2041-00002ada'
== MixMonitor close filestream
== End MixMonitor Recording SIP/2041-00002ada
вот все что есть в логах - звонок передается в контекст main_ivr и через 20 сек разъединяется, если пользователь ничего не ввел.
exten => s,n,Read(UserChoice,hello,4,,,20)
exten => s,n,NoOp(== нажали == ${UserChoice} ==)
exten => s,n,ExecIf($[${LEN(${UserChoice})} = 0]?Goto(ext1,1))
exten => s,n,Queue(DepartSales,${DIALOPTIONS})
exten => s,n,Hangup()
exten => ext1,1,NoOp(== нечего не нажали ==)
exten => ext1,n,Hangup()
_________________
платный суппорт по мере возможностей
Уменьшил время ожидания до 15 сек - все работает, ставлю 20 или больше, в логах ловлю только сообщение: User disconected, если не было ввода с телефона.