Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

VOIP_PCAP_TRACE_DIAG IP-Телефония и СКУД

Анализ сетевой связности VoIP через tcpdump и tshark на Linux-шлюзах

Обновлено: 24.08.2026 · Официальная документация ↗
  • Спорадические обрывы разговоров ровно на 32-й секунде (не пришел ACK).
  • Жалобы пользователей на посторонние шумы, «кваканье» или металлический призвук в трубке.
  • Невозможность локализовать сетевой узел, на котором происходят потери RTP пакетов.
  • Необходимость захвата дампа звонков на высоконагруженном транзитном VoIP-сервере без остановки сервиса.

1. Точечный захват SIP сигнализации без мусора через tcpdump

# Захват SIP пакетов (порт 5060 UDP/TCP и 5061 TLS) с записью в ротируемый файл
tcpdump -i any -nn -s 0 -C 100 -W 10 -w /tmp/sip_capture.pcap 'port 5060 or port 5061'

# Захват сигнализации конкретного проблемного IP адреса
tcpdump -i eth0 -nn -vvv -s 0 host 192.168.10.50 and port 5060

2. Анализ и фильтрация VoIP трафика с помощью tshark

# Установка tshark на сервер
apt-get install -y tshark || dnf install -y wireshark-cli

# Просмотр всех SIP вызовов в pcap-файле (Call-ID, From, To, Method, Status)
tshark -r /tmp/sip_capture.pcap -Y "sip" -T fields \
  -e frame.time -e ip.src -e ip.dst -e sip.Call-ID -e sip.Method -e sip.Status-Code

# Вывод полного древа сообщений конкретного звонка по Call-ID
tshark -r /tmp/sip_capture.pcap -Y "sip.Call-ID == '4a7b9c1e-123456@192.168.1.100'" -V

3. Оценка качества голоса (Jitter, Packet Loss, MOS) через tshark

Утилита tshark позволяет извлечь параметры качества RTP-потока без графического интерфейса:

# Анализ статистики всех RTP потоков в дампе
tshark -r /tmp/full_call.pcap -q -z rtp,streams

Пример вывода метрик:

========================= RTP Streams ========================
    Src IP:Port           Dest IP:Port        SSRC       Payload  Pkts   Lost       Max Delta(ms)  Max Jitter(ms) Mean Jitter(ms)
192.168.1.10:10002   10.0.0.1:16420       0x3F2A1B4C  ITU-G.711A 1500   0 (0.0%)   20.12          0.45           0.18
10.0.0.1:16420       192.168.1.10:10002   0x7E1A2C3D  ITU-G.711A 1480   20 (1.4%)  85.40          18.20          12.40

4. Фильтрация звонка с одновременным захватом RTP голоса

# Захват сигнализации и диапазона голосовых портов RTP (10000-20000)
tcpdump -i any -nn -s 0 -w /tmp/call_with_audio.pcap 'host 192.168.10.50 and (port 5060 or portrange 10000-20000)'
💡 Практика специалистов: Никогда не запускайте захват всего диапазона RTP портов на высоконагруженных АТС в один файл без ограничения размера (`-C` и `-W` в tcpdump) — интенсивный I/O сброса дампа на диск вызовет взрывной рост дропов в системных UDP очередях.

Частые вопросы (FAQ)

Почему вызов завершается ровно через 32 секунды после ответа?

Вызывающая сторона отправляет ответ 200 OK на INVITE, но ответный пакет ACK теряется из-за некорректного роутинга или фаервола. Согласно таймерам RFC 3261 (Timer H), если ACK не получен в течение 32 секунд (64*T1), сессия принудительно разрывается отправкой пакета BYE.

Как извлечь сырой аудиофайл (.raw/.wav) из pcap дампа через tshark?

Используйте связку: tshark -r call.pcap -Y 'rtp && rtp.ssrc == 0x3F2A1B4C' -T fields -e rtp.payload | xxd -r -p > audio.raw, после чего конвертируйте через sox: sox -t al -r 8000 -c 1 audio.raw output.wav.

Какой уровень джиттера считается критическим для качества голоса?

При Jitter < 20 мс деградация незаметна. При Jitter от 20 до 50 мс стандартный джиттер-буфер сглаживает задержку с небольшим отставанием. При Jitter > 50-70 мс начинается пропадание пакетов, а оценка MOS падает ниже 3.5.

Как захватить TLS трафик SIP (порт 5061), если он зашифрован?

Необходимо экспортировать предмастер-ключи SSL/TLS (SSLKEYLOGFILE) из приложения или передать приватный RSA ключ сервера (.key) в tshark через опцию: -o 'tls.keys_list:0.0.0.0,5061,sip,/etc/keys/server.key'.

Полезные материалы
Рекомендуем