From cdc7cadb6dd997297795e1355aedd8c5408d5753 Mon Sep 17 00:00:00 2001
From: Ming Rui Zhang <mingrui.zhang@savoirfairelinux.com>
Date: Fri, 18 Jun 2021 15:08:26 -0400
Subject: [PATCH] sipaccountbase: ensure the value for published ip address

Gitlab: #567

Change-Id: I9fdb1601f407759a8b6ef73bccc32769e5693b5b
---
 src/sip/sipaccountbase.cpp | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/sip/sipaccountbase.cpp b/src/sip/sipaccountbase.cpp
index e9b6d19d9d..11396b5a1a 100644
--- a/src/sip/sipaccountbase.cpp
+++ b/src/sip/sipaccountbase.cpp
@@ -293,9 +293,8 @@ SIPAccountBase::unserialize(const YAML::Node& node)
 
     parseValue(node, Conf::INTERFACE_KEY, interface_);
     parseValue(node, Conf::SAME_AS_LOCAL_KEY, publishedSameasLocal_);
-    std::string publishedIpAddress;
-    parseValue(node, Conf::PUBLISH_ADDR_KEY, publishedIpAddress);
-    IpAddr publishedIp {publishedIpAddress};
+    parseValue(node, Conf::PUBLISH_ADDR_KEY, publishedIpAddress_);
+    IpAddr publishedIp {publishedIpAddress_};
     if (publishedIp and not publishedSameasLocal_)
         setPublishedAddress(publishedIp);
 
@@ -332,6 +331,9 @@ SIPAccountBase::setAccountDetails(const std::map<std::string, std::string>& deta
     parseBool(details, Conf::CONFIG_PUBLISHED_SAMEAS_LOCAL, publishedSameasLocal_);
     parseString(details, Conf::CONFIG_PUBLISHED_ADDRESS, publishedIpAddress_);
     parseInt(details, Conf::CONFIG_PUBLISHED_PORT, publishedPort_);
+    IpAddr publishedIp {publishedIpAddress_};
+    if (publishedIp and not publishedSameasLocal_)
+        setPublishedAddress(publishedIp);
 
     parseString(details, Conf::CONFIG_ACCOUNT_DTMF_TYPE, dtmfType_);
 
-- 
GitLab