Анализ звонков VoIP в Wireshark

В преддверии подкаста про VoIP внезапно родилась небольшая заметка.

Иногда приходится сталкиваться с проблемой установки голосового вызова. По неизвестной изначально причине, звонок просто рвётся.

Что делать, если методы влоб уже использованы?

Дамп.
А что сейчас неразрывно связано с дампами? Wireshark.

Пару лет назад у нас уже была статейка о работе в этом воистину магическом инструменте сетевика.
Не грех же и повторить?

Процесс обмена сообщениями SIP


Самым показательным будет, конечно, обмен сигнальными сообщениями и трафиком.
Telephony→SIP Flows

Здесь вы увидите все звонки данного дампа.
55f32321b7065e5e3b7ced223c289535.png

Возьмём второй звонок в качестве примера — в нём 27 пакетов — должно быть интересно. Нажмите Flow.

dad65e2a161a7a34d57b603170063db5.png

Для данного отвергнутого и оскорблённого звонка вы можете видеть сообщение PRACK, которое отчаянно посылает SIP-сервер (10.8.156.201) голосовому шлюзу (10.12.5.6), на что последний отвечает скудным »100 Trying». Это ненормально — должно быть 200.
Ну и наконец звонок завершается сообщением »500 Server Internal Error».

Неплохо!

Анализ сообщений SIP


Вообще говоря на самом деле, вы можете просто открывать одно за другим сообщения в вайршарке и проверять содержимое.
Типа того:

4678b48cb169ad0daaefbc816809eee7.png

Но в действительности гораздо более удобно было бы открыть все сообщения в одном окне как текст.
Analyze→Follow UDP Stream

ea4d2ecd9e716703cbed126a67a2d8f9.png

Голос из дампа


Хотелось бы подслушать о чём говорят в собранном дампе телефонного звонка? Нет ничего проще… А нет, много что гораздо проще этого. Даже содержать хаски проще, чем собрать и прослушать дамп.
В общем в предыдущем окне нужно кликнуть Player.
Потом Decode.

В следующем окне вы увидите спектрограмму вызова.

Чёрные прямоугольники — КПВ.

ae2a53cc2cbcfdbbb54f4c26a6d67e60.png

Окно разделено на два трека — голоса в разных направлениях.
Выбираем оба трэка и нажимаем Play.
Хотелось бы экспортнуть аудиофайл и расшарить его с друзьями? Вам в следующую секцию.

Анализ содержимого RTP-потока


Для всего RTP_потока можно проверить важнейшие параметры — потери, задержки, вариация задержки.
TelephonyRTPStream Analysis.
d6236559965c1fedbba819db9964c4b5.png

Если таки приспичило нарушить тайну переговоров и экспортировать голос во внешний файл, следует нажать Save payload

На следующем экране выбираете формат .au (впоследствии может быть открыт Windows Media Player или Audacity, чтобы конвертировать потом в mp3/wav). Both означает, что сохраняем оба направления голоса.

de98adaa23db71ef8a33623a5d87f0ab.png

Ну всё — вы мастер VoIP.

© Habrahabr.ru