From ac8d983ce6bfb71b6200d97b8ea3d0fc14d15d6b Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandre.savard@savoirfairelinux.com>
Date: Tue, 24 Apr 2012 18:16:49 -0400
Subject: [PATCH] #9910: fix contact header in outgoing request if via
 parameter are present

---
 daemon/src/sip/sipaccount.cpp | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/daemon/src/sip/sipaccount.cpp b/daemon/src/sip/sipaccount.cpp
index fd5b198a41..e553300671 100644
--- a/daemon/src/sip/sipaccount.cpp
+++ b/daemon/src/sip/sipaccount.cpp
@@ -807,8 +807,18 @@ std::string SIPAccount::getContactHeader() const
 
     // Else we determine this infor based on transport information
     std::string address, port;
+    std::ostringstream portstr;
+
     link_->sipTransport.findLocalAddressFromTransport(transport_, transportType, address, port);
 
+    if (!receivedParameter_.empty())
+       address = receivedParameter_;
+
+    if (rPort_ != -1) {
+        portstr << rPort_;
+        port = portstr.str();
+    }
+
     // UDP does not require the transport specification
     std::string scheme;
     std::string transport;
-- 
GitLab