diff --git a/core/AmSession.cpp b/core/AmSession.cpp index 540d438a..adfc5350 100644 --- a/core/AmSession.cpp +++ b/core/AmSession.cpp @@ -784,6 +784,7 @@ void AmSession::onSipReply(const AmSipReply& reply, int old_dlg_status) case AmSipDialog::Pending: switch(reply.code){ + // todo: 180 with body (remote rbt) case 180: { onRinging(reply); @@ -972,8 +973,7 @@ void AmSession::setOnHold(bool hold) } // Utility for basic NAT handling: allow the config file to specify the IP -// address to use in SDP bodies and Contact header. -// TODO: Contact header! :) +// address to use in SDP bodies string AmSession::advertisedIP() { string set_ip = AmConfig::PublicIP; // "public_ip" parameter. diff --git a/core/AmSipDialog.cpp b/core/AmSipDialog.cpp index 205725ce..83607832 100644 --- a/core/AmSipDialog.cpp +++ b/core/AmSipDialog.cpp @@ -332,7 +332,9 @@ string AmSipDialog::getContactHdr() contact_uri += user + "@"; } - contact_uri += AmConfig::LocalSIPIP + ":"; + + contact_uri += AmConfig::PublicIP.empty() ? + AmConfig::LocalSIPIP : AmConfig::PublicIP + ":"; contact_uri += int2str(AmConfig::LocalSIPPort); contact_uri += ">";