Александр Бутов
08.11.2019
280430

Инструмент анализа sip пакетов SIP3

Для перехода на сайт разработчика перейдите по ссылке. В статье рассматривается установка и использование SIP3  – программного решения с открытым исходным кодом для мониторинга и устранения неисправностей  VoIP в режиме реального времени. Для примеров использовалась ОС CentOS 7. Для SIP3 необходимо предварительно установить docker и ansible. Устанавливаем docker: Запустить сервис docker  и отобразить статус Для […]

Инструмент анализа sip пакетов SIP3

Для перехода на сайт разработчика перейдите по ссылке.

В статье рассматривается установка и использование SIP3  – программного решения с открытым исходным кодом для мониторинга и устранения неисправностей  VoIP в режиме реального времени. Для примеров использовалась ОС CentOS 7.

Проверить версию Centos, а, также, получить информацию об архитектуре установленной системы, можно командами: cat /etc/redhat-release uname –r
Проверка версии CentOS и архитектуры установленной системы
Проверка версии CentOS и архитектуры установленной системы

Для SIP3 необходимо предварительно установить docker и ansible.

Устанавливаем docker:

yum install docker
Установка docker и требующихся зависимостей
Установка docker и требующихся зависимостей
При установке пакета из репозитория вы можете установить не самую последнюю версию docker. Для установки самой последней версии необходимо скачать c официального сайта docker исходный код и установить docker из исходников.

Запустить сервис docker  и отобразить статус

systemctl start docker
systemctl status docker
Запуск docker и проверка статуса сервиса
Запуск docker и проверка статуса сервиса

Для того, чтобы docker запускался при старте системы, необходимо выполнить команду:

systemctl enable docker

Отобразить список сервисов, относящихся к docker  и проверить разрешены ли они, можно командой:

systemctl list-unit-files | grep docker
Добавление в автозагрузку
Добавление в автозагрузку
В CentOS7 присутствует firewalld который может конфликтовать с docker. Если firewalld был запущен или перезапущен после запуска docker, необходимо перезапустить также и docker. Установка Ansible
yum install ansible
Установка ansible
Установка ansible

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

ansible --version
Проверка установленной версии ansible
Проверка установленной версии ansible
При работе с ansible возможны ошибки, связанные с присутствием в тексте команд или шаблонах ansible символов в кодировке Unicode (например, при вставке команд в консоль из буфера обмена). Для избежания таких ситуаций, необходимо вводить команды вручную. Например, ошибка

ERROR! Unexpected Exception, this is probably a bug: ‘ascii’ codec can’t encode character u’\u2013′ in position 17: ordinal not in range(128)

вызвана присутствием символа ‘EN DASH’ (‘U+2013’, unicode дефис) в тексте команды (см. скриншот)

Ошибка unicode character
Ошибка unicode character

Также, потребуется установить python-pip -систему управления пакетами, написанными на python:

yum install python pip
Установка python pip
Установка python pip

Установка docker-py– python библиотека для docker

pip install docker-py 
Установка docker-py
Установка docker-py

Клонирование репозитория ссылка.

git clone https://github.com/sip3io/sip3-ansible/
Потребуется установленный пакет git. Для установки git выполнить команду yum install git.
Клонирование репозитория sip3
Клонирование репозитория sip3

Добавляем необходимые хосты в конфигурационный файл. В примере 192.168.32.31 — адрес используемой  машины. Выполняем в директории, в которую клонировали репозиторий sip3.

nano ./sip3-ansible/roles/sip3-salto/templates/hosts.yml.j2
Редактирование конфигурационного файла sip3 – добавление хостов
Редактирование конфигурационного файла sip3 – добавление хостов

В этой же директории выполняем

nano ./sip3-ansible/roles/sip3-hoof/tasks/main.yml

для правки еще одного конфигурационный файла и указываем порт для запуска, если порт 80 занят.

Редактирование конфигурационного файла sip3 – изменение порта
Редактирование конфигурационного файла sip3 – изменение порта

Для установки внутренних компонентов sip3 выполнить команду

ansible-playbook -K ./sip3-ansible/playbooks/trial/sip3-backend.yml --extra-vars "port=8088"

можно использовать переменную port для изменения порта по умолчанию. В процессе установки потребуется задать пароль.

Установка sip3
Установка sip3
Для удаления внутренних компонентов sip3 необходимо выполнить команду с переменной state=absent:
ansible-playbook -K playbooks/trial/sip3-backend.yml --extra-vars "state=absent"

После завершения установки внутренних компонентов SIP3, необходимо развернуть SIP3 Captain. Это компонент, отвечающий за сбор и фильтрацию обработанных данных SIP трафика.

Для установки SIP3 Captain выполните следующую команду:

ansible-playbook -K ./sip3-ansible/playbooks/trial/sip3-captain.yml
Установка sip3 Captain
Установка sip3 Captain
Чтобы удалить SIP3 Captain, необходимо выполнить команду с переменной state=absent:
ansible-playbook -K playbooks/trial/sip3-captain.yml --extra-vars "state=absent"

Вместе с пробной версией SIP3 поставляется Grafana. Откройте http: //ip_хоста:порт/grafana, для входа использовать стандартные учетные данные (admin/admin). После этого вы увидите панель инструментов Calls Statistic:

Панель инструментов Grafana
Панель инструментов Grafana

По адресу http: //ip_хоста:порт/  находятся два инструмента SIP3: Simple Search (базовый поиск по звонкам) Advanced Search (продвинутый поиск).

SIP3 - Simple search
SIP3 — Simple search

Кликнув на какой-либо вызов можно увидеть окно Call info — последовательность потоков для этого вызова.

SIP3- Simple Search, экспорт в формат csv
SIP3- Simple Search, экспорт в формат csv

Список вызовов можно экспортировать в формат csv. Последовательность потоков для конкретного вызова можно также экспортировать в формат png.

SIP3 – Call info
SIP3 – Call info

При клике на Details можно просмотреть более подробную информацию о вызове и экспортировать дамп какого-либо вызова в формат pcap.

SIP3 - Call info details
SIP3 — Call info details

Advanced Search позволяет отфильтровать вызовы по одному или нескольким параметрам. Найденные вызовы можно также экспортировать в csv, сохранить последовательность потоков в png, просмотреть более подробную информацию по конкретному вызову, экспортировать дамп вызова в pcap.

SIP3 – Advanced Search
SIP3 – Advanced Search
Подписаться
Уведомление о
guest
4 Комментарий
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Руслан
Руслан
20.04.2020 17:14

TASK [../../roles/docker-network : Create/Delete sip3 docker network] **************************** An exception occurred during task execution. To see the full traceback, use -vvv. The error was: docker.errors.APIError: 500 Server Error: Internal Server Error («{«message»:»Failed to Setup IP tables: Unable to enable SKIP DNAT rule: (iptables failed: iptables —wait -t nat -I DOCKER -i br-7d275dc08a3b -j RETURN: iptables: No chain/target/match by that name.\n (exit status 1))»}») fatal: [127.0.0.1]: FAILED! => {«changed»: false, «module_stderr»: «Traceback (most recent call last):\n File \»/root/.ansible/tmp/ansible-tmp-1587391916.91-273433827861906/AnsiballZ_docker_network.py\», line 114, in \n _ansiballz_main()\n File \»/root/.ansible/tmp/ansible-tmp-1587391916.91-273433827861906/AnsiballZ_docker_network.py\», line 106, in _ansiballz_main\n invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n File \»/root/.ansible/tmp/ansible-tmp-1587391916.91-273433827861906/AnsiballZ_docker_network.py\», line 49, in invoke_module\n imp.load_module(‘__main__’, mod, module,… Подробнее »

Александр
Александр
20.04.2020 19:20
Reply to  Руслан

в рамках данной статьи рассматривается нам функционал ПО sip3 у вас проблема со сборщиком контейнеров , дебаг которого вам и следует поискать

Дмитрий
Дмитрий
01.06.2020 11:44

Можно ли данным инструментом мониторить клиентов подключаемых по WebRTC?

Александр
Александр
01.06.2020 13:31
Reply to  Дмитрий

RTP трафик будет в любом случае но про конкретный функционал лучше поинтересоваться непосредственно у разработчика

Остались вопросы?

Я - Кондрашин Игорь, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование

ближайшие курсы

ближайшие Вебинары

ONLINE

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 сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.