Денис Здесенко
23.04.2020
7504

SipSak. Обзор, установка, использование.

В повседневной работе VoIP инженеру требуется обширное количество инструментов для диагностики неисправностей, будь то софтфоны или прикладные утилиты для работы с sip-трафиком, различные снифферы и прочее. В данной статье речь пойдет об утилите SipSak, провозглашенной сообществом как швейцарский нож SIP’a. Обзор                     Итак, что же такое sipsak и почему его так прикольно называет комьюнити? Все очень […]

В повседневной работе VoIP инженеру требуется обширное количество инструментов для диагностики неисправностей, будь то софтфоны или прикладные утилиты для работы с sip-трафиком, различные снифферы и прочее. В данной статье речь пойдет об утилите SipSak, провозглашенной сообществом как швейцарский нож SIP’a.

Обзор                    

Итак, что же такое sipsak и почему его так прикольно называет комьюнити? Все очень просто это аббревиатура названия SIP swiss army knife. Sipsak – это утилита командной строки с открытым кодом, предназначенная для стресс-тестирования и диагностики SIP. Основная функция утилиты – отправка сиповых запросов на сервер и анализ полученных ответов.

Основные фишки и что эта утилита умеет:

  • Может отправлять запрос OPTIONS
  • может отправлять текстовые файлы (которые должны содержать запросы SIP)
  • traceroute
  • тест местоположения пользователя
  • флуд-тест
  • тест парсер-атак
  • может распознавать ответ сервера и реагировать на него
  • аутентификация с поддержкой qop (MD5 и SHA1)
  • поддерживается короткая запись для приема (не для отправки)
  • неограниченные замены строк в файлах и запросах
  • добавлять любой заголовок к запросам
  • может симулировать звонки в режиме usrloc
  • использует симметричную сигнализацию и поэтому должен работать за NAT
  • может отправлять сообщения в любой пункт назначения SIP
  • поддерживает Nagios-совместимые коды возврата
  • поиск строк в ответе с помощью регулярных выражений
  • может использовать несколько процессов для увеличения нагрузки на сервер
  • может читать SIP-сообщение из STDIN
  • поддерживает DNS SRV через c-ares или libruli
  • поддерживает транспорт UDP и TCP

Установка

Устанавливается утилита довольно просто. Первым делом необходимо (если это еще не сделано) добавить Epel-репозиторий в свой CentOS командой:

# yum install -y epel-release

Установка репозитория
Установка репозитория

После этого, с помощью того же менеджера пакетов yum устанавливаем саму утилиту sipsak:

# yum install -y sipsak

Установка утилиты
Установка утилиты

Все, установка выполнена. Подробную справку по использованию как в обычном режиме, так и в дополненных, можно увидеть, выполнив команду:

# sipsak -help

Справочная страница sipsak. Информация по режимам
Справочная страница sipsak. Информация по режимам
Справочная страница sipsak. Информация по опциям
Справочная страница sipsak. Информация по опциям

Стоит отметить, что в дистрибутив, распространяемый компанией voxlink, это чудо вшито по умолчанию и активно используется инженерами во время работы наравне с тем же самым sngrep.

Использование

Интересной особенностью является то, что sipsak способен работать в нескольких режимах. Пара слов о каждом из них:

  1. Обычный режим (default mode). SIP-сообщение отправляется адресату в sip-uri с отображением статуса ответа. Запрос берется либо из файла, либо генерируется как новое сообщение OPTION.
  2. Режим трассировки (traceroute mode). Работа в режиме отслеживания пути запросов, аналогично утилите traceroute для IP-уровня. Включается ключом «-T».
  3. Режим отправки сообщений (message mode). Тут в принципе все понятно, в этом режиме утилита отправляет короткие сообщения указанному (target) адресату. С помощью ключа «-B» можно задать содержание сообщения. Включается ключом «-M».
  4. Режим стресс-тестирования (usrloc mode). В этом режиме утилита регистрируется на сервере в огромном темпе. Дополнительно можно повысить нагрузку с помощью опций «-I» и «-M». Включается ключом «-U».
  5. Режим парсерных атак (randtrash mode). Sipsak продолжает отправлять случайно-поврежденные сообщения, чтобы «пытать» парсер SIP-сервера. Включается ключом «-R».
  6. Режим флудилки (flood mode). Засыпает SIP-сервер запросами с высокой скоростью. Включается ключом «-F».

В качестве примера можно разобрать пару-тройку функций. В первую очередб попробуем отправить OPTIONS и получить ответ. Делаем это следующим образом:

# sipsak -vv -s sip:[email protected]

В данном случае мы отправляем запрос OPTIONS пользователю 101 зарегистрированному на локальном сервере телефонии с ip 192.168.32.79. Результатом действия стал ответ от пользователя SIP-сообщением 200 OK.

Вывод команды sipsak -vv -s sip:101@192.168.32.79
Вывод команды sipsak -vv -s sip:[email protected]
Сообщение в sngrep
Сообщение в sngrep
Сообщение в sngrep с ответом
Сообщение в sngrep с ответом

Теперь попробуем отправить регистрацию из утилиты для номера 201. Сделать мы можем это из режима стресс-тестирования. Команда будет выглядеть вот так:

# sipsak -vv -U -C sip:[email protected] -x 201 -s sip:[email protected] -a testpass2

А теперь разберем ее. Ключом -U запускаем в режиме usrloc и передаем в качестве параметров по порядку: SIP-URI (sip:[email protected]), экстеншен (201), снова SIP-URI но уже с опцией -s, и пароль. Вот такой получаем результат:

Вывод команды sipsak -vv -U -C sip:201@192.168.32.79 -x 201 -s sip:201@192.168.32.79 -a testpass2
Вывод команды sipsak -vv -U -C sip:[email protected] -x 201 -s sip:[email protected] -a testpass2
Сообщение в sngrep
Сообщение в sngrep
Сообщение в sngrep с ответом
Сообщение в sngrep с ответом

Еще, в качестве эксперимента, я хотел бы немного зафлудить свой сервер, чем сейчас и займусь, используя в процессе sipsak. Сделать это я могу с помощью вот такой команды:

# sipsak -vv -F -e 100 -s sip:[email protected]

Этой командой мы запускаем утилиту в режиме флуда и отправляем 100 запросов на сервер с SIP-URI [email protected]. Результат выглядит таким образом:

sipsak -vv -F -e 100 -s sip:201@192.168.32.79
sipsak -vv -F -e 100 -s sip:[email protected]
Сообщение в sngrep
Сообщение в sngrep
Сообщение в sngrep с ответом
Сообщение в sngrep с ответом

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

Телефонная книга CallMetrix
Корпоративный телефонный справочник для удобной связи между сотрудниками организации
Скачать описание CallMetrix
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Остались вопросы?

Я - Виталий Шелест, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование


ближайшие курсы

10 доводов в пользу Asterisk

Распространяется бесплатно.

Asterisk – программное обеспечение с открытым исходным кодом, распространяется по лицензии GPL. Следовательно, установив один раз Asterisk вам не придется дополнительно платить за новых абонентов, подключение новых транков, расширение функционала и прочие лицензии. Это приближает стоимость владения станцией к нулю.

Безопасен в использовании.

Любое программное обеспечение может стать объектом интереса злоумышленников, в том числе телефонная станция. Однако, сам Asterisk, а также операционная система, на которой он работает, дают множество инструментов защиты от любых атак. При грамотной настройке безопасности у злоумышленников нет никаких шансов попасть на станцию.

Надежен в эксплуатации.

Время работы серверов некоторых наших клиентов исчисляется годами. Это значит, что Asterisk работает несколько лет, ему не требуются никакие перезагрузки или принудительные отключения. А еще это говорит о том, что в районе отличная ситуация с электроэнергией, но это уже не заслуга Asterisk.

Гибкий в настройке.

Зачастую возможности Asterisk ограничивает только фантазия пользователя. Ни один конструктор шаблонов не сравнится с Asterisk по гибкости настройки. Это позволяет решать с помощью Asterisk любые бизнес задачи, даже те, в которых выбор в его пользу не кажется изначально очевидным.

Имеет огромный функционал.

Во многом именно Asterisk показал какой должна быть современная телефонная станция. За многие годы развития функциональность Asterisk расширилась, а все основные возможности по-прежнему доступны бесплатно сразу после установки.

Интегрируется с любыми системами.

То, что Asterisk не умеет сам, он позволяет реализовать за счет интеграции. Это могут быть интеграции с коммерческими телефонными станциями, CRM, ERP системами, биллингом, сервисами колл-трекинга, колл-бэка и модулями статистики и аналитики.

Позволяет телефонизировать офис за считанные часы.

В нашей практике были проекты, реализованные за один рабочий день. Это значит, что утром к нам обращался клиент, а уже через несколько часов он пользовался новой IP-АТС. Безусловно, такая скорость редкость, ведь АТС – инструмент зарабатывания денег для многих компаний и спешка во внедрении не уместна. Но в случае острой необходимости Asterisk готов к быстрому старту.

Отличная масштабируемость.

Очень утомительно постоянно возвращаться к одному и тому же вопросу. Такое часто бывает в случае некачественного исполнения работ или выбора заведомо неподходящего бизнес-решения. С Asterisk точно не будет такой проблемы! Телефонная станция, построенная на Asterisk может быть масштабируема до немыслимых размеров. Главное – правильно подобрать оборудование.

Повышает управляемость бизнеса.

Asterisk дает не просто набор полезных функций, он повышает управляемость организации, качества и комфортности управления, а также увеличивает прозрачность бизнеса для руководства. Достичь этого можно, например, за счет автоматизации отчетов, подключения бота в Telegram, санкционированного доступа к станции из любой точки мира.

Снижает расходы на связь.

Связь между внутренними абонентами IP-АТС бесплатна всегда, независимо от их географического расположения. Также к Asterisk можно подключить любых операторов телефонии, в том числе GSM сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.