Ok. So here is my proposal as new documentation.
fr_timer
Provisional or final response timeout (in milliseconds).
The meaning of this timer depends on the current processed request. For
all forwarded requests except INVITE (and of course ACK), this parameter
defines how long it will be waited for a final reply until the
transaction gets marked as "timeout". For INVITE transactions, the
parameter defines how long it will be waited for a provisional response
until "timeout". In case of INVITE, the parameter fr_inv_timer will be
used as final response timeout.
Further, for failed INVITE transactions, this time defines how long the
final reply should be retransmitted to the caller while waiting for the ACK.
If this timer fires, either 408 is sent back to the caller, or
processing is continued in a failure route if such one was activated
with t_on_failure(). In failure route you can use t_is_canceled() to
find out if failure route is executed due to a timeout.
fr_inv_timer
Final response timeout for INVITE requests (in milliseconds).
In case of INVITE transactions, this timer defines how long to wait for
a final response until "timeout". For all other requests, this parameter
is ignored. To configure the provisional response timeout see fr_timer.
Note: this timer can be restarted when a provisional response is
received. For more details see restart_fr_on_each_reply.
Which means
that the callee has to send a prov. response (e.g. 100
trying) within 2 seconds, to achieve fast failover.
I think here you mean: to avoid fast failover.
No, I meant "fast failover". E.g. you forward to a gateway. If the
gateway is down (no 100 trying response), I want to detect this very
fast and forward the call to another gateway. Thus, I set fr_timer to
1-2 seconds for INVITE transactions.
Further, I also reduce the timer for calls to user. Usually if you can
not reach a client within a few seconds, there is low chance to contact
him at all - thus, no need to try it for 32 seconds. This way, I
redirect the caller "faster" to the callee's voicebox.
If needed in a future version we could switch to
fr_timer (non-INV and
neg ACK wait), fr_inv_timer1 (wait for first INVITE reply),
fr_inv_timer2 (after provisional reply).
That would make sense.
regards
klaus