This has been an issue that stick around for quite some time now. It first appeared to be a problem with microphone permissions showing a “Unable to access microphone” message every time I tried calling somebody in Element Desktop (Element Android was working).
Later it turned out the error message was misleading and was changed to
“WebRTC error… Failed to construct ‘RTCPeerConnection’: ‘stun:matrix.server.tld:3478?transport=tcp’ is not a valid stun or turn URL”
Yesterday I found out that Chromium introduced this error if the TURN/STUN url is not conforming to the RFC standards, which in this case is the last part of the URL
?transport=tcp. This was when the Element Call errors started, since Element Desktop runs on a Chromium browser.
I was able to resolve the issue and restore the call function in Element by removing the latter part of the URL in
/etc/matrix-synapse/conf.d/freedombox-turn.yaml. The issue with Janus remains since I don’t know yet how to do the same change in Janus.
Now my question is, does it make sense to change the default Coturn configuration to accommodate this Chromium modification? Otherwise it is possible that everybody using the call feature in Element Desktop will experience similar problems (that are quite annoying).