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

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

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

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

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

Wireshark имеет несколько встроенных функций для работы с этой технологией.
Он поддерживает массу голосовых протоколов — SIP, SDP, RTSP, H.323, RTCP, SRTP и другие.
И, конечно же, умеет перехватывать и сохранять голосовой трафик для дальнейшего прослушивания.
Этот функционал как нельзя лучше подойдет для траблшутинга в сетях Voice over IP.
Меню Statistics — Flow Graph покажет наглядную картину, как происходил весь обмен пакетами.

А вообще целое меню Telephony отведено для работы с голосовым трафиком.
Например, Telephony – RTP – Show All Streams покажет подробно, что происходило с RTP, в частности jitter (параметр, который, вероятно, самый важный в голосе), что иногда сразу скажет о наличии проблем.

Нажав на кнопку “Analyze”, можно открыть окно RTP stream Analysis – и, выбрав там поток, можно его даже проиграть, используя кнопку player.
Сначала отроется окно проигрывателя, в котором вначале нужно установить подходящее значение jitter и использовать кнопку decode.

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

Так же существует еще один способ прослушивания голосовых звонков — можно зайти в меню Telephony – VoIP Calls.

Откроется окно со списком совершенных звонков, где опять же можно нажать кнопку player, отменить нужные разговоры флажками и нажать play.
Для того чтобы добиться приемлемого качества звучания, потребуется проиграться со значением поля jitter buffer, меняя его значение.

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


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

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


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



Для данного отвергнутого и оскорблённого звонка вы можете видеть сообщение PRACK, которое отчаянно посылает SIP-сервер (10.8.156.201) голосовому шлюзу (10.12.5.6), на что последний отвечает скудным “100 Trying.

Это ненормально – должно быть 200.
Ну и наконец звонок завершается сообщением “500 Server Internal Error.

Неплохо!

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


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



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

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


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

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

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



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

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


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


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

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



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