I know about record_route_advertised_address("ip:port") function. If I understood correctly, it inserts a top-most RR header with the public IP if double RR is enabled. But that doesn't solve the multiple ports problem. I would get in the SIP header :

Record-Route: <public_ip;lr=on>
Record-Route: <private_ip:port;lr=on>

If user B sees the first Record-Route header, it remembers port=5060 for future requests.
I cannot manually set the port in the config file since it depends on which port user B is registered, which I don't have a way to find it.

RA



On Mon, Jan 16, 2012 at 15:51, Andrew Pogrebennyk <apogrebennyk@sipwise.com> wrote:
Hi,

On 01/16/2012 03:41 PM, Reda Aouad wrote:
> I suggest that the function record_route( ) takes a public IP address as
> a parameter, still doing what it does (correct record routing and cookie
> addition did=xxx and loose route lr=on), but only replacing the private
> IP address on which Kamailio listens with a public IP address. Or that
> the record_route( ) function uses the advertised_address to construct
> the RR header.

maybe you are looking for the function record_route_advertised_address()
which is available in git master:
http://web.archiveorange.com/archive/v/jZFTGE0yjPqCTTcAkzuf

_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users