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-xcap-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  <Conference-settings> element  . . . . . . . . . . . . . .   6
   4.2.2  <Conference-info> element  . . . . . . . . . . . . . . . .   6
   4.2.3  <Conference-time> element  . . . . . . . . . . . . . . . .   7
   4.2.4  <ACL> (Access Control List) element  . . . . . . . . . . .   8
   4.2.5  <PCL> (Privilege Control List) element . . . . . . . . . .   9
   4.2.6  <DL> (Dial-Out List) element . . . . . . . . . . . . . . .  10
   4.2.7  <SC> (Security Control) element  . . . . . . . . . . . . .  10
   4.2.8  <Conference-floor-policy> element  . . . . . . . . . . . .  11
   4.2.9  <Conference-media-Policy> 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
      <Conference-settings>. 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
      <Conference-info>. 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
      <Conference-time> 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 <ACL>
      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 <PCL>
      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 <DL> 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 <SC> 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
      <Conference-media-policy> 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
      <Conference-floor-policy> 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 <Conference-settings> element


   The mandatory <Conference-settings> element contains 2 sub-elements;
   the <Conference-URI> element and the <Max-participant-count> element.


   <Conference-URI> 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.


   <Max-participant-count> 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 <Conference-info> element


   Mandatory <Conference-info> 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 <Conference-info element MUST have a special
   attribute 'xml:lang' to specify the language used in the contents of
   this element as defined Section 2.12 of [5].


   Each conference has an optional <Subject> element, which describes
   the current topic in a conference. The optional <Display-name>
   element is the display name of the conference, which usually does not
   change over time.


   <Free-text> and <Keywords> 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
   <Web-page> element points to a URI where additional information about
   the conference can be found.


   The optional <Host-info> 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 <URI> element is optional and can
   occur more than once.


4.2.3 <Conference-time> element


   The information related to conference time and lifetime is contained
   in the <Conference-time> 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).


   <Conference-Time> has its own XML namespace. It contains one or more
   <Conference-occurrence> elements each defining the time information
   of a single conference occurrence. Multiple <Conference-occurrence>
   elements MAY be used if a conference is active at multiple
   irregularly spaced times; each additional <Conference-occurrence>
   element contains time information for a specific occurrence.


   For each occurrence, the <Start-time> element specifies when a
   conference starts. the <Stop-time> element specifies the time a
   conference stops. If the <Start-time> element is not present, it
   indicates that the conference starts immediately. If the <Stop-time>
   is set to zero, then conference occurrence is not bounded, i.e.
   permanent, though it will not become active until the <Start-time>.
   If the <Stop-time> 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 <ACL> (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 <ACL> consisting of one or more
   <ACL-target-URI> elements and the <Access-type> 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
   <ACL-target-URI> 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 <PCL> (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 <PCL> element is mandatory and has its own XML namespace. It
   defines which users has what privileges. The <PCL> element may
   contain one or more <PCL-target> elements. The <PCL-target> element
   carries 2 pieces of information: the target URI, <PCL-target-URI> and
   the privileges for that URI, <Privileges>. 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 <DL> (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 <DL> element includes a mandatory <DL-target> element. The
   <DL-target> element includes the mandatory <DL-target-URI> element.
   This elements carries the URI of the user to be invited.


4.2.7 <SC> (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 <Visibility> element. This element
   can hold one of      two values: visible or invisible. The <Visibility>
   element controls whether information in the <Conference-URI>,
   <Conference-time> and <Conference-info> 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
   <Conference-info> element. Setting <Visibility> to "invisible"
   instructs the application not to reveal any such information.
   However, information in other elements, such as <ACL>, should not be
   seen by anyone else other than a privileged user, even with the
   <Visibility> 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 <Security-mechanism>element inside the <SC> 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 <SC-target> element.


   If the <SC-target> element is present, then at least one
   <SC-target-URI> inside the <SC-target> 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
   <Authorization-mechanism> 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 <Password> attribute. This
   attribute is ignored if authentication is set to "none".


4.2.8 <Conference-floor-policy> 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 <Conference-floor-policy> 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 <Floor> elements can appear in the
   <Conference-floor-policy> 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 <Media-types> element
   can contain zero or more of the <Video>, <Audio>, <Application>,
   <Data> ,<Control>, <Message>, and <text> elements indicating the
   media of the floor. One type of media can only appear        once. Other
   media types can be defined by extensions.


   A floor can be controlled using many algorithms; the mandatory
   <Algorithm> element MUST contain one and only of the
   <Moderator-controlled>, <FCFS>, and <Random> elements indicating the
   algorithm.


   The <Max-floor-users> element in the <Floor> element is optional and,
   if present, dictates the maximum number of users who can have the
   floor at one time. The optional <Moderator-URI> indicates the URI of
   the moderator. It MUST be set if the attribute moderator-controlled
   is set to "true".


4.2.9 <Conference-media-Policy> element


   Media policy is an integral part of the conference policy. It defines
   e.g. what kind of media topologies exist in the conference. This
   document defines a very basic media policy that states the media
   types a conference has. This is used by the focus to know what media
   types to invite users with and what media types it should accept from
   dialling in users. The details of media manipulation are defined
   elsewhere. User with sufficient privileges is allowed to create,
   modify and delete the media policy (e.g. add new media types).


   This element has its own XML namespace.


   The definition starts with the mandatory <Conference-media-policy>
   element. This element contains a mandatory <Media-types> element that
   lists the media types allowed for this conference. The format of this
   mirrors that of the same element in floor policy.


4.3 XML Schema





   <?xml version="1.0" encoding="UTF-8"?>
   <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
                        targetNamespace="urn:ietf:params:xml:ns:conference-policy"
                        xmlns:conference-mp="urn:ietf:params:xml:ns:conference-mp"




Khartabil & Koskelainen    Expires October 18, 2004            [Page 12]


Internet-Draft                    CPCP                        April 2004



                        xmlns:conference-fp="urn:ietf:params:xml:ns:conference-fp"
                        xmlns:conference-sc="urn:ietf:params:xml:ns:conference-sc"
                        xmlns:conference-dl="urn:ietf:params:xml:ns:conference-dl"
                        xmlns:conference-pcl="urn:ietf:params:xml:ns:conference-pcl"
                        xmlns:conference-acl="urn:ietf:params:xml:ns:conference-acl"
                        xmlns:conference-time="urn:ietf:params:xml:ns:conference-time"
                         xmlns:conference-info="urn:ietf:params:xml:ns:conference-info"
                         xmlns:conference-settings="urn:ietf:params:xml:ns:conference-settings"
                         elementFormDefault="qualified">
        <xs:import namespace="urn:ietf:params:xml:ns:conference-settings" schemaLocation="conference-settings.xsd"/>
        <xs:import namespace="urn:ietf:params:xml:ns:conference-info" schemaLocation="conference-info.xsd"/>
        <xs:import namespace="urn:ietf:params:xml:ns:conference-time" schemaLocation="conference-time.xsd"/>
        <xs:import namespace="urn:ietf:params:xml:ns:conference-acl" schemaLocation="conference-acl.xsd"/>
        <xs:import namespace="urn:ietf:params:xml:ns:conference-pcl" schemaLocation="conference-pcl.xsd"/>
        <xs:import namespace="urn:ietf:params:xml:ns:conference-dl" schemaLocation="conference-dl.xsd"/>
        <xs:import namespace="urn:ietf:params:xml:ns:conference-sc" schemaLocation="conference-sc.xsd"/>
        <xs:import namespace="urn:ietf:params:xml:ns:conference-fp" schemaLocation="conference-fp.xsd"/>
        <xs:import namespace="urn:ietf:params:xml:ns:conference-mp" schemaLocation="conference-mp.xsd"/>
        <xs:element name="Conference">
                <xs:complexType>
                        <xs:sequence>
                                <xs:element name="Conference-Settings" type="conference-settings:conference-settings"/>
                                <xs:element name="Conference-Info" type="conference-info:Conference-Info"/>
                                <xs:element name="Conference-Time" type="conference-time:Conference-Time"/>
                                <xs:element name="ACL" type="conference-acl:Conference-ACL"/>
                                <xs:element name="PCL" type="conference-pcl:Conference-PCL"/>
                                <xs:element name="DL" type="conference-dl:Conference-DL"/>
                                <xs:element name="SC" type="conference-sc:Conference-SC"/>
                                <xs:element name="Conference-floor-policy" type="conference-fp:Conference-Floor-Policy"/>
                                <xs:element name="Conference-media-policy" type="conference-mp:Conference-Media-Policy"/>
                        </xs:sequence>
                </xs:complexType>
        </xs:element>
   </xs:schema>



   <!-- Conference settings -->


   <?xml version="1.0" encoding="UTF-8"?>
   <xs:schema targetNamespace="urn:ietf:params:xml:ns:conference-settings"
                         xmlns="urn:ietf:params:xml:ns:conference-settings"
                         xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
        <xs:complexType name="Conference-settings">
                <xs:sequence>
                        <xs:element name="Conference-uri" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element name="Max-participant-count" type="xs:nonNegativeInteger" minOccurs="0"/>
                </xs:sequence>
        </xs:complexType>




Khartabil & Koskelainen    Expires October 18, 2004            [Page 13]


Internet-Draft                    CPCP                        April 2004



   </xs:schema>



   <!-- Conference Info -->


   <?xml version="1.0" encoding="UTF-8"?>
   <xs:schema targetNamespace="urn:ietf:params:xml:ns:conference-info"
                        xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">


             <!-- This import brings in the XML language attribute xml:lang-->
        <xs:import namespace="http://www.w3.org/XML/1998/namespace"
          schemaLocation="http://www.w3.org/2001/xml.xsd"/>


        <xs:complexType name="Conference-info">
                <xs:sequence>
                        <xs:element name="Subject" type="xs:string" minOccurs="0"/>
                        <xs:element name="Display-name" type="xs:string" minOccurs="0"/>
                        <xs:element name="Free-text" type="xs:string" minOccurs="0"/>
                        <xs:element name="Keywords" minOccurs="0">
                                <xs:simpleType>
                                        <xs:list itemType="xs:string"/>
                                </xs:simpleType>
                        </xs:element>
                        <xs:element name="Web-page" type="xs:anyURI" minOccurs="0"/>
                        <xs:element name="Host-info" minOccurs="0">
                                <xs:complexType>
                                        <xs:sequence>
                                                <xs:element name="URI" type="xs:anyURI" minOccurs="0"/>
                                                <xs:element name="E-mail" type="xs:anyURI" minOccurs="0"/>
                                                <xs:element name="Web-page" type="xs:anyURI" minOccurs="0"/>
                                        </xs:sequence>
                                </xs:complexType>
                        </xs:element>
                </xs:sequence>
                <xs:attribute ref="xml:lang"/>
        </xs:complexType>
   </xs:schema>



   <!-- Conference time -->


   <?xml version="1.0" encoding="UTF-8"?>
   <xs:schema targetNamespace="urn:ietf:params:xml:ns:conference-time"
                        xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
        <xs:complexType name="Conference-Time">
                <xs:sequence>
                        <xs:element name="Conference-occurrence" minOccurs="0" maxOccurs="unbounded">
                                <xs:complexType>




Khartabil & Koskelainen    Expires October 18, 2004            [Page 14]


Internet-Draft                    CPCP                        April 2004



                                        <xs:sequence>
                                                <xs:element name="Start-time" type="xs:dateTime" minOccurs="0"/>
                                                <xs:element name="Stop-time" type="xs:dateTime" minOccurs="0"/>
                                        </xs:sequence>
                                </xs:complexType>
                        </xs:element>
                </xs:sequence>
        </xs:complexType>
   </xs:schema>



   <!-- Access Control List ACL -->


   <?xml version="1.0" encoding="UTF-8"?>
   <xs:schema targetNamespace="urn:ietf:params:xml:ns:conference-acl"
                        xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
        <xs:complexType name="Conference-ACL">
                <xs:sequence>
                        <xs:element name="ACL-target-URI" maxOccurs="unbounded">
                                <xs:complexType>
                                        <xs:simpleContent>
                                                <xs:extension base="xs:anyURI">
                                                        <xs:attribute name="Refer" type="xs:boolean" default="false"/>
                                                        <xs:attribute name="Access-type" use="required">
                                                                <xs:simpleType>
                                                                        <xs:restriction base="xs:string">
                                                                                <xs:enumeration value="Allowed"/>
                                                                                <xs:enumeration value="Blocked"/>
                                                                                <xs:enumeration value="Pending"/>
                                                                                <xs:enumeration value="Expelled"/>
                                                                        </xs:restriction>
                                                                </xs:simpleType>
                                                        </xs:attribute>
                                                </xs:extension>
                                        </xs:simpleContent>
                                </xs:complexType>
                        </xs:element>
                </xs:sequence>
        </xs:complexType>
   </xs:schema>



   <!-- Privilege Control List (PCL) -->


   <?xml version="1.0" encoding="UTF-8"?>
   <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
               targetNamespace="urn:ietf:params:xml:ns:conference-pcl"
               elementFormDefault="qualified">




Khartabil & Koskelainen    Expires October 18, 2004            [Page 15]


Internet-Draft                    CPCP                        April 2004



   <xs:complexType name="Conference-PCL">
   <xs:sequence>
        <xs:element name="PCL-target" minOccurs="1" maxOccurs="unbounded">
                <xs:complexType>
                <xs:sequence>
                        <xs:element name="PCL-target-uri" type="xs:anyURI" minOccurs="1"/>
                        <xs:element name="Privileges">
                                <xs:simpleType>
                                <xs:list>
                                <!-- Define the privileges as data type with all possible values -->
                                <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                        <xs:enumeration value="RIGHT_TO_SUBSCRIBE_TO_CONF_EVENT_PACKAGE"/>
                                        </xs:restriction>
                                </xs:simpleType>
                                </xs:list>
                                </xs:simpleType>
                        </xs:element>
                </xs:sequence>
                </xs:complexType>
        </xs:element>
   </xs:sequence>
   </xs:complexType>
   </xs:schema>



   <!-- Dial-Out List (DL) -->


   <?xml version="1.0" encoding="UTF-8"?>
   <xs:schema targetNamespace="urn:ietf:params:xml:ns:conference-dl"
                        xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
        <xs:complexType name="Conference-DL">
                <xs:sequence>
                        <xs:element name="DL-target" maxOccurs="unbounded">
                                <xs:complexType>
                                        <xs:sequence>
                                                <xs:element name="DL-target-URI" type="xs:anyURI"/>
                                        </xs:sequence>
                                </xs:complexType>
                        </xs:element>
                </xs:sequence>
        </xs:complexType>
   </xs:schema>



   <!-- Security Control (SC) -->


   <?xml version="1.0" encoding="UTF-8"?>




Khartabil & Koskelainen    Expires October 18, 2004            [Page 16]


Internet-Draft                    CPCP                        April 2004



   <xs:schema targetNamespace="urn:ietf:params:xml:ns:conference-sc" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
        <xs:complexType name="Conference-SC">
                <xs:sequence>
                        <xs:element name="Visibility">
                                <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                                <xs:enumeration value="visible"/>
                                                <xs:enumeration value="invisible"/>
                                        </xs:restriction>
                                </xs:simpleType>
                        </xs:element>
                        <xs:element name="Security-mechanism">
                                <xs:complexType>
                                        <xs:attribute name="TLS" type="xs:boolean" default="false"/>
                                        <xs:attribute name="S-MIME" type="xs:boolean" default="false"/>
                                </xs:complexType>
                        </xs:element>
                        <xs:element name="SC-target" minOccurs="0" maxOccurs="unbounded">
                                <xs:complexType>
                                        <xs:sequence>
                                                <xs:element name="SC-target-URI" type="xs:anyURI"/>
                                                <xs:element name="Authorization-mechanism">
                                                        <xs:simpleType>
                                                                <xs:restriction base="xs:string">
                                                                        <xs:enumeration value="Digest"/>
                                                                        <xs:enumeration value="Digest-AKA"/>
                                                                        <xs:enumeration value="None"/>
                                                                </xs:restriction>
                                                        </xs:simpleType>
                                                </xs:element>
                                        </xs:sequence>
                                        <xs:attribute name="Password" type="xs:string"/>
                                </xs:complexType>
                        </xs:element>
                </xs:sequence>
        </xs:complexType>
   </xs:schema>


   <!-- Floor policy  -->


   <?xml version="1.0" encoding="UTF-8"?>
   <xs:schema targetNamespace="urn:ietf:params:xml:ns:conference-fp" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
        <xs:complexType name="Conference-floor-policy">
                <xs:sequence>
                        <xs:element name="Floor" maxOccurs="unbounded">
                                <xs:complexType>
                                        <xs:sequence>
                                                <xs:element name="Media-types">




Khartabil & Koskelainen    Expires October 18, 2004            [Page 17]


Internet-Draft                    CPCP                        April 2004



                                                        <xs:complexType>
                                                                <xs:sequence>
                                                                        <xs:element name="Video" minOccurs="0"/>
                                                                        <xs:element name="Audio" minOccurs="0"/>
                                                                        <xs:element name="Application" minOccurs="0"/>
                                                                        <xs:element name="Data" minOccurs="0"/>
                                                                        <xs:element name="Control" minOccurs="0"/>
                                                                        <xs:element name="Message" minOccurs="0"/>
                                                                        <xs:element name="Text" minOccurs="0"/>
                                                                        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
                                                                </xs:sequence>
                                                        </xs:complexType>
                                                </xs:element>
                                                <xs:element name="Algorithm">
                                                        <xs:complexType>
                                                                <xs:sequence>
                                                                        <xs:element name="Moderator-controlled" minOccurs="0"/>
                                                                        <xs:element name="FCFS" minOccurs="0"/>
                                                                        <xs:element name="Random" minOccurs="0"/>
                                                                        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
                                                                </xs:sequence>
                                                        </xs:complexType>
                                                </xs:element>
                                                <xs:element name="Max-floor-users" type="xs:nonNegativeInteger" minOccurs="0"/>
                                                <xs:element name="Moderator-URI" type="xs:anyURI" minOccurs="0"/>
                                        </xs:sequence>
                                        <xs:attribute name="moderator-controlled" type="xs:boolean" default="false"/>
                                </xs:complexType>
                        </xs:element>
                </xs:sequence>
        </xs:complexType>
   </xs:schema>


   <!-- Media policy-->


   <?xml version="1.0" encoding="UTF-8"?>
   <xs:schema targetNamespace="urn:ietf:params:xml:ns:conference-mp" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
        <xs:element name="Conference-Media-Policy">
                <xs:complexType>
                        <xs:sequence>
                                <xs:element name="Media-types">
                                        <xs:complexType>
                                                <xs:sequence>
                                                        <xs:element name="Video" minOccurs="0"/>
                                                        <xs:element name="Audio" minOccurs="0"/>
                                                        <xs:element name="Application" minOccurs="0"/>
                                                        <xs:element name="Data" minOccurs="0"/>
                                                        <xs:element name="Control" minOccurs="0"/>




Khartabil & Koskelainen    Expires October 18, 2004            [Page 18]


Internet-Draft                    CPCP                        April 2004



                                                        <xs:element name="Message" minOccurs="0"/>
                                                        <xs:element name="Text" minOccurs="0"/>
                                                        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
                                                </xs:sequence>
                                        </xs:complexType>
                                </xs:element>
                        </xs:sequence>
                </xs:complexType>
        </xs:element>
   </xs:schema>





5. Floor Control Policy vs. Floor Control Protocol


   Conference floor control is an optional feature provided by a
   separate floor control protocol (FCP). However, creating a floor and
   defining a floor policy belongs to CPCP. Moreover, setting some key
   floor parameters, such as floor moderator in moderator controlled
   floor policy, belongs to CPCP. FCP only defines how to request,
   grant, deny and revoke a floor within given floor policy.


   For example, in a typical conference the privileged conference user
   (creator) uses CPCP for creating a floor for audio plane, defining
   the floor policy as "moderator-controlled" and appointing one user -
   possibly himself -  to act as a floor moderator governing the access
   to the floor.


   When the floor has been created and possible floor moderator has been
   assigned, the floor moderator gets notifications from the focus and
   is able to accept or deny floor requests from the conference users.
   Note that FCP does not create media streams (just the virtual floor
   attached to media), as media streams are created using CPCP. The
   details of FCP are beyond the scope of this draft.


6. An XCAP Usage for Conference Policy Manipulation


6.1 Application Unique ID


   XCAP requires application usages to define a unique application usage
   ID (AUID) in either the IETF tree or a vendor tree. This
   specification defines the    "conference-policy" AUID within the IETF
   tree, via the IANA registration in Section 9.


6.2 Resource Interdependencies


   The conference policy server must fill the conference URI(s), if a




Khartabil & Koskelainen    Expires October 18, 2004            [Page 19]


Internet-Draft                    CPCP                        April 2004



   conference URI was not proposed by the client. The client then needs
   to perform a HTTP GET to     retrieve the modified policy containing the
   assigned conference URI(s). The CPS MAY assign multiple conference
   URIs to a conference, one for each call signaling    protocol that it
   supports. Section 6.12 and Section 4.2.1 discuss this is more detail.


6.3 Additional Constraints


   These are defined within the XML structure definition.


6.4 Naming Conventions


   There are no naming conventions that need to be defined for this
   application usage.


6.5 Authorization Policies


   This application usage does not modify the default XCAP authorization
   policy, which is that only a user can read, write or modify their own
   documents. A server  can allow privileged users to modify documents
   that they don't own, but the establishment and indication of such
   policies is outside the scope of this document. It   is anticipated
   that a future application usage will define which users are allowed
   to modify a list resource.


6.6 MIME Type for CPCP XML Document


   The MIME type for the CPCP XML document is defined in Section 4.1


6.7 Overview of Operation


   This document assumes that the user knows the location of conference
   policy server (the XCAP URI), the details of that discovery are
   beyond the scope of this     document.


   CPCP is implemented as an XCAP application usage  [8].


   CPCP allows clients to manipulate the conference policy at conference
   policy server (CPS). CPS is able to inform the focus about changes in
   conference policy, if        necessary.      For example, if new users are
   added to the dial-out list, then conference policy server informs the
   focus which makes the invitations as requested.


   Some assumptions about the conferencing architecture are made.
   Clients always connect to the conference policy server (CPS) when
   they perform XCAP    operations. It is assumed that CPS informs other
   conferencing entities, such as focus, floor control server and mixer
   directly or via focus. For example, if user A        wants to expel user B




Khartabil & Koskelainen    Expires October 18, 2004            [Page 20]


Internet-Draft                    CPCP                        April 2004



   from an ongoing conference, user A must first manipulate the
   conference policy data. CPS then communicates that change to the
   focus to     perform the operation.


6.8 Communication Between Conference Entities


   The communication between different (logical) conferencing elements
   is beyond the scope of this document. It can be expected that in most
   cases CPS includes   also those logical functions. If the focus is not
   co-located with CPS, one way for the CPS to communicate changes to
   the conference policy is for the focus to    subscribe to the XCAP
   event package [10].


6.9 Conference Creation and Termination


   Conference is identified by one or more conference URIs. Conference
   URI assignment is discussed in Section 6.12 and Section 4.2.1.


   A user may create a new conference at the CPS by using HTTP PUT and
   sending it to the CPS XCAP URI. Depending on server policy and user
   privileges, the CPS  may accept the creation.


   A conference can be deleted permanently using HTTP DELETE, which
   consequently frees the resources. When the user deletes a conference,
   CPS MUST also        delete all its sub-conferences ("side bars") at a
   server. Conference side bars are separate (independent) URIs at the
   server.


   A running conference instance can be also stopped by modifying the
   conference time information. This leaves conference ACLs and
   privileges intact but stops  the conference.


   If a conference is in progress when deleted or stopped, the focus
   issues signalling requests to terminate all conference related
   sessions it has with clients. In SIP,        the focus issues BYE requests.


6.10 Manipulating the Participant Lists


   A user with sufficient privileges is allowed to perform user
   management operations, such as adding a new user to the conference or
   expelling a user from the    conference. These operations are performed
   by modifying the conference policy at the conference policy server.
   After authorising the user to do such        manipulations, the conference
   policy server communicates the change to the focus. The focus reacts
   by performing operations such as sending SIP INVITE, BYE     or REFER.


   Asking the focus to invite a user into the conference is achieved by
   sending a HTTP PUT request to the CPS that modifies the Dial-Out List




Khartabil & Koskelainen    Expires October 18, 2004            [Page 21]


Internet-Draft                    CPCP                        April 2004



   (DL) adding URIs to it.      The CPS then triggers the focus to send the
   conference invitation, eg: SIP INVITE(s) as needed. Similarly, a user
   can be removed from the Dial-out list by issuing a   HTTP DELETE
   removing the URIs.


   Asking the focus to allow certain users to join the conference is
   done by sending a HTTP PUT request to the CPS that modifies the ACL
   by adding URIs with  access type of "Allowed". The CPS then informs
   the focus of such change to the ACL.


   If the conference is long-lasting, it is possible that new rules are
   added all the time but old rules are almost never removed (some of
   them are overwritten, though).       This leads easily to the situation
   that the ACL contains many unnecessary rules which are not really
   needed anymore. Therefore, there is a need  to delete ACL    rule. This
   can be achieved with the HTTP DELETE.


   Conflicting rules MUST NOT exist (e.g. both allowed and blocked
   action is defined for same target). It is the responsibly of the CPS
   to ensure such restriction. If a     conflict occurs, the CPS can ...


6.10.1 Expelling a Participant


   Expel operation uses the HTTP PUT request as well, as the user is put
   on the ACL list with an access type of "Expelled". This also triggers
   the CPS to   inform the focus about the need to issue a terminating
   request, such as a SIP BYE.


   A participant cannot be expelled by placing him in the ACL list with
   an action to block. This is because the focus interprets a user
   placed on the block list as a user   who is not allowed to dial into
   the conference, but does not prohibit the focus from inviting that
   user to join, if that user is on the Dial-out list. Having the user
   on an        Expel list explicitly informs the focus not to invite that
   user, even if s/he is on the Dial-out list.


6.11 Privileges: Who can modify the conference policy


   There is a need for different privileges to exist where users can
   modify certain parts of the conference policy XML document. This
   specification does not specify       such privileges and relies on other
   XCAP usage documents to define those privileges. If no such XCAP
   usage document exists, the base XCAP document defines        the default
   privileges so that only the creator of the document is the sole user
   with write access.


   This specification, however, makes ready the CPCP XML document to
   allow an external usage document to define which parts of such an XML




Khartabil & Koskelainen    Expires October 18, 2004            [Page 22]


Internet-Draft                    CPCP                        April 2004



   document a user      can modify (which parts of an XML document a user
   has read/write access to) by dividing the CPCP XML document into
   sections, each with a separate       namespace. It is envisioned that the
   XCAP usage document for read/write access of another XCAP XML
   document uses namespaces as the key to allow/disallow        users from
   reading and/or modifying that XCAP usage document.


6.12 Conference URI(s)


   A conference is identified by one or more conference URIs. Conference
   URIs can be proposed by the creator of the conference policy,  as it
   may be useful to     have human-friendly name in some cases, or can be
   assigned by the CPS. If the creator has proposed a conference URI,
   the server needs to decide whether it        accept the name proposed by
   the client or not. It does this determination by examining if the
   conference URI already exists or not. If it exists, the server ...


   A Conference URI can be SIP, SIPS, TEL, or any supported URI scheme.
   There must be at least one URI for a conference. The CPS MAY assign
   multiple     conference URIs to a conference, one for each call
   signaling protocol that it supports. If the creator of the conference
   policy proposed a conference URI for a       protocol that the server does
   not support, the server ...


7. Examples


   The following is an example of a document compliant to the schema:


   Below is an example how to create a conference:



   1. Creating a Conference


   Alice creates a conference as follows:


      PUT http://xcap.example.com/services/conferences/users/Alice/conference.xml HTTP/1.1
      Content-Type:application/conference-policy+xml


   <?xml version="1.0" encoding="US-ASCII"?>
   <Conference xmlns="urn:ietf:params:xml:ns:conference-policy"
                        xmlns:conference-mp="urn:ietf:params:xml:ns:conference-mp"
                        xmlns:conference-fp="urn:ietf:params:xml:ns:conference-fp"
                        xmlns:conference-sc="urn:ietf:params:xml:ns:conference-sc"
                        xmlns:conference-dl="urn:ietf:params:xml:ns:conference-dl"
                        xmlns:conference-pcl="urn:ietf:params:xml:ns:conference-pcl"
                        xmlns:conference-acl="urn:ietf:params:xml:ns:conference-acl"
                        xmlns:conference-time="urn:ietf:params:xml:ns:conference-time"
                        xmlns:conference-info="urn:ietf:params:xml:ns:conference-info"




Khartabil & Koskelainen    Expires October 18, 2004            [Page 23]


Internet-Draft                    CPCP                        April 2004



                        xmlns:conference-settings="urn:ietf:params:xml:ns:conference-settings">
        <conference-settings:Conference-settings>
                <conference-uri:Conference-URI></conference-uri:Conference-URI>
                <Max-participant-count>50</Max-participant-count>
        </conference-settings:Conference-settings>
        <conference-info:Conference-info lang="en">
                <Subject>What's happening tonight</Subject>
                <Display-name>Party Goer's</Display-name>
                <Free-text>John and Peter will join the conference soon</Free-text>
                <Keywords>party nightclub beer</Keywords>
                <Host-info>
                        <SIP-URI>sip:Alice@example.com</SIP-URI>
                        <TEL-URI>tel:+358401111111</TEL-URI>
                        <E-mail>mailto:Alice@example.com</E-mail>
                        <Web-page>http://www.example.com/users/Alice</Web-page>
                </Host-info>
        </conference-info:Conference-info>
        <conference-time:Conference-time>
                <Conference-occurrence>
                        <Start-time>2003-06-16T10:00:00Z</Start-time>
                        <Stop-time>2003-06-16T12:00:00Z</Stop-time>
                </Conference-occurrence>
        </conference-time:Conference-time>
        <conference-acl:ACL>
                <ACL-target-URI Access-type="Allowed">sip:*@example.com</ACL-target-URI>
                <ACL-target-URI Access-type="Blocked">sip:*@*</ACL-target-URI>
        </conference-acl:ACL>
        <conference-pcl:PCL>
                <PCL-target>
                        <PCL-target-URI>sip:Alice@example.com</PCL-target-URI>
                        <Privileges>RIGHT_TO_SUBSCRIBE_TO_CONF_EVENT_PACKAGE</Privileges>
                </PCL-target>
        </conference-pcl:PCL>
        <conference-dl:DL>
                <DL-target>
                        <DL-target-URI>sip:alice@operator.com</DL-target-URI>
                </DL-target>
                <DL-target>
                        <DL-target-URI>sip:sarah@operator.com</DL-target-URI>
                </DL-target>
        </conference-dl:DL>
        <conference-sc:SC>
                <Visibility>visible</Visibility>
                <Security-mechanism TLS="false" S-MIME="true"/>
                <SC-target>
                        <SC-target-URI>sip:*@example.com</SC-target-URI>
                        <Authorization-mechanism password="1a2b3c4d">Digest</Authorization-mechanism>
                </SC-target>




Khartabil & Koskelainen    Expires October 18, 2004            [Page 24]


Internet-Draft                    CPCP                        April 2004



        </conference-sc:SC>
        <conference-fp:Conference-floor-policy>
                <Floor moderator-controlled="true">
                        <Media-types>
                                <Audio/>
                        </Media-types>
                        <Algorithm>
                                <Moderator-controlled/>
                        </Algorithm>
                        <Max-floor-users>1</Max-floor-users>
                        <Moderator-URI>sip:Alice@example.com</Moderator-URI>
                </Floor>
        </conference-fp:Conference-floor-policy>
        <conference-mp:Conference-media-policy>
                        <Media-types>
                                <Audio/>
                        </Media-types>
        </conference-mp:Conference-media-policy>
   </Conference>


   At exactly 2003-06-16T10:00:00Z, the conference server creates a focus and
   sends SIP INVITE requests to Alice and Sarah. After the focus is created,
   SIP INVITE requests can be accepted from anyone at domain example.com.
   Any attempts to join the conference by users in other domains are rejected.


   2. Expelling a User


   Continuing with the above example: aftar the conference has started,
   Alice decides to expel Bob who has joined the conference. So she adds him to
   the ACL list with Access-type of value "Blocked".


   The XCAP request looks like:


      PUT http://xcap.example.com/services/conferences/users/Alice/conference.xml?
         Conference/ACL/ACL-target-URI HTTP/1.1
         Content-Type:text/plain


      <ACL-target-URI Access-type="Explelled">sip:bob@example.com</ACL-target-URI>


   At this point, the focus sends a SIP BYE request to Bob ending Bob's participation
   in the conference. This also guarantees that Bob cannot rejoin the conference since
   he is expilictly expelled until his URI is removed from the ACL Expelled list.
   Any attempt Bob makes in rejoining the conference will fail.



   3. Allowing An Expelled Participant To Join Again


   Continuing with the example above, Alice now decides to allow Bob to join




Khartabil & Koskelainen    Expires October 18, 2004            [Page 25]


Internet-Draft                    CPCP                        April 2004



   again after a period of time. She does so by removing his entry in the
   ACL that identifies him as "Expelled".


      DELETE http://xcap.example.com/services/conferences/users/Alice/conference.xml?
         Conference/ACL/ACL-target-URI/ACL-target-URI="sip:bob@example.com" HTTP/1.1


   Bob can now rejoin the conference by sending a SIP INVITE request.



   4. Removing A Conference


   Alice now decides she no longer wants this conference to exist and therefore
   deletes the conference:


      DELETE http://xcap.example.com/services/conferences/users/Alice/conference.xml


   As a result of this action, the focus sends SIP BYE requests to all current
   participants in the conference. The conference server terminates the focus thereafter.





8. Security Considerations


   See section Section 4.2.7.


9. IANA Considerations


9.1 XCAP Application Usage ID


   This section registers a new XCAP Application Usage ID (AUID)
   according to the IANA procedures defined in..


   Name of the AUID: conference-policy
   Description: Conference policy application manipulates conference
   policy at a server.


9.2 application/conference-policy+xml mime TYPE


   MIME media type: application


   MIME subtype name: conference-policy+xml


   Mandatory parameters: none


   Optional parameters: Same as charset parameter applicatioN/xml as
   specified in RFC 3023 [6].





Khartabil & Koskelainen    Expires October 18, 2004            [Page 26]


Internet-Draft                    CPCP                        April 2004



   Encoding considerations: Same as encoding considerations of
   application/xml as specified in RFC 3023 [6].


   Security considerations: See section 10 of RFC 3023 [6] and section
   Section 9 of this document.


   Interoperability considerations: none.


   Published specification: This document.


   Applications which use this media type: This document type has been
   used to support conference policy manipulation for SIP based
   conferencing.


   Additional information:


   Magic number: None


   File extension: .cl or .xml


   Macintosh file type code: "TEXT"


   Personal and email address for further information: Petri Koskelainen
   (petri.koskelainen@nokia.com)


   Intended Usage: COMMON


   Author/change controller: The IETF


9.3 URN Sub-Namespace Registration for
    urn:ietf:params:xml:ns:conference-policy


   This section registers a new XML namespace, as per guidelines in URN
   document [13].


   URI: The URI for this namespace is
   urn:ietf:params:xml:ns:conference-policy.


   Registrant Contact: IETF, XCON working group, Petri Koskelainen
   (petri.koskelainen@nokia.com)


   XML:










Khartabil & Koskelainen    Expires October 18, 2004            [Page 27]


Internet-Draft                    CPCP                        April 2004



   BEGIN
   <?xml version="1.0"?>
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
        "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
   <html xmlns="http://www.w3.org/1999/xhtml">
   <head>
    <meta http-equiv="content-type"
      content="text/html;charset=iso-8859-1"/>
    <title>Conference Policy Namespace</title>
   </head>
   <body>
     <h1>Namespace for Conference Policy</h1>
     <h2>application/conference-policy+xml</h2>
     <p>See <a href="[[[URL of published RFC]]]">RFCXXXX</a>.</p>
   </body>
   </html>
   END



10. Contributors


      Jose Costa-Requena


      Simo Veikkolainen


      Teemu Jalava



11. Acknowledgements


   The authors would like to thank Markus Isomaki, Eunsook Kim and IETF
   conferencing design team for their feedback.


Normative References


   [1]   Bradner, S., "Key words for use in RFCs to Indicate Requirement
         Levels", RFC 2119, BCD 14, March 1997.


   [2]   Moats, R., "URN Syntax", RFC 2141, May 1997.


   [3]   Moats, R., "A URN Namespace for IETF Documents", RFC 2648,
         August 1999.


   [4]   Rosenberg et al., J., Shulzrinne, H., Camarillo, G., Johnston,
         A., Peterson, J., Sparks, R., Handley, M. and E. Schooler,
         "SIP: Session Initiation Protocol", RFC 3261, June 2002.


   [5]   Bray, T., Paoli, J., Sperberg-McQueen, C. and E. Maler,




Khartabil & Koskelainen    Expires October 18, 2004            [Page 28]


Internet-Draft                    CPCP                        April 2004



         "Extensible Markup Language (XML) 1.0 (Second Edition)", W3C
         REC REC-xml-20001006, October 2000.


   [6]   Murata, M., Laurent, S. and D. Kohn, "XML Media Types", RFC
         3023, January 2001.


   [7]   Koskelainen, P. and H. Khartabil, "Requirements for conference
         policy control protocol", draft-ietf-xcon-cpcp-req-01 (work in
         progress), January 2004.


   [8]   Rosenberg, J., "The Extensible Markup Language (XML)
         Configuration Access Protocol (XCAP)",
         draft-ietf-simple-xcap-02 (work in progress), February 2004.


   [9]   Rosenberg, J., "An Extensible Markup Language (XML)
         Configuration Access Protocol (XCAP) Usage for Presence Lists",
         draft-ietf-simple-xcap-list-usage-02 (work in progress),
         February 2004.


   [10]  Rosenberg, J., "A Session Initiation Protocol (SIP) Event
         Package for Modification Events for the Extensible Markup
         Language (XML) Configuration Access Protocol (XCAP) Managed
         Documents", draft-ietf-simple-xcap-package-01 (work in
         progress), February 2004.


   [11]  Rosenberg, J., "A Framework for Conferencing with the Session
         Initiation Protocol",
         draft-ietf-sipping-conferencing-framework-01 (work in
         progress), October 2003.


   [12]  Rosenberg, J., Shulzrinne, H. and O. Levin, "A Session
         Initiation Protocol (SIP) Event Package for Conference State",
         draft-ietf-sipping-conference-package-03, February 2004.


   [13]  Mealling, M., "The IETF XML Registry",
         draft-mealling-iana-xmlns-registry-05 (work in progress), June
         2003.



Authors' Addresses


   Hisham Khartabil
   Nokia
   P.O. Box 321
   Helsinki  FIN-00045
   Finland


   EMail: hisham.khartabil@nokia.com




Khartabil & Koskelainen    Expires October 18, 2004            [Page 29]


Internet-Draft                    CPCP                        April 2004



   Petri Koskelainen
   Nokia
   P.O. Box 100 (Visiokatu 1)
   Tampere  FIN-33721
   Finland


   EMail: petri.koskelainen@nokia.com













































Khartabil & Koskelainen    Expires October 18, 2004            [Page 30]


Internet-Draft                    CPCP                        April 2004



Intellectual Property Statement


   The IETF takes no position regarding the validity or scope of any
   intellectual property or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; neither does it represent that it
   has made any effort to identify any such rights. Information on the
   IETF's procedures with respect to rights in standards-track and
   standards-related documentation can be found in BCP-11. Copies of
   claims of rights made available for publication and any assurances of
   licenses to be made available, or the result of an attempt made to
   obtain a general license or permission for the use of such
   proprietary rights by implementors or users of this specification can
   be obtained from the IETF Secretariat.


   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights which may cover technology that may be required to practice
   this standard. Please address the information to the IETF Executive
   Director.



Full Copyright Statement


   Copyright (C) The Internet Society (2004). 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 Standards process must be
   followed, or as required to translate it into languages other than
   English.


   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assignees.


   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




Khartabil & Koskelainen    Expires October 18, 2004            [Page 31]


Internet-Draft                    CPCP                        April 2004



   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.



Acknowledgment


   Funding for the RFC Editor function is currently provided by the
   Internet Society.












































Khartabil & Koskelainen    Expires October 18, 2004            [Page 32]