[SR-Users] Wrong Record-Route and Via header fields when TCP is used

Leonid Fainshtein leonid.fainshtein at xorcom.com
Thu Jul 4 17:20:33 CEST 2019


Hi,
Kamailio server has two legs that are connected to different networks.
I'm using Kamailio v.5.2.3 and the "enable_double_rr" is implicitly set to "1".
The leg "A" IP address is 10.159.65.1
The leg "B" IP address is 192.168.0.31
The call is initiated from 10.159.65.18

According to the "rr" module documentation, function record_route()
should insert two "Record_Route" header fields when a request is
accepted on one leg is should go out via the second leg. This works as
expected in case of UDP protocol:

INVITE sip:2000 at 192.168.6.106:5460;transport=UDP SIP/2.0
Record-Route: <sip:192.168.0.31;r2=on;lr;did=e2c.a191>
Record-Route: <sip:10.159.65.1;r2=on;lr;did=e2c.a191>
Via: SIP/2.0/UDP
192.168.0.31;branch=z9hG4bKcfa5.d64ecbd87d5315b5993c4ccf16f86537.0
Via: SIP/2.0/UDP 10.159.65.18:5060;rport=5060;branch=z9hG4bK3a9e9a4d

But when the TCP protocol is used then the outbound message looks like this:

INVITE sip:2005 at 192.168.0.178:35058;transport=tcp SIP/2.0
Record-Route: <sip:10.159.65.1;transport=tcp;lr;did=bb6.7dc1>
Via: SIP/2.0/TCP
10.159.65.1;branch=z9hG4bKc85a.14afc3867dd3220826f9b9940f78168f.0;i=3
Via: SIP/2.0/TCP 10.159.65.18:5060;rport=58616;branch=z9hG4bK1469331f

There are two problems there:
a) only one Record-Route with leg is inserted
b) the added "Via" header field contains the leg "A" IP address
instead of expected leg "B" IP address (192.168.0.31). In the LAN
trace I see that in reality the message was sent from leg "B".

Is it a bug?

Best regards,
Leonid Fainshtein



More information about the sr-users mailing list