# Компонент для протокола TrueConf

Представляет собой исполняемый файл с именем tc_bc. Настройки для работы компонента можно указать в списке параметров запуска после пути к исполняемому файлу или в подключаемом файле конфигурации (с помощью параметра -c). Пример файла конфигурации смотрите после перечисления параметров.

# Запуск из консоли

Для запуска компонента как консольного приложения перейдите в терминал и выполните команду:

<path_to_border_controller> <parameters>

где <path_to_border_controller> — путь к исполняемому файлу, <parameters> — список параметров (см. далее).

Например, запуск на Windows с минимально необходимым параметром -d (адрес TrueConf Server):

"C:\Program Files\TrueConf\tc_bc.exe" -d 10.110.10.10

Запуск на Linux с минимально необходимым параметром -d:

"/opt/trueconf/enterprise/etc/bc/tc_bc" -d 10.110.10.10

# Добавление как службы или демона

Данный способ удобнее по ряду причин:

  • процесс может быть запущен автоматически от имени системной учётной записи ОС (не требуется входа в сеанс пользователя), при этом остаётся возможность его управлением вручную;

  • в пределах ОС можно сделать разные службы/демоны на базе одного приложения для направления трафика на несколько экземпляров TrueConf Server, не разворачивая множество виртуальных или физических серверов в DMZ;

  • в журнале событий ОС будут записи о старте и остановке службы/демона, сообщения в случае проблем в работе и пр.

# Добавление службы на Windows

Чтобы добавить компонент в список служб Windows, можно воспользоваться командой New-Service в PowerShell (opens new window) или утилитой sc.exe (opens new window).

При этом для большей гибкости в дальнейшей поддержке расширения рекомендуем указать параметры не в списке после пути к исполняемому файлу, а в подключаемом файле конфигурации (смотрите параметр -c).

Создание службы с помощью PowerShell:

  1. Запустите PowerShell от имени администратора.

  2. Выполните команду вида:

$params = @{
  Name = "TrueConf Border Controller"
  BinaryPathName = "c:\trueconf\tc_bc.exe -c c:\trueconf\tc_bc.cfg --service"
  DisplayName = "TrueConf Border Controller"
  StartupType = "Automatic"
  Description = "This is a TrueConf Border Controller service."
}
new-service @params

где в параметре BinaryPathName укажите ваш путь к tc_bc.exe и расположение файла конфигурации. Обратите внимание, что наличие параметра --service является обязательным.

Если путь, например, к файлу конфигурации, содержит пробелы, то его следует заключить в двойные кавычки " и экранировать их с помощью символа ` (обратная одинарная кавычка), например:

`"c:\trueconf\trueconf\tc_bc.cfg`"

Подробнее об этом читайте в документации PowerShell (opens new window).

Создание службы с помощью утилиты sc через cmd (терминал):

  1. Запустите cmd от имени администратора.

  2. Выполните команду вида:

sc create TrueConf_Border_Controller binPath= ""C:\TrueConfBorderController\tc_bc.exe" --service --ConfigFile C:\TrueConfBorderController\tc_bc.cfg" DisplayName=TrueConf_Border_Controller type=own start=auto

# Добавление демона на Linux

Для добавления демона на Linux надо создать для него файл запуска (называемый юнит) в каталоге /etc/systemd/system. Например, для запуска от имени root с чтением файла конфигурации tc_bc.cfg:

  1. В одной директории, например, /opt/trueconf/enterprise/etc/bc/, разместите исполняемый файл компонента tc_bc и конфигурационный файл tc_bc.cfg. Список параметров для файла конфигурации представлен ниже.

  2. Создайте файл юнита, например, tbc.service, с помощью команды:

sudo nano /etc/systemd/system/tbc.service

3. Сохраните в файле следующее содержимое:

[Unit]
Description=TrueConf Border Controller
After=network.target

[Service]
ExecStart=/usr/bin/tbc.sh
Restart=always
RestartSec=3

[Install]
WantedBy=multi-user.target

4. По пути из параметра ExecStart разместить скриптtbc.sh, в котором укажите команду запуска в виде:

#!/bin/bash
/opt/trueconf/enterprise/etc/bc/tc_bc -c /opt/trueconf/enterprise/etc/bc/tc_bc.cfg

5. Для обновления конфигурации в подсистеме systemd выполните команду:

sudo systemctl daemon-reload

6. Для ручного запуска демона выполните команду:

sudo systemctl start tbc.service

7. Проверить статус работы демона можно с помощью команды:

sudo systemctl status tbc.service

Созданный демон будет запускаться автоматически при старте системы и успешной проверке конфигурации сети.

Подробнее о создании демона Linux читайте в документации к вашей версии ОС, или в общих руководствах, например на Linux Handbook (opens new window).

# Список параметров

Компонент TrueConf Border Controller для перенаправления трафика TrueConf поддерживает следующие параметры запуска (в скобках для некоторых представлены альтернативные варианты вызова).

# Параметры командной строки (нельзя использовать в файле конфигурации)

  • -h (--help) — вывод встроенной помощи со списком параметров и примерами;

  • -c <path> (--ConfigFile <path>) — путь <path> к файлу конфигурации;

  • -v (--version) — версия компонента.

# Общие параметры

  • --Debug <level> — уровень логирования от 0 (отключен) до 4;

  • --LogDirectory <path> — путь к сохранению лог-файлов по работе расширения;

  • --LogToConsole — вывод логов в консоль вместо лог-файла;

  • --Daemonize <path to the PID lock-file> (только для Linux) — запуск в виде демона (daemon) с указанием пути сохранения PID-файла;

  • --Service (только для Windows) — запуск в виде службы;

  • --R — автоматический перезапуск службы при ошибке.

# Параметры маршрутизации:

  • -D <id>/<host>:<port> (--Destination <id>/<host>:<port>) — адрес или FQDN TrueConf Server или TrueConf Enterprise для перенаправления трафика. Здесь:

    • <id> — (опционально) уникальная строка идентификатора для объединения опций (если требуется работа одного TrueConf Border Controller с несколькими правилами перенаправления, не рекомендуется);

    • <host> — IPv4, IPv6 или FQDN (IPv6 должен быть указан в квадратных скобках [IPv6]);

    • <port> — (опционально) порт, может быть опущен если равен значению по-умолчанию 4307;

  • -L <id>/<host>:<port> (--Listen <id>/<host>:<port>) — сетевой интерфейс для получения входящего трафика, опции совпадают с таковыми для параметра -D;

  • -E <id>/<cipher>:<flags>:<key> (--Encryption <id>/<cipher>:<flags>:<key>) — шифрование пакетов от TrueConf Border Controller к серверу видеосвязи. Здесь:

    • <id> — (опционально) уникальная строка идентификатора для объединения опций;

    • <cipher> — используемый шифр, принимает значения None (без шифрования, по-умолчанию), ChaCha20, AES-256-CTR, AES-256-OFB, AES-192-CTR, AES-192-OFB, AES-128-CTR, AES-128-OFB, xoshiro256++, xoshiro256**;

    • <key> — ключ для шифрования (в 16-ричном виде), может быть опущен, чтобы использовалось случайно сгенерированное значение (не совместимо с режимом PSK);

    • <flags> — если имеется и равен PSK, значит, используется шифрование с использованием Pre-Shared Key. Тогда требуется его настройка на стороне сервера видеосвязи.

# Пример файла конфигурации:

LogDirectory=/opt/trueconf/enterprise/etc/bc/logs/
Listen=10.140.10.123
Destination=10.110.10.10
Encryption=ChaCha20