What happens in the situation I describe below?
UAC Proxy UAS1 UAS2
---- ----- ---- ----
SUBSCRIBE
------------> SUBSCRIBE
------------->
SUBSCRIBE
---------------------------->
200 To-tag:aaa
200 To-tag:aaa <------------
<-------------
NOTIFY To-tag:bbb
<------------------------------------------
The NOTIFY arrives before the 200 from UAS2
Does that establish 2 dialogs? I think most implementations will reject that NOTIFY
with 481.
/Hisham
> -----Original Message-----
> From: ext Paul Kyzivat [mailto:[EMAIL PROTECTED]
> Sent: 28.January.2004 16:23
> To: Khartabil Hisham (Nokia-TP/Helsinki)
> Cc: [EMAIL PROTECTED]; [EMAIL PROTECTED]
> Subject: Re: [Sip-implementors] About RFC 3265 SUBSCRIBE/NOTIFY!
>
>
> I don't think the rate limiting helps with the problem that
> the original
> poster was concerned with. He seems to be concerned that the
> SUBSCRIBE
> might fork, and that NOTIFYs will come back from many
> different forks.
> If that happens, each will be independently rate limited, but the
> aggregate rate seen by the subscriber depends on the number of forks.
>
> More below.
>
> Paul
>
> [EMAIL PROTECTED] wrote:
> > Every Event notification package needs to specify the rate of
> > notification. In most packages so far, that rate is limited
> to 1 NOTIFY
> > every 5 seconds.
> >
> > Also, all these NOTIFY requests are within the same dialog
> established
> > by the SUBSCRIBE.
> >
> > Regards,
> > Hisham
> >
> > -----Original Message-----
> > *From:* [EMAIL PROTECTED]
> > [mailto:[EMAIL PROTECTED]
> Behalf Of *ext
> > Jerry Ipe Thomas
> > *Sent:* 28.January.2003 05:23
> > *To:* [EMAIL PROTECTED]
> > *Subject:* [Sip-implementors] About RFC 3265 SUBSCRIBE/NOTIFY!
> >
> > Hi Guys!
> >
> > In RFC 3265, it's said that if a proxy forks a SUBSCRIBE
> > request, then, one 2xx is returned to the subscriber for the
> > SUBSCRIBE request, but a helluva lot of NOTIFYs can
> be sent to
> > the subscriber!
> >
> > Does this mean this?
> >
> >
> > | USER_AGENT_SUBSCRIBER | |
> PROXY_SERVER |
> >
> SUBSCRIBE-------------------------------> ( Proxy
> > forks this to a lot of notifiers. This sounds
> like nonsense
> > to me anyway! )
> > <----------------------------------2xx
> > <---------------------------------NOTIFY
> > <---------------------------------NOTIFY
> > <---------------------------------NOTIFY
> > <---------------------------------NOTIFY
> > .
> > .
> > .
> >
> > <---------------------------------NOTIFY
> > 200---------------------------------->
> > 200---------------------------------->
> > 200---------------------------------->
> > 200---------------------------------->
> > .
> > .
> > .
> > 200---------------------------------->
> >
> > Aaaaaaaaaaaaaaah!!! God have mercy on the
> unfortunate subscriber!
> >
> > STUPID NOTE: The NOTIFYs are from notifiers.
> >
> > One possible way to get over this reeeeally scary
> scenario is
> > to match the subsequent NOTIFYs using the To tag in
> the 2xx to
> > the SUBSCRIBE??? Is this the right thing to do? Man! Forking
> > sucks! This IS a problem with devices that do not
> have much in
> > terms of processing horsepower or memory ( Say 33
> MIPS and 64KB
> > of SRAM. Remember that a lot of "other strange
> modules", which
> > are obviously not mine, are running within that 64KB. ) to
> > maintain separate dialogs with all those stupid notifiers!
> > I am pissed!
> >
> > It's obvious by now that I'm confused about forking and RFC
> > 3265. :-(
>
> The forking issues are similar in some respects to what they are with
> invite. If the proxy forks the SUBSCRIBE and then receives a
> 2xx it will
> return that to the subscriber. It will presumably then also
> attempt to
> CANCEL all the other forked legs. But there is a race
> condition, so some
> of the other forks may have already succeeded and sent 2xx responses
> back to the proxy. If so, the proxy is not permitted for
> forward them on
> the subscriber, so it just discards them.
>
> Each leg of the fork that succeeded establishes a unique
> dialog, based
> on to & from tags. (To-tags are unique.) The subscriber learns about
> these dialogs from the messages it receives. Normally, the 2xx would
> establish the first dialog. For other legs, the 2xx isn't
> returned, so
> the first NOTIFY from the notifier on the leg tells the
> subscriber that
> there is another dialog.
>
> If the subscriber only wants to hear from one notifier, it
> can terminate
> the extra dialogs by sending a reSUBSCRIBE w/Expires:0.
>
> Yes, its a pain. Everything about forking is a pain.
>
> Paul
>
>
_______________________________________________
Sip-implementors mailing list
[EMAIL PROTECTED]
http://lists.cs.columbia.edu/mailman/listinfo/sip-implementors