[Kamailio-Users] fr_inv_timer not honored (fr_inv_timer/2 is used in fact)
Iñaki Baz Castillo
ibc at aliax.net
Thu Mar 25 15:29:48 CET 2010
2010/3/25 Juha Heinanen <jh at tutpro.com>:
> I aki Baz Castillo writes:
>
> > As I said (kamailio 1.5.4) I set "fr_inv_timer=200" for TM module and
> > use LCR for serial forking (failover). I also do failover is no final
> > reply is received from the first gateway, however I do not manually
> > override fr_inv_timer, neither using LCR AVP's (as
> > $avp(FR_TIMER_AVP)).
>
> in k 1.5 config, i have
>
> modparam("tm", "fr_inv_timer", INVITE_TIMEOUT)
> modparam("tm", "fr_timer_avp", "$avp(FR_TIMER_AVP)")
>
> where INVITE_TIMEOUT is something like 120.
>
> then after calling next_gw() and before calling t_relay(), i set
>
> $avp(FR_TIMER_AVP) = GW_TIMEOUT;
>
> where GW_TIMEOUT is a small constant. i do not do anything in the
> script to fr_inv_timer. that simply tells the total time how long the
> process can last. it makes no sense for the proxy to try longer than
> something like 120 sec, because UACs usually timeout anyway if you
> increase the time much longer.
I've a UAC waiting for a ringing call "forever" (the typicall
callcenter in which calls are made by a not properly configured
dialer).
> > There are two gateways in lcr/gw tables and TM raises timout after 100
> > seconds if no final reply was received by the first contacted gateway,
> > and later after 100 seconds again if no final reply was received from
> > gateway-2.
>
> i don't understand why you would try the second gw, if you got for
> example ringing reply from the first one.
That's true, I should decite to stop the call (reply 408) or leave it
ringing by the same gateway (so I would need to increase the
fr_inv_timer for such branch). However this doesn't explain the bug
I'm reporting :)
> > This is not what it happens in my case, as the total time is
> > "fr_inv_timer" and such time is divided by the number of serial
> > forking it *could* occur. IMHO just the LCR module knows such
> > information, retrieved during "load_gateways()" function.
>
> lcr module gw functions do not do anything to any timer.
But how is possible that the effective fr_inv_timer per branch is
exactly divided by the number of gateways loaded after load_gatways()
?
How could the TM module do something like this?
NOTE: I'havent tryied with 3 or more gateways. Perhaps TM module is
dividing the fr_inv_timer by 2 due to some other reason...
--
Iñaki Baz Castillo
<ibc at aliax.net>
More information about the sr-users
mailing list