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

RE: [reSIProcate] Dum multi-call design


Juston,

 

Some possible approaches are:

  1. Store the AppDialog when onNewSession is called.
  2. Assume is gone after onTerminated is called and/or when you call end(), reject(), etc..  It actually may be destroyed a little later - ie. When 200 to BYE is received.
  3. Put code in AppDialog and/or AppDialogSet destructors to clean up your application stored mappings.

 

Scott

 


From: Justin Matthews [mailto:justin.matthews@xxxxxxx]
Sent: Thursday, May 12, 2005 1:24 PM
To: 'sachin ahire'; slgodin@xxxxxxxxxxxx; resiprocate-devel@xxxxxxxxxxxxxxxxxxx
Subject: RE: [reSIProcate] Dum multi-call design

 

Hi,

 

I have been thinking about this implementation and am confused on exactly how to manage the AppDialogSet and AppDialog pointers.

 

The ultimate goal is to be able to cancel an outbound invite if there is no response from the UAS.  When creating an Invite with DUM::makeInviteSession(...,myAppDialogSet), I clearly have a way of mapping a user-defined key (integer or whatever) to myAppDialogSet.  I can use this user-defined key to get a pointer to myAppDialogSet for this call.  Where I am confused is what I really want is a myAppDialog pointer to call myAppDialog->getInviteSession().  To do this I need a pointer to myAppDialog.  I suppose this could be done in myAppDialogSet::createAppDialog() (maybe this won't work; when does a AppDialog get created?) by adding another mapping from a user-defined key to myAppDialog.  If I do this, how do I know when myAppDialog is deleted by resip?  AppDialogSet gives a virtual destroy() method, but AppDialog does not.

 

Thanks,

 

-Justin

 


From: resiprocate-devel-bounces@xxxxxxxxxxxxxxxxxxx [mailto:resiprocate-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of sachin ahire
Sent: Friday, April 01, 2005 4:11 PM
To: slgodin@xxxxxxxxxxxx; resiprocate-devel@xxxxxxxxxxxxxxxxxxx
Subject: RE: [reSIProcate] Dum multi-call design

 

Hi Scott,

Thanks for the pointers. The website link was helpful since that site contains quite a lot of other useful documentation also.

i also understand what you meant by not getting response from the UAS side. i was expecting to get the OnFailure or OnTerminated Callback since my uas wasnt setup to send any response, but never got it. i guess the app needs to maintain the timer for such cases and send the cancel.

Sachin

>From: Scott Godin <slgodin@xxxxxxxxxxxx>

>To: 'sachin ahire' <sachinahire@xxxxxxxxxxx>, resiprocate-devel@xxxxxxxxxxxxxxxxxxx

>Subject: RE: [reSIProcate] Dum multi-call design

>Date: Thu, 31 Mar 2005 14:53:35 -0500

>

>That will probably work - but you won't know the Invite Session Handle on

>placed calls until a dialog is created.  I store an array of AppDialog and

>AppDialogSet pointers.  This allows you to end/cancel a call if you don't

>receive any response from the far end.  You can get at the InviteSession

>from these pointers.

>

>

>

>Check out:

>http://warsaw.sjc.purplecomm.com/wiki/index.php?title=Associating_Applicatio

>n_Data_with_Dialogs/DialogSets

><http://warsaw.sjc.purplecomm.com/wiki/index.php?title=Associating_Applicati

>on_Data_with_Dialogs/DialogSets>

>

>

>

>Just be careful to remove references from your array before the Dialogs are

>destroyed - since DUM will delete the AppDialog/AppDialogSet objects.

>

>

>

>   _____

>

>From: sachin ahire [mailto:sachinahire@xxxxxxxxxxx]

>Sent: Thursday, March 31, 2005 11:36 AM

>To: resiprocate-devel@xxxxxxxxxxxxxxxxxxx

>Subject: [reSIProcate] Dum multi-call design

>

>

>

>

>Hi,

>

>I want to develop an application based on basiccall.cpp  in the dum/test to

>enable sending multiple calls/invites and also an ability to receive

>multiple calls.

>

>The way i was going to do it was to have an array of lines that contains a

>pointer to the InviteSessionHandler and everytime the app receives a

>OnNewsession i grab one of the "unallocated" lines and copy the handle and

>use it to keep track of invitesessions.

>

>Is this a right way to do it or if not, can somebody give me some pointers

>as to how it can be done. Thanks.

>

>Sachin

>