diff --git a/daemon/src/ringdht/ringaccount.cpp b/daemon/src/ringdht/ringaccount.cpp index 173c7a890a1f5744eeae612c711ee6700b0226d5..e405c0a4b715637e127615bb41eed382df21d16f 100644 --- a/daemon/src/ringdht/ringaccount.cpp +++ b/daemon/src/ringdht/ringaccount.cpp @@ -920,7 +920,7 @@ RingAccount::getContactHeader(pjsip_transport* t) return contact_; } - auto ice = reinterpret_cast<SipIceTransport*>(t)->getIceTransport(); + auto ice = reinterpret_cast<SipIceTransport*>(t); // The transport type must be specified, in our case START_OTHER refers to stun transport /*pjsip_transport_type_e transportType = transportType_; @@ -933,7 +933,7 @@ RingAccount::getContactHeader(pjsip_transport* t) //pj_uint16_t port = getTlsListenerPort(); //link_->sipTransport->findLocalAddressFromTransport(t, transportType, hostname_, address, port); - auto address = ice->getDefaultLocalAddress(); + auto address = ice->getLocalAddress(); /*if (addr) { address = addr; port = diff --git a/daemon/src/ringdht/sip_transport_ice.cpp b/daemon/src/ringdht/sip_transport_ice.cpp index 31e448ce451f4dd83f42c9b7db62e28d461c610a..daa4ea5b36dcdbdab56789fb4251530dfc4fbf25 100644 --- a/daemon/src/ringdht/sip_transport_ice.cpp +++ b/daemon/src/ringdht/sip_transport_ice.cpp @@ -171,6 +171,12 @@ SipIceTransport::start() ice_->setOnRecv(comp_id_, std::bind(&SipIceTransport::onRecv, this, _1, _2)); } +IpAddr +SipIceTransport::getLocalAddress() const +{ + return ice_->getLocalAddress(comp_id_); +} + pj_status_t SipIceTransport::send(pjsip_tx_data *tdata, const pj_sockaddr_t *rem_addr, int addr_len, void *token, diff --git a/daemon/src/ringdht/sip_transport_ice.h b/daemon/src/ringdht/sip_transport_ice.h index c8b2fb93b159928814d1efede101ba45f4486122..2adccd3a13393d5a21ab21f844fa63858efca0b1 100644 --- a/daemon/src/ringdht/sip_transport_ice.h +++ b/daemon/src/ringdht/sip_transport_ice.h @@ -31,6 +31,8 @@ #pragma once +#include "ip_utils.h" + #include <pjsip.h> #include <pj/pool.h> #include <memory> @@ -51,6 +53,8 @@ struct SipIceTransport */ void start(); + IpAddr getLocalAddress() const; + std::shared_ptr<sfl::IceTransport> getIceTransport() const { return ice_; }