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

Re: [reSIProcate] Forking with DUM


Dear Scott,

> One approach to getting around this in DUM would be to get the
> existing/first DialogSet to be used for subsequent INVITES - this
> would then make responses to those INVITE appear exactly as if a proxy
> had forked the request.  To do this you should be able to build the
> first INVITE request using makeInviteSession, and send the subsequent
> Invites by copying/modifying the first INVITE and using dum->send.

That seems to work perfectly and doesn't require any modifications to dum!

Thanks a lot!

Matthias


> -----Original Message-----
> From: slgodin@xxxxxxxxx [mailto:slgodin@xxxxxxxxx] On Behalf Of Scott Godin
> Sent: Montag, 8. September 2008 17:41
> To: Matthias Moetje
> Subject: Re: [reSIProcate] Forking with DUM
>
> You may be able to modify DUM to get it working, but what you are
> trying will not work with DUM in it's current form.  DUM controls
> AppDialogSet lifetime - calling makeInviteSession causes a new
> DialogSet object to be created - the lifetime of the AppDialogSet is
> tied to the DialogSet.
>
> One approach to getting around this in DUM would be to get the
> existing/first DialogSet to be used for subsequent INVITES - this
> would then make responses to those INVITE appear exactly as if a proxy
> had forked the request.  To do this you should be able to build the
> first INVITE request using makeInviteSession, and send the subsequent
> Invites by copying/modifying the first INVITE and using dum->send.
>
> You could also try overriding the destroy method of the AppDialogSet,
> so that your application manages when it is deleted or not.
>
> Scott
>
> On Mon, Sep 8, 2008 at 10:45 AM, Matthias Moetje <moetje@xxxxxxxxxxxx> wrote:
> > Hi Scott,
> >
> > actually it's a B2BUA and Registrar all in one.
> >
> > Due to the way the application's classes are laid out
> > I had hoped to be able to handle this with a single
> > AppDialogSet, but you are saying this is impossible?
> >
> > Matthias
> >
> >
> > -----Original Message-----
> > From: slgodin@xxxxxxxxx [mailto:slgodin@xxxxxxxxx] On Behalf Of Scott Godin
> > Sent: Montag, 8. September 2008 16:12
> > To: Matthias Moetje
> > Cc: resiprocate-devel
> > Subject: Re: [reSIProcate] Forking with DUM
> >
> > Forking is normally provided by a proxy not a UA, so DUM is setup to
> > be able handle it's calls getting forked, but it is not currently
> > inteded to be used to actually perform a fork.  I'll assume you are
> > writing some form of B2BUA - why not just initiate multiple outbound
> > calls with seperate AppDialogSet's, and use some common userdata in
> > order to associate them all together?
> >
> > Scott
> >
> > On Fri, Sep 5, 2008 at 4:05 PM, Matthias Moetje <moetje@xxxxxxxxxxxx> wrote:
> >> Hi,
> >>
> >>
> >>
> >> I'm currently trying to implement forking ny using this code:
> >>
> >>
> >>
> >> for (resip::ContactList::iterator i = contacts.begin(); i !=
> contacts.end();
> >> i++)
> >>
> >> {
> >>
> >>      resip::SharedPtr<resip::SipMessage> pMsg =
> >> mDum->makeInviteSession(naTarget, spUserProfile, sdp, pMyAppDialogSet);
> >>
> >>      pMsg->header(h_RequestLine).uri() = i->mContact.uri();
> >>
> >>      mDum->send(pMsg);
> >>
> >> }
> >>
> >>
> >>
> >> Unfortunately with this approach it seems that the AppDialogSet gets
> >> destroyed
> >>
> >> as soon as I call h->end on one of the InviteSessions. I found that
> >> DialogSet::mDialogs
> >>
> >> is empty and therefore possiblyDie succeeds and destroys the DialogSet.
> When
> >>
> >> further messages are processed, a crash occurs because the DialogSet does
> >> not
> >>
> >> exist any longer.
> >>
> >>
> >>
> >> Before I investigate this further I wanted to know if this is a valid
> >> approach for
> >>
> >> forking at all?
> >>
> >>
> >>
> >>
> >>
> >> Best regards,
> >>
> >>
> >>
> >> Matthias Moetje
> >>
> >> TERASENS GmbH
> >> Augustenstraße 24
> >> 80333 Munich
> >> GERMANY
> >>
> >>
> >>
> >> Phone:
> >> Fax:
> >> e-mail:
> >> Web:
> >>
> >> +49.89.143370-0
> >> +49.89.143370-22
> >> info@xxxxxxxxxxxx
> >> www.terasens.com
> >>
> >>
> >>
> >>
> >>
> >> _______________________________________________
> >> resiprocate-devel mailing list
> >> resiprocate-devel@xxxxxxxxxxxxxxx
> >> https://list.resiprocate.org/mailman/listinfo/resiprocate-devel
> >>
> >