I made a ton of changes in an effort to get voice channels working in matrix today for t/suki, but I was unsuccessful. For some reason, when you try to join a voice channel or do a 1-1 call with someone, the call fails. It tries to connect the call for only a few seconds before it ends with an error message.
The Tuwunel tutorial I'm following is at the webpages:
- https://matrix-construct.github.io/tuwunel/turn.html
- https://matrix-construct.github.io/tuwunel/matrix_rtc.html
configuration
system configuration
ufw
sudo ufw status
Status: active
To Action From
-- ------ ----
22 ALLOW Anywhere
80 ALLOW Anywhere
443 ALLOW Anywhere
8448 ALLOW Anywhere
7880/tcp ALLOW Anywhere
7881/tcp ALLOW Anywhere
50100:50200/udp ALLOW Anywhere
3478 ALLOW Anywhere
5349 ALLOW Anywhere
50201:65535/udp ALLOW Anywhere
Anywhere ALLOW 172.18.0.2
Anywhere ALLOW 172.18.0.3
22 (v6) ALLOW Anywhere (v6)
80 (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
8448 (v6) ALLOW Anywhere (v6)
7880/tcp (v6) ALLOW Anywhere (v6)
7881/tcp (v6) ALLOW Anywhere (v6)
50100:50200/udp (v6) ALLOW Anywhere (v6)
3478 (v6) ALLOW Anywhere (v6)
5349 (v6) ALLOW Anywhere (v6)
50201:65535/udp (v6) ALLOW Anywhere (v6)
8448is for Tuwunel federation.7880/tcpand7881/tcpare for Livekit.50100:50200/udpare for Livekit's ICE port range3478is for the STUN protocol, for the TURN server that Livekit runs172.18.0.2and172.18.0.3is so that the NGINX container can find the Livekit container which isn't part of themoonlightdocker network and is running in the hostnetwork_modeinstead.
swag
SWAG is the reverse proxy middleware docker container I use.
docker compose
/opt/swag/docker-compose.yml
networks:
moonlight:
external: true
services:
swag:
image: lscr.io/linuxserver/swag:latest
container_name: swag
cap_add:
- NET_ADMIN
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
- URL=tsuki.games
- VALIDATION=http
- SUBDOMAINS=chat,git,matrix,matrix-rtc,turn
- CERTPROVIDER=zerossl
- EMAIL=usagi@tsuki.games
- ONLY_SUBDOMAINS=true
volumes:
- ./config:/config
extra_hosts:
- host.docker.internal:host-gateway
networks:
- moonlight
ports:
- '80:80'
- '443:443'
restart: unless-stoppedIt appears that extra_hosts is
necessary so that the NGINX container can find the
Livekit container, as the Livekit container is not
part of the moonlight docker network.
nginx
config/nginx/proxy-confs/matrix-rtc.subdomain.conf
server {
listen 443 ssl;
listen [::]:443 ssl;
http2 on;
server_name matrix-rtc.*;
include /config/nginx/ssl.conf;
# lk-jwt-service
location ~ ^(/sfu/get|/get_token|/healthz) {
include /config/nginx/proxy.conf;
include /config/nginx/resolver.conf;
set $upstream_app matrix-rtc-jwt;
set $upstream_port 8080;
set $upstream_proto http;
proxy_pass $upstream_proto://$upstream_app:$upstream_port;
}
# livekit
location / {
include /config/nginx/proxy.conf;
include /config/nginx/resolver.conf;
set $upstream_app 172.17.0.1;
set $upstream_port 7880;
set $upstream_proto http;
proxy_pass $upstream_proto://$upstream_app:$upstream_port;
proxy_set_header Connection "upgrade";
proxy_set_header Upgrade $http_upgrade;
}
}
Notably,
location ~ ^(/sfu/get|/get_token|/healthz)
is not what the Tuwunel tutorial says to use, but I
believe it is wrong. See 20260221100913.
docker ip
sudo docker compose exec swag cat /etc/hosts:
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00:: ip6-localnet
ff00:: ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.1 host.docker.internal
172.18.0.3 35c8485c35ff
Sometimes SWAG gets assigned the IP address
172.18.0.2, which is why i have both
172.18.0.2 and 172.18.0.3
in the UFW configuration. I don't like this, but I
don't know how else to get SWAG to proxy the
container correctly; it will fail to find the
container if I use the container name.
matrix
All of the matrix-related services are configured
under /opt/matrix.
docker compose
/opt/matrix/docker-compose.yml
networks:
moonlight:
external: true
services:
tuwunel:
image: jevolk/tuwunel:v1.5.0
container_name: tuwunel
restart: unless-stopped
volumes:
- ./db:/var/lib/tuwunel
- ./tuwunel.toml:/etc/tuwunel.toml:ro
environment:
TUWUNEL_CONFIG: '/etc/tuwunel.toml'
networks:
- moonlight
element:
image: vectorim/element-web:latest
container_name: element
restart: unless-stopped
volumes:
- ./element.json:/app/config.json:ro
depends_on:
- tuwunel
networks:
- moonlight
matrix-rtc-jwt:
image: ghcr.io/element-hq/lk-jwt-service:latest
container_name: matrix-rtc-jwt
environment:
- LIVEKIT_URL=wss://matrix-rtc.tsuki.games
- LIVEKIT_KEY=<livekit_key>
- LIVEKIT_SECRET=<livekit_secret>
- LIVEKIT_FULL_ACCESS_HOMESERVERS=tsuki.games
restart: unless-stopped
networks:
- moonlight
matrix-rtc-livekit:
image: livekit/livekit-server:latest
container_name: matrix-rtc-livekit
command: --config /etc/livekit.yaml
restart: unless-stopped
volumes:
- ./livekit.yaml:/etc/livekit.yaml:ro
network_mode: hosttuwunel
/opt/matrix/tuwunel.toml
[global]
server_name = "tsuki.games"
address = "0.0.0.0"
query_over_tcp_only = true
allow_registration = false
require_auth_for_profile_requests = true
allow_public_room_directory_over_federation = true
show_all_local_users_in_user_directory = true
trusted_servers = [
"matrix.expiredpopsicle.com",
]
turn_uris = [
"turns:turn.tsuki.games?transport=udp",
"turns:turn.tsuki.games?transport=tcp",
]
turn_secret = "<coturn_secret>"
auto_join_rooms = [ "#tsuki:tsuki.games", "#general:tsuki.games" ]
single_sso = true
[[global.identity_provider]]
brand = "Discourse"
client_id = "matrix"
client_secret = "<discourse_secret>"
issuer_url = "https://forum.tsuki.games/oauth2"
callback_url = "https://matrix.tsuki.games/_matrix/client/unstable/login/sso/callback/matrix"
base_path = "oauth2"
[global.well_known]
client = "https://matrix.tsuki.games"
server = "matrix.tsuki.games:443"
[[global.well_known.rtc_transports]]
type = "livekit"
livekit_service_url = "https://matrix-rtc.tsuki.games"I'm pretty confident there's something wrong with
this configuration. I'm using the TURN server that
is built into Livekit, but turn_uris is
referring to the URL I intended to host Coturn at.
However, even if I change it to point to
turn:matrix-rtc.tsuki.games?transport=udp
and
turn:matrix-rtc.tsuki.games?transport=tcp,
it still fails in exactly the same way in both the
element web client and the Livekit server.
Moreover, I have no idea what the secret would
be, or if there's a username and password, or
anything else to authenticate to the TURN server
with. If I'm understanding the Livekit server logs
well enough, it seems like it creates those on the
fly whenever a room is needed, so I think the client
or Tuwunel might not even use the
turn_uris field at all when Livekit is
in use.
livekit
/opt/matrix/livekit.yaml
port: 7880
bind_addresses:
- ""
rtc:
tcp_port: 7881
port_range_start: 50100
port_range_end: 50200
use_external_ip: true
enable_loopback_candidate: false
turn:
enabled: true
udp_port: 3478
relay_range_start: 50300
relay_range_end: 65535
domain: matrix-rtc.tsuki.games
keys:
<livekit_key>: <livekit_secret>I would like TURN to use TLS, but given how much trouble I'm having I've decided that I'll try to set that up later.
logs
livekit
This is what it looks like from the perspective of the livekit server when I try to connect to a voice channel in Element Web:
docker compose logs matrix-rtc-livekit
2026-02-21T10:19:54.923Z INFO livekit routing/interfaces.go:180 using single-node routing
2026-02-21T10:19:55.063Z INFO livekit rtcconfig/ip.go:195 found external IP via STUN {"localAddr": "172.17.0.1:50117", "stunServer": "global.stun.twilio.com:3478", "externalIP": "216.98.13.223"}
2026-02-21T10:19:55.067Z INFO livekit rtcconfig/ip.go:195 found external IP via STUN {"localAddr": "216.98.13.223:50117", "stunServer": "global.stun.twilio.com:3478", "externalIP": "216.98.13.223"}
2026-02-21T10:19:55.076Z INFO livekit rtcconfig/ip.go:195 found external IP via STUN {"localAddr": "172.21.0.1:50117", "stunServer": "global.stun.twilio.com:3478", "externalIP": "216.98.13.223"}
2026-02-21T10:19:55.099Z INFO livekit rtcconfig/ip.go:195 found external IP via STUN {"localAddr": "172.22.0.1:50117", "stunServer": "global.stun.twilio.com:3478", "externalIP": "216.98.13.223"}
2026-02-21T10:19:55.106Z INFO livekit rtcconfig/ip.go:195 found external IP via STUN {"localAddr": "172.20.0.1:50117", "stunServer": "global.stun.twilio.com:3478", "externalIP": "216.98.13.223"}
2026-02-21T10:19:55.110Z INFO livekit rtcconfig/ip.go:195 found external IP via STUN {"localAddr": "172.19.0.1:50117", "stunServer": "global.stun.twilio.com:3478", "externalIP": "216.98.13.223"}
2026-02-21T10:19:55.110Z INFO livekit rtcconfig/ip.go:195 found external IP via STUN {"localAddr": "172.18.0.1:50117", "stunServer": "global.stun.twilio.com:3478", "externalIP": "216.98.13.223"}
2026-02-21T10:19:56.068Z WARN livekit rtcconfig/ip.go:278 could not validate external IP {"ip": "216.98.13.223", "from": "172.17.0.1:50117", "error": "context canceled"}
2026-02-21T10:19:56.068Z WARN livekit rtcconfig/ip.go:278 could not validate external IP {"ip": "216.98.13.223", "from": "172.22.0.1:50117", "error": "context canceled"}
2026-02-21T10:19:56.068Z WARN livekit rtcconfig/ip.go:278 could not validate external IP {"ip": "216.98.13.223", "from": "172.20.0.1:50117", "error": "context canceled"}
2026-02-21T10:19:56.068Z WARN livekit rtcconfig/ip.go:278 could not validate external IP {"ip": "216.98.13.223", "from": "172.21.0.1:50117", "error": "context canceled"}
2026-02-21T10:19:56.068Z WARN livekit rtcconfig/ip.go:278 could not validate external IP {"ip": "216.98.13.223", "from": "172.19.0.1:50117", "error": "context canceled"}
2026-02-21T10:19:56.068Z WARN livekit rtcconfig/ip.go:278 could not validate external IP {"ip": "216.98.13.223", "from": "172.18.0.1:50117", "error": "context canceled"}
2026-02-21T10:19:56.118Z INFO livekit rtcconfig/webrtc_config.go:284 failed to get external ip {"local": "172.18.0.1", "err": "context canceled"}
2026-02-21T10:19:56.119Z INFO livekit rtcconfig/webrtc_config.go:284 failed to get external ip {"local": "172.20.0.1", "err": "context canceled"}
2026-02-21T10:19:56.120Z INFO livekit rtcconfig/webrtc_config.go:284 failed to get external ip {"local": "172.22.0.1", "err": "context canceled"}
2026-02-21T10:19:56.121Z INFO livekit rtcconfig/webrtc_config.go:284 failed to get external ip {"local": "172.19.0.1", "err": "context canceled"}
2026-02-21T10:19:56.121Z INFO livekit rtcconfig/webrtc_config.go:284 failed to get external ip {"local": "172.21.0.1", "err": "context canceled"}
2026-02-21T10:19:56.122Z INFO livekit rtcconfig/webrtc_config.go:284 failed to get external ip {"local": "172.17.0.1", "err": "context canceled"}
2026-02-21T10:19:56.122Z INFO livekit rtcconfig/webrtc_config.go:102 using external IPs {"ips": ["216.98.13.223/216.98.13.223", "172.22.0.1/172.22.0.1", "172.21.0.1/172.21.0.1", "172.19.0.1/172.19.0.1", "172.20.0.1/172.20.0.1", "172.18.0.1/172.18.0.1", "172.17.0.1/172.17.0.1"]}
2026-02-21T10:19:56.126Z INFO livekit service/turn.go:145 Starting TURN server {"turn.relay_range_start": 50300, "turn.relay_range_end": 65535, "turn.portUDP": 3478}
2026-02-21T10:19:56.127Z INFO livekit service/server.go:264 starting LiveKit server {"portHttp": 7880, "nodeID": "ND_dXCkQkRTwsoq", "nodeIP": "216.98.13.223", "version": "1.9.11", "bindAddresses": [""], "rtc.portTCP": 7881, "rtc.portICERange": [50100, 50200]}
2026-02-21T10:26:40.249Z INFO livekit.api service/twirp.go:145 API RoomService.CreateRoom {"service": "RoomService", "method": "CreateRoom", "room": "8N6bSBs2HemI/y37vwbBXadc1hZby2N3J9c0hqrBlNk", "request": {"name": "8N6bSBs2HemI/y37vwbBXadc1hZby2N3J9c0hqrBlNk", "emptyTimeout": 300, "departureTimeout": 20}, "duration": "3.244734ms", "status": "200"}
2026-02-21T10:26:41.053Z INFO livekit.api service/twirp.go:145 API RoomService.CreateRoom {"service": "RoomService", "method": "CreateRoom", "room": "8N6bSBs2HemI/y37vwbBXadc1hZby2N3J9c0hqrBlNk", "request": {"name": "8N6bSBs2HemI/y37vwbBXadc1hZby2N3J9c0hqrBlNk", "emptyTimeout": 300, "departureTimeout": 20}, "duration": "361.833µs", "status": "200"}
2026-02-21T10:26:41.379Z INFO livekit service/roommanager.go:413 starting RTC session {"room": "8N6bSBs2HemI/y37vwbBXadc1hZby2N3J9c0hqrBlNk", "roomID": "RM_BBcYDhp2aLkT", "participant": "@exodrifter:tsuki.games:zI36Tz2oRS", "pID": "PA_X8AzSeKHtkVj", "remote": false, "room": "8N6bSBs2HemI/y37vwbBXadc1hZby2N3J9c0hqrBlNk", "nodeID": "ND_dXCkQkRTwsoq", "numParticipants": 0, "participantInit": {"Identity": "@exodrifter:tsuki.games:zI36Tz2oRS", "Reconnect": false, "ReconnectReason": "RR_UNKNOWN", "AutoSubscribe": true, "AutoSubscribeDataTrack": "not-set", "Client": {"sdk": "JS", "version": "2.15.13", "protocol": 16, "os": "Linux", "deviceModel": "Other", "browser": "Firefox", "browserVersion": "147.0"}, "Grants": {"Identity": "@exodrifter:tsuki.games:zI36Tz2oRS", "Kind": "", "KindDetails": [], "Video": {"RoomCreate": false, "RoomList": false, "RoomRecord": false, "RoomAdmin": false, "RoomJoin": true, "Room": "8N6bSBs2HemI/y37vwbBXadc1hZby2N3J9c0hqrBlNk", "CanPublish": true, "CanSubscribe": true, "CanPublishData": "not-set", "CanPublishSources": [], "CanUpdateOwnMetadata": "not-set", "IngressAdmin": false, "Hidden": false, "Recorder": false, "Agent": false, "CanSubscribeMetrics": "not-set", "DestinationRoom": ""}, "SIP": {}, "Agent": {}, "Inference": {}, "Observability": {}, "RoomConfig": {}, "RoomPreset": ""}, "Region": "", "AdaptiveStream": true, "ID": "", "SubscriberAllowPause": "not-set", "DisableICELite": false, "CreateRoom": {"name": "8N6bSBs2HemI/y37vwbBXadc1hZby2N3J9c0hqrBlNk"}, "AddTrackRequests": [], "PublisherOffer": {}, "SyncState": {}, "UseSinglePeerConnection": false}}
2026-02-21T10:26:41.381Z INFO livekit service/roommanager.go:1006 created TURN password {"username": "<username>", "password": "<password>"}
2026-02-21T10:26:56.462Z INFO livekit rtc/participant.go:1367 participant closing {"room": "8N6bSBs2HemI/y37vwbBXadc1hZby2N3J9c0hqrBlNk", "roomID": "RM_BBcYDhp2aLkT", "participant": "@exodrifter:tsuki.games:zI36Tz2oRS", "pID": "PA_X8AzSeKHtkVj", "remote": false, "sendLeave": false, "reason": "SIGNAL_SOURCE_CLOSE", "isExpectedToResume": false}
2026-02-21T10:26:56.463Z INFO livekit rtc/room.go:1431 removing participant without connection {"room": "8N6bSBs2HemI/y37vwbBXadc1hZby2N3J9c0hqrBlNk", "roomID": "RM_BBcYDhp2aLkT", "participant": "@exodrifter:tsuki.games:zI36Tz2oRS", "pID": "PA_X8AzSeKHtkVj", "remote": false, "publisherCandidates": ["[local][trickle] udp4 host 216.98.13.223:50193 (resolved: 216.98.13.223:50193)", "[local][trickle] tcp4 host 216.98.13.223:7881 (resolved: 216.98.13.223:7881)", "[local][trickle] udp4 host 172.22.0.1:50132 (resolved: 172.22.0.1:50132)", "[local][trickle] tcp4 host 172.22.0.1:7881 (resolved: 172.22.0.1:7881)", "[local][trickle] udp4 host 172.21.0.1:50115 (resolved: 172.21.0.1:50115)", "[local][trickle] tcp4 host 172.21.0.1:7881 (resolved: 172.21.0.1:7881)", "[local][trickle] udp4 host 172.19.0.1:50129 (resolved: 172.19.0.1:50129)", "[local][trickle] tcp4 host 172.19.0.1:7881 (resolved: 172.19.0.1:7881)", "[local][trickle] udp4 host 172.20.0.1:50112 (resolved: 172.20.0.1:50112)", "[local][trickle] tcp4 host 172.20.0.1:7881 (resolved: 172.20.0.1:7881)", "[local][trickle] udp4 host 172.18.0.1:50180 (resolved: 172.18.0.1:50180)", "[local][trickle] tcp4 host 172.18.0.1:7881 (resolved: 172.18.0.1:7881)", "[local][trickle] udp4 host 172.17.0.1:50126 (resolved: 172.17.0.1:50126)", "[local][trickle] tcp4 host 172.17.0.1:7881 (resolved: 172.17.0.1:7881)"], "subscriberCandidates": ["[local][trickle] udp4 host 216.98.13.223:50117 (resolved: 216.98.13.223:50117)", "[local][trickle] tcp4 host 216.98.13.223:7881 (resolved: 216.98.13.223:7881)", "[local][trickle] tcp4 host 172.22.0.1:7881 (resolved: 172.22.0.1:7881)", "[local][trickle] udp4 host 172.22.0.1:50196 (resolved: 172.22.0.1:50196)", "[local][trickle] udp4 host 172.21.0.1:50138 (resolved: 172.21.0.1:50138)", "[local][trickle] tcp4 host 172.21.0.1:7881 (resolved: 172.21.0.1:7881)", "[local][trickle] udp4 host 172.19.0.1:50139 (resolved: 172.19.0.1:50139)", "[local][trickle] tcp4 host 172.19.0.1:7881 (resolved: 172.19.0.1:7881)", "[local][trickle] tcp4 host 172.20.0.1:7881 (resolved: 172.20.0.1:7881)", "[local][trickle] udp4 host 172.20.0.1:50102 (resolved: 172.20.0.1:50102)", "[local][trickle] udp4 host 172.18.0.1:50102 (resolved: 172.18.0.1:50102)", "[local][trickle] tcp4 host 172.18.0.1:7881 (resolved: 172.18.0.1:7881)", "[local][trickle] udp4 host 172.17.0.1:50114 (resolved: 172.17.0.1:50114)", "[local][trickle] tcp4 host 172.17.0.1:7881 (resolved: 172.17.0.1:7881)"], "connectionType": "unknown", "reason": "SIGNAL_SOURCE_CLOSE", "clientInfo": {"sdk": "JS", "version": "2.15.13", "protocol": 16, "os": "Linux", "deviceModel": "Other", "browser": "Firefox", "browserVersion": "147.0"}}
2026-02-21T10:27:16.510Z INFO livekit.room rtc/room.go:807 closing room {"room": "8N6bSBs2HemI/y37vwbBXadc1hZby2N3J9c0hqrBlNk", "roomID": "RM_BBcYDhp2aLkT"}
2026-02-21T10:27:16.510Z INFO livekit service/roommanager.go:187 deleting room state {"room": "8N6bSBs2HemI/y37vwbBXadc1hZby2N3J9c0hqrBlNk"}
2026-02-21T10:27:16.510Z INFO livekit.room service/roommanager.go:667 room closed {"room": "8N6bSBs2HemI/y37vwbBXadc1hZby2N3J9c0hqrBlNk", "roomID": "RM_BBcYDhp2aLkT"}
2026-02-21T10:27:16.510Z INFO livekit.room rtc/room.go:791 closing idle room {"room": "8N6bSBs2HemI/y37vwbBXadc1hZby2N3J9c0hqrBlNk", "roomID": "RM_BBcYDhp2aLkT", "reason": "departure timeout"}
2026-02-21T10:32:40.076Z INFO livekit server/main.go:314 exit requested, shutting down {"signal": "terminated", "force": false}
element web
This is what it looks like from the perspective of the element web client when I try to connect to a voice channel (errors, warnings, and info logs only, with stack traces elided):
03:12:18.572 Trying to get JWT from call's active focus URL of https://matrix-rtc.tsuki.games...
03:12:19.155 Got JWT from call's active focus URL.
03:12:19.157 [MatrixRTCSession !yxsNczGtn0cyc0KUsx:tsuki.games] Using experimental to-device transport for encryption keys
03:12:19.158 [MatrixRTCSession !yxsNczGtn0cyc0KUsx:tsuki.games] Using to-device with room fallback transport for encryption keys
03:12:19.160 [MatrixRTCSession !yxsNczGtn0cyc0KUsx:tsuki.games][EncryptionManager] Joining room
03:12:19.182 [LivekitRoom] Create LiveKit room
03:12:19.192 [Lifecycle] GroupCallView Component unmounted
03:12:19.194 [Lifecycle] InCallView Component mounted, livekit room state disconnected
03:12:19.198 Session in room !yxsNczGtn0cyc0KUsx:tsuki.games changed to joined
03:12:19.229 Failed to set E2EE enabled on room Error: e2ee not configured, please set e2ee settings within the room options
03:12:19.263 Uncaught (in promise) Error: Not connected yet
03:12:19.265 Failed to send layout change to widget API G3: Unknown or unsupported action: io.element.tile_layout
03:12:19.321 [MatrixRTCSession !yxsNczGtn0cyc0KUsx:tsuki.games][MembershipManager] Not using delayed event because the endpoint is not supported
03:12:19.432 [MatrixRTCSession !yxsNczGtn0cyc0KUsx:tsuki.games] Memberships for call in room !yxsNczGtn0cyc0KUsx:tsuki.games have changed: emitting (1 members)
03:12:19.448 Updated state entry org.matrix.msc3401.call.member _@exodrifter:tsuki.games_zI36Tz2oRS_m.call to $b9yHSFhlh7MkvuqIb8p6S1eXUdP2pfNbl_sVYa6MdpU
03:12:19.448 [MatrixRTCSession !yxsNczGtn0cyc0KUsx:tsuki.games] Memberships for call in room !yxsNczGtn0cyc0KUsx:tsuki.games have changed: emitting (1 members)
03:12:19.449 Got new active focus from membership: @exodrifter:tsuki.games/zI36Tz2oRS.
Updated focus (focus switch) from undefined to {"livekit_alias":"!yxsNczGtn0cyc0KUsx:tsuki.games","livekit_service_url":"https://matrix-rtc.tsuki.games","type":"livekit"}
03:12:19.471 Updated state entry org.matrix.msc3401.call.member _@exodrifter:tsuki.games_zI36Tz2oRS_m.call to $SGEyShUFlNmiAIATEFDHJj3tU2KwDcMHfVND48L25bU
03:12:19.476 Received event $SGEyShUFlNmiAIATEFDHJj3tU2KwDcMHfVND48L25bU org.matrix.msc3401.call.member
03:12:19.955 Trying to get JWT from call's active focus URL of https://matrix-rtc.tsuki.games...
03:12:20.000 Stopping queue 'message' as it is now empty init.js:1:1407231
03:12:20.028 Updated state entry org.matrix.msc3401.call.member _@exodrifter:tsuki.games_zI36Tz2oRS_m.call to $SGEyShUFlNmiAIATEFDHJj3tU2KwDcMHfVND48L25bU
03:12:20.088 Got JWT from call's active focus URL.
03:12:20.094 Pre-creating microphone track
03:12:20.106 Pre-created microphone track
03:12:20.106 [Lifecycle] Connecting & publishing
03:12:20.106 [Lifecycle] Connecting to livekit room wss://matrix-rtc.tsuki.games ...
03:12:20.251 WebRTC: ICE failed, your TURN server appears to be broken, see about:webrtc for more details
03:12:20.251 WebRTC: ICE failed, your TURN server appears to be broken, see about:webrtc for more details
03:12:25.562 [MatrixRTCSession !yxsNczGtn0cyc0KUsx:tsuki.games] Leaving call session in room !yxsNczGtn0cyc0KUsx:tsuki.games
03:12:25.569 [Lifecycle] InCallView Component unmounted, livekit room state connecting
03:12:25.571 [Lifecycle] GroupCallView Component mounted
03:12:25.572 Session in room !yxsNczGtn0cyc0KUsx:tsuki.games changed to left
03:12:25.575 disconnect from room
Object { room: "8N6bSBs2HemI/y37vwbBXadc1hZby2N3J9c0hqrBlNk", roomID: "RM_ytqH67beUYUy", participant: "@exodrifter:tsuki.games:zI36Tz2oRS", pID: "PA_eFFjY6vyCQZi" }
03:12:25.575 Abort connection attempt due to user initiated disconnect
Object { room: "8N6bSBs2HemI/y37vwbBXadc1hZby2N3J9c0hqrBlNk", roomID: "RM_ytqH67beUYUy", participant: "@exodrifter:tsuki.games:zI36Tz2oRS", pID: "PA_eFFjY6vyCQZi" }
03:12:25.575 abort transport connection
Object { room: "8N6bSBs2HemI/y37vwbBXadc1hZby2N3J9c0hqrBlNk", roomID: "RM_ytqH67beUYUy", participant: "@exodrifter:tsuki.games:zI36Tz2oRS", pID: "PA_eFFjY6vyCQZi" }
03:12:25.575 abort transport connection
Object { room: "8N6bSBs2HemI/y37vwbBXadc1hZby2N3J9c0hqrBlNk", roomID: "RM_ytqH67beUYUy", participant: "@exodrifter:tsuki.games:zI36Tz2oRS", pID: "PA_eFFjY6vyCQZi" }
03:12:25.576 [Lifecycle] Failed to connect ConnectionError: Client initiated disconnect
03:12:25.587 [Lifecycle] Disconnected from livekit room, state:disconnected
03:12:25.705 [MatrixRTCSession !yxsNczGtn0cyc0KUsx:tsuki.games] Memberships for call in room !yxsNczGtn0cyc0KUsx:tsuki.games have changed: emitting (0 members) init.js:1:1407231
03:12:25.713 [MatrixRTCSession !yxsNczGtn0cyc0KUsx:tsuki.games] Memberships for call in room !yxsNczGtn0cyc0KUsx:tsuki.games have changed: emitting (0 members)
03:12:25.715 Updated state entry org.matrix.msc3401.call.member _@exodrifter:tsuki.games_zI36Tz2oRS_m.call to $_8Hz5yNbZGWXXgP8NtHRZ-3MlvyErcg7YMD6YHjTFwQ
03:12:25.719 Received event $_8Hz5yNbZGWXXgP8NtHRZ-3MlvyErcg7YMD6YHjTFwQ org.matrix.msc3401.call.member
webrtc
As far as I can tell, the most interesting part
of Firefox's about:webrtc page is the
connection log. Most messages are not interesting,
except for this error:
ICE(PC:{e823fbe5-46f4-4a66-86f6-e77b0ceb8c9b} 1771672340227021 (id=19327352898 url=https://chat.tsuki.games/widgets/element-call/index.html?widgetId=Au07zTrE6cNkRMJCFxhC5vzs&parentUrl=https%3A%2F%2Fchat.tsuki.games%2F#?perParticipantE2EE=false&userId=%40exodrift): failed to find default addresses
Looking up this error message doesn't seem to get me very useful information though.