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@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