view plugins/mod_turn_external.lua @ 11687:153d2fdd97d3

net.server_epoll: Add way to enable TCP keeplives on all connections In case one wishes to enable this for all connections, not just c2s (not Direct TLS ones, because LuaSec) and s2s. Unclear what use these are, since they kick in after 2 hours of idle time.
author Kim Alvefur <zash@zash.se>
date Wed, 14 Jul 2021 22:09:39 +0200
parents ed405b6357a8
children 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