Дмитрий Рашевский
07.08.2020
87117

Установка и настройка потокового шлюза Dana. Интеграция с Asterisk

В последнее время большим спросом пользуются видео встречи и видеоконференции. Для того, чтобы это заработало, необходимо настроить правильно Астериск и поставить прослойку, которая будет обрабатывать видеопотоки. Поэтому в этой статья рассмотрим такой сервис, который называется Dana. Этот продукт был создан компанией Nimble Ape, как фронт энд для Asterisk (Selective Forwarding Unit). Установка Dana На моей […]

Шлюз Dana и интеграция с Asterisk

В последнее время большим спросом пользуются видео встречи и видеоконференции. Для того, чтобы это заработало, необходимо настроить правильно Астериск и поставить прослойку, которая будет обрабатывать видеопотоки. Поэтому в этой статья рассмотрим такой сервис, который называется Dana. Этот продукт был создан компанией Nimble Ape, как фронт энд для Asterisk (Selective Forwarding Unit).

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

Установка Dana

Перед тем, как начать выполнять установку, убедитесь в наличии у вас nodejs и yarn.

На моей системе не было установлено ни nodejs ни yarn, поэтому ниже опишем инструкцию по установке этих пакетов. Начнем с nodejs. Для начала подключим репозитории с 12 версией nodejs.

# curl -sL https://rpm.nodesource.com/setup_12.x | sudo bash -

Теперь имея репозитории установим nodejs с помощью менеджера пакетов yum

# yum install nodejs
Установка NodeJS

NodeJS установлен, теперь нам надо установить yarn. Для этого также подключим его репозитории

# curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
# rpm --import https://dl.yarnpkg.com/rpm/pubkey.gpg
Подключение репозиториев yarn

Добавили репозитории и устанавливаем yarn из реп.

# yum install yarn
Установка Yarn

Теперь скачаем с git в директорию, где будут находиться Dana, исходники. В моем случае, я использовал путь /usr/src. И перейдем в скачанную папку.

# cd /usr/src/
# git clone https://github.com/nimbleape/dana-the-stream-gatekeeper.git
# cd dana-the-stream-gatekeeper

Установим все зависимости, выполнив следующую команду

# yarn
Запуск Yarn

И завершим локальную сборку Dana.

# yarn build
Yarn Build

На этом установка Dana завершена. Перейдем к следующему разделу.

Настройка WebRTC на Астериск

Для корректной работы, потребуется установить Asterisk 15 или выше версии. Также сборка астериска должна быть с следующими модулями: res_crypto, res_http_websocket, res_pjsip_transport_websocket, codec_opus
Подключаемые модули

Установку кодека opus вы сможете найти по этой ссылке.

После пересборки asterisk с нужными модулями, необходимо перейти к созданию сертификатов. Создадим директорию для сертификатов.

# mkdir /etc/asterisk/keys

И сгенерируем сертификаты для Астериск.

# /usr/src/asterisk-17.5.1/contrib/scripts/ast_tls_cert -C example.voxlink.com -O "Voxlink" -b 2048 -d /etc/asterisk/keys
Сертификаты для Asterisk

Когда сгенерированы серты, перейдем к настройке http.conf в конфигурационных файлах asterisk. Откроем его любым текстовым редактором и внесем изменения.

[general]
enabled=yes
bindaddr=0.0.0.0
bindport=8088
tlsenable=yes
tlsbindaddr=0.0.0.0:8089
tlscertfile=<path_to_your_cert_file>
tlsprivatekey=<path_to_your_key_file>
tlscafile=<path_to_your_ca_cert_file>
	 	
enablestatic = yes
redirect=/ /static/dana/index.html
Настройки http.conf
Обязательно сделать tls сертификаты, для работы wss (secuire websocket)

Теперь настроим внутренние PJSIP номера с транспортом wss. Для этого открываем файл pjsip.conf любым текстовым редактором.

[wss]
type=transport
protocol=wss

[webrtc-endp]
type=endpoint
aors=webrtc-aors
auth=webrtc-auth
dtls_auto_generate_cert=yes
webrtc=yes
context=videobridge
disallow=all
allow=opus,g722,ulaw,vp9,vp8,h264
max_audio_streams = 1
max_video_streams = 15

[webrtc-aors]
type=aor
max_contacts=100
remove_existing=yes

[webrtc-auth]
type=auth
auth_type=userpass
username=150
password=veryhardpassword
Настройка PJSIP.conf

Теперь необходимо добавить в confbridge.conf следующие строки:

[default_bridge]
type=bridge
video_mode=sfu

Поскольку, мы в настройках экстеншена мы указали context=videobrige то надо добавить в диалплан этот контекст:

[videobridge]
exten=>testing,1,ConfBridge(${EXTEN},default_bridge,default_user,sample_user_menu)

На этом настройка Asterisk закончена, перейдем к конфигурированию Dana.

Настройка Dana для Asterisk

Чтобы все настроить перейдем в скачанную ранее директорию с Dana, там, где com выполняли команду yarn

# cd /usr/src/dana-the-stream-gatekeeper

И внесем правки в файл packages.json добавив ниже поля “name” следующую строку:

"homepage" : "https://YOUR_DOMAIN_NAME:8089/static/dana",
packages.json

Теперь относительно папки, в которой вы находитесь, отредактируем файл src/components/Routes.js и заменим следующее:

<Route exact path="/" component={Login} />

на

<Route exact path="/static/dana/index.html" component={Login} />
Routes.js

Остался последний шаг. Скопировать директорию build по следующем направлению /var/lib/asterisk/static-http/ переименовав в dana:

# cp build /var/lib/asterisk/static-http/dana

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