Thanks for your helpful reply, saghul and the welcome to the forums here!
You wrote:
Correct. Without a TURN server it may fail and then you’ll end up connecting through the bridge, which is not a huge deal.
If I understand correctly, what you’re saying is, if P2P direct connection fails, it will try via JVB (videobridge) on UDP port 10000
Correct?
and just on that single port 10000… not a range
Correct?
But is it possible that participants in a video meeting, connecting from outside (from WAN), that upon connecting, that other ports are used with JVB and / or Jitsi-meet as well?
You wrote:
It’s possible your network blocks all outgoing UDP traffic. In such scenario, TURN would help you because you’d connect to it using TCP or TLS, then to the JVB via UDP.
Is it possible to connect via UDP only instead of using TCP or TLS? (From what I understand, UDP can be faster transmission of media than TCP?)
To configure enable using a TURN server for Jitsi, per Meetrix.io tutorial, I understand I need to to download and install mod_turncredentials.lua
to prosody
cd /tmp && \
wget https://raw.githubusercontent.com/otalk/mod_turncredentials/master/mod_turncredentials.lua && \
sudo cp mod_turncredentials.lua /usr/lib/prosody/modules/
and that I also need to modify the following:
- Prosody config file: [myJitsihostname].cfg.lua in /etc/prosody/conf.avail/ and
- JVB config file “sip-communicator.properties” in /etc/jitsi/videobridge/
- Jitsi meet config file "[myJitsihostname]-config.js in /etc/jitsi/meet/
For the Prosody config file, I need to input my TURN server secret / hostname etc like this:
external_service_secret = "TURN_SERVER_SECRET";
external_services = {
{ type = "turn", host = "turn.mydomain.com", port = 3478, transport = "udp", secret = true, ttl = 86400, algorithm = "turn" >
{ type = "turns", host = "turn.mydomain.com", port = 5349, transport = "udp", secret = true, ttl = 86400, algorithm = "turn">
};
as well as to add this line: “turncredentials”;
… in the modules_enabled section, so that it looks like this:
modules_enabled = {
"bosh";
"pubsub";
"ping"; -- Enable mod_ping
**"turncredentials";**
"speakerstats";
"external_services";
"conference_duration";
"end_conference";
"muc_lobby_rooms";
"muc_breakout_rooms";
"av_moderation";
"room_metadata";
}
What about these lines:
cross_domain_bosh = false;
consider_bosh_secure = true;
Are those default settings OK?
For JVB config file “sip-communicator.properties”, I added this line:
org.jitsi.videobridge.DISABLE_TCP_HARVESTER=true
For Jitsi meet config file "[myJitsihostname]-config.js, I ensured that this line:
useStunTurn: true, // Using Turn Server with JVB
was within the “p2p:{” section as well as I pasted it right below that section as “useStunTurn: true, // Using Turn Server with JVB”
so that my final looks like this:
p2p: {
enabled: true,
stunServers: [
// { urls: 'stun:[myJitsihostname].com:3478' },
{ urls: 'stun:meet-jit-si-turnrelay.jitsi.net:443' },
],
},
useStunTurn: true, // Using Turn Server with JVB
However, I suppose I need to uncomment this line: // { urls: ‘stun:[myTURNserverhostname].com:3478’ }, and input my TURN server hostname there?
Did I miss anything?
Thanks again for your time and help!