jitsi / docker-jitsi-meet

Jitsi Meet on Docker
https://hub.docker.com/u/jitsi/
Apache License 2.0
3.06k stars 1.36k forks source link

No audio/video on video calls #1598

Open ivan-avalos opened 1 year ago

ivan-avalos commented 1 year ago

Hey! I've been trying to setup my own deployment behind a NGINX reverse proxy, but for some reason I can't get the clients to establish a WebRTC connection (or some other kind of connection?). All my ports are open and there's no NAT server-side, but clients are simply not connecting to port 10000/udp (I checked with Wireshark). I didn't do any modification to any Docker files, and I checked out a stable release instead of master.

And sometimes, the colibri-ws websocket crashes randomly:

WebSocket connection to 'wss://jitsi.****.****/colibri-ws/172.24.0.4/9b3722cdeab25fcc/56a746b8?pwd=fitocgt4r7g354efp8g3nrte3' failed: 

Do you need any more logs?

saghul commented 1 year ago

Have you tried setting JVB_ADVERTISE_IPS to your server IP?

ivan-avalos commented 1 year ago

I did try that, but results were the same, so I unset it. No connections whatsoever to any port 10000/udp.

saghul commented 1 year ago

On the Firefox side:

2023-09-07T19:18:26.742Z [JitsiConference.js] <7193/zu.prototype._acceptJvbIncomingCall>:  ReferenceError: RTCPeerConnection is not defined

You seem to have disabled WebRTC.

I guess that's why there is no session between your 2 devices. In order for the JVB to be used you need to have at least 3.

ivan-avalos commented 1 year ago

Either with or without WebRTC, there should probably be audio/video in the call. I've also tested with more than two devices, and still, no audio/video at all. If the problem is not WebRTC, it must be something else. Is there anything else going on in the logs that I'm missing? I've tried to read them, but I can't make sense of them.

saghul commented 1 year ago

You are wrong. Jitsi Meet uses WebRTC to implement the audio / video transport.

It will 100% guaranteed NOT work unless you enable it.

ivan-avalos commented 1 year ago

Sorry, I thought you meant that WebRTC only got enabled with more than two devices, but you were referring only to JVB. How do I enable WebRTC? I didn't disable it in my browsers, should I configure anything server-side in order for it to work?

saghul commented 1 year ago

Do you have any extensions that might disable it?

ivan-avalos commented 1 year ago

Both browsers work fine with other Jitsi instances.

saghul commented 1 year ago

Any chance you are accessing your instance over HTTP rather than HTTPS? WebRTC only works with the latter.

ivan-avalos commented 1 year ago

I made sure everything is HTTPS with a valid TLS certificate, as you can see in my NGINX config.

saghul commented 1 year ago

I don't know what to tell you, the Firefox logs are clear, WebRTC APIs were not available and they are necessary for Jitsi Meet to function.

ivan-avalos commented 1 year ago

For a brief moment (a few seconds), I was able to catch WebRTC working, albeit with a terrible quality stream between two browser tabs. Shortly thereafter, the got the message in both sides about video turned off to save bandwidth. I checked the bandwidth indicator (in Chromium), and it was the same for both peers:

Screenshot_20230911_102624

Apparently, there's no actual bandwidth estimation taking place. Maybe that's the issue?

Update: I could somehow get it working between the Firefox web UI and the Android app. The problem so far seems to be with Chromium only, maybe some issue with the web UI not being able to estimate bitrate correctly in Chromium? I need to do more experiments.

saghul commented 1 year ago

It usually takes between 10 and 20 seconds to populate the values.