[Serusers] t_check_status() - why it is checking for winning reply in failure_routes?

Arek Bekiersz sip at perceval.net
Mon Sep 5 19:42:24 CEST 2005


Hello,


I used re-routing on various failure codes for a long time, using
t_on_failure() and t_check_status(). But until now I had only one
failure_route[] per situation.

Everything worked fine, until I have two or more failure_routes, one
after other. In example:

* in failure_route[2], I set t_on_failure("3")
* in failure route[3], I t_check_status() for various codes, like:

if( !( (t_check_status("408") && !(uri==myself) && isflagset(8)) ||
t_check_status("486") || t_check_status("487") || t_check_status("480")) ) {


Unfortunately, if failure_route[2] was entered because remote UA
responded "404" and in failure_route[2] another UA responded with "486",
I will be never able see this "486".

Status "404" will be reported as message status, making it impossible to
perform proper t_check_status checking in failure_route[3]. Reason is
because t_check_status() uses the status of the winning reply, i.e.
"404" in this example.

What is the solution to have conditional routing in next
failure_routes[] then ?


Plz help guys,
Thanks,

Arek





More information about the sr-users mailing list