В результате выполнения шагов данного руководства ожидается, что:
Архитектура DION предусматривает возможность переноса части компонентов, отвечающих за обработку медиатрафика и создание/хранение записей конференции, на площадку организации. Такие компоненты называются гибридными узлами. Наличие гибридных узлов позволяет проводить конференции в защищенном контуре, не передавая медиатрафик в облако DION.
В гибридном сценарии связь гибридных узлов с облаком DION является обязательным условием для работы конференций, так как в облако передаются сигнальная информация и управляющие команды.
Все гибридные компоненты, доступные к установке, можно разделить на группы по функциональному назначению:
В данном руководстве рассмотрена установка:
- служебных сервисов,
- сервисов проведения конференций,
- сервисов записи.
Сервисы конференций и записи DION, вынесенные в гибридную архитектуру, представлены на схеме зеленым цветом:

Описание компонентов:
| Наименование компонента | Описание компонента |
|---|---|
| MEDIA (SFU + Audiohub) | Компонент, отвечающий за обработку аудио- и видеопотоков. |
| Recorder, Record Converter, Record delivery | Компоненты, отвечающие за создание, конвертацию и скачивание пользователями видеозаписей конференций. Рекомендуется размещение на одном хосте. |
| TURN | Компонент, отвечающий за подключение внешних пользователей ко внутренним медиа-серверам через NAT. |
| Dion Proxy | Компонент, отвечающий за обнаружение гибридных узлов облаком DION. |
| KMS | Компонент, отвечающий за хранение секрета для шифрования записей конференции при хранении. |
Компоненты могут быть дублированы с целью обеспечения отказоустойчивости и масштабирования.
Прежде, чем перейти к установке и конфигурированию сервисов, выполните следующие шаги:
Для установки необходимых зависимостей в процессе установки гибридных узлов необходимо обеспечить доступ в публичный репозиторий операционной системы. При отсутствии доступа к публичному репозиторию некоторые пакеты не будут установлены корректно.
Скачайте образы в виде deb- (или rpm-) пакетов и образов контейнеров в следующем составе:
Для проведения конференций в контуре предприятия:
Dion-proxy:
Сервис MEDIA:
Сервис TURN:
Для записи, шифрования и хранения записей конференций:
Сервис Recorder:
Сервис Record Delivery:
Сервис Record Converter:
Сервис KMS (может быть установлен на любой из VM):
Запросите в службе поддержки пользователей (support@diongo.ru) сертификаты, выпущенные для вашей организации.
Запрос должен быть отправлен с почтового адреса пользователя, зарегистрированного в DION с ролью Администратор организации.
Вам должны быть предоставлены следующие файлы:
ID организации можно также посмотреть и скопировать в панели администрирования DION.
Наличие хранилища S3 является обязательным требованием для проведения записи гибридных конференций.
Если вы не планируете использовать сервис записи конференций, пропустите эту секцию и переходите к разделу установки сервисов конференций.
Если для хранения и просмотра записей конференций планируется использование DION Video, объектное хранилище S3 должно работать по протоколу HTTPS, а все сервисы конференций с записью — подключаться к S3 по HTTPS.
При использовании HTTP-подключения загрузка и воспроизведение видеозаписей на портале не будут доступны.
Параметр подключения к S3 (S3_USE_SSL=true) указывается в конфигурационных файлах сервисов:
Примеры настройки приведены в соответствующих разделах ниже.
Предполагается, что в вашей организации уже развернуто или планируется использование хранилища S3,
которое может быть использовано DION для хранения аудио- и видеозаписей конференций.
Для пилотного развертывания можно использовать демо-образ S3 Minio.
Демо-образ предназначен только для тестовых инсталляций и не подходит для продуктивной среды, так как не поддерживает отказоустойчивость.
Инструкцию по установке и конфигурированию см. здесь.
Для хранения записей конференций в S3 необходимо создать отдельный бакет. По умолчанию используется бакет с именем records.
Рекомендуется заранее создать бакет и получить ключи доступа. Эти данные указываются в конфигурационных файлах сервисов записи DION.
Необходимые параметры подключения:
Примеры в данном разделе приведены для ОС Ubuntu.
Если в процессе установки и конфигурации возникнут ошибки, рекомендуем воспользоваться руководством по устранению неисправностей в гибридном DION.
Для редактирования конфигурационных файлов и перезапуска сервисов вам потребуются root-права.
При недостатке прав используйте sudo перед каждой командой или введите sudo su один раз в начале работы.
Если в системе несколько экземпляров гибридных узлов, настройки нужно выполнить на каждом экземпляре.
Для установки необходимых зависимостей в процессе установки гибридных узлов необходимо обеспечить доступ в публичный репозиторий операционной системы. При отсутствии доступа к публичному репозиторию некоторые пакеты не будут установлены корректно.
Чтобы установить и сконфигурировать сервис Dion-proxy, выполните следующие действия:
Перенесите на соответствующий сервер/виртуальную машину:
dion-proxy.debtxt и сертификаты)Установите deb-пакет:
a. Выполните обновление репозиториев:
sudo apt update
sudo apt upgrade
b. Запустите установку пакета с помощью менеджера пакетов, например apt:
sudo apt install -f {путь к файлу}
В CLI откройте на редактирование конфигурационный файл /etc/dion/proxy.yaml:
sudo nano /etc/dion/proxy.yaml
Все переменные, требующие редактирования, находятся в первой части файла. Следуйте инструкции и комментариям ниже.
При редактировании файла очень важно сохранить исходные отступы!
Для переменной organizationID укажите ID вашей организации в кавычках. Его можно взять в файле org_id.txt, который вы получили. Например:
organizationID: "a2ae8888-b888-4efe-eaee-cf865535555”
Не забудьте поставить пробел между двоеточием и кавычками!
Укажите признак дата-центра в переменной logicalDatacenter. Если используется один дата-центр, признак можно не указывать.
В секции grpcOuter выполните следующие действия:
Для переменной host укажите локальный IP-адрес этого узла dion-proxy, например: 192.168.1.1. Это адрес, по которому dion-proxy должен быть доступен для других компонентов гибридной системы.
host: "192.168.1.1"
Для переменной publicHost укажите внешний белый IP-адрес этого узла сервиса dion-proxy, например: 92.68.1.1. Это адрес, по которому dion-proxy должен быть доступен для облака DION.
publicHost: "92.168.1.1"
Для соответствующих переменных укажите полные пути к сертификатам, которые вы загрузили на устройство на этапе подготовки в следующем виде:
caCertFile: "путь_к_вашему_сертификату.pem"
serverCertFile: "путь_к_вашему_сертификату.crt"
serverKeyFile: "путь_к_вашему_ключу.key"
Сервис
dion-proxyработает от имени пользователяdion, который создается при установке пакета. Убедитесь, что пользовательdionимеет доступ на чтение по указанному пути к сертификату.
В секции grpcInner для переменной host укажите локальный IP-адрес этого узла dion-proxy, например: 192.168.1.1. Это адрес, по которому dion-proxy должен быть доступен для других компонентов гибридной системы.
host: "192.168.1.1"
В секции cloudGateway для соответствующих переменных укажите полные пути к сертификатам, которые вы загрузили на устройство на этапе подготовки в следующем виде:
Имена переменных в этой секции отличаются от секции
grpcOuter. Не копируйте секцию целиком!
caCertClientsGWFile: "путь_к_вашему_сертификату.pem"
clientCertFile: "путь_к_вашему_сертификату.crt"
clientKeyFile: "путь_к_вашему_ключу.key"
Перейдите в секцию # адреса нод DION в контуре организации и выполните конфигурацию узлов в системе.
В секции allProxyGrpcOuterAddresses перечислите публичные адреса всех узлов dion-proxy в вашем дата-центре. Если в системе развернут один узел dion-proxy, укажите его публичный адрес.
- host: 18.6.14.5
port: 5443
# если есть другие dion-proxy, раскомментируйте блок ниже и внесите публичный адрес
# - host: 18.6.14.6
# port: 5443
Если в системе развернуто несколько узлов
dion-proxy, порядок следования адресов в секцииallProxyGrpcOuterAddresses:во всех конфигурационных файлах должен быть абсолютно одинаковым. Если установлено дваdion-proxy, в файлахproxy.yamlна обеих VM в этой секции должно быть два адреса, следующих в одинаковом порядке.
В секции turns укажите параметры подключения узлов TURN.
Для переменной host укажите адрес, который в конфигурационном файле TURN указан в поле web-admin-ip.
При заполнении обратите внимание на формат заполнения переменной addresses секции meta:
TURN работает только по порту 3478 UDP:- addresses: turn:внешний_IP_адрес:3478
TURN работает только по портам 3478 UDP и 443 TCP:- addresses: turn:внешний_IP_адрес:3478,turn:внешний_IP_адрес:443?transport=tcp
TURN работает только по порту 443 TCP:Использование TURN-сервера исключительно с TCP не рекомендуется, поскольку для передачи real-time-трафика (голоса, видео) предпочтительнее использовать UDP. Этот протокол обеспечивает низкую задержку и отсутствие буферизации, в то время как TCP добавляет дополнительные накладные расходы, которые могут существенно повлиять на качество real-time-трафика.
- addresses: turn:внешний_IP_адрес:443?transport=tcp
Не убирайте решетку перед полем
addressesв комментариях, просто используйте комментарии как пример, чтобы заполнить секциюmeta!
# впишите в переменную host локальный адрес TURN
# пример: -host: 192.168.0.1
- host: 192.168.0.2
healthCheck:
connectionType: tcp
port: 9088
meta:
# впишите публичный адрес TURN в формате, описанном выше
- addresses: turn:18.6.1.1:3478,turn:18.6.1.1:443?transport=tcp
# впишите Turn Secret, который указан в переменной static-auth-secret в конфигурационном файле turnserver.conf
authSecret: banana
# не меняйте данное значение
isTechnical: false
isInnerUse: false
Если вы планируете использовать каскадирование в облако, заполните отдельную секцию конфигурации TURN.
Конфигурация TURN в таком случае должна выглядеть так:
turns:
- host: 192.168.0.2
healthCheck:
connectionType: tcp
port: 9088
meta:
# секция для пользовательского трафика
- addresses: turn:18.6.1.1:3478
authSecret: banana
isTechnical: false
isInnerUse: false
# секция для каскадирования в облако
- addresses: turn:18.6.1.1:3478
authSecret: banana
isTechnical: true
isInnerUse: false
Если в системе развернуты несколько узлов
TURN, добавьте полную дополнительную секцию, начиная сhost, а также в поляхaddressesукажите публичные адреса каждого TURN-сервера, как в примере ниже.
- host: 192.168.0.1
healthCheck:
connectionType: tcp
port: 9088
meta:
- addresses: turn:18.6.1.1:3478,turn:18.6.1.1:443?transport=tcp,turn:18.6.2.2:3478,turn:18.6.2.2:443?transport=tcp
authSecret: banana
isTechnical: false
isInnerUse: false
- host: 192.168.0.2
healthCheck:
connectionType: tcp
port: 9088
meta:
- addresses: turn:18.6.2.2:3478,turn:18.6.2.2:443?transport=tcp,turn:18.6.1.1:3478,turn:18.6.1.1:443?transport=tcp
authSecret: banana
isTechnical: false
isInnerUse: false
В секциях sfus и audiohubs для переменных host укажите локальные IP-адреса серверов, на которых развернуты соответствующие медиа-компоненты, например: 192.168.1.2. Порты не меняйте. Если необходимо добавить дополнительные серверы SFU или Audiohub, следуйте примеру в комментариях в конфигурационном файле.
Обратите внимание, что адреса сервисов необходимо писать в строке
host, а не в строке с именем сервиса.
Если вы не планируете разворачивать сервисы записи, не заполняйте эти секции.
В секциях recorders, recorderConverters и recorderDeliverys для переменных host укажите локальные IP-адреса серверов, на которых развернуты соответствующие компоненты, например: 192.168.1.2. Порты не меняйте. Если необходимо добавить дополнительные серверы, следуйте примеру в комментариях в конфигурационном файле.
Если вы не планируете разворачивать сервисы SIP, не заполняйте эти секции.
Заполните секции следующим образом:
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
Перенаправление исходящих вызовов подробно описано в разделе Перенаправление исходящих вызовов через локальную АТС инструкции по установке и конфигурированию гибридных узлов SIP.
Меняйте значение переменной
is_outgoing_calls_enabledнаtrue, только если вы включили перенаправление в секцииoutgoingCallsконфигурационного файлаsipserver.ymlи заполнили файлorganizations.yml.
# Логирование в файл и уровень логов
# Уровень логирования:
# DEBUG (подробные сообщения для отладки)
# INFO (обычные информационные сообщения)
# WARN (предупреждения о возможных проблемах)
# Запись логов в файл:
# Если параметр "writeToFileIsEnabled" установлен в true, логи будут записываться в файл.
# Важно, чтобы файл журнала был предварительно создан и пользователю "dion"
# были предоставлены права на запись в этот файл.
# Путь к файлу задается в переменной writeToFilePath:
logging:
level: DEBUG
encoding: json
development: false
disableCaller: false
disableStacktrace: false
requestIdFieldName: x-request-id
writeToFile:
writeToFileIsEnabled: false
writeToFilePath: "./dmz-proxy.log"
applicationName: dmz-proxy
Также см. Настройка ротации логов с помощью Logrotate.
Чтобы исключить дублирование записей логов в общий системный файл /var/log/syslog, отредактируйте конфигурационный файл сервиса rsyslog:
sudo nano /etc/rsyslog.d/50-default.conf
В начало файла добавьте строку, которая остановит передачу логов от программы dion-proxy в syslog:
if ($programname == 'dion-proxy') then stop
Сохраните изменения в файле и закройте редактор. После редактирования конфигурации перезапустите службу rsyslog, чтобы изменения вступили в силу:
sudo service rsyslog restart
Сохраните изменения в файле: ctrl+O ctrl+X в Nano.
Перезапустите сервис:
systemctl stop dion-proxy
systemctl start dion-proxy
Убедитесь, что сервис запущен без ошибок и находится в статусе active (running):
systemctl status dion-proxy
Если сервис не запускается, обратитесь за помощью к вашей аккаунт-команде.
Запуск
TURNвозможен как в Docker (рекомендуемый способ), так и путем установки из пакета (не рекомендуется).
Чтобы установить и сконфигурировать сервис TURN, выполните следующие действия:
Скачайте архив Docker-образа с TURN для настройки на сервере. Архив содержит три файла:
docker-compose.yaml — файл с параметрами запуска контейнераturnserver.conf — конфигурационный файл TURNcoturn_XXX — образ для запуска контейнера (вместо XXX указана версия Coturn и расширение архива, которое может отсутствовать)Создайте директорию для размещения содержимого архива на целевой виртуальной машине:
mkdir -p /app/dion/coturn/certs
Распакуйте полученный архив в созданную директорию /app/dion/coturn/.
В директорию /app/dion/coturn/certs/ скопируйте сертификат и ключ для вашей организации (crt и key), предоставленные командой DION.
Установите docker и docker-compose. Рекомендуем воспользоваться официальной инструкцией на сайте Docker.
Загрузите образ из архива в локальный реестр, выполнив команду:
docker load -i /app/dion/coturn/coturn_XXX
Откройте на редактирование конфигурационный файл docker-compose.yaml:
sudo nano /app/dion/coturn/docker-compose.yaml
a. Убедитесь, что имя загруженного образа соответствует образу, указанному в переменной image, и, при необходимости, отредактируйте файл.
Для вывода списка загруженных образов воспользуйтесь командой docker images:

b. Отредактируйте переменную image в соответствии с выводом команды docker images. Укажите имя Repository и TAG через двоеточие.
version: "2.2"
services:
coturn:
image: registry.onprem.dion.vc/external/coturn:4.6.2-r11-alpine
restart: unless-stopped
network_mode: "host"
volumes:
- ./turnserver.conf:/etc/turnserver.conf:ro
- ./certs:/app/certs:ro
logging:
driver: "json-file"
options:
max-size: "20m"
max-file: "3"
labels: "gtlabel"
labels:
gtlabel: "coturn"
c. Сохраните изменения в файле: ctrl+O ctrl+X в Nano.
Откройте на редактирование конфигурационный файл turnserver.conf:
sudo nano /app/dion/coturn/turnserver.conf
a. Убедитесь, что значение static-auth-secret совпадает с переменной authSecret секции TURN > meta конфигурационного файла proxy.yaml и, при необходимости, отредактируйте файл.
web-admin
web-admin-ip=*ЛОКАЛЬНЫЙ_АДРЕС_TURN_СЕРВЕРА*
web-admin-port=9088
listening-port=3478
#Если планируете использовать TURN на 443 порту
tls-listening-port=443
cert=/app/certs/*ИМЯ_СЕРТИФИКАТА*.crt
pkey=/app/certs/*ИМЯ_КЛЮЧА*.key
external-ip=*ВНЕШНИЙ_АДРЕС_TURN_СЕРВЕРА*
min-port=49152
max-port=65535
verbose
fingerprint
use-auth-secret
static-auth-secret=*СТРОКА*
realm=turn
dh2066
simple-log
new-log-timestamp
log-file=stdout
b. Сохраните изменения в файле: ctrl+O ctrl+X в Nano.
Запустите контейнер командой:
docker compose -f /app/dion/coturn/docker-compose.yaml up -d
В системах Debian или Astra может использоваться docker-compose v1 и команда выше может не сработать. В таком случае используйте команду:
docker-compose -f /app/dion/coturn/docker-compose.yaml up -d
Выведите список запущенных контейнеров с помощью команды docker ps:

Проверьте работоспособность сервера TURN по инструкции.
Если контейнер не запускается, направьте запрос в поддержку на support@diongo.ru.
Чтобы установить и сконфигурировать сервис SFU, выполните следующие действия:
Перенесите на соответствующий сервер/виртуальную машину:
sfu.debtxt и сертификаты)Установите deb-пакет:
a. Выполните обновление репозиториев:
sudo apt update
sudo apt upgrade
b. Запустите установку пакета с помощью менеджера пакетов, например apt:
sudo apt install -f {путь к файлу}
В CLI откройте на редактирование конфигурационный файл /etc/dion/sfu.yaml:
sudo nano /etc/dion/sfu.yaml
Все переменные, требующие редактирования, находятся в первой части файла. Следуйте инструкции и комментариям ниже.
При редактировании файла очень важно сохранить исходные отступы!
Перейдите в секцию mediacontrollerGateway и для переменной host вместо URL укажите IP-адрес узла dion-proxy, например: 192.168.1.1:
- host: 192.168.1.1
Если в системе несколько узлов dion-proxy, укажите все в виде списка:
- host: 192.168.1.1
port: 9764
- host: 192.168.1.2
port: 9764
Настройте параметры логирование следующим образом:
# Логирование в файл и уровень логов
# Уровень логирования:
# DEBUG (подробные сообщения для отладки)
# INFO (обычные информационные сообщения)
# WARN (предупреждения о возможных проблемах)
# Запись логов в файл:
# Если параметр "writeToFileIsEnabled" установлен в true, логи будут записываться в файл.
# Важно, чтобы файл журнала был предварительно создан и пользователю "dion"
# были предоставлены права на запись в этот файл.
# Путь к файлу задается в переменной writeToFilePath:
log:
encoding: json
development: false
disableCaller: false
disableStacktrace: true
requestIdFieldName: x-request-id
writeToFile:
writeToFileIsEnabled: false
writeToFilePath: /app/dion/sfu.log
applicationName: sfu
level: INFO
также см. Настройка ротации логов с помощью Logrotate.
Чтобы исключить дублирование записей логов в общий системный файл /var/log/syslog, отредактируйте конфигурационный файл сервиса rsyslog:
sudo nano /etc/rsyslog.d/50-default.conf
В начало файла добавьте строку, которая остановит передачу логов от программы dion-sfu в syslog:
if ($programname == 'dion-sfu') then stop
Сохраните изменения в файле и закройте редактор. После редактирования конфигурации перезапустите службуrsyslog, чтобы изменения вступили в силу:
sudo service rsyslog restart
Сохраните изменения в файле: ctrl+O ctrl+X в Nano.
Перезапустите сервис:
systemctl stop dion-sfu
systemctl start dion-sfu
Убедитесь, что сервис запущен без ошибок и находится в статусе active (running):
systemctl status dion-sfu
Если сервис не запускается, обратитесь за помощью к вашей аккаунт-команде.
В шагах 7 и 8 данной инструкции описаны настройки параметров, позволяющих включить аудиозапись конференций. Обязательным условием для этого является наличие хранилища S3.
По умолчанию аудиозаписи хранятся в S3 в незашифрованном виде. Для поддержки шифрования необходим сервис KMS.
Если вы не планируете использовать аудиозапись конференций в гибридной системе, эти строки заполнять не обязательно. При попытке создать аудиозапись пользователю отобразится сообщение об ошибке.
Чтобы установить и сконфигурировать сервис Audiohub, выполните следующие действия:
Перенесите на соответствующий сервер/виртуальную машину:
audiohub.debtxt и сертификаты)Установите deb-пакет:
a. Выполните обновление репозиториев:
sudo apt update
sudo apt upgrade
b. Запустите установку пакета с помощью менеджера пакетов, например apt:
sudo apt install -f {путь к файлу}
В CLI откройте на редактирование конфигурационный файл /etc/dion/audiohub.conf:
sudo nano /etc/dion/audiohub.conf
Все переменные, требующие редактирования, находятся в первой части файла. Следуйте инструкции и комментариям ниже.
По умолчанию в конфигурационном файле указаны следующие пути:
AUDIO_RECORDS_DIR_PATH=/app/dion/records
SPEECH_RECORDS_DIR_PATH=/app/dion/speech
После установки проверьте наличие этих каталогов. Если их нет, создайте их и выдайте на них права пользователю dion (от его имени работает служба dion-audiohub) для хранения временных файлов записи.
Чтобы создать эти каталоги и выдать на них права пользователю dion, выполните команды:
sudo mkdir -p /app/dion/speech /app/dion/records/
sudo chown dion:dion /app/dion/speech/ /app/dion/records/
Для переменной NET_INTERFACE_NAME укажите имя активного сетевого интерфейса сервера, например: eth0. Чтобы узнать имя интерфейса, используйте команду ip link:
NET_INTERFACE_NAME=eth0
Для переменной GW_ADDRESSES перечислите адреса узлов proxy. Для каждого адреса укажите порт 9764 через двоеточие:
GW_ADDRESSES=192.168.1.1:9764
Если адресов несколько, перечислите через запятую без пробелов:
GW_ADDRESSES=192.168.1.1:9764,192.168.1.2:9764
Для переменной ORGANIZATION укажите ID вашей организации без кавычек. Его можно взять в файле org_id.txt, который вы получили.
ORGANIZATION=a2ae8888-b888-4efe-eaee-cf865535555
В шагах 7 и 8 описаны настройки параметров, позволяющих включить аудиозапись конференций. Обязательным условием для этого является наличие хранилища S3.
По умолчанию аудиозаписи хранятся в S3 в незашифрованном виде. Для поддержки шифрования необходим сервис KMS.
Если вы не планируете использовать аудиозапись конференций в гибридной системе, эти строки заполнять не обязательно. При попытке создать аудиозапись пользователю отобразится сообщение об ошибке.
Чтобы включить шифрование аудиозаписей, измените значение RECORD_ENCRYPTION_ENABLED на true и укажите адреса всех узлов KMS для переменной KMS_ADDRESSES. Адреса указываются через запятую, порт 9135 указывается через двоеточие для каждого адреса. Если шифрование не требуется, оставьте значения переменных по умолчанию.
RECORD_ENCRYPTION_ENABLED=true
KMS_ADDRESSES=192.168.1.3:9135,192.168.1.4:9135
В секции #S3 выполните следующие действия:
Чтобы включить аудиозапись, установите для S3_ENABLED значение true:
S3_ENABLED=true
Для переменной S3_API_URL укажите локальный адрес сервера (например: 192.168.1.3), на котором работает S3, и порт (9000 по умолчанию):
S3_API_URL=192.168.1.3:9000
Укажите данные для использования S3 для следующих переменных, их можно посмотреть на портале minio:
S3_ACCESS_KEY={access_key}
S3_SECRET_KEY={secret}
S3_BUCKET_NAME={name}
Имя бакета должно совпадать в конфигурационных файлах сервисов
audiohub,recorder,record-delivery,record-converter.
При использовании S3 по HTTPS укажите в конфигурации S3_USE_SSL=true.
S3_USE_SSL=true
Настройте параметры логирование следующим образом:
# Логирование в файл и уровень логов
# Уровень логирования:
# DEBUG (подробные сообщения для отладки)
# INFO (обычные информационные сообщения)
# Запись логов в файл:
# Если параметр "writeToFileIsEnabled" установлен в true, логи будут записываться в файл.
# Важно, чтобы файл журнала был предварительно создан и пользователю "dion"
# были предоставлены права на запись в этот файл.
# Путь к файлу задается в переменной writeToFilePath:
# Logger
LOG_ENCODING=json
LOG_DEVELOPMENT=false
LOG_DISABLE_CALLER=false
LOG_DISABLE_STACKTRACE=true
LOG_REQUEST_ID_FIELD_NAME=x-request-id
#write to file
LOG_WRITE_TO_FILE_IS_ENABLED=false
LOG_WRITE_TO_FILE_PATH=/app/dion/audiohub.log
LOG_APPLICATION_NAME=audiohub
LOG_LEVEL=INFO
Также см. Настройка ротации логов с помощью Logrotate.
Чтобы исключить дублирование записей логов в общий системный файл /var/log/syslog, отредактируйте конфигурационный файл сервиса rsyslog:
sudo nano /etc/rsyslog.d/50-default.conf
В начало файла добавьте строку, которая остановит передачу логов от программы dion-audiohub в syslog:
if ($programname == 'dion-audiohub') then stop
Сохраните изменения в файле и закройте редактор. После редактирования конфигурации перезапустите службуrsyslog, чтобы изменения вступили в силу:
sudo service rsyslog restart
Сохраните изменения в файле: ctrl+O ctrl+X в Nano.
Перезапустите сервис:
systemctl stop dion-audiohub
systemctl start dion-audiohub
Убедитесь, что сервис запущен без ошибок и находится в статусе active (running):
systemctl status dion-audiohub
Если сервис не запускается, обратитесь за помощью к вашей аккаунт-команде.
После конфигурирования сервисов и настроек административных параметров выполните проверку работоспособности сервисов.
Примеры в данном разделе приведены для ОС Ubuntu.
Если в процессе установки и конфигурации возникнут ошибки, рекомендуем воспользоваться руководством по устранению неисправностей в гибридном DION.
Для редактирования конфигурационных файлов и перезапуска сервисов вам потребуются root-права.
При недостатке прав используйте
sudoперед каждой командой или введитеsudo suодин раз в начале работы.Если в системе несколько экземпляров гибридных узлов, настройки нужно выполнить на каждом экземпляре.
Для установки необходимых зависимостей в процессе установки гибридных узлов необходимо обеспечить доступ в публичный репозиторий операционной системы. При отсутствии доступа к публичному репозиторию некоторые пакеты не будут установлены корректно.
Перед тем, как приступить к конфигурированию и запуску сервисов записи конференций, убедитесь что хранилище S3 сконфигурировано и доступно для подключения, в противном случае служба не будет запущена и отобразится сообщение об ошибке.
При расчете сайзинга для сервисов записи, подразумевается, что сервисы
Recorder,Record ConverterиRecord Deliveryразмещаются на одном хосте.
Если вы планируете развернуть несколько узлов KMS, их конфигурационные файлы должны быть идентичны. Используйте одинаковый секрет для шифрования!
Чтобы установить и сконфигурировать сервис KMS, выполните следующие действия:
Перенесите на соответствующий сервер/виртуальную машину:
kms.debtxt и сертификаты)Установите deb-пакет:
a. Выполните обновление репозиториев:
sudo apt update
sudo apt upgrade
b. Запустите установку пакета с помощью менеджера пакетов, например apt:
sudo apt install -f {путь к файлу}
В CLI откройте на редактирование конфигурационный файл /etc/dion/kms.yaml:
sudo nano /etc/dion/kms.yaml
Для переменной recordsMasterKeySecret укажите произвольную строку. Эта строка будет использоваться при генерации ключа шифрования для хранения записей конференций в S3. Строка указывается без кавычек через пробел после двоеточия, например:
recordsMasterKeySecret: averysecretstring
Сохраните изменения в файле: ctrl+O ctrl+X в Nano.
Перезапустите сервис:
systemctl stop dion-kms
systemctl start dion-kms
Убедитесь, что сервис запущен без ошибок и находится в статусе active (running):
systemctl status dion-kms
Если сервис не запускается, обратитесь за помощью к вашей аккаунт-команде.
В результате запуска правильно настроенного сервиса
Recorderстанет возможна запись конференции с включенным параметром безопасности Защищенный режим с сохранением файла записи форматаtsв S3-бакете.
На машине предварительно должен быть установлен Docker. Для установки рекомендуем воспользоваться официальной инструкцией.
Чтобы установить и сконфигурировать сервис Recorder, выполните следующие действия:
Перенесите на соответствующий сервер/виртуальную машину:
recorder.debvscreen_transcoder.tartxt и сертификаты)Установите deb-пакет:
a. Выполните обновление репозиториев:
sudo apt update
sudo apt upgrade
b. Запустите установку пакета с помощью менеджера пакетов, например apt:
sudo apt install -f {путь к файлу}
Загрузите образ контейнера vscreen_transcoder.tar в Docker.
sudo docker load -i {путь к образу vscreen_transcoder.tar}
Выполните проверку:
docker image ls
Для решения проблем, возникающих в работе с системами контейнеризации, в
dion-recorderбыла добавлена возможность записи конференций без использования контейнеров. Чтобы воспользоваться данной возможностью, в конфигурационном файлеrecorder.confсмените значение переменнойRECORDER_CONTAINER_MANAGERсdockerнаmedia_recorder:
RECORDER_CONTAINER_MANAGER=media_recorderТакже для работы потребуется установка пакета Google chrome.
Далее при обновлении, шаг с загрузкой контейнера
vscreen_transcoderможно пропустить.Мы не рекомендуем использовать данный метод записи без необходимости.
В CLI откройте на редактирование конфигурационный файл /etc/dion/recorder.conf:
sudo nano /etc/dion/recorder.conf
Все переменные, требующие редактирования, находятся в первой части файла. Следуйте инструкции и комментариям ниже.
Для переменной NET_INTERFACE_NAME укажите имя активного сетевого интерфейса сервера, например: eth0. Чтобы узнать имя интерфейса, используйте команду ip link:
NET_INTERFACE_NAME=eth0
Для переменной CAPI_GW_ADDRESSES укажите локальный адрес сервиса dion-proxy и через двоеточие порт 9764 для каждого адреса:
CAPI_GW_ADDRESSES=192.168.1.1:9764
Если адресов несколько, перечислите через запятую без пробелов:
CAPI_GW_ADDRESSES=192.168.1.1:9764,192.168.1.2:9764
Для переменной MEDIA_CONTROLLER_ADDRESSES укажите локальный адрес сервиса dion-proxy и через двоеточие порт 9764 для каждого адреса:
MEDIA_CONTROLLER_ADDRESSES=192.168.1.1:9764
Если их несколько, перечислите через запятую без пробелов:
MEDIA_CONTROLLER_ADDRESSES=192.168.1.1:9764,192.168.1.2:9764
Для переменной USERS_SERVICE_GW_ADDRESSES укажите локальный адрес сервиса dion-proxy и через двоеточие порт 9764 для каждого адреса:
USERS_SERVICE_GW_ADDRESSES=192.168.1.1:9764
Если их несколько, перечислите через запятую без пробелов:
USERS_SERVICE_GW_ADDRESSES=192.168.1.1:9764,192.168.1.2:9764
Для переменной EVENT_SERVICE_ADDRESSES укажите локальный адрес сервиса dion-proxy и через двоеточие порт 9764 для каждого адреса:
EVENT_SERVICE_ADDRESSES=192.168.1.1:9764
Если их несколько, перечислите через запятую без пробелов:
EVENT_SERVICE_ADDRESSES=192.168.1.1:9764,192.168.1.2:9764
В секции #S3 для переменной API_URL укажите локальный адрес сервера (например: 192.168.1.3), на котором работает S3, и порт (9000 по умолчанию):
API_URL=192.168.1.3:9000
При использовании S3 по HTTPS укажите в конфигурации S3_USE_SSL=true.
S3_USE_SSL=true
Также укажите данные для использования S3 для следующих переменных, их можно посмотреть на портале minio:
ACCESS_KEY={access_key}
SECRET_KEY={secret}
BUCKET_NAME={name}
Имя бакета должно совпадать в конфигурационных файлах сервисов
audiohub,recorder,record-delivery,record-converter.
Для переменной ORGANIZATION укажите ID вашей организации без кавычек. Его можно взять в файле org_id.txt, который вы получили.
ORGANIZATION=a2ae8888-b888-4efe-eaee-cf865535555
В шаге 13 описаны настройки параметров, позволяющих включить шифрование записей конференций при хранении. По умолчанию записи хранятся в S3 в незашифрованном виде. Для поддержки шифрования необходим сервис KMS.
Чтобы включить шифрование записей, измените значение RECORD_ENCRYPTION_ENABLED на true и укажите адреса всех узлов KMS для переменной KMS_ADDRESSES. Адреса указываются через запятую, порт 9135 указывается через двоеточие для каждого адреса. Если шифрование не требуется, оставьте значения переменных по умолчанию.
RECORD_ENCRYPTION_ENABLED=true
KMS_ADDRESSES=192.168.1.3:9135,192.168.1.4:9135
Сохраните изменения в файле: ctrl+O ctrl+X в Nano.
Перезапустите сервис:
systemctl stop dion-recorder
systemctl start dion-recorder
Убедитесь, что сервис запущен без ошибок и находится в статусе active (running):
systemctl status dion-recorder
Если сервис не запускается, обратитесь за помощью к вашей аккаунт-команде.
В результате правильно настроенного сервиса
Record Converter, после остановки записи конференции, помимо файла записи форматаts, будет создан файл с расширениемmp4.
Чтобы установить и сконфигурировать сервис Record Converter, выполните следующие действия:
Перенесите на соответствующий сервер/виртуальную машину:
dion-record-converter.debtxt и сертификаты)Установите deb-пакет:
a. Выполните обновление репозиториев:
sudo apt update
sudo apt upgrade
b. Запустите установку пакета с помощью менеджера пакетов, например apt:
sudo apt install -f {путь к файлу}
Установите пакетffmpeg:
sudo apt install ffmpeg
В CLI откройте на редактирование конфигурационный файл /etc/dion/record-converter.conf:
sudo nano /etc/dion/record-converter.conf
Все переменные, требующие редактирования, находятся в первой части файла. Следуйте инструкции и комментариям ниже.
Для переменной NET_INTERFACE_NAME укажите имя активного сетевого интерфейса сервера, например: eth0. Чтобы узнать имя интерфейса, используйте команду ip link:
NET_INTERFACE_NAME=eth0
Для переменной CAPI_GW_ADDRESSES укажите локальный адрес сервиса dion-proxy и через двоеточие порт 9764 для каждого адреса:
CAPI_GW_ADDRESSES=192.168.1.1:9764
Если адресов несколько, перечислите через запятую без пробелов:
CAPI_GW_ADDRESSES=192.168.1.1:9764,192.168.1.2:9764
Для переменной EVENT_SERVICE_ADDRESSES укажите локальный адрес сервиса dion-proxy и через двоеточие порт 9764 для каждого адреса:
EVENT_SERVICE_ADDRESSES=192.168.1.1:9764
Если их несколько, перечислите через запятую без пробелов:
EVENT_SERVICE_ADDRESSES=192.168.1.1:9764,192.168.1.2:9764
В секции #S3 для переменной API_URL укажите локальный адрес сервера (например: 192.168.1.3), на котором работает S3, и порт (9000 по умолчанию):
API_URL=192.168.1.3:9000
Также укажите данные для использования S3 для следующих переменных, их можно посмотреть на портале minio:
ACCESS_KEY={access_key}
SECRET_KEY={secret}
BUCKET_NAME={name}
Имя бакета должно совпадать в конфигурационных файлах сервисов
audiohub,recorder,record-delivery,record-converter.
При использовании S3 по HTTPS укажите в конфигурации S3_USE_SSL=true.
S3_USE_SSL=true
Для переменной ORGANIZATION укажите ID вашей организации без кавычек. Его можно взять в файле org_id.txt, который вы получили.
ORGANIZATION=a2ae8888-b888-4efe-eaee-cf865535555
В шаге 10 описаны настройки параметров, позволяющих включить шифрование записей конференций при хранении. По умолчанию записи хранятся в S3 в незашифрованном виде. Для поддержки шифрования необходим сервис KMS.
Чтобы включить шифрование записей, измените значение SUPPORT_ENCRYPTED_RECORDS на true и укажите адреса всех узлов KMS для переменной KMS_ADDRESSES. Адреса указываются через запятую, порт 9135 указывается через двоеточие для каждого адреса. Если шифрование не требуется, оставьте значения переменных по умолчанию.
SUPPORT_ENCRYPTED_RECORDS=true
KMS_ADDRESSES=192.168.1.3:9135,192.168.1.4:9135
Сохраните изменения в файле: ctrl+O ctrl+X в Nano.
Перезапустите сервис:
systemctl stop dion-record-converter
systemctl start dion-record-converter
Убедитесь, что сервис запущен без ошибок и находится в статусе active (running):
systemctl status dion-record-converter
Если сервис не запускается, обратитесь за помощью к вашей аккаунт-команде.
Если сервисы
Recorder,Record ConverterиRecord Deliveryнастроены корректно и запущены, то при окончании записи конференции, на электронную почту пользователя придёт письмо со ссылкой на скачивание файла записи.
Чтобы установить и сконфигурировать сервис Record Delivery, выполните следующие действия:
Перенесите на соответствующий сервер/виртуальную машину:
dion-record-delivery.debtxt и сертификаты)Установите deb-пакет:
a. Выполните обновление репозиториев:
sudo apt update
sudo apt upgrade
b. Запустите установку пакета с помощью менеджера пакетов, например apt:
sudo apt install -f {путь к файлу}
В CLI откройте на редактирование конфигурационный файл /etc/dion/record-delivery.conf:
sudo nano /etc/dion/record-delivery.conf
Все переменные, требующие редактирования, находятся в первой части файла. Следуйте инструкции и комментариям ниже.
Переменная MAX_USER_DOWNLOADS_COUNT_PER_MINUTE устанавливает ограничение на количество скачиваний одним пользователем в минуту. Если необходимо, укажите для неё значение:
MAX_USER_DOWNLOADS_COUNT_PER_MINUTE=3
Переменная TRUSTED_IP_SUBNETS перечисляет подсети, для которых это ограничение не действует. Можно оставить значение для этой переменной пустым:
TRUSTED_IP_SUBNETS=
Для переменной NET_INTERFACE_NAME укажите имя активного сетевого интерфейса сервера, например: eth0. Чтобы узнать имя интерфейса, используйте команду ip link:
NET_INTERFACE_NAME=eth0
Укажите полные пути к сертификатам. Здесь необходимо использовать сертификаты, выпущенные вашим доверенным CA. Если использовать сертификаты, предоставленные DION, пользователи получат предупреждение о потенциальной опасности сайта при скачивании видео:
HTTP_CERT_FILE_PATH=путь_к_вашему_сертификату.crt
HTTP_KEY_FILE_PATH=путь_к_вашему_ключу.key
Для переменной CAPI_GW_ADDRESSES укажите локальный адрес сервиса dion-proxy и через двоеточие порт 9764 для каждого адреса:
CAPI_GW_ADDRESSES=192.168.1.1:9764
Если адресов несколько, перечислите через запятую без пробелов:
CAPI_GW_ADDRESSES=192.168.1.1:9764,192.168.1.2:9764
Для переменной IAM_ADDRESSES укажите локальный адрес сервиса dion-proxy и через двоеточие порт 9764 для каждого адреса:
IAM_ADDRESSES=192.168.1.1:9764
Если их несколько, перечислите через запятую без пробелов:
IAM_ADDRESSES=192.168.1.1:9764,192.168.1.2:9764
Для переменной EVENT_SERVICE_ADDRESSES укажите локальный адрес сервиса dion-proxy и через двоеточие порт 9764 для каждого адреса:
EVENT_SERVICE_ADDRESSES=192.168.1.1:9764
Если их несколько, перечислите через запятую без пробелов:
EVENT_SERVICE_ADDRESSES=192.168.1.1:9764,192.168.1.2:9764
В секции #S3 для переменной API_URL укажите локальный адрес сервера (например: 192.168.1.3), на котором работает S3, и порт (9000 по умолчанию):
API_URL=192.168.1.3:9000
Также укажите данные для использования S3 для следующих переменных, их можно посмотреть на портале minio:
ACCESS_KEY={access_key}
SECRET_KEY={secret}
BUCKET_NAME={name}
Имя бакета должно совпадать в конфигурационных файлах сервисов
audiohub,recorder,record-delivery,record-converter.
При использовании S3 по HTTPS укажите в конфигурации S3_USE_SSL=true.
S3_USE_SSL=true
Для переменной ORGANIZATION укажите ID вашей организации без кавычек. Его можно взять в файле org_id.txt, который вы получили.
ORGANIZATION=a2ae8888-b888-4efe-eaee-cf865535555
В шаге 12 описаны настройки параметров, позволяющих включить шифрование записей конференций при хранении. По умолчанию записи хранятся в S3 в незашифрованном виде. Для поддержки шифрования необходим сервис KMS.
Если для серверов recorder и record-converter ,было включено шифрование с помощью kms, измените значение SUPPORT_ENCRYPTED_RECORDS на true и укажите адреса всех узлов KMS для переменной KMS_ADDRESSES. Адреса указываются через запятую, порт 9135 указывается через двоеточие для каждого адреса. Если шифрование не требуется, оставьте значения переменных по умолчанию.
SUPPORT_ENCRYPTED_RECORDS=true
KMS_ADDRESSES=192.168.1.3:9135,192.168.1.4:9135
Сохраните изменения в файле: ctrl+O ctrl+X в Nano.
Перезапустите сервис:
systemctl stop dion-record-delivery
systemctl start dion-record-delivery
Убедитесь, что сервис запущен без ошибок и находится в статусе active (running):
systemctl status dion-record-delivery
Если сервис не запускается, обратитесь за помощью к вашей аккаунт-команде.
После конфигурирования сервисов и настроек административных параметров выполните проверку работоспособности сервисов.
Чтобы гибридный DION начал работу, необходимо не только установить и сконфигурировать гибридные узлы, но и выполнить соответствующие настройки в панели администрирования DION.
Для запуска гибридного режима, в панели администрирования перейдите в настройки гибридных сервисов:
В разделе Организации выберите организацию и перейдите в её профиль.

В разделе Конференции включите параметр Возможность переноса конференции в гибрид.

После этого в Личном Кабинете пользователя в настройках безопасности конференции можно будет выбрать, где проводить конференцию:
Остальные параметры можно настроить на ваше усмотрение.
Параметр Новые конференции создаются в гибриде позволяет управлять созданием комнат по умолчанию для пользователей. Если флажки сняты, комнаты пользователей создаются в облаке. Если флажки установлены, конференции создаются на гибридных ресурсах. Этот параметр не влияет на уже созданные конференции.
Поведение системы в зависимости от положения Возможность переноса конференции в гибрид и Новые конференции создаются в гибриде показано в таблице:
| Возможность переноса конференции в гибрид | Новые конференции создаются в гибриде | Результат |
|---|---|---|
| Выкл | Выкл | Все новые конференции создаются в облаке, пользователь не может перенести их на площадку организации. |
| Вкл | Выкл | Все новые конференции создаются в облаке, пользователь может перенести их на площадку организации через свой личный кабинет и настройки конференции. |
| Выкл | Вкл | Все новые конференции создаются на площадке организации, пользователь не может перенести их в облако. |
| Вкл | Вкл | Все новые конференции создаются на площадке организации, пользователь может перенести их в облако через свой личный кабинет и настройки конференции. |
Для подключения внешних пользователей включите параметр Свободный доступ к Гибридным конференциям.
Если сервисы записи установлены:
В разделе Видеохостинг для параметра Запись в конференциях установите флажок В Гибриде.
Включите параметр Отправка ссылки на скачивание записи по email.
В поле Адрес для скачивания записи в гибридной архитектуре введите адрес узла Record Delivery в формате: https://IP_адрес или FQDN:443/v1/file
Необходимо вводить адрес именно в формате, указанном выше, иначе при попытке сохранить настройки вы получите ошибку.
Если в системе несколько узлов Record Delivery, вместо IP укажите DNS-имя: https://FQDN:443/v1/file
При отсутствии в гибридной системе сервисов записи, убедитесь, что в панели администрирования запись конференций В Гибриде отключена. В этом случае кнопка записи не будет отображаться пользователю. В противном случае кнопка будет доступна и при старте записи пользователю будет отображаться сообщение об ошибке.
После конфигурирования сервисов и настроек административных параметров в настройках безопасности комнаты в DION можно выбрать параметр Защищённый режим:
В личном кабинете в разделе Мои комнаты откройте настройки выбранной гибридной комнаты.

В разделе Безопасность включите Защищённый режим (этот параметр будет доступен, если в панели администрирования разрешен перенос конференций в гибрид):

Если все настройки выполнены корректно и сервисы запущены, включение параметра должно примениться без ошибок. В противном случае, обратитесь к руководству по устранению неисправностей или к вашей аккаунт-команде за помощью.
Комната с включенным параметром Защищённый режим (проводимая на гибридных ресурсах) будет обозначена значком в виде синего щита возле имени комнаты. Также значок будет виден во время конференции:

Для проверки работоспособности сервисов записи необходимо зайти в гибридную конференцию (отмеченную значком в виде синего щита в интерфейсе) и включить запись.
Для проверки аудиозаписи в настройках конференции в разделе Запись включите параметр Аудиозапись конференции.
Если в процессе записи возникли ошибки или ссылка на скачивание записи не пришла, обратитесь к руководству по устранению неисправностей или к вашей аккаунт-команде за помощью.
Статус регистрации сервисов можно отслеживать в панели администрирования на вкладке Гибридные сервисы в профиле организации.
При верной конфигурации все сервисы отмечены зеленым цветом.

Краткий перечень финальных проверок корректной работы гибридной инфраструктуры.
Все узлы отображаются в панели Гибридные сервисы, количество соответствует установленным;
Все сервисы отмечены статусом зелёного цвета;
Статусы стабильны, нет флапов или периодических ошибок (серый/красный цвет отсутствует).
В настройках комнаты включен Защищённый режим;
При подключении отображается значок синего щита;
Подключение внутри контура и из интернета работает без ошибок;
Аудио и видео стабильны, без задержек;
Выполнено 10–15 тестовых подключений (внутренняя и внешняя сеть).
Запись конференции длится ≥ 40 секунд;
Письмо со ссылкой получено;
Видео успешно скачивается и воспроизводится.
Если все пункты чек-листа пройдены успешно, гибридная инфраструктура DION готова к эксплуатации: