Столкнулся с нетипичной ситуацией. Есть готовое решение, yeastar M1. Ввиду его урезанной версии решили его использовать пока что как шлюз до покупки платы на е1. Сделал IAX шлюз, вроде бы все ничего, но когда звонки маршрутизируются на группу именно с е1, звонок поступает первому агенту в грппе, и далее просто обрывается примерно на 8-й секунде. При переадресации на IVR, announcement и очередь все ок. Пока сделал костыль, и звонки поступают через IVR, где далее он пробрасывает уже на группу. Так понятное дело все будет рабоать, но вот почему происходит затык, не совсем ясно. Выложу лог при входящем звонке с дебагом iax. Может кто из Вас что тут увидит, просто мне по этому логу не совсем ясно, почему такое происходит.
-- Executing [s@macro-dial:38] Dial("IAX2/10001-3690", "SIP/778,10,m(house)tM(auto-blkvm)") in new stack
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
-- Called SIP/778
-- Started music on hold, class 'house', on IAX2/10001-3690
Tx-Frame Retry[000] -- OSeqno: 003 ISeqno: 003 Type: CONTROL Subclass: PROGRES
Timestamp: 03005ms SCall: 03690 DCall: 10041 [10.0.3.1:4569]
Rx-Frame Retry[ No] -- OSeqno: 003 ISeqno: 004 Type: IAX Subclass: ACK
Timestamp: 03005ms SCall: 10041 DCall: 03690 [10.0.3.1:4569]
== Extension Changed 778[ext-local] new state Ringing for Notify User 776
-- SIP/778-00000027 is ringing
Tx-Frame Retry[000] -- OSeqno: 005 ISeqno: 006 Type: IAX Subclass: LAGRQ
Timestamp: 20018ms SCall: 01452 DCall: 00442 [10.0.3.2:4569]
Rx-Frame Retry[ No] -- OSeqno: 006 ISeqno: 006 Type: IAX Subclass: LAGRP
Timestamp: 20018ms SCall: 00442 DCall: 01452 [10.0.3.2:4569]
Tx-Frame Retry[-01] -- OSeqno: 006 ISeqno: 007 Type: IAX Subclass: ACK
Timestamp: 20018ms SCall: 01452 DCall: 00442 [10.0.3.2:4569]
Rx-Frame Retry[ No] -- OSeqno: 007 ISeqno: 006 Type: IAX Subclass: LAGRQ
Timestamp: 20012ms SCall: 00442 DCall: 01452 [10.0.3.2:4569]
Tx-Frame Retry[000] -- OSeqno: 006 ISeqno: 008 Type: IAX Subclass: LAGRP
Timestamp: 20012ms SCall: 01452 DCall: 00442 [10.0.3.2:4569]
Rx-Frame Retry[ No] -- OSeqno: 008 ISeqno: 007 Type: IAX Subclass: ACK
Timestamp: 20012ms SCall: 00442 DCall: 01452 [10.0.3.2:4569]
Tx-Frame Retry[000] -- OSeqno: 002 ISeqno: 004 Type: IAX Subclass: LAGRQ
Timestamp: 10004ms SCall: 22497 DCall: 12152 [10.0.3.1:4569]
Rx-Frame Retry[ No] -- OSeqno: 004 ISeqno: 003 Type: IAX Subclass: LAGRP
Timestamp: 10004ms SCall: 12152 DCall: 22497 [10.0.3.1:4569]
Tx-Frame Retry[-01] -- OSeqno: 003 ISeqno: 005 Type: IAX Subclass: ACK
Timestamp: 10004ms SCall: 22497 DCall: 12152 [10.0.3.1:4569]
Rx-Frame Retry[ No] -- OSeqno: 005 ISeqno: 003 Type: IAX Subclass: LAGRQ
Timestamp: 10021ms SCall: 12152 DCall: 22497 [10.0.3.1:4569]
Tx-Frame Retry[000] -- OSeqno: 003 ISeqno: 006 Type: IAX Subclass: LAGRP
Timestamp: 10021ms SCall: 22497 DCall: 12152 [10.0.3.1:4569]
Rx-Frame Retry[ No] -- OSeqno: 006 ISeqno: 004 Type: IAX Subclass: ACK
Timestamp: 10021ms SCall: 12152 DCall: 22497 [10.0.3.1:4569]
Rx-Frame Retry[ No] -- OSeqno: 003 ISeqno: 004 Type: IAX Subclass: LAGRQ
Timestamp: 10018ms SCall: 10041 DCall: 03690 [10.0.3.1:4569]
Tx-Frame Retry[000] -- OSeqno: 004 ISeqno: 004 Type: IAX Subclass: LAGRP
Timestamp: 10018ms SCall: 03690 DCall: 10041 [10.0.3.1:4569]
Rx-Frame Retry[ No] -- OSeqno: 004 ISeqno: 005 Type: IAX Subclass: ACK
Timestamp: 10018ms SCall: 10041 DCall: 03690 [10.0.3.1:4569]
Tx-Frame Retry[000] -- OSeqno: 005 ISeqno: 004 Type: IAX Subclass: LAGRQ
Timestamp: 09841ms SCall: 03690 DCall: 10041 [10.0.3.1:4569]
Rx-Frame Retry[ No] -- OSeqno: 004 ISeqno: 006 Type: IAX Subclass: LAGRP
Timestamp: 09841ms SCall: 10041 DCall: 03690 [10.0.3.1:4569]
Tx-Frame Retry[-01] -- OSeqno: 006 ISeqno: 005 Type: IAX Subclass: ACK
Timestamp: 09841ms SCall: 03690 DCall: 10041 [10.0.3.1:4569]
Rx-Frame Retry[ No] -- OSeqno: 005 ISeqno: 006 Type: IAX Subclass: HANGUP
Timestamp: 10240ms SCall: 10041 DCall: 03690 [10.0.3.1:4569]
CAUSE CODE : 0
Tx-Frame Retry[-01] -- OSeqno: 006 ISeqno: 006 Type: IAX Subclass: ACK
Timestamp: 10240ms SCall: 03690 DCall: 10041 [10.0.3.1:4569]
-- Stopped music on hold on IAX2/10001-3690
== Spawn extension (macro-dial, s, 38) exited non-zero on 'IAX2/10001-3690' in macro 'dial'
== Spawn extension (ext-group, 900, 14) exited non-zero on 'IAX2/10001-3690'
-- Executing [h@ext-group:1] Macro("IAX2/10001-3690", "hangupcall,") in new stack
-- Executing [s@macro-hangupcall:1] GotoIf("IAX2/10001-3690", "1?endmixmoncheck") in new stack
-- Goto (macro-hangupcall,s,9)
-- Executing [s@macro-hangupcall:9] NoOp("IAX2/10001-3690", "End of MIXMON check") in new stack
-- Executing [s@macro-hangupcall:10] GotoIf("IAX2/10001-3690", "1?nomeetmemon") in new stack
-- Goto (macro-hangupcall,s,28)
-- Executing [s@macro-hangupcall:28] NoOp("IAX2/10001-3690", "End of MEETME check") in new stack
-- Executing [s@macro-hangupcall:29] GotoIf("IAX2/10001-3690", "1?noautomon") in new stack
-- Goto (macro-hangupcall,s,34)
-- Executing [s@macro-hangupcall:34] NoOp("IAX2/10001-3690", "TOUCH_MONITOR_OUTPUT=") in new stack
-- Executing [s@macro-hangupcall:35] GotoIf("IAX2/10001-3690", "1?noautomon2") in new stack
-- Goto (macro-hangupcall,s,41)
-- Executing [s@macro-hangupcall:41] NoOp("IAX2/10001-3690", "MONITOR_FILENAME=") in new stack
-- Executing [s@macro-hangupcall:42] GotoIf("IAX2/10001-3690", "1?skiprg") in new stack
-- Goto (macro-hangupcall,s,45)
-- Executing [s@macro-hangupcall:45] GotoIf("IAX2/10001-3690", "0?skipblkvm") in new stack
-- Executing [s@macro-hangupcall:46] NoOp("IAX2/10001-3690", "Cleaning Up Block VM Flag: BLKVM/900/IAX2/10001-3690") in new stack
-- Executing [s@macro-hangupcall:47] NoOp("IAX2/10001-3690", "Deleting: BLKVM/900/IAX2/10001-3690 TRUE") in new stack
-- Executing [s@macro-hangupcall:48] GotoIf("IAX2/10001-3690", "1?theend") in new stack
-- Goto (macro-hangupcall,s,50)
-- Executing [s@macro-hangupcall:50] AGI("IAX2/10001-3690", "hangup.agi") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/hangup.agi
Настройки транка такие:
secret=secret
type=user
context=from-trunk-in
disallow=all
allow=alaw&ulaw
extentions_custom.conf
[from-trunk-in]
exten => _X.,1,Set(CHANNEL(language)=ru)
exten => _X.,n,NoOp(Language is ${CHANNEL(language)})
exten => _X.,n,Wait(3)
include => from-trunk
ps Wait(3) выставил, потому как многие жаловались, что в первые 3 секунды связь немного подлагивала :)
10.0.3.1 - шлюз E1
10.0.3.2 - шлюз GSM
10001 - IAX транк E1
Задан: 2014-08-22 10:28:01 +0400
Просмотрен: 195 раз
Обновлен: Aug 22 '14
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
Обнаружил еще такую вещь: проблема наблюдается только при линейном (поочередном) дозвоне. Те если выставить звонить всем - проблемы нет.
nyll ( 2014-08-25 22:23:36 +0400 )редактировать