< Previous by Date Date Index Next by Date >
< Previous in Thread Thread Index  

Re: [reSIProcate] SipStack process CANCEL problem!


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@xxxxxxxxxxx
2007-05-31
_______________________________________________
resiprocate-devel mailing list
resiprocate-devel@xxxxxxxxxxxxxxxxxxxx
https://list.resiprocate.org/mailman/listinfo/resiprocate-devel

Attachment: smime.p7s
Description: S/MIME cryptographic signature