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

RE: [reSIProcate] DUM behaviour when no ACK received


You are right - it should send a BYE.  The refactored Invite session in the
teltel DUM branch works the way you would expect it to - sends a bye.  This
code should be merged with the head branch soon.  :)

Scott

-----Original Message-----
From: resiprocate-devel-bounces@xxxxxxxxxxxxxxxxxxx
[mailto:resiprocate-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of Brian
D'Souza
Sent: Monday, February 28, 2005 6:19 PM
To: resiprocate-devel@xxxxxxxxxxxxxxxxxxx
Subject: [reSIProcate] DUM behaviour when no ACK received

Hello all,

I'm not sure if this is a bug or not but I thought I would just point it
out.

After sending an OK to a initial Invite if an ACK is not received, DUM
provides the onAckNotReceived(...) callback. However, if the
InviteSession::end() method is called in this callback no BYE is sent
and the session is not destroyed.

To clear this up, I'm referring to the following code:

void InviteSession::dispatch(const DumTimeout& timeout)
{
 ......
 // BYE could be queued if end() is called when we are still waiting for
far end ACK to be received
 if (mQueuedBye)
 {
    ....
 }
 else
 {
   // if InviteSession::end() is called in the callback should a BYE not
be sent ? 
   mDum.mInviteSessionHandler->onAckNotReceived(getSessionHandle(),
it->second);
   // add this code to send the bye (and subsequently delete this
session)
   if (mQueuedBye)
   {
     mState = Terminated;
     mLastRequest = *mQueuedBye;
     delete mQueuedBye;
     mQueuedBye = 0;                        
     send(mLastRequest);
   }
 }
.....
}

Thanks,

Brian.

_______________________________________________
resiprocate-devel mailing list
resiprocate-devel@xxxxxxxxxxxxxxxxxxx
https://list.sipfoundry.org/mailman/listinfo/resiprocate-devel