5.5 KiB
Настройка
olcrtc считывает всю свою конфигурацию среды выполнения из одного YAML-файла. теперь флагов CLI нет.
olcrtc /etc/olcrtc/server.yaml
Примеры:
Схема
| YAML path | Значение |
|---|---|
mode |
srv, cnc, or gen |
link |
direct |
auth.provider |
jitsi, telemost, jazz, wbstream, none |
room.id |
conference room id |
crypto.key / crypto.key_file |
64-char hex (32 bytes), inline or read from file |
net.transport |
datachannel, videochannel, seichannel, vp8channel |
net.dns |
resolver host:port |
socks.host / .port |
client-side listener |
socks.user / .pass |
optional client-side auth |
socks.proxy_addr / .proxy_port |
server-side egress proxy |
engine.name / .url / .token |
only when auth.provider: none |
video.* |
videochannel tuning |
vp8.* |
vp8channel tuning |
sei.fps / .batch_size / .fragment_size / .ack_timeout_ms |
seichannel tuning |
liveness.interval |
control-stream ping interval, default 10s |
liveness.timeout |
pong timeout, default 5s |
liveness.failures |
missed pongs before reconnect, default 3 |
gen.amount |
gen mode: number of rooms to create |
profiles[] |
ordered srv/cnc failover profiles |
failover.retry_delay |
delay before trying the next profile, e.g. 2s |
failover.max_cycles |
stop after N full profile-list passes; 0 = forever |
data |
path to data directory |
debug |
verbose logging |
ffmpeg |
path to ffmpeg binary |
mode: cnc refuses non-loopback socks.host values unless both
socks.user and socks.pass are set.
crypto.key_file is resolved relative to the YAML file. Do not set it
together with crypto.key.
Liveness
After CLIENT_HELLO / SERVER_WELCOME, the first smux stream stays open as
an encrypted control stream. olcrtc now sends CONTROL_PING / CONTROL_PONG
messages over that stream to prove the real tunnel path still round-trips.
This detects states where a provider or WebRTC layer looks connected but the
encrypted smux path is no longer usable.
liveness:
interval: 10s
timeout: 5s
failures: 3
When the failure threshold is reached, the current smux session is rebuilt. In failover mode, a profile that exits after liveness-triggered reconnect failure lets the supervisor advance to the next profile.
Failover Profiles
mode: srv and mode: cnc can define profiles. Top-level fields are used
as common defaults; each profile overrides only the fields it sets. The CLI
runs profiles in order. If a profile fails or ends while the process is still
alive, olcrtc waits failover.retry_delay and starts the next profile.
mode: srv
link: direct
crypto:
key_file: ./olcrtc.key
net:
dns: "1.1.1.1:53"
data: data
profiles:
- name: wb-vp8
auth:
provider: wbstream
room:
id: "WB_ROOM_ID"
net:
transport: vp8channel
- name: jitsi-dc
auth:
provider: jitsi
room:
id: "https://meet.example.org/olcrtc-room"
net:
transport: datachannel
failover:
retry_delay: 2s
max_cycles: 0
Both peers must use compatible profile order and room settings. This first failover layer rebuilds the session on the next profile; active smux streams do not migrate, but new connections can recover on the next profile.