Revision: 18730
http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18730&view=rev
Author: csoutheren
Date: 2007-10-22 05:32:12 -0700 (Mon, 22 Oct 2007)
Log Message:
-----------
Applied OpenH323 1800899 - SIP Handlers: Support for Proxy parameter in URI
Thanks to Simon Zwahlen
Modified Paths:
--------------
opal/branches/csoutheren/devel/src/sip/handlers.cxx
Modified: opal/branches/csoutheren/devel/src/sip/handlers.cxx
===================================================================
--- opal/branches/csoutheren/devel/src/sip/handlers.cxx 2007-10-22 12:24:50 UTC (rev 18729)
+++ opal/branches/csoutheren/devel/src/sip/handlers.cxx 2007-10-22 12:32:12 UTC (rev 18730)
@@ -115,12 +115,24 @@
targetAddress.Parse(to);
remotePartyAddress = targetAddress.AsQuotedString();
- transport = endpoint.CreateTransport(targetAddress.GetHostAddress());
-
authenticationAttempts = 0;
- const SIPURL & proxy = endpoint.GetProxy();
+ // Look for a "proxy" parameter to override default proxy
+ const PStringToString& params = targetAddress.GetParamVars();
+ SIPURL proxy;
+ if (params.Contains("proxy")) {
+ proxy.Parse(params("proxy"));
+ targetAddress.SetParamVar("proxy", PString::Empty());
+ }
+ if (proxy.IsEmpty())
+ proxy = endpoint.GetProxy();
+
+ if (!proxy.IsEmpty())
+ transport = endpoint.CreateTransport(proxy.GetHostAddress());
+ else
+ transport = endpoint.CreateTransport(targetAddress.GetHostAddress());
+
// Default routeSet if there is a proxy
if (!proxy.IsEmpty() && routeSet.GetSize() == 0)
routeSet += "sip:" + proxy.GetHostName() + ':' + PString(proxy.GetPort()) + ";lr";
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|