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


Стоит отметить, что в дистрибутив, распространяемый компанией voxlink, это чудо вшито по умолчанию и активно используется инженерами во время работы наравне с тем же самым sngrep.
Использование
Интересной особенностью является то, что sipsak способен работать в нескольких режимах. Пара слов о каждом из них:
- Обычный режим (default mode). SIP-сообщение отправляется адресату в sip-uri с отображением статуса ответа. Запрос берется либо из файла, либо генерируется как новое сообщение OPTION.
- Режим трассировки (traceroute mode). Работа в режиме отслеживания пути запросов, аналогично утилите traceroute для IP-уровня. Включается ключом «-T».
- Режим отправки сообщений (message mode). Тут в принципе все понятно, в этом режиме утилита отправляет короткие сообщения указанному (target) адресату. С помощью ключа «-B» можно задать содержание сообщения. Включается ключом «-M».
- Режим стресс-тестирования (usrloc mode). В этом режиме утилита регистрируется на сервере в огромном темпе. Дополнительно можно повысить нагрузку с помощью опций «-I» и «-M». Включается ключом «-U».
- Режим парсерных атак (randtrash mode). Sipsak продолжает отправлять случайно-поврежденные сообщения, чтобы «пытать» парсер SIP-сервера. Включается ключом «-R».
- Режим флудилки (flood mode). Засыпает SIP-сервер запросами с высокой скоростью. Включается ключом «-F».
В качестве примера можно разобрать пару-тройку функций. В первую очередб попробуем отправить OPTIONS и получить ответ. Делаем это следующим образом:
# sipsak -vv -s sip:[email protected]
В данном случае мы отправляем запрос OPTIONS пользователю 101 зарегистрированному на локальном сервере телефонии с ip 192.168.32.79. Результатом действия стал ответ от пользователя SIP-сообщением 200 OK.



Теперь попробуем отправить регистрацию из утилиты для номера 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. Сделать это я могу с помощью вот такой команды:
# sipsak -vv -F -e 100 -s sip:[email protected]
Этой командой мы запускаем утилиту в режиме флуда и отправляем 100 запросов на сервер с SIP-URI [email protected]. Результат выглядит таким образом:



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

Остались вопросы?
Я - Кондрашин Игорь, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.
категории
- DECT
- Linux
- Вспомогательный софт при работе с Asterisk
- Интеграция с CRM и другими системами
- Интеграция с другими АТС
- Использование Elastix
- Использование FreePBX
- Книга
- Мониторинг и траблшутинг
- Настройка Asterisk
- Настройка IP-телефонов
- Настройка VoIP-оборудования
- Новости и Статьи
- Подключение операторов связи
- Разработка под Asterisk
- Установка Asterisk
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 сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.