Архитектура DION предусматривает возможность переноса части компонент, отвечающих за обработку медиа трафика, на площадку организации. Такие компоненты мы называем гибридными нодами. Наличие гибридных нод позволяет проводить конференции в защищенном контуре, не передавая медиа трафик в облако DION. В гибридном сценарии связь гибридных нод с облаком DION является обязательным условием для работы конференций, так как в облако передаются сигнальная информация и управляющие команды.
Все гибридные компоненты, доступные к установке, можно разделить на три группы по функциональному назначению:
Обязательным является наличие в контуре организации нод, отвечающих за проведение конференций. Запись и SIP звонки — опциональные.
Установка и настройка нод из первых двух групп описаны в отдельном руководстве по установке. Данное руководство описывает установку и настройку нод, отвечающих за проведение SIP звонков внутри контура безопасности компании.
Если компоненты SIP не развернуты в гибридном варианте, как описано в данном руководстве, все SIP звонки, включая звонки с устройств, расположенных в контуре компании, проходят через облако. При этом медиа трафик от SIP устройств не шифруется. Этот вариант полностью поддерживается со стороны DION, но не всегда удовлетворяет требованиям информационной безопасности.
При наличии гибридных нод SIP трафик звонков в гибридные конференции замыкается внутри контура безопасности компании. Трафик в сторону облачных конференций DION передается в защищенном канале по протоколу SRTP, что исключает угрозу перехвата трафика.
Кроме того, наличие гибридного SIP позволяет совершать вызовы в облачные конференции DION даже при отсутствии в SIP инфраструктуре компании элемента, выполняющего роль SBC (Session Border Controller), либо устройства NAT с поддержкой SIP ALG.
При наличии гибридных SIP нод внутри контура компании звонки с собственных SIP устройств компании всегда терминируются на гибридом SIP Server.
Если звонок был выполнен в собственную гибридную конференцию, SIP Server взаимодействует с собственными гибридными медиа серверами компании по протоколу SRTP и подключает абонента в конференцию.
Если звонок адресован в облачную конференцию DION, SIP Server перенаправляет трафик на облачные TURN сервера DION, а в случае звонка в гибридную конференцию, проводимую на стороне другой организации, на TURN сервера, принадлежащие этой организации.
Установка локальных медиа-серверов и TURN не является обязательной. SIP-компоненты могут быть использованы исключительно для звонков в облако.
DION-Proxy обязателен для установки и выполняет служебные функции.
Наименование компонентна | Описание компонента |
---|---|
MEDIA (SFU + Audiohub) | компонент, отвечающий за обработку аудио и видео потоков в гибридных конференциях. Установка не описана в данном документе. Смотрите основную инструкцию. |
SIP Server, SIP Transcoder, SIP Translator | компоненты, отвечающие за прием SIP вызова и преобразование медиа трафика в формат, необходимый для участия в конференции WebRTC, и обратно в формат, совместимый с SIP устройствами |
TURN | компонент, отвечающий за подключение внешних пользователей ко внутренним медиа серверам через NAT. Установка не описана в данном документе. Смотрите основную инструкцию. |
Dion Proxy | компонент, отвечающий за обнаружение гибридных нод облаком DION и передачу управляющих команд. Установка не описана в данном документе. Смотрите основную инструкцию. |
Компоненты могут быть дублированы с целью обеспечения отказоустойчивости и масштабирования.
Прежде, чем перейти к установке SIP, убедитесь в том, что выполнены следующие шаги:
Для получения сертификатов DION необходимо предоставить публичные адреса серверов dion-proxy.
Если серверов несколько, требуется указать адрес для каждого из них.
Образы можно скачать по ссылке в виде .deb (или .rpm) пакетов в следующем составе:
Сервисы SIP Server и SIP Transcoder:
Сервис SIP Translator:
Дополнительно вам должны быть предоставлены следующие файлы:
Примеры в данном разделе приведены для ОС Ubuntu
Если в процессе установки и конфигурации возникнут ошибки, рекомендуем воспользоваться руководством по устранению неисправностей.
Каждый сервис требует наличия в системе определенного списка пакетов. Пакеты могут немного отличаться от системы к системе, поэтому мы рекомендуем установить их вручную на соответствующие VM.
sudo apt install ffmpeg
Используйте пакетный менеджер, подходящий для вашей ОС.
apt-get install libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav
yum install gstreamer.x86_64 gstreamer-plugins-base.x86_64 gstreamer1-plugins-good.x86_64 gstreamer1-plugins-bad-free.x86_64 gstreamer1-plugins-ugly.x86_64 gstreamer1-libav.x86_64
dnf install gstreamer1.x86_64 gstreamer1-libav.x86_64 gstreamer1-plugins-bad-free.x86_64 gstreamer1-plugins-base.x86_64 gstreamer1-plugins-good.x86_64 gstreamer1-plugins-ugly.x86_64 gstreamer1-plugins-ugly-free.x86_64 gstreamer-tools.x86_64
4. Установите .deb пакеты
apt
или yum
для RPM-based систем:sudo apt update
sudo apt upgrade
sudo apt install -f {путь к файлу}
Опция -f в команде установщика важна, так как без нее могут не установиться необходимые пакету зависимости и сервис не запустится.
Мы рекомендуем устанавливать SIP Transcoder и SIP Server на одну VM, а SIP Translator — на отдельную VM.
5.. Если dion-proxy и coturn не были установлены ранее, установите их.
6. Загрузите образ контейнера vscreen_transcoder.tar
в docker на машине, где будет установлен SIP Translator.
Обратите внимание, что на машине требуется предварительно установить docker.
Рекомендуем воспользоваться официальной инструкцией на сайте Docker.
sudo docker load -i {путь к образу vscreen_transcoder.tar}
Для корректной работы SIP модуля необходима версия dion-proxy не ниже 5.15
Проверить установленную версию:
apt list --installed | grep dion
Если установлена более старая версия ветки 5.15, выполните следующие действия:
mv /etc/dion/proxy.yaml /etc/dion/proxy.yaml1
apt purge dion-proxy
apt install /путь к файлу dion-proxy-5.15.x.deb
mv /etc/dion/proxy.yaml1 /etc/dion/proxy.yaml
systemctl restart dion-proxy
Примеры в данном разделе приведены для ОС Ubuntu
Для редактирования конфигурационных файлов и перезапуска сервисов вам потребуются root права.
При недостатке прав используйте sudo
перед каждой командой или введите sudo su
один раз в начале работы.
Если какая-либо из гибридных нод будет запущена в нескольких экземплярах, настройки нужно выполнить на каждом экземпляре.
Перейдите в CLI ноды, на которой установлен пакет SIP Server.
1. Откройте на редактирование конфигурационный файл /app/dion/sipserver/sipserver.yml
nano /app/dion/sipserver/sipserver.yml
Все переменные, требующие редактирования, находятся в первой части файла. Следуйте комментариям и инструкции ниже.
При редактировании файла очень важно сохранить исходную табуляцию! Меняйте значения переменных, только если это в явном виде требуется в комментариях.
2. В секциях sip, grpc
и http
впишите в переменные, согласно комментариям, локальный адрес данного экземпляра sip-server в кавычках (например, 192.168.1.12)
Пример заполнения :
clientHost: "192.168.1.12"
3. Cекции apiGrpcClient
и mk
служат для указания адреса шлюза dion-proxy в контуре. Необходимо четко соблюдать отступы в документе, для создания отступов используются пробелы.
Пример заполнения секций gwAddress
и mkAdresses
:
- "192.168.0.1:9764"
- "192.168.0.2:9764"
- "192.168.0.3:9764
"
4. Перейдите в секцию outgoingCalls:
По умолчанию исходящие звонки на номера городской телефонной сети из конференций DION проходят через облако DION и производятся с телефонного номера, принадлежащего DION. Изменив конфигурацию в данной секции, можно перенаправить исходящие звонки через телефонную станцию организации.
Если вы планируете использовать облако DION для таких исходящих звонков, не меняйте значение переменной callsEnabled
.
callsEnabled:
на truecallsEnabled: true
Также необходимо будет внести изменения в конфигурационный файл organizations.yml. Инструкции по заполнению будут приведены ниже в отдельной секции.
5. Перейдите в секцию organizations:
organizations:
- 000000056-0000-0045-Afrd-00000000rft45
organization:
organization: 000000056-0000-0045-Afrd-00000000rft45
6. Сохраните изменения в файле
ctrl+O ctrl+X в Nano
7. Перезапустите сервис sip-server
systemctl restart dion-sipserver
Данный файл служит для перенаправления исходящих звонков из конференций DION через телефонную станцию вашей организации. По умолчанию исходящие звонки из конференций DION на телефонные номера городской сети проходят через облако DION и производятся с телефонного номера, принадлежащего DION
Если перенаправление исходящих звонков на локальную АТС не требуется, не меняйте ничего в данном файле.
Если перенаправление требуется, следуйте инструкциям в данной секции.
Маршрутизация звонков осуществляется по группам пользователей. Например, звонки от группы А могут быть направлены на АТС А, а звонки от группы Б — на АТС Б.
Чтобы использовать перенаправление звонков, необходимо создать как минимум одну группу пользователей в административной панели DION.
ID указан в ссылке. Например:
https://admin.dion.vc/user-groups/914509be-f02b-4000-9000-bc2211276000/settings
1. Откройте на редактирование файл /app/dion/sipserver/organizations.yml
nano /app/dion/sipserver/organizations.yml
2. Следуйте комментариям в тексте файла. Вам необходимо аккуратно раскомментировать указанные строки и вписать в них значения для вашей организации.
Чтобы раскомментировать строку, удалите символ # в начале строки, но не удаляйте пробелы! Пробелы составляют отступы, которые необходимо сохранить для корректной работы. Каждый уровень отступа отличается от предыдущего на 2 пробела.
В результате должна получиться секция следующего вида:
120000ab-cd30-4560-ef7g-0000000008hi: #ID вашей организации
1123-abc1-3451111ef: #ID группы пользователей
phoneNumber: "4952223333" #номер телефона, который будет подставлен в поле FROM для звонка на АТС
outgoingTrunks:
- "192.168.0.1" #адрес удаленной стороны для построения SIP Trunk (адрес АТС)
- "192.168.0.2" #второй адрес удаленной стороны для построения SIP Trunk (адрес АТС), опционально
# раскомментируйте секцию ниже и не меняйте ничего в ней
sdpTemplate:
bandwidth:
type: "AS"
value: 64
media:
- type: "audio"
proto: "RTP/AVP"
bandwidth:
type: "TIAS"
value: 64000
mode: "sendrecv"
format:
- payload: 111
- payload: 9
- payload: 0
- payload: 8
- payload: 101
#Для каждой следующей группы пользователей добавляем новую секцию, начиная с ID группы
2223-abc1-3451111ef: #ID второй группы пользователей
phoneNumber: "4952224444" #номер телефона, который будет подставлен в поле FROM для звонка на АТС
outgoingTrunks:
- "192.168.0.3" #адрес удаленной стороны для построения SIP Trunk (адрес АТС)
- "192.168.0.4" #второй адрес удаленной стороны для построения SIP Trunk (адрес АТС), опционально
# раскомментируйте секцию ниже и не меняйте ничего в ней
sdpTemplate:
bandwidth:
type: "AS"
value: 64
media:
- type: "audio"
proto: "RTP/AVP"
bandwidth:
type: "TIAS"
value: 64000
mode: "sendrecv"
format:
- payload: 111
- payload: 9
- payload: 0
- payload: 8
- payload: 101
3. Сохраните изменения в файле
ctrl+O ctrl+X в Nano
4. Перезапустите сервис SIP Server
systemctl restart dion-sipserver
Редактировать этот файл требуется при установке системы на RedOS или другие системы, где есть сложности с установкой актуальной версии пакета gstreamer.
Неверная версия пакета приводит к недоступности входящего потока контента в сторону SIP-устройства.
1. Откройте на редактирование файл /app/dion/sipserver/tenants.yml
nano /app/dion/sipserver/tenants.yml
2. Найдите раздел sipendpoints
и поменяйте значение переменной dualVideo
на false
tenants:
- name: "default"
domain: "default"
ipaddresses: []
sipendpoints:
- name: "default"
model: "default"
dualVideo: false
При такой настройке входящий контент на SIP-терминал передается в одном канале с видео.
Перейдите в CLI ноды, на которой установлен пакет SIP Transcoder
1. Откройте на редактирование файл /app/dion/siptranscoder/siptranscoder.env
nano /app/dion/siptranscoder/siptranscoder.env
2. В переменную NET_INTERFACE_NAME
запишите имя активного сетевого интерфейса вашего сервера (например, eth0). Посмотреть имя интерфейса можно командой ip link
, либо ifconfig
NET_INTERFACE_NAME=eth0
3. Перечислите адреса нод Dion-Proxy данной площадки в переменной MK_GW_ADDRESSES,
укажите порт 9764 через двоеточие для каждого адреса:
MK_GW_ADDRESSES=192.168.0.1:9764,192.168.0.2:9764
4.В переменной ORGANIZATION
укажите ID вашей организации без кавычек. Его можно взять в файле org_id.txt, который вы получили вместе с образами
ORGANIZATION=a2ae8888-b888-4efe-eaee-cf865535555
5. Сохраните изменения в файле
ctrl+O ctrl+X в Nano
6. Перезапустите сервис SIP Transcoder
systemctl restart dion-siptranscoder
Перейдите в CLI ноды, на которой установлен пакет SIP Translator
На данной машине должен быть установлен docker
Необходимо загрузить в docker образ контейнера vscreen_transcoder.tar
Для этого выполните команду:
sudo docker load -i {путь к образу vscreen_transcoder.tar}
Т.к. служба Sip Translator запускается от имени пользователя dion
, для возможности запуска контейнера vscreen_transcoder
необходимо добавить пользователя в группу docker:
sudo usermod -aG docker dion
1. Откройте на редактирование файл /app/dion/siptranslator/siptranslator.env
nano /app/dion/siptranslator/siptranslator.env
2. В переменную NET_INTERFACE_NAME
запишите имя активного сетевого интерфейса вашего сервера (например, eth0). Посмотреть имя интерфейса можно командой ip link
, либо ifconfig
NET_INTERFACE_NAME=eth0
3. Укажите в переменной SIPTRANSLATOR_HOST
локальный адрес данной ноды SIP Translator
SIPTRANSLATOR_HOST=192.168.0.7
4. В переменных MK_GW_ADDRESSES
и CAPI_GW_ADDRESSES
перечислите адреса нод Dion-Proxy в с указанием порта 9764 через двоеточие для каждого адреса:
MK_GW_ADDRESSES=192.168.0.1:9764,192.168.0.2:9764
5. В переменной TRANSCODER_CONTAINER_NAME
должны быть указаны актуальные имя и версия контейнера vscreen_transcoder, установленного на данном хосте.
Проверить версию и написание имени можно, выполнив команду docker image ls. Версия должна быть указана через двоеточие.
Пример:
TRANSCODER_CONTAINER_NAME=git-registry.service.t1-cloud.ru/vc/vscreen_transcoder/vscreen_transcoder_prod:5-15-0
7. В переменной ORGANIZATION
укажите ID вашей организации без кавычек. Его можно взять в файле org_id.txt, который вы получили вместе с образами
ORGANIZATION=a2ae8888-b888-4efe-eaee-cf865535555
8. Сохраните изменения в файле
ctrl+O ctrl+X в Nano
9. Перезапустите сервис SIP Transcoder
systemctl restart dion-siptranslator
Перейдите в cli ноды, на которой установлен пакет dion-proxy.deb
Обратите внимание, что установка и конфигурация dion-proxy подробно описана в основной инструкции по установке.
1. Откройте на редактирование конфигурационный файл /etc/dion/proxy.yaml
sudo nano /etc/dion/proxy.yaml
Все переменные, требующие редактирования, находятся в первой части файла. Следуйте комментариям и инструкции ниже.
При редактировании файла очень важно сохранить исходную табуляцию!
2. Перейдите в секцию, перечисляющую адреса других сервисов DION
host:
укажите локальные IP-адреса серверов, на которых развернуты соответствующие компоненты SIP. Порты не меняйте.Обратите внимание, адреса сервисов необходимо писать в строке
host:
, а не в строке с именем сервиса
sipservers:
- host: 192.168.0.14
commandGRPCPort: 9091
healthCheck:
connectionType: http
port: 9092
meta:
# для перенаправления исходящих вызовов через АТС вашей организации измените значение переменной is_outgoing_calls_enabled на true
# для перенаправления потребуется внести соотвествующие изменения в файл organizations.yml и конфигурацию sip server, следуйте инструкции по установке
# при значении false исходящие звонки из конференций совершаются через облачную АТС DION
is_outgoing_calls_enabled: false
organizations:
- "" # Укажите ID вашей организации в кавычках
siptranslators:
- host: 192.168.0.13
commandGRPCPort: 9059
healthCheck:
connectionType: http
port: 8059
transcoderservers:
- host: 192.168.0.12
commandGRPCPort: 9034
healthCheck:
connectionType: http
port: 8034
Перенаправление исходящих вызовов подробно описано выше в разделе “Перенаправление исходящих вызовов через локальную АТС”.
Меняйте значение переменной
is_outgoing_calls_enabled:
наtrue
, только если вы включили перенаправление в секцииoutgoingCalls:
конфигурационного файлаsipserver.yml
и заполнили файлorganizations.yml
В списке очень важно сохранить исходную табуляцию!
sfus:
- host: 192.168.1.2
commandGRPCPort: 9016
healthCheck:
connectionType: http
port: 8016
- host: 192.168.1.4
commandGRPCPort: 9016
healthCheck:
connectionType: http
port: 8016
3. Сохраните изменения в файле
ctrl+O ctrl+X в Nano
4. Перезапустите сервис
systemctl stop dion-proxy
systemctl start dion-proxy
5. Убедитесь, что сервис запущен без ошибок и находится в статусе active (running)
systemctl status dion-proxy
Если сервис не запускается, обратитесь к вашей аккаунт-команде за помощью в настройке.
В результате выполнения шагов из данного руководства ожидается:
По умолчанию, вызов должен выполняться в формате ххххххх@IP-адрес или FQDN вашего SIPSERVER, где ххххххх — семизначный добавочный номер, указанный в приглашении на встречу для звонка с телефона.
Найти соответствующий номер можно в настройках комнаты DION в личном кабинете, либо в приглашении на встречу:
Если ваша АТС позволяет, вы можете настроить правила маршрутизации звонков по вашему усмотрению. Это может упростить формат вызова для ваших абонентов.