I am looking for some help to troubleshoot my Jitsi instance.
My installation is based on Ubuntu 20.04 server, running the latest stable docker image (5390-2) and nginx as reverse proxy. People are using it for a while now without any big issues.
However there is one user which reliably can’t connect. Not connect in the sense that I can see he’s there, but neither audio nor video will work. I checked his browser settings and audio/video are enabled, he can see himself on camera.
Tests 1
2 of us in the meeting, problem child is joining and shows as participant but mic and video are off, we can’t hear/see him, and he cant hear/see us.
Test 2
Problem child starts meeting, I join, same problem
Problem child is able to raise his hand, but that’s the only interaction which seems to get through. Chat isn’t working either.
I can sucessfully join as 3rd attendee from my phone
Test 3
Start a meeting via meet.jit.si and we are both connected instantaniously
Preliminary conclusion: The problematic client is working in principle, but something is different about it which prevents it from joining meetings on my self hosted instance. Not even if it’s just me and him (2 participants)
Can anyone think of obvious reasons why this is happening? It can’t be networking/firewall at his end as otherwise jit.si shouldn’t work either, can it?
Although most likely, it shouldn’t be networking/firewall at my server either because it works for others?
That sounds like a good explanation. That user is joining from a company network, there surely is a firewall somewhere.
I’ll look into turn servers and see what needs to be done. Any must read documentation you can think of?
Indeed, sorry for being ignorant here, learning as I go. Been mixing up TURN and STUN. After reading up some more on this I guess TURN servers is a service I wouldn’t want to relay to a 3rd party as all traffic goes through TURN and hence selfhosting Jitsi becomes pointless.
Said this, are there public servers similar to the STUN ones above I could use to at least test that lack of TURN protocol support is indeed my issue?
The other bit I don’t understand yet is why a participant can communicate through a TURN server located somewhere on the internet but not with my Jitsi server which is equally just a public server on the internet? Is this just a matter of Jitsi not supporting the TURN protocol?
The clients communicate using udp port 10000 with the bridge and in some networks udp is not allowed or outgoing port 10000 is blocked. For TCP connection we use the turn server to relay the traffic. I don’t think there are public turn servers as the turn usage is behind a password.
If you install jitsi-meet by default it come with a turnserver listening on port 5349 (that is explained in the quick install guide) , so clients with no udp can fallback to that.
In some corporate networks not only udp is blocked, but only destination port 443 is allowed, in which case the default port 5349 will also not work. Then you need to run the turnserver on port 443. Setting up TURN · Jitsi Meet Handbook
This is the case for meet.jit.si turnservers.
There is one more case for turnservers in p2p mode, sometimes direct connection is not possible due to double NATs and such so a relay can be used to for that call which will offload the traffic from the bridge, which needs to handle the cases of 3 and more people.