[Users] failure route problem

Klaus Darilion klaus.mailinglists at pernau.at
Wed Aug 24 13:50:55 CEST 2005


I do not understand the whole scheme of codes and UAS codes, and local 
generated responses vs. received responses.

I think it should be simple like:
1. if CANCEL is received, mark the corresponding transaction as 
"canceled by caller"
2. allow to check if a transcation is "canceled by caller"

regards
klaus

Bogdan-Andrei Iancu wrote:
> Hi Klaus, Hi Juha,
> 
> I agree with Juha - failure route must catch all negative replies 
> disregarding its cause; also "487" is RFC compliant for cancelled 
> INVITEs, so we should stick to it.
> 
> secondly, I also see your problem and I agree that somehow, the admin 
> must have the possibility (via scripting) to deal with it.
> 
> I suggested a solution in a previous email (like t_check_status to be 
> able to check also the UAC codes and not only the UAS)... but no opinion 
> on this.....
> 
> regards,
> bogdan
> 
> 
> Klaus Darilion wrote:
> 
>> Hi Juha!
>>
>>
>> Juha Heinanen wrote:
>>
>>> Klaus Darilion writes:
>>>
>>>  > 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.
>>>
>>> i don't like these kind of exceptions.  a failure route will be
>>> definition be called if failure response is received.  i have in my
>>> failure route test
>>>
>>>     if (t_check_status("487")) {
>>>         return;
>>>     };
>>
>>
>>
>> This is also what I do at the moment.
>>
>>> which makes 487 a no-op and i don't have experienced any problems with
>>> it.
>>
>>
>>
>> imagine a parallel forked call: one phone is busy (486), the other 
>> phone is ringing.
>>
>> If the caller cancels the call, the status is 486, thus 
>> t_check_status("487") won't match and you send a canceled call to the 
>> voicebox :-(
>>
>>>  > 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.
>>>
>>> coping with all kinds of broken clients in the proxy makes life very
>>> complicated.
>>>
>>> whatever you decide to do make sure it is backwards compatible with
>>> current behavior, i.e., introduce a new module option or something.
>>> this is very dedicated stuff and i don't want to get into a position
>>> where i need to re-test my ser.cfg.
>>
>>
>>
>> ACK. Maybe we could introduce a new function which allows to test if 
>> the called canceled the call.
>>
>> regards
>> klaus
>>
> 
> 





More information about the Users mailing list