From cea2ad8d515a59c0cfa15c3787bebc66f9a569e2 Mon Sep 17 00:00:00 2001 From: Ming Rui Zhang <mingrui.zhang@savoirfairelinux.com> Date: Mon, 22 Feb 2021 10:29:03 -0500 Subject: [PATCH] sip: use outbound proxy to resolve server name whenever available Gitlab: #346 Change-Id: Ia7b37abf31a14e8648f61a2415687d2400aa9937 --- src/sip/sipaccount.cpp | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/src/sip/sipaccount.cpp b/src/sip/sipaccount.cpp index b5b4beec1d..75a9ac442a 100644 --- a/src/sip/sipaccount.cpp +++ b/src/sip/sipaccount.cpp @@ -1,4 +1,4 @@ -/* +/* * Copyright (C) 2004-2021 Savoir-faire Linux Inc. * * Author: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com> @@ -812,7 +812,7 @@ SIPAccount::doRegister1_() } } - link_.resolveSrvName(hostname_, + link_.resolveSrvName(hasServiceRoute() ? getServiceRoute() : hostname_, tlsEnable_ ? PJSIP_TRANSPORT_TLS : PJSIP_TRANSPORT_UDP, [w = weak()](std::vector<IpAddr> host_ips) { if (auto acc = w.lock()) { @@ -1107,18 +1107,7 @@ SIPAccount::sendRegister() void SIPAccount::setUpTransmissionData(pjsip_tx_data* tdata, long transportKeyType) { - if (hasServiceRoute()) { - IpAddr proxyServer {getServiceRoute()}; - if (proxyServer.getPort() == 0) - proxyServer.setPort(sip_utils::DEFAULT_SIP_PORT); - auto ai = &tdata->dest_info; - ai->name = pj_strdup3(tdata->pool, hostname_.c_str()); - ai->addr.count = 1; - ai->addr.entry[0].type = (pjsip_transport_type_e) transportKeyType; - pj_memcpy(&ai->addr.entry[0].addr, proxyServer.pjPtr(), sizeof(pj_sockaddr)); - ai->addr.entry[0].addr_len = proxyServer.getLength(); - ai->cur_addr = 0; - } else if (hostIp_) { + if (hostIp_) { auto ai = &tdata->dest_info; ai->name = pj_strdup3(tdata->pool, hostname_.c_str()); ai->addr.count = 1; -- GitLab