Asterisk: ngrep, sipgrep, sngrep, protocol diagram

в 10:28, , рубрики: asterisk, ngrep, sequence diagramms, sip, sipgrep, sngrep, telecom, voip, Разработка систем связи, системное администрирование, телефония

Это небольшая заметка о паре утилит, которые использую время от времени для работы с астериском (для отладки телефонии и просмотра 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, то есть еще другие примеры применения.

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

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

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

sngrep

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

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

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

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

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

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

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

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

Автор: antirek

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js