среда, 4 июля 2012 г.

sipp — утилита для генерации нагрузки на ASTERISK

sipp — мощная утилита для генерации нагрузки на SIP оборудование. Обычно sipp используется для проверки отказоустойчивости систем IP-телефонии, выявления максимально-допустимой нагрузки или ddos-а конкурентов :) Сценарий сессии в sipp описывается в XML файле. Можно воспользоваться одним из множества сценариев распространяемых в комплекте с sipp или создать свой.
Кроме тестирования сигнализации (SIP) sipp способен тестировать и медиа нагрузку. Для этого существуют два модуля: PCAP play и RTP echo. PCAP play — проигрывает заранее записанный сетевым анализатором (например wireshark) медиа файл. RTP echo — позволяет sipp отсылать обратно все полученные RTP потоки.


Пример использования sipp
sipp 10.10.10.1 -s service -i 10.10.10.2 -d 2h -l 60 -aa -mi 10.10.10.2 -rtp_echo -nd -r 10 
  • 10.10.10.1 — IP адрес SIP сервера, на который следует слать запросы.
  • -s 12345 — Указывает номер который будет вызван. Может быть числом или текстом. Значение по умолчанию — service
  • -i 10.10.10.2 — Локальный IP адрес. Этот адрес будет использован в SIP сообщениях в качестве адреса источника сообщений. По умолчанию используется адрес 127.0.0.1.
  • -d 2h — Устанавливает длительность звонков. В данном случае звонки будут длиться 2 часа. Длительность по умолчанию — 1 секунда.
  • -l 60 — Ограничивает максимальное количество одновременных звонков — 60.
  • -aa — Включает автоматические ответы 200 OK на сообщения INFO, UPDATE и NOTIFY.
  • -mi 10.10.10.2 — Устанавливает локальный IP для RTP.
  • -rtp_echo — Включает режим RTP эха. Все RTP пакеты полученные от удалённой стороны — отправляются обратно.
  • -nd — Отключает стандартную обработку неожиданных ситуаций — sipp будет прерывать звонки в случае получения неправильных SIP сообщений.
  • -r 10 — Устанавливает максимальную «скорость звонков» (CPS) в данном случае — не более 10 звонков в секунду.
Максимальной скоростью вызовов можно управлять во время работы sipp с помощью клавиш «+» и «-» — повышая и понижая её соответственно. Вообще, опустив параметры -aa -mi 10.10.10.2 -rtp_echo -nd — мы получаем отличное средство для тестирования отказоустойчивости и максимального CPS у SIP proxy.
Настройка Asterisk
Для того, что бы Asterisk принимал звонки от sipp, необходимо создать в SIP.conf специальный SIP-peer с именем sipp. К сожалению, заставить sipp совершать вызовы от имени существующего пользователя — нельзя. В стандартных сценариях sipp всегда представляется как sipp. Добавляем в SIP.conf запись:
[sipp]
type=friend
context=in
username=sipp
host=10.10.10.2
dtmfmode=rfc2833
disallow=all
allow=ulaw,alaw
insecure=port,invite
Важными моментом, является наличие кодека ulaw в списке разрешенных т.к. именно его анонсирует sipp. Если 711u не будет в списке разрешённых кодеков, то Asterisk отклонит вызов от sipp. Вторым важным моментом, является строка insecure=port,invite. Данная строка заставляет Asterisk авторизовать sipp не по паролю, а по IP адресу указанному в поле host. Кроме записи в SIP.conf, можно создать специальный контекст в extensions.conf для обработки тестовых звонков от sipp. Следующий пример принимает звонки на «номер» service — именно этот идентификатор используется по умолчанию:
[in]
exten => service,1,MusicOnHold()
Вот и всё. Успехов в стресс тестах! :)
скачать для windows
скачать для linux
для установки из репозиториев sudo apt-get-install sip-tester
статья взята с http://tamkovich.com/2010/04/sipp-cheat-sheet/

Комментариев нет:

Отправить комментарий