DCAS handbook

Voice

Available on builds with voice or voice-bundled feature enabled.

Support status

OSBrowserVersionStatusTested at
LinuxFirefox147.0Works28.01.26
LinuxGoogle Chrome134.0Works30.03.25
LinuxUngoogled Chromium134.0User fix30.03.25
LinuxUngoogled Chromium126.0User fix30.03.25
Win10Firefox144.0Works24.10.25
Win10Google Chrome140.0Works26.09.25
Win10Google Chrome134.0Works01.04.25
Win10Librewolf140.0.4Works25.07.25

Sorting order: OS asc, Browser asc, Ver desc

Operation

Terms:

  • main server - dcas, main binary that do http API, gateway WS, CDN, etc;
  • voice server - dcas_voice, does voice WS and WebRTC;
  • voice region - a setting in vanilla client;

Notes:

  • normal operation is as follows:
    • add section [voice.REGION_NAME] to config;
    • let’s assume you set connect_mode to local;
    • REGION_NAME is to be replaced w/ your region name;
    • start voice server ./dcas_voice -s server/voice.REGION_NAME.sock;
    • -s means ‘controlling socket path’;
    • (re)start main server;
    • it should successfully connect to a voice server;
    • voice server should tell (in logs) that it got new client;
    • in client, you should see REGION NAME in voice channel settings;

Configuration

Example configuration as follows:

[voice.region_1]
connect_mode = "local"      # local = talk w/ voice server via `server/voice.region_1.sock`
gw_scheme = "ws"            # this scheme would be reported to clients
gw_pub_host = "10.8.0.2"    # report this host to clients
gw_pub_port = 9002          # report this port to clients
gw_bind = "0.0.0.0"         # bind websocket server to this ip
gw_port = 9002              # bind websocket server to this port
data_host = "10.8.0.2"      # MUST be a valid non-localhost IP
data_bind = "0.0.0.0"       # bind STUN+SRTP to this ip
data_port = 9003            # bind STUN+SRTP to this port

[voice.region_2]
# Similar to region_1

Note: you have to set gw_pub_host and data_host to valid non-localhost IPs, otherwise users wont be able to connect to voice. 127.0.0.1 or 192.168.1.12 wouldn’t work!

Metrics

Available on builds with metrics feature enabled.

Voice server metrics are routed to main server with voice_api::METRICS_INTERVAL_MS interval (10s by default) and included in Prometheus metrics list as-is.

See complete list of voice server metrics in voice/src/metrics.rs.