Hi!
I have a problem with my failure route. In the failure route, I send the
call to voicemail, except the call is CANCELED by the caller:
failure_route[1] {
if(t_check_status("487")) {
xlog("L_INFO","caller cancelled call, no voicemail
needed...\n");
exit;
}
route(4); # route to voicemail
}
The problem is, when a call is forked and one of the destinations is
busy or has any other reasons to not accept the call.
/-------- <-486 phone1
/
caller ----------------- <-488 phone2
\
\-------- <-487 phone3
In the above case, phone1 and 2 immedately response with an error
message. Then several seconds later, the caller hangs up and now phone3
sends 487.
If I now check the status in the failure route it will be 486 (the
lowest one). Also any other algorithm (the highest one, the first one,
the last one) would be ambiguous. Thus, deciding if the call will be
sent to voicemail or not is not possible using t_check_status.
AFAIK there is no other method to check the status of the transaction in
the failure route. IMO this is an issue which should be solved.
I suggest setting the status explicitly to "487" if the transaction was
cancelled by the caller, independent of the resonse status received from
the phones.
regards
klaus