diff --git a/daemon/src/sip/sipaccountbase.cpp b/daemon/src/sip/sipaccountbase.cpp index 07ec4371860da644880e351b991edbe42f10ee79..49adcfa14786c3ca30f1b2584179cdd1b3d1ce14 100644 --- a/daemon/src/sip/sipaccountbase.cpp +++ b/daemon/src/sip/sipaccountbase.cpp @@ -143,10 +143,16 @@ void SIPAccountBase::unserialize(const YAML::Node &node) int port = DEFAULT_SIP_PORT; parseValue(node, PORT_KEY, port); localPort_ = port; - parseValue(node, PUBLISH_ADDR_KEY, publishedIpAddress_); + + parseValue(node, SAME_AS_LOCAL_KEY, publishedSameasLocal_); + std::string publishedIpAddress; + parseValue(node, PUBLISH_ADDR_KEY, publishedIpAddress); + IpAddr publishedIp = publishedIpAddress; + if (publishedIp and not publishedSameasLocal_) + setPublishedAddress(publishedIp); + parseValue(node, PUBLISH_PORT_KEY, port); publishedPort_ = port; - parseValue(node, SAME_AS_LOCAL_KEY, publishedSameasLocal_); parseValue(node, DTMF_TYPE_KEY, dtmfType_);