General13 views

Как снять дамп SIP-звонка с помощью tcpdump, Wireshark и sngrep

Точное и быстрое снятие сетевого дампа — обязательный навык для инженеров, работающих с VoIP-платформами Kamailio, Asterisk, FreeSWITCH, 3CX, SBC-решениями и системами маршрутизации медиапотока. Особенно важно это при анализе RTP-задержек, одностороннего звука, обрывов звонков, проблем NAT, некорректных SDP или регистрации SIP-клиентов.

Инфраструктура SkyTel OU регулярно использует такие методы для диагностики и аудита качества трафика, включая работу с провайдерами и SIP-платформами клиентов.


Выбор инструмента для снятия дампа

Инструмент Что умеет Когда использовать

tcpdump  низкоуровневый перехват пакетов, 100% точность снимаем "сырые" pcap для последующего анализа

Wireshark графический анализ, VoIP-декодирование, RTP-плейбек диагностика ошибок SIP/RTP

sngrep удобный просмотр SIP-диалогов в реальном времени быстрые проверки на Kamailio, Asterisk, FreeSWITCH, SBC


Снятие дампа SIP-звонка с tcpdump

Базовый дамп всего SIP-трафика

tcpdump -i any -s 0 -w sip-dump.pcap port 5060

Дамп SIP + RTP конкретного звонка (фильтр по IP)

tcpdump -i any -s 0 -w call.pcap host 192.168.1.50

Дамп SIP-регистраций

tcpdump -i any -s 0 -w reg.pcap udp port 5060 and (sip or portrange 10000-20000)

Для серверов Kamailio / SBC

Kamailio часто проксирует транзакции без медиапотока. Чтобы зафиксировать RTP, полезно снимать дамп на медиасервере (Asterisk/FreeSWITCH/rtpengine/SEMS).

Фильтр по Call-ID:

tcpdump -i any -s 0 -A | grep "Call-ID"

Когда Call-ID найден — можно перехватывать полный дамп:

tcpdump -i any -s 0 -w call.pcap -v 'sip[0] != 0 and port 5060'


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

Быстрый поиск диалогов

Меню:
Telephony → VoIP Calls

Функции:

  • расшифровка SIP-диалога,
  • построение Ladder Diagram,
  • декодирование и воспроизведение RTP,
  • проверка потерь, джиттера, out-of-sequence.

Поиск по Call-ID

В фильтре Wireshark:

sip.Call-ID == "123456@server"

Проверка RTP-потока

Выберите звонок → RTP → Stream Analysis
Можно увидеть:

  • потерянные пакеты,
  • дубли,
  • джиттер,
  • задержку,
  • MOS.

Диагностика одностороннего звука

Две наиболее частые причины:

  1. Проблемы NAT (ошибки в SDP, неправильный внешний IP).
  2. Блокировка RTP на уровне firewall/SBC.

Именно параметры SDP являются критичной частью диагностики:

  • c=IN IP4 ... — адрес медиапотока
  • m=audio ... — порт RTP
  • a=rtcp: — параметры RTCP
  • a=sendrecv / sendonly / recvonly — направление медиа

Мониторинг SIP-трафика через sngrep

sngrep — самый удобный инструмент для Kamailio, SBC и Asterisk-инфраструктуры.

Запуск и просмотр всех звонков

sngrep

Фильтр по Call-ID

В интерфейсе нажать / и ввести часть Call-ID.

Фильтр по IP-адресу

sngrep -d any host 192.168.1.50

Экспорт звонка в pcap

Нажать E → выбрать формат pcap → сохранить.

Это самый быстрый способ передать инженерной группе SkyTel OU минимально необходимый дамп для диагностики.


Практические рекомендации для Kamailio, Asterisk, FreeSWITCH, SBC и 3CX

Kamailio

  • включить debug=3 и log_stderror=yes при анализе аномалий;
  • перехватывать трафик на интерфейсе входа и выхода (часто это разные IP);
  • проверять создание/удаление диалогов через dlg_list.

Asterisk

  • проверять rtp set debug on при отсутствии RTP;
  • смотреть несоответствие порта RTP между SDP Asterisk и клиентом;
  • типичная ошибка — NAT + directmedia=yes.

FreeSWITCH

  • анализировать RTP через sofia global siptrace on;
  • RTP-потоки могут идти через proxy-модуль.

3CX

  • лучше снимать дамп на уровне сервера/гипервизора, т.к. 3CX сильно фильтрует SIP-логи;
  • в pcap быстро определяется неправильная маршрутизация RTP.

SBC (rtpengine, SEMS, FreeSBC, Kamailio-SBC)

  • проверять, кому именно назначен Relay RTP;
  • смотреть перезапись SDP;
  • фиксировать задержки на уровне сетевой карты.

Типовые проблемы, которые решаются pcap-дампом

  • односторонний звук (RTP приходит только в одну сторону);
  • звонок обрывается через 32 секунды (проблемы с ACK или re-INVITE);
  • пропущенные DTMF-сигналы;
  • проблемы NAT при работе за роутером;
  • неверная подмена SIP From/Contact при SBC-маршрутизации;
  • ошибки провайдеров, которые без pcap невозможно доказать.

Was this article helpful?