File

plugins/mod_turn_external.lua @ 11978:628374809421

mod_smacks: Remove redundant fields Given that the registry is scoped per user and the module is scoped per host, there seems no point to checking or storing both username and host here.
author Kim Alvefur <zash@zash.se>
date Wed, 01 Dec 2021 16:26:53 +0100
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