Hello,

you should use $fti and $tti only after loose_route().

If used before, it doesn't find the proper Route header and assumes
downstream. The issue actually is the fact that there is some caching
done in this case, to avoid doing same processing many times for same
sip message. So getting again $fti or $tti after loose route doesn't
change anymore the values computed before loose route.

I guess it needs more clarifications in the docs.

Also, record_route() for requests within dialog can take the tag from
callee, if the re-invite comes from that side.

Cheers,
Daniel


On 13/07/16 22:19, Nathan Angelacos wrote:
> I'm  missing something obvious here, throwing this out to get a couple
> extra sets of eyeballs on it.
>
> I can't get rr modules is_direction() or the $fti / $tti pv's to work
> in 4.3.x or 4.4.x
>
> Relevant parts of the config:
>
>
> loadmodule "rr.so"
>         modparam ("rr", "enable_full_lr", 1)
>         modparam ("rr", "append_fromtag", 1)
>
>
> ...
>
> route
> {
>
>   xlog ("L_INFO", "$rm: $fu -> $ru");
>
>   record_route ();
>
>   if (has_totag ())
>     {
>       xlog ("L_INFO", "Before Loose route: fti: $fti  tti: $tti  ci:
> $ci");
>       if (loose_route ())
>         {
>           if (is_direction ("downstream"))
>             {
>               xlog ("L_INFO", "in-dialog $rm request from caller to
> callee");
>             }
>           else
>             {
>               xlog ("L_INFO", "in-dialog $rm request from callee to
> caller");
> }
>           xlog ("L_INFO",  "After Loose route:  fti: $fti  tti: $tti 
> ci: $ci");
>         }
> }
>
>   if (! t_relay ())
>     {
>       sl_reply_error ();
>     }
> }
>
>
> ----
>
> Bob and Alice are hard phones, with kamailio + dbaliases in the middle.
>
> Alice calls Bob, then Bob (the callee) sends the BYE
>
> ----
>
> Syslog:
>
> 01. INVITE: sip:al...@kamailio.org -> sip:b...@kamailio.org:5060
> 02. Alias lookup returned <sip:b...@biloxi.com> , sending on
> 03. ACK: sip:al...@kamailio.org -> sip:b...@biloxi.com
> 04. Before Loose route: fti: 707601862  tti: 45686ADF-10AAEB28  ci:
> 8744...@atlanta.com
> 05. in-dialog ACK request from caller to callee
> 06. After Loose route:  fti: 707601862  tti: 45686ADF-10AAEB28  ci:
> 8744...@atlanta.com
> 07. BYE: sip:b...@kamailio.org -> sip:al...@atlanta.com:5066
> 08. Before Loose route: fti: 45686ADF-10AAEB28  tti: 707601862  ci:
> 8744...@atlanta.com
> 09. in-dialog BYE request from caller to callee
> 10. After Loose route:  fti: 45686ADF-10AAEB28  tti: 707601862  ci:
> 8744...@atlanta.com
>
> Using the above config, is_direction always returns "caller", even
> when bob is sending the message.  Looking at a packet capture:
>
> 01. Kamailio Sent:  Record-Route: <sip:kamailio.org;lr=on;ftag=707601862>
>
> <on the 200 ok from Bob>
>       Kamailio Received: Record-Route:
> <sip:kamailio.org;lr=on;ftag=707601862>
>       Kamailio Sent: Record-Route:
> <sip:kamailio.org;lr=on;ftag=707601862>
>
> 07. Kamailio Received:  Route: <sip:kamailio.org;lr=on;ftag=707601862>
>       Kamailio Sent: Record-Route:
> <sip:kamailio.org;lr=on;ftag=45686ADF-10AAEB28>
>
> I expect $fti to be wrong before the loose_route (line 08); but lines
> 09 and 10 are wrong.
>
> I'm obviously missing something trivial here.   Any ideas what I
> should check next?
>
> Thanks!
>
>
>
>
> _______________________________________________
> 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

-- 
Daniel-Constantin Mierla
http://www.asipto.com - http://www.kamailio.org
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda


_______________________________________________
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

Reply via email to