Zum Hauptinhalt springen

Room Server

OpenTalk organizes video and audio streams through Janus which is used as SFU (Selective Forwarding Unit) for the conferences. The communication between the OpenTalk controller and Janus goes through either a direct websocket connection or RabbitMQ. Multiple Janus instances can be configured for an OpenTalk deployment.

The room_server section describes general settings that apply to all Janus instances that are used with the service. The individual Janus instances can be configured in the room_server.connections list field.

Configuration

The section in the configuration file is called room_server.

Room Server section

FieldTypeRequiredDefault valueDescription
max_video_bitratestringno1500000The maximum bitrate for video sessions
max_screen_bitratestringno8000000The maximum bitrate for screen share sessions
speaker_focus_packetsintno50Number of packets with with given speaker_focus_level needed to detect a speaking participant
speaker_focus_levelintno50Average value of audio level needed per packet. min: 127 (muted), max: 0 (loud)
connectionslist<Connection>no-List of connections to the room server, see below for more details

Room Server connections

Connection settings for the channel used to talk to the room server.

FieldTypeRequiredDefault valueDescription
websocket_urlstringyes*-Websocket URL pointing towards a janus instance, e.g. ws://my-janus-host:8188
to_routing_keystringyes**-The routing key to send messages to the room server
exchangestringyes**-The exchange to use for communication with the room server
from_routing_keystringyes**-The routing key to receive messages from the room server
event_loopsintno-Number of event loops configured for this janus server. This value is used to balance new webrtc sessions on event loops. If its not provided, one event loop is spawned by default.

* websocket_url is only required when connecting via websocket ** to_routing_key, exchange, from_routing_key are only required when using rabbitmq When both a websocket_url and the rabbitmq parameters are set, the websocket transport is used.

Example

[room_server]
max_video_bitrate = "1500000"
max_screen_bitrate = "8000000"
speaker_focus_packets = "50"
speaker_focus_level = "50"

# Using a direct websocket connection
[[room_server.connections]]
websocket_url = "ws://my-janus-host:8188"
event_loops = 92

# Using a rabbitmq to connect to janus
[[room_server.connections]]
to_routing_key = "to-janus"
exchange = "janus-exchange"
from_routing_key = "from-janus"
event_loops = 92