diff --git a/net/turnserver/Makefile b/net/turnserver/Makefile index 9fbad5318..8a863dd17 100644 --- a/net/turnserver/Makefile +++ b/net/turnserver/Makefile @@ -1,5 +1,5 @@ PLUGIN_NAME= turnserver -PLUGIN_VERSION= 1.1 +PLUGIN_VERSION= 1.2 PLUGIN_COMMENT= The coturn STUN/TURN Server PLUGIN_DEPENDS= turnserver PLUGIN_MAINTAINER= opnsense@moov.de diff --git a/net/turnserver/pkg-descr b/net/turnserver/pkg-descr index 3b816781b..27ac200fd 100644 --- a/net/turnserver/pkg-descr +++ b/net/turnserver/pkg-descr @@ -6,6 +6,14 @@ WWW: https://github.com/coturn/coturn Plugin Changelog ================ +1.2 + +Added: +* add support for external IPs and IP mappings (#4906) + +Changed: +* modernize UI template + 1.1 Added: diff --git a/net/turnserver/src/opnsense/mvc/app/controllers/OPNsense/Turnserver/forms/settings.xml b/net/turnserver/src/opnsense/mvc/app/controllers/OPNsense/Turnserver/forms/settings.xml index f16808f18..9652bef47 100644 --- a/net/turnserver/src/opnsense/mvc/app/controllers/OPNsense/Turnserver/forms/settings.xml +++ b/net/turnserver/src/opnsense/mvc/app/controllers/OPNsense/Turnserver/forms/settings.xml @@ -35,6 +35,14 @@ text Upper bound of the UDP relay endpoints (Default: 65535). + + turnserver.settings.ExternalIP + + select_multiple + + true + If the TURN service is behind a NAT, it's external IP address should be specified. When using multiple external IP addresses, IP Mappings should be used instead, i.e. 60.70.80.91/172.17.19.101 (public-ip/private-ip). + header diff --git a/net/turnserver/src/opnsense/mvc/app/models/OPNsense/Turnserver/Turnserver.xml b/net/turnserver/src/opnsense/mvc/app/models/OPNsense/Turnserver/Turnserver.xml index 47aae5f06..525171633 100644 --- a/net/turnserver/src/opnsense/mvc/app/models/OPNsense/Turnserver/Turnserver.xml +++ b/net/turnserver/src/opnsense/mvc/app/models/OPNsense/Turnserver/Turnserver.xml @@ -25,6 +25,12 @@ 65535 Y + + N + Y + /^((([0-9a-zA-Z._\-]+[\/0-9a-zA-Z._\-]*)([,]){0,1}))*/u + Please provide an external IP address or an IP mapping, i.e. 60.70.80.91/172.17.19.101. + 0 Y diff --git a/net/turnserver/src/opnsense/mvc/app/views/OPNsense/Turnserver/index.volt b/net/turnserver/src/opnsense/mvc/app/views/OPNsense/Turnserver/index.volt index 950b9d768..8e43f89ff 100644 --- a/net/turnserver/src/opnsense/mvc/app/views/OPNsense/Turnserver/index.volt +++ b/net/turnserver/src/opnsense/mvc/app/views/OPNsense/Turnserver/index.volt @@ -1,6 +1,6 @@ {# -Copyright (C) 2025 Frank Wall +Copyright (C) 2025-2026 Frank Wall OPNsense® is Copyright © 2014 – 2015 by Deciso B.V. All rights reserved. @@ -28,30 +28,36 @@ POSSIBILITY OF SUCH DAMAGE. #} - - -
+
{{ partial("layout_partials/base_form",['fields':settingsForm,'id':'frm_Settings'])}}
- -
- -
+{{ partial('layout_partials/base_apply_button', {'data_endpoint': '/api/turnserver/service/reconfigure', 'data_service_widget': 'turnserver'}) }} diff --git a/net/turnserver/src/opnsense/service/templates/OPNsense/Turnserver/turnserver.conf b/net/turnserver/src/opnsense/service/templates/OPNsense/Turnserver/turnserver.conf index f5442f1d9..7b8d15bd2 100644 --- a/net/turnserver/src/opnsense/service/templates/OPNsense/Turnserver/turnserver.conf +++ b/net/turnserver/src/opnsense/service/templates/OPNsense/Turnserver/turnserver.conf @@ -7,6 +7,11 @@ listening-ip={{ listenip }} listening-port={{ OPNsense.turnserver.settings.ListenPort }} min-port={{ OPNsense.turnserver.settings.MinPort }} max-port={{ OPNsense.turnserver.settings.MaxPort }} +{% if helpers.exists('OPNsense.turnserver.settings.ExternalIP') and OPNsense.turnserver.settings.ExternalIP|default("") != "" %} +{% for externalip in OPNsense.turnserver.settings.ExternalIP.split(",") %} +external-ip={{ externalip }} +{% endfor %} +{% endif %} # TLS {% if helpers.exists('OPNsense.turnserver.settings.TlsEnabled') and OPNsense.turnserver.settings.TlsEnabled|default("") == "1" %}