matrix-docker-ansible-deploy/docs/configuring-playbook-element-call.md

4.2 KiB

Setting up Element Call (optional)

The playbook can install and configure Element Call for you.

Element Call is a native Matrix video conferencing application developed by Element, designed for secure, scalable, privacy-respecting, and decentralized video and voice calls over the Matrix protocol. Built on MatrixRTC (MSC4143), it utilizes MSC4195 with LiveKit Server as its backend.

See the project's documentation to learn more.

Prerequisites

  • A Synapse homeserver (see the warning below)
  • Various experimental features for the Synapse homeserver which Element Call requires (automatically done when Element Call is enabled)
  • A LiveKit Server (automatically installed when Element Call is enabled)
  • The LiveKit JWT Service (automatically installed when Element Call is enabled)

Warning

Because Element Call requires a few experimental features in the Matrix protocol, it's very likely that it only works with the Synapse homeserver.

Decide on a domain and path

By default, Element Call is configured to be served on the call.element.DOMAIN domain.

If you'd like to run Element Call on another hostname, see the Adjusting the Element Call URL section below.

Adjusting DNS records

By default, this playbook installs Element Call on the call.element. subdomain (call.element.example.com) and requires you to create a CNAME record for call.element, which targets matrix.example.com.

When setting these values, replace example.com with your own.

All dependency services for Element Call (LiveKit Server and Livekit JWT Service) are installed and configured automatically by the playbook. By default, these services are installed on a subpath on the matrix. domain, so no DNS record adjustments are required for them.

Adjusting firewall rules

In addition to the HTTP/HTTPS ports (which you've already exposed as per the prerequisites document), you'll also need to open ports required by LiveKit Server as described in its own Adjusting firewall rules section.

Adjusting the playbook configuration

Add the following configuration to your inventory/host_vars/matrix.DOMAIN/vars.yml file:

matrix_element_call_enabled: true

Adjusting the Element Call URL (optional)

By tweaking the matrix_element_call_hostname variable, you can easily make the service available at a different hostname than the default one.

Example additional configuration for your vars.yml file:

matrix_element_call_hostname: "element-call.example.com"

Warning

A matrix_element_call_path_prefix variable is also available and mean to let you configure a path prefix for the Element Call service, but Element Call does not support running under a sub-path yet.

Installing

After configuring the playbook and potentially adjusting your DNS records and adjusting firewall rules, run the installation command: just install-all or just setup-all

Usage

Once installed, Element Call integrates seamlessly with Matrix clients like Element Web and Element X on mobile (iOS and Android).