From ec3782991d013f5c530b8c6b89b431d6898dbf45 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 22 May 2026 03:21:40 +0000 Subject: [PATCH 1/4] Initial plan From a350d4e2f7c2d099cbb889d38111b5c1ce15dab1 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 22 May 2026 03:23:10 +0000 Subject: [PATCH 2/4] Fix LiveKit rtc.udp_port: use integer 7882 instead of string range, update firewall rules Agent-Logs-Url: https://github.com/naturallaw777/sovran-systems/sessions/f531f757-8ab7-4742-9c75-8d1e57d73380 Co-authored-by: naturallaw777 <99053422+naturallaw777@users.noreply.github.com> --- app/sovran_systemsos_web/server.py | 4 ++-- modules/element-calling.nix | 7 +++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/app/sovran_systemsos_web/server.py b/app/sovran_systemsos_web/server.py index 1a686a6..8b1d4a6 100644 --- a/app/sovran_systemsos_web/server.py +++ b/app/sovran_systemsos_web/server.py @@ -204,7 +204,7 @@ FEATURE_REGISTRY = [ {"port": "80", "protocol": "TCP", "description": "HTTP (redirect to HTTPS)"}, {"port": "443", "protocol": "TCP", "description": "HTTPS (domain)"}, {"port": "7881", "protocol": "TCP", "description": "LiveKit WebRTC signalling"}, - {"port": "7882-7894", "protocol": "UDP", "description": "LiveKit media streams"}, + {"port": "7882", "protocol": "UDP", "description": "LiveKit media (UDP mux)"}, {"port": "5349", "protocol": "TCP", "description": "TURN over TLS"}, {"port": "3478", "protocol": "UDP", "description": "TURN (STUN/relay)"}, {"port": "30000-40000", "protocol": "TCP/UDP", "description": "TURN relay (WebRTC)"}, @@ -295,7 +295,7 @@ _PORTS_MATRIX_FEDERATION = [ ] _PORTS_ELEMENT_CALLING = [ {"port": "7881", "protocol": "TCP", "description": "LiveKit WebRTC signalling"}, - {"port": "7882-7894", "protocol": "UDP", "description": "LiveKit media streams"}, + {"port": "7882", "protocol": "UDP", "description": "LiveKit media (UDP mux)"}, {"port": "5349", "protocol": "TCP", "description": "TURN over TLS"}, {"port": "3478", "protocol": "UDP", "description": "TURN (STUN/relay)"}, {"port": "30000-40000", "protocol": "TCP/UDP", "description": "TURN relay (WebRTC)"}, diff --git a/modules/element-calling.nix b/modules/element-calling.nix index 1f16789..7f8674b 100755 --- a/modules/element-calling.nix +++ b/modules/element-calling.nix @@ -130,7 +130,7 @@ EOF keyFile = livekitKeyFile; settings = { rtc.use_external_ip = true; - rtc.udp_port = "7882-7894"; + rtc.udp_port = 7882; room.auto_create = false; turn = { enabled = true; @@ -141,10 +141,9 @@ EOF }; networking.firewall.allowedTCPPorts = [ 5349 7881 ]; - networking.firewall.allowedUDPPorts = [ 3478 ]; + networking.firewall.allowedUDPPorts = [ 3478 7882 ]; networking.firewall.allowedUDPPortRanges = [ - { from = 7882; to = 7894; } - { from = 30000; to = 40000;} + { from = 30000; to = 40000; } ]; networking.firewall.allowedTCPPortRanges = [ { from = 30000; to = 40000; } From 24098a209add3ebbb4d618d86f942b173511718c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 22 May 2026 03:34:50 +0000 Subject: [PATCH 3/4] Initial plan From b8e7b2b4cc60e8844f937a5d29a65bb37f6b7895 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 22 May 2026 03:37:52 +0000 Subject: [PATCH 4/4] fix: update element calling onboarding UDP mux port text Agent-Logs-Url: https://github.com/naturallaw777/sovran-systems/sessions/d45e1a45-fc4e-4bd5-adfd-c798c0ff3987 Co-authored-by: naturallaw777 <99053422+naturallaw777@users.noreply.github.com> --- app/sovran_systemsos_web/server.py | 2 +- app/sovran_systemsos_web/static/onboarding.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/sovran_systemsos_web/server.py b/app/sovran_systemsos_web/server.py index 8b1d4a6..b82820b 100644 --- a/app/sovran_systemsos_web/server.py +++ b/app/sovran_systemsos_web/server.py @@ -894,7 +894,7 @@ def _get_firewall_allowed_ports() -> dict[str, set[int]]: def _port_range_to_ints(port_str: str) -> list[int]: - """Convert a port string like ``"443"``, ``"7882-7894"`` to a list of ints.""" + """Convert a port string like ``"443"``, ``"30000-40000"`` to a list of ints.""" port_str = port_str.strip() if re.match(r'^\d+$', port_str): return [int(port_str)] diff --git a/app/sovran_systemsos_web/static/onboarding.js b/app/sovran_systemsos_web/static/onboarding.js index b6e0e7c..2b0138e 100644 --- a/app/sovran_systemsos_web/static/onboarding.js +++ b/app/sovran_systemsos_web/static/onboarding.js @@ -557,7 +557,7 @@ async function loadStep4() { html += 'PortProtocolForward toPurpose'; html += ''; html += '7881TCP' + ip + 'LiveKit WebRTC signalling'; - html += '7882–7894UDP' + ip + 'LiveKit media streams'; + html += '7882UDP' + ip + 'LiveKit media (UDP mux)'; html += '5349TCP' + ip + 'TURN over TLS'; html += '3478UDP' + ip + 'TURN (STUN/relay)'; html += '30000–40000TCP/UDP' + ip + 'TURN relay (WebRTC)';