[Devel] Loadbalancing using Path-HF with NAT-Support

Andreas Granig andreas.granig at inode.info
Wed Mar 1 12:47:46 CET 2006


Hi,

I've uploaded a new module "path" to the tracker on sourceforge, which 
allows a intermediate proxy (an openser instance working as 
loadbalancer) to add it's URI into a Path-HF in various ways:

- add_path(): Adds URI including the address of the outgoing interface 
as Path-HF in the form of "Path: <sip:1.2.3.4:5060>"

- add_path_received(): like the above, but adds a parameter 
"received=sip:2.3.4.5:1234" to the URI to pass the received-address of 
an UAC to a registrar

- both of the above functions also allow to pass a userpart for the 
Path-URI, so add_path("loadbalancer") results in a Path-HF "Path: 
<sip:loadbalancer at 1.2.3.4:5060>"

- If the module parameter "use_received" is set to 1, the module hooks 
into rr-processsing and sets the "received"-parameter of a Route-URI as 
destination-uri if available. This is used in combination with 
add_path_received(), where subsequent requests are sent to the 
received-address of the initial registration (aka the URI given in the 
received-parameter of the Path-HF).


Also included is a patch to the registrar module, which allows to store 
the URI in the received-parameter of the first Path-HF as received-value 
of usrloc and set the NAT flag for this contact. This feature can be 
enabled by setting the parameter "path_use_received" of the registrar 
module to 1.
One should be aware that nat-pinging of such a contact isn't supported 
by nathelper/mediaproxy yet, but the values are in place (since I use an 
external application for nat-pinging).

Some feedback is very much appreciated.

Cheers,
Andy



More information about the Devel mailing list