Using Prosody with coturn
coturn is a TURN and STUN server.
Installation
This assumes a Debian system. Commands for installation and config file paths may vary with operating system.
Install coturn
sudo apt install coturnCheck whether it was started automatically,
sudo systemctl status coturnIf not, do so (or wait until after configuring).
sudo systemctl enable --now coturnFirewall
If you have a firewall enabled, make sure to allow coturn through.
sudo ufw allow TurnserverConfiguration
Enable the module in the modules_enabled list:
modules_enabled = {
-- other modules ...
"turn_external"
}Generate a suitably strong shared secret and put it both as
static-auth-secret in /etc/turnserver.conf and
as turn_external_secret in Prosodys configuration. A
realm is also needed.
realm=turn.example.com
use-auth-secret
static-auth-secret=s1kr3tIn Prosodys configuration, /etc/prosody/prosody.cfg.lua,
add:
modules_enabled = {
-- other modules ...
"turn_external"
}
turn_external_host = "turn.example.com"
turn_external_secret = "s1kr3t"That should be it! Don’t forget to check out coturns own documentation and skim through the rest of the default configuration file.
Test
By using a client with an XML console, manually request temporary credentials as per XEP-0215. These can be tested using https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/