change T_fr_in_timeout

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

change T_fr_in_timeout

bluerain
Ok, so hopefully I get some help in this forum, I'm trying to get a faster PDD by going down the LCR list faster.  I'm trying to use the fr_inv_timeout to skip the carrier that has slow PDD.  So I did the code below so that if I don't get a 180/183 after invite within 5 second, I will terminate the call and go to the next carrier.  But if they do give 180/183 after invite within 5 second, I want to change T_fr_inv to 60 seconds so have enough time for far end user to pick up the call.  But I ran into 2 problem:

1. 180/183 seems is NOT picking up inthe onreply_route.  I did a log and it seems on 180/183 it never went into the code where I wanted to, so is this is WRONG place to detect 180/183?

2. I also try to display the value of $T_fr_inv_timeout in onreply_route section of the code, but it always show "ZERO"?

Anyway, any  pointer will be greatly appreciated.  Thank you!

loadmodule "tm.so"
modparam("tm", "fr_timeout", 5)
modparam("tm", "fr_inv_timeout", 5)
modparam("tm", "restart_fr_on_each_reply", 0)
modparam("tm", "onreply_avp_mode", 1)

onreply_route {
        if (t_check_status("(180)|(183)")) {
                $T_fr_inv_timeout = 60;
        }
}
Reply | Threaded
Open this post in threaded view
|

Re: change T_fr_in_timeout

Razvan Crainea-3
Hello!
The problem is that you are doing your logic in the onreply_route, which
is not transaction aware. You should move the logic in a name onreply
route that you engage in your main route. Something like:

route {
     ...
     if (is_method("INVITE"))
         t_on_reply(handle_timer);
     ...
}

onreply_route[handle_timer] {
     if (t_check_status("(180)|(183)"))
          $T_fr_inv_timeout = 60;
}

Hope this is a right pointer to solve your problem.

Best regards,

Răzvan Crainea
OpenSIPS Solutions
www.opensips-solutions.com

On 01/12/2017 04:40 PM, bluerain via Users wrote:

> Ok, so hopefully I get some help in this forum, I'm trying to get a faster
> PDD by going down the LCR list faster.  I'm trying to use the fr_inv_timeout
> to skip the carrier that has slow PDD.  So I did the code below so that if I
> don't get a 180/183 after invite within 5 second, I will terminate the call
> and go to the next carrier.  But if they do give 180/183 after invite within
> 5 second, I want to change T_fr_inv to 60 seconds so have enough time for
> far end user to pick up the call.  But I ran into 2 problem:
>
> 1. 180/183 seems is NOT picking up inthe onreply_route.  I did a log and it
> seems on 180/183 it never went into the code where I wanted to, so is this
> is WRONG place to detect 180/183?
>
> 2. I also try to display the value of $T_fr_inv_timeout in onreply_route
> section of the code, but it always show "ZERO"?
>
> Anyway, any  pointer will be greatly appreciated.  Thank you!
>
> loadmodule "tm.so"
> modparam("tm", "fr_timeout", 5)
> modparam("tm", "fr_inv_timeout", 5)
> modparam("tm", "restart_fr_on_each_reply", 0)
> modparam("tm", "onreply_avp_mode", 1)
>
> onreply_route {
>          if (t_check_status("(180)|(183)")) {
>                  $T_fr_inv_timeout = 60;
>          }
> }
>
>
>
> --
> View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/change-T-fr-in-timeout-tp7605536.html
> Sent from the OpenSIPS - Users mailing list archive at Nabble.com.
>
> _______________________________________________
> Users mailing list
> [hidden email]
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: change T_fr_in_timeout

bluerain
thank you!  I'll give that a shot!