Hi all, i was using kamailio 4.2.1 located in 2 networks
listen = tcp:MY_ADDR:5060 advertise MY_ADDR:5060
listen = tls:MY_ADDR:5061 advertise PUBLIC_NAT_ADDR:5061

when the call made from the inside network to out side, running `record_route()` resulted in 2 Record-Route headers added (enable_double_rr=1)

Record-Route: PUBLIC_NAT_ADDR:5061;transport=tls;lr
Record-Route: MY_ADDR;transport=tcp;lr

That was totally fine omitting the port in the first Record-Route when using tcp (or udp) on the first realm, but when i start switching to tls, it caused trouble

Record-Route: PUBLIC_NAT_ADDR:5061;transport=tls;lr
Record-Route: MY_ADDR;transport=tls;lr

The client is then told to send ACK/BYE to `MY_ADDR;transport=tls` located at `MY_ADDR:5061` as per rfc3263, then the call would failed.

I had another try with `record_route_preset("PUBLIC_NAT_ADDR:5061;transport=tls", "MY_ADDR:5060;transport=tls");`, it really did add what i want with explicit 5060 port on RR, `ACK/BYE` travel on the correct path, but `loose_route()` only consumes the local `Route` header (it should consume 2). So my assumption is to stick with `record_route()` function to make `loose_route()` work properly.

I tried using another port on the local realm, e.g: 5062 and the port is explicitly added to the Record-Route header `MY_ADDR:5062;transport=tls;lr`
So is `5060` couldn't be explicitly added to the inbound Record-Route, or i just missed something?

Any help will be appreciated.

P/S: I also tried 4.4.7 and it still omit my 5060 port in the RR.

rgds,
Loi Dang Thanh
Phone : +84. 774.735.448
Email : loi.dangthanh@gmail.com