[Users] failure route problem

Klaus Darilion klaus.mailinglists at pernau.at
Wed Aug 24 09:26:03 CEST 2005


Hi Bogdan!

I wonder if there is any reason at all, why a failure route will be 
executed in case of the caller cancels the call. Thus, another option 
would be to remove execution of the failure route if the caller cancels 
the call.

If we still want to execute the failure route, having the call canceled 
by the caller should be visible in a status variable, which is 
explicitly set by the caller action, not by any reply code from the 
clients. Imagine a broken client which sends 4xx instead of 487 for any 
reason. If this is the last response, the failure route again won't work 
if it checks for status 487.

regards
klaus

Bogdan-Andrei Iancu wrote:
> 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 at openser.org
>> http://openser.org/cgi-bin/mailman/listinfo/users
>>
> 
> 





More information about the sr-users mailing list