[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 14:46:08 CET 2010


2010/3/4 Iñaki Baz Castillo <ibc at aliax.net>:
> El Jueves, 4 de Marzo de 2010, Juha Heinanen escribió:
>> lcr module does nothing to any timer nor does not explicitly refer to
>> any.
>
> Ok, so the issue must be in TM. I'll check it.

Hi, I couldn't yet try Juha's suggestion but I'm sure it must be a bug
in TM module.

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)).

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.

This obviously means that, in some way, "something" is dividing the
"fr_inv_timer" (200) by the number of LCR loaded gateways (so 408
occurs after 100 seconds). If I set "fr_inv_timer=300" then the 408
occurs after 150, this is => fr_inv_timer / 2.

There must be a bug somewhere as it doesn't honor the documentation of
TM module:

-------------------
1.4.26. fr_inv_timer_next (integer)
...
That can take up to the value of fr_inv_timer and this timer is
configured to two minutes by default. Hence, if you have three serial
branches then completing the transaction can take six minutes with
default timer values.
--------------------

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.


-- 
Iñaki Baz Castillo
<ibc at aliax.net>




More information about the sr-users mailing list