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 as its backend.
See the project’s documentation to learn more.
By default, Element Call is configured to be served on the call.element.DOMAIN domain, controlled by the matrix_element_call_hostname variable.
This makes it easy to set it up, without having to adjust your DNS records manually.
If you’d like to run Element Call on another hostname or path, use the matrix_element_call_hostname and matrix_element_call_path_prefix variables.
If you’ve changed the default hostname, you may need to adjust your DNS records accordingly to point to the correct server.
Ensure that the following DNS names have a public IP/FQDN:
call.element.example.comlivekit.example.comsfu-jwt.example.comAdd the following configuration to your inventory/host_vars/matrix.DOMAIN/vars.yml file:
matrix_element_call_enabled: true
💡 Enabling Element Call will automatically enable the LiveKit JWT Service and Livekit Server services.
After configuring the playbook and potentially adjusting your DNS records, run the installation command: just install-all or just setup-all
Once installed, Element Call integrates seamlessly with Matrix clients like Element Web. When the Element Call service is installed, the /.well-known/matrix/client file is also updated. A new org.matrix.msc4143.rtc_foci section is added to point to your LiveKit JWT service URL (e.g., https://matrix.example.com/livekit-jwt-service).
Additionally, the /.well-known/element/element.json file is created to help Element clients discover the Element Call URL (e.g., https://call.element.example.com).
To ensure the services function correctly, the following firewall rules and port forwarding settings are required:
LiveKit:
Element Call:
Ensure these ports are open and forwarded appropriately to allow traffic to flow correctly between the services.
Refer to the Element Call documentation for more details on configuring and using Element Call.