File

plugins/mod_turn_external.lua @ 11728:826d57c16d1c

migrator: Customise startup sequence to fix #1673 (Thanks acidsys) Diverge from util.startup.prosodyctl() in order to skip unneeded behavior, such as loading the *Prosody* config file, which we do not need here, based on the `--config` flag which should point at the migrator config file instead. Notably removed: * read_config() since this loads the Prosody config * check_unwriteable() which checks logfiles specified in the Prosody config, so not relevant * make_dummy_hosts() but the migrator sets up its own hosts during migration
author Kim Alvefur <zash@zash.se>
date Thu, 29 Jul 2021 13:47:26 +0200
parent 11599:ed405b6357a8
child 12282:fe5a87b5972f
line wrap: on
line source

local secret = module:get_option_string("turn_external_secret");
local host = module:get_option_string("turn_external_host", module.host);
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 services = module:get_option_set("turn_external_services", {"stun-udp"; "turn-udp"});

if not secret then error("mod_" .. module.name .. " requires that 'turn_external_secret' be set") end

module:depends "external_services";

for _, type in ipairs({"stun"; "turn"}) 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;

				username = type == "turn" and user or nil;
				secret = type == "turn" and secret or nil;
				ttl = type == "turn" and ttl or nil;
			})
		end
	end
end