[reSIProcate] Question about TimerE1 in ClientNonInvite and TimerA in ClientInvite.

yuhuicai yuhuicai at vip.163.com
Sat Jul 24 08:06:55 CDT 2004


I found the TimerE1 and TimerA that control the retransmittion of request weren't created in related transactions. Is there there any thoughts about it? I believe these two Timer should be created while in Trying state both in ClientNonInvite and ClientInvite according to RFC3261:

1 processClientNonInvite function
void TransactionState::processClientNonInvite(  Message* msg )
{ 
   StackLog (<< "TransactionState::processClientNonInvite: " << msg->brief());

   assert(!isInvite(msg));

   if (isRequest(msg) && isFromTU(msg))
   {
      //StackLog (<< "received new non-invite request");
      SipMessage* sip = dynamic_cast<SipMessage*>(msg);
	  if (mMsgToRetransmit) delete mMsgToRetransmit;
      mMsgToRetransmit = sip;
	  //----------added by yuhuicai------------
      if (!mIsReliable)
      {
            mController.mTimers.add(Timer::TimerE1, mId, Timer::T1 );
      }
	  //-----------------------------
      mController.mTimers.add(Timer::TimerF, mId, Timer::TF);
      sendToWire(sip);  // don't delete





2 processClientInvite funcyion.
void TransactionState::processClientInvite(  Message* msg )
{
   StackLog(<< "TransactionState::processClientInvite: " << msg->brief() << " " << *this);
   if (isRequest(msg) && isFromTU(msg))
   {
      SipMessage* sip = dynamic_cast<SipMessage*>(msg);
      switch (sip->header(h_RequestLine).getMethod())
      {
         // Received INVITE request from TU="Transaction User", Start Timer B which controls
         // transaction timeouts. 
         case INVITE:
            delete mMsgToRetransmit; 
            mMsgToRetransmit = sip;
			//------------added by yuhuicai-----------------
			mController.mTimers.add(Timer::TimerA, mId, Timer::T1);
			//--------------------------------
            mController.mTimers.add(Timer::TimerB, mId, Timer::TB );
            sendToWire(msg); // don't delete msg
            break;






More information about the resiprocate-devel mailing list