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

RE: [reSIProcate] Missed handling when caller hangup before recei ving ANY response


In the scenario you described the AppDialogSet should get destroyed by DUM
after 64T1 expires (~32 seconds after the Invite).  So I don't think your
change is needed.

Check out:
http://list.sipfoundry.org/archive/resiprocate-devel/msg01297.html


-----Original Message-----
From: kaiduan xie [mailto:kaiduanx@xxxxxxxx] 
Sent: Thursday, September 16, 2004 12:55 AM
To: resiprocate-devel@xxxxxxxxxxxxxxxxxxx
Subject: [reSIProcate] Missed handling when caller hangup before receiving
ANY response

Hi, all,

In the DialogSet::cancel(), the handling when caller
hangup before receiving ANY response, including 100 is
missed. Applicaiton call AppDialogSet::cancel() to
hangup.

void
DialogSet::cancel()
{   
   Destroyer::Guard guard(mDestroyer);
   mCancelled = true;
   if (mDialogs.empty())
   {
      if (mReceivedProvisional && getCreator())
      {
         //unify makeCancel w/ Dialog makeCancel,
verify both
         //exception to cancel UAS DialogSet?
         auto_ptr<SipMessage>
cancel(Helper::makeCancel(getCreator()->getLastRequest()));
        
         mDum.send(*cancel);
         guard.destroy();         
         return;         
      }
      else
      {
          // xkd-2004-9-15 to handle the case the user
hangup before receiving ANY response, including 100.
          guard.destroy();
          ^^^^^^^^^^^^^^^
          return; 
        }
   }
....
}

I simulated this case by commenting out 
         mReceivedProvisional = true; 
in DialogSet::dispatch()(line 337)
and test with Free World Dialup and Jasomi's outbound
proxy.

kaiduan


______________________________________________________________________ 
Post your free ad now! http://personals.yahoo.ca
_______________________________________________
resiprocate-devel mailing list
resiprocate-devel@xxxxxxxxxxxxxxxxxxx
https://list.sipfoundry.org/mailman/listinfo/resiprocate-devel