[OpenSIPS-Users] CANCEL not including rport parameter in VIA

Newlin, Ben Ben.Newlin at inin.com
Wed Jul 22 18:44:53 CEST 2015


We are using the topology_hiding functionality of the Dialog module in OpenSIPS 1.11. We have 2 OpenSIPs servers set up in tandem, with one acting as the load-balancer and the other as the proxy. Only the load-balancer has a public IP address, so on the proxy we use set_advertised_address(public IP) so that the topology_hiding() will use the public IP when re-writing the Contact and other headers. This also causes the public IP address to be used in the Via header, so we must add the rport parameter with add_local_rport(), so that the response will be routed back to the proxy properly.

The problem occurs because CANCEL messages are processed by the TM module. When the CANCEL is relayed, the Via header contains the public IP address but not the rport parameter. This causes the response routing to fail. The add_local_rport() function doesn’t seem to work because the TM module is responding to the received CANCEL and then generating a new CANCEL to relay so I have no access to the new message to add the rport. It does not show up in branch_route or in local_route. For RFC3261 transaction matching, the Via in the CANCEL must be the same as the Via in the initial INVITE, so I can’t change the address either.

So how can I add the rport parameter to the Via header of a CANCEL generated by the TM module?

Ben Newlin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20150722/e841bb85/attachment.htm>


More information about the Users mailing list