element-hq / element-web

A glossy Matrix collaboration client for the web.
https://element.io
GNU Affero General Public License v3.0
11.13k stars 1.98k forks source link

Automatically offer using turn.matrix.org when a call fails, and it is disabled #12937

Open notramo opened 4 years ago

notramo commented 4 years ago

When a call fails and turn.matrix.org is disabled, automatically show a dialog: This Matrix server doesn't provide call support (TURN/STUN). Enable using fallback turn.matrix.org call server? With the choices: Yes and No and a checkbox Remember my setting.

dbkr commented 4 years ago

I thought this was a thing that should be happening at the moment?

jryans commented 4 years ago

We do show a dialog like this, but I believe we only show it once and then proceed silently in the future, whereas it sounds like @notramo would like to always see a dialog by default, but with an option to remember it if desired...

But that's just a guess, so @notramo please let us know if that's right. 😄

notramo commented 4 years ago

I tried it with a HS which offers no TURN/STUN server. The call simply failed with an error message "(could not connect media)" in the timeline at the call hangup event. It is not offered automatically to turn it on, you have to go to Settings -> Voice & Video to enable it even at the first time. It is unintuitive. The user should be able to enable it with 1 click after a failed call.

whereas it sounds like @notramo would like to always see a dialog by default, but with an option to remember it if desired...

This could be a solution too. Newbies may click "No." first time, because they don't know what it is. When another user explains in text what to do to enable call this should be sufficient: "Click Yes in the dialog after the failed call to enable fallback call server." Currently text message explaining would be like: "Go to Settings -> Voice & Video then search for an option that includes turn.matrix.org and enable that and come back to start the call."

notramo commented 4 years ago

The best approach would be to automatically detect it somehow before inserting the call start event (maybe add a Synapse endpoint) if a server provides TURN/STUN. If it doesn't provide, then Riot should show a dialog: Can't place call, because this homeserver doesn't provide a TURN server required for the call feature. Do you want to enable fallback turn.matrix.org call server?