Don't use the current version since the HTTP request to rest turn service is not done asynchronously.
This project is made to provide configuration files for running a Jitsi Meet server with REST API For Access To TURN Services like described in this draft.
By now, it's design to get TURN credentials from the GEANT TURN FEDERATION project using XEP-0215 mechanism. It's build using documentation from jitsi-meet turn configuration documentation and the default jitsi-meet quick-install.
The specific prosody module mod_restturn.lua was build from the mod_turncredentials.lua module from @fippo.
We currently only provide a module to get turn credentials from api.geant.org but you could change the rest_turn_host prosody variable to connect to other TURN credential service (... and you should also change the path_url variable in mod_restturn.lua prosody module).
Edit your prosody VirtualHost configuration (/etc/prosody/conf.d/[servername].cfg.lua) :
- Add "restturn" in VirtualHost modules_enabled.
- Add rest_turn_host=[rest turn server url] in VirtualHost
- Add rest_turn_api_key=[your rest turn server api key] in VirtualHost
- Add mod_prosody/mod_restturn.lua in prosofy module folder and restart prosody service.
cp mod_prosody/mod_restturn.lua /usr/lib/prosody/modules/
service prosody restart
-
Enable the use of STUN/TURN XEP-0215 in p2p connections : set useStunTurn to true in config.p2p object in /etc/jitsi/meet/$HOSTNAME-config.js
-
(Optional) Enable the use of STUN/TURN XEP-0215 in jvb connections : set useStunTurn to true in config object in /etc/jitsi/meet/$HOSTNAME-config.js. For this option only turns server can be used for JVB connections as the JVB already handle many NAT traversal scenario.
Run the install.sh script with :
- jitsi-meet-host : your jitsi-meet server host name or IP
- api-key : you GEANT turn federation api key
sh install.sh jitsi-meet-host api-key
Install Vagrant an your preferred desktop VM runner (....VirtualBox).
Edit the provided Vagrant file and change HOST and API_KEY variables and then run :
vagrant up
- Open chrome://webrtc-internals/
- 2 browsers in a test conference for example https://HOST/testturn
- You should see the STUN/TURNS credential in the iceServers parameters of your Peerconnections.
- Force relay mode in jitsi-meet configuration by adding #config.p2p.iceTransportPolicy="relay" in your jitsi conference link or by setting the p2p.iceTransportPolicy option to realy in your /etc/jitsi/meet/$HOSTNAME-config.js file.