[Devel] ask invite/cancel race condition issue again
Norman Brandinger
norm at goes.com
Fri Feb 23 19:17:52 CET 2007
Here is an example adapted from one of Klaus' postings. Thanks Klaus.
#------------------------------------------------------------------
# CANCEL without matching INVITE transaction, discard it
#------------------------------------------------------------------
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 next time the INVITE transaction is already created
xlog("L_NOTICE", "CANCEL without matching transaction discard.\n");
exit;
}
Regards,
Norm
Bogdan-Andrei Iancu wrote:
> Hi Di-Shi,
>
> yes, there is a solution for this - at the beginning of the script use
> t_check_tran() to see if the CANCEL does match an INVITE request. IF
> no, just silently discard it - this will force the UAC to retransmit
> the CANCEL until the proxy actually finished processing the INVITE
> (and build transaction for it).
>
> BTW, fo you have any input for bug 1592883 ?
>
> regards,
> bogdan
>
> Di-Shi Sun wrote:
>> Hi All,
>>
>> I met the INVITE/CANCEL race condition that had been disscussed long
>> ago in this maillist. The formal script of this issue like this:
>>
>> *the CANCEL arrives BEFORE the INVITE, or
>> *it arrives after but you are doing other high-cost processing steps
>> (i.e., DNS lookup (ENUM)) before calling t_relay which will lead to
>> process the CANCEL before creating the transaction.
>>
>> It said that this issue had been fixed. But I cannot find the
>> solution. Could anyone give me some suggestion?
>>
>> Thanks,
>>
>> Di-Shi Sun.
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> Devel mailing list
>> Devel at openser.org
>> http://openser.org/cgi-bin/mailman/listinfo/devel
>>
>
>
> _______________________________________________
> Devel mailing list
> Devel at openser.org
> http://openser.org/cgi-bin/mailman/listinfo/devel
>
>
More information about the Devel
mailing list