# The component for the TrueConf protocol

It is an executable file named tc_bc. Its launch parameters can be specified in additional parameters after the path or in the configuration file connected with the help of -c parameter. An example of the configuration file is presented after the list of parameters.

# Launching from the terminal

To launch the component as a console application, go to the terminal and run this command:

<path_to_border_controller> <parameters>

where <path_to_border_controller> is the path to the executable file while <parameters> is the list of parameters (check below).

For example, this is how the file can be run on Windows with the only required -d parameter (TrueConf Server address):

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

Launching on Linux with the only required -d parameter:

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

# Adding as a service or daemon

This approach is more convenient due to multiple reasons:

  • The process can be started automatically on behalf of an OS account (no need to start a user session); however, at the same time, the process can be controlled manually.

  • Within the OS, it is possible to create multiple services/daemons based on one application so that traffic could be directed to multiple instances of TrueConf Server without deploying multiple virtual or physical servers in the DMZ.

  • The OS log will include records of when the service/daemon was started and stopped and will include messages if some errors or any other issues occur.

# Adding a service on Windows

To add a component to the list of Windows services, you can use the command New-Service in PowerShell (opens new window) or use the utility sc.exe (opens new window).

To make it easier and more flexible to support the extension, we recommend specifying the parameters in the linked configuration file (check the -c parameter) instead of listing them after the path.

Creating a service using PowerShell:

  1. Run PowerShell as the administrator.

  2. Run the command based on the following example:

$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

where you need to specify the path to the file tc_bc.exe and the configuration file in the BinaryPathName parameter. Please note that --service is a required parameter.

If a path, e.g., the path to the configuration file includes spaces, it should be put in double quotes " and these quotes should be escaped with this character ` (inverted single quote), for example:

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

To learn more about it, check the PowerShell documentation (opens new window).

Creating a service using the sc utility through cmd (terminal):

  1. Run cmd as administrator.

  2. Run the command based on the following example:

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

# Adding a daemon on Linux

When adding a daemon on Linux, one has to create a launch file for it (this file is called unit) in the directory /etc/systemd/system. For example, to launch on behalf of root and read the configuration file tc_bc.cfg:

  1. Move the executable file of the tc_bc component and the configuration file tc_bc.cfg in the same directory, e.g., /opt/trueconf/enterprise/etc/bc/. The list of parameters for the configuration file is presented below.

  2. Create a unit file, for instance, tbc.service, using the command:

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

3. Save the following content in the file:

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

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

[Install]
WantedBy=multi-user.target

4. Specify the following launch command in the script tbc.sh that should be placed under the path from the ExecStart parameter:

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

5. To update the configuration, run this command in the subsystem systemd:

sudo systemctl daemon-reload

6. To manually start the daemon, execute the command:

sudo systemctl start tbc.service

7. You can check the daemon's operating status using the command:

sudo systemctl status tbc.service

The created daemon will be launched automatically when the system is started providing that the network configuration is checked successfully.

To learn more about creating a Linux daemon, read the documentation for your OS or check the general guides such as Linux Handbook (opens new window).

# List of parameters

The TrueConf Border Controller component for redirecting TrueConf traffic supports the following launch parameters (in brackets we have specified alternatives for some of them).

# Command-line parameters (cannot be used in the configuration file)

  • -h (--help) — the display of the built-in help menu with the list of parameters and examples

  • -c <path> (--ConfigFile <path>) — the path <path> to the configuration file

  • -v (--version) — the component version.

# General parameters

  • --Debug <level> — the logging level from 0 (disabled) to 4

  • --LogDirectory <path> — the path for saving log files related to the extension

  • --LogToConsole — log messages are displayed in the console instead of being written to log files

  • --Daemonize <path to the PID lock-file> **(only for Linux ) — start as a daemon with the path for saving the PID file

  • --Service (only for Windows) — start as a service

  • --R — automatic service restart in case of an error

# Redirection parameters

  • -D <id>/<host>:<port> (--Destination <id>/<host>:<port>) — the address or FQDN of TrueConf Server or TrueConf Enterprise where traffic will be redirected. Here:

    • <id> — (optional) unique string of the identifier used for combining options (when the same TrueConf Border Controller should follow several redirection rules, we do not recommend this approach)

    • <host> — IPv4, IPv6 or FQDN (IPv6 has to be specified in square brackets [IPv6])

    • <port> — (optional) port, this parameter can be omitted if it is equal to the default value 4307

  • -L <id>/<host>:<port> (--Listen <id>/<host>:<port>) — the network interface for receiving the incoming traffic; the options of this parameter match the options for the -D parameter

  • -E <id>/<cipher>:<flags>:<key> (--Encryption <id>/<cipher>:<flags>:<key>) — encryption of packets sent from TrueConf Border Controller to the video conferencing server. Here:

    • <id> — (optional) unique string of the identifier for combining options

    • <cipher> — selected encryption method, it can have such values as None (no encryption, default), ChaCha20, AES-256-CTR, AES-256-OFB, AES-192-CTR, AES-192-OFB, AES-128-CTR, AES-128-OFB, xoshiro256++, xoshiro256**

    • <key> — encryption key (in the hexadecimal format) may be omitted if a randomly generated value is used (incompatible with PSK mode)

    • <flags> — if this parameter is available and is equal to PSK, Pre-Shared Key encryption will be used. In this case some additional configuration will be needed on the side of the video conferencing server.

# An example of a configuration file:

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