From 91719d961b4b5fcc59f5851aefc02fb296db8445 Mon Sep 17 00:00:00 2001 From: Daniel Pocock Date: Tue, 23 Nov 2021 14:17:18 +0100 Subject: [PATCH] basertpendpoint: add externalIPv4 and externalIPv6 parameters, similar to WebRTCEndpoint --- .../siprtpendpoint/kmssiprtpendpoint.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/gst-plugins/siprtpendpoint/kmssiprtpendpoint.c b/src/gst-plugins/siprtpendpoint/kmssiprtpendpoint.c index a578373..c3203c8 100644 --- a/src/gst-plugins/siprtpendpoint/kmssiprtpendpoint.c +++ b/src/gst-plugins/siprtpendpoint/kmssiprtpendpoint.c @@ -216,6 +216,20 @@ kms_sip_rtp_endpoint_set_addr (KmsSipRtpEndpoint * self) { GList *ips, *l; gboolean done = FALSE; + gboolean use_ipv6; + gchar *external_ip; + + g_object_get (self, "use-ipv6", &use_ipv6, NULL); + + g_object_get (self, use_ipv6 ? "external-ipv6" : "external-ipv4", + &external_ip, NULL); + + if (external_ip != NULL) { + g_object_set (self, "addr", external_ip, NULL); + g_free (external_ip); + done = TRUE; + return; + } ips = nice_interfaces_get_local_ips (FALSE); for (l = ips; l != NULL && !done; l = l->next) { @@ -236,9 +250,7 @@ kms_sip_rtp_endpoint_set_addr (KmsSipRtpEndpoint * self) case G_SOCKET_FAMILY_IPV4: { gchar *addr_str; - gboolean use_ipv6; - g_object_get (self, "use-ipv6", &use_ipv6, NULL); if (is_ipv6 != use_ipv6) { GST_DEBUG_OBJECT (self, "Skip address (wanted IPv6: %d)", use_ipv6); break;