[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Sipping] Thoughts on the conf-info package



Another old thread. I am in the process of revving both the conf-info 
and conferencing models drafts, so I've been thinking about these 
issues. I wanted to generalize a bit here.

Orit Levin wrote:
> Hi guys!
> I think that Rohan's "thoughts about conferencing" hit a number of
> crucial
> missing points.
> Before arguing about the implementation, I will try to summarize the
> implicitly disputed requirements:
> 
> 1. When a user is invited to a session, which is a part of a conference,
> information MUST be provided to the user informing him that he is a part
> of
> the conference. (The user MAY ignore this information.)
> 2. When a point-to-point session is expanded to a conference,
> information
> MUST be provided to the user informing him that he becomes a part of the
> conference. (The user MAY ignore this information.)

There is a much bigger problem looming here, one which I alluded to at 
the interim meeting. It all ties back to this issue of a URI as a 
service, and what that means.

We have agreed that a conference is a URI, and like other URIs, it 
represents a resource. In this case, the resource is not a user, but a 
service. That service has various ways in which you can interact with it 
- methods you can invoke on it, extensions it supports, event packages 
it can understand, and so on. I think that, generally, it is futile to 
try to actually define a service in any way beyond the externally 
visible behaviors it exhibits. As such, a service is really a collection 
of these methods, extensions, and other characteristics that reflect the 
ways in which you can interact with it.

In SIP, we have two ways to find out about the characteristcs of a 
resource I am in a dialog with. One, is through OPTIONS. That provides a 
"pull", allowing me to ask. The other is that the peer can provide the 
information in an INVITE or re-INVITE, and in that re-INVITE, include an 
updated set of Allow, Accept, Allow-Events, and other headers. That 
supports a "push" model, allowing them to tell me.

So, let us apply this general model to the problem at hand.

When a one-one call "expands" into a conference, what this REALLY means 
is that the resource on one end of the call (identified by the contact 
URI) has changed; its now no longer a "user", but a "service", and is 
therefore something that has an additional set of ways in which you can 
interact with it. In particular, it now supports the conference event 
package, amongst other things.

As such, I would propose that, if a call expands from a 2-way call to a 
conference, the UA would re-INVITE on the original leg, and include in 
the re-INVITE an Allow-Events header with the package conference listed 
there. Indeed, the UA may even change the contact URI, to indicate a 
very explicit change in the nature of the resource. This general 
approach would support other changes that might occur when the call 
turns into a conference. For example, a restriction in the set of 
codecs, which would also be signaled with a re-invite.

THe other obvious external characteristic of the conference is the 
"mixing" characteristic, which is that all dialogs connected to that URI 
will have their media mixed and distributed. I don't know how to 
represent this fact with any existing SIP header. Let us for now assume 
its some new header, Resource-Characteristic, with the value "mix". 
Following the same model, when the two-party call turns into a 
conference, the re-INVITE would include this header. The UA would also 
include the header in a 2xx to OPTIONS.

Note that the mixing characteristic, and the ability to support the 
conference package, are *separate* things. Both are typical of a 
"conference" as we might think of a conference, but it is reasonable to 
allow for devices to be built which only do one, but not the other. So, 
instead of defining that "conferences must support the 
conference-package", I'd rather have a general mechanism whereby a 
resource can express the ability to support the conference package.

This gets around a number of thorny problems, some of which came up in 
this thread. For example, if I'm in a two-party call with another UA, 
and that UA is *capable* of acting as a local mixer, is there a 
"conference" or not? We don't need to decide. In this case, I would be 
able to determine that there are no other users in the conference 
(through a SUBSCRIBE to the conference package), and that the UA can be 
used as a mixer. My UI could present this to me in whatever way it 
chooses. Probably it would indicate that I'm not in a conference, but if 
I clicked "add" to add a party, it would REFER the new user to send an 
INVITE to the UA I'm in the call with.

Hopefully this is making some sense.

-Jonathan R.


-- 
Jonathan D. Rosenberg, Ph.D.            72 Eagle Rock Avenue
Chief Scientist                         First Floor
dynamicsoft                             East Hanover, NJ 07936
jdrosen@dynamicsoft.com                 FAX: (973) 952-5050
http://www.jdrosen.net                  PH:  (973) 952-5000
http://www.dynamicsoft.com


_______________________________________________
Sipping mailing list  https://www1.ietf.org/mailman/listinfo/sipping
This list is for NEW development of the application of SIP
Use sip-implementors@cs.columbia.edu for questions on current sip
Use sip@ietf.org for new developments of core SIP