Раньше приходилось мучится и дебажить проблему с SIP звонками по средствам tcpdump. При трафике в 100 и более онлайн звонков это очень трудно. Приходилось сливать дамп в pcap файл и открывать на рабочем компьютере в Wireshark или того хуже поднимать rpcap и смотреть вызовы в онлайн режиме. Но все же не хватало функционала, фильтров и наглядности.
Начал курить интернет и наткнулся на утилиту sngrep. Информация о ней далее под катом.
Утилита на самом деле очень крутая и разработчики позаботились о создании инсталяционных пакетов под разные ОС, есть даже под OSX. Также никто не мешает собрать его из исходников. Процесс установки я описывать не буду, так как он в подробностях описан в git репозитории утилиты.
Начнем с запуска. Запустить утилиту можно командой sngrep, а так же с такими вот ключами:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Usage: sngrep [-hVcivNqrD] [-IO pcap_dump] [-d dev] [-l limit] [-k keyfile] [-LH capture_url] [<match expression>] [<bpf filter>] -h --help This usage -V --version Version information -d --device Use this capture device instead of default -I --input Read captured data from pcap file -O --output Write captured data to pcap file -c --calls Only display dialogs starting with INVITE -r --rtp Capture RTP packets payload -l --limit Set capture limit to N dialogs -i --icase Make <match expression> case insensitive -v --invert Invert <match expression> -N --no-interface Don't display sngrep interface, just capture -q --quiet Don't print captured dialogs in no interface mode -D --dump-config Print active configuration settings and exit -H --eep-send Homer sipcapture url (udp:X.X.X.X:XXXX) -L --eep-listen Listen for encapsulated packets (udp:X.X.X.X:XXXX) -k --keyfile RSA private keyfile to decrypt captured packets |
Из основного:
- возможность читать и записывать данные в pcap файл
- включить захват rtp пакетов (голоса)
- использовать RSA ключ для снифа шифрованного трафика
- итд…
После запуска утилиты мы сразу же увидим как бегут SIP-сообщения, причем они скомбинированы, звонки, регистрации, инвайты, опшены.
Далее выбрав какой либо звонок или же сообщение и нажав Enter, мы можем посмотреть подробную и наглядную информацию, причем в разном виде.
так же можем посмотреть общие SIP сообщения
Есть куча настроек интерфейса, EEP, HEP, настройки захвата трафика и так далее.
Так же можно выбрать нужные столбцы для отображения
И самое удобные фильтры в мире 🙂 По номеру А и номеру Б, по IP, по типу сообщений. Можно например отображать сообщения только с определенного номера и только регистрации.
Так же можно сохранить дамп в pcap файл в том числе с RTP трафиком, что очень удобно, например для того что бы показать его технической поддержки, при разборе неисправностей.
Ну и в завершении, статистика всего этого дела
В итоге хочу сказать что утилита ну очень крутая и удобная, экономит кучу времени и нервов. Жаль что не умеет H323 трафик снифить :(.