Playbook Configuration:
My vars.yml file looks like this:
# -------- MATRIX SERVER FOR EXAMPLE.COM --------
#
#
matrix_homeserver_implementation: synapse
# -------- Networking --------
matrix_domain: example.com
matrix_homeserver_generic_secret_key: 'REDACTED'
matrix_playbook_reverse_proxy_type: playbook-managed-traefik
devture_systemd_docker_base_ipv6_enabled: true
matrix_static_files_container_labels_base_domain_enabled: true
# -------- Matrix Clients --------
matrix_client_element_enabled: true
matrix_client_element_default_theme: 'dark'
matrix_client_element_themes_enabled: true
matrix_client_element_default_country_code: "US"
cinny_enabled: true
# -------- Matrix Authentication Service (MAS) --------
matrix_authentication_service_enabled: true
matrix_authentication_service_config_secrets_encryption: 'REDACTED'
# -------- Voice Calls --------
matrix_element_call_enabled: true
matrix_synapse_allow_guest_access: false
livekit_server_config_logging_level: "debug"
# -------- Bridges To Other Platforms --------
matrix_appservice_double_puppet_enabled: true
matrix_mautrix_discord_enabled: true
matrix_mautrix_discord_configuration_extension_yaml:
bridge:
permissions:
'@sunny:{{ example.com }}': admin
matrix_mautrix_meta_instagram_enabled: true
matrix_mautrix_meta_instagram_configuration_extension_yaml:
bridge:
permissions:
'@sunny:{{ example.com }}': admin
# -------- Administration Tools --------
matrix_element_admin_enabled: true
postgres_connection_password: 'REDACTED'
Matrix Server:
- OS: [Debian 12]
- Architecture [amd64]
Problem description:
I have enabled Element Call in my configuration, however, it still fails to work. Calls will default to legacy and I am not able to use the new voice rooms. I have completely let the playbook manage traefik, and serve the base domain. All other services in the playbook work perfectly.
I can confirm that I have opened the required ports. I have opened 7881/tcp, 7882/udp, 3479/udp, and 5350/tcp. I have also tried running the playbook with both matrix_rtc_enabled and matrix_element_call_enabled each enabled separately. Both attempts lead to the same result of Element Call not functioning.
Going to call.element.example.com also does nothing. I can confirm that I have correctly used the CNAME address in my DNS settings, the same way I have done for my other services such as Element and Cinny.
Additional context
I am hosting this server from a NAT. I am also using the playbook from the same machine I am hosting from. I have also added matrix.example.com and example.com to my /etc/hosts/ file under 127.0.0.1 because of my router not supporting NAT hairpin/loopback.
I have also gotten the output from journalctl -fu matrix-livekit-server. I have redacted my public IPv4.
journalctl -fu matrix-livekit-server
Feb 23 16:39:06 debian-server matrix-livekit-server[2779686]: 2026-02-24T00:39:06.929Z DEBUG livekit rtcconfig/ip.go:252 error reading from UDP socket {"err": "read udp 172.24.0.4:7882: use of closed network connection"}
Feb 23 16:39:06 debian-server matrix-livekit-server[2779686]: 2026-02-24T00:39:06.929Z WARN livekit rtcconfig/ip.go:278 could not validate external IP {"ip": "PUBLIC_IPV4", "from": "172.22.0.4:7882", "error": "context canceled"}
Feb 23 16:39:06 debian-server matrix-livekit-server[2779686]: 2026-02-24T00:39:06.929Z DEBUG livekit rtcconfig/ip.go:252 error reading from UDP socket {"err": "read udp 172.22.0.4:7882: use of closed network connection"}
Feb 23 16:39:06 debian-server matrix-livekit-server[2779686]: 2026-02-24T00:39:06.960Z INFO livekit rtcconfig/webrtc_config.go:284 failed to get external ip {"local": "172.24.0.4", "err": "context canceled"}
Feb 23 16:39:06 debian-server matrix-livekit-server[2779686]: 2026-02-24T00:39:06.960Z INFO livekit rtcconfig/webrtc_config.go:284 failed to get external ip {"local": "172.22.0.4", "err": "context canceled"}
Feb 23 16:39:06 debian-server matrix-livekit-server[2779686]: 2026-02-24T00:39:06.960Z INFO livekit rtcconfig/webrtc_config.go:99 no external IPs found, using node IP for NAT1To1Ips {"ip": "PUBLIC_IPV4"}
Feb 23 16:39:06 debian-server matrix-livekit-server[2779686]: 2026-02-24T00:39:06.960Z DEBUG livekit rtcconfig/rtc_unix.go:35 UDP receive buffer size {"current": 15000000}
Feb 23 16:39:06 debian-server matrix-livekit-server[2779686]: 2026-02-24T00:39:06.961Z INFO livekit service/turn.go:145 Starting TURN server {"turn.relay_range_start": 30000, "turn.relay_range_end": 40000, "turn.portTLS": 5350, "turn.externalTLS": true, "turn.portUDP": 3479}
Feb 23 16:39:06 debian-server matrix-livekit-server[2779686]: 2026-02-24T00:39:06.964Z INFO livekit service/server.go:264 starting LiveKit server {"portHttp": 7880, "nodeID": "ND_9FqrHUwkvyXS", "nodeIP": "PUBLIC_IPV4", "version": "1.9.11", "bindAddresses": ["::"], "rtc.portTCP": 7881, "rtc.portUDP": {"Start":7882,"End":0}}
Feb 23 16:39:06 debian-server matrix-livekit-server[2779686]: 2026-02-24T00:39:06.964Z DEBUG livekit service/signal.go:119 starting relay signal server {"topic": "ND_9FqrHUwkvyXS"}
I have also tried removing my /etc/hosts entries. I restarted the entire playbook with just setup-all and ran journalctl -fu matrix-livekit-server again.
journalctl -fu matrix-livekit-server
Feb 23 17:55:16 debian-server matrix-livekit-server[2906261]: 2026-02-24T01:55:16.437Z DEBUG livekit rtcconfig/ip.go:252 error reading from UDP socket {"err": "read udp 172.22.0.2:7882: use of closed network connection"}
Feb 23 17:55:16 debian-server matrix-livekit-server[2906261]: 2026-02-24T01:55:16.438Z WARN livekit rtcconfig/ip.go:278 could not validate external IP {"ip": "PUBLIC_IPv4", "from": "172.24.0.4:7882", "error": "context canceled"}
Feb 23 17:55:16 debian-server matrix-livekit-server[2906261]: 2026-02-24T01:55:16.438Z DEBUG livekit rtcconfig/ip.go:252 error reading from UDP socket {"err": "read udp 172.24.0.4:7882: use of closed network connection"}
Feb 23 17:55:16 debian-server matrix-livekit-server[2906261]: 2026-02-24T01:55:16.481Z INFO livekit rtcconfig/webrtc_config.go:284 failed to get external ip {"local": "172.24.0.4", "err": "context canceled"}
Feb 23 17:55:16 debian-server matrix-livekit-server[2906261]: 2026-02-24T01:55:16.481Z INFO livekit rtcconfig/webrtc_config.go:284 failed to get external ip {"local": "172.22.0.2", "err": "context canceled"}
Feb 23 17:55:16 debian-server matrix-livekit-server[2906261]: 2026-02-24T01:55:16.481Z INFO livekit rtcconfig/webrtc_config.go:99 no external IPs found, using node IP for NAT1To1Ips {"ip": "PUBLIC_IPv4"}
Feb 23 17:55:16 debian-server matrix-livekit-server[2906261]: 2026-02-24T01:55:16.481Z DEBUG livekit rtcconfig/rtc_unix.go:35 UDP receive buffer size {"current": 15000000}
Feb 23 17:55:16 debian-server matrix-livekit-server[2906261]: 2026-02-24T01:55:16.482Z INFO livekit service/turn.go:145 Starting TURN server {"turn.relay_range_start": 30000, "turn.relay_range_end": 40000, "turn.portTLS": 5350, "turn.externalTLS": true, "turn.portUDP": 3479}
Feb 23 17:55:16 debian-server matrix-livekit-server[2906261]: 2026-02-24T01:55:16.482Z INFO livekit service/server.go:264 starting LiveKit server {"portHttp": 7880, "nodeID": "ND_mhVNhrzPQTLk", "nodeIP": "PUBLIC_IPv4", "version": "1.9.11", "bindAddresses": ["::"], "rtc.portTCP": 7881, "rtc.portUDP": {"Start":7882,"End":0}}
Feb 23 17:55:16 debian-server matrix-livekit-server[2906261]: 2026-02-24T01:55:16.482Z DEBUG livekit service/signal.go:119 starting relay signal server {"topic": "ND_mhVNhrzPQTLk"}
Playbook Configuration:
My
vars.ymlfile looks like this:Matrix Server:
Problem description:
I have enabled Element Call in my configuration, however, it still fails to work. Calls will default to legacy and I am not able to use the new voice rooms. I have completely let the playbook manage traefik, and serve the base domain. All other services in the playbook work perfectly.
I can confirm that I have opened the required ports. I have opened
7881/tcp,7882/udp,3479/udp, and5350/tcp. I have also tried running the playbook with bothmatrix_rtc_enabledandmatrix_element_call_enabledeach enabled separately. Both attempts lead to the same result of Element Call not functioning.Going to
call.element.example.comalso does nothing. I can confirm that I have correctly used the CNAME address in my DNS settings, the same way I have done for my other services such as Element and Cinny.Additional context
I am hosting this server from a NAT. I am also using the playbook from the same machine I am hosting from. I have also added
matrix.example.comandexample.comto my/etc/hosts/file under127.0.0.1because of my router not supporting NAT hairpin/loopback.I have also gotten the output from
journalctl -fu matrix-livekit-server. I have redacted my public IPv4.I have also tried removing my
/etc/hostsentries. I restarted the entire playbook withjust setup-alland ranjournalctl -fu matrix-livekit-serveragain.