Mercurial > prosody-modules
comparison mod_turn_external/mod_turn_external.lua @ 4894:bfa2cca2bdd5
mod_turn_external: Import from prosody trunk @ ed23bbf3b946
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Mon, 14 Feb 2022 14:36:32 +0000 |
parents | |
children | 2542fd80cd15 |
comparison
equal
deleted
inserted
replaced
4893:d4ce29c772ac | 4894:bfa2cca2bdd5 |
---|---|
1 local set = require "util.set"; | |
2 | |
3 local secret = module:get_option_string("turn_external_secret"); | |
4 local host = module:get_option_string("turn_external_host", module.host); | |
5 local user = module:get_option_string("turn_external_user"); | |
6 local port = module:get_option_number("turn_external_port", 3478); | |
7 local ttl = module:get_option_number("turn_external_ttl", 86400); | |
8 local tcp = module:get_option_boolean("turn_external_tcp", false); | |
9 local tls_port = module:get_option_boolean("turn_external_tls_port"); | |
10 | |
11 if not secret then error("mod_" .. module.name .. " requires that 'turn_external_secret' be set") end | |
12 | |
13 local services = set.new({ "stun-udp"; "turn-udp" }); | |
14 if tcp then | |
15 services:add("stun-tcp"); | |
16 services:add("turn-tcp"); | |
17 end | |
18 if tls_port then | |
19 services:add("turns-tcp"); | |
20 end | |
21 | |
22 module:depends "external_services"; | |
23 | |
24 for _, type in ipairs({ "stun"; "turn"; "turns" }) do | |
25 for _, transport in ipairs({"udp"; "tcp"}) do | |
26 if services:contains(type .. "-" .. transport) then | |
27 module:add_item("external_service", { | |
28 type = type; | |
29 transport = transport; | |
30 host = host; | |
31 port = type == "turns" and tls_port or port; | |
32 | |
33 username = type == "turn" and user or nil; | |
34 secret = type == "turn" and secret or nil; | |
35 ttl = type == "turn" and ttl or nil; | |
36 }) | |
37 end | |
38 end | |
39 end |