Анализ SIP-сессии (SIP + RTP) в Wireshark: расшифровка VoIP-вызова

Анализ SIP-сессии (SIP + RTP) в Wireshark: расшифровка VoIP-вызова

  • Окт, 05, 2025
Анализ SIP-сессии (SIP + RTP) в Wireshark: расшифровка VoIP-вызова

Зачем это нужно?

Когда VoIP-вызов «не идёт», «обрывается» или «слышно эхо», стандартные инструменты (ping, traceroute) бесполезны. Проблема — в прикладном уровне: SIP-сигнализации и RTP-медиапотоке.

Wireshark — единственный инструмент, который позволяет «увидеть» весь жизненный цикл вызова: от INVITE до BYE, и прослушать сам разговор (если нет шифрования).

В этой статье — пошаговый разбор реального SIP-вызова в Wireshark, включая фильтрацию, анализ кодеков и воспроизведение аудио.

✅ Информация основана на:
— Wireshark 4.2+
— RFC 3261 (SIP), RFC 3550 (RTP)
— Практике диагностики на FreePBX, 3CX, Asterisk
— Безопасность: анализ проводится только в рамках согласованного тестирования

1. Что такое SIP и RTP — кратко

Протокол Назначение Порт по умолчанию
SIP (Session Initiation Protocol) Установка, управление и завершение сессии 5060 (UDP/TCP)
RTP (Real-time Transport Protocol) Передача аудио/видео Динамический (10000–20000)
RTCP Контроль качества (джиттер, потери) RTP + 1

Важно: SIP — это «телефонный звонок», RTP — это «голос в трубке».

2. Подготовка к захвату трафика

Что понадобится:

Компонент Примечание
Wireshark 4.0+ С поддержкой RTP и VoIP-анализа
Доступ к сети SPAN-порт, TAP или локальный захват
VoIP-оборудование IP-телефон, softphone или PBX
Разрешение на анализ Только в тестовой среде или с согласия пользователей
⚠️ Никогда не анализируйте зашифрованный трафик (SRTP, TLS) без ключей — вы увидите только шум.

3. Захват трафика

Шаг 1: Выберите интерфейс

  1. Запустите Wireshark
  2. Выберите сетевой интерфейс (или SPAN-порт коммутатора)
  3. Нажмите Start

Шаг 2: Инициируйте вызов

Сделайте тестовый вызов между двумя устройствами (например, IP-телефон → softphone).

Шаг 3: Остановите захват

После завершения вызова нажмите Stop (красный квадрат).

4. Фильтрация SIP-трафика

В строке фильтра введите:

sip

Вы увидите только SIP-пакеты: INVITE, 100 Trying, 180 Ringing, 200 OK, ACK, BYE.

Чтобы увидеть всё, что связано с вызовом (включая RTP), используйте:

ip.addr == 192.168.1.10 || ip.addr == 192.168.1.20

(замените IP на адреса участников вызова)

5. Анализ SIP-диалога

Шаг 1: Найдите INVITE

Кликните по первому пакету INVITE. Внизу раскройте:

  • SIP → Request-Line: метод и URI
  • Via: путь сигнала (показывает NAT и прокси)
  • Contact: реальный IP телефона (важно при NAT)
  • SDP (Session Description Protocol): параметры медиа

Шаг 2: Проверьте SDP

В SDP вы найдёте:

m=audio 16384 RTP/AVP 0 8 101
c=IN IP4 192.168.1.10
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000

Это означает:

  • Аудиопорт: 16384
  • Поддерживаемые кодеки: G.711 μ-law (0), G.711 A-law (8), DTMF (101)
  • IP для RTP: 192.168.1.10

Шаг 3: Сопоставьте ответ 200 OK

В ответе от получателя будет свой SDP — с выбранным кодеком и портом. Именно эти данные определяют, куда и как пойдёт RTP-поток.

6. Анализ RTP-потока

Шаг 1: Перейдите в меню VoIP

  1. В Wireshark: Telephony → VoIP Calls
  2. В списке вызовов выберите ваш сеанс
  3. Нажмите Flow — откроется диаграмма вызова

Шаг 2: Просмотрите медиапоток

  1. В том же окне нажмите Prepare FilterApply
  2. Теперь видны только пакеты этого вызова
  3. Перейдите: Telephony → RTP → RTP Streams
  4. Выберите поток и нажмите Analyze

Шаг 3: Оцените качество

В отчёте вы увидите:

Параметр Норма Проблема
Packet Loss < 1% > 3% — обрывы речи
Jitter < 30 мс > 50 мс — задержки, эхо
MOS Score > 4.0 < 3.5 — плохое качество

7. Прослушивание аудио (если не SRTP)

  1. В окне RTP Streams выберите поток
  2. Нажмите Play Streams
  3. Wireshark воспроизведёт аудио через динамики
🔒 Если используется SRTP (шифрование), воспроизведение невозможно без ключей.

8. Распространённые проблемы и как их найти

Симптом Где искать в Wireshark Решение
Вызов не идёт Нет INVITE или 404/486 в ответе Проверьте маршрутизацию SIP, ACL, firewall
Односторонняя слышимость RTP только в одну сторону Проблема с NAT — настройте STUN или RTP proxy
Эхо Высокий jitter, дублирующие пакеты Проверьте acoustic echo cancellation на телефонах
Обрыв через 30 сек Пакеты BYE или re-INVITE с ошибкой Проверьте NAT timeout или SIP ALG на роутере

9. Советы по эффективному анализу

  • Всегда захватывайте трафик до и после вызова (5–10 сек)
  • Используйте coloring rules для SIP/RTP (View → Coloring Rules)
  • Экспортируйте вызов: File → Export Specified Packets
  • Для шифрованного трафика — собирайте ключи (например, из FreePBX logs)

10. Заключение

Анализ SIP/RTP в Wireshark — это ключевой навык для VoIP-инженера. Он позволяет:

  • Точно локализовать проблему: сеть, PBX или терминал
  • Подтвердить качество связи цифрами (MOS, jitter, loss)
  • Прослушать вызов для верификации жалоб пользователей

Главное правило: сначала SIP (установка сессии), потом RTP (медиапоток). Если SIP прошёл — ищите проблему в RTP и NAT.

Освоив этот метод, вы будете решать 90% VoIP-инцидентов за 10 минут.