- PVSM.RU - https://www.pvsm.ru -

Asterisk: ngrep, sipgrep, sngrep, protocol diagram

Это небольшая заметка о паре утилит, которые использую время от времени для работы с астериском (для отладки телефонии и просмотра SIP пакетов). Многие коллеги не знают о более простых утилитах, которые могли бы сэкономить минутку-другую рабочего времени.

Далее речь пойдет о ngrep, sipgrep, sngrep, js-sequence-diagrams

SIP

Иногда требуется быстро проанализировать: а что там у нас уходит в REGISTER пакете? Или INVITE ушел, а был ли ответ?

Всем известные программы wireshark и tcpdump снимают дампы, в которых можно найти информацию о всех пакетах, которые проходили на нужном интерфейсе в сети, а также проанализировать эти пакеты и найти сеансы.

Но tcpdump слишком низкоуровневый, а wireshark громоздок, зачастую весь такой функционал не требуется. Поэтому можно воспользоваться ngrep или sipgrep, и решить проблему, не привлекая тяжелую артиллерию.

ngrep
Нередко эта утилита уже есть в системе, но если нет, то легко ставится из пакетов вашего дистрибутива. Позволяет в режиме реального времени посмотреть куда у вас что идет по трафику.

Отфильтровать SIP-пакеты можно так:

ngrep -q -d any -p -W byline '' 'port 5060' 

А так можно отфильтровать пакеты, где есть слово REGISTER (т.е. сюда попадут и пакеты REGISTER и ответы на них)

ngrep -q -d any -p -W byline 'REGISTER'

Поскольку ngrep это больше про сеть, чем про SIP, то есть еще другие примеры применения [1].

Asterisk: ngrep, sipgrep, sngrep, protocol diagram - 1

sipgrep

Похож на ngrep, только позволяет смотреть трафик SIP протокола: например, есть опции для поиска в определенных полях пакета — To, From, Contact, есть подсветка некоторых значений.

Покажет весь SIP-трафик:

sipgrep -d any

Покажет трафик To: 101 с отчетом по сессиям:

sipgrep -d any -t 101 -G

Больше информации об установке и использовании на странице проекта [2].

Asterisk: ngrep, sipgrep, sngrep, protocol diagram - 2

sngrep

Спасибо, Emily_Rose [3]. Пожалуй, самая продвинутая утилита. Вы в реальном времени можете наблюдать что происходит с SIP диалогами на вашем SIP-сервере.

Просто установите ее и запустите.
Asterisk: ngrep, sipgrep, sngrep, protocol diagram - 3

Cтраница проекта sngrep [4]

Конечно, не всегда проблемы связи исчерпываются проблемами с сигнализацией SIP. Если есть проблемы с RTP, потерями пакетов, бульканием голоса, то здесь уже стоит использовать более мощные инструменты (у проекта Kamailio есть страничка, посвященная инструментам анализа SIP и RTP [5]).

Диаграмма протокола

Иногда необходимо не анализировать существующие пакеты, а нарисовать диаграмму протокола, чтобы представить где как какой пакет ходит, типа такой:
Asterisk: ngrep, sipgrep, sngrep, protocol diagram - 4

Для этого удобно воспользоваться страничкой js-sequence-diagrams [6], диаграмма пишется словами, а затем преобразуется в понятную картинку, ее можно приложить в таск-трекер к задаче или добавить в документацию.
Asterisk: ngrep, sipgrep, sngrep, protocol diagram - 5

Надеюсь, что эта информация кому-нибудь также пригодится в работе.
А какими утилитами пользуетесь вы?

Автор: antirek

Источник [7]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/telefoniya/108807

Ссылки в тексте:

[1] примеры применения: https://www.pvsm.ruhttp://ngrep https://www.opennet.ru/tips/876_sniffer_tcpdump_traffic_grep.shtml

[2] странице проекта: https://github.com/sipcapture/sipgrep

[3] Emily_Rose: http://habrahabr.ru/users/emily_rose/

[4] Cтраница проекта sngrep: https://github.com/irontec/sngrep

[5] инструментам анализа SIP и RTP: http://wiki.freeswitch.org/wiki/Packet_Capture

[6] страничкой js-sequence-diagrams: https://bramp.github.io/js-sequence-diagrams/

[7] Источник: http://habrahabr.ru/post/274919/