aboutsummaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2022-02-10 15:41:47 +0100
committerKim Alvefur <zash@zash.se>2022-02-10 15:41:47 +0100
commit5ed39f2a0971982ee87f236d057f400481aa04b4 (patch)
treef923d62e24345689502eef82622e7ac4a6387308 /plugins
parentd92ceb3adb759e3bc686709c5b7f4c92d10565c4 (diff)
downloadprosody-5ed39f2a0971982ee87f236d057f400481aa04b4.tar.gz
prosody-5ed39f2a0971982ee87f236d057f400481aa04b4.zip
mod_turn_external: Add option to enable TURN over TLS
Usually on port 443 to avoid restrictive firewalls. Thanks to Holger for discussion
Diffstat (limited to 'plugins')
-rw-r--r--plugins/mod_turn_external.lua8
1 files changed, 6 insertions, 2 deletions
diff --git a/plugins/mod_turn_external.lua b/plugins/mod_turn_external.lua
index a064d58b..8e391bb5 100644
--- a/plugins/mod_turn_external.lua
+++ b/plugins/mod_turn_external.lua
@@ -6,6 +6,7 @@ local user = module:get_option_string("turn_external_user");
local port = module:get_option_number("turn_external_port", 3478);
local ttl = module:get_option_number("turn_external_ttl", 86400);
local tcp = module:get_option_boolean("turn_external_tcp", false);
+local tls_port = module:get_option_boolean("turn_external_tls_port");
if not secret then error("mod_" .. module.name .. " requires that 'turn_external_secret' be set") end
@@ -14,17 +15,20 @@ if tcp then
services:add("stun-tcp");
services:add("turn-tcp");
end
+if tls_port then
+ services:add("turns-tcp");
+end
module:depends "external_services";
-for _, type in ipairs({"stun"; "turn"}) do
+for _, type in ipairs({ "stun"; "turn"; "turns" }) do
for _, transport in ipairs({"udp"; "tcp"}) do
if services:contains(type .. "-" .. transport) then
module:add_item("external_service", {
type = type;
transport = transport;
host = host;
- port = port;
+ port = type == "turns" and tls_port or port;
username = type == "turn" and user or nil;
secret = type == "turn" and secret or nil;