2010/3/25 Juha Heinanen <jh(a)tutpro.com>om>:
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(a)aliax.net>