8(499)-709-97-83
Работаем с 8:00 до 19:00

Использование SIPp для тестирования нагрузки АТС

  • 14 мая 2015

SIPp это Open Source приложения (лицензия GNU GPL license) для тестирования и генерирования трафика протокола SIP. Приложение позволяет работать как в роли UAS(SIP сервера), так и в роли UAC(SIP клиента). SIPp позволяет обрабатывать самописные сценарии XML, в которых можно прописать логику обработки вызовов. Приложение имеет динамическое отображение статистики о запущенных тестах (скорость передачи данных, задержки и сообщения статистики).

Приложение поддерживает IPv6, TLS, SCTP, SIP авторизацию на АТС, RTP трафик (видео и аудио)

Остальную информацию можете изучить на сайте разработчике

Установку будем производить на ОС Centos 6.6. Версия SIPp - 3.4 (последняя на момент написания статьи)

Перейдем к установке SIPp

1) Установим необходимые зависимости:

yum install make gcc gcc-c++ ncurses ncurses-devel openssl openssl-devel libpcap libpcap-devel gsl gsl-devel lksctp-tools lksctp-tools-devel

2) Создадим каталог для SIPp и перейдем в него

mkdir /usr/sippcd /usr/sipp

3) Скачиваем и устанавливаем SIPp

wget http://sourceforge.net/projects/sipp/files/sipp/3.4/sipp-3.3.990.tar.gz
tar -zxvf sipp-3.3.990.tar.gz
cd sipp-3.3.990

Есть несколько ключей для установки SIPp:

- Простая установка, без TLS, SCTP и PCAP. Для этого в командной строке вводим:

./configure
make

- С поддержкой TLS. Для этого в командной строке вводим:

./configure --with-openssl
make

- С поддержкой PCAP. Для этого в командной строке вводим:

./configure --with-pcap
make

- С поддержкой SCTP. Для этого в командной строке вводим:

./configure --with-sctp
make

В нашем примере, мы установим полный пакет SIPp с поддержкой всех модулей. Для этого в командной строке вводим:

./configure --with-sctp --with-pcap --with-openssl
make
make install

Для проверки корректной установки введите команду

sipp -v

Данная команда покажет версию программы.

4) В Asterisk или FreePBX необходимо создать Peer.

Настройки следующие:

[sipp]
type=friend
context=sipp_inbound
username=sipp
host=192.168.0.18
disallow=all
allow=ulaw,alaw
insecure=port,invite

И в extensions.conf (для Asterisk) или extensions_custom.conf (для FreePBX), вписываем следующее:

[sipp_inbound]
exten => 100,1,Answer
exten => 100,n,Wait(3)
exten => 100,n,Hangup

Или для использования RTP сделаем следующее.

[sipp_inbound]
exten => 100,1,Answer
exten => 100,n,Playback(ВАШ АУДИО ФАЙЛ)
exten => 100,n,Hangup

5) Перейдем к использованию данной программы

sipp 192.168.0.10:5060 -s 100 -i 192.168.0.18 -d 2h -l 60 -aa -mi 192.168.0.18 -rtp_echo -nd -r 10
  • 192.168.0.10:5060 — это IP адрес вашей АТС (в нашем случае Asterisk). Если порт стандартный, то указывать его не обязательно
  • -s 100 — вызываемый номер на стороне АТС
  • -i 192.168.0.18 — локальный IP адрес SIPp сервера. Если Asterisk и SIPp установлены на одном и том же сервре, то указывайте IP адрес - 127.0.0.1
  • -d 2h — установка длительности вызова, по умолчанию — 1 секунда
  • -l 100 — ограничение по количеству одновременных звонков, в нашем примере - 100
  • -aa — поддержка автоматических ответов 200 OK на сообщения INFO, UPDATE и NOTIFY
  • -mi 192.168.0.18 —  IP для RTP сессии
  • -rtp_echo — включение режима RTP эха. Все RTP пакеты полученные от удалённой стороны — отправляются обратно.
  • -nd — Отключает стандартную обработку неожиданных ситуаций — sipp будет прерывать звонки в случае получения неправильных SIP сообщений.
  • -r 10 — максимальная скорость звонков, в нашем примере 10 вызовов в секунду.

Более подробно о настройках можно прочитать в SIPp Help, для этого в консоли введите:

sipp -help

Запускаем тест и ждем результатов.

Удобно мониторить загрузку сервера при помощи систем мониторинга (Cacti, Nagios, Zabbix), это выглядит более наглядно чем использовать top в Linux CLI.

 
Powered by SEO CMS ver.: 23.1 TOP 2 (opencartadmin.com)
 
Метки: Linux