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

Re: [reSIProcate-users] Get assertion when end an invite session


There was some discussion about this a few weeks back:

http://list.resiprocate.org/archive/resiprocate-devel/msg06204.html

 

The assert has been removed from SVN head – so you can either update your code to this – or remove the assert from your local copy.

 

Scott

 

From: resiprocate-users-bounces@xxxxxxxxxxxxxxx [mailto:resiprocate-users-bounces@xxxxxxxxxxxxxxx] On Behalf Of ???
Sent: Thursday, November 15, 2007 11:04 PM
To: resiprocate-users@xxxxxxxxxxxxxxx
Subject: [reSIProcate-users] Get assertion when end an invite session

 

Hi, Scott:

I define a class inherited from AppDialogSetand called end() function of the class when I want to end an invite session in my application.

         It will get an assertion sometimes.

 

Code:

 

void

ClientInviteSession::end(EndReason reason)

{

   InfoLog (<< toData(mState) << ": end");

   if (mEndReason == NotSpecified)

   {

      mEndReason = reason;  

   }

 

   switch(mState)

   {

      case UAC_Early:

      case UAC_EarlyWithOffer:

      case UAC_EarlyWithAnswer:

      case UAC_Answered:

      case UAC_SentUpdateEarly:

      case UAC_ReceivedUpdateEarly:

      case UAC_SentAnswer:

      case UAC_QueuedUpdate:

      case UAC_Cancelled: // !jf! possibly incorrect to always BYE in UAC_Cancelled

      {

         sendBye();

         transition(Terminated);

         mDum.mInviteSessionHandler->onTerminated(getSessionHandle(), InviteSessionHandler::Ended);

         break;

      }

 

      case UAC_Start:

         WarningLog (<< "Try to end when in state=" << toData(mState));

         assert(0);

         break;

 

      case Terminated:

         assert(0);

         break;

 

      default:

         InviteSession::end(reason);

         break;

   }

}

         Does it matter in release version? How can I end an invite session properly?

 

Thanks

Haitao Xu