Centralized Conferencing Manipulation Protocol :: RFC6503
Internet Engineering Task Force (IETF) M. Barnes
Request for Comments: 6503 Polycom
Category: Standards Track C. Boulton
ISSN: 2070-1721 NS-Technologies
S. Romano
University of Napoli
H. Schulzrinne
Columbia University
March 2012
Centralized Conferencing Manipulation Protocol
Abstract
The Centralized Conferencing Manipulation Protocol (CCMP) allows a
Centralized Conferencing (XCON) system client to create, retrieve,
change, and delete objects that describe a centralized conference.
CCMP is a means to control basic and advanced conference features
such as conference state and capabilities, participants, relative
roles, and details. CCMP is a stateless, XML-based, client server
protocol that carries, in its request and response messages,
conference information in the form of XML documents and fragments
conforming to the centralized conferencing data model schema.
Status of This Memo
This is an Internet Standards Track document.
This document is a product of the Internet Engineering Task Force
(IETF). It represents the consensus of the IETF community. It has
received public review and has been approved for publication by the
Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 5741.
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/rfc6503.
Barnes, et al. Standards Track [Page 1]
RFC 6503 CCMP March 2012
Copyright Notice
Copyright (c) 2012 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction ....................................................4
2. Conventions and Terminology .....................................5
3. XCON Conference Control System Architecture .....................5
3.1. Conference Objects .........................................7
3.2. Conference Users ...........................................7
4. Protocol Overview ...............................................8
4.1. Protocol Operations ........................................9
4.2. Data Management ...........................................10
4.3. Data Model Compliance .....................................11
4.4. Implementation Approach ...................................12
5. CCMP Messages ..................................................13
5.1. CCMP Request Message Type .................................13
5.2. CCMP Response Message Type ................................15
5.3. Detailed Messages .........................................17
5.3.1. blueprintsRequest and blueprintsResponse ...........20
5.3.2. confsRequest and confsResponse .....................22
5.3.3. blueprintRequest and blueprintResponse .............24
5.3.4. confRequest and confResponse .......................26
5.3.5. usersRequest and usersResponse .....................30
5.3.6. userRequest and userResponse .......................32
5.3.7. sidebarsByValRequest and sidebarsByValResponse .....37
5.3.8. sidebarByValRequest and sidebarByValResponse .......39
5.3.9. sidebarsByRefRequest and sidebarsByRefResponse .....42
5.3.10. sidebarByRefRequest and sidebarByRefResponse ......44
5.3.11. extendedRequest and extendedResponse ..............47
5.3.12. optionsRequest and optionsResponse ................49
5.4. CCMP Response Codes .......................................53
6. A Complete Example of CCMP in Action ...........................57
6.1. Alice Retrieves the Available Blueprints ..................58
6.2. Alice Gets Detailed Information about a Specific
Blueprint .................................................60
Barnes, et al. Standards Track [Page 2]
RFC 6503 CCMP March 2012
6.3. Alice Creates a New Conference through a Cloning
Operation .................................................62
6.4. Alice Updates Conference Information ......................65
6.5. Alice Inserts a List of Users into the Conference Object ..66
6.6. Alice Joins the Conference ................................68
6.7. Alice Adds a New User to the Conference ...................70
6.8. Alice Asks for the CCMP Server Capabilities ...............72
6.9. Alice Makes Use of a CCMP Server Extension ................75
7. Locating a Conference Server ...................................78
8. Managing Notifications .........................................79
9. HTTP Transport .................................................80
10. Security Considerations .......................................82
10.1. Assuring That the Proper Conference Server Has
Been Contacted ...........................................83
10.2. User Authentication and Authorization ....................84
10.3. Security and Privacy of Identity .........................85
10.4. Mitigating DoS Attacks ...................................86
11. XML Schema ....................................................87
12. IANA Considerations ..........................................105
12.1. URN Sub-Namespace Registration ..........................105
12.2. XML Schema Registration .................................106
12.3. MIME Media Type Registration for
'application/ccmp+xml' ..................................106
12.4. DNS Registrations .......................................107
12.4.1. Registration of a Conference Server
Application Service Tag ..........................108
12.4.2. Registration of a Conference Server
Application Protocol Tag for CCMP ................108
12.5. CCMP Protocol Registry ..................................108
12.5.1. CCMP Message Types ...............................109
12.5.2. CCMP Response Codes ..............................111
13. Acknowledgments ..............................................113
14. References ...................................................113
14.1. Normative References ....................................113
14.2. Informative References ..................................114
Appendix A. Evaluation of Other Protocol Models and
Transports Considered for CCMP ......................116
A.1. Using SOAP for CCMP ......................................117
A.2. A RESTful Approach for CCMP ..............................117
Barnes, et al. Standards Track [Page 3]
RFC 6503 CCMP March 2012
1. Introduction
"A Framework for Centralized Conferencing" [RFC5239] (XCON framework)
defines a signaling-agnostic framework, naming conventions, and
logical entities required for building advanced conferencing systems.
The XCON framework introduces the conference object as a logical
representation of a conference instance, representing the current
state and capabilities of a conference.
The Centralized Conferencing Manipulation Protocol (CCMP) defined in
this document allows authenticated and authorized users to create,
manipulate, and delete conference objects. Operations on conferences
include adding and removing participants, changing their roles, as
well as adding and removing media streams and associated endpoints.
CCMP implements the client-server model within the XCON framework,
with the conferencing client and conference server acting as client
and server, respectively. CCMP uses HTTP [RFC2616] as the protocol
to transfer requests and responses, which contain the domain-specific
XML-encoded data objects defined in [RFC6501] "Conference Information
Data Model for Centralized Conferencing (XCON)".
Section 2 clarifies the conventions and terminology used in the
document. Section 3 provides an overview of the conference control
functionality of the XCON framework, together with a description of
the main targets CCMP deals with, namely conference objects and
conference users. A general description of the operations associated
with protocol messages is given in Section 4 together with
implementation details. Section 5 delves into the details of
specific CCMP messages. A complete, non-normative, example of the
operation of CCMP, describing a typical call flow associated with
conference creation and manipulation, is provided in Section 6. A
survey of the methods that can be used to locate a conference server
is provided in Section 7, and Section 8 discusses potential
approaches to notifications management. CCMP transport over HTTP is
highlighted in Section 9. Security considerations are presented in
Section 10. Finally, Section 11 provides the XML schema.
Barnes, et al. Standards Track [Page 4]
RFC 6503 CCMP March 2012
2. Conventions and Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in
[RFC2119].
In addition to the terms defined in "A Framework for Centralized
Conferencing" [RFC5239], this document uses the following terms and
acronyms:
XCON-aware client: An XCON conferencing system client that is able
to issue CCMP requests.
First-Party Request: A request issued by the client to manipulate
its own conferencing data.
Third-Party Request: A request issued by a client to manipulate the
conference data of another client.
3. XCON Conference Control System Architecture
CCMP supports the XCON framework. Figure 1 depicts a subset of the
"Conferencing System Logical Decomposition" architecture from the
XCON framework document. It illustrates the role that CCMP assumes
within the overall centralized architecture.
Barnes, et al. Standards Track [Page 5]
RFC 6503 CCMP March 2012
........................................................
. Conferencing System .
. .
. +---------------------------------------+ .
. | C O N F E R E N C E O B J E C T | .
. +-+-------------------------------------+ | .
. | C O N F E R E N C E O B J E C T | | .
. +-+-------------------------------------+ | | .
. | C O N F E R E N C E O B J E C T | | | .
. | | |-+ .
. | |-+ .
. +---------------------------------------+ .
. ^ .
. | .
. v .
. +-------------------+ .
. | Conference Control| .
. | Server | .
. +-------------------+ .
. ^ .
.........................|..............................
|
|Centralized
|Conferencing
|Manipulation
|Protocol
|
.........................|..............................
. V .
. +----------------+ .
. | Conference | .
. | Control | .
. | Client | .
. +----------------+ .
. .
. Conferencing Client .
........................................................
Figure 1: Conferencing Client Interaction
The Centralized Conferencing Manipulation Protocol (CCMP) allows the
conference control client (conferencing client) to interface with the
conference object maintained by the conferencing system, as depicted
in Figure 1. Note that additional functionality of the conferencing
client and conferencing system is discussed in the XCON framework and
related documents.
Barnes, et al. Standards Track [Page 6]
RFC 6503 CCMP March 2012
This section provides details of the identifiers REQUIRED to address
and manage the clients associated with a conferencing system using
CCMP.
3.1. Conference Objects
Conference objects feature a simple dynamic inheritance-and-override
mechanism. Conference objects are linked into a tree known as a
"cloning tree" (see Section 7.1 of [RFC5239]). Each cloning tree
node inherits attributes from its parent node. The roots of these
inheritance trees are conference templates also known as
"blueprints". Nodes in the inheritance tree can be active
conferences or simply descriptions that do not currently have any
resources associated with them (i.e., conference reservations). An
object can mark certain of its properties as unalterable, so that
they cannot be overridden. Per the framework, a client may specify a
parent object (a conference or blueprint) from which to inherit
values when a conference is created using the conference control
protocol.
Conference objects are uniquely identified by the XCON-URI within the
scope of the conferencing system. The XCON-URI is introduced in the
XCON framework and defined in the XCON common data model.
Conference objects are comprehensively represented through XML
documents compliant with the XML schema defined in the XCON data
model [RFC6501]. The root element of such documents, called
, is of type "conference-type". It encompasses
other XML elements describing different conference features and users
as well. Using CCMP, conferencing clients can use these XML
structures to express their preferences in creating or updating a
conference. A conference server can convey conference information
back to the clients using the XML elements.
3.2. Conference Users
Each conference can have zero or more users. All conference
participants are users, but some users may have only administrative
functions and do not contribute or receive media. Users are added
one user at a time to simplify error reporting. When a conference is
cloned from a parent object, users are inherited as well, so that it
is easy to set up a conference that has the same set of participants
or a common administrator. The conference server creates individual
users, assigning them a unique conference user identifier (XCON-
USERID). The XCON-USERID as identifier of each conferencing system
client is introduced in the XCON framework and defined in the XCON
Barnes, et al. Standards Track [Page 7]
RFC 6503 CCMP March 2012
common data model. Each CCMP request, with an exception pointed out
in Section 5.3.6 representing the case of a user at his first
entrance in the system as a conference participant, must carry the
XCON-USERID of the requestor in the proper parameter.
The XCON-USERID acts as a pointer to the user's profile as a
conference actor, e.g., her signaling URI and other XCON protocol
URIs in general, her role (moderator, participant, observer, etc.),
her display text, her joining information, and so on. A variety of
elements defined in the common element as specified
in the XCON data model are used to describe the users related to a
conference including the element, as well as each
element included within it. For example, it is possible to determine
how a specific user expects and is allowed to join a conference by
looking at the in : each element
involved in such a list represents a user and shows a 'method'
attribute defining how the user is expected to join the conference,
i.e., "dial-in" for users that are allowed to dial, "dial-out" for
users that the conference focus will be trying to reach (with
"dial-in" being the default mode). If the conference is currently
active, dial-out users are contacted immediately; otherwise, they are
contacted at the start of the conference. CCMP, acting as the
conference control protocol, provides a means to manipulate these and
other kinds of user-related features.
As a consequence of an explicit user registration to a specific XCON
conferencing system, conferencing clients are usually provided
(besides the XCON-USERID) with log-in credentials (i.e., username and
password). Such credentials can be used to authenticate the XCON-
aware client issuing CCMP requests. Thus, both username and password
should be carried in a CCMP request as part of the "subject"
parameter whenever a registered conferencing client wishes to contact
a CCMP server. CCMP does not maintain a user's subscriptions at the
conference server; hence, it does not provide any specific mechanism
allowing clients to register their conferencing accounts. The
"subject" parameter is just used for carrying authentication data
associated with pre-registered clients, with the specific
registration modality outside the scope of this document.
4. Protocol Overview
CCMP is a client-server, XML-based protocol for user creation,
retrieval, modification, and deletion of conference objects. CCMP is
a stateless protocol, such that implementations can safely handle
transactions independently from each other. CCMP messages are XML
documents or XML document fragments compliant with the XCON data
model representation [RFC6501].
Barnes, et al. Standards Track [Page 8]
RFC 6503 CCMP March 2012
Section 4.1 specifies the basic operations that can create, retrieve,
modify, and delete conference-related information in a centralized
conference. The core set of objects manipulated by CCMP includes
conference blueprints, the conference object, users, and sidebars.
Each operation in the protocol model, as summarized in Section 4.1,
is atomic and either succeeds or fails as a whole. The conference
server MUST ensure that the operations are atomic in that the
operation invoked by a specific conferencing client completes prior
to another client's operation on the same conference object. While
the details for this data locking functionality are out of scope for
the CCMP specification and are implementation specific for a
conference server, some core functionality for ensuring the integrity
of the data is provided by CCMP as described in Section 4.2.
While the XML documents that are carried in CCMP need to comply with
the XCON data model, there are situations in which the values for
mandatory elements are unknown by the client. The mechanism for
ensuring compliance with the data model in these cases is described
in Section 4.3.
CCMP is completely independent from underlying protocols, which means
that there can be different ways to carry CCMP messages from a
conferencing client to a conference server. The specification
describes the use of HTTP as a transport solution, including CCMP
requests in HTTP POST messages and CCMP responses in HTTP 200 OK
replies. This implementation approach is further described in
Section 4.4.
4.1. Protocol Operations
The main operations provided by CCMP belong in four general
categories:
create: for the creation of a conference object, a conference user,
a sidebar, or a blueprint.
retrieve: to get information about the current state of either a
conference object (be it an actual conference, a blueprint, or a
sidebar) or a conference user. A retrieve operation can also be
used to obtain the XCON-URIs of the current conferences (active or
registered) handled by the conferencing server and/or the
available blueprints.
update: to modify the current features of a specified conference or
conference user.
Barnes, et al. Standards Track [Page 9]
RFC 6503 CCMP March 2012
delete: to remove from the system a conference object or a
conference user.
Thus, the main targets of CCMP operations are as follows:
o conference objects associated with either active or registered
conferences,
o conference objects associated with blueprints,
o conference objects associated with sidebars, both embedded in the
main conference (i.e., elements in )
and external to it (i.e., whose XCON-URIs are included in the
elements of ),
o elements associated with conference users, and
o the list of XCON-URIs related to conferences and blueprints
available at the server, for which only retrieval operations are
allowed.
4.2. Data Management
The XCON framework defines a model whereby the conference server
centralizes and maintains the conference information. Since multiple
clients can modify the same conference objects, a conferencing client
might not have the latest version of a specific conference object
when it initiates operations. To determine whether the client has
the most up-to-date conference information, CCMP defines a versioning
approach. Each conference object is associated with a version
number. All CCMP response messages containing a conference document
(or a fragment thereof) MUST contain a parameter. When a
client sends an update message to the server, which includes
modifications to a conference object, if the modifications are all
successfully applied, the server MUST return a response, with a
of "200", containing the version number of the
modified object. With this approach, a client working on version "X"
of a conference object that receives a response, with a of "200", with a version number that is "X+1" can be certain
that the version it manipulated was the most up to date. However, if
the response contains a version that is at least "X+2", the client
knows that the object modified by the server was more up to date than
the object the client was manipulating. In order to ensure that the
client always has the latest version of the modified object, the
client can send a request to the conference server to retrieve the
conference object. The client can then update the relevant data
elements in the conference object prior to invoking a specific
operation. Note that a client subscribed to the XCON event package
Barnes, et al. Standards Track [Page 10]
RFC 6503 CCMP March 2012
[RFC6502] notifications about conference object modifications, will
receive the most up-to-date version of that object upon receipt of a
notification.
The "version" parameter is OPTIONAL for requests, since it is not
needed by the server: as long as the required modifications can be
applied to the target conference object without conflicts, the server
does not care whether the client has stored an up-to-date view of the
information. In addition, to ensure the integrity of the data, the
conference server first checks all the parameters, before making any
changes to the internal representation of the conference object. For
example, it would be undesirable to change the of the
conference, but then detect an invalid URI in one of the and abort the remaining updates.
4.3. Data Model Compliance
The XCON data model [RFC6501] identifies some elements and attributes
as mandatory. Since the XML documents carried in the body of the
CCMP requests and responses need to be compliant with the XCON data
model, there can be a problem in cases of client-initiated
operations, such as the initial creation of conference objects and
cases whereby a client updates a conference object adding new
elements, such as a new user. In such cases, not all of the
mandatory data can be known in advance by the client issuing a CCMP
request. As an example, a client cannot know, at the time it issues
a conference creation request, the XCON-URI that the server will
assign to the yet-to-be-created conference; hence, it is not able to
populate the mandatory 'entity' attribute of the conference document
contained in the request with the correct value. To solve this
issue, the CCMP client fills all mandatory data model fields, for
which no value is available at the time the request is constructed,
with placeholder values in the form of a wildcard string,
AUTO_GENERATE_X (all uppercase), with X being a unique numeric index
for each data model field for which the value is unknown. This form
of wildcard string is chosen, rather than the use of random unique
strings (e.g., FOO_BAR_LA) or non-numeric values for X, to simplify
processing at the server. The values of AUTO_GENERATE_X are only
unique within the context of the specific request. The placeholder
AUTO_GENERATE_X values MUST be within the value part of an attribute
or element (e.g., ).
Barnes, et al. Standards Track [Page 11]
RFC 6503 CCMP March 2012
When the server receives requests containing values in the form of
AUTO_GENERATE_X, the server does the following:
(a) Generates the proper identifier for each instance of
AUTO_GENERATE_X in the document. If an instance of
AUTO_GENERATE_X is not within the value part of the attribute/
element, the server MUST send a of "400 Bad
Request". In cases where AUTO_GENERATE_X appears only in the
user part of a URI (i.e., in the case of XCON-USERIDs or XCON-
URIs), the server needs to ensure that the domain name is one
that is within the server's domain of responsibility. If the
domain name is not within the server's domain of responsibility,
then the server MUST send a of "427 Invalid
Domain Name". The server MUST replace each instance of a
specific wildcard field (e.g., AUTO_GENERATE_1) with the same
identifier. The identifiers MUST be unique for each instance of
AUTO_GENERATE_X within the same XML document received in the
request; for example, the value that replaces AUTO_GENERATE_1
MUST NOT be the same as the value that replaces AUTO_GENERATE_2.
Note that the values that replace the instances of
AUTO_GENERATE_X are not the same across all conference objects;
for example, different values can be used to replace
AUTO_GENERATE_1 in two different documents.
(b) Sends a response in which all values of AUTO_GENERATE_X received
in the request have been replaced by the newly created one(s).
With this approach, compatibility with the data model requirements is
maintained, while allowing for client-initiated manipulation of
conference objects at the server's side. Note that the use of this
mechanism could be avoided in come cases by using multiple
operations, such as creating a new user and then adding the new user
to an existing conference. However, the AUTO_GENERATE_X mechanism
allows a single operation to be used to effect the same change on the
conference object.
4.4. Implementation Approach
CCMP is implemented using HTTP, placing the CCMP request messages
into the body of an HTTP POST operation and placing the CCMP
responses into the body of the HTTP response messages. A non-
exhaustive summary of the other approaches that were considered and
the perceived advantages of the HTTP solution described in this
document are provided in Appendix A.
Most CCMP commands can pend indefinitely, thus increasing the
potential that pending requests can continue to increase when a
server is receiving more requests than it can process within a
Barnes, et al. Standards Track [Page 12]
RFC 6503 CCMP March 2012
specific time period. In this case, a server SHOULD return a
of "510" to the pending requests. In addition, to
mitigate the situation, clients MUST NOT wait indefinitely for a
response and MUST implement a timer such that when it expires, the
client MUST close the connection. Thirty seconds is RECOMMENDED as
the default value for this timer. Sixty seconds is considered a
reasonable upper range. Note that there may be cases where a
response message is lost and a request has been successful (e.g.,
user added to a conference); yet, the client will be unaware and
close the connection. However, as described in Section 4.2, there is
a versioning mechanism for the conference objects; thus, there is a
mechanism for the conference object stored by the client to be
brought up to date.
CCMP messages have a MIME-type of "application/ccmp+xml", which
appears inside the Content-Type and Accept header fields of HTTP
requests and responses. The XML documents in the CCMP messages MUST
be encoded in UTF-8. This specification follows the recommendations
and conventions described in [RFC3023], including the naming
convention of the type ('+xml' suffix) and the usage of the 'charset'
parameter. The 'charset' parameter MUST be included with the XML
document. Section 9 provides the complete requirements for an HTTP
implementation to support CCMP.
5. CCMP Messages
CCMP messages are either requests or responses. The general CCMP
request message is defined in Section 5.1. The general CCMP response
message is defined in Section 5.2. The details of the specific
message type that is carried in the CCMP request and response
messages are described in Section 5.3. CCMP response codes are
listed in Section 5.4.
5.1. CCMP Request Message Type
A CCMP request message is comprised of the following parameters:
subject: An OPTIONAL parameter containing the username and password
of the client registered at the conferencing system. Each user
who subscribes to the conferencing system is assumed to be
equipped with those credentials and SHOULD enclose them in each
CCMP request she issues. These fields can be used to control that
the user sending the CCMP request has the authority to perform the
requested operation. The same fields can also be used for other
authorization and authentication procedures.
Barnes, et al. Standards Track [Page 13]
RFC 6503 CCMP March 2012
confUserID: An OPTIONAL parameter containing the XCON-USERID of the
client. The XCON-USERID is used to identify any conferencing
client within the context of the conferencing system and it is
assigned by the conference server for each conferencing client who
interacts with it. The parameter is REQUIRED in the
CCMP request and response messages with the exception of the case
of a user who has no XCON-USERID and who wants to enter, via CCMP,
a conference whose identifier is known. In such case, a side
effect of the request is that the user is provided with an
appropriate XCON-USERID. An example of the aforementioned case
will be provided in Section 5.3.6.
confObjID: An OPTIONAL parameter containing the XCON-URI of the
target conference object.
operation: An OPTIONAL parameter refining the type of specialized
request message. The parameter is REQUIRED in all
requests except for the blueprintsRequest and confsRequest
specialized messages.
conference-password: The parameter is OPTIONAL except that it MUST
be inserted in all requests whose target conference object is
password-protected i.e., contains the
element in [RFC6501]). A CCMP of "423" MUST be
returned if a conference-password is not included in the request
when required.
specialized request message: This is a specialization of the generic
request message (e.g., blueprintsRequest), containing parameters
that are dependent on the specific request sent to the server. A
specialized request message MUST be included in the CCMP request
message. The details for the specialized messages and associated
parameters are provided in Section 5.3.
Barnes, et al. Standards Track [Page 14]
RFC 6503 CCMP March 2012
Figure 2: Structure of CCMP Request Messages
5.2. CCMP Response Message Type
A CCMP response message is comprised of the following parameters:
confUserID: A REQUIRED parameter in CCMP response messages
containing the XCON-USERID of the conferencing client that issued
the CCMP request message.
confObjID: An OPTIONAL parameter containing the XCON-URI of the
target conference object.
Barnes, et al. Standards Track [Page 15]
RFC 6503 CCMP March 2012
operation: An OPTIONAL parameter for CCMP response messages. This
parameter is REQUIRED in all responses except for the
"blueprintsResponse" and "confsResponse" specialized messages.
response-code: A REQUIRED parameter containing the response code
associated with the request. The response code MUST be chosen
from the codes listed in Section 5.4.
response-string: An OPTIONAL reason string associated with the
response. In case of an error, in particular, this string can be
used to provide the client with detailed information about the
error itself.
version: An OPTIONAL parameter reflecting the current version number
of the conference object referred by the confObjID. This number
is contained in the 'version' attribute of the
element related to that conference. This parameter is REQUIRED in
CCMP response messages and SHOULD NOT be included in CCMP request
messages.
specialized response message: This is specialization of the generic
response message, containing parameters that are dependent on the
specific request sent to the server (e.g., "blueprintsResponse").
A specialized response message SHOULD be included in the CCMP
response message, except in an error situation where the CCMP
request message did not contain a valid specialized message. In
this case, the conference server MUST return a of
"400". The details for the specialized messages and associated
parameters are provided in Section 5.3.
Barnes, et al. Standards Track [Page 16]
RFC 6503 CCMP March 2012
Figure 3: Structure of CCMP Response Message
5.3. Detailed Messages
Based on the request and response message structures described in
Sections 5.1 and 5.2, the following summarizes the specialized CCMP
request and response types described in this document:
1. blueprintsRequest/blueprintsResponse
2. confsRequest/confsResponse
Barnes, et al. Standards Track [Page 17]
RFC 6503 CCMP March 2012
3. blueprintRequest/blueprintResponse
4. confRequest/confResponse
5. usersRequest/usersResponse
6. userRequest/userResponse
7. sidebarsByValRequest/sidebarsByValResponse
8. sidebarsByRefRequest/sidebarsByRefResponse
9. sidebarByValRequest/sidebarByValResponse
10. sidebarByRefRequest/sidebarByRefResponse
11. extendedRequest/extendedResponse
12. optionsRequest/optionsResponse
These CCMP request/response pairs use the fundamental CCMP operations
as defined in Section 4.1 to manipulate the conference data. These
request/response pairs are included in an IANA registry as defined in
Section 12.5. Table 1 summarizes the remaining CCMP operations and
corresponding actions that are valid for a specific CCMP request
type, noting that neither the blueprintsRequest/blueprintsResponse
nor confsRequest/confsResponse require an parameter. An
entity MUST support the response message for each of the request
messages that is supported. The corresponding response message MUST
contain the same parameter. Note that some entries are
labeled "N/A", indicating that the operation is invalid for that
request type. In the case of an "N/A*" label, the operation MAY be
allowed for specific privileged users or system administrators but is
not part of the functionality included in this document.
Barnes, et al. Standards Track [Page 18]
RFC 6503 CCMP March 2012
+---------------+------------+------------+------------+------------+
| Operation | Retrieve | Create | Update | Delete |
| ------------- | | | | |
| Request Type | | | | |
+---------------+------------+------------+------------+------------+
| blueprints | Get list | N/A | N/A | N/A |
| Request | of | | | |
| | blueprints | | | |
| ------------- | ---------- | ---------- | ---------- | ---------- |
| blueprint | Get | N/A* | N/A* | N/A* |
| Request | blueprint | | | |
| ------------- | ---------- | ---------- | ---------- | ---------- |
| confsRequest | Get list | N/A | N/A | N/A |
| | of confs | | | |
| ------------- | ---------- | ---------- | ---------- | ---------- |
| confRequest | Get | Create | Change | Delete |
| | conference | conference | conference | conference |
| | object | object | object | object |
| ------------- | ---------- | ---------- | ---------- | ---------- |
| usersRequest | Get | N/A(**) | Change | N/A(**) |
| | | | | |
| ------------- | ---------- | ---------- | ---------- | ---------- |
| userRequest | Get | Add a | Change | Delete |
| | specified | to | specified | specified |
| | | a conf | | |
| | | (***) | | |
| ------------- | ---------- | ---------- | ---------- | ---------- |
| sidebarsByVal | Get | N/A | N/A | N/A |
| Request | | | | |
| ------------- | ---------- | ---------- | ---------- | ---------- |
| sidebarsByRef | Get | N/A | N/A | N/A |
| Request | | | | |
| ------------- | ---------- | ---------- | ---------- | ---------- |
| sidebarByValR | Get | Create | Change | Delete |
| equest | sidebar- | sidebar- | sidebar- | sidebar- |
| | by-val | by-val | by-val | by-val |
| ------------- | ---------- | ---------- | ---------- | ---------- |
| sidebarByRefR | Get | Create | Change | Delete |
| equest | sidebar- | sidebar- | sidebar- | sidebar- |
| | by-ref | by-ref | by-ref | by-ref |
+---------------+------------+------------+------------+------------+
Table 1: Request Type Operation-Specific Processing
Barnes, et al. Standards Track [Page 19]
RFC 6503 CCMP March 2012
(**): These operations are not allowed for a usersRequest message,
since the section, which is the target element of such a
request, is created and removed in conjunction with the creation and
deletion, respectively, of the associated conference document. Thus,
"update" and "retrieve" are the only semantically correct operations
for such message.
(***): This operation can involve the creation of an XCON-USERID, if
the sender does not add it in the parameter and/or if
the entity field of the parameter is void.
Additional parameters included in the specialized CCMP request and
response messages are detailed in the subsequent sections. If a
required parameter is not included in a request, the conference
server MUST return a of "400" per Section 5.4.
5.3.1. blueprintsRequest and blueprintsResponse
A blueprintsRequest (Figure 4) message is sent to request the list of
XCON-URIs associated with the available blueprints from the
conference server. These XCON-URIs can be subsequently used by the
client to access detailed information about a specified blueprint
with a specific blueprintRequest message per Section 5.3.3.
The parameter MUST be included in every
blueprintsRequest/Response message and reflect the XCON-USERID of the
conferencing client issuing the request. Since a blueprintsRequest
message is not targeted to a specific conference instance and is a
"retrieve-only" request, the and parameters
MUST NOT be included in the blueprintsRequest/Response messages.
In order to obtain a specific subset of the available blueprints, a
client may specify a selection filter providing an appropriate xpath
query in the OPTIONAL "xpathFilter" parameter of the request. The
information in the blueprints typically represents general
capabilities and characteristics. For example, to select blueprints
having both audio and video stream support, a possible xpathFilter
value could be: "/conference-info[conference-description/
available-media/entry/type='audio' and conference-description/
available-media/entry/type='video']". A conference server SHOULD NOT
provide any sensitive information (e.g., passwords) in the
blueprints.
The associated blueprintsResponse message SHOULD contain, as shown in
Figure 4, a "blueprintsInfo" parameter containing the above mentioned
XCON-URI list.
Barnes, et al. Standards Track [Page 20]
RFC 6503 CCMP March 2012
Barnes, et al. Standards Track [Page 21]
RFC 6503 CCMP March 2012
Figure 4: Structure of the blueprintsRequest and
blueprintsResponse Messages
5.3.2. confsRequest and confsResponse
A confsRequest message is used to retrieve, from the server, the list
of XCON-URIs associated with active and registered conferences
currently handled by the conferencing system. The
parameter MUST be included in every confsRequest/Response message and
reflect the XCON-USERID of the conferencing client issuing the
request. The parameter MUST NOT be included in the
confsRequest message. The confsRequest message is of a retrieve-only
type, since the sole purpose is to collect information available at
the conference server. Thus, an parameter MUST NOT be
included in a confsRequest message. In order to retrieve a specific
subset of the available conferences, a client may specify a selection
filter providing an appropriate xpath query in the OPTIONAL
"xpathFilter" parameter of the request. For example, to select only
the registered conferences, a possible xpathFilter value could be "/
conference-info[conference-description/conference-state/
active='false']". The associated confsResponse message SHOULD
contain the list of XCON-URIs in the "confsInfo" parameter. A user,
upon receipt of the response message, can interact with the available
conference objects through further CCMP messages.
Barnes, et al. Standards Track [Page 22]
RFC 6503 CCMP March 2012
Barnes, et al. Standards Track [Page 23]
RFC 6503 CCMP March 2012
Figure 5: Structure of the confsRequest and confsResponse Messages
5.3.3. blueprintRequest and blueprintResponse
Through a blueprintRequest, a client can manipulate the conference
object associated with a specified blueprint. Along with the
parameter, the request MUST include the and
the parameters. Again, the parameter MUST
be included in every blueprintRequest/Response message and reflect
the XCON-USERID of the conferencing client issuing the request. The
parameter MUST contain the XCON-URI of the blueprint,
which might have been previously retrieved through a
blueprintsRequest message.
The blueprintRequest message SHOULD NOT contain an
parameter with a value other than "retrieve". An
parameter with a value of "create", "update", or "delete" SHOULD NOT
be included in a blueprintRequest message except in the case of
privileged users (e.g., the conference server administration staff),
who might authenticate themselves by the mean of the "subject"
request parameter.
A blueprintRequest/retrieve carrying a parameter whose
value is not associated with one of the available system's
blueprints, will generate, on the server's side, a blueprintResponse
message containing a of "404". This also holds for
the case in which the mentioned parameter value is
related to an existing conference document stored at the server, but
associated with an actual conference (be it active or registered) or
with a sidebar rather than a blueprint.
Barnes, et al. Standards Track [Page 24]
RFC 6503 CCMP March 2012
For a of "200" in a "retrieve" operation, the
parameter MUST be included in the blueprintResponse
message. The parameter contains the conference
document associated with the blueprint as identified by the
parameter specified in the blueprintRequest.
Barnes, et al. Standards Track [Page 25]
RFC 6503 CCMP March 2012
Figure 6: Structure of the blueprintRequest and
blueprintResponse Messages
5.3.4. confRequest and confResponse
With a confRequest message, CCMP clients can manipulate conference
objects associated with either active or registered conferences. The
parameter MUST be included in every confRequest/Response
message and reflect the XCON-USERID of the conferencing client
issuing the request. confRequest and confResponse messages MUST also
include an parameter. ConfResponse messages MUST return
to the requestor a and MAY contain a explaining it. Depending upon the type of operation, a
and parameter MAY be included in the
confRequest and response. For each type of operation, the text below
describes whether the and parameters need to
be included in the confRequest and confResponse messages.
The creation case deserves care. To create a new conference through
a confRequest message, two approaches can be considered:
1. Creation through explicit cloning: the parameter MUST
contain the XCON-URI of the blueprint or of the conference to be
cloned, while the parameter MUST NOT be included in
the confRequest. Note that cloning of an active conference is
only done in the case of a sidebar operation per the XCON
framework and as described in Section 5.3.8.
2. Creation through implicit cloning (also known as "direct
creation"): the parameter MUST NOT be included in the
request and the CCMP client can describe the desired conference
to be created using the parameter. If no
parameter is provided in the request, the new conference will be
created as a clone of the system default blueprint.
Barnes, et al. Standards Track [Page 26]
RFC 6503 CCMP March 2012
In both creation cases, the confResponse, for a successful completion
of a "create" operation, contains a of "200" and MUST
contain the XCON-URI of the newly created conference in the
parameter, in order to allow the conferencing client to
manipulate that conference through following CCMP requests. In
addition, the parameter containing the conference document
created MAY be included, at the discretion of the conferencing system
implementation, along with the REQUIRED parameter
initialized at "1", since, at creation time, the conference object is
at its first version.
In the case of a confRequest with an parameter of
"retrieve", the parameter representing the XCON-URI of
the target conference MUST be included and the parameter
MUST NOT be included in the request. The conference server MUST
ignore any parameter that is received in a confRequest
"retrieve" operation. If the confResponse for the retrieve operation
contains a of "200", the parameter MUST be
included in the response. The parameter MUST contain the
entire conference document describing the target conference object in
its current state. The current state of the retrieved conference
object MUST also be reported in the proper "version" response
parameter.
In case of a confRequest with an parameter of "update",
the and parameters MUST be included in the
request. The represents an object of type
"conference-type" containing all the changes to be applied to the
conference whose identifier has the same value as the
parameter. Note that, in such a case, though the
parameter indeed has to follow the rules indicated in the XCON data
model, it does not represent the entire updated version of the target
conference, since it conveys just the modifications to apply to that
conference. For example, in order to change the conference title,
the parameter will be of the form:
*** NEW CONFERENCE TITLE ***
Figure 7: Updating a Conference Object: Modifying the
Title of a Conference
Similarly, to remove the title of an existing conference, a
confRequest/update carrying the following parameter would
do the job.
Barnes, et al. Standards Track [Page 27]
RFC 6503 CCMP March 2012
Figure 8: Updating a Conference Object:
Removing the Title of a Conference
In the case of a confResponse/update with a of "200",
no additional information is REQUIRED in the response message, which
means the return of a parameter is OPTIONAL. A subsequent
confRequest/retrieve transaction might provide the CCMP client with
the current status of the conference after the modification, or the
notification protocol might address that task as well. A of "200" indicates that the conference object has been changed
according to the request by the conference server. The
parameter MUST be enclosed in the confResponse/update message, in
order to let the client understand what is the current conference-
object version, upon the applied modifications. A of
"409" indicates that the changes reflected in the
parameter of the request are not feasible. This could be due to
policies, requestor roles, specific privileges, unacceptable values,
etc., with the reason specific to a conferencing system and its
configuration. Together with a of "409", the
parameter MUST be attached in the confResponse/update,
allowing the client to later retrieve the current version of the
target conference if the one she attempted to modify was not the most
up to date.
In the case of a confRequest with an parameter of
"delete", the parameter representing the XCON-URI of the
target conference MUST be included while the parameter
MUST NOT be included in the request. The conference server MUST
ignore any parameter that is received within such a
request. The confResponse MUST contain the same value for the
parameter that was included in the confRequest. If the
confResponse/delete operation contains a of "200",
the conference indicated in the parameter has been
successfully deleted. A confResponse/delete with a
of "200" MUST NOT contain the parameter. The
parameter SHOULD NOT be returned in any confResponse/delete. If the
conference server cannot delete the conference referenced by the
parameter received in the confRequest because it is the
parent of another conference object that is in use, the conference
server MUST return a of "425".
Barnes, et al. Standards Track [Page 28]
RFC 6503 CCMP March 2012
A confRequest with an parameter of "retrieve", "update",
or "delete" carrying a parameter which is not associated
with one of the conferences (active or registered) that the system is
holding will generate, on the server's side, a confResponse message
containing a of "404". This also holds for the case
in which the mentioned parameter is related to an
existing conference object stored at the server, but associated with
a blueprint or with a sidebar rather than an actual conference.
The schema for the confRequest/confResponse pair is shown in
Figure 9.
Barnes, et al. Standards Track [Page 29]
RFC 6503 CCMP March 2012
Figure 9: Structure of the confRequest and confResponse Messages
5.3.5. usersRequest and usersResponse
The usersRequest message allows a client to manipulate the
element of the conference object represented by the
parameter. The element contains the list of elements
associated with conference participants, the list of the users to
which access to the conference is allowed/denied, conference
participation policies, etc. The parameter MUST be
included in a usersRequest message.
A parameter MAY be included in a usersRequest message
depending upon the operation. If the parameter is
included in the usersRequest message, the parameter MUST be compliant
with the field of the XCON data model.
Two operations are allowed for a usersRequest message:
1. "retrieve": In this case the request MUST NOT include a
parameter, while the successful response MUST contain
the desired element in the parameter. The
Barnes, et al. Standards Track [Page 30]
RFC 6503 CCMP March 2012
conference server MUST ignore a parameter if it is
received in a request with an parameter of
"retrieve".
2. "update": In this case, the parameter MUST contain
the modifications to be applied to the element indicated.
If the is "200", then the parameter
SHOULD NOT be returned. Any parameter that is
returned SHOULD be ignored. A of "426" indicates
that the conferencing client is not allowed to make the changes
reflected in the contained in the usersRequest
message. This could be due to policies, roles, specific
privileges, etc., with the reason being specific to a
conferencing system and its configuration.
Operations of "create" and "delete" are not applicable to a
usersRequest message and MUST NOT be considered by the server, which
means that a of "403" MUST be included in the
usersResponse message.
Barnes, et al. Standards Track [Page 31]
RFC 6503 CCMP March 2012
Figure 10: Structure of the usersRequest and usersResponse Messages
5.3.6. userRequest and userResponse
A userRequest message is used to manipulate elements inside a
conference document associated with a conference identified by the
parameter. Besides retrieving information about a
specific conference user, the message is used to request that the
conference server either create, modify, or delete information about
a user. A userRequest message MUST include the and the
parameters, and it MAY include a parameter
containing the detailed user's information depending upon the
operation and whether the has already been populated for a
specific user. Note that a user may not necessarily be a
conferencing control client (i.e., some participants in a conference
are not "XCON aware").
An XCON-USERID SHOULD be assigned to each and every user subscribed
to the system. In such a way, a user who is not a conference
participant can make requests (provided she has successfully passed
authorization and authentication checks), like creating a conference
or retrieving conference information.
Barnes, et al. Standards Track [Page 32]
RFC 6503 CCMP March 2012
Conference users can be created in a number of different ways. In
each of these cases, the parameter MUST be set to
"create" in the userRequest message. Each of the userResponse
messages for these cases MUST include the , ,
, and parameters. In the case of a
of "200", the userResponse message MAY include the
parameter depending upon the manner in which the user was
created:
o A conferencing client with an XCON-USERID adds itself to the
conference: In this case, the parameter MAY be included
in the userRequest. The parameter MUST contain a
element (compliant with the XCON data model) and the
'entity' attribute MUST be set to a value that represents the
XCON-USERID of the user initiating the request. No additional
parameters beyond those previously described are required in the
userResponse message, in the case of a of "200".
o A conferencing client acts on behalf of another user whose XCON-
USERID is known: In this case, the parameter MUST be
included in the userRequest. The parameter MUST
contain a element and the 'entity' attribute value MUST be
set to the XCON-USERID of the other user in question. No
additional parameters beyond those previously described are
required in the userResponse message, in the case of a of "200".
o A conferencing client who has no XCON-USERID and who wants to
enter, via CCMP, a conference whose identifier is known: In this
case, a side effect of the request is that the user is provided
with a new XCON-USERID (created by the server) carried inside the
parameter of the response. This is the only case in
which a CCMP request can be valid though carrying a void
parameter. A parameter MUST be enclosed
in the request, providing at least a contact URI of the joining
client, in order to let the focus initiate the signaling phase
needed to add her to the conference. The mandatory 'entity'
attribute of the parameter in the request MUST be
filled with a placeholder value with the user part of the XCON-
USERID containing a value of AUTO_GENERATE_X as described in
Section 4.3, to conform to the rules contained in the XCON data
model XML schema. The messages (userRequest and userResponse) in
this case should look like the following:
Barnes, et al. Standards Track [Page 33]
RFC 6503 CCMP March 2012
Request fields:
confUserID=null;
confObjID=confXYZ;
operation=create;
userInfo=
...
Response fields (in case of success):
confUserID=user345;
confObjID=confXYZ;
operation=create;
response-code=200;
userInfo=null; //or the entire userInfo object
Figure 11: userRequest and userResponse in the
Absence of an xcon-userid
o A conferencing client is unaware of the XCON-USERID of a third
user: In this case, the XCON-USERID in the request, ,
is the sender's and the 'entity' attribute of the attached
parameter is filled with the placeholder value
"xcon-userid:AUTO_GENERATE_1@example.com". The XCON-USERID for
the third user MUST be returned to the client issuing the request
in the 'entity' attribute of the response parameter, if
the is "200". This scenario is intended to
support both the case where a brand new conferencing system user
is added to a conference by a third party (i.e., a user who has
not yet been provided with an XCON-USERID) and the case where the
CCMP client issuing the request does not know the to-be-added
user's XCON-USERID (which means such an identifier could already
exist on the server's side for that user). In this last case, the
conference server is in charge of avoiding XCON-URI duplicates for
the same conferencing client, looking at key fields in the
request-provided parameter, such as the signaling URI.
If the joining user is brand new, then the generation of a new
XCON-USERID is needed; otherwise, if that user exists already, the
server must recover the corresponding XCON-USERID.
In the case of a userRequest with an parameter of
"retrieve", the parameter representing the XCON-URI of
the target conference MUST be included. The , containing
the CCMP client's XCON-USERID, MUST also be included in the
Barnes, et al. Standards Track [Page 34]
RFC 6503 CCMP March 2012
userRequest message. If the client wants to retrieve information
about her profile in the specified conference, no
parameter is needed in the retrieve request. On the other hand, if
the client wants to obtain someone else's info within the given
conference, she MUST include in the userRequest/retrieve a
parameter whose 'entity' attribute conveys the desired user's XCON-
USERID. If the userResponse for the retrieve operation contains a
of "200", the parameter MUST be included
in the response.
In case of a userRequest with an parameter of "update",
the , , and parameters MUST be
included in the request. The parameter is of type "user-
type" and contains all the changes to be applied to a specific
element in the conference object identified by the
parameter in the userRequest message. The user to be modified is
identified through the 'entity' attribute of the parameter
included in the request. In the case of a userResponse with a
of "200", no additional information is required in
the userResponse message. A of "200" indicates that
the referenced element has been updated by the conference
server. A of "426" indicates that the conferencing
client is not allowed to make the changes reflected in the
in the initial request. This could be due to policies, roles,
specific privileges, etc., with the reason specific to a conferencing
system and its configuration.
In the case of a userRequest with an parameter of
"delete", the representing the XCON-URI of the target
conference MUST be included. The parameter, containing
the CCMP client's XCON-USERID, MUST be included in the userRequest
message. If the client wants to exit the specified conference, no
parameter is needed in the delete request. On the other
hand, if the client wants to remove another participant from the
given conference, she MUST include in the userRequest/delete a
parameter whose 'entity' attribute conveys the XCON-USERID
of that participant. The userResponse MUST contain the same value
for the parameter that was included in the
parameter in the userRequest. The userResponse MUST contain a
of "200" if the target element has been
successfully deleted. If the userResponse for the delete operation
contains a of "200", the userResponse MUST NOT
contain the parameter.
Barnes, et al. Standards Track [Page 35]
RFC 6503 CCMP March 2012
Barnes, et al. Standards Track [Page 36]
RFC 6503 CCMP March 2012
Figure 12: Structure of the userRequest and userResponse Messages
5.3.7. sidebarsByValRequest and sidebarsByValResponse
A sidebarsByValRequest message is used to execute a retrieve-only
operation on the field of the conference object
represented by the . The sidebarsByValRequest message is
of a retrieve-only type, so an parameter MUST NOT be
included in a sidebarsByValRequest message. As with blueprints and
conferences, CCMP allows for the use of xpath filters whenever a
selected subset of the sidebars available at the server's side has to
be retrieved by the client. This applies both to sidebars by
reference and sidebars by value. A sidebarsByValResponse message
with a of "200" MUST contain a
parameter containing the desired element. A
sidebarsByValResponse message MUST return to the client a
element related to the current version of the main conference object
(i.e., the one whose identifier is contained in the field
of the request) with which the sidebars in question are associated.
The parameter contains the list of the conference
objects associated with the sidebars by value derived from the main
conference. The retrieved sidebars can then be updated or deleted
using the sidebarByValRequest message, which is described in
Section 5.3.8.
Barnes, et al. Standards Track [Page 37]
RFC 6503 CCMP March 2012
Barnes, et al. Standards Track [Page 38]
RFC 6503 CCMP March 2012
Figure 13: Structure of the sidebarsByValRequest and
sidebarsByValResponse Messages
5.3.8. sidebarByValRequest and sidebarByValResponse
A sidebarByValRequest message MUST contain the parameter,
which distinguishes among retrieval, creation, modification, and
deletion of a specific sidebar. The other required parameters depend
upon the type of operation.
In the case of a "create" operation, the parameter MUST
be included in the sidebyValRequest message. In this case, the
parameter contains the XCON-URI of the main conference in
which the sidebar has to be created. If no "sidebarByValInfo"
parameter is included, the sidebar is created by cloning the main
conference, as envisioned in the XCON framework [RFC5239] following
the implementation specific cloning rules. Otherwise, similar to the
case of direct creation, the sidebar conference object is built on
the basis of the "sidebarByValInfo" parameter provided by the
requestor. As a consequence of a sidebar-by-val creation, the
conference server MUST update the main conference object reflected by
the parameter in the sidebarbyValRequest/create message
introducing the new sidebar object as a new in the proper
section . The newly created sidebar conference
object MAY be included in the sidebarByValResponse in the
parameter, if the is "200". The
XCON-URI of the newly created sidebar MUST appear in the
parameter of the response. The conference server can notify any
conferencing clients that have subscribed to the conference event
package and that are authorized to receive the notification of the
addition of the sidebar to the conference.
Barnes, et al. Standards Track [Page 39]
RFC 6503 CCMP March 2012
In the case of a sidebarByValRequest message with an
parameter of "retrieve", the URI for the conference object created
for the sidebar (received in response to a create operation or in a
sidebarsByValResponse message) MUST be included in the
parameter in the request. This retrieve operation is handled by the
conference server in the same manner as in the case of an
parameter of "retrieve" included in a confRequest message, as
described in Section 5.3.4.
In the case of a sidebarByValRequest message with an
parameter of "update", the MUST also be included
in the request. The parameter contained in the request
message identifies the specific sidebar instance to be updated. An
update operation on the specific sidebar instance contained in the
parameter is handled by the conference server in
the same manner as an update operation on the conference instance as
reflected by the parameter included in a confRequest
message as detailed in Section 5.3.4. A sidebarByValResponse message
MUST return to the client a element related to the current
version of the sidebar whose identifier is contained in the
field of the request.
If an parameter of "delete" is included in the
sidebarByVal request, the parameter MUST NOT be
included in the request. Any included in the
request MUST be ignored by the conference server. The URI for the
conference object associated with the sidebar MUST be included in the
parameter in the request. If the specific conferencing
user, as reflected by the parameter, in the request is
authorized to delete the conference, the conference server deletes
the conference object reflected by the parameter and
updates the data in the conference object from which the sidebar was
cloned. The conference server can notify any conferencing clients
that have subscribed to the conference event package and that are
authorized to receive the notification of the deletion of the sidebar
from the conference.
If a sidebarByValRequest with an parameter of "retrieve",
"update", or "delete" carries a parameter which is not
associated with any existing sidebar-by-val, a confResponse message
containing a of "404" will be generated on the
server's side. This also holds for the case in which the mentioned
parameter is related to an existing conference object
stored at the server, but associated with a blueprint or with an
actual conference or with a sidebar-by-ref rather than a sidebar-by-
val.
Barnes, et al. Standards Track [Page 40]
RFC 6503 CCMP March 2012
Barnes, et al. Standards Track [Page 41]
RFC 6503 CCMP March 2012
Figure 14: Structure of the sidebarByValRequest and
sidebarByValResponse Messages
5.3.9. sidebarsByRefRequest and sidebarsByRefResponse
Similar to the sidebarsByValRequest, a sidebarsByRefRequest can be
invoked to retrieve the element of the conference
object identified by the parameter. The
sidebarsByRefRequest message is of a retrieve-only type, so an
parameter MUST NOT be included in a sidebarsByRefRequest
message. In the case of a of "200", the
parameter, containing the
element of the conference object, MUST be included in the response.
The element represents the set of URIs of the
sidebars associated with the main conference, whose description (in
the form of a standard XCON conference document) is external to the
main conference itself. Through the retrieved URIs, it is then
possible to access single sidebars using the sidebarByRefRequest
message, described in Section 5.3.10. A sidebarsByRefResponse
message MUST carry back to the client a element related to
the current version of the main conference object (i.e., the one
whose identifier is contained in the field of the
request) with which the sidebars in question are associated.
Barnes, et al. Standards Track [Page 42]
RFC 6503 CCMP March 2012