[Serdev] Re: Handling of early CANCELs - was Re: [Serusers] SER Nokia CANCEL Problem

Klaus Darilion klaus.mailinglists at pernau.at
Mon Mar 12 11:49:04 CET 2007


Bogdan Pintea wrote:
> Hi,
> 
> Klaus Darilion wrote:
>> FYI: This is the pragmatic approach how openser users handle the problem:
>>
>> 1. drop the CANCEL if there is no corresponding INVITE transaction.
> 
> Why not politely return an error?

Because an error reply does not trigger a retransmission.
> 
>> The UAC must retransmit the CANCEL and meanwhile there should be the 
>> INVITE transaction. (since 1.0)
> 
> Wouldn't it be easier to only provisionally reply after the transaction 
> is already created (="visible" also from the other processes)?

In case of openser we need a retransmission, thus the CANCEL is dropped. 
Probably with Ottendorf, which "remembers" the CANCEL, it should work.

>>
>> if ( is_method("CANCEL") && !t_check_trans() ) {
>>   # CANCEL without matching INVITE transaction, ignore!
>>   # May happen if the INVITE is slower than the CANCEL.
>>   # Ignore the CANCEL, as the client will retransmit it, and maybe
>>   # the INVITE transaction is already created for the next CANCEL
>>   xlog("L_WARN","$ci CANCEL without matching transaction ... ignore\n");
>>   exit;
>> }
> 
> I guess the protocol might have to be checked, as well (at least to 
> reply with an error, rather than drop): for reliable transports you 
> won't see any retransmission and it seems that a client is allowed to 
> open a second connection for the CANCEL[*]; given the fact that INVITEs 
> usually go through multiple checks, the probability of a CANCEL being 
> run against the "transaction table" before the INVITE might not be that 
> low, after all (especially on loaded servers).

You are right - dropping the CANCEL which was received over a reliable 
transport is a bad idea - regardless if the same connection is used or 
the request comes in via a new connection. Thus my workaround only works 
with UDP.

regards
klaus

-- 
Klaus Darilion
nic.at




More information about the sr-users mailing list