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

Re: [reSIProcate] Sending CANCEL to Callee has Transaction Error - (TIdnot found)


There are many reasons it is dangerous to be re-using your appdialogset for 2 different dialogsets, one of which it that dum controls the lifetime of these objects (unless you override AppDialogSet::destroy).   Appdialogsets are only designed to be assigned to one Dialogset.

 

More comments inline…

 

Scott

 

From: resiprocate-devel-bounces@xxxxxxxxxxxxxxxxxxxx [mailto:resiprocate-devel-bounces@xxxxxxxxxxxxxxxxxxxx] On Behalf Of Pawan N
Sent: Tuesday, January 23, 2007 8:47 AM
To: resiprocate-devel@xxxxxxxxxxxxxxxxxxxx
Subject: [reSIProcate] Sending CANCEL to Callee has Transaction Error - (TIdnot found)

 

I've a B2BUA application which receives an Invite (generates AppDialogSet)
and sends invite to callee (uses same mSampleAppData..)

So both the legs have same AppdialogSet's AppData...

 

Now when caller sends a CANCEL, a new CANCEL is generated using Callee's INVITE..
But now Transaction for this internal sip message is not found, and a 481 is generated... How is this possible..Is the caller's CANCEL (same AppData) destroying the callee transaction data..

 

 

[Scott] Despite my warning above – I don’t think this is what is happening here.  The problem is at the stack level.  How do you generate the cancel?  You should be using AppDialogSet::end() (but this is clearly hairy given the way you use AppDialogSets ) or DialogUsageManager::end().

 

Surprisingly it doesn't happen always... Sometimes it happens this way..

Also when I use SendBye() instead of CANCEL, everything works fine...

Can BYE be used anywhere during the call-session.. (I'm asking specifically before receiving 200 OK)

 

[Scott] You can only send a bye if you have a dialog – ie. have received a provisional response containing a to tag.  Otherwise you must send a CANCEL.  CANCEL cancels the entire invite request.  BYE only terminates one leg of the invite (it might fork).

 

My logs error and  sip messages are as under -

 

The error in Log says something like -

 

DEBUG | 20070123-162310.763 | b2bua | RESIP:TRANSPORT | 904 | Transport.cxx:209 | Adding message to tx buffer to: [ V4 180.144.128.1:5060 UDP target domain=unspecified received on: Transport: [ V4 0.0.0.0:5060 UDP target domain=unspecified connectionId=0 ] connectionId=0 ]
STACK | 20070123-162310.763 | b2bua | RESIP:TRANSACTION | 904 | TransactionState.cxx:296 | No matching transaction for SipReq:  CANCEL b2bua-9011@xxxxxxxxxxxxx:5060 tid=104e19061e3a343a cseq=CANCEL / 1 from(tu)
INFO | 20070123-162310.763 | b2bua | RESIP:TRANSACTION | 904 | TransactionState.cxx:417 | No matching INVITE for incoming (from TU) CANCEL to uac
DEBUG | 20070123-162310.763 | b2bua | RESIP | 904 | Helper.cxx:302 | Helper::makeResponse(SipReq:  CANCEL b2bua-9011@xxxxxxxxxxxxx:5060 tid=104e19061e3a343a cseq=CANCEL / 1 from(tu) code=481 reason=
DEBUG | 20070123-162310.763 | b2bua | RESIP:TRANSACTION | 904 | TransactionState.cxx:1721 | Send to TU: TU: DialogUsageManager size=0 SIP/2.0 481 Call/Transaction Does Not ExistVia: SIP/2.0/
.
.
.

CALLEE's MSG  =
msg=INVITE  (trn-id = 104e19061e3a343a)

INVITE sip:b2bua-9011@xxxxxxxxxxxxx:5060 SIP/2.0
Via: SIP/2.0/ ;branch=z9hG4bK-d87543-104e19061e3a343a-1--d87543-;rport
Max-Forwards: 70
Contact: <sip:b2bua@xxxxxxxxxxxxxx>
To: <sip:9011@xxxxxxxxxxxxx:5060>
From: <sip:8004@xxxxxxxxxxxxx:5060>;tag=592d3733
Call-ID: MmMxZTdlMTEzZjU5YmZkZmNlODVkMzg3NWY1NzVmODE.
CSeq: 1 INVITE
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, INVITE
Content-Type: application/sdp
Content-Length: 339
sdp......

 

and the

CANCEL MSG =

CANCEL sip:b2bua-9011@xxxxxxxxxxxxx:5060 SIP/2.0
Via: SIP/2.0/ ;branch=z9hG4bK-d87543-104e19061e3a343a-1--d87543-;rport
To: <sip:9011@xxxxxxxxxxxxx:5060>
From: <sip:8004@xxxxxxxxxxxxx:5060>;tag=592d3733
Call-ID: MmMxZTdlMTEzZjU5YmZkZmNlODVkMzg3NWY1NzVmODE.
CSeq: 1 CANCEL
Content-Length: 0

 

 

Regards,

 

Pawan...

 

 


Everyone is raving about the all-new Yahoo! Mail beta.