[OpenSIPS-Users] PDD

Bogdan-Andrei Iancu bogdan at voice-system.ro
Thu Jun 11 17:04:14 CEST 2009


ok :)

so, do something like:

enable restart_fr_on_each_reply and onreply_avp_mode (see 
http://www.opensips.org/html/docs/modules/1.5.x/tm.html#id271347)

before sending out the INVITE, set $avp(fr_timer) =2  (see 
http://www.opensips.org/html/docs/modules/1.5.x/tm.html#id271112) , so 
that if no reply is coming in 2 secs, timeout will fire.

in onreply_route, when receiving 100, set $avp(fr_inv_timer) =5; the 
timer will be reset and the new val used.


in onreply_route, when receiving 18x, set $avp(fr_inv_timer) =200; the 
timer will be reset and the new val used.


never tried this, to be honest :D...

Regards,
Bogdan

Brett Nemeroff wrote:
> Ok, let me try this a different way because I think I may be spreading 
> my confusion. :)
>
> The behavior I'm looking for is:
> INVITE goes to carrier.
> 100 Trying  MUST come back in 2 seconds
> THEN
> 18X MUST come back in 5 seconds else FAIL
> THEN
> Allow ringing for 200 seconds
>
> from what you've described, it sounds like I can't have the 2 seconds 
> and 5 seconds be different numbers (static tm module param fr_timer). 
> But even now.. I have fr_timer set to 5 and it's perfectly happy 
> waiting 20 seconds between 100 and 180. Why does it not time out there?
>
> Thanks!
> -Brett
>
>
>
> On Thu, Jun 11, 2009 at 9:44 AM, Bogdan-Andrei Iancu 
> <bogdan at voice-system.ro <mailto:bogdan at voice-system.ro>> wrote:
>
>     Brett,
>
>     first of all you cannot reset the timers manually from script -
>     the timers handling is automatically done by TM, totally
>     transparent for the script.
>
>     second, the restart_fr_on_each_reply controls the fr_inv_timer.
>
>
>     Brett Nemeroff wrote:
>
>         Ok, so at first I was thinking.. what I need to do is set the
>         fr_inv_timer to something like 10 seconds. But then in the
>         on_reply route, check for a 18X reset the fr_inv_timer to like
>         200 seconds to allow the call to ring.
>
>         I'm pretty confused now.. I thought the fr_timer was the timer
>         to get a provisional reply. so as soon as you get a 100 the
>         timer isn't used anymore. This option suggests that if you set
>         restart_fr_on_each_reply to 1, then after you get a 100
>         Trying, then it will allow for fr_timer seconds again before
>         timing out. Is that right? This of course, leads me to my next
>         question, the documentation says that by default it does this,
>         but I'm certainly not seeing this behavior.
>
>     maybe the the 100 + 180 where too fast and close to INVITE, and no
>     other reply before 200 OK, so "visibly" effect of a restart....
>
>
>         let me make sure I have this clear please:
>         fr_timer = time from trigger (request) to ANY reply. The
>         trigger point depends on the restart_fr_on_each_reply setting.
>         If off, it's just from the request. If on, each provisional
>         reply will cause the timer to be reinvoked, else it would have
>         been ignored. In other words if fr_timer = 5 seconds and I get
>         a 100 Trying after 500ms, and then the 183 Ringing occurs 8
>         seconds later, the only way the timer would be tripped is if I
>         set reset_fr_on_each_reply=1?
>
>         fr_inv_timer = the max amount of time between an initial
>         request and a positive final reply (2XX)
>
>
>     as said , the restart_fr_on_each_reply controls the fr_inv_timer.
>     NOTE that setting a new avp for fr_inv_timer in onreply_route (set
>     the usage of AVPs in onreply_route) will update the value of the
>     timer !! interesting ;).
>
>
>         How mixed up am I? And is restart_fr_timer_on_each_reply
>         really default to 1?
>
>     yes :)
>
>         and if so, why does it not work how I expect? (ie: now, as
>         long as I get the 100 Trying in 5 secs (fr_timer) the 18X
>         could come 20 seconds later and everything is happy (but me).
>
>     not sure I get the scenario.....
>
>     Regards,
>     Bogdan
>
>
>         Thanks!
>         -Brett
>
>
>
>
>
>         On Thu, Jun 11, 2009 at 3:14 AM, Bogdan-Andrei Iancu
>         <bogdan at voice-system.ro <mailto:bogdan at voice-system.ro>
>         <mailto:bogdan at voice-system.ro
>         <mailto:bogdan at voice-system.ro>>> wrote:
>
>            Hi Brett,
>
>            The relevant timer are:
>              - A - timeout at transport level, if no reply comes back
>              - B - timeout at transaction level, if the transaction
>         did not
>            completed (no final response received)
>
>            What may help you is the fact that the B timer may be reset
>         after
>            each provisional reply. see:
>                
>         http://www.opensips.org/html/docs/modules/1.5.x/tm.html#id271074
>
>            Regards,
>            Bogdan
>
>            Brett Nemeroff wrote:
>
>                All,
>                Is there a tm timer for pdd?
>                What I want is to timeout between a 100 and a 18X
>         reply.. so
>                if I get a 100 and say more than 6000ms elapses without
>                another provisional reply, proceed to failure route.
>
>                I don't see a way to do this now without fr_inv_timer which
>                effectively is the "ring timer" as far as I understand.
>         which
>                isn't quite right (timer from 1XX to >=200?)
>
>                Thanks,
>                Brett
>
>
>              
>          ------------------------------------------------------------------------
>
>                _______________________________________________
>                Users mailing list
>                Users at lists.opensips.org
>         <mailto:Users at lists.opensips.org>
>         <mailto:Users at lists.opensips.org
>         <mailto:Users at lists.opensips.org>>
>
>                http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>                
>
>
>
>




More information about the Users mailing list