Кирилл Золотавин
12.08.2020
6551

Обзор и конфигурирование SIP провиженинг сервера Sonata

Для оптимально быстрой настройки телефонных аппаратов, производителями предусмотрен механизм автонастройки по протоколу HTTP, в рамках данной статьи будет рассмотрено конфигурирование и использование провижининг сервера Sonata. Поддерживаемые вендоры:1) Audiocodes2) Fanvil3) Grandstream4) Panasonic5) Snom6) Yealink 1. Выполним подключение по SSH к серверу IP АТС Asterisk. В зависимости от используемой системы(Windows, Linux, MacOS), подключение по SSH можно выполнить […]

SIP провижининг сервера Sonata

Для оптимально быстрой настройки телефонных аппаратов, производителями предусмотрен механизм автонастройки по протоколу HTTP, в рамках данной статьи будет рассмотрено конфигурирование и использование провижининг сервера Sonata.

Все описанные действия в статье необходимо выполнять от имени суперпользователя (root). Установка и настройка производилась на предустановленной системе CentOS 7 + Asterisk 13 + FreePBX 13.

Поддерживаемые вендоры:
1) Audiocodes
2) Fanvil
3) Grandstream
4) Panasonic
5) Snom
6) Yealink

1. Выполним подключение по SSH к серверу IP АТС Asterisk. В зависимости от используемой системы(Windows, Linux, MacOS), подключение по SSH можно выполнить с использованием различного дополнительного программного обеспечения(Putty), либо системного терминала.

2. Прежде чем приступить к развертыванию сервера провижининга, необходимо установить ряд дополнительных пакетов. Выполним установку MongoDB:

Подключим репозиторий:

# nano /etc/yum.repos.d/mongodb-org.repo

Приведем файл к виду:

[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc

Выполним установку:

# yum install mongodb-org

Добавим в автозагрузку:

# systemctl enable mongod

Выполним запуск:

# systemctl start mongod
Подключение репозитория
Установка MongoDB
Запуск и добавление в автозагрузку

3. Выполним установку NodeJS
Подключим репозиторий NodeJS v10

# curl --silent --location https://rpm.nodesource.com/setup_10.x | bash -

Выполним установку Node.js v10 LTS

# yum install nodejs

4. Развертывание Sonata сервера провижининга

# cd /opt
# git clone https://github.com/antirek/sonata.git
# cd /opt/sonata

Установка дополнительных зависимостей NodeJS

# npm install
Развертывание Sonata сервера провижининга

5. Выполним первый тестовый запуск провижининг сервера

# node /opt/sonata/index.js

Если запуск прошел без ошибок как на скриншоте ниже, то можно перейти к следующему шагу по рассмотрению API методов Sonata

Запуск Sonata

6. Для более наглядной работы с API методами выполним установку интерактивной консоли Swagger-UI

# yum install docker 
# systemctl start docker
# docker pull swaggerapi/swagger-ui
# docker run -p 8888:8080 swaggerapi/swagger-ui
Установка Docker
Скачивание из репозитория и запуск docker контейнера swagger

7. Перейдем в интернет обозревателе(Chrome, Firefox, Opera, Yandex Browser….) на страницу вида http://192.168.170.107:8888/, где 192.168.170.107 это IP адрес сервера на который производилась установка Swagger-UI. После загрузки страницы интерактивной консоли Swagger-UI, в строке обращения пропишем ссылку на API управления сервер провиженинга Sonata вида http://192.168.170.107:3021/v1/api, где 192.168.170.107 это IP адрес сервера на который производилась установка Sonata.

Swager-UI

8. Для добавления устройства и создания конфигурационного файла провижининга необходимо отправить POST запрос следующего вида:

{
 "key": "keyvoxlink",
 "token": "tokenvoxlink",
 "model": "c58",
 "vendor": "fanvil",
 "mac": "0c383e07aa44",
 "timezone_offset": "GMT+03",
 "ntp_server": "pool.ntp.org",
 "status": true,
 "accounts": [
 {
 "name": "101",
 "line": 1,
 "sip_register": "192.168.170.107",
 "sip_name": "101",
 "sip_user": "101",
 "sip_password": "101101",
 "sip_auth": "101"
 }
 ]
}

где ключевыми параметрами для редактирования является:
key – индивидуальный ключ аппарата для получения конфига
token — общий токен  для получения конфига
model — модель телефонного аппарата
vendor — производитель  телефонного аппарата
mac— MAC адрес  телефонного аппарата
timezone_offset — часовой пояс
ntp_server — сервер синхронизации времени
name — имя отображаемое на экране телефонного аппарата
line — номер используемой линии
sip_register — адрес сервера АТС
sip_name, sip_user, sip_auth — регистрируемый внутренний номер(SIP_ID)
sip_password – пароль регистрации внутреннего номера

Формат Curl запроса из консоли:

curl -X POST "http://192.168.170.107:3021/v1/device" -H  "accept: application/json" -H  "Content-Type: application/json" -d "{   \"key\": \"keyvoxlink\",   \"token\": \"tokenvoxlink\",   \"model\": \"c58\",   \"vendor\": \"fanvil\",   \"mac\": \"0c383e07aa44\",   \"timezone_offset\": \"GMT+03\",   \"ntp_server\": \"pool.ntp.org\",   \"status\": true,   \"accounts\": [      {         \"name\": \"101\",         \"line\": 1,         \"sip_register\": \"192.168.170.107\",         \"sip_name\": \"101\",         \"sip_user\": \"101\",         \"sip_password\": \"101101\",         \"sip_auth\": \"101\"      }   ]}"
Добавление телефонного аппарата

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

Формат Curl запроса из консоли:

curl -X GET "http://192.168.170.107:3021/v1/device/keyvoxlink" -H  "accept: application/json"
Проверка наличия конфигураций для аппарата по ключу

9. Для удаления конфигураций телефонного аппарата необходимо отправить DELETE запрос с индивидуальным ключом

Формат Curl запроса из консоли:

curl -X DELETE "http://192.168.170.107:3021/v1/device/keyvoxlink" -H  "accept: application/json"
Удаление конфигураций для телефонного аппарата

10. И рассмотрим самый важный момент, как применить сгенерированные конфигурации на аппарате. На примере Fanvil C62, пройдем авторизацию в WEB интерфейсе управления телефонным аппаратом и перейдем в раздел Maintenance → Auto Provision → Phone Flash Settings и отредактируем следующие поля:

Server Address – сервер провиженинга (в рамках данной статьи http://192.168.170.107:3020/v1/token/tokenvoxlink/, где 192.168.170.107 – IP адрес сервера на который производилась установка Sonata, tokenvoxlink — общий токен для получения конфига)
Protocol Type – протокол для провижининга(необходимо выбрать HTTP)
Update Mode – режим запроса конфигурационного файла(выберем «после перезагрузки»)

Настройка телефонного аппарата для провижининга

11. Выполним перезагрузку телефонного аппарата и в Swagger-UI или в консоли с помощью Curl запроса можем проверить были ли запросы к серверу провижининга:

curl -X GET "http://192.168.170.107:3021/v1/log/request/tokenvoxlink" -H  "accept: application/json"
Логирование запросов к серверу провижининга

Успешным результатом провижининга будет успешная регистрация SIP линии:

Успешная регистрация SIP линии
Книга 101 функция Asterisk
Познакомьтесь с возможностями Asterisk. Найдите инструменты, которые помогут вашей компании развиваться.
Скачать книгу
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

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

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

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


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

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