XCON Working Group M. Barnes Internet-Draft Nortel Intended status: Informational C. Boulton Expires: January 8, 2009 Avaya L. Miniero S P. Romano University of Napoli July 7, 2008 Centralized Conferencing Manipulation Protocol (CCMP) Call Flow Examples draft-barnes-xcon-examples-00.txt 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 January 8, 2009. Abstract This document provides detailed call flows for the scenarios documented in the Centralized Conferencing (XCON) Framework and the XCON Scenarios. The call flows document the use of the interface between a conference control client and a conference control server using the Centralized Conferencing Manipulation Protocol (CCMP). The objective is to provide a base reference for both protocol researchers and developers. Barnes, et al. Expires January 8, 2009 [Page 1] Internet-Draft CCMP Call Flow Examples July 2008 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 3 3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 4. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4.1. A Practical Approach . . . . . . . . . . . . . . . . . . . 5 4.1.1. Conferencing Control Client Overview . . . . . . . . . 5 4.1.2. Conferencing Control Server Overview . . . . . . . . . 5 5. Conference Creation . . . . . . . . . . . . . . . . . . . . . 6 5.1. Basic Conference Creation . . . . . . . . . . . . . . . . 6 5.2. Basic Conference Creation for a specific instance of Conference Information . . . . . . . . . . . . . . . . . . 8 5.3. Basic Conference Creation - Cloning an existing Conference . . . . . . . . . . . . . . . . . . . . . . . . 9 5.4. Conference Creation using Blueprints . . . . . . . . . . . 11 6. General Conference scenarios and examples . . . . . . . . . . 14 6.1. Conference Announcements and Recordings . . . . . . . . . 14 6.2. Monitoring for DTMF . . . . . . . . . . . . . . . . . . . 15 6.3. Adding a Party . . . . . . . . . . . . . . . . . . . . . . 15 6.4. Joining a Conference . . . . . . . . . . . . . . . . . . . 16 6.5. Muting a Party . . . . . . . . . . . . . . . . . . . . . . 17 6.6. Internal Sidebar . . . . . . . . . . . . . . . . . . . . . 18 6.7. External Sidebar . . . . . . . . . . . . . . . . . . . . . 19 6.8. Floor control using sidebars . . . . . . . . . . . . . . . 21 6.9. Whispering or Private Messages . . . . . . . . . . . . . . 22 6.10. Observing and Coaching . . . . . . . . . . . . . . . . . . 23 7. Removing participants and deleting conferences . . . . . . . . 24 7.1. Removing a Party . . . . . . . . . . . . . . . . . . . . . 25 7.2. Deleting a Conference . . . . . . . . . . . . . . . . . . 26 8. Additional Conference Scenarios and Examples . . . . . . . . . 26 8.1. Chat . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 8.1.1. Basic Chat Operations . . . . . . . . . . . . . . . . 27 8.1.2. Additional Operations . . . . . . . . . . . . . . . . 31 8.1.3. Advanced Operations . . . . . . . . . . . . . . . . . 33 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 36 10. Security Considerations . . . . . . . . . . . . . . . . . . . 36 11. Change Summary . . . . . . . . . . . . . . . . . . . . . . . . 36 12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 36 13. References . . . . . . . . . . . . . . . . . . . . . . . . . . 36 13.1. Normative References . . . . . . . . . . . . . . . . . . . 36 13.2. Informative References . . . . . . . . . . . . . . . . . . 37 Appendix A. IM Chat and Conferencing Identifier Relationships . . 39 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 41 Intellectual Property and Copyright Statements . . . . . . . . . . 43 Barnes, et al. Expires January 8, 2009 [Page 2] Internet-Draft CCMP Call Flow Examples July 2008 1. Introduction This document provides detailed call flows for the scenarios documented in the Centralized Conferencing (XCON) Framework [RFC5239] and the XCON Scenarios [RFC4597]. The XCON scenarios describe a broad range of use cases making use of the advanced conferencing capabilities provided by a system realization of the XCON framework. The call flows document the use of the interface between a conference control client and a conference control server using the Centralized Conferencing Manipulation Protocol (CCMP)[I-D.ietf-xcon-ccmp]. Due to the broad range of functionality provided by the XCON Framework and the flexibility of the CCMP messaging, these call flows should not be considered inclusive of all the functionality that can provided by the XCON Framework and protocol implementations. These flows represent a sample in order to provide an overview of the feature rich capabilities of the XCON framework and CCMP messaging. The objective is to provide some concrete examples for both implementors and protocol researchers. 2. Conventions 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, RFC 2119 [RFC2119] and indicate requirement levels for compliant implementations. In this document, these key words are used when describing normative functionality based on the XCON Framework and CCMP. Note that due to RFC formatting conventions, this document often splits message details whose content would exceed 72 characters. A backslash character marks where this line folding has taken place. This backslash and its trailing CRLF and whitespace would not appear in the actual protocol contents. 3. Terminology This document uses the same terminology as found in the referenced documents, with the following terms and abbreviations used in the call flows. Also, note that the term "call flows" is used in a very generic sense in this document since the media is not limited to voice. The calls supported by the XCON framework and CCMP can consist of media such as text, voice and video, including multiple media types in a single active conference. Barnes, et al. Expires January 8, 2009 [Page 3] Internet-Draft CCMP Call Flow Examples July 2008 Conferencing and Media Client Client (CMCC): This client may be an integral part of a User Agent Client (UAC) per [RFC3261]. In the flows in this document, the CMCC is logically equivalent to the use of UAC as the client notation in the media control call flows [I-D.miniero-mediactrl-escs]. Conferencing Server (ConfS): In this document, the conferencing server is used interchangeably with the term Application Server (AS) in the Media Control framework [I-D.ietf-mediactrl-architecture] to simplify the call flows. However, these need not be the same entities in an implementation. Media Server (MS): Media Server. Per its definition in the Media Control Architecture. 4. Overview This document provides a sampling of detailed call flows that can be implemented based on a system realization of [RFC5239] and implementation of [I-D.ietf-xcon-ccmp]. This is intended to be a simple guide on the use of the conference control protocol between the Conference Server and the Conference Control Client. It is expected that this document provides a helpful base reference for other implementors and protocol researchers. This document focuses on the interaction between the Conference (and Media) Control Client and the Conferencing system, specifically the Conference Server. The initial scenarios chosen are based on the ones described in the XCON framework, many of which are based on the advanced conferencing capabilities described in the XCON scenarios. Additional scenarios have been added to provide examples of other real life scenarios that are anticipated to be supported by the framework and to document the conference control that complements some of the Media Control Call Flows [I-D.miniero-mediactrl-escs]. Rather than repeat the details associated with the media control, this document references the media control call flow examples [I-D.miniero-mediactrl-escs] by Figure title to aid the user in finding the flows in that document. This approach was taken rather than integrating the two documents due to dependencies in completing working group items and because the messages for the two protocols provide fairly discrete operations. In addition, the scenarios for which floor control are used also do not include details of the Binary Floor Control Protocol (BFCP) [RFC4582], but rather refer to that document for further details for clients that also implement BFCP for floor control. Barnes, et al. Expires January 8, 2009 [Page 4] Internet-Draft CCMP Call Flow Examples July 2008 In the following sections some approaches and choices by which one can implement the XCON framework and the related protocols are described. This provides the context for the ordering of the flows. The physical client can implement all the client side protocols in a single device or the protocols might exist in multiple places, such as a separate device supporting the media interface and another for conference control (e.g., video along with a web based interface for conference control). This section should not be considered a mandatory approach to the implementation of the XCON framework. It is only meant to ease the understanding of how the framework works from a practical point of view. 4.1. A Practical Approach This section provides a logical overview of an implementation approach for a a conference control client and conference server implementing CCMP. This section is not normative, however, it's anticipated that it gives an implementor an idea of the overall general functionality that can be implemented to support the XCON framework and CCMP. 4.1.1. Conferencing Control Client Overview A basic conferencing control client can integrate all the functionality including media, conference and floor control into a single client. However, this diagram is focused on the processing directly associated with CCMP, with annotations/callouts when media control or floor interaction might be necessary or would be allowed. It's entirely an implementation choice how a client might implement those interactions, however, it's recommended that the implementor consider the possible distributed nature of the various control protocols. (Figure not available yet). Figure 1: Conferencing Control Client CCMP State Diagram 4.1.2. Conferencing Control Server Overview A conferencing system can integrate all the functionality including conference control, floor control and even Application Server functionality to support media control into a single client. However, this diagram is focused on the processing directly associated with CCMP, with annotations/callouts when media control or floor interaction might be necessary or would be allowed. It's Barnes, et al. Expires January 8, 2009 [Page 5] Internet-Draft CCMP Call Flow Examples July 2008 entirely an implementation choice how a client might implement those interactions, however, it's recommended that the implementor consider the possible distributed nature of the various control protocols. (Figure not available yet). Figure 2: Conference Server CCMP State Diagram 5. Conference Creation This section provides the details associated with the various ways in which a conference can be created using CCMP and the XCON framework constructs. As previously mentioned the details of the media control and floor control protocols, where applicable, are annotated in the flows without showing all the details. However, for clarification purposes, the first example Section 5.1 provides the details of the media control messaging along with an example of the standard annotation used throughout the remainder of this document. [Editors' Note: should we add the call control signaling (i.e., SIP) to the annotated example, as well. There is already a reference to the call control signaling in the text description - is that sufficient?] The term conferenceing server (ConfS) is shown in the diagrams in this document as opposed to the more generic application server (AS) in the media control flow document [I-D.miniero-mediactrl-escs]. Also, note that the term conferencing and media control client (CMCC) in these call flows may be an integral part of a User Agent Client (UAC) per [RFC3261], which is the client notation used in the media control call flow document. However, in the context of XCON, the conferencing and media control client can be independent of the call signaling client. 5.1. Basic Conference Creation The simplest manner in which a conference can be created is accomplished by the client sending a "confRequest" message with the "create" operation as the only parameter to the conference server. This results in the creation of a default conference, with an XCON- URI in the form of the "confObjID" parameter, the XCON-UserID in the form of the "confUserID" parameter and the data for the conference object in the "conference-info" parameter all returned in the "confResponse" message. This example also activates the conference upon creation, thus the call signaling interactions to add the CMCC to the conference are completed prior to returning the confResponse Barnes, et al. Expires January 8, 2009 [Page 6] Internet-Draft CCMP Call Flow Examples July 2008 message. The media interactions handled when the confResponse message is sent. CMCC ConfS MS | | | |(1) confRequest(create) | | |----------------------->| | | |1.CONTROL (create conference)| | |+++++++++++++++++++++++++++>>| | | |--+(a)create | | | | conf and | | 2. 200 OK (with confID)|<-+ its ID | |<<+++++++++++++++++++++++++++| | |--+ | | | | (b)Setup call signaling | | | | and media to CMCC | |(2)confResponse(create,\|<-+ via Focus | |<-----------------------| | | confObjID, confUserID,\| | | conference-info) | | | | | | |3.CONTROL(join CMCC<->confID)| | |+++++++++++++++++++++++++++>>| | | |--+ (c) join | | | | CMCC & | |4. 200 OK |<-+ confID | |<<+++++++++++++++++++++++++++| | | | | | | |<<##################################################>>| | Now the CMCC is mixed in the conference | |<<##################################################>>| . . . . . . Figure 3: Create Basic Conference - Complete flow Barnes, et al. Expires January 8, 2009 [Page 7] Internet-Draft CCMP Call Flow Examples July 2008 CMCC ConfS | | | (1) confRequest(create) | |------------------------------>| | |--+ | | |(a) Create conf | | | and ID | | |(b) Setup call | | | signaling and | | | media interface | | | to CMCC | (2) confResponse(create,\ |<-+ via Focus |<------------------------------| | confObjID, confUserID,\ |--+ | conference-info) | |(c) Join CMCC | | | and media | |<-+ | | . . . . Figure 4: Create Basic Conference - Annotated Flow (CCMP Messaging details not available yet). Figure 5: Create Basic Conference (Annotated) Detailed Messaging 5.2. Basic Conference Creation for a specific instance of Conference Information A conference can also be created by the client sending a "confRequest" message with the "create" operation, along with the desired data in the form of the "conference-info" parameter for the conference to be created. An example where this approach might be applicable would be in the case where a conference user might need to use a different conferencing system than is typically used (e.g., one that is more geographically appropriate for some participants that perhaps do not support advanced conferencing functionality). If the specific conferencing system can support that specific type of conference (capabilities, etc.), then the request results in the creation of a conference. In this success case, an XCON-URI in the form of the "confObjID" parameter and the XCON-UserID in the form of the "confUserID" parameter are returned in the "confResponse" message. The "conference-info" is not returned unless changes have Barnes, et al. Expires January 8, 2009 [Page 8] Internet-Draft CCMP Call Flow Examples July 2008 been made, in which case the "responseCode" is "modified". This example also activates the conference upon creation, thus the call signaling interactions to add the CMCC to the conference are completed prior to returning the confResponse message. The media interactions handled when the confResponse message is sent. CMCC "Alice" ConfS | | | (1) confRequest(create,\ | |------------------------------>|(a') Validate user/ | conference-info) | conference-info data | |--+ | | |(a) Create conf | | | and ID | | |(b) Setup call | | | signaling and | | | media interface | | | to CMCC | |<-+ | (2) confResponse(create,\ | |<------------------------------| | confObjID, confUserID) |--+ | | | (c) Join CMCC | | | and media | |<-+ | | . . . . Figure 6: Create Basic Conference from user provided conference-info (CCMP Messaging details not available yet). Figure 7: Create Basic Conference Detailed Messaging 5.3. Basic Conference Creation - Cloning an existing Conference A client can also create another conference by cloning an existing conference, such as an active conference or conference reseravation. In this example, the client sends a "confRequest" message with the "create" operation, along with a specific "confObjID", from which a new conference is to be created by cloning an existing conference. Barnes, et al. Expires January 8, 2009 [Page 9] Internet-Draft CCMP Call Flow Examples July 2008 An example of how a client can create a conference based on a blueprint is provided in Section 5.4. The manner by which a client in this example might learn about a conference reservation or active conferences is similar to the first step in the blueprint example, with the exception of specifying querying for different types of conference objects supported by the specific conferencing system. For example, in this example, the client clones a conference reservation, thus the client would include the appropriate "confObjState" parameter. [Note: we don't currently have this parmeter in the XML schema in CCMP, BUT this functionality is documented in the text.] If the conferencing system can support a new instance of the specific type of conference(capabilities, etc.), then the request results in the creation of a conference, with an XCON-URI in the form of the "confObjID" parameter to reflect the newly cloned conference object and the XCON-UserID in the form of the "confUserID" parameter returned in the "confResponse" message. The "conference-info" is not returned unless there had been changes, in which case the "responseCode" is "modified". This example also activates the conference upon creation, thus the call signaling interactions to add the CMCC to the conference are completed prior to returning the confResponse message. The media interactions handled when the confResponse message is sent. CMCC "Alice" ConfS | | | (1) confRequest(create,\ | |------------------------------>|(a') Validate user | confObjID, child) | and confObjID | |--+ | | |(a) Create conf | | | and ID | | |(b) Setup call | | | signaling and | | | media interface | | | to CMCC | |<-+ | (2) confResponse(create,\ | |<------------------------------| | confObjID, confUserID) |--+ | | | (c) Join CMCC | | | and media | |<-+ | | . . . . Barnes, et al. Expires January 8, 2009 [Page 10] Internet-Draft CCMP Call Flow Examples July 2008 Figure 8: Create Basic Conference - Clone 1. "Alice" sends a confRequest message to clone a conference based on an existing conference reservation. "Alice" indicates this conference should be a "child" of the parent conference represented by the "confObjID" in the request. 2. Upon receipt of the confRequest message containing a "create" operation and "confObjID", the conferencing system ensures that the "confObjID" received is valid. The conferencing system determines the appropriate read/write access of any users to be added to a conference based on this confObjID(using membership, roles, etc.). The conferencing system uses the received confObjID to clone a conference reservation. The conferencing system also reserves or allocates a new confObjID to be used for the cloned conference object. Any subsequent protocol requests from any of the members of the conference. The conferencing system maintains the mapping between this conference ID and the parent conference object ID associated with the reservation through the conference instance. (CCMP Messaging details not available yet). Figure 9: Create Basic Conference (Clone) Detailed Messaging 5.4. Conference Creation using Blueprints Figure 10 provides an example of one client "Alice" determining the conference blueprints available for a particular conferencing system and creating a conference based on the desired blueprint. Barnes, et al. Expires January 8, 2009 [Page 11] Internet-Draft CCMP Call Flow Examples July 2008 CMCC "Alice" ConfS | | | (1) optionsRequest | |------------------------------>| | | | (2) optionsResponse | |<------------------------------| |--+ | | | choose preferred | | | blueprint from the | | | list (blueprintName) | |<-+ | | (3) confRequest(create,\ | |------------------------------>|(a')Validate user | blueprintName, | and confObjID | confObjID, child) |--+ | | |(a)Create conf | | | and ID | |<-+ | (4) confResponse(create,\ | |<------------------------------| | confObjID, confUserID) | | | | | | | . . . . Figure 10: Client Creation of Conference using Blueprints 1. "Alice" first sends an "optionsRequest" message to the conferencing system identified by the conference server discovery process (details TBD). Upon receipt of the "optionsRequest", the conferencing system would first authenticate "Alice" (and allocate a conference user identifier, if necessary) and then ensure that "Alice" has the appropriate authority based on system policies to receive any blueprints supported by that system. Any blueprints that "Alice" is authorized to use are returned in a "optionsResponse" message in the "blueprints" attribute, along with the "confUserID" parameter. 2. Upon receipt of the "optionsResponse" 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 and start time. Barnes, et al. Expires January 8, 2009 [Page 12] Internet-Draft CCMP Call Flow Examples July 2008 3. "Alice" then sends a "confRequest" with a "create" operation to the conferencing system to create a conference reservation based upon the updated blueprint, including the appropriate "blueprintName" and associated "confObjID". Note: This conference is created as independent of the parent (blueprint), but there are no hard and fast requirements as to whether conference from blueprints are always independent or whether the conferences cloned from conference reservations or active conferences are also children. The protocol is flexible enough to allow all the variations, thus any limitations would be specific to a conferencing system. Upon receipt of the "confRequest" message with a "create" operation and an "action" 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). [Note: we don't currently have this "action" field defined for the "confRequest" message.] 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 CCMP requests from any of the members of the conference. The conferencing system maintains the mapping between this conference ID and the "confObjID" associated with the reservation through the conference instance. 4. The conferencing server then sends a "confResponse" message including the "confObjID" associated with the reserved conference. Upon receipt of the "confResponse" message, "Alice" can now create an active conference using that reservation or create additional reservations based upon the existing reservation. 5. In this example, "Alice" has reserved a meetme conference bridge. Thus, "Alice" provides the conference information, including the necessary "confObjID", to desired participants. Note, that this interface is entirely outside the scope of the XCON framework, protocols and this document. When the first participant, "Alice" in this example, then requests to be added to the conference by sending a "userRequest" .... 6. Upon receipt of the "userRequest" message, the conference is activated and the focus is created. The focus is associated with the "confObjID" received in the request. Any participants that have the authority to manipulate the conference would receive the "confObjID" in any responses. The conference server then sends "userResponse" Barnes, et al. Expires January 8, 2009 [Page 13] Internet-Draft CCMP Call Flow Examples July 2008 message.... (CCMP Messaging details not available yet). Figure 11: Create Conference (Blueprint) Detailed Messaging 6. General Conference scenarios and examples The following scenarios are based on those documented in the XCON framework. The examples assume that a conference has already been correctly established, with media, if applicable, per one of the examples in Section 5. 6.1. Conference Announcements and Recordings In this example, as shown in Figure 12 "Alice" is joining "Bob"'s conference that requires that she first enter a pass code. After successfully entering the passcode, an announcement prompts "Alice to speak her name so it can be recorded. When "Alice" is added to the active conference, the recording is played back to all the existing participants. (Figure not available yet). Figure 12: Recording and Announcements 1. Upon receipt of the userRequest from "Alice" to be added to "Bob's" conference, the conferencing system maps the identifier received in the request to the conference object representing "Bob's" active conference. The conferencing system determines that a password is required for this specific conference, thus an announcement asking "Alice" to enter the password is provided to "Alice". Once "Alice" enters the password, it is validated against the policies associated with "Bob's" active conference. The conferencing system then connects to a server which prompts and records "Alice's" name. The conferencing system must also determine whether "Alice" is already a user of this conferencing system or whether she is a new user. 2. "Alice" is a new user for this conferencing system, so a conference user identifier is created for "Alice". Based upon the Barnes, et al. Expires January 8, 2009 [Page 14] Internet-Draft CCMP Call Flow Examples July 2008 addressing information provided by "Alice", the call signaling to add "Alice" to the conference is instigated through the Focus. In addition, "Alice" is sent a userResponse message which includes the "confUserID" assigned by the conferencing system for "Alice". This would allow "Alice" to later perform operations on the conference (if she were to have the appropriate policies), including registering for event notifications associated with the conference. 3. Once the call signaling indicates that "Alice" has been successfully added to the specific conference, per updates to the state, and depending upon the policies, other participants (e.g., "Bob") are notified of the addition of "Alice" to the conference via the conference notification service and an announcement is provided to all the participants indicating that "Alice" has joined the conference. (CCMP Messaging details not available yet). Figure 13: Announcement Messaging Details 6.2. Monitoring for DTMF The conferencing system also needs the capability to monitor for DTMF from each individual participant. This would typically be used to enter the identifier and/or access code for joining a specific conference. An example of DTMF monitoring, within the context of the framework elements, is shown in Figure 12. 6.3. Adding a Party Figure 14 provides an example of one client "Alice" impacting the state of another client "Bob". This example assumes an established conference. In this example, "Alice" wants to add "Bob" to the conference. To do. Figure 14: Client Manipulation of Conference - Add a party 1. Upon receipt of the Conference Control Protocol request to "add" a party ("Bob") in the specific conference as identified by the Barnes, et al. Expires January 8, 2009 [Page 15] Internet-Draft CCMP Call Flow Examples July 2008 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 determine whether "Bob" is already a user of this conferencing system or whether he is a new user. 2. If "Bob" is a new user for this conferencing system, a Conference User Identifier is created for Bob. Based upon the addressing information provided for "Bob" by "Alice", the call signaling to add "Bob" to the conference is instigated through the Focus. 3. Once the call signaling indicates that "Bob" has been successfully added to the specific conference, 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. (CCMP Messaging details not available yet). Figure 15: Add Party Message Details 6.4. Joining a Conference Figure 16 provides an example of one client "Duck" joining an active conference with "Alice", "Bob" and "Claire" as participants. Using SIP as a call control protocol such as SIP, "Duck" joins the conference without using any CCMP messaging since the required interactions are specific to the conferencing system via a trigger from the focus upon receipt of the SIP message. The the conferencing system does the following to join "Duck" to the active conference: adds "Duck" as a user, authorizes "Duck" to join the conference, modifies the appropriate conference data, and provides the notifications to the participants that have registered for such. To do. Figure 16: Client Joining an Active Conference 1. Upon receipt of the SIP request to "join" a party ("Duck") to the specific conference as identified by the Focus. The conferencing system determines the appropriate conference object ID. The conferencing system then determines whether "Bob" is already a user of this conferencing system or whether he is a new user. If "Bob" is Barnes, et al. Expires January 8, 2009 [Page 16] Internet-Draft CCMP Call Flow Examples July 2008 a new user for this conferencing system, a Conference User Identifier is created for Bob. Based upon the addressing information provided for "Bob" by "Alice", the call signaling to add "Bob" to the conference is instigated through the Focus. 2. Once the call signaling indicates that "Duck" has been successfully added to the specific conference, per updates to the state, and depending upon the policies, other participants (including "Duck") may be notified of the addition of "Duck" to the conference via the Conference Notification Service. (CCMP Messaging details not available yet). Figure 17: Join Message Details 6.5. Muting a Party This section provides an example of the muting of a party in an active conference. The unmuting would involve the identical CCMP message flow. Although, in the case that floor control is involved, whether or not a particular conference client can unmute themselves must be considered by the conferencing system. Figure 18 provides an example of one client "Alice" impacting the media state of another client "Bob". This example assumes an established conference. In this example, the client, "Alice" whose Role is "moderator" of the conference, wants to mute "Bob" on a medium-size multi-party conference, as his device is not muted (and he's obviously not listening to the call) and background noise in his office environment is disruptive to the conference. (To be added). Figure 18: Client Manipulation of Conference - Mute a party 1. Upon receipt of the Conference Control Protocol request to "mute" a party ("Bob") in the specific conference as identified by the conference object ID, the Conference Server ensures that "Alice" has the appropriate authority based on the policies associated with that Barnes, et al. Expires January 8, 2009 [Page 17] Internet-Draft CCMP Call Flow Examples July 2008 specific conference object to perform the operation. "Bob"'s status is marked as "recvonly" and the conference object is updated to reflect that "Bob"s media is not to be "mixed" with the conference media. In case the Conference Server relies on a remote Media Server for its multimedia functionality, it subsequently changes "Bob"'s media profile accordingly by means of the related protocol interaction with the MS. An example describing a possible way of dealing with such a situation using the Media Server Control architecture is described in [I-D.miniero-mediactrl-escs], at "Simple Bridging: Framework Transactions (2)". 2...x. Depending upon the policies, other participants (including "Bob") may be notified of this change via the Conference Notification Service. (CCMP Messaging details not available yet). Figure 19: Mute Message Details 6.6. Internal Sidebar Figure 20 provides an example of one client "Alice" involved in active conference with "Bob" and "Carol". "Alice" wants to create a sidebar to have a side discussion with "Bob" while still viewing the video associated with the main conference. Alternatively, the audio from the main conference could be maintained at a reduced volume. "Alice" initiates the sidebar by sending a request to the conferencing system to create a conference reservation based upon the active 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 an internal-sidebar conference is occurring. (To be added). Figure 20: Client Creation of a Sidebar Conference 1. Upon receipt of the Conference Control Protocol request to "reserve" a new sidebar conference, based upon the active conference received in the request, the conferencing system uses the received active conference to clone a conference reservation for the sidebar. The sidebar reservation is NOT independent of the active conference Barnes, et al. Expires January 8, 2009 [Page 18] Internet-Draft CCMP Call Flow Examples July 2008 (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. 2. Upon receipt of the conference control protocol response to reserve the conference, "Alice" can now create an active 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 video from the original conference and wants the audio to be restricted to the participants in the sidebar. Alternatively, "Alice" could manipulate the media values to recieve the audio from the main conference at a reduced volume. "Alice" sends a conference control protocol request to update the information in the reservation and to create an active conference. 3. Upon receipt of the conference control protocol request to update the reservation and to create an active 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. 4...x. 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. (CCMP Messaging details not available yet). Figure 21: Internal Sidebar Messaging Details 6.7. External Sidebar Figure 22 provides an example of one client "Alice" involved in an active conference with "Bob", "Carol", "David" and "Ethel". "Alice" gets an important text message via a whisper from "Bob" that a critical customer needs to talk to "Alice", "Bob" and "Ethel". "Alice" creates a sidebar to have a side discussion with the customer "Fred" including the participants in the current conference with the exception of "Carol" and "David", who remain in the active conference. "Alice" initiates the sidebar by sending a request to the conferencing system to create a conference reservation based upon Barnes, et al. Expires January 8, 2009 [Page 19] Internet-Draft CCMP Call Flow Examples July 2008 the active conference object. "Alice", "Bob" and "Ethel" would remain on the roster of the main conference in a hold state. Whether or not the hold state of these participants is visible to other participants depends upon the individual and local policy. (To be Detailed). Figure 22: Client Creation of an External Sidebar 1. Upon receipt of the Conference Control Protocol request to "reserve" a new sidebar conference, based upon the active conference received in the request, the conferencing system uses the received active conference to clone a conference reservation for the sidebar. 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. 2. Upon receipt of the conference control protocol response to reserve the conference, "Alice" wants only "Bob" and "Ethel", along with the new participant "Fred" to be involved in the sidebar, thus she manipulates the membership. "Alice" sets the media in the conference-info such that the participants in the sidebar don't receive any media from the main conference. 3. "Alice" sends a conference control protocol request to update the information in the reservation and to create an active conference. 4. Upon receipt of the conference control protocol request to update the reservation and to create an active conference for the sidebar 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 also validates the updated information in the reservation. Since "Fred" is a new user for this conferencing system, a conference user identifier is created for "Fred". Based upon the addressing information provided for "Fred" by "Alice", the call signaling to add "Fred" to the conference is instigated through the Focus. 5...x. Depending upon the policies, the initiator of the request (i.e., "Alice") and the participants in the sidebar (i.e., "Bob" and Barnes, et al. Expires January 8, 2009 [Page 20] Internet-Draft CCMP Call Flow Examples July 2008 "Ethel") may be notified of his addition to the sidebar via the conference notification service. (CCMP Messaging details not available yet). Figure 23: External Sidebar Messaging Details 6.8. Floor control using sidebars Floor control with sidebars can be used to realize conferencing scenario such as an analyst briefing. In this scenario, the conference call has a panel of speakers who are allowed to talk in the main conference. The other participants are the analysts, who are not allowed to speak unless they have the floor. To request access to the floor, they have to join a new sidebar with the moderator and ask their question. The moderator can also whisper to each analyst what their status/position in the floor control queue, similar to the example in Figure 26. It should be noted that other mechanisms which don't make use of sidebars could be used for floor control such as those detailed in BFCP. [Editor's note: Should we add detailed flows for BFCP to this document and show additional floor control scenarios? Figure 24 provides an example of the configuration involved for this type of conference. As in the previous sidebar examples, there is the main conference along with a sidebar. "Alice" and "Bob" are the main participants in the conference, with "A1", "A2" and "A3" representing the analysts. The sidebar remains active throughout the conference, with the moderator, "Carol", serving as the chair. As discussed previously, the sidebar conference is NOT independent of the active conference (i.e., parent). The analysts are provided the conference object ID associated with the active sidebar when they join the main conference. The conferencing system also allocates a conference ID to be used for any subsequent manipulations of the sidebar 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. The analysts are permanently muted while in the main conference. The analysts are moved to the sidebar when they wish to speak. Only one analyst is given the floor at a given time. All participants in the main conference receive audio from the sidebar conference, as well as audio provided by the panelists in the main conference. Barnes, et al. Expires January 8, 2009 [Page 21] Internet-Draft CCMP Call Flow Examples July 2008 (To Be added). Figure 24: Floor Control with sidebars 1. "A1" wishes to ask a question, so he sends a Floor Request message to the floor control server. 2. Upon receipt of the request, the floor control server notifies the moderator, "Carol" of the active sidebar conference, whose serving as the floor chair. 3. Since no other analysts have yet requested the floor, "Carol" indicates to the floor control server that "A1" may be granted the floor. (CCMP Messaging details not available yet). Figure 25: Floor Control Messaging Details 6.9. Whispering or Private Messages The case of private messages can be handled as a sidebar with just two participants, similar to the example in section Section 6.6, but rather than using audio within the sidebar, "Alice" could add an additional text based media stream to the sidebar. 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 an announcement injected only to the conference chair or to a new participant joining a conference. Figure 26 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 the announcement. (To Be completed). Barnes, et al. Expires January 8, 2009 [Page 22] Internet-Draft CCMP Call Flow Examples July 2008 Figure 26: Whisper 1. When the conferencing system determines that there is only 10 minutes left in the conference which "Alice" is chairing, the conferencing system directly creates an active sidebar conference, based on the active conference associated with "Alice". This 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 conference. 2. Immediately upon creation of the active sidebar conference, the announcement media 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 media from the main conference. 3. Upon completion of the announcement, "Alice" is removed from the siebar and the sidebar conference is deleted. 4. "Alice" is notified of her removal from the sidebar via the conference notification service. (CCMP Messaging details not available yet). Figure 27: Whisper Messaging Details 6.10. Observing and Coaching An example of observing and coaching is shown in figure Figure 28. In this example, call center agent "Bob" is involved in a conference with customer "Carol". Since "Bob" is a new agent and "Alice" sees that he has been on the call with "Carol" for longer than normal, she decides to observe the call and coach "Bob" as necessary. (Figure not available yet). Figure 28: Supervisor Creating a Sidebar for Observing/Coaching Upon receipt of the Conference Control Protocol request from "Alice" to "reserve" a new sidebar conference, based upon the active conference received in the request, the conferencing system uses the received active conference to clone a conference reservation for the Barnes, et al. Expires January 8, 2009 [Page 23] Internet-Draft CCMP Call Flow Examples July 2008 sidebar. 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 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 wants the audio to be received by herself and "Bob" from the original conference, but wants any outgoing audio from herself to be restricted to the participants in the sidebar, whereas "Bob's" outgoing audio should go to the main conference, so that both "Alice" and the customer "Carol" hear the same audio from "Bob". "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 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. Based upon the addressing information provided for "Bob" by "Alice", the call signaling to add "Bob" to the sidebar with the appropriate media characteristics is instigated through the Focus. "Bob" is notified of his addition to the sidebar via the conference notification service, thus he is aware that "Alice" the supervisor is available for coaching him through this call. (CCMP Messaging details not available yet). Figure 29: Coaching and Observing Messaging details 7. Removing participants and deleting conferences The following scenarios detail the basic operations associated with removing participants from conferences and entirely deleting conferences. The examples assume that a conference has already been correctly established, with media, if applicable, per one of the Barnes, et al. Expires January 8, 2009 [Page 24] Internet-Draft CCMP Call Flow Examples July 2008 examples in Section 5. 7.1. Removing a Party Figure 30 provides an example of one client "Alice" removing another participant "Bob" from a conference. This example assumes an established conference with "Alice", "Bob", "Claire" and "Duck". In this example, "Alice" wants to remove "Bob" from the conference so that the group can continue in the same conference without "Bob"'s participation. (Figure not available yet). Figure 30: Client Manipulation of Conference - Remove a party 1. Upon receipt of the confUsersRequest message, with a "change" operation to remove "Bob" from the "allowed-users-list" for the conference identified by the "confObjID" in the request, the conferencing system ensures that "Alice" has the appropriate authority based on the policies associated with that specific conference object to perform the operation. 2. Based upon the addressing and media information in the conference object for "Bob" in the "user" element, the conferencing system instigates the process to remove "Bob" (e.g., the call signaling to remove "Bob" from the conference is instigated through the Focus). In addition, the "conference-info" in the conference object is modified to remove "Bob" from the "users" list. 3. Once the call signaling indicates that "Bob" has been successfully removed from the specific conference, per updates to the state, and depending upon the policies, other participants (including "Bob") may be notified of the removal of "Bob" from the conference via the Conference Notification Service. (CCMP Messaging details not available yet). Figure 31: Removing a Participant Messaging Details Barnes, et al. Expires January 8, 2009 [Page 25] Internet-Draft CCMP Call Flow Examples July 2008 7.2. Deleting a Conference Details to be added. (Figure not available yet). Figure 32: Deleting a conference (Text description to be added). (CCMP Messaging details not available yet). Figure 33: Deleting a Conference Messaging Details 8. Additional Conference Scenarios and Examples The following are additional scenarios making use of the XCON framework and associated protocols. In some cases, these examples make use of some of the building block scenarios detailed in the previous example sections, in which case the appropriate scenario is referenced rather than duplicating details. In addition, in cases where the scenarios make use of other protocols, as in the previous section, the appropriate reference in the form of a title to the specific flow in the appropriate protocol document is included. 8.1. Chat The chat functionality described in this section of the document allows clients that use the XCON framework and protocols 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 an Instant Messaging (IM) chat session, independent of the IM chat protocol. In some cases(e.g., Message Session Relay Protocol (MSRP) chat), this would provide additional capabilities, such as sidebars. 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. An IM client wishing to join a conference uses standardized centralized conferencing mechanisms for creating and joining a conference, as identified in the previous sections. The request to Barnes, et al. Expires January 8, 2009 [Page 26] Internet-Draft CCMP Call Flow Examples July 2008 send an IM to an IM media session is specific to the IM protocol (e.g., MSRP SEND), just as there is specific media control messaging for other types of sessions. An IM client connecting to a conferencing system has a 1:1 relationship with the IM media signaling entity in the conferencing system. This relationship is referred to as an IM session. Further details of the correlation of the IM session identifiers with the XCON session identifiers is provided in Appendix A. The IM media signaling entity is responsible for distribution of all the messages to the other participants. As with the other example conferences created, each IM session is logically associated with a specific conference. The conference itself has a specific identifier in the form of the XCON-URI, which is passed in the "confObjID" element in the CCMP messages. This provides the relevant association between IM session and a centralized conference. An IM client wishing to delete a chat room uses standardized mechanisms for deleting a conference instance, such as those detailed in Section 7.2. 8.1.1. Basic Chat 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. 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.] 8.1.1.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 [RFC4579]. 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 Barnes, et al. Expires January 8, 2009 [Page 27] Internet-Draft CCMP Call Flow Examples July 2008 protocol, the client can determine the capabilities of a conferencing system and its various resources. Figure 34 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. Details to be added. Figure 34: 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 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. Barnes, et al. Expires January 8, 2009 [Page 28] Internet-Draft CCMP Call Flow Examples July 2008 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. (CCMP Messaging details not available yet. Plan is to reference detailed flows in previous sections and add MSRP messaging in the example.) Figure 35: Chatroom Creation Messaging Details 8.1.1.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. In the example in section Section 8.1.1.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 36 provides an example of "Bob" joining the chat room using the conference ID provided by "Alice" (e.g., in an IM). Details to be added. Barnes, et al. Expires January 8, 2009 [Page 29] Internet-Draft CCMP Call Flow Examples July 2008 Figure 36: 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 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. (CCMP Messaging details not available yet. Plan is to reference detailed flows in previous sections as appropriate and add MSRP messaging in the example.) Figure 37: Chatroom Join Messaging Details 8.1.1.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 8.1.1.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 38 provides an example of "Alice" later deleting this same chat room. Details to be added. Figure 38: 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 Barnes, et al. Expires January 8, 2009 [Page 30] Internet-Draft CCMP Call Flow Examples July 2008 conferencing system must determine whether "Alice" has the authority 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. (CCMP Messaging details not available yet. Plan is to reference detailed flows in previous sections and add MSRP messaging in the example.) Figure 39: Chatroom Deletion Messaging Details 8.1.2. 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. 8.1.2.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. However, the mechanism to allow a user to negotiate a nickname with a conferencing system is additional functionality beyond the centralized conferencing framework, and thus 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). Barnes, et al. Expires January 8, 2009 [Page 31] Internet-Draft CCMP Call Flow Examples July 2008 8.1.2.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 8.1.2.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 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. 8.1.2.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 8.1.2.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. 8.1.2.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. Barnes, et al. Expires January 8, 2009 [Page 32] Internet-Draft CCMP Call Flow Examples July 2008 8.1.3. 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 8.1.1, 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. 8.1.3.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 [RFC5239]. 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 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 40 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. Details to be added. Barnes, et al. Expires January 8, 2009 [Page 33] Internet-Draft CCMP Call Flow Examples July 2008 Figure 40: 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. (CCMP Messaging details not available yet. Plan is to reference detailed flows in previous sections.) Figure 41: Chatroom Sidebar Messaging Details Barnes, et al. Expires January 8, 2009 [Page 34] Internet-Draft CCMP Call Flow Examples July 2008 8.1.3.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 8.1.3.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. Figure 42 provides an example of one user "Alice" who's 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. Details to be added. Figure 42: 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 8.1.3.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. Barnes, et al. Expires January 8, 2009 [Page 35] Internet-Draft CCMP Call Flow Examples July 2008 (CCMP Messaging details not available yet. Plan is to reference detailed flows in previous sections.) Figure 43: Chatroom Sidebar Messaging Details 9. IANA Considerations This document has no IANA considerations. 10. Security Considerations The security considerations applicable to the implementation of these call flows is documented in the XCON Framework, with additional security considerations documented in the CCMP document. Where applicable, statements with regards to the necessary security are discussed in particular flows, however, since this is only an informational document, readers are strongly recommended to carefully consider the security considerations defined in the XCON Framework and the CCMP document. 11. Change Summary The following are the major changes between the 00 and the 01 versions of the draft: o TBD based on WG feedback. 12. Acknowledgements The detailed content for this document is derived from the prototype work of Lorenzo Miniero, Simon Pietro-Romano, Tobia Castaldi and their colleagues at the University of Napoli. 13. References 13.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. Barnes, et al. Expires January 8, 2009 [Page 36] Internet-Draft CCMP Call Flow Examples July 2008 [RFC5239] Barnes, M., Boulton, C., and O. Levin, "A Framework for Centralized Conferencing", RFC 5239, June 2008. [I-D.ietf-xcon-ccmp] Barnes, M., Boulton, C., Romano, S., and H. Schulzrinne, "Centralized Conferencing Manipulation Protocol", draft-ietf-xcon-ccmp-00 (work in progress), June 2008. 13.2. Informative References [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, June 2002. [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with Session Description Protocol (SDP)", RFC 3264, June 2002. [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. Jacobson, "RTP: A Transport Protocol for Real-Time Applications", STD 64, RFC 3550, July 2003. [RFC4574] Levin, O. and G. Camarillo, "The Session Description Protocol (SDP) Label Attribute", RFC 4574, August 2006. [RFC4145] Yon, D. and G. Camarillo, "TCP-Based Media Transport in the Session Description Protocol (SDP)", RFC 4145, September 2005. [RFC4579] Johnston, A. and O. Levin, "Session Initiation Protocol (SIP) Call Control - Conferencing for User Agents", BCP 119, RFC 4579, August 2006. [RFC4597] Even, R. and N. Ismail, "Conferencing Scenarios", RFC 4597, August 2006. [RFC4582] Camarillo, G., Ott, J., and K. Drage, "The Binary Floor Control Protocol (BFCP)", RFC 4582, November 2006. [RFC5018] Camarillo, G., "Connection Establishment in the Binary Floor Control Protocol (BFCP)", RFC 5018, September 2007. [I-D.ietf-xcon-event-package] Camarillo, G., Srinivasan, S., Even, R., and J. Urpalainen, "Conference Event Package Data Format Extension for Centralized Conferencing (XCON)", draft-ietf-xcon-event-package-00 (work in progress), Barnes, et al. Expires January 8, 2009 [Page 37] Internet-Draft CCMP Call Flow Examples July 2008 February 2008. [I-D.ietf-xcon-common-data-model] Novo, O., Camarillo, G., Morgan, D., and R. Even, "Conference Information Data Model for Centralized Conferencing (XCON)", draft-ietf-xcon-common-data-model-11 (work in progress), June 2008. [I-D.miniero-mediactrl-escs] Amirante, A., Castaldi, T., Miniero, L., and S. Romano, "Media Control Channel Framework (CFW) Call Flow Examples", draft-miniero-mediactrl-escs-02 (work in progress), June 2008. [I-D.ietf-mediactrl-architecture] Melanchuk, T., "An Architectural Framework for Media Server Control", draft-ietf-mediactrl-architecture-03 (work in progress), April 2008. [I-D.ietf-mediactrl-sip-control-framework] Boulton, C., Melanchuk, T., and S. McGlashan, "Media Control Channel Framework", draft-ietf-mediactrl-sip-control-framework-02 (work in progress), April 2008. [I-D.boulton-mmusic-sdp-control-package-attribute] Boulton, C., "A Session Description Protocol (SDP) Control Package Attribute", draft-boulton-mmusic-sdp-control-package-attribute-02 (work in progress), February 2008. [I-D.boulton-ivr-control-package] Boulton, C., Melanchuk, T., and S. McGlashan, "A Basic Interactive Voice Response (IVR) Control Package for the Media Control Channel Framework", draft-boulton-ivr-control-package-06 (work in progress), February 2008. [I-D.boulton-conference-control-package] Boulton, C., Melanchuk, T., McGlashan, S., and A. Shiratzky, "A Conference Control Package for the Media Control Channel Framework", draft-boulton-conference-control-package-04 (work in progress), February 2008. [I-D.miniero-bfcp-control-package] Miniero, L., Amirante, A., Castaldi, T., and S. Romano, "A Binary Floor Control Protocol (BFCP) Control Package for Barnes, et al. Expires January 8, 2009 [Page 38] Internet-Draft CCMP Call Flow Examples July 2008 the Session Initiation Protocol (SIP)", draft-miniero-bfcp-control-package-00 (work in progress), February 2008. [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 Instant Message (IM) Sessions Using the Message Session Relay Protocol (MSRP)", draft-ietf-simple-chat-02 (work in progress), February 2008. Appendix A. IM Chat and Conferencing Identifier Relationships When referring to IM session ID's this 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 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, represented by the "confObjID" in the protocol and data model. This provides the relevant association between IM session and a centralized conference. A generic example representation is illustrated by the rows contained in Figure 44. ------------------------------------------- | Conference Identifier | ------------------------------------------- | IM Session ID=8asjdhk | | IM Session ID=38iuhds | | IM Session ID=djiowid | | IM Session ID=389hewu | Barnes, et al. Expires January 8, 2009 [Page 39] Internet-Draft CCMP Call Flow Examples July 2008 ------------------------------------------- Figure 44: Simple Session Association 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 44 is then expanded to look like Figure 45. Again a row in the table representing a single entry. ---------------------------------------------------------------- | Conference Identifier | ---------------------------------------------------------------- | IM Session ID=8asjdhk | confUserID=839ULjj | | IM Session ID=38iuhds | confUserID=0283hHu | | IM Session ID=djiowid | confUserID=ncH37H | | IM Session ID=389hewu | confUserID=pakdjjH | ---------------------------------------------------------------- Figure 45: 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 45 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 [RFC4574], to maintain the internal conference association. An example is illustrated in Figure 46. Barnes, et al. Expires January 8, 2009 [Page 40] Internet-Draft CCMP Call Flow Examples July 2008 --------------------------------------------------------------------- | 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 46: Advanced Session Association + Media Label In Figure 46, 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 [RFC4574],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 [RFC4574] 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. Authors' Addresses Mary Barnes Nortel 2201 Lakeside Blvd Richardson, TX Email: mary.barnes@nortel.com Barnes, et al. Expires January 8, 2009 [Page 41] Internet-Draft CCMP Call Flow Examples July 2008 Chris Boulton Avaya Building 3 Wern Fawr Lane St Mellons Cardiff, South Wales CF3 5EA Email: cboulton@avaya.com Lorenzo Miniero University of Napoli Via Claudio 21 Napoli 80125 Italy Email: lorenzo.miniero@unina.it Simon Pietro Romano University of Napoli Via Claudio 21 Napoli 80125 Italy Email: spromano@unina.it Barnes, et al. Expires January 8, 2009 [Page 42] Internet-Draft CCMP Call Flow Examples July 2008 Full Copyright Statement Copyright (C) The IETF Trust (2008). 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. Barnes, et al. Expires January 8, 2009 [Page 43]