XCON H. Khartabil Internet-Draft P. Koskelainen Expires: October 18, 2004 Nokia April 19, 2004 The Conference Policy Control Protocol (CPCP) draft-ietf-xcon-cpcp-00 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 working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http:// www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on October 18, 2004. Copyright Notice Copyright (C) The Internet Society (2004). All Rights Reserved. Abstract This document describes the Conference Policy Control Protocol (CPCP). It specifies an Extensible Markup Language (XML) Schema that enumerates the conference policy data elements that enable a user to define a conference policy. It also defines an XML Configuration Access Protocol (XCAP) application usage that is needed to store and manipulate a conference policy. Khartabil & Koskelainen Expires October 18, 2004 [Page 1] Internet-Draft CPCP April 2004 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . 3 2. Conventions Used in This Document . . . . . . . . . . . . 3 3. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 4. Structure of a Conference Policy document . . . . . . . . 4 4.1 MIME Type for CPCP XML Document . . . . . . . . . . . . . 6 4.2 XML Document Description . . . . . . . . . . . . . . . . . 6 4.2.1 element . . . . . . . . . . . . . . 6 4.2.2 element . . . . . . . . . . . . . . . . 6 4.2.3 element . . . . . . . . . . . . . . . . 7 4.2.4 (Access Control List) element . . . . . . . . . . . 8 4.2.5 (Privilege Control List) element . . . . . . . . . . 9 4.2.6
(Dial-Out List) element . . . . . . . . . . . . . . . 10 4.2.7 (Security Control) element . . . . . . . . . . . . . 10 4.2.8 element . . . . . . . . . . . . 11 4.2.9 element . . . . . . . . . . . . 12 4.3 XML Schema . . . . . . . . . . . . . . . . . . . . . . . . 12 5. Floor Control Policy vs. Floor Control Protocol . . . . . 19 6. An XCAP Usage for Conference Policy Manipulation . . . . . 19 6.1 Application Unique ID . . . . . . . . . . . . . . . . . . 19 6.2 Resource Interdependencies . . . . . . . . . . . . . . . . 19 6.3 Additional Constraints . . . . . . . . . . . . . . . . . . 20 6.4 Naming Conventions . . . . . . . . . . . . . . . . . . . . 20 6.5 Authorization Policies . . . . . . . . . . . . . . . . . . 20 6.6 MIME Type for CPCP XML Document . . . . . . . . . . . . . 20 6.7 Overview of Operation . . . . . . . . . . . . . . . . . . 20 6.8 Communication Between Conference Entities . . . . . . . . 21 6.9 Conference Creation and Termination . . . . . . . . . . . 21 6.10 Manipulating the Participant Lists . . . . . . . . . . . . 21 6.10.1 Expelling a Participant . . . . . . . . . . . . . . . . . 22 6.11 Privileges: Who can modify the conference policy . . . . . 22 6.12 Conference URI(s) . . . . . . . . . . . . . . . . . . . . 23 7. Examples . . . . . . . . . . . . . . . . . . . . . . . . . 23 8. Security Considerations . . . . . . . . . . . . . . . . . 26 9. IANA Considerations . . . . . . . . . . . . . . . . . . . 26 9.1 XCAP Application Usage ID . . . . . . . . . . . . . . . . 26 9.2 application/conference-policy+xml mime TYPE . . . . . . . 26 9.3 URN Sub-Namespace Registration for urn:ietf:params:xml:ns:conference-policy . . . . . . . . . 27 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . 28 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . 28 Normative References . . . . . . . . . . . . . . . . . . . 28 Authors' Addresses . . . . . . . . . . . . . . . . . . . . 29 Intellectual Property and Copyright Statements . . . . . . 31 Khartabil & Koskelainen Expires October 18, 2004 [Page 2] Internet-Draft CPCP April 2004 1. Introduction SIP conferencing framework [11] defines the mechanisms for multi-party centralized conferencing in a SIP environment. Existing SIP mechanisms allow users, for example, to join and leave a conference. A centralized serve, called focus, can expel and invite users, and may have proprietary access control lists and user privilege definitions. However, in many cases it is useful to have a standardised conference policy elements such as access control lists and a standardised protocol means to manipulate them. The requirements for such protocol are defined in [7]. This document provides an XML Schema Section 4.3 that enumerates the conference policy data elements that enable a user to define a conference policy. It also defines an XML Configuration Access Protocol (XCAP) [8] application usage that is needed to store and manipulate a conference policy. Other mechanisms, such as web page or voice response system can also be used to manipulate conference policy data. XCAP has many advantages in its use for conference policy control protocol. It is a HTTP 1.1 based protocol that allows clients to read, write, modify and delete application data stored in XML format at a server. XCAP maps XML document elements and attributes to HTTP URIs that can be directly accessed by HTTP. One application area which has already adopted XCAP is the manipulation of event lists [9]. 2. Conventions Used in 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. 3. Terminology This document uses terminology from [11]. Some additional definitions are introduced here. ACL Access control list (ACL) defines users who can join to a conference. Users may have allowed, blocked, pending or expelled status in the list. Each conference has its own ACL. CPS Conference Policy Server. See [11] Khartabil & Koskelainen Expires October 18, 2004 [Page 3] Internet-Draft CPCP April 2004 Conference participant Conference participant is a user who has on-going session (e.g. SIP dialog) with the conference focus. Floor control Floor control is a mechanism that enables applications or users to gain safe and mutually exclusive or non-exclusive access to the shared object or resource in a conference. Dial-Out List (DL) Dial-out list (DL) is a list of users who the focus needs to invite to the conference. PCL Privilege control control (PCL) defines privileges for a user. Each user in a conference may have different list of privileges and each conference has its own PCL. Privileged user In this document, a privileged user is the creator. Defining privileges to modify certain parts of a conference policy is outside the scope of this document. CPS XCAP URI The URI of the XCAP server that is used to create the conference. The URI contsruction is specified in [8]. It is refered to in XCAP as the host part. Conference Policy URI The URI of conference policy. In XCAP, it is the CPS XCAP URI along with the abs_path. It identifies the XML document. The URI contsruction is specified in [8]. 4. Structure of a Conference Policy document The conference policy document is an XML [5] document that MUST be well-formed and MUST be valid. Conference policy documents MUST be based on XML 1.0 and MUST be encoded using UTF-8. This specification makes use of XML namespaces for identifying conference policy documents and document fragments. The namespace URI for elements Khartabil & Koskelainen Expires October 18, 2004 [Page 4] Internet-Draft CPCP April 2004 defined by this specification is a URN [2], using the namespace identifier 'ietf' defined by [3] and extended by [13]. This URN is: urn:ietf:params:xml:ns:conference-policy A conference policy document begins with the root element tag "conference-policy". Other elements from different namespaces MAY be present for the purposes of extensibility. Elements or attributes from unknown namespaces MUST be ignored. The conference policy is build up using multiple namespaces: o "urn:ietf:params:xml:ns:conference-settings": This namespace defines elements for conference setting. The inclusion of this namespace is optional. It contains the mandatory element . This element contains the conference URI(s) and maximum number of participants. It can occur only once in the document. o "urn:ietf:params:xml:ns:conference-info": This namespace defines elements to carry conference information. The inclusion of this namespace is optional. It contains the mandatory element . This element includes informational describing the conference, e.g. for search purposes. This information can also be used in the session description when the focus is sending invitations. It can occur only once in the document. o "urn:ietf:params:xml:ns:conference-time": This optional namespace defines conference time information. It defines the mandatory element that includes elements defining start and stop times for a conference. o "urn:ietf:params:xml:ns:conference-acl": This optional namespace is for the access control list. It defines the mandatory element that contains URIs for users who can dial into the conference, users who are blocked from dialling in, and expelled users. o "urn:ietf:params:xml:ns:conference-pcl": This optional namespace is for the privilege control list. It defines the mandatory element that contains privileges and URIs for users who have those privileges. o "urn:ietf:params:xml:ns:conference-dl": This optional namespace is for the dial-out list. It defines the mandatory
element that contains URIs for users that the focus will invite to the conference. o "urn:ietf:params:xml:ns:conference-sc": This optional namespace is Khartabil & Koskelainen Expires October 18, 2004 [Page 5] Internet-Draft CPCP April 2004 for security control. It defines the element that contains conference security level and passwords. o "urn:ietf:params:xml:ns:conference-mp": This optional namespace is for the media policy for a conference. It defines the element that contains the media types to be used in the conference. o "urn:ietf:params:xml:ns:conference-fp": This optional namespace is for the floor control policy. It defines the element. The elements are described in more detail in the forthcoming sections. 4.1 MIME Type for CPCP XML Document The MIME type for the CPCP XML document is "application/ conference-policy+xml". 4.2 XML Document Description 4.2.1 element The mandatory element contains 2 sub-elements; the element and the element. is an optional element. It can occur more than once to accommodate multiple signaling protocols. Once a conference URI is set, it MUST NOT be changed or removed for the duration of the conference. Only one URI per protocol MUST be set. URIs can be added at any time. This is in its own XML namespace, so it is separated from other elements and hence relevant modification rights (privileges) can be given more easily to other namespaces. is an optional. It carries the maximum number of participants allowed in the conference. When the maximum number of participants threshold is reached, no new users are not allowed to join until the number of participants decreases again. If using SIP, the server can reject a request to join (INVITE) with a "480 Temporarily Unavailable" response. Alternatively, the sever may implement a waiting queue. 4.2.2 element Mandatory element has its own namespace and it can Khartabil & Koskelainen Expires October 18, 2004 [Page 6] Internet-Draft CPCP April 2004 occur only once in a document. It includes informative conference parameters which may be helpful describing the purpose of a conference, e.g. for search purposes or for providing host contact information. The element, which describes the current topic in a conference. The optional element is the display name of the conference, which usually does not change over time. and are optional elements. They provide additional textual information about the conference. This information can be made available to potential conference participants by means outside the scope of this document. Examples of usage could be searching for a conference based on some keywords. The optional element points to a URI where additional information about the conference can be found. The optional element contains several elements. It gives additional information about the user hosting the conference. This information can, for example, be included into the SDP fields of the SIP INVITEs sent by the focus. The element is optional and can occur more than once. 4.2.3 element The information related to conference time and lifetime is contained in the element. The conference may occur for a limited period of time (i.e. bounded), or the conference may be unbounded (i.e. it does not have a specified end time). Bounded conferences may occur multiple times(e.g. on weekly basis). has its own XML namespace. It contains one or more elements each defining the time information of a single conference occurrence. Multiple elements MAY be used if a conference is active at multiple irregularly spaced times; each additional element contains time information for a specific occurrence. For each occurrence, the element specifies when a conference starts. the element specifies the time a conference stops. If the element is not present, it indicates that the conference starts immediately. If the is set to zero, then conference occurrence is not bounded, i.e. permanent, though it will not become active until the . If the element is not present, it indicates that the Khartabil & Koskelainen Expires October 18, 2004 [Page 7] Internet-Draft CPCP April 2004 conference terminates as soon as the last participant leaves the conference. The focus might wait a small period of time before terminating the conference, in case a participant joins straight after the last participant leaves. When saying that a conference starts, or becomes active (start-time), it means that the mixing starts. A focus will most likely allow participants to connect shortly before start time, but may put them on hold until the start time. Participants on the Dial out list may also be dialled to shortly before start time. A conference terminates with stop-time. The creator is free to set the stop-time to be the time s/he leaves (and therefore the conference terminates when s/he leaves), terminate the conference as s/he leaves (modifying stop-time), or leave before the stop-time and therefore the conference continues. The stop-time can be changed by the conference creator, during the conference, to allow the extension of the conference based on best effort. A conference always terminates when the conference policy is removed, regardless of the stop time. The absence of this conference time information indicates that a conference starts immediately and terminates when the conference policy is removed. See Section 6.9 for more details 4.2.4 (Access Control List) element ACL has its own XML namespace. The purpose of Access Control List (ACL) is to control who can join the conference.A conference has one consisting of one or more elements and the parameter for those URIs. Access-Types are one of Allowed/Blocked/Pending/Expelled. Allowed means that the target is allowed to join the conference. Blocked means that the target is not allowed to join the conference. This can be used in the where the allowed URIs are wild-carded and the user wants to explicitly block one potential participant, whose URI falls within the wildcarded URIs, from joining. The other way around is also possible where the blocked URIs are wildcarded and the user wants to explicitly allow one potential participant, whose URI falls within the wildcarded URIs, to join. Pending means that authorisation for the target is not granted and while further processing is required - such as consulting the moderator. Expelled means that user is expelled from current conference and is not allowed to join or be dialled-out (even if dial-out list includes user's URI). Wildcards are allowed in ACL as follows. The domain part is allowed Khartabil & Koskelainen Expires October 18, 2004 [Page 8] Internet-Draft CPCP April 2004 to be wildcard only if the username is a wildcard. Wildcard in the domain part MUST be immediately after the @-sign. A wildcard in the domain is interpreted as multiple zones. For example: sip:*@*.example.com includes sip:*@engineering.example.com as well as sip:*@tester.engineering.example.com. The use of wildcarding has been restricted to avoid ambiguous entries in the access control list. Examples of allowed wildcards are - sip:*@example.com, *@*.com, *@*. Examples are not allowed wildcards are - sip:bob@example.*, sip:bob@*.com, sip:*@example.*.com. "Most-specific expression wins" policy is used if overlapping rules are found. Basically, this means that user specific rule is searched first and if it is not found, then most specific wildcard rule is utilized. There is a need for the ACL to contain an entry that defines the default access types for users not explicitly allowed nor blocked from joining the conference, i.e. everybody else. For example: "Pending" action for *@*. If that entry is missing, the focus local policy dictates the behaviour. Sip: and sips: schemes are treated as equivalent in the ACL since it defines users and not the security used by users. It is also possible to ask the focus to refer users to the conference. An optional Boolean attribute "refer" exists in the that indicates to the server that the creator of the conference wishes for the focus to refer the identified potential participants to the conference when a conference occurrence has started. In SIP, this is achieved by the focus sending a REFER request to those potential participants. The default value for the "refer" attribute is "false". 4.2.5 (Privilege Control List) element Advanced privilege models can be applied in conferencing context (e.g. who is allowed to modify ACL, who is allowed to expel users etc). This document defines only one privilege and leaves the definition of additional privileges (e.g. who can modify ACL) as a separate standardisation effort. The element is mandatory and has its own XML namespace. It defines which users has what privileges. The element may contain one or more elements. The element carries 2 pieces of information: the target URI, and the privileges for that URI, . All mandatory elements. Khartabil & Koskelainen Expires October 18, 2004 [Page 9] Internet-Draft CPCP April 2004 The target URI can be wildcarded as described for the ACL in Section 4.2.4. Example URIs are: sip:bob@company.com sip:*@example.com The only privilege defined in this document is RIGHT_TO_SUBSCRIBE_TO_CONF_EVENT_PACKAGE. It defines which users are allowed to subscribe to the conference state event package [12]and be notified. 4.2.6
(Dial-Out List) element The dial-out list (DL) is a list of user URIs that the focus uses to learn who to invite to join a conference. This list can be updated during the conference lifetime so it can be used for mid-conference invites (and mass-invites) as well. DL has its own XML namespace. The
element includes a mandatory element. The element includes the mandatory element. This elements carries the URI of the user to be invited. 4.2.7 (Security Control) element The conference security encompasses three aspects: controlling the visibility of a conference, securing the SIP messages, and performing authentication for individual users. This element has its own XML namespace. The conference security settings start with the mandatory >SC> element. It contains the mandatory element. This element can hold one of two values: visible or invisible. The element controls whether information in the , and elements may be made available publicly. For example, an application at a conference server might list the ongoing conferences on web page, or it may allow searching for conferences based on the keywords listed in the element. Setting to "invisible" instructs the application not to reveal any such information. However, information in other elements, such as , should not be seen by anyone else other than a privileged user, even with the element set to "visible". Khartabil & Koskelainen Expires October 18, 2004 [Page 10] Internet-Draft CPCP April 2004 We define two mechanisms for securing the signaling between users and the focus: TLS and S/MIME. TLS is used to provide transport layer security on a hop-by-hop basis. According to SIP [6], using SIPS URI scheme in a request signifies that TLS must be used to secure each hop over which the request is forwarded until the request reaches the SIP entity responsible for the domain portion of the Request-URI. The element inside the element has 2 boolean parameter: TLS and S/MIME. When in TLS parameter is set to "true" (thus implying the use of SIPS URI scheme, if SIP is used as the signaling protocol), it is required that TLS is used end-to-end. In other words, TLS must be used also on the last hop between the entity responsible for the domain portion of the Request-URI and the conference policy server. If end-to-end confidentiality of entire SIP messages is not required by the conference policy, but it is required that the message bodies within SIP are encrypted, the S/MIME attribute must have a value "true". TLS and S/MIME may be required independent of each other. In other words, it may be required to use neither, one, or both depending on the settings of these parameters. The conference creator can define an authentication policy for the participants. This is done with the optional element. If the element is present, then at least one inside the element must be present, each identifies a user or a set of users for which the authentication mechanism apply. The target URI can be wildcarded as described for the ACL in Section 4.2.4. The authentication policy defined in the optional element defines how the participants should be authenticated. Two authentication mechanisms are defined in this document: Digest and Digest-AKA. The authentication policy can also be set to none. The password associated with each user in the Digest authentication is included in the optional attribute. This attribute is ignored if authentication is set to "none". 4.2.8 element This element has its own XML namespace. The absence of this namespace and its elements from an XML document indicates that the conference does not have a floor. The is mandatory and contains the required Khartabil & Koskelainen Expires October 18, 2004 [Page 11] Internet-Draft CPCP April 2004 boolean attribute that indicates if the floor is moderator controlled or not. One or more elements can appear in the element. The number of those elements indicates how many floors the conference can have. A floor can be used for one or more media types; the mandatory element can contain zero or more of the