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()
Вот и всё. Успехов в стресс тестах! :)
статья взята с http://tamkovich.com/2010/04/sipp-cheat-sheet/
Комментариев нет:
Отправить комментарий