[SR-Users] RR module - Fail detecting strict routing

Antonio Reale ant.reale at gmail.com
Tue Jul 14 12:09:00 CEST 2015


Hi all,
I have the following  scenario:
U1 (caller) ---> P1 (192.168.0.245, kamailio 4.3, loose-router) ----> P2 
----> (192.168.0.101, strict router) ----> .... ----> U2 (called)

When U2 answers the call, at P1 arrives the 200 OK with:
Record-Route: 
<sip:0000000011 at 192.168.0.101;transport=udp;pgw-call=call-28d2e>
Record-Route: <sip:192.168.0.245;lr=on>

The problem is that the ACK from U1 is forwarded from kamailio to P2, as 
if P2 is a loose router. P2 drops the ACK message.

 From kamailio logs I see:
Jul 14 10:07:44 P1 /usr/sbin/kamailio[15908]: DEBUG: rr [loose.c:88]: 
is_preloaded(): is_preloaded: No
Jul 14 10:07:44 P1 /usr/sbin/kamailio[15908]: DEBUG: rr [loose.c:783]: 
after_loose(): Topmost route URI: 'sip:192.168.0.245;lr=on' is me
Jul 14 10:07:44 P1 /usr/sbin/kamailio[15908]: DEBUG: rr [loose.c:869]: 
after_loose(): URI to be processed: 
'sip:0000000011 at 192.168.0.101;transport=udp;pgw-call=call-289ce'
Jul 14 10:07:44 P1 /usr/sbin/kamailio[15908]: DEBUG: rr [loose.c:878]: 
after_loose(): Next URI is a loose router

Why after_loose function considers the next URI a loose router? The 
Route HF in the ACK with the URI of the next hop does not contain ;lr .
It seems that the function is_strict fails detecting the strict router.

Thanks.

Regards.

Antonio



More information about the sr-users mailing list