One document matched: draft-boulton-xcon-session-chat-00.txt
XCON Working Group C. Boulton
Internet-Draft Avaya
Intended status: Standards Track M. Barnes
Expires: May 2, 2008 Nortel
October 30, 2007
Instant Messaging Sessions within a Centralized Conferencing (XCON)
System
draft-boulton-xcon-session-chat-00
Status of this Memo
By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire on May 2, 2008.
Copyright Notice
Copyright (C) The IETF Trust (2007).
Abstract
The document "A Framework for Centralized Conferencing" defines a
centralized conference as both signaling and protocol agnostic. The
primary examples within this framework focus on audio and video as
the media types for the session. This document describes the
mechanisms, in the context of this centralized conferencing
framework, when using instant messaging sessions as the media.
Boulton & Barnes Expires May 2, 2008 [Page 1]
Internet-Draft XCON Chat October 2007
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Conventions and Terminology . . . . . . . . . . . . . . . . . 3
3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.1. Protocol Operations . . . . . . . . . . . . . . . . . . . 5
3.2. IM and Conferencing Identifiers . . . . . . . . . . . . 5
4. Basic Operations . . . . . . . . . . . . . . . . . . . . . . . 7
4.1. Creating a Chat Room . . . . . . . . . . . . . . . . . . . 8
4.2. Joining a Chat Room . . . . . . . . . . . . . . . . . . . 10
4.3. Deleting a Chat Room . . . . . . . . . . . . . . . . . . . 12
5. Additional Operations . . . . . . . . . . . . . . . . . . . . 13
5.1. Nicknames . . . . . . . . . . . . . . . . . . . . . . . . 13
5.2. Logging . . . . . . . . . . . . . . . . . . . . . . . . . 13
5.3. History . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.4. Indicating Alternate Venue . . . . . . . . . . . . . . . . 14
6. Advanced Operations . . . . . . . . . . . . . . . . . . . . . 14
6.1. Text Sidebar . . . . . . . . . . . . . . . . . . . . . . . 14
6.2. Private Message . . . . . . . . . . . . . . . . . . . . . 17
7. Security Considerations . . . . . . . . . . . . . . . . . . . 20
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 21
9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 21
9.1. Normative References . . . . . . . . . . . . . . . . . . . 21
9.2. Informative References . . . . . . . . . . . . . . . . . . 21
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 22
Intellectual Property and Copyright Statements . . . . . . . . . . 23
Boulton & Barnes Expires May 2, 2008 [Page 2]
Internet-Draft XCON Chat October 2007
1. Introduction
A Centralized Conference as defined by the "A Framework for
Centralized Conferencing" [2] is both signaling and protocol
agnostic. The primary examples within the framework focus on audio
and video as the media types for the session. This document
describes the mechanisms and associated framework elements involved
when instant messages are the media for the conference. This
functionality is often referred to as a "chat room" or simply "chat"
as it provides the text equivalent of a voice conversation involving
multiple parties.
Several existing protocols support this chat functionality, such as
Internet Relay Chat (IRC) [6] and Extensible Messaging and Presence
Protocol (XMPP) [7]. In addition, [10] provides IM chat
functionality for a purely SIP signaling based solution option using
Message Session Relay Protocol (MSRP) [9]. The focus of this
document is to describe the interface to a conferencing system based
on the XCON framework, independent of the specific IM media type used
by the client.
The functionality described in this document is not intended to
replace any of the existing chat protocols. The motivation for this
document is to allow clients that use the conferencing framework
model for other media types (e.g. voice/video) to utilize the same
conference control mechanisms and conferencing system to establish,
update and delete a conference instance. While this approach also
allows the conferencing system to provide a natural interworking
point for various IM protocols, the details of the interworking are
outside the scope of this document.
2. Conventions and Terminology
This document reuses the terminology defined in "A Framework for
Centralized Conferencing" and the protocol operations defined in the
Centralized Conferencing Protocol document [4].
3. Overview
Figure 1 provides a general illustration of IM clients having a
direct, 1:1 connection to the conferencing system. The conferencing
system receives IMs sent from a client participating in a conference
instance and then distributes them to the other IM sessions
associated with the conference instance.
Boulton & Barnes Expires May 2, 2008 [Page 3]
Internet-Draft XCON Chat October 2007
+--------+
| IM |
| Client |
| |
+--------+
|
|
|
|
|
|
v
+------------+
+--------+ | | +--------+
| IM | | | | IM |
| Client |-------------->|Conferencing|<--------------| Client |
| | | System | | |
+--------+ | | +--------+
+------------+
^
|
|
|
|
|
|
+--------+
| IM |
| Client |
| |
+--------+
Figure 1: Client Connection
The approach in this document is to have no impact on the existing IM
protocols, while taking full advantage of the functionality provided
by the centralized conferencing framework.
A basic solution for MSRP based IM chat sessions is documented in
[10]. It uses the concept of an "MSRP switch" as the centralized
component, whose role is very similar to the MSRP Conferencing Server
in this document. The solution in [10] doesn't explicitly take
advantage of the centralized conferencing framework model, as it
primarily intends to make use of the basic SIP conferencing framework
to provide the basic chat functionality. However, that solution
approach is compatible with the solution components described in this
Boulton & Barnes Expires May 2, 2008 [Page 4]
Internet-Draft XCON Chat October 2007
document, with no impact on that basic solution proposal. One of the
advantages of applying the two solutions in concert would be a reuse
of the centralized conferencing framework model for advanced
features, such as sidebars and private conferences, and manipulation
of the conference data.
3.1. Protocol Operations
An IM client wishing to join a conference uses standardized
centralized conferencing mechanisms for creating and joining a
conference, as identified in the centralized conferencing framework
and related protocol documents.
The request to send an IM to an IM media session is specific to the
IM protocol (e.g., MSRP SEND). On issuing a request to send an IM to
an IM media session that is a member of a conference instance, the IM
will be replicated and forwarded, in the relevant context, to all
other IM media sessions that are participants of the conference
instance.
An IM client wishing to delete a chat room uses standardized
mechanisms for deleting a conference instance. Non-signaling
specific mechanisms are defined in the Centralized Conferencing
Framework [2] and related protocol document [4]. Protocol specific
mechanisms are defined in other documents such as for SIP in the
SIPPING Conference Framework [8].
3.2. IM and Conferencing Identifiers
As highlighted in the overview section, an IM client connecting to a
conferencing system has a 1:1 relationship with the IM signaling
entity, each having a unique protocol specific session ID. When
referring to IM session ID's the document is making reference to the
locally (at conferencing system) generated session ID used for IM
session signaling identification. In the case of MSRP, this session
ID is inserted into the local path SDP attribute. An important
concept in this proposal is the creation and management of IM
sessions. It is important that each IM session created, as
identified by a unique IM session ID, is explicitly tied to an
associated conference, represented by the conference identifier (as
defined in the Centralized Conferencing Framework [2]). This
provides the relevant association between IM session and a
centralized conference. A generic example representation is
illustrated by the rows contained in Figure 2.
Boulton & Barnes Expires May 2, 2008 [Page 5]
Internet-Draft XCON Chat October 2007
-------------------------------------------
| Conference Identifier |
-------------------------------------------
| IM Session ID=8asjdhk |
| IM Session ID=38iuhds |
| IM Session ID=djiowid |
| IM Session ID=389hewu |
-------------------------------------------
Figure 2: Simple Session Association
The Centralized Conferencing Framework[2] introduces the concept of a
conference user identifier defined in [3]. When a user joins a
conference instance through the signaling protocol, it is allocated
an appropriate conference user identifer either through
authentication or system allocation. The conference user identifer
MUST be used in conjunction with an IM session identifier to
internally represent a participant in a conference instance.
Figure 2 is then expanded to look like Figure 3. Again a row in the
table representing a single entry.
----------------------------------------------------------------
| Conference Identifier |
----------------------------------------------------------------
| IM Session ID=8asjdhk | Conf User ID=839ULjj |
| IM Session ID=38iuhds | Conf User ID=0283hHu |
| IM Session ID=djiowid | Conf User ID=ncH37H |
| IM Session ID=389hewu | Conf User ID=pakdjjH |
----------------------------------------------------------------
Figure 3: Advanced Session Association
A more complex session association is necessary due to potential for
a user to have multiple IM sessions in a single conference instance,
such as multi-lingual conference support. In an example with SIP and
MSRP, the conference representation in Figure 3 allows for such
functionality when separate SIP dialogs represent MSRP sessions.
This process becomes complex when multiple SDP MSRP media sessions
(m=) are defined in a single payload. This internal representation
now needs expanding to enable a conferencing system to explicitly
associate a media session (m=). This involves including the media
label, as defined in [11], to maintain the internal conference
association. An example is illustrated in Figure 4.
Boulton & Barnes Expires May 2, 2008 [Page 6]
Internet-Draft XCON Chat October 2007
----------------------------------------------------------------------------
| Conference Identifier |
----------------------------------------------------------------------------
| MSRP Session ID=8asjdhk | Conf User ID=839ULjj | Label=iede3 |
| MSRP Session ID=38iuhds | Conf User ID=0283hHu | Label=8heus |
| MSRP Session ID=838unaH | Conf User ID=0283hHu | Label=3cnu7 |
| MSRP Session ID=djiowid | Conf User ID=ncH37Hs | Label=jd38J |
| MSRP Session ID=389hewu | Conf User ID=pakdj7H | Label=U83hd |
| MSRP Session ID=Ko03jdk | Conf User ID=pakdj7H | Label=ehy3h |
----------------------------------------------------------------------------
Figure 4: Advanced Session Association + Media Label
In Figure 4, conference user identifiers '0283hHu' and 'pakdj7H'
appear twice. The combination of multiple conference user
identifiers and a unique MSRP session ID enables the conference
system to clearly identify a specific MSRP instance. The
representation also includes the media label, as defined in [11],for
identification purposes. This added property, which is extracted
from the SDP media line, enables clear identification when multi SDP
media (m=) lines appear in the same SDP payload.
A client MUST include the media label attribute defined in [11] when
including multiple MSRP sessions in the same SDP payload. Even in
the simplest conferencing system, where users are allowed to enter
anonymously, the internal representation described in this section
should be observed. In this case, the conferencing system would
still internally create a conference user identifier for participant
reference purposes.
4. Basic Operations
This section provides details of the realization of the Multi-party
IM (chat) within the context of the centralized conferencing
framework. A brief discussion and diagrams are provided for
creating, joining, and deleting a chat based conference. The
discovery of chat rooms available on a specific conferencing system
is inherent in the blueprint capability provided by the conferencing
system. The objective of this section is to further illustrate the
model, mechanisms and protocols presented in the previous sections
and also serves to validate that the model, mechanisms and protocols
are sufficient to support IM chat.
The scenarios provide a high level primitive view of the necessary
operations and general logic flow. The details shown in the
scenarios are for illustrative purposes only and don't necessarily
Boulton & Barnes Expires May 2, 2008 [Page 7]
Internet-Draft XCON Chat October 2007
reflect the actual structure of the conference control protocol
messages nor the detailed data, including states, which are defined
in separate documents. It should be noted that not all entities
impacted by the request are shown in the diagram (e.g., Focus), but
rather the emphasis is on the new entities introduced by this
centralized conferencing framework. [Editor's Note: Ideally, this
section will be updated with details once the protocol is agreed.]
4.1. Creating a Chat Room
There are different ways to create a conference. A participant can
create a conference using call signaling means only, such as SIP, as
detailed in [12]. For a conferencing client to have more flexibility
in defining the charaterisitics and capabilities of a chat based
conference, a conferencing client would implement a conference
control protocol client. By using a conference control protocol, the
client can determine the capabilities of a conferencing system and
its various resources.
Figure 5 provides an example of one client "Alice" determining the
conference blueprints available to support various types of chat
rooms for a particular conferencing system and creating a chat based
conference using the desired blueprint.
Boulton & Barnes Expires May 2, 2008 [Page 8]
Internet-Draft XCON Chat October 2007
+--------------------------------+
| Conferencing System |
"Alice" | +------------+|
+--------+ | | ||
| |CCP Request <blueprints> | +-----------+ | ||
| Client |-------------------------->|Conference | |Conference ||
| |<--------------------------|Control |~~~>|Blueprint(s)||
+--------+CCP Response<blueprintA, | |Server | | ||
... | +-----------+ +------------+|
blueprintZ, | |
confUserID> | |
"Alice" |
+--------+ | |
| |CCP Request <create, | +------------+|
| | chatBlueprintAConfObjID,| +-----------+ | ||
| Client |-------------------------->|Conference | |Conference ||
| | confUserID> | |Control |~~~>|Chat ||
| |<--------------------------|Server | |BlueprintA ||
| |CCP Response | | | +------------+|
+--------+ <chatResvConfObjID | | | \|/ |
confID> | | | /|\ |
| | | V |
| | | +------------+|
| | |~~~>|Conference ||
| | | |Chat ||
| | | |Reservation ||
| +-----------+ +------------+|
"Alice" | | |
+--------+ | | |
| |CCP Request <create, | V |
| | chatResvConfObjID, | +-----------+ +------------+|
| Client |-------------------------->|Conference | |Active ||
| | confID,confUserID> | |Control |~~~>|Chat ||
| |<--------------------------|Server | |Conference ||
| |CCP Response | | | +------------+|
+--------+ <chatActiveConfObjID, | | | |
confID> | +-----------+ |
+--------------------------------+
Figure 5: Client Creation of Chat room
Upon receipt of the Conference Control Protocol request for
blueprints associated with chat rooms, the conferencing system would
first authenticate "Alice" (and allocate a conference user
Boulton & Barnes Expires May 2, 2008 [Page 9]
Internet-Draft XCON Chat October 2007
identifier, if necessary) and then ensure that "Alice" has the
appropriate authority based on system policies to receive any chat
room based blueprints supported by that system. Any blueprints that
"Alice" is authorized to use are returned in a response, along with
the conference user ID.
Upon receipt of the Conference Control Protocol response containing
the blueprints, "Alice" determines which blueprint to use for the
conference to be created. "Alice" creates a conference object based
on the blueprint (i.e., clones) and modifies applicable fields, such
as membership list, topic details, and start time. "Alice" then
sends a request to the conferencing system to create a conference
reservation based upon the updated blueprint.
Upon receipt of the Conference Control Protocol request to "create" a
conference based upon the blueprint in the request, the conferencing
system ensures that the blueprint received is a valid blueprint (i.e.
the values of the various field are within range). The conferencing
system determines the appropriate read/write access of any users to
be added to a conference based on this blueprint (using membership,
roles, etc.). The conferencing system uses the received blueprint to
clone a conference reservation. The conferencing system also
reserves or allocates a conference ID to be used for any subsequent
protocol requests from any of the members of the conference. The
conferencing system maintains the mapping between this conference ID
and the conference object ID associated with the reservation through
the conference instance.
Upon receipt of the conference control protocol response to reserve
the conference, "Alice" now creates an active chat room using that
reservation. "Alice" provides the conference information, including
the necessary conference ID, to desired participants to allow them to
join the chat room. "Alice" may also add other users to the chat
room. When the first participant, including "Alice", requests to be
added to the conference, an active conference and focus are created.
The focus is associated with the conference ID received in the
request.
4.2. Joining a Chat Room
A participant can join and leave the conference using call signaling
means only, such as SIP. However, in order to perform richer
conference control a user client can implement a conference control
protocol client. By using a conference control protocol, the client
can affect its own state and the state of other participants,
depending upon policies, which may indirectly affect the state of any
of the conference participants.
Boulton & Barnes Expires May 2, 2008 [Page 10]
Internet-Draft XCON Chat October 2007
In the example in section Section 4.1, "Alice" has reserved a chat
room . "Alice" has also already joined the conference and made the
chat room active. "Alice" can either add additional participants to
the chat room or provide the conference information, including the
necessary conference ID, to desired participants and allow them to
request to join themselves. Any participants that have the authority
to manipulate the conference would receive the conference object
identifier of the active conference object in the response to their
request to join.
Figure 6 provides an example of "Bob" joining the chat room using the
conference ID provided by "Alice" (e.g., in an IM).
+--------------------------------+
| Conferencing System |
"Bob" | +---------+--+|
+--------+ | |policies | ||
| |CCP Request < | +-----------+ +---------+ ||
| Client |-------------------------->|Conference | | Active ||
| | Conference Object ID, | |Control |~~~>| Chat ||
| | Change, Member="Bob" > | |Server | |Conference ||
| |<--------------------------| | |Conference ||
+--------+ CCP Response <"added"> | +-----------+ +-------+ ||
| |"Alice"| ||
"Alice" | ' ' '|
+--------+ NOTIFY <"Bob"="added"> |+------------+ ' ' '|
| |<-------------------------|Notification|<~~~| ||
| Client |. . ||Service | +-------+ ||
+--------+--+ . || | |"Bob" | ||
| |<----------------------| | +-------+----+|
| Client |NOTIFY <"Bob"="added">|+------------+ |
+--------+ +--------------------------------+
"Bob"
Figure 6: Joining a chat room
Upon receipt of the Conference Control Protocol request to "add" a
party ("Bob") in the specific conference as identified by the
conference object ID, the conferencing system must determine whether
"Bob" is already a user of this conferencing system or whether he is
a new user. If "Bob" is a new user for this conferencing system, a
Conference User Identifier is created for Bob. The conferencing
system must also ensure that "Bob" has the appropriate authority
based on the policies associated with that specific conference object
Boulton & Barnes Expires May 2, 2008 [Page 11]
Internet-Draft XCON Chat October 2007
to perform the operation.
Once "Bob" has been successfully added to the chat room, a response
is sent to "Bob". Depending upon the policies, other participants
(including "Bob") may be notified of the addition of "Bob" to the
conference via the Conference Notification Service.
4.3. Deleting a Chat Room
Depending upon the conferencing system policies and policies specific
to the chat room, the creator of the chat would typically be the
participant authorized to delete the chat room.
In the example in section Section 4.1, "Alice" has created a chat
room and provided the conference information, including the necessary
conference ID, to desired participants and allow them to request to
join themselves. "Bob" and others are participants in the chat.
Figure 6 provides an example of "Alice" later deleting this same chat
room.
+--------------------------------+
| Conferencing System |
"Alice" | +---------+--+|
+--------+ | |policies | ||
| |CCP Request < | +-----------+ +---------+ ||
| Client |-------------------------->|Conference | | Active ||
| | Conference Object ID, | |Control |~~~>| Chat ||
| | Delete > | |Server | |Conference ||
| |<--------------------------| | | ||
+--------+ CCP Response<"deleted"> | +-----------+ +-------+ ||
| |"Alice"| ||
"Alice" | ' ' '|
+-------+ NOTIFY <confObjID, |+------------+ ' ' '|
| |<-------------------------||Notification|<~~~| ||
| Client| "deleted"> ||Service | +-------+ ||
+-------+--+ . || | |"Bob" | ||
| |<----------------------|| | +-------+----+|
|Client |NOTIFY<"Bob"="removed">|+------------+ |
+-------+ +--------------------------------+
"Bob"
Figure 7: Deleting a chat room
Upon receipt of the Conference Control Protocol request to "delete"
the specific chat room as identified by the conference object ID, the
conferencing system must determine whether "Alice" has the authority
Boulton & Barnes Expires May 2, 2008 [Page 12]
Internet-Draft XCON Chat October 2007
to delete this conference. Since "Alice" is the creator of the
conference, the "delete" operation is performed, with the appropriate
signaling sent to the participants, including a response to "Alice"
indicating that the chat room has been deleted.
One step in the deletion of the chat room may include notifitying the
participants (including "Bob") that they have been removed via the
Conference Notification Service.
5. Additional Operations
This section discusses additional operations or features required to
provide chat room functionality. Most of the operations are not
explicitly specified in the centralized conferencing framework.
However, some of the features and operations are achievable using
data maintained by a conferencing system based on the framework.
5.1. Nicknames
Nicknames allow a user to define a text string that uniquely
identifies the user within a particular chatroom without necessarily
reflecting any protocol specific identity (e.g., SIP URI, Conference
User Indentifier, etc.) . The mechanism to allow a user to negotiate
a nickname with a conferencing system is additional functionality
beyond that in the centralized conferencing framework and is
described in [ref:TBD]. Within a conferencing system, all nicknames
should map to a conference user identifier. There may be multiple
nicknames associated with a single conference user identifier (e.g.,
a user that has different nicknames for different chat rooms and/or
voice/video conferences).
5.2. Logging
A common chat feature involves logging the history of a chat room.
This provides a record of a chat room that can be used when a user
first joins a chat room as discussed in Section 5.3. It can also be
used to provide a complete capture of a specific chat room session.
The centralized conferencing framework does not fully describe the
role of recording or logging of active conferences. However, this
functionality can be realized with the manipulation of the
appropriate elements [TBD] in the data model using the general
conference control protocol operations (e.g., CHANGE operation to
start and stop recording).
Boulton & Barnes Expires May 2, 2008 [Page 13]
Internet-Draft XCON Chat October 2007
5.3. History
A common chat feature allows users to view the past history of chat
rooms. This operation is common when a user first joins a chat room
that is underway. A user is often offered the option to review a
specific number of past messages. Conferencing systems that maintain
the history associated with specific chat rooms through logging, as
described in Section 5.2, should provide a mechanism, using the
conference identifier, to access the specific information requested
by a user. The user request for the information and the rendering of
the information is specific to the user's session based messaging
protocol and may not be supported by all the messaging protocols.
5.4. Indicating Alternate Venue
Another chat room feature provides the details of an alternate chat
room venue for previously active chat rooms that have been closed,
with a related topic. While not detailed in the centralized
conferencing framework, this functionality can be accomplished by
creating the new chat room as a child or sibling of the previous chat
room and providing the Active chat conference object identifier to
any valid users that attempt to join a previous chat room. The
information about the new chat room can also be provided at the end
of a chat room that is being de-activated at the end of the session.
6. Advanced Operations
This section provides details of the realization of advanced chat
features, such as sidebars and private messages, within the context
of the centralized conferencing framework. As with Section 4, the
objective of this section is to further illustrate the model,
mechanisms and protocols presented in the previous sections and also
serves to validate that the model, mechanisms and protocols are
sufficient to support advance IM chat features.
6.1. Text Sidebar
The concept of a 'sidebar' in conferencing system is fully described
in the Sidebar section and related subsections within the
Conferencing Scenarios Realization section of the centralized
conferencing framework document [2]. The creation, manipulation and
deletion of sidebars for chat rooms follows the same principles.
A conference object representing a sidebar is created by cloning the
parent associated with the existing conference and updating any
information specific to the sidebar. A sidebar conference object is
implicitly linked to the parent conference object (i.e. it is not an
Boulton & Barnes Expires May 2, 2008 [Page 14]
Internet-Draft XCON Chat October 2007
independent object) and is associated with the parent conference
object identifier. A conferencing system manages and enforces the
parent and appropriate localized restrictions on the sidebar
conference object (e.g., no members from outside the parent
conference instance can join, sidebar conference can not exist if
parent conference is terminated, etc.).
Figure 8 provides an example of one client "Alice" involved in active
chat room with "Bob" and "Carol". "Alice" wants to create a sidebar
to have a side discussion with "Bob" while still receiving the
session based messaging associated with the main chat room. Whether
the text is interleaved with the main chat or whether a separate
window is created for the sidebar is implementation specific.
"Alice" initiates the sidebar by sending a request to the
conferencing system to create a conference chat reservation based
upon the active chat conference object. "Alice" and "Bob" would
remain on the roster of the main conference, such that other
participants could be aware of their participation in the main
conference, while the text sidebar conference is occurring.
Boulton & Barnes Expires May 2, 2008 [Page 15]
Internet-Draft XCON Chat October 2007
+--------------------------------+
| Conferencing System |
| +---------+--+|
| |policies | ||
| +---------+ ||
| |Active Chat ||
| |Conference ||
"Alice" | +-------+ ||
+--------+ | |"Alice"| ||
| |CCP Req <createSidebar, | +-------+ ||
| | activeChatConfObjID, | +-----------+ |"Bob" | ||
| Client |-------------------------->|Conference | +-------+ ||
| | confUserID> | |Control |~~~>|"Carol"| ||
| |<--------------------------|Server | +-------+----+|
| |CCP Response | | | | |
+--------+ <sidebarResvConfObjID, | | | | |
confID> | | | V |
| | | +---------+--+|
| | | |policies | ||
| | |~~~>+---------+ ||
| | | | ||
| +-----------+ | Sidebar ||
"Alice" | | Chat ||
+--------+ | | Reservation||
| |CCP Request <update, | +-----------+ | ||
| | sidebarResvConfObjID,| | | | ||
| Client |-------------------------->| |~~~>| ||
| | confID,confUserID, | | | +------------+|
| | video=parent, | | | | |
| | audio=sidebar> | |Conference | | |
| | | |Control | V |
| | | |Server | +---------+--+|
| |CCP Response | | | |policies | ||
| |<activeChatSideConfObjID,| | | +---------+ ||
| |<--------------------------| | |Active Chat ||
+--------+ confID> | | | |Sidebar ||
| | | |Conference ||
| +-----------+ +-------+ ||
| |"Alice"| ||
"Bob" | | | ||
+--------+ NOTIFY <"Bob"=added> |+------------+ +-------+ ||
| |<-------------------------|Notification|<~~~| | ||
| Client | ||Service | |"Bob" | ||
+--------+ || | +-------+----+|
|+------------+ |
+--------------------------------+
Boulton & Barnes Expires May 2, 2008 [Page 16]
Internet-Draft XCON Chat October 2007
Figure 8: Client Creation of a Sidebar Conference
Upon receipt of the Conference Control Protocol request to "reserve"
a new sidebar chat conference, based upon the active chat conference
received in the request, the conferencing system uses the received
active chat conference to clone a conference chat reservation for the
sidebar. As discussed previously, the sidebar reservation is NOT
independent of the active conference (i.e., parent). The
conferencing system also reserves or allocates a conference ID to be
used for any subsequent protocol requests from any of the members of
the conference. The conferencing system maintains the mapping
between this conference ID and the conference object ID associated
with the sidebar reservation through the conference instance.
Upon receipt of the conference control protocol response to reserve
the conference, "Alice" can now create an active chat conference
using that reservation or create additional reservations based upon
the existing reservations. In this example, "Alice" wants only "Bob"
to be involved in the sidebar, thus she manipulates the membership.
"Alice" also only wants the text from the original conference, but
wants the text within the sidebar to be restricted to the
participants in the sidebar. "Alice" sends a conference control
protocol request to update the information in the reservation and to
create an active conference.
Upon receipt of the conference control protocol request to update the
reservation and to create an active chat conference for the sidebar,
as identified by the conference object ID, the conferencing system
ensures that "Alice" has the appropriate authority based on the
policies associated with that specific conference object to perform
the operation. The conferencing system must also validate the
updated information in the reservation, ensuring that a member like
"Bob" is already a user of this conferencing system.
Depending upon the policies, the initiator of the request (i.e.,
"Alice") and the participants in the sidebar (i.e., "Bob") may be
notified of his addition to the sidebar via the conference
notification service.
6.2. Private Message
The case of private messages can be handled as a sidebar with just
two participants, identical to the example in section Section 6.1.
The other context, referred to as whisper, in this document refers to
situations involving one time media targetted to specific user(s).
An example of a whisper would be a text message injected only to the
conference chair or to a new participant joining a conference.
Boulton & Barnes Expires May 2, 2008 [Page 17]
Internet-Draft XCON Chat October 2007
Figure 9 provides an example of one user "Alice" whose chairing a
fixed length conference with "Bob" and "Carol". The configuration is
such that only the chair is providing a warning when there is only 10
minutes left in the conference. At that time, "Alice" is moved into
a sidebar created by the conferencing system and only "Alice"
receives that text message announcing the 10 minute warning.
Boulton & Barnes Expires May 2, 2008 [Page 18]
Internet-Draft XCON Chat October 2007
+--------------------------------+
| Conferencing System |
| +---------+--+|
| |policies | ||
| +---------+ ||
| |Active Chat ||
| |Conference ||
| +-------+ ||
| |"Alice"| ||
| +-------+ ||
| +-----------+ |"Bob" | ||
| |Conference | +-------+ ||
| |Control |~~~>|"Carol"| ||
| |Server | +-------+----+|
| | | | |
| | | | |
| | | V |
| | | +---------+--+|
| | | |policies | ||
| | |~~~>+---------+ ||
| | | | ||
| +-----------+ |Sidebar Chat||
"Alice" | |Conference ||
+--------+ NOTIFY <"Alice"=added, |+------------+ +-------+ ||
| |<-------------------------|Notification| | | ||
| Client | activeChatSideConfObjID,||Service |<~~~|"Alice"| ||
+--------+ confID > || | +-------+----+|
|+------------+ |
~~~Text message delivered to "Alice"~~~
| +-----------+ |
| |Conference | |
| |Control | |
| |Server | |
| | | |
| | | \---------+--/|
| | | |\ /||
| | |~~~>+ \ / ||
| | | | \ / ||
| +-----------+ |Sid\bar /hat||
"Alice" | |Conf\re/ce ||
+--------+ NOTIFY <"Alice"=removed,|+------------+ +-----\/+ ||
| |<-------------------------|Notification|<~~~| /\| ||
| Client | activeChatSideConfObjID,||Service | |"Ali/ce\ ||
+--------+ confID > || | +---/---+\---+|
|+------------+ / \ |
+--------------------------------+
Boulton & Barnes Expires May 2, 2008 [Page 19]
Internet-Draft XCON Chat October 2007
Figure 9: Whisper
When the conferencing system determines that there is only 10 minutes
left in the conference which "Alice" is chairing, rather than
creating a reservation as was done for the sidebar in Section 6.1,
the conferencing system directly creates an active chat sidebar
conference, based on the active chat conference associated with
"Alice". As discussed previously, the sidebar conference is NOT
independent of the active conference (i.e., parent). The
conferencing system also allocates a conference ID to be used for any
subsequent manipulations of the sidebar chat conference. The
conferencing system maintains the mapping between this conference ID
and the conference object ID associated with the active sidebar
conference through the conference instance.
Immediately upon creation of the active chat sidebar conference, the
text announcement is provided to "Alice". Depending upon the
policies, Alice may be notified of her addition to the sidebar via
the conference notification service. "Alice" continues to receive
the text messages from the main conference.
Upon delivery of the text announcement, "Alice" is removed from the
sidebar and the sidebar conference is deleted. Depending upon the
policies, "Alice" may be notified of her removal from the sidebar via
the conference notification service.
7. Security Considerations
As discussed in the Centralized Conferencing Framework, there are a
wide variety of potential attacks related to conferencing, due to the
natural involvement of multiple endpoints and the many, often user-
invoked, capabilities provided by the conferencing system. Examples
of attacks in the context of MSRP conferencing would include the
following: an endpoint attempting to receive the messages for
conferences in which it is not authorized to participate, an endpoint
attempting to disconnect other users, and theft of service, by an
endpoint, in attempting to create conferences it is not allowed to
create.
Since this document describes the use of existing protocols (e.g.
MSRP, Conference Control Protocol, SIP, etc.), it also re-uses the
security solutions for those protocols and the associated
authorization mechanisms. Since this solution makes use of the
Centralized Conferencing framework, it makes use of the policy
associated with the conference object to ensure that only authorized
entities are able to manipulate the data to access the capabilities.
This solution also makes use of the privacy and security of the
Boulton & Barnes Expires May 2, 2008 [Page 20]
Internet-Draft XCON Chat October 2007
identity of a user in the conference, as discussed in the Centralized
Conferencing Framework.
8. Acknowledgements
The authors appreciate the input and comments from Miguel Garcia-
Martin and Dave Morgan.
9. References
9.1. Normative References
[1] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997.
[2] Barnes, M., "A Framework for Centralized Conferencing",
draft-ietf-xcon-framework-09 (work in progress), August 2007.
[3] Novo, O., Camarillo, G., Morgan, D., and R. Even, "Conference
Information Data Model for Centralized Conferencing (XCON)",
draft-ietf-xcon-common-data-model-06 (work in progress),
October 2007.
[4] Barnes, M., "Centralized Conferencing Manipulation Protocol",
draft-barnes-xcon-ccmp-02 (work in progress), February 2007.
9.2. Informative References
[5] Roach, A., "An Analysis of Feature Parity Between XCON/
SIMPLE-Based Chatrooms and Other Chatrooms",
draft-roach-xcon-chatroom-analysis-00 (work in progress),
August 2007.
[6] Kalt, C., "Internet Relay Chat: Architecture", RFC 2810,
April 2000.
[7] Saint-Andre, P., Ed., "Extensible Messaging and Presence
Protocol (XMPP): Core", RFC 3920, October 2004.
[8] Rosenberg, J., "A Framework for Conferencing with the Session
Initiation Protocol (SIP)", RFC 4353, February 2006.
[9] Campbell, B., Mahy, R., and C. Jennings, "The Message Session
Relay Protocol (MSRP)", RFC 4975, September 2007.
[10] Niemi, A. and M. Garcia-Martin, "Multi-party Instant Message
Boulton & Barnes Expires May 2, 2008 [Page 21]
Internet-Draft XCON Chat October 2007
(IM) Sessions Using the Message Session Relay Protocol
(MSRP)", draft-ietf-simple-chat-00 (work in progress),
June 2007.
[11] Levin, O. and G. Camarillo, "The Session Description Protocol
(SDP) Label Attribute", RFC 4574, August 2006.
[12] Johnston, A. and O. Levin, "Session Initiation Protocol (SIP)
Call Control - Conferencing for User Agents", BCP 119,
RFC 4579, August 2006.
Authors' Addresses
Chris Boulton
Avaya
Building 3
Wern Fawr Lane
St Mellons
Cardiff, South Wales CF3 5EA
Email: cboulton@avaya.com
Mary Barnes
Nortel
2201 Lakeside Blvd
Richardson, TX
Email: mary.barnes@nortel.com
Boulton & Barnes Expires May 2, 2008 [Page 22]
Internet-Draft XCON Chat October 2007
Full Copyright Statement
Copyright (C) The IETF Trust (2007).
This document is subject to the rights, licenses and restrictions
contained in BCP 78, and except as set forth therein, the authors
retain all their rights.
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Intellectual Property
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any
assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use of
such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at
ietf-ipr@ietf.org.
Acknowledgment
Funding for the RFC Editor function is provided by the IETF
Administrative Support Activity (IASA).
Boulton & Barnes Expires May 2, 2008 [Page 23]
| PAFTECH AB 2003-2026 | 2026-04-24 02:59:22 |