Як зняти дамп SIP-дзвінка за допомогою tcpdump, Wireshark та sngrep





Швидке та точне захоплення мережевого трафіку — обов’язкова навичка для VoIP-інженерів, які працюють із платформами Kamailio, Asterisk, FreeSWITCH, 3CX, SBC-рішеннями та системами маршрутизації медіапотоків. Це особливо важливо під час діагностики RTP-проблем, одностороннього звуку, обривів дзвінків, проблем NAT, некоректного SDP або помилок SIP-реєстрації.
SkyTel OU регулярно використовує ці методи для аналізу та аудиту якості VoIP-трафіку як у власній інфраструктурі, так і у взаємодії з операторами та клієнтськими VoIP-платформами.
Вибір інструмента для зняття дампу
Інструмент Можливості Коли використовувати
tcpdump низькорівневе перехоплення пакетів, максимальна точність збирання «сирих» 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 для конкретного хоста
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 часто проксіює лише SIP-сигналізацію, не обробляючи RTP. Тому RTP краще перехоплювати на медіасервері (Asterisk, FreeSWITCH, rtpengine, SEMS).
Пошук Call-ID:
tcpdump -i any -s 0 -A | grep "Call-ID"
Захоплення повного дзвінка:
tcpdump -i any -s 0 -w call.pcap -v 'sip[0] != 0 and port 5060'
Аналіз дзвінків у Wireshark



Перегляд списку VoIP-дзвінків
Меню:
Telephony → VoIP Calls
Функції:
- повне декодування SIP-діалогу
- ladder-діаграма
- декодування та програвання RTP
- виявлення втрат пакетів, джитеру та порушення порядку
Фільтрація за Call-ID
sip.Call-ID == "123456@server"
Аналіз RTP-потоків
Вибрати дзвінок → RTP → Stream Analysis
Показники:
- втрачені пакети
- дублікати
- джитер
- затримка
- MOS
Діагностика одностороннього звуку
Основні причини:
- NAT-проблеми (некоректний зовнішній IP у SDP)
- Блокування RTP брандмауером або SBC
Важливі SDP-поля:
c=IN IP4 ...— медіа-IPm=audio ...— RTP-портa=rtcp:— параметри RTCPa=sendrecv / sendonly / recvonly— напрямок медіа
Моніторинг SIP-трафіку за допомогою sngrep


.webp)

sngrep — найзручніший інструмент у Kamailio, SBC, Asterisk та FreeSWITCH інфраструктурах.
Перегляд усіх дзвінків
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 - перехоплювати трафік на вхідному та вихідному інтерфейсі
- перевіряти створення/видалення діалогів через
dlg_list
Asterisk
rtp set debug onдопомагає при відсутності RTP- перевіряти відповідність RTP-портів у SDP
- типові проблеми — NAT +
directmedia=yes
FreeSWITCH
- увімкнути
sofia global siptrace on - RTP може проходити через proxy-модулі
3CX
- оптимально перехоплювати трафік на рівні сервера або гіпервізора
- PCAP швидко показує неправильний RTP-маршрут
SBC (rtpengine, SEMS, FreeSBC, Kamailio-SBC)
- перевіряти, кому фактично передається RTP
- аналізувати переписування SDP
- звертати увагу на затримки мережевих інтерфейсів
Типові проблеми, які легко виявити за допомогою PCAP-дампу
- односторонній звук
- обрив дзвінка через 32 секунди (проблеми з ACK або re-INVITE)
- відсутність DTMF
- помилки NAT
- проблеми з переписуванням SIP-заголовків за SBC
- помилки операторів, які можна довести лише PCAP-дампом
Was this article helpful?