Анализ звонков VoIP в Wireshark
В преддверии подкаста про VoIP внезапно родилась небольшая заметка.
Иногда приходится сталкиваться с проблемой установки голосового вызова. По неизвестной изначально причине, звонок просто рвётся.
Что делать, если методы влоб уже использованы?
Дамп.
А что сейчас неразрывно связано с дампами? Wireshark.
Пару лет назад у нас уже была статейка о работе в этом воистину магическом инструменте сетевика.
Не грех же и повторить?
Процесс обмена сообщениями 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.