Ovidiu Sas wrote:
Hi Klaus,
You can use the fr_timer from the tm module:
http://openser.org/docs/modules/1.1.x/tm.html#AEN108
If you don't get any reply from the far end, this timer will fire.
I recently had a look at the timer related source code and that is what
I wrote down:
- Each SIP transaction has a final response timer (FRT)
- SIP transactions fail (failure_route, status 408) when FRT fires
- TM module exposes final response timers (FRT) fr_timer and
fr_inv_timer (can be set using AVP)
- INVITE transactions: FRT initially equals fr_timer and gets set to
fr_inv_timer after receiving first provisional response
- setting fr_timer to a low value (e.g. 3s) allows for fast INVITE failover
So I'm setting fr_timer to a low value for local INVITE transactions.
Local here means sessions between endpoints from our network domain.
Something along the lines:
route[0] {
if (method==INVITE) {
# set fr_timer to 3 seconds
avp_write("i:3", "$avp(fr_timer)");
# call FAILURE_DEFAULT_RELAY routing block on transaction failure
t_on_failure("FAILURE_DEFAULT_RELAY");
t_relay();
exit;
}
}
failure_route[FAILURE_DEFAULT_RELAY] {
# status 408 ? transaction timed out
if (t_check_status("408")) {
# try next target
if (ds_next_domain()) {
t_relay();
}
}
}
- Christian
Regards,
Ovidiu Sas
On 12/18/06, Klaus Darilion <klaus.mailinglists(a)pernau.at> wrote:
Hi!
i wonder if there is a timer which controls the timeout for provisional
replies.
E.g. I want to cancel an INVITE and retry another gateway if the gateway
does not respond with 100 (or 180) in a certain time.
regards
klaus
--
Klaus Darilion
nic.at
_______________________________________________
Users mailing list
Users(a)openser.org
http://openser.org/cgi-bin/mailman/listinfo/users
_______________________________________________
Users mailing list
Users(a)openser.org
http://openser.org/cgi-bin/mailman/listinfo/users