Файлы, необходимые для запуска TURN в контейнере можно скачать здесь.
В архиве находятся 3 файла:
1. Создайте директорию для размещения содержимого архива на целевой виртуальной машине :
mkdir -p /app/dion/coturn/certs
2. Распакуйте полученный архив в созданную директорию /app/dion/coturn/
3. В директорию /app/dion/coturn/certs/
скопируйте сертификат и ключ для вашей организации (.crt и .key), предоставленные командой DION
4. Установите docker
и docker-compose
Рекомендуем воспользоваться официальной инструкцией на сайте Docker.
5. Выполните команду для загрузки образа из архива в локальный реестр:
docker load -i /app/dion/coturn/coturn_XXX
6. Проверяем docker-compose.yaml:
nano /app/dion/coturn/docker-compose.yaml
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"
Необходимо убедиться, что имя загруженного образа соответствует образу, указанному в переменной image:
, и, при необходимости, отредактировать docker-compose.yaml.
Для вывода списка загруженных образов воспользуйтесь командой - docker images
:
В переменной image:
указывается имя Repository и TAG через двоеточие.
Сохраните изменения в файле
ctrl+O ctrl+X в Nano
8. Правим конфигурационный файл turnserver.conf:
nano /app/dion/coturn/turnserver.conf
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
syslog
simple-log
Значение static-auth-secret
должно совпадать с переменной authSecret
секции Turn → meta
в конфигурационном файле dion-proxy.yml.
Сохраните изменения в файле
ctrl+O ctrl+X в Nano
9. Запускаем контейнер командой:
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
10. В результате с помощью команды docker ps
можно вывести список запущенных контейнеров:
Если контейнер не запускается, обратитесь к вашей аккаунт-команде за помощью в настройке.
Чтобы убедиться, что контейнер работает корректно, необходимо:
1. Настроить гибридные конференции DION. В конфигурационных файлах dion-proxy указать новый TURN сервер в контейнере
2. Запустить гибридную конференцию DION
3. Войти в конференцию из внешней сети (пользователь не должен находиться в одной подсети с медиа-сервером) из браузера
Перед подключением к конференции необходимо открыть Инструменты разработчика в браузере.
В той же вкладке, где открыты инструменты разработчика, нажмите “Войти” и перейдите в конференцию.
Во вкладке Network → WS
должно появиться одно сообщение.
По двойному клику открывается боковая панель.
В разделе Messages
нужно найти сообщение you_joined
.
По нажатию на сообщение внизу открывается окно с деталями. Найдите параметр params → ice_servers
.
В этом поле должен быть указан развернутый вами TURN (если он единственный).
Если TURN серверов несколько, может быть указан любой из активных. Попробуйте переподключиться в конференцию несколько раз, чтобы убедиться, что развернутый TURN в работе.
Если пользователь подключился, ему выдан для подключения TURN в контейнере, настройка выполнена корректно.
Если пользователь не может подключиться, обратитесь за помощью в настройке TURN.