AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Беда с DTMF

Asterisk IP PBX 27 сообщений -
#1

Всем привет. Вот столкнулся с проблемой. Может народ поможет или подскажет.
Имеем следующую конфигурацию:

SIP Provider -> * ->T1 Card ->Conference Bridge

Здесь я использую * как переходник между sip->T1. Conference Bridge это штуковина для аудио конференций. В нее входит Т1 от *.
Используя X-lite подключенный к * я без проблем могу звонить на Conf.Bridge и он корректно расспознает все DTMF комманды. К сожелению я в * еше новичек и нашел только одну дебаг команду rtp debug которая выводит чего нажимаешь во время звонка. Вот то что у меня выдает на корректно работаюших DTMF

Цитата:
Got RTP packet from 10.100.2.101:20548 (type 101, seq 003340, ts 970680, len 000004)
Got RTP RFC2833 from 10.100.2.101:20548 (type 101, seq 003340, ts 970680, len 000004, mark 1, event 00000004, end 0, duration 00160)
Got RTP packet from 10.100.2.101:20548 (type 101, seq 003340, ts 970680, len 000004)
Got RTP RFC2833 from 10.100.2.101:20548 (type 101, seq 003340, ts 970680, len 000004, mark 1, event 00000004, end 0, duration 00160)
Got RTP packet from 10.100.2.101:20548 (type 101, seq 003340, ts 970680, len 000004)
Got RTP RFC2833 from 10.100.2.101:20548 (type 101, seq 003340, ts 970680, len 000004, mark 1, event 00000004, end 0, duration 00160)
Got RTP packet from 10.100.2.101:20548 (type 101, seq 003341, ts 970680, len 000004)
Got RTP RFC2833 from 10.100.2.101:20548 (type 101, seq 003341, ts 970680, len 000004, mark 0, event 00000004, end 0, duration 00320)
Got RTP packet from 10.100.2.101:20548 (type 101, seq 003342, ts 970680, len 000004)
Got RTP RFC2833 from 10.100.2.101:20548 (type 101, seq 003342, ts 970680, len 000004, mark 0, event 00000004, end 0, duration 00480)
Got RTP packet from 10.100.2.101:20548 (type 101, seq 003343, ts 970680, len 000004)
Got RTP RFC2833 from 10.100.2.101:20548 (type 101, seq 003343, ts 970680, len 000004, mark 0, event 00000004, end 1, duration 00640)
Got RTP packet from 10.100.2.101:20548 (type 101, seq 003343, ts 970680, len 000004)
Got RTP RFC2833 from 10.100.2.101:20548 (type 101, seq 003343, ts 970680, len 000004, mark 0, event 00000004, end 1, duration 00640)
Got RTP packet from 10.100.2.101:20548 (type 101, seq 003343, ts 970680, len 000004)
Got RTP RFC2833 from 10.100.2.101:20548 (type 101, seq 003343, ts 970680, len 000004, mark 0, event 00000004, end 1, duration 00640)
Got RTP packet from 10.100.2.101:20548 (type 00, seq 003344, ts 971320, len 000160)


После подключения к SIP провайдеру я могу без вопросов звонить на Conference Bridge (все слышно не вопрос) НО! Не расспознается DTMF вообще.

Вот лог который получается после нажатия на DTMF испльзуя провайдера:

Цитата:

Got RTP packet from 74.52.15.138:18180 (type 00, seq 039690, ts 025600, len 000160)
Sent RTP packet to 74.52.15.138:18180 (type 00, seq 010013, ts 027520, len 000160)
Got RTP packet from 74.52.15.138:18180 (type 101, seq 039691, ts 025600, len 000004)
Got RTP RFC2833 from 74.52.15.138:18180 (type 101, seq 039691, ts 025600, len 000004, mark 1, event 00000008, end 0, duration 00000)
Got RTP packet from 74.52.15.138:18180 (type 101, seq 039692, ts 025600, len 000004)
Got RTP RFC2833 from 74.52.15.138:18180 (type 101, seq 039692, ts 025600, len 000004, mark 0, event 00000008, end 0, duration 00000)
Got RTP packet from 74.52.15.138:18180 (type 101, seq 039693, ts 025600, len 000004)
Got RTP RFC2833 from 74.52.15.138:18180 (type 101, seq 039693, ts 025600, len 000004, mark 0, event 00000008, end 0, duration 00000)
Got RTP packet from 74.52.15.138:18180 (type 101, seq 039694, ts 025600, len 000004)
Got RTP RFC2833 from 74.52.15.138:18180 (type 101, seq 039694, ts 025600, len 000004, mark 0, event 00000008, end 1, duration 00800)
Got RTP packet from 74.52.15.138:18180 (type 101, seq 039694, ts 025600, len 000004)
Got RTP RFC2833 from 74.52.15.138:18180 (type 101, seq 039694, ts 025600, len 000004, mark 0, event 00000008, end 1, duration 00800)
Got RTP packet from 74.52.15.138:18180 (type 101, seq 039694, ts 025600, len 000004)
Got RTP RFC2833 from 74.52.15.138:18180 (type 101, seq 039694, ts 025600, len 000004, mark 0, event 00000008, end 1, duration 00800)
Got RTP packet from 74.52.15.138:18180 (type 00, seq 039695, ts 025760, len 000160)



Что интересно. Если в dtmfmode поменять значение на inband или info то передается только то что первое нажимаешь ( например # или 4)
Игрался со значениями toneduration=300 - 1300...
не помогает.

Если найдется человек который смог бы помочь то моя благодарность/час не знала бы границ в пределах разумного Smile

[/list][/list]
#2

1. DTMF удобнее смотреть добавив записи console значение dtmf (это в logger.conf)
2. Какая версия *?
3. Какой-то кастрированный dtmf со стороны провайдела приходит: duration 00000, минимум бы хотябы 120

_________________
SuSE 10.1 / Asterisk-trunk / Celeron 1000 / chan_misdn (HFC)
Linksys PAP2T / SPA941 / SPA3102 / SPA2102
#3

IgorG писал(а):
1. DTMF удобнее смотреть добавив записи console значение dtmf (это в logger.conf)
2. Какая версия *?
3. Какой-то кастрированный dtmf со стороны провайдела приходит: duration 00000, минимум бы хотябы 120


Спасибо за совет по поводу DTMF... Теперь намного легче стало читать.
Версия * 1.4.9 - на Linux Clarabell
Теперь с новым дебагом у меня вот так получается:

Работающий DTMF:

Код:
-- parse_srv: SRV mapped to host proxy01.dal.us.icall.net, port 5060
-- Executing [3001@from-sip:1] Dial("SIP/2001-095df430", "Zap/g1/3001") in new stack
-- Requested transfer capability: 0x00 - SPEECH
-- Called g1/3001
-- Zap/1-1 is proceeding passing it to SIP/2001-095df430
-- Zap/1-1 is ringing
-- Zap/1-1 answered SIP/2001-095df430
[Sep 26 11:43:22] DTMF[6092]: channel.c:2338 __ast_read: DTMF end '1' received on SIP/2001-095df430, duration 0 ms
[Sep 26 11:43:22] DTMF[6092]: channel.c:2372 __ast_read: DTMF begin emulation of '1' with duration 100 queued on SIP/2001-095df430
[Sep 26 11:43:23] DTMF[6092]: channel.c:2444 __ast_read: DTMF end emulation of '1' queued on SIP/2001-095df430
[Sep 26 11:43:23] DTMF[6092]: channel.c:2338 __ast_read: DTMF end '2' received on SIP/2001-095df430, duration 0 ms
[Sep 26 11:43:23] DTMF[6092]: channel.c:2372 __ast_read: DTMF begin emulation of '2' with duration 100 queued on SIP/2001-095df430
[Sep 26 11:43:23] DTMF[6092]: channel.c:2444 __ast_read: DTMF end emulation of '2' queued on SIP/2001-095df430
[Sep 26 11:43:24] DTMF[6092]: channel.c:2338 __ast_read: DTMF end '3' received on SIP/2001-095df430, duration 0 ms
[Sep 26 11:43:24] DTMF[6092]: channel.c:2372 __ast_read: DTMF begin emulation of '3' with duration 100 queued on SIP/2001-095df430
[Sep 26 11:43:24] DTMF[6092]: channel.c:2444 __ast_read: DTMF end emulation of '3' queued on SIP/2001-095df430
-- Hungup 'Zap/1-1'
== Spawn extension (from-sip, 3001, 1) exited non-zero on 'SIP/2001-095df430'


Не работающий DTMF:

Код:
-- parse_srv: SRV mapped to host proxy01.dal.us.icall.net, port 5060
-- Executing [6142955768@from-sip:1] Dial("SIP/cust_ark-095e0dd0", "Zap/g1/6142955768") in new stack
-- Requested transfer capability: 0x00 - SPEECH
-- Called g1/6142955768
-- Zap/1-1 is proceeding passing it to SIP/cust_ark-095e0dd0
-- Zap/1-1 is ringing
-- Zap/1-1 answered SIP/cust_ark-095e0dd0
[Sep 26 11:44:55] DTMF[6103]: channel.c:2338 __ast_read: DTMF end '4' received on SIP/cust_ark-095e0dd0, duration 0 ms
[Sep 26 11:44:55] DTMF[6103]: channel.c:2372 __ast_read: DTMF begin emulation of '4' with duration 100 queued on SIP/cust_ark-095e0dd0
-- Hungup 'Zap/1-1'
== Spawn extension (from-sip, 6142955768, 1) exited non-zero on 'SIP/cust_arkadin-095e0dd0'


Нажимал 1,2,3,4 -- дошло только 4.... и какое то кастрирование как ты говоришь...
Теперь вопрос.. Только не кидайте в меня палками потому как уже говорил - изучаю * 3 день... Для DTMF надо настроить провайдера чтоб в обе стороны можно было подсоеденятся.. т.е чтоб не только мне могли звонить.. но и я мог звонить? Потому что я пока настроил что только мне могут с наружи звонить... я наружу через SIP/cust_ark звонить не могу... не получается пока настроить...
2 вопрос - может файрволл обрезать DTMF?
Сегодня буду настраивать исходящие звонки... может поможет...
Да может кто знает провайдера у которого DTMF 100% работает.. может его попробывать? Оплата по кередит кард, пейпал...

[/code]
#4

Направление звонков не влияет на прохождение dtmf. Фаервол так же никак не может влиять на прохождение dtmf - если сигнализация и голос проходят нормально, то никаких препятствий к работе dtmf не должно быть.

Там где неработающий dtmf в добавок ещё включить rtp debug и вывод с консоли в студию. Плюс бы еще посмотреть как описан провайдер в sip.conf Smile

_________________
SuSE 10.1 / Asterisk-trunk / Celeron 1000 / chan_misdn (HFC)
Linksys PAP2T / SPA941 / SPA3102 / SPA2102
#5

IgorG Спасибо за помощь! По моему проблема резрешилась псоле того как поменял провайдера. С новым провайдером все доходит корректно...

вот ради интереса кусок корректно работающего лога от другого провайдера:

Код:

clarabell*CLI>
Sent RTP packet to 208.239.76.169:28032 (type 00, seq 000613, ts 477096, len 000160)

clarabell*CLI>
Got RTP packet from 208.239.76.169:28032 (type 00, seq 003113, ts 476000, len 000160)

clarabell*CLI>
Got RTP packet from 208.239.76.169:28032 (type 100, seq 003114, ts 476160, len 000004)
Got RTP RFC2833 from 208.239.76.169:28032 (type 100, seq 003114, ts 476160, len 000004, mark 1, event 0000000a, end 0, duration 00000)
[Sep 27 12:51:31] DEBUG[9860]: rtp.c:727 process_rfc2833: - RTP 2833 Event: 0000000a (len = 4)
[Sep 27 12:51:31] DTMF[9860]: channel.c:2389 __ast_read: DTMF begin '*' received on SIP/3862000-09444548
[Sep 27 12:51:31] DEBUG[9860]: chan_zap.c:1048 zt_digit_begin: Started VLDTMF digit '*'

clarabell*CLI>
Got RTP packet from 208.239.76.169:28032 (type 00, seq 003115, ts 476160, len 000160)

clarabell*CLI>
Got RTP packet from 208.239.76.169:28032 (type 100, seq 003116, ts 476160, len 000004)
Got RTP RFC2833 from 208.239.76.169:28032 (type 100, seq 003116, ts 476160, len 000004, mark 0, event 0000000a, end 0, duration 00080)
[Sep 27 12:51:31] DEBUG[9860]: rtp.c:727 process_rfc2833: - RTP 2833 Event: 0000000a (len = 4)

clarabell*CLI>
Got RTP packet from 208.239.76.169:28032 (type 100, seq 003117, ts 476160, len 000004)
Got RTP RFC2833 from 208.239.76.169:28032 (type 100, seq 003117, ts 476160, len 000004, mark 0, event 0000000a, end 0, duration 00160)


Будем теперь копать дальше... Cool Еще раз спасибо!
#6

Странные вещи происходят.... Shocked

На мое удивление сейчас работают оба провайдера... DTMF летают и передаются корректно. Чего поменялось:

1. Открыл все порты на фаерволе
2. Поставил nat=yes в sip.conf
3. Первый провайдер (с которым dtmf не работали) поменял у себя rfc2833-inband... потом обратно inband-rfc2833

Больше ничего не менялось.

Но как всегда есть одно НО... Exclamation И это же НО вопрос к знающим людям... Question

В консоле я вообще не могу отловить ни один DTMF у старого провайдера... вот кусок лога:

Код:

clarabell*CLI>
Sent RTP packet to 208.239.76.169:28032 (type 00, seq 064355, ts 186544, len 000160)

clarabell*CLI>
Got RTP packet from 208.239.76.169:28032 (type 00, seq 001245, ts 185440, len 000160)

clarabell*CLI>
Sent RTP packet to 208.239.76.169:28032 (type 00, seq 064356, ts 186704, len 000160)

clarabell*CLI>
Got RTP packet from 208.239.76.169:28032 (type 00, seq 001246, ts 185600, len 000160)

clarabell*CLI>
Sent RTP packet to 208.239.76.169:28032 (type 00, seq 064357, ts 186864, len 000160)

clarabell*CLI>
Got RTP packet from 208.239.76.169:28032 (type 00, seq 001247, ts 185760, len 000160)

clarabell*CLI>
Sent RTP packet to 208.239.76.169:28032 (type 00, seq 064358, ts 187024, len 000160)

clarabell*CLI>
Got RTP packet from 208.239.76.169:28032 (type 00, seq 001248, ts 185920, len 000160)

clarabell*CLI>
Sent RTP packet to 208.239.76.169:28032 (type 00, seq 064359, ts 187184, len 000160)


Повторяюсь... DTMF доходят без проблем... но их не видно... у меня был включен dtmf и rtp debug... не видно их..
Кто может сказать почему...может есть какая команда еще о которой я не знаю...

Со вторым провайдером все нормально и DTMF лог корректный.. пример этого лога я выкладывал в предидущем посте...

У кого какие идеи? Idea
#7

Есть только одно предположение: они у себя поставили inband, в астериске настроен rfc2833. В связи с этим dtmf проходит как бы транзитом в голосовом потоке, при этом астериск его не видит...
_________________
SuSE 10.1 / Asterisk-trunk / Celeron 1000 / chan_misdn (HFC)
Linksys PAP2T / SPA941 / SPA3102 / SPA2102
#8

IgorG писал(а):
Есть только одно предположение: они у себя поставили inband, в астериске настроен rfc2833. В связи с этим dtmf проходит как бы транзитом в голосовом потоке, при этом астериск его не видит...


Утверждают что стоит рфс2833... странно как-то.. не люблю я таких загадок... когда вдруг заработало... буду ломать дальше. У меня теперь с другим провайдером лажа... звонки через один доходят... один раз позвонишь - все ок... сразу после этого позвонишь - на * звонок доходит и потом срзау же сбивается... буду разбираться.
Я как уже говорил в этом деле новичек и делаю первые шаги.
Ну и еще раз спасибо за помощь.
#9

grizly1977 писал(а):
Я как уже говорил в этом деле новичек и делаю первые шаги.

Ну, тогда это многое объясняет! И оправдывает?