From ed96f3db8ddad6c70f136e793d80e41b82d834c5 Mon Sep 17 00:00:00 2001 From: Stefan Sayer Date: Sat, 1 May 2010 15:19:55 +0000 Subject: [PATCH] support public_ip for contact git-svn-id: http://svn.berlios.de/svnroot/repos/sems/trunk@1880 8eb893ce-cfd4-0310-b710-fb5ebe64c474 --- core/AmSession.cpp | 4 ++-- core/AmSipDialog.cpp | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) 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 += ">";