Анализ звонков 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_потока можно проверить важнейшие параметры – потери, задержки, вариация задержки.
Telephony→RTP→Stream Analysis.

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

Ну всё – вы мастер VoIP.
Комментарии