2010/3/4 Iñaki Baz Castillo ibc@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.