< Previous by Date | Date Index | Next by Date > |
< Previous in Thread | Thread Index |
case 1) Setting the mAppDialog to NULL was just added recently - make sure you are using the latest SVN code. case 2) In my app - I just forget about the AppDialog after I issue cancel and it destroy's itself after 32 seconds. -----Original Message----- From: Derek MacDonald [mailto:derek@xxxxxxxx] Sent: Thursday, September 16, 2004 6:59 PM To: 'kaiduan xie'; 'Scott Godin'; resiprocate-devel@xxxxxxxxxxxxxxxxxxx Subject: RE: [reSIProcate] Missed handling when caller hangup before receiving ANY response For case 1, mAppDialog is set to 0 in Dialog::Dialog. Are you allocating an AppDialog as a stack variable? As for the early destruction when the BYE is sent, I don't really have a strong opinion on that. Right now the onTerminated call conveys how the-Dialog ended; BYE-200 vs BYE-408. --Derek > -----Original Message----- > From: resiprocate-devel-bounces@xxxxxxxxxxxxxxxxxxx [mailto:resiprocate- > devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of kaiduan xie > Sent: Thursday, September 16, 2004 10:00 AM > To: Scott Godin; resiprocate-devel@xxxxxxxxxxxxxxxxxxx > Subject: RE: [reSIProcate] Missed handling when caller hangup before > receiving ANY response > > Scott, > > Actually there are two cases: > > case 1) after hangup, SIP messages are received from > the network. In this case, the created DialogSet, > Dialog, InvitationSessionCreator will be freed in > Dialog->cancel(). But there is still one small bug, in > Dialog::~Dialog() > > Dialog::~Dialog() > { > ... > delete mAppDialog; > ... > } > > If mAppDialog is not allocated from the heap, this > will crash the program. So I suggest to add mAppDialog > = NULL in the Dialog::Dialog(). > I did have a case which resulted in this crash. > > case 2) after hangup, no SIP message is received from > the network. In this case, the INVITE transaction will > time out after 32 seconds and send 408 to TU, i.e, > DUM. > > Why we need to wait 32 seconds to release the created > DialogSet, InvitationSessionCreator? So I sugges to > add guard.destroy() in DialogSet::cancel(). > > kaiduan > > --- Scott Godin <slgodin@xxxxxxxxxxxx> wrote: > > 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 > > > > ______________________________________________________________________ > Post your free ad now! http://personals.yahoo.ca > _______________________________________________ > resiprocate-devel mailing list > resiprocate-devel@xxxxxxxxxxxxxxxxxxx > https://list.sipfoundry.org/mailman/listinfo/resiprocate-devel