draft-ietf-xcon-examples-10.txt   rfc6504.txt 
XCON Working Group M. Barnes Internet Engineering Task Force (IETF) M. Barnes
Internet-Draft Polycom Request for Comments: 6504 Polycom
Intended status: Informational L. Miniero Category: Informational L. Miniero
Expires: February 3, 2012 Meetecho ISSN: 2070-1721 Meetecho
R. Presta R. Presta
S P. Romano S P. Romano
University of Napoli University of Napoli
August 2, 2011 March 2012
Centralized Conferencing Manipulation Protocol (CCMP) Call Flow Examples Centralized Conferencing Manipulation Protocol (CCMP)
draft-ietf-xcon-examples-10 Call Flow Examples
Abstract Abstract
This document provides detailed call flows for the scenarios This document provides detailed call flows for the scenarios
documented in the Centralized Conferencing (XCON) Framework and the documented in the Framework for Centralized Conferencing (XCON) (RFC
XCON Scenarios. The call flows document the use of the interface 5239) and in the XCON scenarios (RFC 4597). The call flows document
between a conference control client and a conference control server the use of the interface between a conference control client and a
using the Centralized Conferencing Manipulation Protocol (CCMP). The conference control server using the Centralized Conferencing
objective is to provide a base reference for both protocol Manipulation Protocol (CCMP) (RFC 6503). The objective is to provide
researchers and developers. detailed examples for reference by both protocol researchers and
developers.
Status of this Memo
This Internet-Draft is submitted in full conformance with the Status of This Memo
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering This document is not an Internet Standards Track specification; it is
Task Force (IETF). Note that other groups may also distribute published for informational purposes.
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months This document is a product of the Internet Engineering Task Force
and may be updated, replaced, or obsoleted by other documents at any (IETF). It represents the consensus of the IETF community. It has
time. It is inappropriate to use Internet-Drafts as reference received public review and has been approved for publication by the
material or to cite them other than as "work in progress." Internet Engineering Steering Group (IESG). Not all documents
approved by the IESG are a candidate for any level of Internet
Standard; see Section 2 of RFC 5741.
This Internet-Draft will expire on February 3, 2012. Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
http://www.rfc-editor.org/info/rfc6504.
Copyright Notice Copyright Notice
Copyright (c) 2011 IETF Trust and the persons identified as the Copyright (c) 2012 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction ....................................................3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Terminology .....................................................3
3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3. Overview ........................................................4
4. Working with CCMP . . . . . . . . . . . . . . . . . . . . . . 4 4. Working with CCMP ...............................................4
4.1. CCMP and the Data Model . . . . . . . . . . . . . . . . . 5 4.1. CCMP and the Data Model ....................................5
4.2. Using HTTP/TLS as a transport . . . . . . . . . . . . . . 6 4.2. Using HTTP/TLS as a Transport ..............................6
4.3. Conference Notifications . . . . . . . . . . . . . . . . . 10 4.3. Conference Notifications ..................................10
5. Conference Creation . . . . . . . . . . . . . . . . . . . . . 11 5. Conference Creation ............................................11
5.1. Basic Conference Creation . . . . . . . . . . . . . . . . 12 5.1. Basic Conference Creation .................................12
5.2. Conference Creation using Blueprints . . . . . . . . . . . 16 5.2. Conference Creation Using Blueprints ......................16
5.3. Conference Creation using User-Provided Conference 5.3. Conference Creation Using User-Provided Conference
Information . . . . . . . . . . . . . . . . . . . . . . . 23 Information ...............................................23
5.4. Cloning an Existing Conference . . . . . . . . . . . . . . 28 5.4. Cloning an Existing Conference ............................28
6. Conference Users Scenarios and Examples . . . . . . . . . . . 32 6. Conference Users Scenarios and Examples ........................31
6.1. Adding a Party . . . . . . . . . . . . . . . . . . . . . . 32 6.1. Adding a Party ............................................32
6.2. Muting a Party . . . . . . . . . . . . . . . . . . . . . . 36 6.2. Muting a Party ............................................35
6.3. Conference Announcements and Recordings . . . . . . . . . 40 6.3. Conference Announcements and Recordings ...................38
6.4. Monitoring for DTMF . . . . . . . . . . . . . . . . . . . 44 6.4. Monitoring for DTMF .......................................41
6.5. Entering a password-protected conference . . . . . . . . . 44 6.5. Entering a Password-Protected Conference ..................42
7. Sidebars Scenarios and Examples . . . . . . . . . . . . . . . 46 7. Sidebars Scenarios and Examples ................................44
7.1. Internal Sidebar . . . . . . . . . . . . . . . . . . . . . 47 7.1. Internal Sidebar ..........................................45
7.2. External Sidebar . . . . . . . . . . . . . . . . . . . . . 56 7.2. External Sidebar ..........................................54
7.3. Private Messages . . . . . . . . . . . . . . . . . . . . . 63 7.3. Private Messages ..........................................60
7.4. Observing and Coaching . . . . . . . . . . . . . . . . . . 67 7.4. Observing and Coaching ....................................64
8. Removing Participants and Deleting Conferences . . . . . . . . 74 8. Removing Participants and Deleting Conferences .................71
8.1. Removing a Party . . . . . . . . . . . . . . . . . . . . . 74 8.1. Removing a Party ..........................................71
8.2. Deleting a Conference . . . . . . . . . . . . . . . . . . 77 8.2. Deleting a Conference .....................................74
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 78 9. Security Considerations ........................................75
10. Security Considerations . . . . . . . . . . . . . . . . . . . 78 10. Acknowledgements ..............................................76
11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 79 11. References ....................................................76
12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 79 11.1. Normative References .....................................76
12.1. Normative References . . . . . . . . . . . . . . . . . . . 79 11.2. Informative References ...................................76
12.2. Informative References . . . . . . . . . . . . . . . . . . 79
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 80
1. Introduction 1. Introduction
This document provides detailed call flows for the scenarios This document provides detailed call flows for the scenarios
documented in the Framework for Centralized Conferencing (XCON documented in the Framework for Centralized Conferencing (XCON)
Framework) [RFC5239] and the XCON Scenarios [RFC4597]. The XCON [RFC5239] and in the XCON scenarios [RFC4597]. The XCON scenarios
scenarios describe a broad range of use cases taking advantage of the describe a broad range of use cases taking advantage of the advanced
advanced conferencing capabilities provided by a system realization conferencing capabilities provided by a system realization of the
of the XCON framework. The call flows document the use of the XCON framework. The call flows document the use of the interface
interface between a conference control client and a conference between a conference control client and a conference control server
control server using the Centralized Conferencing Manipulation using the Centralized Conferencing Manipulation Protocol (CCMP)
Protocol (CCMP)[I-D.ietf-xcon-ccmp]. [RFC6503].
Due to the broad range of functionality provided by the XCON Due to the broad range of functionality provided by the XCON
Framework and the flexibility of the CCMP messaging, these call flows framework and the flexibility of the CCMP messaging, these call flows
should not be considered inclusive of all the functionality that can should not be considered inclusive of all the functionality that can
provided by the XCON Framework and protocol implementations. These provided by the XCON framework and protocol implementations. These
flows represent a sample to provide an overview of the feature rich flows represent a sample to provide an overview of the feature-rich
capabilities of the XCON framework and CCMP messaging for protocol capabilities of the XCON framework and CCMP messaging for protocol
developers, software developers and researchers. developers, software developers, and researchers.
2. Terminology 2. Terminology
This document uses the same terminology as found in the Media Control This document uses the same terminology as found in the Architectural
Architectural Framework [RFC5567] and Media Control Channel Framework Framework for Media Server Control [RFC5567] and in the Media Control
Call Flow Examples [I-D.ietf-mediactrl-call-flows], with the Channel Framework Call Flow Examples [CALL-FLOWS], with the following
following terms and abbreviations used in the call flows. Also, note terms and abbreviations used in the call flows. Also, note that the
that the term "call flows" is used in a very generic sense in this term "call flows" is used in a very generic sense in this document
document since the media is not limited to voice. The calls since the media is not limited to voice. The calls supported by the
supported by the XCON framework and CCMP can consist of media such as XCON framework and CCMP can consist of media such as text, voice, and
text, voice and video, including multiple media types in a single video, including multiple media types in a single active conference.
active conference.
Conference and Media Control Client (CMCC): as defined in the XCON Conference and Media Control Client (CMCC): as defined in the XCON
Framework. In the flows in this document, the CMCC is logically framework. In the flows in this document, the CMCC is logically
equivalent to the use of UAC as the client notation in the media equivalent to the use of a User Agent Client (UAC) as the client
control call flows [I-D.ietf-mediactrl-call-flows]. A CMCC notation in the media control call flows [CALL-FLOWS]. A CMCC
differs from a generic Media Client in being an XCON-aware entity, differs from a generic media client in being an XCON-aware entity,
thus being able to also issue CCMP requests. thus, also being able to issue CCMP requests.
Conferencing Server (ConfS): In this document, the term Conference Server (ConfS): In this document, the term "conference
"Conferencing Server" is used interchangeably with the term server" is used interchangeably with the term "Application Server
"Application Server" (AS) as used in the Media Control (AS)" as used in the media control architectural framework
Architectural Framework [RFC5567]. A Conferencing Server is [RFC5567]. A conference server is intended to be able to act as a
intended to be able to act as a Conference Control Server, as conference control server, as defined in the XCON framework, i.e.,
defined in the XCON framework, i.e., it is able to handle CCMP it is able to handle CCMP requests and issue CCMP responses.
requests and issue CCMP responses.
Media Server (MS): as defined in the Media Control Architectural Media Server (MS): as defined in the media control architectural
Framework [RFC5567]. framework [RFC5567].
3. Overview 3. Overview
This document provides a sampling of detailed call flows that can be This document provides a sampling of detailed call flows that can be
implemented based on a system realization of the XCON framework implemented based on a system realization of the XCON framework
[RFC5239] and implementation of CCMP [I-D.ietf-xcon-ccmp]. This is [RFC5239] and implementation of CCMP [RFC6503]. This is intended to
intended to be a simple guide for the use of the Conference Control be a simple guide for the use of the conference control protocol
Protocol between the Conferencing Server and the Conference Control between the conference server and the conference control client. The
Client. The objective is to provide an informational base reference objective is to provide an informational base reference for protocol
for protocol developers, software developers and researchers. developers, software developers, and researchers.
This document focuses on the interaction between the Conference (and This document focuses on the interaction between the conference and
Media) Control Client and the Conferencing System, specifically the media control client and the conferencing system, specifically the
Conferencing Server. The scenarios are based on those described in conference server. The scenarios are based on those described in the
the XCON framework, many of which are based on the advanced XCON framework, many of which are based on the advanced conferencing
conferencing capabilities described in the XCON scenarios. capabilities described in the XCON scenarios. Additional scenarios
Additional scenarios have been added to provide examples of other have been added to provide examples of other real-life scenarios that
real life scenarios that are anticipated to be supported by the are anticipated to be supported by the framework. With the exception
framework. With the exception of an initial example with media of an initial example with media control messaging, the examples do
control messaging, the examples do not include the details for the not include the details for the media control [RFC6505], call
media control [I-D.ietf-mediactrl-mixer-control-package], call signaling, or Binary Floor Control Protocols (BFCPs) [RFC4582]. This
signaling or binary floor control [RFC4582] protocols. This document document references the scenarios in the media control call flows
references the scenarios in the Media Control call flows [CALL-FLOWS], SIP call control conferencing, [RFC4579], and BFCP
[I-D.ietf-mediactrl-call-flows], SIP Call Control Conferencing documents.
[RFC4579] and binary floor control protocol documents.
The rest of this document is organized as follows. Section 4 The rest of this document is organized as follows. Section 4
presents an overview on CCMP, together with some implementation- presents an overview on CCMP, together with some implementation-
related details and related matters like HTTPS transport and related details and related matters like HTTPS transport and
notifications. Section 5 presents the reader with examples showing notifications. Section 5 presents the reader with examples showing
the different approaches CCMP provides to create a new conference. the different approaches CCMP provides to create a new conference.
Section 6 more generally addresses the different user-related Section 6 more generally addresses the different user-related
manipulations that can be achieved by means of CCMP, by presenting a manipulations that can be achieved by means of CCMP, by presenting a
number of interesting scenarios. Section 7 addresses the several number of interesting scenarios. Section 7 addresses several
scenarios that may involve the use of sidebars. Section 8 shows how scenarios that may involve the use of sidebars. Section 8 shows how
CCMP can be used to remove conferences and users from the system. CCMP can be used to remove conferences and users from the system.
Finally, Section 10 provides a few details for what concerns the Finally, Section 9 provides a few details on the security
Security Considerations when it comes to implementing CCMP. considerations when it comes to implementing CCMP.
4. Working with CCMP 4. Working with CCMP
This section provides a brief introduction as to how the Centralized This section provides a brief introduction as to how the Centralized
Conferencing Manipulation Protocol (CCMP) [I-D.ietf-xcon-ccmp] works Conferencing Manipulation Protocol (CCMP) [RFC6503] works and how it
and how it can be transported across a network. A typical CCMP can be transported across a network. A typical CCMP interaction
interaction focusing on relevant aspects of the client-server focusing on relevant aspects of the client-server communication is
communication is described. Please note that this section assumes described. Please note that this section assumes the reader has read
the reader has an understanding of and has read the CCMP document. and understood the CCMP document. This section is intended to help
This section is intended to help the reader understand the actual the reader understand the actual protocol interactions.
protocol interactions.
First a description of the protocol itself is provided Section 4.1, First, a description of the protocol itself is provided Section 4.1,
including some implementation considerations. In Section 4.2, an including some implementation considerations. In Section 4.2, an
effective CCMP interaction is presented by exploiting HTTPS as a effective CCMP interaction is presented by exploiting HTTPS as a
transport. Finally, notifications are described in Section 4.3. transport. Finally, notifications are described in Section 4.3.
The document then presents and describes some actual flows in detail The document then presents and describes some actual flows in detail
in the sections to follow. in the sections to follow.
4.1. CCMP and the Data Model 4.1. CCMP and the Data Model
CCMP is an XML-based protocol. It has been designed as a request/ CCMP is an protocol based on XML [W3C.REC-xml-20081126]. It has been
response protocol. It is completely stateless, which means designed as a request/response protocol. It is completely stateless,
implementations can safely handle transactions independently from which means implementations can safely handle transactions
each other. independently from each other.
The protocol allows for the manipulation of conference objects and The protocol allows for the manipulation of conference objects and
related users. This manipulation allows a Conferencing Client related users. This manipulation allows a conference and media
(briefly CMCC in all the following sections) to create, update and control client (briefly CMCC in all the following sections) to
remove basically everything that is related to the objects handled by create, update, and remove basically everything that is related to
a conferencing system. This is reflected in the allowed operations the objects handled by a conferencing system. This is reflected in
(retrieve, create, update, delete) and the specified request types the allowed operations (retrieve, create, update, delete) and the
(ranging from the manipulation of blueprints and conferences to users specified request types (ranging from the manipulation of blueprints
and sidebars). For instance, CCMP provides ways to: and conferences to users and sidebars). For instance, CCMP provides
ways to:
o retrieve the list of registered and/or active conferences in the o retrieve the list of registered and/or active conferences in the
system; system;
o create new conferences by exploiting to several different o create new conferences by exploiting several different approaches;
approaches;
o add/remove users to/from a conference; o add/remove users to/from a conference;
o update a conference with respect to all of its aspects; o update a conference with respect to all of its aspects;
and so on. and so on.
While CCMP acts as the means to manipulate conference objects, CCMP While CCMP acts as the means to manipulate conference objects, CCMP
does not define these conference objects. A separate document does not define these conference objects. A separate document
specifies how a conference object and all its components have to be specifies how a conference object and all its components have to be
constructed: the Conference Information Data Model for Centralized constructed (Conference Information Data Model for Centralized
Conferencing (XCON) [I-D.ietf-xcon-common-data-model]. CCMP, Conferencing (XCON) [RFC6501]). CCMP, depending upon the request
depending upon the request type and the related operation, carries type and the related operation, carries pieces of conference objects
pieces of conference objects (or any object as a whole) according to (or any object as a whole) according to the aforementioned
the aforementioned specification. This means that any implementation specification. This means that any implementation aiming at being
aiming at being compliant with CCMP has to make sure that the compliant with CCMP has to make sure that the transported objects are
transported objects are completely compliant with the Data Model completely compliant with the data model specification and coherent
specification and coherent with the constraints defined therein. To with the constraints defined therein. To make this clearer, there
make this clearer, there are elements that are mandatory in a are elements that are mandatory in a conference object: issuing a
conference object: issuing a syntactically correct CCMP request that syntactically correct CCMP request that carries a wrong conference
carries a wrong conference object is doomed to result in a failure. object is doomed to result in a failure. For this reason, it is
For this reason, it is suggested that the interested implementors suggested that the interested implementers take special care in
take special care in carefully checking the Data Model handlers as carefully checking the data model handlers as well in order to avoid
well in order to avoid potential mistakes. potential mistakes.
However, there are cases when a mandatory element in the Data Model However, there are cases when a mandatory element in the data model
cannot be assigned in a conference object by a CCMP user. For cannot be assigned in a conference object by a CCMP user. For
example, a CMCC may be requesting the direct creation of a new example, a CMCC may be requesting the direct creation of a new
conference: in this case, a conference object assumes an 'entity' conference; in this case, a conference object assumes an 'entity'
element uniquely identifying the conference to be in place. Thus, attribute uniquely identifying the conference to be in place. Thus,
the CMCC has no way to know a priori what the entity will be, since the CMCC has no way to know a priori what the entity will be, since
it is generated by the ConfS after the request. For scenarios like it is generated by the ConfS after the request. For scenarios like
this one, the CCMP specification describes the use of a dedicated this one, the CCMP specification describes the use of a dedicated
placeholder wildcard (i.e., AUTO_GENERATE_X, where X is an integer) placeholder wildcard (i.e., "AUTO_GENERATE_X", where X is an integer)
to make the conference object compliant with the Data Model: the to make the conference object compliant with the data model: the
wildcard would then be replaced by the ConfS with the right value. wildcard would then be replaced by the ConfS with the right value.
4.2. Using HTTP/TLS as a transport 4.2. Using HTTP/TLS as a Transport
The CCMP requires that implementations support HTTP/TLS as the CCMP requires that implementations support HTTP/TLS as the transport
transport mechanism. Per the CCMP, a CMCC sends a request as part of mechanism. Per CCMP, a CMCC sends a request as part of an HTTPS POST
an HTTPS POST message, and the ConfS would reply with a 200 OK HTTPS message, and the ConfS would reply with a 200 OK HTTPS response. In
response. In both cases, the HTTPS messages carry the CCMP messages both cases, the HTTPS messages carry the CCMP messages as payload,
as payload, which is reflected in the Content-Type message which is reflected in the Content-Type header
(application/ccmp+xml). Figure 1 presents a ladder diagram of such ("application/ccmp+xml"). Figure 1 presents a ladder diagram of such
interaction, which is followed by a dump of the exchanged HTTPS an interaction, which is followed by a dump of the exchanged HTTPS
messages for further analysis. The examples in the remainder of this messages for further analysis. The examples in the remainder of this
document show only the CCMP interactions. document show only the CCMP interactions.
CMCC ConfS CMCC ConfS
| | | |
| 1. HTTPS POST (CCMP request) | | 1. HTTPS POST (CCMP request) |
|--------------------------------------------->| |--------------------------------------------->|
| | | |
| |--+ Parse request, | |--+ Parse request,
| | | update object | | | update object
| |<-+ and reply | |<-+ and reply
| | | |
| 2. 200 OK (CCMP response) | | 2. 200 OK (CCMP response) |
|<---------------------------------------------| |<---------------------------------------------|
| | | |
|--+ Parse response and | |--+ Parse response and |
| | update local copy | | | update local copy |
|<-+ of conference object | |<-+ of conference object |
| | | |
. . ' '
. . ' '
Figure 1: CCMP on HTTPS Figure 1: CCMP on HTTPS
Per the protocol dump in the following lines, the CMCC has issued a Per the protocol dump in the following lines, the CMCC has issued a
CCMP request (a blueprintRequest with a 'retrieve' operation) towards CCMP request (a blueprintRequest message asking for a blueprint
the Conferencing Server (ConfS). The request has been carried as retrieval, i.e., with the <operation> element set to "retrieve" )
payload of an HTTPS POST (message 1.) towards a previously known towards the ConfS. The request has been carried as payload of an
location. The mandatory 'Host' header has been specified, and the HTTPS POST (message 1.) towards a previously known location. The
'Content-Type' header has been correctly set as well (application/ mandatory Host header has been specified, and the Content-Type header
ccmp+xml). has been correctly set as well ("application/ccmp+xml").
The ConfS, in turn, has handled the request and replied accordingly. The ConfS, in turn, has handled the request and replied accordingly.
The response (a blueprintResponse with a successful response code) The response (a blueprintResponse message with a <response-code> set
has been carried as payload of a 200 OK HTTPS response (message 2.). to a successful value, "200") has been carried as payload of a 200 OK
As before, the 'Content-Type' header has been correctly set HTTPS response (message 2.). As before, the Content-Type header has
(application/ccmp+xml). been correctly set ("application/ccmp+xml").
1. CMCC -> ConfS (HTTPS POST, CCMP request) 1. CMCC -> ConfS (HTTPS POST, CCMP request)
------------------------------------------ ------------------------------------------
POST /Xcon/Ccmp HTTP/1.1 POST /Xcon/Ccmp HTTP/1.1
Content-Length: 657 Content-Length: 657
Content-Type: application/ccmp+xml Content-Type: application/ccmp+xml
Host: example.com:443 Host: example.com:443
Connection: Keep-Alive Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.0.1 (java 1.5) User-Agent: Apache-HttpClient/4.0.1 (java 1.5)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ccmp:ccmpRequest <ccmp:ccmpRequest
xmlns:info="urn:ietf:params:xml:ns:conference-info" xmlns:info="urn:ietf:params:xml:ns:conference-info"
xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp" xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp"
xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info"> xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info">
<ccmpRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <ccmpRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="ccmp:ccmp-blueprint-request-message-type"> xsi:type="ccmp:ccmp-blueprint-request-message-type">
<confUserID>xcon-userid:Alice@example.com</confUserID> <confUserID>xcon-userid:Alice@example.com</confUserID>
<confObjID>xcon:AudioRoom@example.com</confObjID> <confObjID>xcon:AudioRoom@example.com</confObjID>
<operation>retrieve</operation> <operation>retrieve</operation>
skipping to change at page 9, line 21 skipping to change at page 9, line 21
</xcon:conference-floor-policy> </xcon:conference-floor-policy>
</xcon:floor-information> </xcon:floor-information>
</blueprintInfo> </blueprintInfo>
</ccmp:blueprintResponse> </ccmp:blueprintResponse>
</ccmpResponse> </ccmpResponse>
</ccmp:ccmpResponse> </ccmp:ccmpResponse>
For completeness, the following provides some details of the CCMP For completeness, the following provides some details of the CCMP
interaction. Despite the simplicity of the request, this flow interaction. Despite the simplicity of the request, this flow
provides some relevant information on how CCMP messages are built. provides some relevant information on how CCMP messages are built.
Specifically, both the request and the response share a subset of the Specifically, both the CCMP request and the CCMP response share a
message: subset of the message:
o confUserID: this element, provided by the CMCC, refers to the o <confUserID>: this element, provided by the CMCC, refers to the
requester by means of his XCON-USERID; except in a few scenarios requester by means of his XCON-USERID; except in a few scenarios
(presented in the following sections) this element must always (presented in the following sections), this element must always
contain a valid value; contain a valid value;
o confObjID: this element refers to the target conference object, o <confObjID>: this element refers to the target conference object,
according to the request in place; according to the request in place;
o operation: this element specifies the operation the CMCC wants to o <operation>: this element specifies the operation the CMCC wants
perform according to the specific request type. to perform, according to the specific request type.
Besides those elements, the CMCC (let's say Alice, whose 'confUserID' Besides those elements, the CMCC (let's say Alice, whose XCON-USERID
is 'xcon-userid:Alice@example.com') has also provided an additional is "xcon-userid:Alice@example.com") has also provided an additional
element, 'blueprintRequest'. The name of that element varies element, <blueprintRequest>. The name of that element varies
according to the request type the CMCC is interested in. In this according to the request type in which the CMCC is interested. In
specific scenario, the CMCC was interested in acquiring details this specific scenario, the CMCC was interested in acquiring details
concerning a specific blueprint (identified by its XCON-URI concerning a specific blueprint (identified by its XCON-URI
'xcon:AudioRoom@example.com', as reflected in the provided "xcon:AudioRoom@example.com", as reflected in the provided
'confObjID' target element), and so the request consisted in an empty <confObjID> target element), and so the request consisted in an empty
'blueprintRequest' element. It will be clearer in the following <blueprintRequest> element. It will be clearer in the following
sections that different request types may require different elements sections that different request types may require different elements
and, as a consequence, different content. and, as a consequence, different content.
Considering the request was a 'blueprintRequest', the ConfS has Considering the request was a blueprintRequest message, the ConfS has
replied with a 'blueprintResponse' element. This element includes a replied with a blueprintResponse message containing a
complete dump of the conference object (compliant with the Data <blueprintResponse> element. This element includes a complete dump
Model) describing the requested blueprint. of the conference object (compliant with the data model) describing
the requested blueprint.
Without providing additional details of this interaction, it is worth Without providing additional details of this interaction, it is worth
noting that this was the example of the simplest CCMP communication noting that this was the example of the simplest CCMP communication
that could take place between a CMCC and a ConfS, a blueprintRequest: that could take place between a CMCC and a ConfS, a blueprint
this scenario will be described in more detail in Section 5.2. request: this scenario will be described in more detail in
Section 5.2.
4.3. Conference Notifications 4.3. Conference Notifications
The XCON framework [RFC5239] identifies several different possible The XCON framework [RFC5239] identifies several different possible
protocol interactions between a conferencing server and a protocol interactions between a conference server and a conferencing
conferencing client. One of those interactions is generically called client. One of those interactions is generically called
"Notification Protocol" providing a mechanism for all clients "notification protocol" providing a mechanism for all clients
interested in being informed by the server whenever something interested in being informed by the server whenever something
relevant happens in a conference. When SIP is used as the call relevant happens in a conference. When SIP is used as the call
signaling protocol in a CCMP implementation, the XCON Event Package signaling protocol in a CCMP implementation, the XCON event package
[I-D.ietf-xcon-event-package], which extends the SIP Event Package [RFC6502], which extends the SIP event package for conference state
for Conference State [RFC4575] must be supported. A SIP client uses [RFC4575] must be supported. A SIP client uses the SIP SUBSCRIBE
the SIP SUBSCRIBE message for the XCON Event Package to subscribe to message for the XCON event package to subscribe to notifications
notifications related to a specific conference. A SIP client would related to a specific conference. A SIP client would receive
receive notifications describing all the changes to the document via notifications describing all the changes to the document via a SIP
SIP NOTIFY message. An example ladder diagram is presented in NOTIFY message. An example ladder diagram is presented in Figure 2;
Figure 2: in this figure, we assume a CMCC has updated a conference in this figure, we assume a CMCC has updated a conference object, and
object, and a previously subscribed SIP client is notified of the a previously subscribed SIP client is notified of the update.
update.
CMCC ConfS UAC CMCC ConfS UAC
| | | | | |
| | 1. SIP SUBSCRIBE | | | 1. SIP SUBSCRIBE |
| |<--------------------------| | |<--------------------------|
| Handle +--| | | Handle +--| |
| new | | | | new | | |
| subscription +->| 2. SIP 200 OK | | subscription +->| 2. SIP 200 OK |
| |-------------------------->| | |-------------------------->|
| | | | | |
. . . ' ' '
. . . ' ' '
| | | | | |
| 3. CCMP (add user) | | | 3. CCMP (add user) | |
|---------------------->| | |---------------------->| |
| |--+ Add user | | |--+ Add user |
| | | to conf. | | | | to conf. |
| |<-+ object | | |<-+ object |
| 4. CCMP (success) | | | 4. CCMP (success) | |
|<----------------------| | |<----------------------| |
| | 5. SIP NOTIFY (changes) | | | 5. SIP NOTIFY (changes) |
| |-------------------------->| | |-------------------------->|
| | 6. SIP 200 OK | | | 6. SIP 200 OK |
| |<--------------------------| | |<--------------------------|
| | | | | |
. . . ' ' '
. . . ' ' '
Figure 2: XCON Event Package: SIP notifications Figure 2: XCON Event Package: SIP Notifications
The detailed flows in this document generically present a The detailed flows in this document generically present a
notification, when appropriate, but do not include the SIP messaging notification, when appropriate, but do not include the SIP messaging
details. details.
5. Conference Creation 5. Conference Creation
This section provides details associated with the various ways in This section provides details associated with the various ways in
which a conference can be created using CCMP and the XCON framework which a conference can be created using CCMP and the XCON framework
constructs. As previously mentioned, the details of the media constructs. As previously mentioned, the details of the media
control, call signaling and floor control protocols, where control, call signaling, and floor control protocols, where
applicable, are annotated in the flows without showing all the applicable, are annotated in the flows without showing all the
details. This also applies to CCMP, whose flows are related to the details. This also applies to CCMP, whose flows are related to the
protocol alone, hiding any detail concerning the transport that may protocol alone, hiding any detail concerning the transport that may
have been used (e.g., HTTPS). However, for clarification purposes, have been used (e.g., HTTPS). However, for clarification purposes,
the first example Section 5.1 provides the details of the media the first example in Section 5.1 provides the details of the media
control messaging with the standard annotation used throughout the control messaging with the standard annotation used throughout the
remainder of this document. In subsequent flows, only this remainder of this document. In subsequent flows, only this
annotation (identified by lower case letters) is included and the annotation (identified by lowercase letters) is included, and the
reader is encouraged to refer to the call flows in the relevant reader is encouraged to refer to the call flows in the relevant
documents for details about the other protocols. The annotations for documents for details about the other protocols. The annotations for
the call signaling are on the left side of the conferencing server the call signaling are on the left side of the conference server
vertical bar and those for the media control messaging are on the vertical bar, and those for the media control messaging are on the
right side. right side.
5.1. Basic Conference Creation 5.1. Basic Conference Creation
The simplest manner in which a conference can be created is The simplest manner in which a conference can be created is
accomplished by the client sending a "confRequest" message with the accomplished by the client sending a confRequest message with the
"create" operation as the only parameter to the conference server, <operation> element set to "create" as the only parameter to the
together with the "confUserID" associated with the requesting client conference server, together with the <confUserID> associated with the
itself. This results in the creation of a default conference, with requesting client itself. This results in the creation of a default
an XCON-URI in the form of the "confObjID" parameter, the XCON-USERID conference, with an XCON-URI in the form of the <confObjID> element,
in the form of the "confUserID" parameter (the same one already the XCON-USERID in the form of the <confUserID> element (the same one
present in the request) and the data for the conference object in the already present in the request), and the data for the conference
"confInfo" parameter all returned in the "confResponse" message. object in the <confInfo> parameter all returned in the confResponse
This example also adds the issuing user to the conference upon message. This example also adds the issuing user to the conference
creation with the "method" attribute in the <target> element of upon creation with the 'method' attribute in the <target> child
<allowed-users-list> set to "dial out". element of <allowed-users-list> set to "dial-out".
The specific data for the conference object is returned in the The specific data for the conference object is returned in the
"confResponse" message in the "confInfo" parameter. This allows the confResponse message in the <confInfo> parameter. This allows the
client (with the appropriate authorization) to manipulate these data client (with the appropriate authorization) to manipulate these data
and add additional participants to the conference, as well as change and add additional participants to the conference, as well as change
the data during the conference. In addition, the client may the data during the conference. In addition, the client may
distribute the conferencing information to other participants distribute the conferencing information to other participants
allowing them to join, the details of which are provided in allowing them to join, the details of which are provided in
additional flows. Please notice that, according to the CCMP additional flows. Please notice that, according to the CCMP
specification, the return of the new conference data in the specification, the return of the new conference data in the
"confInfo" parameter is not mandatory: if the "confInfo" parameter of <confInfo> element is not mandatory: if the <confInfo> parameter of
the successful confResponse/create is not included in the response, a is not included in the successful confResponse/create message, a
subsequent confRequest/retrieve of the returned "confObjID" can be subsequent confRequest/retrieve message of the returned <confObjID>
triggered to provide the requesting client with the detailed can be triggered to provide the requesting client with the detailed
conference description. conference description.
Clients that are not XCON-aware can join the conference using a Clients that are not XCON-aware can join the conference using a
specific signaling interface such as SIP [RFC3261] (using the specific signaling interface such as SIP [RFC3261] (using the
signaling interface to the conference focus as described in signaling interface to the conference focus as described in
[RFC4579]), or other supported signaling protocols, being XCON [RFC4579]), or other supported signaling protocols, being XCON-
agnostic with respect to them. However, these details are not shown agnostic with respect to them. However, these details are not shown
in the message flows. The message flows in this document identify in the message flows. The message flows in this document identify
the point in the message flows at which this signaling occurs via the the point in the message flows at which this signaling occurs via the
lower case letter items (i.e., (a)...(x)) along with the appropriate lowercase letter items (i.e., (a)...(x)) along with the appropriate
text for the processing done by the conferencing server. text for the processing done by the conference server.
As previously described, this example also shows how the conferencing As previously described, this example also shows how the conferencing
system may make use of other standard protocol components for system may make use of other standard protocol components for
complete functionality. An example of that is the MEDIACTRL complete functionality. An example of that is the media control
specification, which allows the conferencing system to configure framework [RFC5567], which allows the conferencing system to
conference mixes, IVR dialogs and all sort of media-related configure conference mixes, Interactive Voice Response (IVR) dialogs,
interactions an application like this may need. In order to provide and all sorts of media-related interactions an application like this
the reader with some insight on these interactions, the conferencing may need. In order to provide the reader with some insight on these
system in this example also configures and starts a mixer via interactions, the conference server in this example also configures
MEDIACTRL as soon as the conference is created (transactions A1 and and starts a mixer via a media control channel as soon as the
A2), and attaches clients to it when necessary (e.g., when CMCC1 conference is created (transactions A1 and A2), and attaches clients
joins the conference by means of SIP signaling, its media channels to it when necessary (e.g., when CMCC1 joins the conference by means
are attached to the Media Server using MEDIACTRL in B1/B2). Note, of SIP signaling, its media channels are attached to the media server
that the MEDIACTRL interfaces are NOT shown in the remaining call (MS) in B1/B2). Note, that the media control interfaces are NOT
flows in this document, but rather follow the same annotation as with shown in the remaining call flows in this document but rather follow
the SIP signaling such that (b) correlates with the A1 and A2 the same annotation as with the SIP signaling such that (b)
transactions and (d) correlates with the B1 and B2 transactions. correlates with the A1 and A2 transactions and (d) correlates with
the B1 and B2 transactions.
CMCC1 CMCC2 CMCCx ConfS MS CMCC1 CMCC2 CMCCx ConfS MS
| | | | | | | | | |
|(1)confRequest(confUserID, create) | | |(1)confRequest(confUserID, create) | |
|-------------------------------------->| | |-------------------------------------->| |
| | (a)Create +---| | | | (a)Create +---| |
| | |Conf | | | | | |Conf | | |
| | |Object | | | | | |Object | | |
| | |& IDs +-->| | | | |& IDs +-->| |
| | | | A1. CONTROL | | | | | A1. CONTROL |
skipping to change at page 15, line 25 skipping to change at page 15, line 24
xsi:type="ccmp:ccmp-conf-request-message-type"> xsi:type="ccmp:ccmp-conf-request-message-type">
<confUserID>xcon-userid:Alice@example.com</confUserID> <confUserID>xcon-userid:Alice@example.com</confUserID>
<operation>create</operation> <operation>create</operation>
<ccmp:confRequest/> <ccmp:confRequest/>
</ccmpRequest> </ccmpRequest>
</ccmp:ccmpRequest> </ccmp:ccmpRequest>
2. confResponse/create message ("success", created conference 2. confResponse/create message ("success", created conference
object returned) object returned)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ccmp:ccmpResponse <ccmp:ccmpResponse
xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info" xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info"
xmlns:info="urn:ietf:params:xml:ns:conference-info" xmlns:info="urn:ietf:params:xml:ns:conference-info"
xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp"> xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp">
<ccmpResponse <ccmpResponse
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="ccmp:ccmp-conf-response-message-type"> xsi:type="ccmp:ccmp-conf-response-message-type">
<confUserID>xcon-userid:Alice@example.com</confUserID> <confUserID>xcon-userid:Alice@example.com</confUserID>
<confObjID>xcon:8977794@example.com</confObjID> <confObjID>xcon:8977794@example.com</confObjID>
<operation>create</operation> <operation>create</operation>
skipping to change at page 16, line 36 skipping to change at page 16, line 31
method="dial-out"/> method="dial-out"/>
</xcon:allowed-users-list> </xcon:allowed-users-list>
</info:users> </info:users>
</confInfo> </confInfo>
</ccmp:confResponse> </ccmp:confResponse>
</ccmpResponse> </ccmpResponse>
</ccmp:ccmpResponse> </ccmp:ccmpResponse>
Figure 4: Create Basic Conference Detailed Messaging Figure 4: Create Basic Conference Detailed Messaging
5.2. Conference Creation using Blueprints 5.2. Conference Creation Using Blueprints
The previous example showed the creation of a new conference using The previous example showed the creation of a new conference using
default values. This means the client provided no information about default values. This means the client provided no information about
how she wanted the conference to be created. The XCON framework (and how she wanted the conference to be created. The XCON framework (and
CCMP as a consequence) allows for the implementation of templates. CCMP as a consequence) allows for the implementation of templates.
These templates are called "conference blueprints", and are basically These templates are called "conference blueprints" and are basically
conference objects with pre-defined settings. This means that a conference objects with predefined settings. This means that a
client might get a list of blueprints, choose the one that more fits client might get a list of blueprints, choose the one that most fits
his needs, and use the chosen blueprint to create a new conference. his needs, and use the chosen blueprint to create a new conference.
This section Figure 5 provides an example of one client, "Alice", Figure 5 provides an example of one client, Alice, discovering the
discovering the conference blueprints available for a particular conference blueprints available for a particular conferencing system
conferencing system and creating a conference based on the desired and creating a conference based on the desired blueprint. In
blueprint. In particular, Alice is interested in those blueprints particular, Alice is interested in those blueprints suitable to
suitable to represent a "video-conference", i.e., a conference in represent a video conference, i.e., a conference in which both audio
which both audio and video are available, so she makes use of the and video are available, so she makes use of the filter mechanism
filter mechanism provided by CCMP to make a selective blueprints provided by CCMP to make a selective blueprints retrieve request.
retrieve request. This results in three distinct CCMP transactions. This results in three distinct CCMP transactions.
CMCC "Alice" ConfS CMCC Alice ConfS
| | | |
| (1) blueprintsRequest | | (1) blueprintsRequest |
| (confUserID,xpathFilter) | | (confUserID,xpathFilter) |
|------------------------------>| |------------------------------>|
| | | |
| (2) blueprintsResponse | | (2) blueprintsResponse |
| (confUserID, | | (confUserID, |
| 200, success, | | 200, success, |
| blueprintsInfo) | | blueprintsInfo) |
| | | |
skipping to change at page 18, line 12 skipping to change at page 18, line 6
| | | conf and | | | conf and
| |<-+ its ID | |<-+ its ID
| | (confid=Y) | | (confid=Y)
|(6) confResponse | |(6) confResponse |
| (confUserID, confObjID*, | | (confUserID, confObjID*, |
| create, 200, success) | | create, 200, success) |
|<------------------------------| |<------------------------------|
| | | |
| | | |
| | | |
. . ' '
. . ' '
Figure 5: Client Creation of Conference using Blueprints Figure 5: Client Creation of Conference Using Blueprints
1. Alice first sends a "blueprintsRequest" message to the 1. Alice first sends a blueprintsRequest message to the conference
conferencing system identified by the conference server discovery server identified by the conference server discovery process.
process. This request contains the "confUserID" of the user This request contains the <confUserID> set to the XCON-USERID of
issuing the request (Alice's XCON-USERID) and the "xpathFilter" the user issuing the request (in this case, the one belonging to
parameter by which Alice specifies she desires to obtain only Alice) and the <xpathFilter> element by which Alice specifies she
blueprints providing support for both audio and video: for this desires to obtain only blueprints providing support for both
purpose, the xpath query contained in this field is: "/ audio and video: for this purpose, the xpath query contained in
conference-info[conference-description/available-media/entry/ this field is: "/conference-info[conference-description/
type='audio' and conference-description/available-media/entry/ available-media/entry/type='audio' and conference-description/
type='video'"] . Upon receipt of the "blueprintsRequest", the available-media/entry/type='video']". Upon receipt of the
conferencing system would first ensure, on the basis of the blueprintsRequest message, the conference server would first
"confUserID" parameter, that Alice has the appropriate authority ensure, on the basis of the <confUserID> parameter, that Alice
based on system policies to receive the requested kind of has the appropriate authority based on system policies to receive
blueprints supported by that system. the requested kind of blueprints supported by that system.
2. All blueprints that Alice is authorized to use are returned in a 2. All blueprints that Alice is authorized to use are returned in a
"blueprintsResponse" message in the "blueprintsInfo" element. blueprintsResponse message in the <blueprintsInfo> element.
3. Upon receipt of the "blueprintsResponse" containing the 3. Upon receipt of the blueprintsResponse message containing the
blueprints, Alice determines which blueprint to use for the blueprints, Alice determines which blueprint to use for the
conference to be created. Alice sends a "blueprintRequest" conference to be created. Alice sends a blueprintRequest message
message to get the specific blueprint as identified by the to get the specific blueprint as identified by the <confObjID>.
"confObjID".
4. The conferencing system returns the "confInfo" associated with 4. The conference server returns the details associated with the
the specific blueprint as identified by the "confObjID" in the specific blueprint identified by the <confObjID> in the
"blueprintResponse" message. <confInfo> element within the blueprintResponse message.
5. Alice finally sends a "confRequest" with a "create" operation to 5. Alice finally sends a confRequest message with a "create"
the conferencing system to create a conference reservation <operation> to the conference server to create a conference
cloning the chosen blueprint. This is achieved by writing the reservation cloning the chosen blueprint. This is achieved by
blueprint's XCON-URI in the "confObjID" parameter. writing the blueprint's XCON-URI in the <confObjID> parameter.
6. Upon receipt of the "confRequest" message with a "create" 6. Upon receipt of the confRequest/create message, the conference
operation, the conferencing system uses the received blueprint to server uses the received blueprint to clone a conference,
clone a conference, allocating a new XCON-URI (again called allocating a new XCON-URI (called "confObjID*" in the example).
"confObjID*" in the example). The conferencing server then sends The conference server then sends a confResponse message including
a "confResponse" message including the new "confObjID*" the new "confObjID*" associated with the newly created conference
associated with the newly created conference instance. Upon instance as the value of the <confObjID> parameter. Upon receipt
receipt of the "confResponse" message, Alice can now add other of the confResponse message, Alice can now add other users to the
users to the conference. conference.
1. blueprintsRequest message (Alice requires the list of the 1. blueprintsRequest message (Alice requires the list of the
available blueprints with video support) available blueprints with video support)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ccmp:ccmpRequest xmlns:info="urn:ietf:params:xml:ns:conference-info" <ccmp:ccmpRequest xmlns:info="urn:ietf:params:xml:ns:conference-info"
xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp" xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp"
xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info"> xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info">
<ccmpRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <ccmpRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="ccmp:ccmp-blueprints-request-message-type"> xsi:type="ccmp:ccmp-blueprints-request-message-type">
<confUserID>xcon-userid:Alice@example.com</confUserID> <confUserID>xcon-userid:Alice@example.com</confUserID>
<ccmp:blueprintsRequest> <ccmp:blueprintsRequest>
<xpathFilter>/conference-info[conference-description/ <xpathFilter>/conference-info[conference-description/
available-media/entry/type='audio' available-media/entry/type='audio'
and and
skipping to change at page 23, line 40 skipping to change at page 23, line 25
</xcon:floor> </xcon:floor>
</xcon:conference-floor-policy> </xcon:conference-floor-policy>
</xcon:floor-information> </xcon:floor-information>
</confInfo> </confInfo>
</ccmp:confResponse> </ccmp:confResponse>
</ccmpResponse> </ccmpResponse>
</ccmp:ccmpResponse> </ccmp:ccmpResponse>
Figure 6: Create Conference (Blueprint) Detailed Messaging Figure 6: Create Conference (Blueprint) Detailed Messaging
5.3. Conference Creation using User-Provided Conference Information 5.3. Conference Creation Using User-Provided Conference Information
A conference can also be created by the client sending a A conference can also be created by the client sending a confRequest
"confRequest" message with the "create" operation, along with the message with the "create" <operation>, along with the desired data in
desired data in the form of the "confInfo" parameter for the the form of the <confInfo> element for the conference to be created.
conference to be created. The request also includes the "confUserID" The request also includes the <confUserID> set to the XCON-USERID of
of the requesting entity. the requesting entity.
This approach allows for a client (in this example Alice) to This approach allows for a client (in this example Alice) to
completely describe what the conference object should look like, completely describe what the conference object should look like,
without relying on defaults or blueprints: e.g., which media should without relying on defaults or blueprints; for example, which media
be available, the topic, the users allowed to join, any scheduling- should be available, the topic, the users allowed to join, any
related information and so on. This can be done by providing in the scheduling-related information, and so on. This can be done by
creation request a full conference object for the server to parse. providing, in the creation request, a full conference object for the
server to parse.
This "confInfo" parameter must comply with the Data Model This <confInfo> parameter must comply with the data model
specification. This means that the "entity" attribute is mandatory, specification. This means that the 'entity' attribute is mandatory
and cannot be missing in the document. However, in this example the and cannot be missing in the document. However, in this example, the
client is actually requesting the creation of a new conference, which client is actually requesting the creation of a new conference, which
doesn't exist yet, so the "entity" attribute is unknown. As doesn't exist yet, so the 'entity' attribute is unknown. As
discussed in Section 4.1, the CCMP protocol allows for the use of a discussed in Section 4.1, CCMP allows for the use of a wildcard
wildcard placeholder. This placeholder placeholder. This placeholder ("xcon:AUTO_GENERATE_1@example.com" in
("xcon:AUTO_GENERATE_1@example.com" in the example) is only to ensure the example) is only to ensure the <confInfo> element is compliant
the "confInfo" element is compliant with the Data Model, and would with the data model and would subsequently be replaced by the
subsequently be replaced by the conferencing system with the actual conference server with the actual value. Thus, when the conference
value. Thus, when the conferencing system actually creates the server actually creates the conference, a valid value for the
conference, a valid "entity" value is created for it as well, which 'entity' attribute is created for it as well, which takes the place
takes the place of the wildcard value when the actual conference of the wildcard value when the actual conference object provided by
object provided by the client is populated. the client is populated.
To give a flavor of what could be added to the conference object, we To give a flavor of what could be added to the conference object, we
assume Alice is also interested in providing scheduling-related assume Alice is also interested in providing scheduling-related
information. So, in this example, Alice also specifies by the information. So, in this example, Alice also specifies by the
<conference-time> element included in the "confInfo" that the <conference-time> element included in the <confInfo> that the
conference she wants to create has to occur on a certain date conference she wants to create has to occur on a certain date
spanning from a certain start time to a certain stop time and has to spanning from a certain start time to a certain stop time and has to
be replicated weekly. be replicated weekly.
Moreover, Alice indicates by means of the <allowed-users-list> that Moreover, Alice indicates by means of the <allowed-users-list>
at the start time Bob, Carol and herself have to be called by the element that at the start time Bob, Carol, and herself have to be
conferencing system to join the conference (in fact, for each called by the conferencing system to join the conference (in fact,
<target> corresponding to one of the above-mentioned clients, the for each <target> field corresponding to one of the aforementioned
"method" attribute is set to "dial-out"). clients, the 'method' attribute is set to "dial-out").
Once Alice has prepared the "confInfo" element and sent it as part of Once Alice has prepared the <confInfo> element and sent it as part of
her request to the server, if the conferencing system can support her request to the server, if the conferencing system can support
that specific type of conference (capabilities, etc.), then the that specific type of conference (capabilities, etc.), then the
request results in the creation of a conference. We assume the request results in the creation of a conference. We assume the
request has been successful, and as a consequence XCON-URI in the request has been successful, and as a consequence, the XCON-URI in
form of the "confObjID" parameter and the XCON-USERID in the form of the form of the <confObjID> parameter and the XCON-USERID in the form
the "confUserID" parameter (again, the same as the requesting entity) of the <confUserID> parameter (again, the same as the requesting
are returned in the "confResponse" message. entity) are returned in the confResponse message.
In this example, the created conference object is not returned in the In this example, the created conference object is not returned in the
successful "confResponse" in the "confInfo" parameter. Nevertheless, successful confResponse message in the <confInfo> parameter.
Alice could still retrieve the actual conference object by issuing a Nevertheless, Alice could still retrieve the actual conference object
"confRequest" with a "retrieve" operation on the returned by issuing a confRequest message with a "retrieve" <operation> on the
"confObjID". Such a request would show how, as described at the XCON-URI returned in the <confObjID> of the previous response. Such
beginning of this section, the "entity" attribute of the conference a request would show how, as described at the beginning of this
object in "confInfo" is replaced with the actual information (i.e., section, the 'entity' attribute of the conference object in the
<confInfo> field is replaced with the actual information (i.e.,
"xcon:6845432@example.com"). "xcon:6845432@example.com").
Alice Bob Carol ConfS Alice Bob Carol ConfS
| | | | | | | |
| | | | | | | |
|(1)confRequest(confUserID, | | |(1)confRequest(confUserID, | |
| create, confInfo) | | | create, confInfo) | |
| | | | | | | |
|-------------------------------------->| |-------------------------------------->|
| | | | | | | |
skipping to change at page 26, line 32 skipping to change at page 26, line 28
| | | | | | | |
| | |<<#######>>| | | |<<#######>>|
| | |Carol mixed| | | |Carol mixed|
| | |<<#######>>| | | |<<#######>>|
| | | | | | | |
| | | | | | | |
| | | | | | | |
|<***All parties connected to conf Y***>| |<***All parties connected to conf Y***>|
| | | | | | | |
| | | | | | | |
" " " " ' ' ' '
" " " " ' ' ' '
" " " " ' ' ' '
Figure 7: Create Basic Conference from user provided conference-info Figure 7: Create Basic Conference from User-Provided Conference Info
1. confRequest/create message (Alice proposes a conference object 1. confRequest/create message (Alice proposes a conference object
to be created) to be created)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ccmp:ccmpRequest <ccmp:ccmpRequest
xmlns:info="urn:ietf:params:xml:ns:conference-info" xmlns:info="urn:ietf:params:xml:ns:conference-info"
xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp" xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp"
xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info"> xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info">
<ccmpRequest <ccmpRequest
skipping to change at page 28, line 12 skipping to change at page 28, line 4
<info:users> <info:users>
<xcon:join-handling>allow</xcon:join-handling> <xcon:join-handling>allow</xcon:join-handling>
<xcon:allowed-users-list> <xcon:allowed-users-list>
<xcon:target uri="xcon-userid:alice@example.com" <xcon:target uri="xcon-userid:alice@example.com"
method="dial-out"/> method="dial-out"/>
<xcon:target uri="sip:bob83@example.com" <xcon:target uri="sip:bob83@example.com"
method="dial-out"/> method="dial-out"/>
<xcon:target uri="sip:carol@example.com" <xcon:target uri="sip:carol@example.com"
method="dial-out"/> method="dial-out"/>
</xcon:allowed-users-list> </xcon:allowed-users-list>
</info:users> </info:users>
</confInfo> </confInfo>
</ccmp:confRequest> </ccmp:confRequest>
</ccmpRequest> </ccmpRequest>
</ccmp:ccmpRequest> </ccmp:ccmpRequest>
2. confResponse/create message (200, "success") 2. confResponse/create message ("200", "success")
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ccmp:ccmpResponse <ccmp:ccmpResponse
xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info" xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info"
xmlns:info="urn:ietf:params:xml:ns:conference-info" xmlns:info="urn:ietf:params:xml:ns:conference-info"
xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp"> xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp">
<ccmpResponse <ccmpResponse
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="ccmp:ccmp-conf-response-message-type"> xsi:type="ccmp:ccmp-conf-response-message-type">
<confUserID>xcon-userid:Alice@example.com</confUserID> <confUserID>xcon-userid:Alice@example.com</confUserID>
skipping to change at page 28, line 46 skipping to change at page 28, line 39
</ccmp:ccmpResponse> </ccmp:ccmpResponse>
Figure 8: Create Basic Conference Detailed Messaging Figure 8: Create Basic Conference Detailed Messaging
5.4. Cloning an Existing Conference 5.4. Cloning an Existing Conference
A client can also create another conference by cloning an existing A client can also create another conference by cloning an existing
conference, such as an active conference or conference reservation. conference, such as an active conference or conference reservation.
This approach can be seen as a logical extension of the creation of a This approach can be seen as a logical extension of the creation of a
new conference using a blueprint: the difference is that, instead of new conference using a blueprint: the difference is that, instead of
cloning the pre-defined settings listed in a blueprint, the settings cloning the predefined settings listed in a blueprint, the settings
of an existing conference would be cloned. of an existing conference would be cloned.
In this example, the client sends a "confRequest" message with the In this example, the client sends a confRequest message with the
"create" operation, along with the "confUserID" and a specific "create" <operation>, along with her XCON-USERID in the <confUserID>
"confObjID", from which a new conference is to be created by cloning element and the XCON-URI of the conference from which a new
an existing conference. conference is to be cloned in the <confObjID> element.
An example of how a client can create a conference based on a An example of how a client can create a conference based on a
blueprint is provided in Section 5.2. The manner by which a client blueprint is provided in Section 5.2. The manner by which a client
in this example might learn about a conference reservation or active in this example might learn about a conference reservation or active
conferences is similar to the first step in the blueprint example, conferences is similar to the first step in the blueprint example,
with the exception of querying for different types of conference with the exception of querying for different types of conference
objects supported by the specific conferencing system. For example, objects supported by the specific conferencing system. For instance,
in this example, the client clones a conference reservation (i.e., an in this example, the client clones a conference reservation (i.e., an
inactive conference). inactive conference).
If the conferencing system can support a new instance of the specific If the conferencing system can support a new instance of the specific
type of conference (capabilities, etc.), then the request results in type of conference (capabilities, etc.), then the request results in
the creation of a conference, with an XCON-URI in the form of a new the creation of a conference, with an XCON-URI in the form of a new
value in the "confObjID" parameter to reflect the newly cloned value in the <confObjID> parameter to reflect the newly cloned
conference object returned in the "confResponse" message. conference object returned in the confResponse message.
Alice ConfS Alice ConfS
| | | |
|(1)confRequest(confUserID, | |(1)confRequest(confUserID, |
| confObjID, create) | | confObjID, create) |
|------------------------------>| |------------------------------>|
| (a)Create +---| | (a)Create +---|
| Conf | | | Conf | |
| Object | | | Object | |
| & IDs +-->| | & IDs +-->|
skipping to change at page 29, line 47 skipping to change at page 29, line 36
| |<-+ its ID | |<-+ its ID
| | (confid=Y) | | (confid=Y)
| | | |
|(2)confResponse(confUserID, | |(2)confResponse(confUserID, |
| confObjID*,create, | | confObjID*,create, |
| 200, success, | | 200, success, |
| version, confInfo) | | version, confInfo) |
| | | |
|<------------------------------| |<------------------------------|
| | | |
' '
Figure 9: Create Basic Conference - Clone Figure 9: Create Basic Conference - Clone
1. Alice, a conferencing system client, sends a confRequest message 1. Alice, a conferencing system client, sends a confRequest message
to clone a conference based on an existing conference to clone a conference based on an existing conference
reservation. Alice indicates this conference should be cloned reservation. Alice indicates this conference should be cloned
from the specified parent conference represented by the from the specified parent conference represented by the XCON-URI
"confObjID" in the request. in the <confObjID> provided in the request.
2. Upon receipt of the confRequest message containing a "create" 2. Upon receipt of the confRequest message containing a "create"
operation and "confObjID", the conferencing system ensures that <operation> and the aforementioned XCON-URI in the <confObjID>,
the "confObjID" received is valid. The conferencing system the conference server ensures that such received XCON-URI is
determines the appropriate read/write access of any users to be valid. The conference server determines the appropriate read/
added to a conference based on this "confObjID" (using write access of any users to be added to a conference based on
membership, roles, etc.). The conferencing system uses the this XCON-URI (using membership, roles, etc.). The conference
received "confObjID" to clone a conference reservation. The server uses the received <confObjID> to clone a conference
conferencing system also reserves or allocates a new "confObjID" reservation. The conference server also reserves or allocates a
(called "confObjID*" in Figure 9) to be used for the cloned new XCON-URI (called "confObjID*" in Figure 9) to be used for the
conference object. This new identifier is of course different cloned conference object. This new identifier is, of course,
from the one associated with the conference to be cloned, since different from the one associated with the conference to be
it represents a different conference object. Any subsequent cloned, since it represents a different conference object. Any
protocol requests from any of the members of the conference must subsequent protocol requests from any of the members of the
use this new identifier. The conferencing system maintains the conference must use this new identifier. The conference server
mapping between this conference ID and the parent conference maintains the mapping between this conference ID and the parent
object ID associated with the reservation through the conference conference object ID associated with the reservation through the
instance, and this mapping is explicitly addressed through the conference instance, and this mapping is explicitly addressed
"cloning-parent" element of the "conference-description" in the through the <cloning-parent> element of the <conference-
new conference object. description> in the new conference object.
1. confRequest/create message (Alice clones an existing conference) 1. confRequest/create message (Alice clones an existing conference)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ccmp:ccmpRequest <ccmp:ccmpRequest
xmlns:info="urn:ietf:params:xml:ns:conference-info" xmlns:info="urn:ietf:params:xml:ns:conference-info"
xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp" xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp"
xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info"> xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info">
<ccmpRequest <ccmpRequest
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
skipping to change at page 32, line 33 skipping to change at page 32, line 16
in the XCON framework. The examples assume that a conference has in the XCON framework. The examples assume that a conference has
already been correctly established, with media, if applicable, per already been correctly established, with media, if applicable, per
one of the examples in Section 5. one of the examples in Section 5.
6.1. Adding a Party 6.1. Adding a Party
In this example, Alice wants to add Bob to an established conference. In this example, Alice wants to add Bob to an established conference.
In the following example we assume Bob is a new user of the system, In the following example we assume Bob is a new user of the system,
which means Alice also needs to provide some details about him. In which means Alice also needs to provide some details about him. In
fact, the case of Bob already present as a user in the conferencing fact, the case of Bob already present as a user in the conferencing
system is much easier to address, and will be discussed later on. system is much easier to address, and will be discussed later.
"Alice" "Bob" Alice Bob
CMCC1 CMCC2 CMCCx ConfS CMCC1 CMCC2 CMCCx ConfS
| | | | | | | |
|(1) userRequest(confUserID,| | |(1) userRequest(confUserID,| |
| confObjID, create, | | | confObjID, create, | |
| userInfo) | | | | userInfo) | | |
|-------------------------------------->| |-------------------------------------->|
| | | | | | | |
| | (a) Create +---| | | (a) Create +---|
| | | Bob | | | | | Bob | |
| | | as a | | | | | as a | |
skipping to change at page 33, line 37 skipping to change at page 32, line 50
| | | | | | | |
| | | (c) Notify| | | | (c) Notify|
| | | ("Bob just| | | | ("Bob just|
| | | joined") | | | | joined") |
| | |<----------| | | |<----------|
| | | | | | | |
' ' ' ' ' ' ' '
' ' ' ' ' ' ' '
' ' ' ' ' ' ' '
Figure 11: Client Manipulation of Conference - Add a party Figure 11: Client Manipulation of Conference - Add a Party
1. Alice sends a userRequest message with an operation of "create" 1. Alice sends a userRequest message with an operation of "create"
to add Bob to the specific conference as identified by the to add Bob to the specific conference as identified by the XCON-
"confObjID". The "create" operation also makes sure that Bob is URI in the <confObjID>. The "create" <operation> also makes sure
created as a user in the whole conferencing system. This is done that Bob is created as a user in the whole conferencing system.
by adding in the request a "userInfo" element describing Bob as a This is done by adding in the request a <userInfo> element
user. This is needed in order to let the conferencing system be describing Bob as a user. This is needed in order to let the
aware of Bob's characteristics. In case Bob was already a conferencing system be aware of Bob's characteristics. In case
registered user, Alice would just have referenced him through his Bob was already a registered user, Alice would just have
XCON-USERID in the "entity" attribute of the "userInfo" field, referenced him through his XCON-USERID in the 'entity' attribute
without providing additional data. In fact, that data of the <userInfo> field, without providing additional data. In
(including, for instance, Bob's SIP-URI to be used subsequently fact, that data (including, for instance, Bob's SIP-URI to be
for dial-out) would be obtained by referencing the extant used subsequently for dial-out) would be obtained by referencing
registration. The conference server ensures that Alice has the the extant registration. The conference server ensures that
appropriate authority based on the policies associated with that Alice has the appropriate authority based on the policies
specific conference object to perform the operation. As associated with that specific conference object to perform the
mentioned before, a new Conference User Identifier is created for operation. As mentioned before, a new XCON-USERID is created for
Bob, and the "userInfo" is used to update the conference object Bob, and the <userInfo> is used to update the conference object
accordingly. As already seen in Section 5.3, a placeholder accordingly. As already seen in Section 5.3, a placeholder
wildcard ("xcon-userid:AUTO_GENERATE_1@example.com" in the CCMP wildcard ("xcon-userid:AUTO_GENERATE_1@example.com" in the CCMP
messages below) is used for the "entity" attribute of the messages below) is used for the 'entity' attribute of the
"userInfo" element, to be replaced by the actual XCON-USERID <userInfo> element, to be replaced by the actual XCON-USERID
later on; later;
2. Bob is successfully added to the conference object, and an XCON- 2. Bob is successfully added to the conference object, and an XCON-
USERID is allocated for him ("xcon-userid:Bob@example.com"); this USERID is allocated for him ("xcon-userid:Bob@example.com"); this
identifier is reported in the response as part of the "entity" identifier is reported in the response as the value of the
element of the returned "userInfo"; 'entity' attribute of the returned <userInfo>;
3. In the presented example, the call signaling to add Bob to the 3. In the presented example, the call signaling to add Bob to the
conference is instigated through the Focus as well. As noted conference is instigated through the focus as well. As noted
previously, this is implementation specific. In fact, a previously, this is implementation specific. In fact, a
conferencing system may accomplish different actions after the conferencing system may accomplish different actions after the
user creation, just as it may do nothing at all. Among the user creation, just as it may do nothing at all. Among the
possible actions, for instance, Bob may be added as a <target> possible actions, for instance, Bob may be added as a <target>
element to the <allowed-users-list> element, whose joining element to the <allowed-users-list> element, whose joining
"method" may be either "dial-in" or "dial-out". Besides, out-of- 'method' may be either "dial-in" or "dial-out". Besides, out-of-
band notification mechanisms may be involved as well, e.g., to band notification mechanisms may be involved as well, e.g., to
notify Bob via mail of the new conference, including details as notify Bob via mail of the new conference, including details as
the date, password, expected participants and so on (see the date, password, expected participants, and so on (see
Section 4.3). Section 4.3).
Once Bob has been successfully added to the specified conference, Once Bob has been successfully added to the specified conference,
per updates to the state, and depending upon the policies, other per updates to the state, and depending upon the policies, other
participants (including Bob himself) may be notified of the participants (including Bob himself) may be notified of the
addition of Bob to the conference via the Conference Notification addition of Bob to the conference via the conference notification
Service in use. service in use.
1. userRequest/create message (Alice adds Bob) 1. userRequest/create message (Alice adds Bob)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ccmp:ccmpRequest xmlns:info="urn:ietf:params:xml:ns:conference-info" <ccmp:ccmpRequest xmlns:info="urn:ietf:params:xml:ns:conference-info"
xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp" xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp"
xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info"> xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info">
<ccmpRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <ccmpRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="ccmp:ccmp-user-request-message-type"> xsi:type="ccmp:ccmp-user-request-message-type">
<confUserID>xcon-userid:Alice@example.com</confUserID> <confUserID>xcon-userid:Alice@example.com</confUserID>
skipping to change at page 36, line 4 skipping to change at page 35, line 15
<info:display-text>Bob's email</info:display-text> <info:display-text>Bob's email</info:display-text>
</info:entry> </info:entry>
</info:associated-aors> </info:associated-aors>
<info:endpoint entity="sip:bob83@example.com"> <info:endpoint entity="sip:bob83@example.com">
<info:display-text>Bob's laptop</info:display-text> <info:display-text>Bob's laptop</info:display-text>
</info:endpoint> </info:endpoint>
</userInfo> </userInfo>
</ccmp:userResponse> </ccmp:userResponse>
</ccmpResponse> </ccmpResponse>
</ccmp:ccmpResponse> </ccmp:ccmpResponse>
Figure 12: Add Party Message Details Figure 12: Add Party Message Details
6.2. Muting a Party 6.2. Muting a Party
This section provides an example of the muting of a party in an This section provides an example of the muting of a party in an
active conference. We assume that the user to mute has already been active conference. We assume that the user to mute has already been
added to the conference. The document only addresses muting and not added to the conference. The document only addresses muting and not
unmuting, since the latter would involve an almost identical CCMP unmuting, since the latter would involve an almost identical CCMP
message flow anyway. However, if any external floor control is message flow anyway. However, if any external floor control is
involved, whether a particular conference client can actually mute/ involved, whether a particular conferencing client can actually mute/
unmute itself, must be considered by the conferencing system. unmute itself must be considered by the conferencing system.
Please notice that interaction between CCMP and floor control Please notice that interaction between CCMP and floor control
should be carefully considered. In fact, handling CCMP- and BFCP- should be carefully considered. In fact, handling CCMP- and BFCP-
based media control has to be considered as multiple layers: i.e., based media control has to be considered as multiple layers: that
a participant may have the BFCP floor granted, but be muted by is, a participant may have the BFCP floor granted, but be muted by
means of CCMP. If so, he would still be muted in the conference, means of CCMP. If so, he would still be muted in the conference,
and would only be unmuted if both the protocols allowed for this. and would only be unmuted if both the protocols allowed for this.
Figure 13 provides an example of one client, "Alice", impacting the Figure 13 provides an example of one client, Alice, impacting the
media state of another client, "Bob". This example assumes an media state of another client, Bob. This example assumes an
established conference. In this example, Alice, whose role is established conference. In this example, Alice, who is the moderator
"moderator" of the conference, wants to mute Bob on a medium-size of the conference, wants to mute Bob on a medium-sized multi-party
multi-party conference, as his device is not muted (and he's conference, as his device is not muted (and he's obviously not
obviously not listening to the call) and background noise in his listening to the call) and background noise in his office environment
office environment is disruptive to the conference. BFCP floor is disruptive to the conference. BFCP floor control is assumed not
control is assumed not to be involved. to be involved.
Muting can be accomplished using the "mute" control in the conference Muting can be accomplished using the <mute> control element
object, in which case the conference server must update the settings associated with the target user's audio, in which case the conference
associated with the user's media streams. Muting/unmuting can also server must update the settings associated with the user's media
be accomplished by directly updating the conference object with streams. Muting/unmuting can also be accomplished by directly
modified settings related to the target user's media streams, which modifying the settings related to the target user's media streams,
is the approach shown in this example. Specifically, Bob's which is the approach shown in this example. Specifically, Bob's
"userInfo" is updated by modifying its audio <endpoint> information <userInfo> is updated by modifying the <endpoint> element in the
(e.g., setting it to "recvonly" in case of muting), identified by the <media> part related to audio information, identified by the 'id'
right media id. attribute. The modification consists in setting the audio <status>
to "recvonly", in case of muting.
"Alice" "Bob" Alice Bob
CMCC1 CMCC2 CMCCx ConfS MS CMCC1 CMCC2 CMCCx ConfS MS
| | | | | | | | | |
|(1) userRequest(subject, | | | |(1) userRequest(subject, | | |
| confUserID,confObjID, | | | | confUserID,confObjID, | | |
| update,userInfo) | | | | update,userInfo) | | |
| | | | | | | | | |
|--------------------------------------->| | |--------------------------------------->| |
| | | | Mute Bob | | | | | Mute Bob |
| | | |----------------->| | | | |----------------->|
| | | | 200 OK | | | | | 200 OK |
| | | |<-----------------| | | | |<-----------------|
| | | | | | | | | |
| |<====== XXX Bob excluded from mix XXX ====>| | |<====== XXX Bob excluded from mix XXX ====>|
| | | | | | | | | |
| | (a) Update +---| | | | (a) Update +---| |
| | Bob in | | | | | Bob in | | |
| | Data Model | | | | | data model | | |
| | (muted) +-->| | | | (muted) +-->| |
| | | | | | | | | |
| (2)userResponse(confUserID,confObjID, | | | (2)userResponse(confUserID,confObjID, | |
| update,200,success,version) | | | update,200,success,version) | |
|<---------------------------------------| | |<---------------------------------------| |
| | | | | | | | | |
| | | (b) Notify | | | | | (b) Notify | |
| | | ("Bob is | | | | | ("Bob is | |
| | | muted") | | | | | muted") | |
| | |<-----------| | | | |<-----------| |
| | | | | | | | | |
' ' ' ' ' ' ' ' ' '
' ' ' ' ' ' ' ' ' '
' ' ' ' ' ' ' ' ' '
Figure 13: Client Manipulation of Conference - Mute a party Figure 13: Client Manipulation of Conference - Mute a Party
1. Alice sends a userRequest message with an "update" operation and 1. Alice sends a userRequest message with an "update" <operation>
the userInfo with the "status" field in the "media" element for and the <userInfo> with the <status> field in the <media> element
Bob's <endpoint> set to "revconly". In order to authenticate for Bob's <endpoint> set to "revconly". In order to authenticate
herself, Alice provides in the "subject" request parameter her herself, Alice provides in the <subject> request parameter her
registration credentials (i.e., username and password). The registration credentials (i.e., username and password). The
"subject" parameter is an optional one: its use can be systematic <subject> parameter is an optional one: its use can be systematic
whenever the conferencing server envisages to authenticate each whenever the conference server envisages to authenticate each
requestor. In such cases, if the client does not provide the requester. In such cases, if the client does not provide the
required authentication information, the conferencing server required authentication information, the conferencing server
answers with a CCMP "authenticationRequired" response message, answers with a CCMP "authenticationRequired" <response-code>,
indicating that the request cannot be processed without including indicating that the request cannot be processed without including
the proper "subject" parameter. The Conference Server ensures the proper <subject> parameter. The conference server ensures
that Alice has the appropriate authority based on the policies that Alice has the appropriate authority based on the policies
associated with that specific conference object to perform the associated with that specific conference object to perform the
operation. It recognizes that Alice is allowed to request the operation. It recognizes that Alice is allowed to request the
specified modification, since she is moderator of the target specified modification, since she is moderator of the target
conference, and updates the "userInfo" in the conference object conference, and updates the <userInfo> in the conference object
reflecting that Bob's media is not to be mixed with the reflecting that Bob's media is not to be mixed with the
conference media. If the Conference Server relies on a remote conference media. If the conference server relies on a remote
Media Server for its multimedia functionality, it subsequently media server for its multimedia functionality, it subsequently
changes Bob's media profile accordingly by means of the related changes Bob's media profile accordingly by means of the related
protocol interaction with the MS. An example describing a protocol interaction with the MS. An example describing a
possible way of dealing with such a situation using the Media possible way of dealing with such a situation using the media
Server Control architecture is described in server control architecture [RFC5567] is described in Figure 31,
[I-D.ietf-mediactrl-call-flows], at "Simple Bridging: Framework "Simple Bridging: Framework Transactions (2)", in [CALL-FLOWS].
Transactions (2)".
2. A userResponse message with a "200" response-code ("success") is 2. A userResponse message with a "200" <response-code> ("success")
then sent to Alice. Depending upon the policies, the conference is then sent to Alice. Depending upon the policies, the
server may notify other participants (including Bob) of this conference server may notify other participants (including Bob)
update via any Conference Notification Service that may be in of this update via any conference notification service that may
use. be in use.
1. userRequest/update message (Alice mutes Bob) 1. userRequest/update message (Alice mutes Bob)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ccmp:ccmpRequest xmlns:info="urn:ietf:params:xml:ns:conference-info" <ccmp:ccmpRequest xmlns:info="urn:ietf:params:xml:ns:conference-info"
xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp" xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp"
xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info"> xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info">
<ccmpRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <ccmpRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="ccmp:ccmp-user-request-message-type"> xsi:type="ccmp:ccmp-user-request-message-type">
<subject> <subject>
skipping to change at page 40, line 4 skipping to change at page 38, line 27
xsi:type="ccmp:ccmp-user-response-message-type"> xsi:type="ccmp:ccmp-user-response-message-type">
<confUserID>xcon-userid:Alice@example.com</confUserID> <confUserID>xcon-userid:Alice@example.com</confUserID>
<confObjID>xcon:8977878@example.com</confObjID> <confObjID>xcon:8977878@example.com</confObjID>
<operation>update</operation> <operation>update</operation>
<response-code>200</response-code> <response-code>200</response-code>
<response-string>success</response-string> <response-string>success</response-string>
<version>7</version> <version>7</version>
<ccmp:userResponse/> <ccmp:userResponse/>
</ccmpResponse> </ccmpResponse>
</ccmp:ccmpResponse> </ccmp:ccmpResponse>
Figure 14: Mute Message Details Figure 14: Mute Message Details
6.3. Conference Announcements and Recordings 6.3. Conference Announcements and Recordings
This section deals with features that are typically required in a This section deals with features that are typically required in a
conferencing system, such as public announcements (e.g., to notify conferencing system, such as public announcements (e.g., to notify
vocally that a new user joined a conference) and name recording. vocally that a new user joined a conference) and name recording.
While this is not strictly CCMP-related (the CCMP signaling is While this is not strictly CCMP-related (the CCMP signaling is
actually the same as the one seen in Section 6.1) it is an actually the same as the one seen in Section 6.1), it is an
interesting scenario to address to see how several components of an interesting scenario to address to see how several components of an
XCON-compliant architecture interact with each other to make it XCON-compliant architecture interact with each other to make it
happen. happen.
In this example, as shown in Figure 15 Alice is joining Bob's In this example, as shown in Figure 15, Alice is joining Bob's
conference that requires that she first enters a pass code. After conference that requires that she first enter a passcode. After
successfully entering the pass code, an announcement prompts Alice to successfully entering the passcode, an announcement prompts Alice to
speak her name so it can be recorded. When Alice is added to the 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 active conference, the recording is played back to all the existing
participants. A very similar example is presented in Figure 33 of participants. A very similar example is presented in Figure 33 of
[I-D.ietf-mediactrl-call-flows]. [CALL-FLOWS].
CMCC "Alice" ConfS MS CMCC Alice ConfS MS
| | | | | |
|(1)userRequest(confObjID, | | |(1)userRequest(confObjID, | |
| create,userInfo) | | | create,userInfo) | |
|--------------------------->| | |--------------------------->| |
| |--+ Alice is | | |--+ Alice is |
| | | new in the | | | | new in the |
| |<-+ system (create | | |<-+ system (create |
| | confUserID) | | | confUserID) |
| ConfS handles +--| | | ConfS handles +--| |
| SIP signaling | | | | SIP signaling | | |
skipping to change at page 42, line 4 skipping to change at page 40, line 11
| Complete +--| | | Complete +--| |
| creation | | | | creation | | |
| of Alice +->| | | of Alice +->| |
| | | | | |
| | | | | |
| (2)userResponse(confUserID,| | | (2)userResponse(confUserID,| |
| confObjID,create,200,| | | confObjID,create,200,| |
| success,version) | | | success,version) | |
|<---------------------------| | |<---------------------------| |
| | | | | |
' ' '
Figure 15: Recording and Announcements Figure 15: Recording and Announcements
1. Upon receipt of the userRequest from Alice to be added to Bob's 1. Upon receipt of the userRequest message from Alice to be added to
conference, the conferencing system determines that a password is Bob's conference, the conference server determines that a
required for this specific conference. Thus an announcement password is required for this specific conference. Thus, an
asking Alice to enter the password is sent back. This may be announcement asking Alice to enter the password is sent back.
achieved by means of typical IVR functionality. Once Alice This may be achieved by means of typical IVR functionality. Once
enters the password, it is validated against the policies Alice enters the password, it is validated against the policies
associated with Bob's active conference. The conferencing system associated with Bob's active conference. The conference server
then connects to a server which prompts and records Alice's name. then connects to a server that prompts and records Alice's name.
The conferencing system must also determine whether Alice is The conference server must also determine whether Alice is
already a user of this conferencing system or whether she is a already a user of this conferencing system or whether she is a
new user. In this case, Alice is a new user for this new user. In this case, Alice is a new user for this
conferencing system, so a Conference User Identifier (i.e., an conferencing system, so a new XCON-USERID is created for Alice.
XCON-USERID) is created for Alice. Based upon the contact Based upon the contact information provided by Alice, the call
information provided by Alice, the call signaling to add Alice to signaling to add Alice to the conference is instigated through
the conference is instigated through the Focus. the focus.
2. The conference server sends Alice a userResponse message which 2. The conference server sends Alice a userResponse message that
includes the "confUserID" assigned by the conferencing system to includes in the <confUserID> the XCON-USERID assigned by the
her. This would allow Alice to later perform operations on the conferencing system to her. This would allow Alice to later
conference (if she were to have the appropriate policies), perform operations on the conference (if she were to have the
including registering for event notifications associated with the appropriate policies), including registering for event
conference. Once the call signaling indicates that Alice has notifications associated with the conference. Once the call
been successfully added to the specific conference, per updates signaling indicates that Alice has been successfully added to the
to the state, and depending upon the policies, other participants specific conference, per updates to the state, and depending upon
(e.g., Bob) are notified of the addition of Alice to the the policies, other participants (e.g., Bob) are notified of the
conference via the conference notification service and an addition of Alice to the conference via the conference
announcement is provided to all the participants indicating that notification service and an announcement is provided to all the
Alice has joined the conference. participants indicating that Alice has joined the conference.
1. userRequest/create message (A new conferencing system client, 1. userRequest/create message (a new conferencing system client,
Alice, enters Bob's conference) Alice, enters Bob's conference)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ccmp:ccmpRequest <ccmp:ccmpRequest
xmlns:info="urn:ietf:params:xml:ns:conference-info" xmlns:info="urn:ietf:params:xml:ns:conference-info"
xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp" xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp"
xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info"> xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info">
<ccmpRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <ccmpRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="ccmp:ccmp-user-request-message-type"> xsi:type="ccmp:ccmp-user-request-message-type">
<confObjID>xcon:bobConf@example.com</confObjID> <confObjID>xcon:bobConf@example.com</confObjID>
<operation>create</operation> <operation>create</operation>
<ccmp:userRequest> <ccmp:userRequest>
<userInfo entity="xcon-userid:AUTO_GENERATE_1@example.com"> <userInfo entity="xcon-userid:AUTO_GENERATE_1@example.com">
<info:associated-aors> <info:associated-aors>
<info:entry> <info:entry>
<info:uri> <info:uri>
mailto:Alice83@example.com mailto:Alice83@example.com
skipping to change at page 43, line 33 skipping to change at page 41, line 25
</info:uri> </info:uri>
<info:display-text>email</info:display-text> <info:display-text>email</info:display-text>
</info:entry> </info:entry>
</info:associated-aors> </info:associated-aors>
<info:endpoint entity="sip:alice_789@example.com"/> <info:endpoint entity="sip:alice_789@example.com"/>
</userInfo> </userInfo>
</ccmp:userRequest> </ccmp:userRequest>
</ccmpRequest> </ccmpRequest>
</ccmp:ccmpRequest> </ccmp:ccmpRequest>
2. userResponse/create (Alice provided with a new xcon-userid 2. userResponse/create message (Alice provided with a new XCON-USERID
and added to the conference) and added to the conference)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ccmp:ccmpResponse <ccmp:ccmpResponse
xmlns:info="urn:ietf:params:xml:ns:conference-info" xmlns:info="urn:ietf:params:xml:ns:conference-info"
xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp" xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp"
xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info"> xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info">
<ccmpResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <ccmpResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="ccmp:ccmp-user-response-message-type"> xsi:type="ccmp:ccmp-user-response-message-type">
<confUserID>xcon-userid:Alice@example.com</confUserID> <confUserID>xcon-userid:Alice@example.com</confUserID>
skipping to change at page 44, line 4 skipping to change at page 41, line 44
xsi:type="ccmp:ccmp-user-response-message-type"> xsi:type="ccmp:ccmp-user-response-message-type">
<confUserID>xcon-userid:Alice@example.com</confUserID> <confUserID>xcon-userid:Alice@example.com</confUserID>
<confObjID>xcon:bobConf@example.com</confObjID> <confObjID>xcon:bobConf@example.com</confObjID>
<operation>create</operation> <operation>create</operation>
<response-code>200</response-code> <response-code>200</response-code>
<response-string>success</response-string> <response-string>success</response-string>
<version>5</version> <version>5</version>
<ccmp:userResponse/> <ccmp:userResponse/>
</ccmpResponse> </ccmpResponse>
</ccmp:ccmpResponse> </ccmp:ccmpResponse>
Figure 16: Announcement Messaging Details Figure 16: Announcement Messaging Details
6.4. Monitoring for DTMF 6.4. Monitoring for DTMF
Conferencing systems often also need the capability to monitor for Conferencing systems also often need the capability to monitor for
DTMF from each individual participant. This would typically be used dual-tone multi-frequency (DTMF) from each individual participant.
to enter the identifier and/or access code for joining a specific This would typically be used to enter the identifier and/or access
conference. This feature is often also exploited to achieve code for joining a specific conference. This feature is also often
interaction between participants and the conference system for non- exploited to achieve interaction between participants and the
XCON-aware user agents (e.g., using DTMF tones to get muted/unmuted). conferencing system for non-XCON-aware user agents (e.g., using DTMF
tones to get muted/unmuted).
An example of DTMF monitoring, within the context of the framework An example of DTMF monitoring, within the context of the framework
elements, is shown in Figure 15. The mediactrl architecture/ elements, is shown in Figure 15. The media control architecture and
protocols can be used by the conferencing system for all the DTMF protocols [RFC5567] can be used by the conference server for all the
interactions. Examples for DTMF interception in conference instances DTMF interactions. Examples for DTMF interception in conference
are presented in [I-D.ietf-mediactrl-call-flows]. instances are presented in [CALL-FLOWS].
6.5. Entering a password-protected conference 6.5. Entering a Password-Protected Conference
Some conferences may require a password to be provided by a user who Some conferences may require a password to be provided by a user who
wants to manipulate the conference objects (e.g., join, update, wants to manipulate the conference objects (e.g., join, update,
delete) via CCMP. In this case, a password would be included in the delete) via CCMP. In this case, a password would be included in the
<conference-password> element related to the conference XCON-URI in <conference-password> element in the appropriate <conference-uris>
the appropriate <conference-uris> entry and must be then included in entry of the conference data model. Such password must be then
the "conference-password" field in the CCMP request addressed to a included in the <conference-password> field in the CCMP request
specific conference. addressed to that conference.
In the following example, Alice, a conferencing system client, In the following example, Alice, a conferencing system client,
attempts to join a password-protected conference. attempts to join a password-protected conference.
1. Alice sends a userRequest message with a "create" operation to 1. Alice sends a userRequest message with a "create" <operation> to
add herself in the conference with XCON-URI add herself in the conference with XCON-URI
"xcon:8977777@example.com" (written in the "confObjID" "xcon:8977777@example.com" (written in the <confObjID>
parameter). Alice provides her XCON-USERID via the "confUserID" parameter). Alice provides her XCON-USERID via the <confUserID>
field of the userRequest and leaves out the "userInfo" one field of the userRequest message and leaves out the <userInfo>
(first-party join). In this first attempt, she doesn't insert one (first-party join). In this first attempt, she doesn't
any password parameter. insert any password parameter.
2. Upon receipt the userRequest/create message, the conferencing 2. Upon receipt the userRequest/create message, the conference
server detects that the indicated conference is not joinable server detects that the indicated conference is not joinable
without providing the appropriate pass code. A userResponse without providing the appropriate passcode. A userResponse
message with "423" response-code ("conference password required") message with a "423" <response-code> ("conference password
is returned to Alice to indicate that her join has been refused required") is returned to Alice to indicate that her join has
and that she has to resend her request including the appropriate been refused and that she has to resend her request including the
conference password in order to participate. appropriate conference password in order to participate.
3. After getting the pass code through out-of-band mechanisms, Alice 3. After getting the passcode through out-of-band mechanisms, Alice
provides it in the proper "password" request field of a new provides it in the proper <conference-password> request field of
userRequest/create message and sends the updated request back to a new userRequest/create message and sends the updated request
the server. back to the server.
4. The conferencing server checks the provided password and then 4. The conference server checks the provided password and then adds
adds Alice to the protected conference. After that, a Alice to the protected conference. After that, a userResponse
userResponse with a "200" response-code ("success") is sent to message with a "200" <response-code> ("success") is sent to
Alice. Alice.
1. userRequest/create message (Alice tries to enter the conference 1. userRequest/create message (Alice tries to enter the conference
without providing the password) without providing the password)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ccmp:ccmpRequest <ccmp:ccmpRequest
xmlns:info="urn:ietf:params:xml:ns:conference-info" xmlns:info="urn:ietf:params:xml:ns:conference-info"
xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp" xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp"
xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info"> xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info">
<ccmpRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <ccmpRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="ccmp:ccmp-user-request-message-type"> xsi:type="ccmp:ccmp-user-request-message-type">
<confUserID>xcon-userid:Alice@example.com</confUserID> <confUserID>xcon-userid:Alice@example.com</confUserID>
<confObjID>xcon:8977794@example.com</confObjID> <confObjID>xcon:8977794@example.com</confObjID>
<operation>create</operation> <operation>create</operation>
<ccmp:userRequest/> <ccmp:userRequest/>
</ccmpRequest> </ccmpRequest>
</ccmp:ccmpRequest> </ccmp:ccmpRequest>
2. userResponse/create message (423, "conference password required") 2. userResponse/create message ("423", "conference password required")
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ccmp:ccmpResponse <ccmp:ccmpResponse
xmlns:info="urn:ietf:params:xml:ns:conference-info" xmlns:info="urn:ietf:params:xml:ns:conference-info"
xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp" xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp"
xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info"> xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info">
<ccmpResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <ccmpResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="ccmp:ccmp-user-response-message-type"> xsi:type="ccmp:ccmp-user-response-message-type">
<confUserID>xcon-userid:Alice@example.com</confUserID> <confUserID>xcon-userid:Alice@example.com</confUserID>
<confObjID>xcon:8977794@example.com</confObjID> <confObjID>xcon:8977794@example.com</confObjID>
skipping to change at page 46, line 38 skipping to change at page 44, line 28
<confUserID>xcon-userid:Alice@example.com</confUserID> <confUserID>xcon-userid:Alice@example.com</confUserID>
<confObjID>xcon:8977794@example.com</confObjID> <confObjID>xcon:8977794@example.com</confObjID>
<operation>create</operation> <operation>create</operation>
<response-code>200</response-code> <response-code>200</response-code>
<response-string>success</response-string> <response-string>success</response-string>
<version>10</version> <version>10</version>
<ccmp:userResponse/> <ccmp:userResponse/>
</ccmpResponse> </ccmpResponse>
</ccmp:ccmpResponse> </ccmp:ccmpResponse>
Figure 17: Password-protected conference join messages details Figure 17: Password-Protected Conference Join Messages Details
7. Sidebars Scenarios and Examples 7. Sidebars Scenarios and Examples
While creating conferences and manipulating users and their media are While creating conferences and manipulating users and their media are
sufficient for many scenarios, there may be cases when a more complex sufficient for many scenarios, there may be cases when more complex
management is needed. management is needed.
In fact, a feature typically required in conferencing systems is the In fact, a feature typically required in conferencing systems is the
ability to create sidebars. A sidebar is basically a child ability to create sidebars. A sidebar is basically a child
conference that usually includes a subset of the participants of the conference that usually includes a subset of the participants of the
parent conference, and a subset of its media as well. Sidebars are parent conference and a subset of its media as well. Sidebars are
typically required whenever some of the participants in a conference typically required whenever some of the participants in a conference
want a private discussion, without interfering with the main want a private discussion, without interfering with the main
conference. conference.
This section deals with some typical scenarios using a sidebar, like This section deals with some typical scenarios using a sidebar, like
whispering, private messages and coaching scenarios. The first whispering, private messaging, and coaching scenarios. The first
subsections present some examples of how a generic sidebar can be subsections present some examples of how a generic sidebar can be
created, configured and managed. created, configured, and managed.
7.1. Internal Sidebar 7.1. Internal Sidebar
Figure 18 provides an example of one client, "Alice", involved in an Figure 18 provides an example of one client, Alice, involved in an
active conference with "Bob" and "Carol". Alice wants to create a active conference with Bob and Carol. Alice wants to create a
sidebar to have a side discussion with Bob while still viewing the sidebar to have a side discussion with Bob while still viewing the
video associated with the main conference. Alternatively, the audio video associated with the main conference. Alternatively, the audio
from the main conference could be maintained at a reduced volume. from the main conference could be maintained at a reduced volume.
Alice initiates the sidebar by sending a request to the conferencing Alice initiates the sidebar by sending a request to the ConfS to
system to create a conference reservation based upon the active create a conference reservation based upon the active conference
conference object. Alice and Bob would remain on the roster of the object. Alice and Bob would remain on the roster of the main
main conference, such that other participants could be aware of their conference, such that other participants could be aware of their
participation in the main conference, while an internal-sidebar participation in the main conference, while an internal-sidebar
conference is occurring. Besides, Bob decides that he is not conference is occurring. Besides, Bob decides that he is not
interested in still receiving the conference audio in background (not interested in still receiving the conference audio in background (not
even at a lower volume as Alice configured) and so modifies the even at a lower volume as Alice configured) and so modifies the
sidebar in order to make that stream inactive for him. sidebar in order to make that stream inactive for him.
Alice Bob ConfS Alice Bob ConfS
| | | | | |
|(1) sidebarByValRequest(confUserID, | |(1) sidebarByValRequest(confUserID, |
| confObjID,create) | | confObjID,create) |
skipping to change at page 48, line 15 skipping to change at page 46, line 12
|--------------------------------------------->| |--------------------------------------------->|
| | | | | |
| | (b) Update +---| | | (b) Update +---|
| | sidebar-by-val | | | | sidebar-by-val | |
| | (media, users | | | | (media, users | |
| | etc.) +-->| | | etc.) +-->|
| | | Sidebar is | | | Sidebar is
| | | modified | | | modified
|(4) sidebarByValResponse(confUserID, | |(4) sidebarByValResponse(confUserID, |
| confObjID*, update, | | confObjID*, update, |
| 200, success, version) | | 200, success, version) |
|<---------------------------------------------| |<---------------------------------------------|
| | | | | |
| |(5) userRequest | | |(5) userRequest |
| | (confUserID', | | | (confUserID', |
| | confObjID*, | | | confObjID*, |
| | update,userInfo)| | | update,userInfo)|
| |---------------------->| | |---------------------->|
| | | | | |
| | (c) Update +---| | | (c) Update +---|
| | user settings | | | | user settings | |
skipping to change at page 48, line 38 skipping to change at page 46, line 35
| | | Sidebar is modified | | | Sidebar is modified
| | | (original audio | | | (original audio
| | | inactive for Bob) | | | inactive for Bob)
| |(6) userResponse | | |(6) userResponse |
| | (confUserID', | | | (confUserID', |
| | confObjID*, | | | confObjID*, |
| | update, 200, | | | update, 200, |
| | success,version) | | | success,version) |
| |<----------------------| | |<----------------------|
| | | | | |
" " " ' ' '
" " " ' ' '
" " " ' ' '
Figure 18: Client Creation of a Sidebar Conference Figure 18: Client Creation of a Sidebar Conference
1. Upon receipt of CCMP sidebarByValRequest message to create a new 1. Upon receipt of CCMP sidebarByValRequest message to create a new
sidebar-conference based upon the confObjID received in the sidebar based upon the conference whose XCON-URI is in the
request, the conferencing system uses the confObjID to clone a <confObjID> received in the request, the conference server uses
conference reservation for the sidebar. The sidebar reservation such XCON-URI to clone a conference reservation for the sidebar.
is NOT independent of the active conference (i.e., parent). The The sidebar reservation is NOT independent of the active main
conferencing system also allocates a new XCON-URI for that conference (i.e., parent). The conference server also allocates
sidebar to be used for any subsequent protocol requests from any a new XCON-URI ("confObjID*" in Figure 18) for that sidebar to be
of the members of the conference. The new sidebar identifier used for any subsequent protocol requests from any of the members
("confObjID*" in Figure 18) is returned in the response message of the conference. The new XCON-URI is returned in the response
confObjID parameter. message <confObjID> parameter.
2. The relationship information is provided in the 2. The relationship information is provided in the
sidebarByValResponse message, specifically in the <sidebar- sidebarByValResponse message, specifically in the <sidebar-
parent> element. A dump of the complete representation of the parent> element. A dump of the complete representation of the
main/parent conference is provided below as well to show how the main/parent conference is provided below as well to show how the
cloning process for the creation of the sidebar could take place. cloning process for the creation of the sidebar could take place.
3. Upon receipt of the sidebarByValResponse message to reserve the 3. Upon receipt of the sidebarByValResponse message to reserve the
conference, Alice can now create an active conference using that conference, Alice can now create an active conference using that
reservation, or create additional reservations based upon the reservation or create additional reservations based upon the
existing reservations. In this example, Alice wants only Bob to existing reservations. In this example, Alice wants only Bob to
be involved in the sidebar, thus she manipulates the membership be involved in the sidebar; thus, she manipulates the membership
so that only the two of them appear in the <allowed-users-list> so that only the two of them appear in the <allowed-users-list>
section. Alice also wants both audio and video from the original section. Alice also wants both audio and video from the original
conference to be available in the sidebar. For what concerns the conference to be available in the sidebar. For what concerns the
media belonging to the sidebar itself, Alice wants the audio to media belonging to the sidebar itself, Alice wants the audio to
be restricted to the participants in the sidebar (that is, Bob be restricted to the participants in the sidebar (that is, Bob
and herself). Additionally, Alice manipulates the media values and herself). Additionally, Alice manipulates the media values
to receive the audio from the main conference at a reduced to receive the audio from the main conference at a reduced
volume, so that the communication between her and Bob isn't volume, so that the communication between her and Bob isn't
affected. Alice sends a sidebarByValRequest message with an affected. Alice sends a sidebarByValRequest message with an
operation of "update" along with the "sidebarByValInfo" operation of "update" along with the <sidebarByValInfo>
containing the aforementioned sidebar modifications. containing the aforementioned sidebar modifications.
4. Upon receipt of the sidebarByValRequest to update the sidebar 4. Upon receipt of the sidebarByValRequest message to update the
reservation, the conference server ensures that Alice has the sidebar reservation, the conference server ensures that Alice has
appropriate authority based on the policies associated with that the appropriate authority based on the policies associated with
specific conference object to perform the operation. The that specific conference object to perform the operation. The
conference server must also validate the updated information in conference server must also validate the updated information in
the reservation, ensuring that a member like Bob is already a the reservation, ensuring that a member like Bob is already a
user of this conference server. Once the data for the confObjID user of this conference server. Once the data for the conference
is updated, the conference server sends a sidebarByValResponse to identified by the <confObjID> is updated, the conference server
Alice. Depending upon the policies, the initiator of the request sends a sidebarByValResponse message to Alice. Depending upon
(i.e., Alice) and the participants in the sidebar (i.e., Bob) may the policies, the initiator of the request (i.e., Alice) and the
be notified of his addition to the sidebar via the conference participants in the sidebar (i.e., Bob) may be notified of his
notification service. addition to the sidebar via the conference notification service.
5. At this point, Bob sends a userRequest message to the conference 5. At this point, Bob sends a userRequest message to the conference
server with an operation of "update" to completely disable the server with an operation of "update" to completely disable the
background audio from the parent conference, since it prevents background audio from the parent conference, since it prevents
him from understanding what Alice says in the sidebar. him from understanding what Alice says in the sidebar.
6. Notice that Bob's request only changes the media perspective for 6. Notice that Bob's request only changes the media perspective for
Bob. Alice keeps on receiving both the audio from Bob and the Bob. Alice keeps on receiving both the audio from Bob and the
background from the parent conference. This request may be background from the parent conference. This request may be
relayed by the conference server to the Media Server handling the relayed by the conference server to the media server handling the
mixing, if present. Upon completion of the change, the mixing, if present. Upon completion of the change, the
conference server sends a "userResponse" message to Bob. conference server sends a userResponse message to Bob. Depending
Depending upon the policies, the initiator of the request (i.e., upon the policies, the initiator of the request (i.e., Bob) and
Bob) and the participants in the sidebar (i.e., Alice) may be the participants in the sidebar (i.e., Alice) may be notified of
notified of this change via the conference notification service. this change via the conference notification service.
The following conference object represents the conference in which The following conference object represents the conference in which
the sidebar is to be created. It will be used by the conferencing the sidebar is to be created. It will be used by the conference
system to create the new conference object associated with the server to create the new conference object associated with the
sidebar. sidebar.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<info:conference-info <info:conference-info
xmlns:info="urn:ietf:params:xml:ns:conference-info" xmlns:info="urn:ietf:params:xml:ns:conference-info"
xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp" xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp"
xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info" xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info"
entity="xcon:8977878@example.com"> entity="xcon:8977878@example.com">
<info:conference-description> <info:conference-description>
<info:display-text>MAIN CONFERENCE</info:display-text> <info:display-text>MAIN CONFERENCE</info:display-text>
skipping to change at page 51, line 46 skipping to change at page 49, line 42
</info:media> </info:media>
<info:media id="2"> <info:media id="2">
<info:label>456</info:label> <info:label>456</info:label>
<info:status>sendrecv</info:status> <info:status>sendrecv</info:status>
</info:media> </info:media>
</info:endpoint> </info:endpoint>
</info:user> </info:user>
</info:users> </info:users>
</info:conference-info> </info:conference-info>
Figure 19: Conference with Alice, Bob and Carol Figure 19: Conference with Alice, Bob, and Carol
The sidebar creation happens through a cloning of the parent The sidebar creation happens through a cloning of the parent
conference. Once the sidebar is created, an "update" makes sure that conference. Once the sidebar is created, an update request makes
the sidebar is customized as needed. The following protocol dump sure that the sidebar is customized as needed. The following
makes the process clearer. protocol dump makes the process clearer.
1. sidebarByValRequest/create message (Alice creates an 1. sidebarByValRequest/create message (Alice creates an
internal sidebar) internal sidebar)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ccmp:ccmpRequest xmlns:info="urn:ietf:params:xml:ns:conference-info" <ccmp:ccmpRequest xmlns:info="urn:ietf:params:xml:ns:conference-info"
xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp" xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp"
xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info"> xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info">
<ccmpRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <ccmpRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="ccmp:ccmp-sidebarByVal-request-message-type"> xsi:type="ccmp:ccmp-sidebarByVal-request-message-type">
skipping to change at page 56, line 27 skipping to change at page 54, line 27
<version>3</version> <version>3</version>
<ccmp:userResponse/> <ccmp:userResponse/>
</ccmpResponse> </ccmpResponse>
</ccmp:ccmpResponse> </ccmp:ccmpResponse>
Figure 20: Internal Sidebar Messaging Details Figure 20: Internal Sidebar Messaging Details
7.2. External Sidebar 7.2. External Sidebar
Figure 21 provides an example of a different approach towards Figure 21 provides an example of a different approach towards
sidebar. In this scenario, one client, "Alice", is involved in an sidebars. In this scenario, one client, Alice, is involved in an
active conference with "Bob", "Carol", "David" and "Ethel". Alice active conference with Bob, Carol, David, and Ethel. Alice gets an
gets an important text message via a whisper from Bob that a critical important text message via a whisper from Bob that a critical
customer needs to talk to Alice, Bob and Ethel. Alice creates a customer needs to talk to Alice, Bob, and Ethel. Alice creates a
sidebar to have a side discussion with the customer "Fred" including sidebar to have a side discussion with the customer Fred including
the participants in the current conference with the exception of the participants in the current conference with the exception of
Carol and David, who remain in the active conference. The difference Carol and David, who remain in the active conference. The difference
from the previous scenario is that Fred is not part of the parent from the previous scenario is that Fred is not part of the parent
conference: this means that different policies might be involved, conference: this means that different policies might be involved,
considering that Fred may access information coming from the parent considering that Fred may access information coming from the parent
conference, in case the sidebar was configured accordingly. For this conference, in case the sidebar was configured accordingly. For this
reason, in this scenario we assume that Alice disables all the media reason, in this scenario, we assume that Alice disables all the media
from the original (parent) conference within the sidebar. This means from the original (parent) conference within the sidebar. This means
that, while in the previous example Alice and Bob still heard the that, while in the previous example Alice and Bob still heard the
audio from the main conference in background, this time no background audio from the main conference in background, this time no background
is made available. Alice initiates the sidebar by sending a request is made available. Alice initiates the sidebar by sending a request
to the conferencing system to create a conference reservation based to the conference server to create a conference reservation based
upon the active conference object. Alice, Bob and Ethel would remain upon the active conference object. Alice, Bob and Ethel would remain
on the roster of the main conference in a hold state. Whether or not 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 the hold state of these participants is visible to other participants
depends upon the individual and local policy. However, providing the depends upon the individual and local policy. However, providing the
hold state allows the participants in the main conference to see that hold state allows the participants in the main conference to see that
others in the conference are busy. Note, that a separate conference others in the conference are busy. Note, that a separate conference
could have been created by Alice to allow Bob and Ethel to talk to could have been created by Alice to allow Bob and Ethel to talk to
Fred. However, creating a sidebar has somewhat of an advantage by Fred. However, creating a sidebar has somewhat of an advantage by
allowing the conference to be created using some of the same settings allowing the conference to be created using some of the same settings
(e.g., role, floor control, etc.) that Bob and Ethel had in the main (e.g., role, floor control, etc.) that Bob and Ethel had in the main
skipping to change at page 58, line 36 skipping to change at page 55, line 40
| | (b) Create +---| | | (b) Create +---|
| | new user for | | | | new user for | |
| | Fred | | | | Fred | |
| | +-->| | | +-->|
| | | | | |
| | (c) Update +---| | | (c) Update +---|
| | sidebar-by-ref | | | | sidebar-by-ref | |
| | (media, users | | | | (media, users | |
| | policy, etc.) +-->| | | policy, etc.) +-->|
| | | Sidebar is modified: | | | Sidebar is modified:
| | | no media from the | | | media from the
| | | parent conference is | | | parent conference is
| | | available to anyone | | | not available to
|(4) sidebarByRefResponse(confUserID, | |(4) sidebarByRefResponse(confUserID, | anyone
| confObjID*, update, | | confObjID*, update, |
| 200, success, version) | | 200, success, version) |
|<---------------------------------------------| |<---------------------------------------------|
| | | | | |
| | Notify (Fred | | | Notify (Fred |
| | added to | | | added to |
| | sidebar users) | | | sidebar users) |
| |<----------------------| | |<----------------------|
| | | | | |
" " " ' ' '
" " " ' ' '
" " " ' ' '
Figure 21: Client Creation of an External Sidebar Figure 21: Client Creation of an External Sidebar
1. Upon receipt of the "sidebarByRefRequest" message to create a new 1. Upon receipt of the sidebarByRefRequest message to create a new
sidebar conference, based upon the active conference specified by sidebar conference, based upon the active conference specified by
"confObjID" in the request, the conferencing system uses that <confObjID> in the request, the conference server uses that
active conference to clone a conference reservation for the active conference to clone a conference reservation for the
sidebar. The sidebar reservation is NOT independent of the sidebar. The sidebar reservation is NOT independent of the
active conference (i.e., parent). The conferencing system, as active conference (i.e., parent). The conference server, as
before, allocates a conference ID (confObjID*) to be used for any before, allocates a new XCON-URI ("confObjID*" in Figure 21) to
subsequent protocol requests toward the sidebar reservation. The be used for any subsequent protocol requests toward the sidebar
mapping between the sidebar conference ID and the one associated reservation. The mapping between the sidebar XCON-URI and the
with the main conference is maintained by the conferencing system one associated with the main conference is maintained by the
and it is gathered from the c<sidebar-parent> element in the conference server and it is gathered from the <sidebar-parent>
sidebar conference object. element in the sidebar conference object.
2. Upon receipt of the "sidebarByRefResponse" message, which 2. Upon receipt of the sidebarByRefResponse message, which
acknowledges the successful creation of the sidebar object, Alice acknowledges the successful creation of the sidebar object, Alice
decides that only Bob and Ethel, along with the new participant decides that only Bob and Ethel, along with the new participant
Fred are to be involved in the sidebar. Thus she manipulates the Fred are to be involved in the sidebar. Thus, she manipulates
membership accordingly. Alice also sets the media in the the membership accordingly. Alice also sets the media in the
"conference-info" such that the participants in the sidebar don't <conference-info> such that the participants in the sidebar don't
receive any media from the main conference. All these settings receive any media from the main conference. All these settings
are provided to the conferencing system by means of a new are provided to the conferencing server by means of a new
"sidebarByRefRequest" message, with an "update" operation. sidebarByRefRequest message, with an "update" <operation>.
3. Alice sends the aforementioned "sidebarByRefRequest" to update 3. Alice sends the aforementioned sidebarByRefRequest message to
the information in the reservation and to create an active update the information in the reservation and to create an active
conference. Upon receipt of the "sidebarByRefRequest" with an conference. Upon receipt of the sidebarByRefRequest/update
operation of "update", the conferencing system ensures that Alice message, the conference server ensures that Alice has the
has the appropriate authority based on the policies associated appropriate authority based on the policies associated with that
with that specific conference object to perform the operation. specific conference object to perform the operation. The
The conferencing system also validates the updated information in conference server also validates the updated information in the
the reservation. Since Fred is a new user for this conferencing reservation. Since Fred is a new user for this conferencing
system, a conference user identifier is created for Fred. system, a conference user identifier (XCON-USERID) is created for
Specifically, Fred is added to the conference by only providing Fred. Specifically, Fred is added to the conference by only
his SIP URI. Based upon the contact information provided for providing his SIP URI. Based upon the contact information
Fred by Alice, the call signaling to add Fred to the conference provided for Fred by Alice, the call signaling to add Fred to the
may be instigated through the Focus (e.g., if Fred had a "dial- conference may be instigated through the focus (e.g., if Fred had
out" method set as the target for him) at the actual activation a "dial-out" value for the 'method' attribute in his <target>
of the sidebar. field under <allowed-users-list>) at the actual activation of the
sidebar.
4. The conference server sends a "sidebarByRefResponse" message and, 4. The conference server sends a sidebarByRefResponse message and,
depending upon the policies, the initiator of the request (i.e., depending upon the policies, the initiator of the request (i.e.,
Alice) and the participants in the sidebar (i.e., Bob and Ethel) Alice) and the participants in the sidebar (i.e., Bob and Ethel)
may be notified of his addition to the sidebar via the conference may be notified of his addition to the sidebar via the conference
notification service. notification service.
1. sidebarByRefRequest/create message (Alice creates an 1. sidebarByRefRequest/create message (Alice creates an
external sidebar) external sidebar)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ccmp:ccmpRequest xmlns:info="urn:ietf:params:xml:ns:conference-info" <ccmp:ccmpRequest xmlns:info="urn:ietf:params:xml:ns:conference-info"
skipping to change at page 61, line 42 skipping to change at page 58, line 48
xcon:8977878@example.com xcon:8977878@example.com
</xcon:sidebar-parent> </xcon:sidebar-parent>
</info:users> </info:users>
</sidebarByRefInfo> </sidebarByRefInfo>
</ccmp:sidebarByRefResponse> </ccmp:sidebarByRefResponse>
</ccmpResponse> </ccmpResponse>
</ccmp:ccmpResponse> </ccmp:ccmpResponse>
3. sidebarByRefRequest/update message (Alice updates the sidebar) 3. sidebarByRefRequest/update message (Alice updates the sidebar)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ccmp:ccmpRequest <ccmp:ccmpRequest
xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info" xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info"
xmlns:info="urn:ietf:params:xml:ns:conference-info" xmlns:info="urn:ietf:params:xml:ns:conference-info"
xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp"> xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp">
<ccmpRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <ccmpRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="ccmp:ccmp-sidebarByRef-request-message-type"> xsi:type="ccmp:ccmp-sidebarByRef-request-message-type">
<confUserID>xcon-userid:Alice@example.com</confUserID> <confUserID>xcon-userid:Alice@example.com</confUserID>
<confObjID>xcon:8971212@example.com</confObjID> <confObjID>xcon:8971212@example.com</confObjID>
<operation>update</operation> <operation>update</operation>
<ccmp:sidebarByRefRequest> <ccmp:sidebarByRefRequest>
skipping to change at page 63, line 16 skipping to change at page 60, line 24
uri="sip:fred@example.com"/> uri="sip:fred@example.com"/>
</xcon:allowed-users-list> </xcon:allowed-users-list>
</info:users> </info:users>
</sidebarByRefInfo> </sidebarByRefInfo>
</ccmp:sidebarByRefRequest> </ccmp:sidebarByRefRequest>
</ccmpRequest> </ccmpRequest>
</ccmp:ccmpRequest> </ccmp:ccmpRequest>
4. sidebarByRefResponse/update message (sidebar updated) 4. sidebarByRefResponse/update message (sidebar updated)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ccmp:ccmpResponse <ccmp:ccmpResponse
xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info" xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info"
xmlns:info="urn:ietf:params:xml:ns:conference-info" xmlns:info="urn:ietf:params:xml:ns:conference-info"
xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp"> xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp">
<ccmpResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <ccmpResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="ccmp:ccmp-sidebarByRef-response-message-type"> xsi:type="ccmp:ccmp-sidebarByRef-response-message-type">
<confUserID>xcon-userid:Alice@example.com</confUserID> <confUserID>xcon-userid:Alice@example.com</confUserID>
<confObjID>xcon:8971212@example.com</confObjID> <confObjID>xcon:8971212@example.com</confObjID>
<operation>update</operation> <operation>update</operation>
<response-code>200</response-code> <response-code>200</response-code>
skipping to change at page 63, line 37 skipping to change at page 60, line 46
<version>2</version> <version>2</version>
<ccmp:sidebarByRefResponse/> <ccmp:sidebarByRefResponse/>
</ccmpResponse> </ccmpResponse>
</ccmp:ccmpResponse> </ccmp:ccmpResponse>
Figure 22: External Sidebar Messaging Details Figure 22: External Sidebar Messaging Details
7.3. Private Messages 7.3. Private Messages
The case of private messages can be handled as a sidebar with just The case of private messages can be handled as a sidebar with just
two participants, similarly to the example in Section 7.1. Unlike two participants, similar to the example in Section 7.1. Unlike the
the previous example, rather than using audio within the sidebar, previous example, rather than using audio within the sidebar, Alice
Alice could just add an additional text based media stream to the could just add an additional text-based media stream to the sidebar
sidebar in order to convey her textual messages to Bob, while still in order to convey her textual messages to Bob, while still viewing
viewing and listening to the main conference. and listening to the main conference.
In this scenario, Alice requests to the conferencing system the In this scenario, Alice requests to the conference server the
creation of a private chat room within the main conference context creation of a private chat room within the main conference context
(presented in Figure 19) in which the involved participants are just (presented in Figure 19) in which the involved participants are just
Bob and herself. This can be achieved through the following CCMP Bob and herself. This can be achieved through the following CCMP
transaction (Figure 23). transaction (Figure 23).
1. Alice forwards a sidebarByValRequest/create to the Conferencing 1. Alice forwards a sidebarByValRequest/create message to the
Control Server with the main conference XCON-URI in the conference server with the main conference XCON-URI in the
"confObjID" parameter and the desired sidebar conference object <confObjID> parameter and the desired sidebar conference object
in the "sidebarByValInfo" field. In this way, a sidebar creation in the <sidebarByValInfo> field. In this way, a sidebar creation
using user-provided conference information is requested to the using user-provided conference information is requested from the
conferencing system. Please note that, unlike the previous conference server. Please note that, unlike the previous sidebar
sidebar examples, in this case a completely new conference object examples, in this case, a completely new conference object to
to describe the sidebar is provided: there is no cloning describe the sidebar is provided: there is no cloning involved,
involved, while the "confObjID" still enforces the parent-child while the <confObjID> still enforces the parent-child
relationship between the main conference and the to-be-created relationship between the main conference and the to-be-created
sidebar. sidebar.
2. The Conference Control Server, after checking Alice's rights and 2. The conference server, after checking Alice's rights and
validating the conference-object carried in the request, creates validating the conference object carried in the request, creates
the required sidebar-by-val conference and a new XCON-URI for it. the required sidebar-by-val conference and a new XCON-URI for it.
Instead of cloning the main conference object, as shown in Instead of cloning the main conference object, as shown in
Section 7.1 and Section 7.2, the sidebar is created on the basis Sections 7.1 and 7.2, the sidebar is created on the basis of the
of the user provided conference information. However, the parent user-provided conference information. However, the parent
relationship between the main conference and the newly created relationship between the main conference and the newly created
sidebar is still maintained by the conferencing system (as a sidebar is still maintained by the conference server (as a
consequence of the chosen CCMP request message type - the consequence of the chosen CCMP request message type -- the
sidebarByVal one) and it is reflected by the <sidebar-parent> sidebarByVal one) and it is reflected by the <sidebar-parent>
element in the "sidebarByValInfo" element returned in the element in the <sidebarByValInfo> element returned in the
sidebarByValResponse message. Please notice that, according to sidebarByValResponse message. Please notice that, according to
the CCMP specification, the return of the created sidebar data in the CCMP specification, the return of the created sidebar data in
this kind of "success" response is not mandatory. this kind of "success" response is not mandatory.
1. sidebarByValRequest/create message (Alice creates a private 1. sidebarByValRequest/create message (Alice creates a private
chat room between Bob and herself) chat room between Bob and herself)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ccmp:ccmpRequest <ccmp:ccmpRequest
xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info" xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info"
skipping to change at page 66, line 48 skipping to change at page 64, line 4
xcon:8977878@example.com xcon:8977878@example.com
</xcon:sidebar-parent> </xcon:sidebar-parent>
</info:conference-description> </info:conference-description>
<info:users> <info:users>
<xcon:allowed-users-list> <xcon:allowed-users-list>
<xcon:target method="dial-out" <xcon:target method="dial-out"
uri="xcon-userid:Alice@example.com"/> uri="xcon-userid:Alice@example.com"/>
<xcon:target method="dial-out" <xcon:target method="dial-out"
uri="xcon-userid:Bob@example.com"/> uri="xcon-userid:Bob@example.com"/>
</xcon:allowed-users-list> </xcon:allowed-users-list>
</info:users> </info:users>
</sidebarByValInfo> </sidebarByValInfo>
</ccmp:sidebarByValResponse> </ccmp:sidebarByValResponse>
</ccmpResponse> </ccmpResponse>
</ccmp:ccmpResponse> </ccmp:ccmpResponse>
Figure 23: Sidebar for Private Messages scenario Figure 23: Sidebar for Private Messages Scenario
7.4. Observing and Coaching 7.4. Observing and Coaching
Observing and Coaching is one of the most interesting sidebars- "Observing and Coaching" is one of the most interesting sidebar-
related scenarios. In fact, it highlights two different interactions related scenarios. In fact, it highlights two different interactions
that have to be properly coordinated. that have to be properly coordinated.
An example of observing and coaching is shown in figure Figure 25. An example of observing and coaching is shown in Figure 25. In this
In this example, call center agent Bob is involved in a conference example, call center agent Bob is involved in a conference with
with customer Carol. Since Bob is a new agent and Alice sees that he customer Carol. Since Bob is a new agent and Alice sees that he has
has been on the call with Carol for longer than normal, she decides been on the call with Carol for longer than normal, she decides to
to observe the call and coach Bob as necessary. Of course the observe the call and coach Bob as necessary. Of course, the
conferencing system must make sure that the customer Carol is not conferencing system must make sure that the customer Carol is not
aware of the presence of the coach Alice. This makes the use of a aware of the presence of the coach Alice. This makes the use of a
sidebar necessary for the success of the scenario. sidebar necessary for the success of the scenario.
Consider the following as the conference document associated with the Consider the following as the conference document associated with the
video conference involving Bob (the call agent) and Carol (the video conference involving Bob (the call agent) and Carol (the
customer) (Figure 24): customer) (Figure 24):
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<info:conference-info <info:conference-info
skipping to change at page 68, line 49 skipping to change at page 65, line 49
</info:media> </info:media>
<info:media id="2"> <info:media id="2">
<info:label>456</info:label> <info:label>456</info:label>
<info:status>sendrecv</info:status> <info:status>sendrecv</info:status>
</info:media> </info:media>
</info:endpoint> </info:endpoint>
</info:user> </info:user>
</info:users> </info:users>
</info:conference-info> </info:conference-info>
Figure 24: A call-center conference object example Figure 24: A Call-Center Conference Object Example
Alice Bob ConfS Alice Bob ConfS
| | | | | |
|(1) sidebarByRefRequest(confUserID, | |(1) sidebarByRefRequest(confUserID, |
| confObjID, create) | | confObjID, create) |
|--------------------------------------------->| |--------------------------------------------->|
| | | | | |
| | (a) Create +---| | | (a) Create +---|
| | sidebar-by-ref | | | | sidebar-by-ref | |
| | (new conf obj | | | | (new conf obj | |
skipping to change at page 69, line 44 skipping to change at page 66, line 44
|(4) sidebarByRefResponse(confUserID, | |(4) sidebarByRefResponse(confUserID, |
| confObjID*, update, | | confObjID*, update, |
| 200, success, version) | | 200, success, version) |
|<---------------------------------------------| |<---------------------------------------------|
| | | | | |
| | Notify (Bob | | | Notify (Bob |
| | he's been added to | | | he's been added to |
| | sidebar users) | | | sidebar users) |
| |<----------------------| | |<----------------------|
| | | | | |
" " " ' ' '
" " " ' ' '
" " " ' ' '
Figure 25: Supervisor Creating a Sidebar for Observing/Coaching Figure 25: Supervisor Creating a Sidebar for Observing/Coaching
1. Upon receipt of the sidbarByRefRequest/create from Alice to 1. Upon receipt of the sidbarByRefRequest/create message from Alice
"create" a new sidebar conference from the confObjID received in to create a new sidebar conference from the <confObjID> received
the request, the conferencing system uses the received active in the request, the conference server uses the received active
conference to clone a conference reservation for the sidebar. conference to clone a conference reservation for the sidebar.
The conferencing system also allocates a conference ID to be used The conference server also allocates a new XCON-URI to be used
for any subsequent protocol requests from any of the members of for any subsequent protocol requests directed to the new sidebar.
the conference. The conferencing system maintains the mapping The conference server maintains the mapping between this sidebar
between this conference ID and the confObjID associated with the conference ID and the one associated with the main conference
sidebar reservation through the conference instance. The instance. The conference server sends a sidebarByRefResponse
conference server sends a sidebarByRefResponse message with the message with the new XCON-URI in the <confObjID> field and other
new confObjID and relevant sidebarByRefInfo. relevant information in the <sidebarByRefInfo>.
2. Upon receipt of the sidebarByRefResponse message, Alice 2. Upon receipt of the sidebarByRefResponse message, Alice
manipulates the data received in the sidebarByRefInfo in the manipulates the data received in the <sidebarByRefInfo> in the
response. Alice wants only Bob to be involved in the sidebar, response. Alice wants only Bob to be involved in the sidebar;
thus she updates the <allowed-users-list> to include only Bob and thus, she updates the <allowed-users-list> to include only Bob
herself. Alice also wants the audio to be received by herself and herself. Alice also wants the audio to be received by
and Bob from the original conference, but wants any outgoing herself and Bob from the original conference, but wants any
audio from herself to be restricted to the participants in the outgoing audio from herself to be restricted to the participants
sidebar, whereas Bob's outgoing audio should go to the main in the sidebar, whereas Bob's outgoing audio should go to the
conference, so that both Alice and the customer Carol hear the main conference, so that both Alice and the customer Carol hear
same audio from Bob. Alice sends a sidebarByRefRequest message the same audio from Bob. Alice sends a sidebarByRefRequest
with an "update" operation including the updated sidebar message with an "update" <operation> including the updated
information. sidebar information in the <sidebarByRefInfo> element.
3. Upon receipt of the sidebarByRefRequest message with an "update" 3. Upon receipt of the sidebarByRefRequest/update message, the
operation, the conferencing system ensures that Alice has the conference server ensures that Alice has the appropriate
appropriate authority based on the policies associated with that authority based on the policies associated with that specific
specific conference object to perform the operation. In order to conference object to perform the operation. In order to request
request the insertion of a further media stream in the sidebar the insertion of a further media stream in the sidebar (i.e., in
(i.e., in this example an audio stream from Alice to Bob), the this example an audio stream from Alice to Bob), the requester
requestor has to provide a new <entry> element in the <available- has to provide a new <entry> element in the <available-media>
media> field of the "sidebarByRefInfo". The mandatory "label" field of the <sidebarByRefInfo>. The mandatory 'label' attribute
attribute of that new entry is filled with a dummy value of that new <entry> is filled with a dummy value
"AUTO_GENERATE_1", but it will contain the real server-generated "AUTO_GENERATE_1", but it will contain the real server-generated
media stream identifier when the media stream is effectively media stream identifier when the media stream is effectively
allocated on the server side. Similarly, the mandatory "id" allocated on the server side. Similarly, the mandatory 'id'
attribute in <media> element referring to the new sidebar audio attribute in the <media> element referring to the new sidebar
stream under both Alice's and Bob's <endpoint> contains a audio stream under both Alice's and Bob's <endpoint> contains a
wildcard value, respectively "AUTO_GENERATE_2" and wildcard value, respectively, "AUTO_GENERATE_2" and
"AUTO_GENERATE_3": those values will be replaced with the "AUTO_GENERATE_3": those values will be replaced with the
appropriated server-generated identifiers upon the creation of appropriated server-generated identifiers upon the creation of
the referred media stream. We are assuming the conferencing the referred media stream. We are assuming the conference server
control server is able to recognize those dummy values as place- is able to recognize those dummy values as placeholders.
holders.
4. After validating the data, the conference server sends a 4. After validating the data, the conference server sends a
sidebarByRefResponse message. Based upon the contact information sidebarByRefResponse message. Based upon the contact information
provided for Bob by Alice, the call signaling to add Bob to the provided for Bob by Alice, the call signaling to add Bob to the
sidebar with the appropriate media characteristics is instigated sidebar with the appropriate media characteristics is instigated
through the Focus. Bob is notified of his addition to the through the focus. Bob is notified of his addition to the
sidebar via the conference notification service, thus he is aware sidebar via the conference notification service; thus, he is
that Alice, the supervisor, is available for coaching him through aware that Alice, the supervisor, is available for coaching him
this call. through this call.
1. sidebarByRefRequest/create message (Alice as coach creates a sidebar) 1. sidebarByRefRequest/create message (Alice as coach creates a sidebar)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ccmp:ccmpRequest xmlns:info="urn:ietf:params:xml:ns:conference-info" <ccmp:ccmpRequest xmlns:info="urn:ietf:params:xml:ns:conference-info"
xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp" xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp"
xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info"> xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info">
<ccmpRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <ccmpRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="ccmp:ccmp-sidebarByRef-request-message-type"> xsi:type="ccmp:ccmp-sidebarByRef-request-message-type">
<confUserID>xcon-userid:alice@example.com</confUserID> <confUserID>xcon-userid:alice@example.com</confUserID>
skipping to change at page 74, line 22 skipping to change at page 71, line 22
<ccmpResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <ccmpResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="ccmp:ccmp-sidebarByRef-response-message-type"> xsi:type="ccmp:ccmp-sidebarByRef-response-message-type">
<confUserID>xcon-userid:alice@example.com</confUserID> <confUserID>xcon-userid:alice@example.com</confUserID>
<confObjID>xcon:8971313@example.com</confObjID> <confObjID>xcon:8971313@example.com</confObjID>
<operation>update</operation> <operation>update</operation>
<response-code>200</response-code> <response-code>200</response-code>
<response-string>success</response-string> <response-string>success</response-string>
<version>2</version> <version>2</version>
<ccmp:sidebarByRefResponse/> <ccmp:sidebarByRefResponse/>
</ccmpResponse> </ccmpResponse>
</ccmp:ccmpResponse> </ccmp:ccmpResponse>
Figure 26: Coaching and Observing Messaging details Figure 26: Coaching and Observing Messaging Details
8. Removing Participants and Deleting Conferences 8. Removing Participants and Deleting Conferences
The following scenarios detail the basic operations associated with The following scenarios detail the basic operations associated with
removing participants from conferences and entirely deleting removing participants from conferences and entirely deleting
conferences. The examples assume that a conference has already been conferences. The examples assume that a conference has already been
correctly established, with media, if applicable, per one of the correctly established, with media, if applicable, per one of the
examples in Section 5. examples in Section 5.
8.1. Removing a Party 8.1. Removing a Party
Figure 27 provides an example of a client, "Alice", removing another Figure 27 provides an example of a client, Alice, removing another
participant, "Bob", from a conference. This example assumes an participant, Bob, from a conference. This example assumes an
established conference with Alice, Bob, "Claire" and "Duck". In this established conference with Alice, Bob, Claire, and Duck. In this
example, Alice wants to remove Bob from the conference so that the example, Alice wants to remove Bob from the conference so that the
group can continue in the same conference without Bob's group can continue in the same conference without Bob's
participation. participation.
Alice Bob Claire ConfS Alice Bob Claire ConfS
| | | | | | | |
|(1) userRequest(confUserID,| | |(1) userRequest(confUserID,| |
| confObjID, delete,| | | confObjID, delete,| |
| userInfo) | | | userInfo) | |
|-------------------------------------->| |-------------------------------------->|
skipping to change at page 75, line 39 skipping to change at page 72, line 39
| | | | | | | |
| | | (c) Notify| | | | (c) Notify|
| | | ("Bob just| | | | ("Bob just|
| | | left") | | | | left") |
| | |<----------| | | |<----------|
| | | | | | | |
' ' ' ' ' ' ' '
' ' ' ' ' ' ' '
' ' ' ' ' ' ' '
Figure 27: Client Manipulation of Conference - Remove a party Figure 27: Client Manipulation of Conference - Remove a Party
1. Alice sends a userRequest message, with a "delete" operation. 1. Alice sends a userRequest message with a "delete" <operation>.
The conference server ensures that Alice has the appropriate The conference server ensures that Alice has the appropriate
authority based on the policies associated with that specific authority based on the policies associated with that specific
conference object to perform the operation. conference object to perform the operation.
2. Based upon the contact and media information in the conference 2. Based upon the contact and media information in the conference
object for Bob in the "userInfo" element, the conferencing system object for Bob in the <userInfo> element, the conferencing system
starts the process to remove Bob (e.g., the call signaling to starts the process to remove Bob (e.g., the call signaling to
remove Bob from the conference is instigated through the Focus). remove Bob from the conference is instigated through the focus).
The conference server updates the data in the conference object, The conference server updates the data in the conference object,
thus removing Bob from the <users> list. After updating the thus, removing Bob from the <users> list. After updating the
data, the conference server sends a userResponse message to data, the conference server sends a userResponse message to
Alice. Depending upon the policies, other participants (e.g., Alice. Depending upon the policies, other participants (e.g.,
"Claire") may be notified of the removal of Bob from the Claire) may be notified of the removal of Bob from the conference
conference via the Conference Notification Service. via the conference notification service.
1. userRequest/delete message (Alice deletes Bob): 1. userRequest/delete message (Alice deletes Bob)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ccmp:ccmpRequest <ccmp:ccmpRequest
xmlns:info="urn:ietf:params:xml:ns:conference-info" xmlns:info="urn:ietf:params:xml:ns:conference-info"
xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp" xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp"
xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info"> xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info">
<ccmpRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <ccmpRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="ccmp:ccmp-user-request-message-type"> xsi:type="ccmp:ccmp-user-request-message-type">
<confUserID>xcon-userid:Alice@example.com</confUserID> <confUserID>xcon-userid:Alice@example.com</confUserID>
<confObjID>xcon:8977794@example.com</confObjID> <confObjID>xcon:8977794@example.com</confObjID>
skipping to change at page 77, line 31 skipping to change at page 74, line 31
| | | mixer instances and | | | mixer instances and
| |<-+ their participants | |<-+ their participants
| | (SIP signaling as well) | | (SIP signaling as well)
| | | |
|(2)confResponse(confUserID, | |(2)confResponse(confUserID, |
| confObjID,delete,200, | | confObjID,delete,200, |
| success) | | success) |
| | | |
|<------------------------------| |<------------------------------|
| | | |
' '
Figure 29: Deleting a conference Figure 29: Deleting a Conference
1. The conferencing system client "Alice" sends a confRequest 1. The conferencing system client Alice sends a confRequest message
message with a "delete" operation to be performed on the with a "delete" operation to be performed on the conference
conference identified by the XCON-URI carried in the "confObjID" identified by the XCON-URI carried in the <confObjID> parameter.
parameter. The conference server, on the basis of the The conference server, on the basis of the <confUserID> included
"confUserID" included in the receipt request, ensures that Alice in the receipt request, ensures that Alice has the appropriate
has the appropriate authority to fulfill the operation. authority to fulfill the operation.
2. After validating Alice's rights, the conferencing server 2. After validating Alice's rights, the conference server instigates
instigates the process to delete the conference object, the process to delete the conference object, disconnecting
disconnecting participants and removing associated resources such participants and removing associated resources such as mixer
as mixer instances. Then, the conference server returns a instances. Then, the conference server returns a confResponse
confResponse message to Alice with "200" as "response-code" and message to Alice with "200" as <response-code> and the deleted
the deleted conference XCON-URI in the "confObjID" field. conference XCON-URI in the <confObjID> field.
1. confRequest/delete message (Alice deletes a conference) 1. confRequest/delete message (Alice deletes a conference)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ccmp:ccmpRequest <ccmp:ccmpRequest
xmlns:info="urn:ietf:params:xml:ns:conference-info" xmlns:info="urn:ietf:params:xml:ns:conference-info"
xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp" xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp"
xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info"> xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info">
<ccmpRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <ccmpRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="ccmp:ccmp-conf-request-message-type"> xsi:type="ccmp:ccmp-conf-request-message-type">
<confUserID>xcon-userid:Alice@example.com</confUserID> <confUserID>xcon-userid:Alice@example.com</confUserID>
<confObjID>xcon:8977794@example.com</confObjID> <confObjID>xcon:8977794@example.com</confObjID>
<operation>delete</operation> <operation>delete</operation>
<ccmp:confRequest/> <ccmp:confRequest/>
</ccmpRequest> </ccmpRequest>
</ccmp:ccmpRequest> </ccmp:ccmpRequest>
2. confResponse/delete message (200, "success") 2. confResponse/delete message ("200", "success")
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ccmp:ccmpResponse <ccmp:ccmpResponse
xmlns:info="urn:ietf:params:xml:ns:conference-info" xmlns:info="urn:ietf:params:xml:ns:conference-info"
xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp" xmlns:ccmp="urn:ietf:params:xml:ns:xcon:ccmp"
xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info"> xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info">
<ccmpResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <ccmpResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="ccmp:ccmp-conf-response-message-type"> xsi:type="ccmp:ccmp-conf-response-message-type">
<confUserID>xcon-userid:Alice@example.com</confUserID> <confUserID>xcon-userid:Alice@example.com</confUserID>
<confObjID>xcon:8977794@example.com</confObjID> <confObjID>xcon:8977794@example.com</confObjID>
<operation>delete</operation> <operation>delete</operation>
<response-code>200</response-code> <response-code>200</response-code>
<response-string>success</response-string> <response-string>success</response-string>
<ccmp:confResponse/> <ccmp:confResponse/>
</ccmpResponse> </ccmpResponse>
</ccmp:ccmpResponse> </ccmp:ccmpResponse>
Figure 30: Deleting a Conference Messaging Details Figure 30: Deleting a Conference Messaging Details
9. IANA Considerations 9. Security Considerations
This document has no IANA considerations.
10. Security Considerations
The security considerations applicable to the implementation of these The security considerations applicable to the implementation of these
call flows are documented in the XCON Framework, with additional call flows are documented in the XCON framework, with additional
security considerations documented in the CCMP document. Statements security considerations documented in the CCMP document. Statements
with regards to the necessary security are discussed in particular with regard to the necessary security are discussed in particular
flows, however, this is for informational purposes only. The flows; however, this is for informational purposes only. The
implementor is encouraged to carefully consider the security implementer is encouraged to carefully consider the security
requirements in the normative documents. requirements in the normative documents.
11. Acknowledgements 10. Acknowledgements
The detailed content for this document is derived from the prototype The detailed content for this document is derived from the prototype
work of Lorenzo Miniero, Simon Pietro-Romano, Tobia Castaldi and work of Lorenzo Miniero, Simon Pietro Romano, Tobia Castaldi, and
their colleagues at the University of Napoli. their colleagues at the University of Napoli.
12. References 11. References
12.1. Normative References 11.1. Normative References
[RFC5239] Barnes, M., Boulton, C., and O. Levin, "A Framework for [RFC5239] Barnes, M., Boulton, C., and O. Levin, "A Framework for
Centralized Conferencing", RFC 5239, June 2008. Centralized Conferencing", RFC 5239, June 2008.
[I-D.ietf-xcon-ccmp] [RFC6501] Novo, O., Camarillo, G., Morgan, D., and J. Urpalainen,
Barnes, M., Boulton, C., Romano, S., and H. Schulzrinne, "Conference Information Data Model for Centralized
"Centralized Conferencing Manipulation Protocol", Conferencing (XCON)", RFC 6501, March 2012.
draft-ietf-xcon-ccmp-14 (work in progress), July 2011.
[I-D.ietf-xcon-event-package] [RFC6502] Camarillo, G., Srinivasan, S., Even, R., and J.
Camarillo, G., Srinivasan, S., Even, R., and J.
Urpalainen, "Conference Event Package Data Format Urpalainen, "Conference Event Package Data Format
Extension for Centralized Conferencing (XCON)", Extension for Centralized Conferencing (XCON)", RFC 6502,
draft-ietf-xcon-event-package-01 (work in progress), March 2012.
September 2008.
[I-D.ietf-xcon-common-data-model] [RFC6503] Barnes, M., Boulton, C., Romano, S., and H. Schulzrinne,
Novo, O., Camarillo, G., Morgan, D., and J. Urpalainen, "Centralized Conferencing Manipulation Protocol",
"Conference Information Data Model for Centralized RFC 6503, March 2012.
Conferencing (XCON)", draft-ietf-xcon-common-data-model-31
(work in progress), June 2011.
12.2. Informative References [W3C.REC-xml-20081126]
Bray, T., Paoli, J., Sperberg-McQueen, C., Maler, E., and
F. Yergeau, "Extensible Markup Language (XML) 1.0 (Fifth
Edition)", World Wide Web Consortium Recommendation REC-
xml-20081126, November 2008,
<http://www.w3.org/TR/2008/REC-xml-20081126>.
11.2. Informative References
[CALL-FLOWS]
Amirante, A., Castaldi, T., Miniero, L., and S. Romano,
"Media Control Channel Framework (CFW) Call Flow
Examples", Work in Progress, July 2011.
[RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,
A., Peterson, J., Sparks, R., Handley, M., and E. A., Peterson, J., Sparks, R., Handley, M., and E.
Schooler, "SIP: Session Initiation Protocol", RFC 3261, Schooler, "SIP: Session Initiation Protocol", RFC 3261,
June 2002. June 2002.
[RFC4575] Rosenberg, J., Schulzrinne, H., and O. Levin, "A Session
Initiation Protocol (SIP) Event Package for Conference
State", RFC 4575, August 2006.
[RFC4579] Johnston, A. and O. Levin, "Session Initiation Protocol [RFC4579] Johnston, A. and O. Levin, "Session Initiation Protocol
(SIP) Call Control - Conferencing for User Agents", (SIP) Call Control - Conferencing for User Agents",
BCP 119, RFC 4579, August 2006. 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 [RFC4582] Camarillo, G., Ott, J., and K. Drage, "The Binary Floor
Control Protocol (BFCP)", RFC 4582, November 2006. Control Protocol (BFCP)", RFC 4582, November 2006.
[RFC4575] Rosenberg, J., Schulzrinne, H., and O. Levin, "A Session [RFC4597] Even, R. and N. Ismail, "Conferencing Scenarios",
Initiation Protocol (SIP) Event Package for Conference RFC 4597, August 2006.
State", RFC 4575, August 2006.
[I-D.ietf-mediactrl-call-flows]
Amirante, A., Castaldi, T., Miniero, L., and S. Romano,
"Media Control Channel Framework (CFW) Call Flow
Examples", draft-ietf-mediactrl-call-flows-07 (work in
progress), July 2011.
[RFC5567] Melanchuk, T., "An Architectural Framework for Media [RFC5567] Melanchuk, T., "An Architectural Framework for Media
Server Control", RFC 5567, June 2009. Server Control", RFC 5567, June 2009.
[I-D.ietf-mediactrl-mixer-control-package] [RFC6505] McGlashan, S., Melanchuk, T., and C. Boulton, "A Mixer
McGlashan, S., Melanchuk, T., and C. Boulton, "A Mixer
Control Package for the Media Control Channel Framework", Control Package for the Media Control Channel Framework",
draft-ietf-mediactrl-mixer-control-package-14 (work in RFC 6505, March 2012.
progress), January 2011.
Authors' Addresses Authors' Addresses
Mary Barnes Mary Barnes
Polycom Polycom
TX TX
USA USA
Email: mary.ietf.barnes@gmail.com EMail: mary.ietf.barnes@gmail.com
Lorenzo Miniero Lorenzo Miniero
Meetecho Meetecho
Via Carlo Poerio 89/a Via Carlo Poerio 89/a
Napoli 80121 Napoli 80121
Italy Italy
Email: lorenzo@meetecho.com EMail: lorenzo@meetecho.com
Roberta Presta Roberta Presta
University of Napoli University of Napoli
Via Claudio 21 Via Claudio 21
Napoli 80125 Napoli 80125
Italy Italy
Email: roberta.presta@unina.it EMail: roberta.presta@unina.it
Simon Pietro Romano Simon Pietro Romano
University of Napoli University of Napoli
Via Claudio 21 Via Claudio 21
Napoli 80125 Napoli 80125
Italy Italy
Email: spromano@unina.it EMail: spromano@unina.it
 End of changes. 241 change blocks. 
765 lines changed or deleted 770 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/