Симуляция SIP-вызова

Давно не занимался Asterisk и SIP в целом, но на днях возникла задача сразу и по настройке Asterisk и Cisco для совместной работы. После конфигурирования обоих систем я потерпел фиаско на первом же тестировании. Вся проблема оказалась в диалплане Asterisk (но что можно там настроить не так?). Так как тестирование производится с перерывом в обслуживании основной системы, то возникла необходимость симулировать SIP-вызовы от Cisco в Asterisk, чтобы к моменту тестирования уже иметь по крайней мере рабочий диалплан и пытаться решать проблемы не связанные с неверной маршрутизацией.

В свое время был найден прекрасный инструмент sipp, который есть в поставке популярных Linux дистрибутивов. В Debian/Ubuntu это пакет sip-tester, в CentOS/Fedora это пакет sipp. Про sipp имеется куча записей в интернете, эта лишь для себя с решением одной конкретной задачи.

Использовать его в качестве инструмента для тестирования диалплана никогда не приходилось. У проекта отличнейшая документация, но чтобы достичь результата необходимо хорошо понимать как работает SIP (какие пакеты отправлять, какие пакеты ожидать).

Далее приведен пример конфигурационного файла, который эмулирует вызов со стороны Cisco в Asterisk(согласно нумерации, которую Asterisk должен принимать и обрабатывать). Идет вызов с номера 80123456789(по сути не важно с какого номера) на номер 4957390300.

Далее для симуляции вызова запускаем следующую команду:

sipp -r 1 10.128.2.9:5060 -sf /path/to/cisco-to-asterisk.xml -i 10.128.2.9:54321 -m 1 -d 10000
  • -r 1 - один вызов за раз
  • 10.128.2.9:5060 - адрес сервера Asterisk, куда отправляется вызов
  • -sf /path/to/cisco-to-asterisk.xml - путь к XML-файлу, который описывает поведение
  • -i 10.128.2.9:54321 - адрес к которому привязываться и начинать отправлять вызов
  • -m 1 - количество попыток, после которого завершать выполнение
  • -d 10000 - delay, время действия, в данном случае означает, что после удачного ответа со второй стороны завершить вызов через 10 секунд

Теперь подключаемся к консоли Asterisk и проверяем настройки диалплана :-)

comments powered by Disqus