Захват DTMF странного потока на tcpdump - PullRequest
0 голосов
/ 02 октября 2010

Я перехватил tcpdump SIP-вызова для отладки проблемы DTMF (повторяющиеся цифры), но у меня возникли некоторые проблемы при ее интерпретации.

Из того, что я понимаю, когда я анализирую захваченный трафик через "VOIP CALL" wireshark, я должен видеть что-то вроде этого (для цифр 123):

CAPTURE 1
RTP телефонное событие DTMF One 1
(конец мероприятия)
RTP телефонное мероприятие DTMF Two 2
(конец мероприятия)
RTP телефонное мероприятие DTMF Three 3
(конец события)

Но я вижу это вместо этого
Захват 2
RTP телефон события DTMF One 1
RTP телефон события DTMF One 1
RTP телефон события DTMF One 1
(Окончание)
RTP телефонное событие DTMF Two 2
RTP телефонная связь DTMF Two 2
RTP телефон события DTMF Two 2
(Окончание)
RTP телефон события DTMF Two 3
RTP телефонное мероприятие DTMF Two 3
RTP телефонное мероприятие DTMF Two 3
(конец)

В 1 системе CAPTURE 2 определяется как 123, но в другой системе он, кажется, декодирует его как имеющий повторяющиеся цифры. В чем причина того, что wireshark не группирует их как одно событие RTP?

Это поток трафика rtp:
Захват 1:

RTP EVENT DTMF 1
RTP EVENT DTMF 1
RTP EVENT DTMF 1 (конец)
RTP EVENT DTMF 1 (конец)
RTP EVENT DTMF 1 (конец)
RTP EVENT DTMF 2
RTP EVENT DTMF 2
RTP EVENT DTMF 2 (конец)
RTP EVENT DTMF 2 (конец)
RTP EVENT DTMF 2 (конец)
RTP EVENT DTMF 3
RTP EVENT DTMF 3
RTP EVENT DTMF 3 (конец)
RTP EVENT DTMF 3 (конец)
RTP EVENT DTMF 3 (конец)
RTP PAYLOAD
...
...
...
RTP PAYLOAD

, тогда как CAPTURE 2:
RTP EVENT DTMF 1
RTP PAYLOAD
RTP EVENT DTMF 1
RTP PAYLOAD
RTP EVENT DTMF 1 (конец)
RTP PAYLOAD
RTP EVENT DTMF 1 (конец)
RTP PAYLOAD
RTP EVENT DTMF 1 (конец)
RTP PAYLOAD
RTP PAYLOAD
RTP PAYLOAD
RTP PAYLOAD
RTP PAYLOAD
RTP EVENT DTMF 2
RTP PAYLOAD
RTP EVENT DTMF 2
RTP PAYLOAD
RTP EVENT DTMF 2 (конец)
RTP PAYLOAD
RTP EVENT DTMF 2 (конец)
RTP PAYLOAD
RTP EVENT DTMF 2 (конец)
RTP PAYLOAD
RTP PAYLOAD
RTP PAYLOAD
RTP PAYLOAD
RTP EVENT DTMF 3
RTP PAYLOAD
RTP EVENT DTMF 3
RTP PAYLOAD
RTP EVENT DTMF 3 (конец)
RTP PAYLOAD
RTP EVENT DTMF 3 (конец)
RTP PAYLOAD
RTP EVENT DTMF 3 (конец)
RTP PAYLOAD
RTP PAYLOAD
RTP PAYLOAD
RTP PAYLOAD
RTP PAYLOAD
RTP PAYLOAD

CAPTURE 2 соответствует RFC2833?

Ответы [ 2 ]

3 голосов
/ 23 октября 2010

На самом деле спецификация побуждает вас передавать пакеты событий RTP с избыточностью из-за возможной потери пакетов, и они предлагают отправлять каждые 3 раза как минимум. Проверьте время начала и окончания каждого дублированного события. Если вам нужно продлить событие (клавиша все еще удерживается, дольше, чем вы хотите закодировать в одном событии и т. Д.), Тогда вы можете продлить его, не завершая.

По этой же причине пакеты End отправляются 3 раза. (См. раздел 3.6 RFC 2833 ).

2 голосов
/ 02 октября 2010

Вполне возможно, что RFC 2833"событие" будет закодировано как несколько пакетов RTP. Раздел 3.6 говорит нам, что

Если событие продолжается более один период, источник, генерирующий события должны отправить новый пакет событий со значением метки времени RTP соответствует началу Событие и продолжительность мероприятия увеличился соответственно.

RFC определяет "один период" как 50 мс.

So

СОБЫТИЕ RTP DTMF 1
RTP EVENT DTMF 1
RTP EVENT DTMF 1 (конец)

означает, что кто-то нажимает клавишу 1 в течение примерно 150 мс.

...