XCON Working Group                                            C. Boulton
Internet-Draft                                           NS-Technologies
Intended status: Standards Track                               M. Barnes
Expires: September 8, 2009                                        Nortel
                                                           March 7, 2009


       Chatrooms within a Centralized Conferencing (XCON) System
                   draft-boulton-xcon-session-chat-03

Status of this Memo

   This Internet-Draft is submitted to IETF in full conformance with the
   provisions of BCP 78 and 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 September 8, 2009.

Copyright Notice

   Copyright (c) 2009 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents in effect on the date of
   publication of this document (http://trustee.ietf.org/license-info).
   Please review these documents carefully, as they describe your rights
   and restrictions with respect to this document.

Abstract

   The document "A Framework for Centralized Conferencing" defines a
   centralized conference as both signaling and protocol agnostic.  The



Boulton & Barnes        Expires September 8, 2009               [Page 1]


Internet-Draft                  XCON Chat                     March 2009


   primary examples within this framework focus on audio and video as
   the media types for the session.  This document provides an overview
   of the mechanisms defined in the centralized conferencing framework
   that can be used to support chatrooms.  In addition, the document
   describes additional functionality and requirements necessary to
   provide feature rich chatroom functionality.


Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  Conventions and Terminology  . . . . . . . . . . . . . . . . .  3
   3.  Overview . . . . . . . . . . . . . . . . . . . . . . . . . . .  4
     3.1.  Protocol Operations  . . . . . . . . . . . . . . . . . . .  5
     3.2.  Chat Session and Conferencing Identifiers  . . . . . . . .  5
   4.  Basic Operations . . . . . . . . . . . . . . . . . . . . . . .  7
   5.  Advanced Operations  . . . . . . . . . . . . . . . . . . . . .  8
   6.  Additional Operations  . . . . . . . . . . . . . . . . . . . .  8
     6.1.  Nicknames  . . . . . . . . . . . . . . . . . . . . . . . .  8
     6.2.  Logging  . . . . . . . . . . . . . . . . . . . . . . . . .  9
     6.3.  History  . . . . . . . . . . . . . . . . . . . . . . . . . 10
     6.4.  Indicating Alternate Venue . . . . . . . . . . . . . . . . 10
   7.  Security Considerations  . . . . . . . . . . . . . . . . . . . 10
   8.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 11
   9.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 11
   10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 11
     10.1. Normative References . . . . . . . . . . . . . . . . . . . 11
     10.2. Informative References . . . . . . . . . . . . . . . . . . 12
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 13






















Boulton & Barnes        Expires September 8, 2009               [Page 2]


Internet-Draft                  XCON Chat                     March 2009


1.  Introduction

   A Centralized Conference as defined by the "A Framework for
   Centralized Conferencing" [RFC5239] 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 provides
   an overview of the mechanisms and associated framework elements
   involved when text is the media for the conference.  This
   functionality is often referred to as a "chatroom" as it provides the
   text equivalent of a voice conversation involving multiple parties.

   Several existing protocols support this chatroom functionality, such
   as Internet Relay Chat (IRC) [RFC1459] and Extensible Messaging and
   Presence Protocol (XMPP) [RFC3920].  In addition,
   [I-D.ietf-simple-chat] provides chatroom functionality for a purely
   SIP signaling based solution option using Message Session Relay
   Protocol (MSRP) [RFC4975].

   The focus of this document is to describe the interface and provide
   guidelines for the the support of existing chatroom functionality on
   a conferencing system based on the XCON framework, independent of the
   specific media type used by the chat client.  The details of the use
   of the XCON framework for chat are provided in the Conference Control
   Manipulation Protocol (CCMP) call flow document
   [I-D.barnes-xcon-examples]

   The functionality described in this document is not intended to
   replace any of the existing chat protocols, nor is it specifying a
   new chat protocol.  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 associated with a chatroom, independent of the
   chat protocol.  This approach also allows the conferencing system to
   provide a natural interworking point for various chat 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 [I-D.ietf-xcon-ccmp].

   The terms "chat" and "chatroom" are used as described in [RFC2664].
   Group chat is used to refer to the conferencing system "chatroom"
   functionality.  A Chat Client is a Conferencing Client as defined in
   [RFC5239] that participates in a "chatroom".



Boulton & Barnes        Expires September 8, 2009               [Page 3]


Internet-Draft                  XCON Chat                     March 2009


3.  Overview

   Figure 1 provides a general illustration of chat clients having a
   direct, 1:1 connection to the conferencing system.  The conferencing
   system receives messages sent from a client participating in a
   conference instance and then distributes them to the other clients
   associated with the conference instance.



                              +--------+
                              |  Chat  |
                              | Client |
                              |        |
                              +--------+
                                  |
                                  |
                                  |
                                  |
                                  |
                                  |
                                  v
                            +------------+
   +--------+               |            |               +--------+
   | Chat   |               |            |               |  Chat  |
   | Client |-------------->|Conferencing|<--------------| Client |
   |        |               |  System    |               |        |
   +--------+               |            |               +--------+
                            +------------+
                                  ^
                                  |
                                  |
                                  |
                                  |
                                  |
                                  |
                              +--------+
                              | Chat   |
                              | Client |
                              |        |
                              +--------+




                        Figure 1: Client Connection

   The approach in this document is to have no impact on the existing



Boulton & Barnes        Expires September 8, 2009               [Page 4]


Internet-Draft                  XCON Chat                     March 2009


   chat 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
   [I-D.ietf-simple-chat].  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
   [I-D.ietf-simple-chat] 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.  The MSRP based IM chat solution is compatible
   with the solution components described in this document, with no
   impact on that basic solution proposal.  One of the advantages of
   applying the two solutions in concert would be to take advantage of
   the centralized conferencing framework model for advanced features,
   such as sidebars and private conferences, and manipulation of the
   conference data.

   [Editor's Note: Add detail as to how this relates to XMPP, as well.]

3.1.  Protocol Operations

   A chat 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 a message is specific to the chat protocol (e.g.,
   MSRP SEND).  Upon issuing a request to send a message, the message
   will be replicated and forwarded by the conferencing system to all
   other chat clients that are participants of the Group Chat conference
   instance.

   A chat 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 [RFC5239] and related protocol document
   [I-D.ietf-xcon-ccmp].  Protocol specific mechanisms are defined in
   other documents such as for SIP in the SIPPING Conference Framework
   [RFC4353].

3.2.  Chat Session and Conferencing Identifiers

   As highlighted in the overview section, a chat client connecting to a
   conferencing system has a 1:1 relationship with the chat signaling
   entity, each having a unique protocol specific Chat Session
   identifier (ID).  When referring to Chat Session IDs the document is
   making reference to the locally (at conferencing system) generated



Boulton & Barnes        Expires September 8, 2009               [Page 5]


Internet-Draft                  XCON Chat                     March 2009


   Chat Session ID used for session signaling identification.  In the
   case of MSRP, this Chat Session ID is inserted into the local path
   SDP attribute.  An important concept in this proposal is the creation
   and management of Group Chats.  It is important that each chat
   session created, as identified by a unique chat session ID, is
   explicitly tied to an associated conference, represented by the
   conference identifier (as defined in the Centralized Conferencing
   Framework [RFC5239]).  This provides the relevant association between
   a chat session and a centralized conference.  A generic example
   representation is illustrated by the rows contained in Figure 2.



             +-----------------------------------------+
             |           Conference Identifier         |
             +-----------------------------------------+
             |         Chat Session ID=8asjdhk         |
             |         Chat Session ID=38iuhds         |
             |         Chat Session ID=djiowid         |
             |         Chat Session ID=389hewu         |
             +-----------------------------------------+



                   Figure 2: Simple Session Association

   The Centralized Conferencing Framework[RFC5239] introduces the
   concept of a conference user identifier defined in
   [I-D.ietf-xcon-common-data-model].  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 a chat 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                        |
   +--------------------------------+-----------------------------+
   |       Chat Session ID=8asjdhk  |  Conf User ID=839ULjj       |
   |       Chat Session ID=38iuhds  |  Conf User ID=0283hHu       |
   |       Chat Session ID=djiowid  |  Conf User ID=ncH37H        |
   |       Chat Session ID=389hewu  |  Conf User ID=pakdjjH       |
   +--------------------------------+-----------------------------+




Boulton & Barnes        Expires September 8, 2009               [Page 6]


Internet-Draft                  XCON Chat                     March 2009


                  Figure 3: Advanced Session Association

   A more complex session association is necessary due to potential for
   a user to have multiple group chats 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 in the case that multiple SDP MSRP media
   sessions (m=) are defined in a single payload.  This internal
   representation needs expanding to enable a conferencing system to
   explicitly associate a media session (m=).  This involves including
   the media label, as defined in [RFC4574], to maintain the internal
   conference association.  An example is illustrated in Figure 4.



   +-----------------------------------------------------------------+
   |                   Conference Identifier                         |
   +-----------------------------------------------------------------+
   | Chat Session ID=8asjdhk  | Conf User ID=839ULjj  | Label=iede3  |
   | Chat Session ID=38iuhds  | Conf User ID=0283hHu  | Label=8heus  |
   | Chat Session ID=838unaH  | Conf User ID=0283hHu  | Label=3cnu7  |
   | Chat Session ID=djiowid  | Conf User ID=ncH37Hs  | Label=jd38J  |
   | Chat Session ID=389hewu  | Conf User ID=pakdj7H  | Label=U83hd  |
   | Chat 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 Group Chat session ID enables the conference
   system to clearly identify a specific Group Chat instance.  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

   The basic operations for creating, joining, and deleting a chat based
   conference are all supported by the XCON framework using CCMP.  The
   discovery of chat rooms available on a specific conferencing system
   is inherent in the blueprint capability provided by the conferencing



Boulton & Barnes        Expires September 8, 2009               [Page 7]


Internet-Draft                  XCON Chat                     March 2009


   system.  The protocol details for these basic operations are provided
   in [I-D.barnes-xcon-examples].


5.  Advanced Operations

   Advanced chat features, such as sidebars and private messages can
   also be suppported within the context of the centralized conferencing
   framework using CCMP.  The protocol details for these advanced
   features are provided in [I-D.barnes-xcon-examples].


6.  Additional Operations

   This section discusses additional operations or features required to
   provide chat room functionality.  Most of the operations are not
   explicitly defined 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.

6.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.).  It is also important to note that the
   functionality to provide nicknames is not limited to users involved
   in chatrooms, thus it should be a general feature of the conferencing
   system.

   Within a conferencing system, all nicknames should map to a
   conference user identifier.  The nicknames are unique only to the
   specific conferencing system.  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).  In order to support nicknames, an attribute is
   defined to the createUser CCMP request message to specify that a user
   wants a nickname.  The conferencing client may include a preferred
   nickname in the createUser CCMP request.

   The conferencing system allocates a conference user identifer and a
   nickname using system specific mechanisms, which may also include
   authentication.  The conferencing system associates the assigned
   nickname with the specific conference user identifier that has been
   allocated.

   As described Section 3.2, the conference user identifer MUST be used
   in conjunction with a chat session identifier to internally represent



Boulton & Barnes        Expires September 8, 2009               [Page 8]


Internet-Draft                  XCON Chat                     March 2009


   a participant in a conference instance.  This association is created
   when a conferencing client requests to create or join a specific
   chatroom.  The nickname allocated for the specific conferencing user
   identifier MUST also be associated with the chat session ID.
   Figure 5 provides an example of the association between the chat
   session identifier, the conference user identifier and conference
   nickname for a specific Group Chat represented by the conference
   identfier.



   +-----------------------------------------------------------------+
   |                   Conference Identifier                         |
   +-----------------------------------------------------------------+
   | Chat Session ID=8asjdhk  | Conf User ID=839ULjj  | Nick=Alice   |
   | Chat Session ID=38iuhds  | Conf User ID=0283hHu  | Nick=Bob     |
   | Chat Session ID=838unaH  | Conf User ID=0283hHu  | Nick=Cliff   |
   | Chat Session ID=djiowid  | Conf User ID=ncH37Hs  | Nick=Dude    |
   | Chat Session ID=389hewu  | Conf User ID=pakdj7H  | Nick=Elliott |
   | Chat Session ID=Ko03jdk  | Conf User ID=pakdj7H  | Nick=Fluffy  |
   +-----------------------------------------------------------------+



             Figure 5: Nickname Associations for a Group Chat

   Depending upon the conferencing system, the conference system may
   allocate the preferred nickname for that user or return a different
   nickname in the createUser CCMP response message.

   In the future, if a more generic nickname mechanism is available,
   rather than provide nicknames that are specific to the conferencing
   system, a conferencing system may interface with a nickname registry,
   for example, in order to allocate a new nickname for a specific
   conferencing client.  This change in how a conferencing system
   allocates nicknames should not impact the CCMP protocol interface to
   support nicknames.

6.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 6.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 in the data model using the general conference



Boulton & Barnes        Expires September 8, 2009               [Page 9]


Internet-Draft                  XCON Chat                     March 2009


   control protocol operations.  One approach for implementing this
   function would be to have it be based on specific manipulation of the
   conference by a user with the appropriate permissions (e.g., CHANGE
   operation to start and stop recording).  Another mechanism for
   implementing this function would be to have a specific user as part
   of the conference to perform this function, by defining a specific
   role such as "observer" and having the media proxied to a logging
   device.

6.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 6.2, should provide a mechanism, using the
   conference identifier, to access the specific information requested
   by a user based on a specific timestamp.  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.

6.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.


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.



Boulton & Barnes        Expires September 8, 2009              [Page 10]


Internet-Draft                  XCON Chat                     March 2009


   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
   identity of a user in the conference, as discussed in the Centralized
   Conferencing Framework.


8.  IANA Considerations

   This document requires no IANA registrations.


9.  Acknowledgements

   The authors appreciate the input and comments from Miguel Garcia-
   Martin, Dave Morgan and Salvatore Loreto.


10.  References

10.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC5239]  Barnes, M., Boulton, C., and O. Levin, "A Framework for
              Centralized Conferencing", RFC 5239, June 2008.

   [I-D.ietf-xcon-common-data-model]
              Novo, O., Camarillo, G., Morgan, D., Even, R., and J.
              Urpalainen, "Conference Information Data Model for
              Centralized Conferencing (XCON)",
              draft-ietf-xcon-common-data-model-12 (work in progress),
              October 2008.

   [I-D.ietf-xcon-ccmp]
              Barnes, M., Boulton, C., Romano, S., and H. Schulzrinne,
              "Centralized Conferencing Manipulation Protocol",
              draft-ietf-xcon-ccmp-01 (work in progress), November 2008.







Boulton & Barnes        Expires September 8, 2009              [Page 11]


Internet-Draft                  XCON Chat                     March 2009


10.2.  Informative References

   [I-D.roach-xcon-chatroom-analysis]
              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.

   [I-D.barnes-xcon-examples]
              Barnes, M., Boulton, C., Miniero, L., and S. Romano,
              "Centralized Conferencing Manipulation Protocol (CCMP)
              Call Flow Examples", draft-barnes-xcon-examples-00 (work
              in progress), July 2008.

   [RFC2664]  Plzak, R., Wells, A., and E. Krol, "FYI on Questions and
              Answers - Answers to Commonly Asked "New Internet User"
              Questions", RFC 2664, August 1999.

   [RFC1459]  Oikarinen, J. and D. Reed, "Internet Relay Chat Protocol",
              RFC 1459, May 1993.

   [RFC2810]  Kalt, C., "Internet Relay Chat: Architecture", RFC 2810,
              April 2000.

   [RFC3920]  Saint-Andre, P., Ed., "Extensible Messaging and Presence
              Protocol (XMPP): Core", RFC 3920, October 2004.

   [RFC4353]  Rosenberg, J., "A Framework for Conferencing with the
              Session Initiation Protocol (SIP)", RFC 4353,
              February 2006.

   [RFC4975]  Campbell, B., Mahy, R., and C. Jennings, "The Message
              Session Relay Protocol (MSRP)", RFC 4975, September 2007.

   [I-D.ietf-simple-chat]
              Niemi, A., Garcia-Martin, M., and G. Sandbakken, "Multi-
              party Chat Using the Message Session Relay Protocol
              (MSRP)", draft-ietf-simple-chat-03 (work in progress),
              October 2008.

   [RFC4574]  Levin, O. and G. Camarillo, "The Session Description
              Protocol (SDP) Label Attribute", RFC 4574, August 2006.

   [RFC4579]  Johnston, A. and O. Levin, "Session Initiation Protocol
              (SIP) Call Control - Conferencing for User Agents",
              BCP 119, RFC 4579, August 2006.





Boulton & Barnes        Expires September 8, 2009              [Page 12]


Internet-Draft                  XCON Chat                     March 2009


Authors' Addresses

   Chris Boulton
   NS-Technologies

   Email: chris@ns-technologies.com


   Mary Barnes
   Nortel
   2201 Lakeside Blvd
   Richardson, TX

   Email: mary.barnes@nortel.com





































Boulton & Barnes        Expires September 8, 2009              [Page 13]