Skip to content

Latest commit

 

History

History
86 lines (68 loc) · 3.37 KB

relay.md

File metadata and controls

86 lines (68 loc) · 3.37 KB

Setting up relays (cascaded bridges)

Relays

Relays (aka secure octo) use ICE and DTLS/SRTP between each pair of bridges, so a secure network is not required. It uses and requires either SCTP or colibri websockets for the bridge-bridge connections.

Jitsi Videobridge configuration

Relay configuration

Relays can be configured with the following properties in /etc/jitsi/videobridge/jvb.conf (also see reference.conf).

  videobridge {
    relay {
      enabled=true
      region="region1"
      relay-id="unique-id-of-the-jitsi-videobridge-instance"
    }
  }

Legacy configuration is detected and automatically adapted, so no configuration changes are necessary when upgrading.

Relays require colibri websockets for the bridge-to-bridge connections, which can be enabled as described in this document. Note that the colibri-relay-ws endpoints also need to be proxied.

Jicofo configuration

Octo needs to be enabled, and a suitable bridge selection strategy needs to be configured in /etc/jitsi/jicofo/jicofo.conf:

jicofo {
  bridge {
    selection-strategy = RegionBasedBridgeSelectionStrategy
  }
  octo {
    enabled = true
  }
}

The RegionBasedBridgeSelectionStrategy matches the region of the clients to the region of the Jitsi Videobridge instances. That is, it always attempts to select a bridge in the region of the client.

The SplitBridgeSelectionStrategy can be used for testing. It tries to select a new bridge for each client, regardless of the regions. This is useful while testing, because you can verify that Octo works before setting up the region configuration for the clients.

Important note: Jicofo will not mix bridges with different versions in the same conference. Even with SplitBridgeSelectionStrategy if the bridges have different versions only bridges with the same version will be used. To prevent this behavior (for testing purposes only) set jicofo.ocfo.allow-mixed-versions=true in jicofo.conf.

Debugging

Jicofo's debug interface can be used for troubleshooting.

To list the bridges available to jicofo (with their versions, regions, etc):

curl "http://localhost:8888/debug" | jq .bridge_selector

To list currently running conferences:

curl "http://localhost:8888/debug" | jq .focus_manager

To list the full state of a conference (get actual conference ID with the command above, escaping the '@' sign):

curl "http://localhost:8888/debug/conference/test\@conference.example.com" | jq .

Look under colibri_session_manager for the different bridge sessions.

Configuring client regions

Clients learn about the region that they are in via the value of config.deploymentInfo.userRegion. Thus, in order for relays to actually work for geolocation, config.js must be served with the correct values. The best way to implement this is outside the scope of this document, and it depends on the environment in which Jitsi Meet is installed.

One easy solution can be to set the variable based on the domain name, and then access the conference through the desired domain name, e.g. use us-east.jitsi.example.com, us-west.jitsi.example.com, eu.jitsi.example.com and have them serve custom versions of config.js.