From 5e57f44a9e7f7d26ef168f9db1934d776de1417f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com> Date: Tue, 6 Jan 2015 14:24:37 -0500 Subject: [PATCH] ringdht: use the sip port in contact header Refs #63196 Change-Id: Ie75406d52c20a3c950b48f2e6a23448839bb2ad7 --- daemon/src/ringdht/ringaccount.cpp | 4 ++-- daemon/src/ringdht/sip_transport_ice.cpp | 6 ++++++ daemon/src/ringdht/sip_transport_ice.h | 4 ++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/daemon/src/ringdht/ringaccount.cpp b/daemon/src/ringdht/ringaccount.cpp index 173c7a890a..e405c0a4b7 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 31e448ce45..daa4ea5b36 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 c8b2fb93b1..2adccd3a13 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_; } -- GitLab