Здравствуйте.
Подскажите пожалуйста, где копать.
Asterisk 1.4
Требование - абонент звонит в коллцентр - попадает на IVR потом в очередь (играет музыка) - потом к оператору и с этого момента начинается тарификация
Делаю
Проблема в следующем
При Answer() вместо Progress() и голос и музыка в очереди абоненту слышна - но тарификация с 1 секунды естественно
При Progress() - у абонента тишина но в логах видно что проигрывается и голос и музыка в очереди и в конечном счете к оператору приходит вызов и тарификация только после снятия трубки оператором - все как и надо. Где искать причину тишины? В Asterisk, на VOIP шлюзе Cisco или дергать станцию EWSD ? )) Админ Cisco и люди на EWSD божатся что у них правильно настроены Early media и предотвтетное состояние.
Можно детальней посмотреть: включить
rtp set debug on
и если на третьем шаге
exten => номер,1,Ringing()
exten => номер,n,Progress()
exten => номер,n,Playback(wav_main,noanswer)
будет улетать rtp в сторону провайдера - то у вас всё ОК, а люди на EWSD пусть божатся в другую сторону.
Стоит Asterisk 1.4.22-4
там есть только rtp debug ip <ip_cisco>
До звонка
^^[Kod-od-asterisk2*CLI> ^[Dec 1 12:19:24] Got RTP packet from ip_cisco:17138 (type 00, seq 002278, ts 1962468657, len 000160)
.^^[Kod-od-asterisk2*CLI> ^[Dec 1 12:19:24] Sent RTP packet to ip_cisco:17138 (type 00, seq 057040, ts 2239000, len 000160)
.^^[Kod-od-asterisk2*CLI> ^[Dec 1 12:19:24] Got RTP packet from ip_cisco:17138 (type 00, seq 002279, ts 1962468817, len 000160)
.^^[Kod-od-asterisk2*CLI> ^[Dec 1 12:19:24] Sent RTP packet to ip_cisco:17138 (type 00, seq 057041, ts 2239160, len 000160)
.^^[Kod-od-asterisk2*CLI> ^[Dec 1 12:19:24] Got RTP packet from ip_cisco:17138 (type 00, seq 002280, ts 1962468977, len 000160)
.^^[Kod-od-asterisk2*CLI> ^[Dec 1 12:19:24] Sent RTP packet to ip_cisco:17138 (type 00, seq 057042, ts 2239320, len 000160)
После
.^^[Kod-od-asterisk2*CLI> ^[Dec 1 12:19:27] Sent RTP packet to ip_cisco:17138 (type 00, seq 057193, ts 2263480, len 000160)
.^^[Kod-od-asterisk2*CLI> ^[Dec 1 12:19:27] -- Executing [номер@from-trunk:1] Progress("SIP/ip_cisco-b7d35778", "") in new stack
.^^[Kod-od-asterisk2*CLI> ^[Dec 1 12:19:27] -- Executing [номер@from-trunk:2] Playback("SIP/ip_cisco-b7d35778", "wav_main|noanswer") in new sta
.^^[Kod-od-asterisk2*CLI> ^[Dec 1 12:19:27] Sent RTP packet to ip_cisco:19150 (type 00, seq 060603, ts 000160, len 000160)
.^^[Kod-od-asterisk2*CLI> ^[Dec 1 12:19:27] -- <SIP/ip_cisco-b7d35778> Playing 'wav_main' (language 'en')
.^^[Kod-od-asterisk2*CLI> ^[Dec 1 12:19:27] Got RTP packet from ip_cisco:17138 (type 00, seq 002432, ts 1962493297, len 000160)
.^^[Kod-od-asterisk2*CLI> ^[Dec 1 12:19:27] Sent RTP packet to ip_cisco:17138 (type 00, seq 057194, ts 2263640, len 000160)
.^^[Kod-od-asterisk2*CLI> ^[Dec 1 12:19:27] Sent RTP packet to ip_cisco:19150 (type 00, seq 060604, ts 000320, len 000160)
.^^[Kod-od-asterisk2*CLI> ^[Dec 1 12:19:27] Got RTP packet from ip_cisco:17138 (type 00, seq 002433, ts 1962493457, len 000160)
.^^[Kod-od-asterisk2*CLI> ^[Dec 1 12:19:27] Sent RTP packet to ip_cisco:17138 (type 00, seq 057195, ts 2263800, len 000160)
.^^[Kod-od-asterisk2*CLI> ^[Dec 1 12:19:27] Got RTP packet from ip_cisco:19150 (type 00, seq 001113, ts 1183337729, len 000160)
.^^[Kod-od-asterisk2*CLI> ^[Dec 1 12:19:27] Sent RTP packet to ip_cisco:19150 (type 00, seq 060605, ts 000480, len 000160)
.^^[Kod-od-asterisk2*CLI> ^[Dec 1 12:19:27] Got RTP packet from ip_cisco:17138 (type 00, seq 002434, ts 1962493617, len 000160)
Я так понимаю что до звонка динамический порт 17138 использовался в обе стороны
а при проигрывании музыки уже используется динамический порт 19450. Или ошибаюсь? Значит ли это что от меня все улетает? Может в кодеке проблемы хотя проигрывается же все при Answer () или без параметра noanswer
двусторонний поток
^^[Kod-od-asterisk2*CLI> ^[Dec 1 12:19:24] Got RTP packet from ip_cisco:17138 (type 00, seq 002278, ts 1962468657, len 000160)
.^^[Kod-od-asterisk2*CLI> ^[Dec 1 12:19:24] Sent RTP packet to ip_cisco:17138 (type 00, seq 057040, ts 2239000, len 000160)
говорит о том, что уже идёт один разговор с провайдером в этот момент. А потом появляется ваш второй входящий вызов:
^^[Kod-od-asterisk2*CLI> ^[Dec 1 12:19:27] Sent RTP packet to ip_cisco:19150 (type 00, seq 060603, ts 000160, len 000160)
.^^[Kod-od-asterisk2*CLI> ^[Dec 1 12:19:27] -- <SIP/ip_cisco-b7d35778> Playing 'wav_main' (language 'en')
.^^[Kod-od-asterisk2*CLI> ^[Dec 1 12:19:27] Sent RTP packet to ip_cisco:19150 (type 00, seq 060604, ts 000320, len 000160)
и вот посылка Sent RTP packet - это и есть то, что EWSD должны бы обрабатывать как early media. Но вот при этом не предвидится получать от них RTP packet:
.^^[Kod-od-asterisk2*CLI> ^[Dec 1 12:19:27] Got RTP packet from ip_cisco:19150 (type 00, seq 001113, ts 1183337729, len 000160)
.^^[Kod-od-asterisk2*CLI> ^[Dec 1 12:19:27] Sent RTP packet to ip_cisco:19150 (type 00, seq 060605, ts 000480, len 000160)
Можете прослушать эти разговоры через ChanSpy. Синтаксис сами посмотрите?
Слушал ChanSpy - тишина
Как только оператор берет трубку - слышится очень короткий сигнал музыки - я так понимаю когда проключается уже линия то музыка таки чуть доходит до абонента.
Executing [номер@from-trunk:1] Progress("SIP/ip_cisco-b7903940", "") in new stack
[Dec 1 14:54:26] -- Executing [номер@from-trunk:2] Playback("SIP/ip_cisco-b7903940", "wav_main|noanswer") in new stack
[Dec 1 14:54:26] -- <SIP/ip_cisco-b7903940> Playing 'wav_main' (language 'en')
[Dec 1 14:54:38] -- Executing [номер@from-trunk:3] Queue("SIP/ip_cisco-b7903940", "0") in new stack
[Dec 1 14:54:38] -- Started music on hold, class 'default', on SIP/ip_cisco-b7903940
[Dec 1 14:54:39] -- SIP/9410-b790ccc0 is ringing
[Dec 1 14:54:43] -- Nobody picked up in 5000 ms
[Dec 1 14:54:49] -- SIP/9410-b7924b18 is ringing
[Dec 1 14:54:54] -- Nobody picked up in 5000 ms
[Dec 1 14:54:59] -- SIP/9410-b7924b18 is ringing
[Dec 1 14:55:02] -- Executing [999#9410@from-internal:1] ChanSpy("SIP/9409-b7904ed0", "SIP/9410|q") in new stack
[Dec 1 14:55:02] == Spying on channel SIP/9410-b7924b18
[Dec 1 14:55:04] -- Nobody picked up in 5000 ms
[Dec 1 14:55:04] == Done Spying on channel SIP/9410-b7924b18
[Dec 1 14:55:09] == Spying on channel SIP/9410-b7924b18
[Dec 1 14:55:10] -- SIP/9410-b7924b18 is ringing
[Dec 1 14:55:15] -- Nobody picked up in 5000 ms
[Dec 1 14:55:15] == Done Spying on channel SIP/9410-b7924b18
[Dec 1 14:55:20] == Spying on channel SIP/9410-b7920270
[Dec 1 14:55:20] -- SIP/9410-b7920270 is ringing
[Dec 1 14:55:23] -- SIP/9410-b7920270 answered SIP/ip_cisco-b7903940
[Dec 1 14:55:23] -- Stopped music on hold on SIP/ip_cisco-b7903940
[Dec 1 14:55:33] == Spawn extension (from-trunk, номер, 3) exited non-zero on 'SIP/ip_cisco-b7903940'
[Dec 1 14:55:33] -- Executing [h@from-trunk:1] Hangup("SIP/ip_cisco-b7903940", "") in new stack
[Dec 1 14:55:33] == Spawn extension (from-trunk, h, 1) exited non-zero on 'SIP/ip_cisco-b7903940'
[Dec 1 14:55:33] == Done Spying on channel SIP/9410-b7920270
Разве не очевидно, что начать прослушивать
Executing [999#9410@from-internal:1] ChanSpy("SIP/9409-b7904ed0", "SIP/9410|q")
надо было до
Executing [номер@from-trunk:2] Playback("SIP/ip_cisco-b7903940", "wav_main|noanswer") in new stack
а не после?