После Hangup у звонящего не происходит завершение вызова
Добавлено: 10 мар 2017, 03:12
В общем есть такой контекст:
Если RESPONSE равен 0, т.е. выполняются условия 1 и 2 (помечены в комментариях), то у звонящего вызов не завершается после hangup, пока не выполнятся h-экстеншены. А там долгие операции и напр. если они выполняются 5 секунд, то и звонящий всё время остается висеть на линии. Пробовал возвращать коды 16 и 17 в Hangup, звонить с разных операторов на разные операторы - ситуация повторяется ВСЕГДА.
Что-то нифига не пойму - подскажите, что посмотреть.
Код: Выделить всё
exten => _X.,1,Ringing
exten => _X.,n,AGI(order.php,${CALLERID(num)},${EXTEN})
exten => _X.,n,GotoIf($["${LEN(${RESPONSE})}" != "1"]?end)
exten => _X.,n,Answer
exten => _X.,n,Set(K=0)
exten => _X.,n(first),Playback(${RESPONSE})
exten => _X.,n,GotoIf($["${RESPONSE}" = "0"]?asr:end) ;УСЛОВИЕ 1
exten => _X.,n(asr),Set(RECORD_FILE=${STRFTIME(${EPOCH},,%Y%m%d%H%M%S)}-${CALLERID(num)}-${UNIQUEID})
exten => _X.,n,MixMonitor(/var/spool/asterisk/monitor/${RECORD_FILE}.wav)
exten => _X.,n,Wait(2)
exten => _X.,n,WaitForSilence(100,10,6)
exten => _X.,n,StopMixMonitor()
exten => _X.,n,AGI(vad.php,/var/spool/asterisk/monitor/${RECORD_FILE})
exten => _X.,n,GotoIf($[${FILESIZE} > 44]?say)
exten => _X.,n,Set(K=$[${K}+1])
exten => _X.,n,GotoIf($[${K} < 3]?first)
exten => _X.,n(say),Playback(/var/spool/asterisk/clips/success)
exten => _X.,n(end),Hangup()
exten => h,1,GotoIf($["${RESPONSE}" != "0"]?last) ;УСЛОВИЕ 2
exten => h,n,ДЛИТЕЛЬНАЯ ОПЕРАЦИЯ
exten => h,n(last),NoOp(---)
Что-то нифига не пойму - подскажите, что посмотреть.