Subject: Re: [Sipping] Re: [Sip-implementors] About Exceptional Procedure draft

From: "Dale R. Worley" <[email-masked]>
Date: Thu, 03 Nov 2005 23:42:59 -0500

Maybe I haven't studied this well enough, but these questions don't seem
to be particularly complicated:

In all the cases that people are using or are contemplating using, the
sharing of a dialog by dialog usages is not so bad.  Any incoming
request is either associated with an existing usage or it creates a new
one.  (Or is outside of any usage, which is equivalent to creating a
usage which no other request will be part of.  But I don't know of any
request other than OPTIONS that is like this.)  I'm sure that this
association is not well-defined in general, but every use-case I've
heard of is unambiguous (except for obviously erroneous cases).

There are multiple usage-terminating requests (BYE, NOTIFY with
terminated, SUBSCRIBE with expires 0), but you can determine which usage
they are associated with.  Almost all of them allow race conditions
similar to the "crossing BYEs" case, and Paul (IIRC) made the sensible
suggestion that 481 means "dialog usage does not exist" (except in the
cases where the dialog doesn't exist) and should only terminate the
usage in question.  This prevents a screw-up in the handling of one
usage from terminating the entire dialog.

Of course, a dialog ends when its last usage ends (as all methods of
adding a usage to an existing dialog are associated with an already
existing usage).  This does lead to the superficially paradoxical
situation where the usage that was first created may end before the
dialog ends.  I suppose that if terminating the first usage puts the UA
in a state where all the other usages are useless, it can terminate them
also.  That means that if the other UA attempts to use another usage, it
will get a 481 that it did not expect, but it will then terminate its
knowledge of the usage and clean up, so there will be no harm.

>From this point of view, the Exceptional Procedures I-D applies to
usages rather than dialogs.  But that is just a syntactic change, and it
remains a fine piece of work.

Once a UA has sent a usage-terminating request, it should refuse to
accept any request for that usage, as the UA has already committed to
terminating the request (and indeed, the other UA may have already
received the usage-terminating request).

I really don't see any alternative to the above observations that has a
coherent logical structure and deals with the fact that multiple-usage
dialogs already exist...

Dale

_______________________________________________
Sipping mailing list  https://www1.ietf.org/mailman/listinfo/sipping
This list is for NEW development of the application of SIP
Use [email-masked] for questions on current sip
Use [email-masked] for new developments of core SIP