Internet DRAFT - draft-ekim-xcon-cpcp-bb
draft-ekim-xcon-cpcp-bb
Internet Draft Eunsook Kim
Internet Engineering Task Force Jong-Hwa Yi
draft-ekim-xcon-cpcp-bb-00.txt ETRI
October 2003
Expires April 2004
Conference Policy Control Protocol Building Blocks
<draft-ekim-xcon-cpcp-bb-00.txt>
Status of this Memo
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026.
Internet-Drafts are valid for a maximum of six months and may be
updated, replaced, or obsoleted by other documents at any time. It
is inappropriate to use Internet-Drafts as reference material or
to cite them other than as a "work in progress".
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
Copyright Notices
Copyright (c) The Internet Society (2003). All Rights Reserved.
Abstract
In a tightly coupled conference, conference participants can
communicate with the conference policy server using a conference
policy control protocol (CPCP). This document generally describes
how to use CPCP to efficiently provide and augment interaction
between clients and conference policy server. This document
describes what information is needed for conference policy control,
and what operation is needed to manipulate and interact with the
policy information. It is noted that the purpose of this draft is
not to suggest a new mechanism of CPCP, but to suggest building
block approach to CPCP work.
EKim, et al Expires April 2004 [Page 1]
INTERNET DRAFT CPCP Building Block October 2003
Table of Contents
1. Introduction
2. Terminology
3. Overall Architecture
4. Overview of CPCP operations
5. Body of CPCP Messages
6. Conference Policy Information
7. CPCP Operations
8. Requirements from other functions
9. Security Considerations
10. IANA Considerations
11. References
Acknowledgements
Authors' Addresses
Full Copyright Statement
1. Introduction
The conferencing framework document [2], which describes overall
architectures, terminology, and protocol components needed for
multi-party conferencing, defines a conference policy server where
conference users can store and manipulate the conference policy.
There is a unique conference policy for each conference, and the
conference policy is represented by a URI. The URI points to a
conference policy server.
The framework document also describes the major conferencing
operations, and many of them can be performed by the conference
policy control protocol (CPCP): creating conferences, adding
participants, conditional joins, removing participants, approving
policy changes, destroying conferences, obtaining membership
information, adding and removing media. The conference policy is
also used by focus to make authorization decisions and guide its
overall behavior.
This document defines general operations of the conference policy
control based on the framework and the conference policy
requirements documents [3,4]. The clients send conference policy
control requests to the conference policy server to manipulate and
interact with the conference policy. Then the server responds the
requests with corresponding results. The protocol specification is
out of the scope of this document.
This document is intended to continue a discussion to explore
standard operations for conference policy control. Please send
comments to the mailing list <xcon@ietf.org>
ekim, et al Expires April 2004 [Page 2]
INTERNET DRAFT CPCP Building Block October 2003
1.1 Conventions of This Document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in
this document are to be interpreted as described in RFC 2119.
2. Terminology
ACL: Access Control List
Chair groups: a group of participants who charge in a conference
and have certain privileges to manipulate the otherÆs
privileges
CPS: Conference Policy Server
participants: conference clients who join a conference
users: the same with participants
3. Overall Architecture
+----------------+
+ CPS + +----------+
+----------------+----+policy DB +
+ xcap/soap/etc. + +----------+
+----------------+
+ HTTP / others +
+--------+ /+----------------+
+--------+ + / |
+--------+ + + /CPCP |
+ conf. + + / |
+ client +--/ |
+--------+ \ |
\SIP |
\ |
\+------------+ +-------+
+ Conference + + +
+ Server +---+ mixer +
+ (Focus) + + +
+------------+ +-------+
Conference clients can request to CPS to create a conference,
destroy a conference, modify a conference policy data, get
membership information, add participants, remove participants,
change/add/remove privileges from certain participants by CPCP.
ekim, et al Expires April 2004 [Page 3]
INTERNET DRAFT CPCP Building Block October 2003
CPCP is an independent protocol from signaling like SIP or H.323.
Each request and response MUST contain XML body, and it can carry
on XCAP, SOAP, or other standardized mechanism. (note. if XCON
decides a standardized mechanism among them, the architecture will
be changed.)
In SIP based conferencing system, CPS should invoke a focus when
there is a request to create a conference. It also SHOULD notify
focus of a request asking to invite or eject participants. Focus
MAY ask to CPS of authentication of participants.
4. Overview of CPCP Operations
The CPCP operations can categorize by conference management,
participant management, privilege management, floor control
management and media policy management.
Each operation contains XML body that includes a unique request id
in order to CPS to recognize whether the request is a duplicated
one or not. Clients send a request operation with the request id to
CPS, and the CPS send a corresponding response operation to the
clients with returning the same request id.
The operations can categorize conference management, participant
management, privilege management, floor management, and media
management.
The operations about Conference management perform creation and
destruction of a main conference and a sidebar. To create a
conference, to terminate a conference, to manipulate conference
information, to read conference information, to create a sidebar,
and to terminate a sidebar will be included.
The operations about participant management carry out manipulation
of ACL, Char group, or sidebar users. To add users into ACL, to
delete users from ACL, to add sidebar participants, to delete
sidebar participants, to invite users, to eject users, to add chair
group, to delete a chair, to read ACL information, and to read
sidebar user information will be performed. The CPS SHOULD notify
the conference application server (focus) of invite users and eject
users operations, and corresponding call signaling should be
followed.
To give privileges and to withdraw privileges are the operations
about privilege management. Each participant has its own privileges
and has different role according to the privileges. In an initial
state, only a head chair or chair groups have the privilege of
giving privileges to other participants. Some special privileges
ekim, et al Expires April 2004 [Page 4]
INTERNET DRAFT CPCP Building Block October 2003
like conference destroying or ejecting participants also are
recommended to share only within chair groups.
Floor control and Media policy managements in CPCP are only related
to who have the privileges to manipulate the information.
When it uses XCAP [9] to carry and process the operations, HTTP
commands will deliver requesting XML document. If it uses SOAP to
come up with the operation, SOAP commands defined by mapping CPCP
will be used. The detail binding behaviors will be described in
protocol specification documents. The use of XCAP for CPCP is
describing in [8].
5. Body of CPCP messages
XML document is used for the conference policy control message body.
It MUST be based on XML 1.0 and MUST be encoded using UTF-8. The
namespace URI for elements defined by this specification is a URN
[5], using the namespace identifier 'ietf' defined by [6] and
extended by [7]. This URN is:
urn:ietf:params:xml:ns:conference-policy
A conference policy document begins with the root element tag,
æconference-policyÆ.
General conference information, participants list and information,
privileges list, floor control or media policy data will be
included in the body. Each operation can use a single element or
multiple elements.
6. Conference Policy information
This chapter describes the detail elements of the conference policy
information. A conference is described as a 'conference-policy'
element. The corresponding XML schema is described as following:
<xs:element name="conference-policy">
<xs:complexType name="conference">
<xs:sequence>
<xs:element name="conference-management" minOccurs="0"/>
<xs:element name="participant-management" minOccurs="0"/>
<xs:element name="sidebar-management" minOccurs="0"/>
<xs:element name="floor-manangement" minOccurs="0"/>
<xs:element name="media-management" minOccurs="0"/>
</xs:sequence>
ekim, et al Expires April 2004 [Page 5]
INTERNET DRAFT CPCP Building Block October 2003
<xs:attribute name="conf-id" type="xs:nonNegativeInteger"
use="required"/>
</xs:complexType>
</xs:element>
6.1 General conference information
The element of general conference information will be used for the
operations of conference management - create or terminate a
conference, or create or terminate a sidebar. Participants
authenticated also can request to read the conference information.
It contains conference URI, conference display name, Subject,
Keyword, language, conference type, security policy, conference
time, maximum number of participants, media information, and chair
information. Other features MAY be extended.
The conference display name and conference subject stand for the
name and the subject of the conference, respectively.
The optional element, conference type describes the type of the
conference model: 'open', 'closed static', 'closed dynamic'. Each
value contains the following meaning:
* open conference: everyone can join a conference without
restriction
* closed conference: only pre-determined, pre-announced users
determined during runtime can join a session
- static model: the group of participants does not change
during runtime of the session.
- dynamic model: the group of participants might change during
In security policy, it is announced which security mechanism is
used. 'TLS', 'SMIME', 'authentication mechanism', and 'password'
can be listed. 'authentication mechanism' may have three types:
'string', 'digest', and 'none'.
The element of conference time is for reporting runtime of the
session. It can be expressed with 'start time' and 'end time'
describing when the conference will be started and terminated.
Maximum number of Participants defines how many users can take part
in the conference at the same time. It would be set by
consideration of capacity of video handling.
The element of media information has the type 'mideaType',
consisted of audio, video, wb, and text. It defines which media
will be used in the conference.
ekim, et al Expires April 2004 [Page 6]
INTERNET DRAFT CPCP Building Block October 2003
The chair information defines who charge the conference. It
describes a user or user group having special privileges to access
conference policy information. Depends on conference policy, only
chair group may change conference policy data or privileges of the
other users, and eject other participants.
6.2 Participants information
Conference participants consist of ACL (Access Control List), Chair
group, and sidebar users. Each user MUST be identified with a
unique URI, and MAY have display name. It has certain privileges by
user type.
6.2.1 privileges information
Privileges to manipulate the conference policy data are listed as
following:
Right to destroy the ongoing conference
Right to modify the conference policy
Right to read the conference policy information
Right to add a user in ACL
Right to expel a user from the conference
Right to modify chair group information
Right to add a user to the chair group
Right to expel a chair from the chair group
Right to award privileges to others
Right to withdraw privileges from others
Right to manage media policy
Right to manage floor control policy
Right to control sidebars
They are assigned to the conference participants. It can be
modified during the conference.
6.4 floor-control information
The information is not about operations of floor-control, but those
who have privileges of floor control.
TBD
6.5 media-control information
The information is not about operations of media-control, but media
server information and those who have privileges of media control.
ekim, et al Expires April 2004 [Page 7]
INTERNET DRAFT CPCP Building Block October 2003
TBD
7. CPCP Operations
The clients send conference control requests to the CPS to
manipulate and interact with the conference policy. Then the server
responds the requests with corresponding results.
The major conferencing operations can categorize by conference
management, membership management, media management and floor
management operations.
Operations performed for conference management can include creating
and destroying conferences, approving policy changes, creating and
destroying sidebar, creating and destroying cascading conference,
and notifying for cascading conference.
Membership management operations can cover of adding, removing,
blocking or ejecting participants, of requesting conditional joins,
and obtaining membership information. Manipulating user privileges
is also included in the membership management operations.
Media management operations are about adding and removing media,
granting media change, and changing media policy.
Floor management operations handle requesting and granting floor,
and manipulating floor controller.
About clients' requests from the above operations, the server MUST
response the results with the corresponding return value such as a
new conference URI for a request of creating a conference. When it
fails, it will return error code with reason of user terminated,
media connection failure, internal error, registration failure,
authorization failure, no resources, bad or missing parameter, no
permission, or not found the requested XML.
7.1 Operations of conference management
7.1.1 Create conference
Every user who is authenticated by the CPS can issue this operation.
The operation contains an XML instance derived from the defined XML
schema explained in chapter 5.
For a conference, 'conf-URI' MUST be unique, and it MUST be a valid
SIP or SIPS URI.
ekim, et al Expires April 2004 [Page 8]
INTERNET DRAFT CPCP Building Block October 2003
When a client sends the operation, CPS creates a 'conf-URI' and
sends the client the URI, indicating a focus address. The CPS
initiates the focus, as well.
Clients MAY request the operation with a 'conf-URI', which they
eager to use. If the requested URI has no error or causes any
conflict, CPS MAY accept the requested URI.
7.1.2 Destroy conference
When a conference is destroyed, the conference and media policies
associated with it are destroyed. If there are still participants
in the conference, only authorized chair group MUST issue this
operation.
The destroy conference command takes one mandatory element, 'conf-
URI' and an optional element, 'conf-name'. The response of the
command is indicating whether the conference has been successfully
destroyed or not.
7.1.3 Read conference policy information
This operation is for obtaining the conference policy information,
such as the general information of the conference, access control
list, the current member list, or the chair group list in a
conference, etc. The corresponding response will be returned
containing in a XML body.
7.2 Operations of membership management
7.2.1 Add users in ACL
This operation is for adding one or more users in the access
control list (ACL) in a conference. An authorized client can
specify any SIP URI that is to be added, if it is not already in
the participants list.
The XML body contains the 'conf-URI' identifying the conference,
and the target 'SIP-URI' identifying the will-be-added user. The
response of the operation is indicating whether the users has been
successfully added or not to the ACL. The CPS SHOULD inform of this
request to the focus in order to trigger INVITE message to the
targeted user.
7.2.2 Eject Users from a conference
ekim, et al Expires April 2004 [Page 9]
INTERNET DRAFT CPCP Building Block October 2003
The authorized chair group members only allow executing this
operation.
The XML body contains the 'conf-URI' identifying the conference,
and the target 'SIP-URI' identifying the will-be-expelled user. The
response of the operation is indicating whether the users has been
successfully ejected or not from the ACL. The CPS SHOULD inform of
this request to the focus in order to trigger BYE message to the
targeted user.
7.2.3 Award user privileges
This operation is executed to changes the privileges of the
specified users. Only authorized members can issue this operation.
It carry the 'target-user' indicating one ore more target users who
will get the privileges and 'privilege types', defining the type of
privileges. The response of the command is indicating whether the
requested changes have been successfully performed or not.
TBD
7.2.4 Withdraw user privileges
This operation requests to hand off the privileges of the specified
users. Only authorized members can issue this command.
The parameters and usage of this operation are the same with the
operation of awarding user privileges. The only difference is that
it is used for take away the privileges from the 'target-user'. The
response of the command is indicating whether the privileges have
been successfully deprived or not.
TBD
7.3 Operations of media management
TBD
7.5 Operations of floor management
TBD
8. Security Considerations
ekim, et al Expires April 2004 [Page 10]
INTERNET DRAFT CPCP Building Block October 2003
Conference policy servers MUST use appropriate authentication to
ensure the commands to manipulate or interact the conference policy
data originated from trusted parties. Other SIP considerations
apply [1]. The further concerned security issues will be identified
as the further works go on.
9. IANA considerations
The following URN sub-namespace should be registered.
URI: urn:ietf:params:xml:ns:conference-policy
10. References
[1] J. Rosenberg, H. Schulzrinne, et al, "SIP: Session Initiation
Protocol, " RFC3261, Internet Engineering Task Force, Jun. 2002.
[2] J. Rosenberg, "A framework for conferencing with the session
initiation protocol," Internet Draft, Internet Engineering Task
Force, Feb. 2003. Work in progress.
[3] P. Koskelainen, "Requirements for conference policy protocol,"
Internet Draft, Internet Engineering Task Force, June 2003.
Work in progress.
[4] O. Levin, "Conference Policy Control Protocol for Centralized
Conferencing," Internet Draft, Internet Engineering Task Force,
June 2003. Work in progress.
[5] R. Moats, "URN syntax, " RFC2141, Internet Engineering Task
Force, May 1997.
[6] R. Moats, "A URN namespace for IETF documents, " RFC2648,
Internet Engineering Task Force, Aug. 1999.
[7] M. Mealling, "The IETF XML registry, " Internet Draft, Internet
Engineering Task Force, Jul. 2002. Work in progress.
[8] P. Koskelainen, H. Khartabil, "An Extensible Markup Language
(XML) Configuration Access Protocol (XCAP) Usage for Conference
Policy Manipulation, " Internet Draft, Internet Engineering
Task Force, June. 2003. Work in progress.
[9] J. Rosenburg, "The Extensible Markup Language (XML)
Configuration Access Protocol (XCAP), " IETF Internet Draft,
Jun. 2003. Work in progress.
ekim, et al Expires April 2004 [Page 11]
INTERNET DRAFT CPCP Building Block October 2003
Acknowledgement
The CPCP draft by O. Levin, and the CPCP requirement by P.
Koskelainen give good motivation and information to write this
draft.
Authors' Addresses
Eunsook Kim
eunah@etri.re.kr
361 Gajeong-Dong Yuseong-Gu, Deajon 305-350, Korea
Jong-Hwa Yi
jhyiee@etri.re.kr
361 Gajeong-Dong Yuseong-Gu, Deajon 305-350, Korea
Full Copyright Statement
Copyright (C) The Internet Society (2003). All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet languages other than English.
ekim, et al Expires April 2004 [Page 12]
INTERNET DRAFT CPCP Building Block October 2003
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
ekim, et al Expires April 2004 [Page 13]