XCON Working Group C. Boulton Internet-Draft Ubiquity Software Corporation Expires: August 27, 2007 M. Barnes Nortel February 23, 2007 Centralized Conferencing (XCON) Using the Message Session Relay Protocol (MSRP) draft-boulton-xcon-msrp-conferencing-04 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 August 27, 2007. Copyright Notice Copyright (C) The IETF Trust (2007). Abstract The document "A Framework and Data Model 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 defines the mechanisms, in the context of this centralized conferencing framework, when using the Message Session Relay Protocol Boulton & Barnes Expires August 27, 2007 [Page 1] Internet-Draft MSRP Conferencing February 2007 (MSRP) for instant messaging sessions. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Conventions and Terminology . . . . . . . . . . . . . . . . . 3 3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3.1. Protocol Operations . . . . . . . . . . . . . . . . . . . 5 3.2. MSRP and Conferencing Identifiers . . . . . . . . . . . . 5 4. Basic Operations . . . . . . . . . . . . . . . . . . . . . . . 7 4.1. Creating a Chat Room . . . . . . . . . . . . . . . . . . . 8 4.2. Joining a Chat Room . . . . . . . . . . . . . . . . . . . 10 4.3. Deleteing a Chat Room . . . . . . . . . . . . . . . . . . 12 5. Advanced Operations . . . . . . . . . . . . . . . . . . . . . 13 5.1. Text Sidebar . . . . . . . . . . . . . . . . . . . . . . . 13 5.2. Private Message . . . . . . . . . . . . . . . . . . . . . 16 6. Security Considerations . . . . . . . . . . . . . . . . . . . 19 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 20 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 20 8.1. Normative References . . . . . . . . . . . . . . . . . . . 20 8.2. Informative References . . . . . . . . . . . . . . . . . . 20 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 21 Intellectual Property and Copyright Statements . . . . . . . . . . 22 Boulton & Barnes Expires August 27, 2007 [Page 2] Internet-Draft MSRP Conferencing February 2007 1. Introduction A Centralized Conference as defined by the "A Framework and Data Model for Centralized Conferencing" [2] is both signaling and protocol agnostic. The primary examples within this framework focus on audio and video as the media types for the session. The requirements to support conferences of session-based instant messages, private messaging, and sidebars are introduced in [6], which also provides a purely SIP signaling based solution option. This document defines the mechanisms and associated framework elements involved when using the Message Session Relay Protocol(MSRP) [4] in a centralized conference, as defined by [2], in support of those requirements. This document has been constructed to be compatible with both the XCON Framework and "A Call Control and Multi-party usage framework for the Session Initiation Protocol (SIP)" [3] document (SIPPING Conferencing Framework). The Centralized Conferencing Framework provides the data model and interfaces to be used while the SIPPING Conferencing Framework provides details of the SIP signaling protocol operations. For the purpose of this document, MSRP will be discussed in the context of SIP being the carrying protocol, as defined in the core MSRP [4] specification. 2. Conventions and Terminology In this document, the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as described in BCP 14, [1] and indicate requirement levels for compliant implementations. 3. Overview MSRP is defined as a peer-to-peer protocol that enables a direct connection between two compliant endpoints, unless an MSRP relay is inserted in the MSRP signaling path. The MSRP Relay specification [5] details the associated functionality with a relay in the signaling path. Centralized conferencing using MSRP can be achieved by the conferencing system appearing as an MSRP endpoint for Conference Participants, with the conferencing system distributing the messages by relaying them to each of the conference participants. Figure 1 provides an illustration of MSRP clients having a direct, 1:1 connection to the conferencing system. The MSRP conferencing system can be roughly categorized as a hybrid MSRP entity that Boulton & Barnes Expires August 27, 2007 [Page 3] Internet-Draft MSRP Conferencing February 2007 combines both MSRP client and MSRP relay functionality. An MSRP SEND sent to the conference will arrive at the conference server and then be replicated to all appropriate MSRP sessions. +--------+ | MSRP | | Client | | | +--------+ | | | | | | v +------------+ +--------+ | | +--------+ | MSRP | | MSRP | | MSRP | | Client |-------------->|Conferencing|<--------------| Client | | | | System | | | +--------+ | | +--------+ +------------+ ^ | | | | | | +--------+ | XCON | | Client | | | +--------+ Figure 1: Client Connection The approach in this document is to minimize the impact on the MSRP protocol, while taking full advantage of the functionality provided by the centralized conferencing framework. The solution proposal in this document meets the requirements identified in the requirements section of the multiparty IM with MSRP document [6], with the exception of the requirements (REQ-5, REQ-6 and REQ-7) related to the concept of nicknames. A solution for nicknames is currently not Boulton & Barnes Expires August 27, 2007 [Page 4] Internet-Draft MSRP Conferencing February 2007 within the scope of the centralized conferencing framework or associated protocol documents, although it is a useful and desireable concept. A basic solution for IM chat sessions, also meeting the Multiparty IM using MSRP requirements, is documented in [6]. 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 [6] 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 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 On issuing an MSRP SEND request to an MSRP media session that is a member of a conference instance, the SEND request will be replicated and forwarded, in the relevant context, to all other MSRP media sessions that are participants of the conference instance. An MSRP capable client wishing to join a conference uses standardized mechanisms for creating and joining a conference. SIP signaling mechanisms for creating and joining a conference are defined in SIPPING Conference Framework [3] and non signaling specific mechanisms are defined in the Centralized Conferencing Framework [2] and related protocol document [TBD]. An An MSRP capable client wishing to delete a chat room uses standardized mechanisms for deleteing a conference. SIP signaling mechanisms for deleting a conference are defined in SIPPING Conference Framework [3] and non signaling specific mechanisms are defined in the Centralized Conferencing Framework [2] and related protocol document [TBD]. 3.2. MSRP and Conferencing Identifiers As mentioned in the overview, an MSRP client connecting to a conferencing system has a 1:1 relationship with the MSRP signaling entity, each having a unique MSRP session ID (session ID's are contained in MSRP URLs). When referring to MSRP session ID's the document is making reference to the locally (at conferencing system) generated session ID that is inserted into the local path SDP attribute and used for MSRP session signaling identification. An Boulton & Barnes Expires August 27, 2007 [Page 5] Internet-Draft MSRP Conferencing February 2007 important concept in this proposal is the creation and management of MSRP sessions. It is important that each MSRP session created, as identified by the unique session ID, is explicitly tied to an associated conference, represented by the conference identifier (as defined in the Centralized Conferencing Framework [3]). This provides the relevant association between MSRP and an XCON Conference. An example representation is illustrated by the rows contained in Figure 2. --------------------------------------------- | Conference Identifier | --------------------------------------------- | MSRP Session ID=8asjdhk | | MSRP Session ID=38iuhds | | MSRP Session ID=djiowid | | MSRP Session ID=389hewu | --------------------------------------------- Figure 2: Simple Session Association The Centralized Conferencing Framework[3] introduces the concept of a conference user identifier defined in [9]. 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 the MSRP 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 | ------------------------------------------------------------------- | MSRP Session ID=8asjdhk | Conf User ID=839ULjj | | MSRP Session ID=38iuhds | Conf User ID=0283hHu | | MSRP Session ID=djiowid | Conf User ID=ncH37H | | MSRP 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 MSRP sessions in a single conference instance, such as multi-lingual conference support. The conference Boulton & Barnes Expires August 27, 2007 [Page 6] Internet-Draft MSRP Conferencing February 2007 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 [7], to maintain the internal conference association. An example is illustrated in Figure 4. ---------------------------------------------------------------------------- | 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 uidentifiers '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 [7],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 [7] 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) using MSRP within the context of the centralized conferencing framework. A brief discussion and diagrams are provided for the creating, joining and deleting a chat based conference. The Boulton & Barnes Expires August 27, 2007 [Page 7] Internet-Draft MSRP Conferencing February 2007 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 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. 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 and detailed in [8]. 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 August 27, 2007 [Page 8] Internet-Draft MSRP Conferencing February 2007 +--------------------------------+ | Conferencing System | "Alice" | +------------+| +--------+ | | || | |CCP Request | +-----------+ | || | Client |-------------------------->|Conference | |Conference || | |<--------------------------|Control |~~~>|Blueprint(s)|| +--------+CCP Response | | "Alice" | +--------+ | | | |CCP Request |Conference | |Conference || | | confUserID> | |Control |~~~>|Chat || | |<--------------------------|Server | |BlueprintA || | |CCP Response | | | +------------+| +--------+ | | | /|\ | | | | V | | | | +------------+| | | |~~~>|Conference || | | | |Chat || | | | |Reservation || | +-----------+ +------------+| "Alice" | | | +--------+ | | | | |CCP Request |Conference | |Active || | | confID,confUserID> | |Control |~~~>|Chat || | |<--------------------------|Server | |Conference || | |CCP Response | | | +------------+| +--------+ | +-----------+ | +--------------------------------+ 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 August 27, 2007 [Page 9] Internet-Draft MSRP Conferencing February 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 "reserve" 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 August 27, 2007 [Page 10] Internet-Draft MSRP Conferencing February 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 || +--------+ Add, "Bob" > | |Server | |Conference || | +-----------+ +-------+ || | |"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 August 27, 2007 [Page 11] Internet-Draft MSRP Conferencing February 2007 to perform the operation. Once "Bob" has been successfully added to the chat room, per updates to the state, and 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. Deleteing 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 || | +-----------+ +-------+ || | |"Alice"| || "Alice" | ' ' '| +-------+ NOTIFY ||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 to delete this conference. Since "Alice" is the creator of the Boulton & Barnes Expires August 27, 2007 [Page 12] Internet-Draft MSRP Conferencing February 2007 conference, the "delete" operation is performed, with the appropriate signalling sent to the participants. 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. 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. 5.1. Text Sidebar The Multi-party IM using MSRP document [6] identifies the requirement (REQ-GEN-12) to set up a sidebar conference with one or more participants of the conference. The concept of a 'sidebar' in an XCON compliant conference 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 MSRP based sessions 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 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 conference 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 conference. Whether the text is interleaved with the main chat or whether a separate window is created for the sidebar is implementation Boulton & Barnes Expires August 27, 2007 [Page 13] Internet-Draft MSRP Conferencing February 2007 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 August 27, 2007 [Page 14] Internet-Draft MSRP Conferencing February 2007 +--------------------------------+ | Conferencing System | | +---------+--+| | |policies | || | +---------+ || | |Active Chat || | |Conference || "Alice" | +-------+ || +--------+ | |"Alice"| || | |CCP Req |Conference | +-------+ || | | confUserID> | |Control |~~~>|"Carol"| || | |<--------------------------|Server | +-------+----+| | |CCP Response | | | | | +--------+ | | | V | | | | +---------+--+| | | | |policies | || | | |~~~>+---------+ || | | | | || | +-----------+ | Sidebar || "Alice" | | Chat || +--------+ | | Reservation|| | |CCP Request | |~~~>| || | | confID,confUserID, | | | +------------+| | | video=parent, | | | | | | | audio=sidebar> | |Conference | | | | | | |Control | V | | | | |Server | +---------+--+| | |CCP Response | | | |policies | || | | | | | |Sidebar || | | | |Conference || | +-----------+ +-------+ || | |"Alice"| || "Bob" | | | || +--------+ NOTIFY <"Bob"=added> |+------------+ +-------+ || | |<-------------------------|Notification|<~~~| | || | Client | ||Service | |"Bob" | || +--------+ || | +-------+----+| |+------------+ | +--------------------------------+ Boulton & Barnes Expires August 27, 2007 [Page 15] Internet-Draft MSRP Conferencing February 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. 5.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 5.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 August 27, 2007 [Page 16] Internet-Draft MSRP Conferencing February 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 August 27, 2007 [Page 17] Internet-Draft MSRP Conferencing February 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 August 27, 2007 [Page 18] Internet-Draft MSRP Conferencing February 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 5.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. 6. Security Considerations As discussed in the XCON 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 solution makes use of existing protocols (e.g. MSRP, Conference Control Protocol, SIP), it also re-uses the security solutions for those protocols and the associated authorization mechanisms. There are security issues associated with the authorization to specifically perform the MSRP conferencing capability. Since this solution makes use of the XCON framework, it makes use of the policy associated with the conference object to ensure that only authorized entities are able to manipulate the data Boulton & Barnes Expires August 27, 2007 [Page 19] Internet-Draft MSRP Conferencing February 2007 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 XCON Framework. 7. Acknowledgements The authors would like to thank Miguel Garcia-Martin for his comments on this document and discussion of the solution options. 8. References 8.1. Normative References [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. 8.2. Informative References [2] Barnes, M., "A Framework and Data Model for Centralized Conferencing", draft-ietf-xcon-framework-07 (work in progress), January 2007. [3] Rosenberg, J., "A Framework for Conferencing with the Session Initiation Protocol (SIP)", RFC 4353, February 2006. [4] Campbell, B., "The Message Session Relay Protocol", draft-ietf-simple-message-sessions-18 (work in progress), December 2006. [5] Jennings, C., "Relay Extensions for the Message Sessions Relay Protocol (MSRP)", draft-ietf-simple-msrp-relays-10 (work in progress), December 2006. [6] Niemi, A. and M. Garcia-Martin, "Multi-party Instant Message (IM) Sessions Using the Message Session Relay Protocol (MSRP)", draft-niemi-simple-chat-05 (work in progress), June 2006. [7] Levin, O. and G. Camarillo, "The Session Description Protocol (SDP) Label Attribute", RFC 4574, August 2006. [8] Johnston, A. and O. Levin, "Session Initiation Protocol (SIP) Call Control - Conferencing for User Agents", BCP 119, RFC 4579, August 2006. [9] Boulton, C. and M. Barnes, "A User Identifier for Centralized Conferencing (XCON)", draft-boulton-xcon-userid-00 (work in Boulton & Barnes Expires August 27, 2007 [Page 20] Internet-Draft MSRP Conferencing February 2007 progress), October 2006. Authors' Addresses Chris Boulton Ubiquity Software Corporation Building 3 Wern Fawr Lane St Mellons Cardiff, South Wales CF3 5EA Email: cboulton@ubiquitysoftware.com Mary Barnes Nortel 2201 Lakeside Blvd Richardson, TX Email: mary.barnes@nortel.com Boulton & Barnes Expires August 27, 2007 [Page 21] Internet-Draft MSRP Conferencing February 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 August 27, 2007 [Page 22]