diff --git a/daemon/src/sip/sipaccount.cpp b/daemon/src/sip/sipaccount.cpp
index fd5b198a41aca767d2263778f3536b369c39b470..e55330067189ccbf2d3a5fa7a8b13a2a1e59919c 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;