host=dynamic
Делается когда у ВАС на астере регистрируются абоненты..
Читать Астериск Будущее Телефонии.. Там всего одну главу перечитать надо..
host=dynamic
Как видно, передача цифр в dtmf одинакова в обоих случаях, за исключением передачи события "dtmf end". В случае вызова на номер-679 все три сообщения "dtmf end" (для каждой цифры!) передаются удаленной стороной практически одновременно. В случае вызова на номер 8800 между сообщениями "dtmf end" видим интервал 20 мс. Никаких нарушений RFC2833 не наблюдается. При этом заметим, что для всех четрыех цифр набора астериск корректно опознает все три соообщения "dtmf end".
В логе астериска видим, что корректно распознались все четыре цифры (астериск начинает вызывать набранный номер 5590):
" -- Executing [5590@ivr-k:1] Dial("SIP/Rostel-00002115", "IAX2/MSK/5590") in new stack".
Однако далее астериск почему-то продолжает обрабатывать оставшиеся события "dtmf end" для последней цифры ("DTMF end '0' received"):
"[2018-05-25 14:28:07] DTMF[21961][C-00002118]: channel.c:4040 __ast_read: DTMF end '0' received on SIP/Rostel-00002115, duration 275 ms
-- Call accepted by 172.19.10.10:4569 (format ulaw)
-- Format for call is (ulaw)
[2018-05-25 14:28:07] DTMF[21961][C-00002118]: channel.c:4040 __ast_read: DTMF end '0' received on SIP/Rostel-00002115, duration 275 ms
[2018-05-25 14:28:07] DTMF[21961][C-00002118]: channel.c:4067 __ast_read: DTMF begin emulation of '0' with duration 275 queued on SIP/Rostel-00002115
-- IAX2/MSK-20082 is ringing
-- IAX2/MSK-20082 is ringing
[2018-05-25 14:28:09] DTMF[21961][C-00002118]: channel.c:4204 __ast_read: DTMF end emulation of '0' queued on SIP/Rostel-00002115"
Почему это происходит - неизвестно. Необходимо проверить диалплан (особенно если он самописный), также можно попробовать изменить настройку в файле конфигурации sip.conf на "relaxdtmf=yes"."
[from-internal]
exten => user12,1,Answer()
exten => user12,n,NoOp(${CDR(src)})
exten => user12,n,NoOp(${CALLERIDNUM})
exten => user12,n,NoOp(${CALLERID(num)})
exten => user12,n,NoOp(${CALLERID(all)})
exten => user12,n,NoOp(${EXTEN})
exten => user12,n,Goto(ivr-k,s,1)
[ivr-k]
exten => s,1,Set(num=0)
exten => s,1,Answer()
exten => s,n,WaitExten(1)
exten => s,n(start),Background(/var/lib/asterisk/sounds/ivr/IVR_K)
exten => s,n,WaitExten(4)
exten => _5[0-4]XX,1,Dial(IAX2/SPB/${EXTEN})
exten => _55XX,1,Dial(IAX2/MSK/${EXTEN})
;exten => _5XXX,1,Set(num=$[${num} + 1])
;exten => _5XXX,n,Dial(SIP/${EXTEN})
;exten => _5XXX,n,Playback(vm-extension)
;exten => _5XXX,n,Playback(vm-isonphone)
;exten => _5XXX,n,Gotoif($[${num} < 2]?s,start)
;exten => _5XXX,n,Dial(IAX2/SPB,,m)
;exten => _XXXX,1,Set(num=$[${num} + 1])
;exten => _XXXX,n,Dial(SIP/${EXTEN})
;exten => _XXXX,n,Playback(privacy-incorrect)
;exten => _XXXX,n,Gotoif($[${num} < 2]?s,start)
;exten => _XXXX,n,Dial(IAX2/SPB,,m)
exten => t,1,Dial(IAX2/SPB,,m)
exten => i,1,Dial(IAX2/SPB/${EXTEN},,m)
repp.sv писал(а):Получил ответ от службы поддержки Ростелекома.Почему это происходит - неизвестно. Необходимо проверить диалплан (особенно если он самописный),
exten => s,1,Set(num=0)
exten => s,1,Answer()
exten => s,n,WaitExten(1)
exten => s,n(start),Background(/var/lib/asterisk/sounds/ivr/IVR_K)
exten => s,n,WaitExten(4)
ждёте ввода внутреннего номера 1 секунду
потом транслируете ему IVR_K и ещё потом ждёте 4 секунды
exten => user12,n,Dial(IAX2/SPB,90,r)
Вернуться в Конфигурация и настройка Asterisk
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16