Hi Klaus,
maybe adding to t_check_status() a second parameter to tell the check
scheme:
UAS reply code (code to be fwd to UAC, the min one)
UAC reply code (branch codes) - last received;
- any of them
comments?
regards,
bogdan
Klaus Darilion wrote:
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
_______________________________________________
Users mailing list
Users(a)openser.org
http://openser.org/cgi-bin/mailman/listinfo/users