[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Sip] RE: [Sip-implementors] Questions about Dialogs
redirected to sip...
> -----Original Message-----
> From: ext Adam Roach [mailto:adam@dynamicsoft.com]
> Sent: Tuesday, November 05, 2002 9:40 PM
> To: Khartabil Hisham (NMP/Helsinki); Adam Roach;
> sip-implementors@cs.columbia.edu
> Cc: brett@broadsoft.com
> Subject: RE: [Sip-implementors] Questions about Dialogs
>
>
> > -----Original Message-----
> > From: hisham.khartabil@nokia.com [mailto:hisham.khartabil@nokia.com]
> >
> > May I suggest that we only allow target refresh requests to
> > have the same method as the request that created the dialog.
> > i.e.: only a reINVITE can be target refresh requests for a
> > dialog created by INVITE, only reSUBSCRIBE can be target
> > refresh requests for a dialog created by SUBSCRIBE.
> >
> > For a dialog created by INVITE, a SUBSCRIBE does not update
> > the target. For a dialog created by SUBSCRIBE, an INVITE does
> > not update the target.
> >
> > This is the only way to do it to avoid complexity and
> > confusion. Otherwise you got to start asking about REFER and
> > other extensions that create dialogs.
> >
> > I would prefer implementors to be able to build a generic
> > dialogs module in their stack that doesn't need to know about
> > methods. I mean what if I send a MESSAGE within a dialog? my
> > generic dialogs module no longer can be method agnostic
> > because it has to know that MESSAGE does not refresh a
> > target, but it has to know that SUBSCRIBE does... too complicated.
>
> How does your generic dialogs module know not to create a dialog
> when you send a MESSAGE that doesn't correspond to an existing
> dialog?
Its up to the user of the module to know. Like a session module on top of it. I don't want to update my dialogs module for every extension. I'll just build modules on top of it. Anyway, this is too much architecture stuff.
>
> You already need to keep track of a variety of attributes for
> each method, such as which messages can start a dialog and which
> can't; in other words, you can't have generic handling for
> unknown methods. You must assign them attributes before your
> dialog manager can do anything sensible.
>
> Tracking which method initiated a dialog is no more complicated
> than tracking which methods can retarget.
>
> That said, allowing only the initiating method to retarget can be
> a rather severe restriction. I may have application logic that
> knows that it needs to retarget at some point, and it does
> so by sending an INVITE. However, with your proposal, that
> would fail if the dialog had been created with a SUBSCRIBE*.
> Instead, you'd need the application to keep track of which came
> first and use it for retargeting. Now, that seems messy.
>
> /a
>
> * What? How would one plausibly get an INVITE on a dialog
> created by a SUBSCRIBE, you ask? I'm glad you did. Imagine
> that I've subscribed to the terminal state of the phone
> on your desk, because I want to get ahold of you as soon
> as you get off the phone. When I finally get a NOTIFY to
> let me know that your terminal has transitioned to a "free"
> state (i.e. on-hook), I want to send an INVITE. Of course,
> I want to make sure I only contact that one terminal that
> just became free. The only way I can reliably do this is
> by sending an INVITE in the same dialog. There you go.
This example doesn't clarify the need for an INVITE to retarget a dialog initiated with a SUBSCRIBE. Its actually saying that an INVITE needs to use the same target that was established with the SUBSCRIBE.
Regards,
Hisham
_______________________________________________
Sip mailing list https://www1.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use sip-implementors@cs.columbia.edu for questions on current sip
Use sipping@ietf.org for new developments on the application of sip