[reSIProcate] SipStack process CANCEL problem!
Byron Campen
bcampen at estacado.net
Thu May 31 08:33:04 CDT 2007
Hmm. I see what you mean. I don't think it would be too hard to
forge a TransactionTerminated message for the CANCEL. Anyone have
thoughts on this?
Best regards,
Byron Campen
> resiprocate-devel,你好
>
> When TU send an INVITE to external,then TU send CANCEL to
> external ,but TransationState not received 1xx,
> the stack process the CANCEL,and return INVITE 487, delete the
> ClientTransaction,and ;
> The stack don't terminateClientTransaction and create a
> TransactionTerminated Message to TU!
> Is it a bug ?
>
> The source Code in TransactionState.cxx:
>
> TransactionState* matchingInvite =
> controller.mClientTransactionMap.find(sip->getTransactionId());
> if (matchingInvite == 0)
> {
> InfoLog (<< "No matching INVITE for incoming
> (from TU) CANCEL to uac");
> TransactionState::sendToTU(tu, controller,
> Helper::makeResponse(*sip,481));
> delete sip;
> }
> else if (matchingInvite->mState == Calling) //
> CANCEL before 1xx received
> {
> WarningLog(<< "You can't CANCEL a request until a
> provisional has been received");
> StackLog (<< *matchingInvite);
> StackLog (<< *sip);
>
> // if no INVITE had been sent out yet. -- i.e.
> dns result not
> // processed yet
>
> // The CANCEL was received before the INVITE was
> sent
> // This can happen in odd cases. Too common to
> assert.
> // Be graceful.
> TransactionState::sendToTU(tu, controller,
> Helper::makeResponse(*sip, 200));
> matchingInvite->sendToTU(Helper::makeResponse
> (*matchingInvite->mMsgToRetransmit, 487));
>
> delete matchingInvite;
> delete sip;
>
> }
>
>
> fancy_xiao,fancy_xiao at astrocom.cn
> 2007-05-31
> _______________________________________________
> resiprocate-devel mailing list
> resiprocate-devel at list.resiprocate.org
> https://list.resiprocate.org/mailman/listinfo/resiprocate-devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2423 bytes
Desc: not available
URL: <http://list.resiprocate.org/pipermail/resiprocate-devel/attachments/20070531/0a18ea48/attachment.bin>
More information about the resiprocate-devel
mailing list