замена на https://faq.dion.vc/ru/hybrid/guides/configuration/sip_configuration_guide_5_22
В результате выполнения шагов из данного руководства ожидается, что:
Архитектура DION предусматривает возможность переноса части компонентов, отвечающих за обработку медиа-трафика, на площадку организации. Такие компоненты называются гибридными узлами. Наличие гибридных узлов позволяет проводить конференции в защищенном контуре, не передавая медиа-трафик в облако DION. В гибридном сценарии связь гибридных узлов с облаком DION является обязательным условием для работы конференций, так как в облако передаются сигнальная информация и управляющие команды.
Все гибридные компоненты, доступные к установке, можно разделить на три группы по функциональному назначению:
Установка и настройка узлов из первых двух групп описаны в отдельном руководстве по установке. Данное руководство описывает установку и настройку узлов, отвечающих за проведение 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, убедитесь в том, что выполнены следующие шаги:
Скачайте образы в виде deb- или rpm- пакетов и образов контейнеров в следующем составе:
SIP Server и SIP Transcoder:
dion-sip-serverdion-sip-transcoderSIP Translator:
dion-sip-translatorvscreen_transcoder.tarЗапросите в службе поддержки пользователей (support@diongo.ru) сертификаты, выпущенные для вашей организации.
Запрос должен быть отправлен с почтового адреса пользователя, зарегистрированного в DION с ролью Администратор организации.
Вам должны быть предоставлены следующие файлы:
crt и key) с ограниченным сроком действия.pem) с ограниченным сроком действия.org_id.txt.ID организации можно также посмотреть и скопировать в административной панели DION.
Примеры в данном разделе приведены для ОС Ubuntu
Если в процессе установки и конфигурации возникнут ошибки, рекомендуем воспользоваться руководством по устранению неисправностей.
Каждый сервис требует наличия в системе определенного списка пакетов. Пакеты могут немного отличаться от системы к системе, поэтому мы рекомендуем установить их вручную на соответствующие VM.
sudo apt install ffmpeg
Используйте пакетный менеджер, подходящий для вашей ОС.
Зависимости пакета sip-transcoder для Ubuntu и Astra:
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
Зависимости пакета sip-transcoder для CentOS:
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
Зависимости пакета sip-transcoder для RedOS:
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
sudo apt update
sudo apt upgrade
sudo apt install -f {путь к файлу}
Опция -f в команде установщика важна, так как без нее могут не установиться необходимые пакету зависимости и сервис не запустится.
Мы рекомендуем устанавливать SIP Transcoder и SIP Server на одну VM, а SIP Translator — на отдельную VM.
Если dion-proxy и coturn не были установлены ранее, установите их.
Загрузите образ контейнера vscreen_transcoder.tar в docker на машине, где будет установлен SIP Translator.
sudo docker load -i {путь к образу vscreen_transcoder.tar}
Обратите внимание, что на машине требуется предварительно установить docker.
Рекомендуем воспользоваться официальной инструкцией на сайте Docker.
Для корректной работы SIP модуля необходима версия dion-proxy не ниже 5.15
Проверить установленную версию:
apt list --installed | grep dion
Если установлена более старая версия ветки 5.15, выполните следующие действия:
Скачайте версию 5.15 в .deb или .rpm формате
Выполните последовательность команд
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.
nano /app/dion/sipserver/sipserver.yml
Все переменные, требующие редактирования, находятся в первой части файла. Следуйте комментариям и инструкции ниже.
При редактировании файла очень важно сохранить исходную табуляцию! Меняйте значения переменных, только если это в явном виде требуется в комментариях.
sip, grpc и http впишите в переменные, согласно комментариям, локальный адрес данного экземпляра sip-server в кавычках (например, 192.168.1.12)Пример заполнения :
clientHost: "192.168.1.12"
apiGrpcClient и mk служат для указания адреса шлюза dion-proxy в контуре. Необходимо четко соблюдать отступы в документе, для создания отступов используются пробелы.Укажите адреса всех нод данной площадки dion-proxy в кавычках в виде списка, для каждого адреса необходимо указать порт 9764 через двоеточие. Если адресов несколько, добавьте новую строку для каждого нового адреса.
Пример заполнения секций gwAddress и mkAdresses:
- "192.168.0.1:9764"
- "192.168.0.2:9764"
- "192.168.0.3:9764"
outgoingCalls:По умолчанию исходящие звонки на номера городской телефонной сети из конференций DION проходят через облако DION и производятся с телефонного номера, принадлежащего DION. Изменив конфигурацию в данной секции, можно перенаправить исходящие звонки через телефонную станцию организации.
Если вы планируете использовать облако DION для таких исходящих звонков, не меняйте значение переменной callsEnabled.
callsEnabled: true
Также необходимо будет внести изменения в конфигурационный файл organizations.yml. Инструкции по заполнению будут приведены ниже в отдельной секции.
organizations:Укажите ID вашей организации без кавычек вместо нулей. Пример заполнения секции:
organizations:
- 000000056-0000-0045-Afrd-00000000rft45
Укажите ID вашей организации в переменной organization:
organization: 000000056-0000-0045-Afrd-00000000rft45
ctrl+O ctrl+X в Nano
systemctl restart dion-sipserver
Данный файл служит для перенаправления исходящих звонков из конференций DION через телефонную станцию вашей организации. По умолчанию исходящие звонки из конференций DION на телефонные номера городской сети проходят через облако DION и производятся с телефонного номера, принадлежащего DION
Если перенаправление исходящих звонков на локальную АТС не требуется, не меняйте ничего в данном файле.
Если перенаправление требуется, следуйте инструкциям в данной секции.
Маршрутизация звонков осуществляется по группам пользователей. Например, звонки от группы А могут быть направлены на АТС А, а звонки от группы Б — на АТС Б.
Чтобы использовать перенаправление звонков, необходимо создать как минимум одну группу пользователей в административной панели DION.
ID указан в ссылке. Например в ссылке:
https://admin.dion.vc/user-groups/914509be-f02b-4000-9000-bc2211276000/settings
914509be-f02b-4000-9000-bc2211276000
nano /app/dion/sipserver/organizations.yml
Чтобы раскомментировать строку, удалите символ # в начале строки, но не удаляйте пробелы! Пробелы составляют отступы, которые необходимо сохранить для корректной работы. Каждый уровень отступа отличается от предыдущего на 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
ctrl+O ctrl+X в Nano
systemctl restart dion-sipserver
Редактировать этот файл требуется при установке системы на RedOS или другие системы, где есть сложности с установкой актуальной версии пакета gstreamer.
Неверная версия пакета приводит к недоступности входящего потока контента в сторону SIP-устройства.
/app/dion/sipserver/tenants.ymlnano /app/dion/sipserver/tenants.yml
sipendpoints и поменяйте значение переменной dualVideo на falsetenants:
- name: "default"
domain: "default"
ipaddresses: []
sipendpoints:
- name: "default"
model: "default"
dualVideo: false
При такой настройке входящий контент на SIP-терминал передается в одном канале с видео.
Перейдите в CLI ноды, на которой установлен пакет SIP Transcoder
/app/dion/siptranscoder/siptranscoder.env nano /app/dion/siptranscoder/siptranscoder.env
NET_INTERFACE_NAME запишите имя активного сетевого интерфейса вашего сервера (например, eth0). Посмотреть имя интерфейса можно командой ip link , либо ifconfigNET_INTERFACE_NAME=eth0
MK_GW_ADDRESSES=192.168.0.1:9764,192.168.0.2:9764
ORGANIZATION=a2ae8888-b888-4efe-eaee-cf865535555
ctrl+O ctrl+X в Nano
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
/app/dion/siptranslator/siptranslator.envnano /app/dion/siptranslator/siptranslator.env
NET_INTERFACE_NAME=eth0
SIPTRANSLATOR_HOST=192.168.0.7
MK_GW_ADDRESSES и CAPI_GW_ADDRESSES перечислите адреса нод Dion-Proxy в с указанием порта 9764 через двоеточие для каждого адреса:MK_GW_ADDRESSES=192.168.0.1:9764,192.168.0.2:9764
TRANSCODER_CONTAINER_NAME должны быть указаны актуальные имя и версия контейнера vscreen_transcoder, установленного на данном хосте.Проверить версию и написание имени можно, выполнив команду docker image ls. Версия должна быть указана через двоеточие. С выходами новых патчей для контейнера, последняя цифра версии может меняться, например 5-22-0 и 5-22-1, и, при проверке значения переменной, стоит проверить какая версия контейнера была установлена вами.
Пример:
TRANSCODER_CONTAINER_NAME=git-registry.service.t1-cloud.ru/vc/vscreen_transcoder/vscreen_transcoder_prod:5-22-0
ORGANIZATION=a2ae8888-b888-4efe-eaee-cf865535555
ctrl+O ctrl+X в Nano
systemctl restart dion-siptranslator
Перейдите в cli ноды, на которой установлен пакет dion-proxy.deb
Обратите внимание, что установка и конфигурация dion-proxy подробно описана в основной инструкции по установке.
/etc/dion/proxy.yamlsudo nano /etc/dion/proxy.yaml
Все переменные, требующие редактирования, находятся в первой части файла. Следуйте комментариям и инструкции ниже.
При редактировании файла очень важно сохранить исходную табуляцию!
Обратите внимание, адреса сервисов необходимо писать в строке 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
ctrl+O ctrl+X в Nano
systemctl stop dion-proxy
systemctl start dion-proxy
systemctl status dion-proxy
Если сервис не запускается, обратитесь к вашей аккаунт-команде за помощью в настройке.
По умолчанию, вызов должен выполняться в формате ххххххх@IP-адрес или FQDN вашего SIPSERVER, где ххххххх — семизначный добавочный номер, указанный в приглашении на встречу для звонка с телефона.
Найти соответствующий номер можно в настройках комнаты DION в личном кабинете, либо в приглашении на встречу:
Если ваша АТС позволяет, вы можете настроить правила маршрутизации звонков по вашему усмотрению. Это может упростить формат вызова для ваших абонентов.