draft-ietf-xcon-common-data-model-02.txt   draft-ietf-xcon-common-data-model-03.txt 
XCON O. Novo XCON O. Novo
Internet-Draft G. Camarillo Internet-Draft G. Camarillo
Expires: January 11, 2007 Ericsson Intended status: Informational Ericsson
D. Morgan Expires: April 13, 2007 D. Morgan
Fidelity Investments Fidelity Investments
R. Even R. Even
Polycom Polycom
July 10, 2006 October 10, 2006
A Common Conference Information Data Model for Centralized Conferencing A Common Conference Information Data Model for Centralized Conferencing
(XCON) (XCON)
draft-ietf-xcon-common-data-model-02.txt draft-ietf-xcon-common-data-model-03.txt
Status of this Memo Status of this Memo
By submitting this Internet-Draft, each author represents that any By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79. aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
skipping to change at page 1, line 39 skipping to change at page 1, line 39
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on January 11, 2007. This Internet-Draft will expire on April 13, 2007.
Copyright Notice Copyright Notice
Copyright (C) The Internet Society (2006). Copyright (C) The Internet Society (2006).
Abstract Abstract
This document collects, organizes, and describes the conference This document collects, organizes, and describes the conference
variables that have been introduced in various protocol drafts of the variables that have been introduced in various protocol drafts of the
XCON and SIPPING working groups. The goal of this document is to XCON and SIPPING working groups. The goal of this document is to
skipping to change at page 2, line 17 skipping to change at page 2, line 17
the common conference information in a conferencing server. The the common conference information in a conferencing server. The
information is modeled as a series of elements, each of which information is modeled as a series of elements, each of which
contains a set of children and attributes. contains a set of children and attributes.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Common Conference Data . . . . . . . . . . . . . . . . . . . . 4 3. Common Conference Data . . . . . . . . . . . . . . . . . . . . 4
3.1. General . . . . . . . . . . . . . . . . . . . . . . . . . 4 3.1. General . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.2. <conference-description> . . . . . . . . . . . . . . . . . 11 3.2. Common Conference Policies . . . . . . . . . . . . . . . . 9
3.2.1. <conference-time> . . . . . . . . . . . . . . . . . . 12 3.3. <conference-description> . . . . . . . . . . . . . . . . . 10
3.2.2. <conf-uris> . . . . . . . . . . . . . . . . . . . . . 13 3.3.1. <conference-time> . . . . . . . . . . . . . . . . . . 11
3.2.3. <service-uris> . . . . . . . . . . . . . . . . . . . . 13 3.3.2. <conf-uris> . . . . . . . . . . . . . . . . . . . . . 13
3.2.4. <maximum-user-count> . . . . . . . . . . . . . . . . . 13 3.3.3. <service-uris> . . . . . . . . . . . . . . . . . . . . 13
3.2.5. <maximum-streams> . . . . . . . . . . . . . . . . . . 14 3.3.4. <maximum-user-count> . . . . . . . . . . . . . . . . . 13
3.2.6. <available-media> . . . . . . . . . . . . . . . . . . 14 3.3.5. <maximum-streams> . . . . . . . . . . . . . . . . . . 13
3.2.7. <controls> . . . . . . . . . . . . . . . . . . . . . . 14 3.3.6. <available-media> . . . . . . . . . . . . . . . . . . 13
3.2.7.1. mute . . . . . . . . . . . . . . . . . . . . . . . 15 3.3.7. <controls> . . . . . . . . . . . . . . . . . . . . . . 14
3.2.7.2. pause-video . . . . . . . . . . . . . . . . . . . 15 3.3.7.1. mute . . . . . . . . . . . . . . . . . . . . . . . 14
3.3. <host-info> . . . . . . . . . . . . . . . . . . . . . . . 16 3.3.7.2. pause-video . . . . . . . . . . . . . . . . . . . 14
3.4. <conference-state> . . . . . . . . . . . . . . . . . . . . 16 3.3.7.3. gain . . . . . . . . . . . . . . . . . . . . . . . 15
3.5. <security-mechanism> . . . . . . . . . . . . . . . . . . . 16 3.4. <host-info> . . . . . . . . . . . . . . . . . . . . . . . 15
3.5.1. <methods> . . . . . . . . . . . . . . . . . . . . . . 17 3.5. <conference-state> . . . . . . . . . . . . . . . . . . . . 15
3.5.2. <option-tags> . . . . . . . . . . . . . . . . . . . . 17 3.6. <floor-information> . . . . . . . . . . . . . . . . . . . 15
3.5.3. <feature-tags> . . . . . . . . . . . . . . . . . . . . 17 3.7. <users> . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.5.4. <bodies> . . . . . . . . . . . . . . . . . . . . . . . 17 3.7.1. <allowed-users-list> . . . . . . . . . . . . . . . . . 17
3.6. <floor-information> . . . . . . . . . . . . . . . . . . . 18 3.7.2. <privileges-control-list> . . . . . . . . . . . . . . 18
3.7. <users> . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.7.2.1. <conference-rules> . . . . . . . . . . . . . . . . 18
3.7.1. <allowed-users-list> . . . . . . . . . . . . . . . . . 20 3.7.2.1.1. <condition> . . . . . . . . . . . . . . . . . 18
3.7.2. <privileges-control-list> . . . . . . . . . . . . . . 20 3.7.2.1.2. <pseudonymous> . . . . . . . . . . . . . . . . 19
3.7.2.1. <data-access-rights> . . . . . . . . . . . . . . . 20 3.7.2.1.3. <has-been-referred> . . . . . . . . . . . . . 19
3.7.2.2. <conference-rules> . . . . . . . . . . . . . . . . 21 3.7.2.1.4. <has-been-invited> . . . . . . . . . . . . . . 19
3.7.2.2.1. <condition> . . . . . . . . . . . . . . . . . 21 3.7.2.1.5. <has-been-in-conference> . . . . . . . . . . . 19
3.7.2.2.1.1. <external-list> . . . . . . . . . . . . . 22 3.7.2.1.6. <is-in-conference> . . . . . . . . . . . . . . 19
3.7.2.2.1.2. <pseudonymous> . . . . . . . . . . . . . . 22 3.7.2.1.7. <administrator> . . . . . . . . . . . . . . . 19
3.7.2.2.1.3. <has-been-referred> . . . . . . . . . . . 22 3.7.2.1.8. <is-on-allowed-users-list-dial-out> . . . . . 20
3.7.2.2.1.4. <has-been-invited> . . . . . . . . . . . . 22 3.7.2.1.9. <is-on-allowed-users-list-refer> . . . . . . . 20
3.7.2.2.1.5. <has-been-in-conference> . . . . . . . . . 22 3.7.2.1.10. <participant-passcode> . . . . . . . . . . . . 20
3.7.2.2.1.6. <is-in-conference> . . . . . . . . . . . . 22 3.7.2.1.11. <administrators-passcode> . . . . . . . . . . 20
3.7.2.2.1.7. <administrator> . . . . . . . . . . . . . 23 3.7.2.2. <actions> . . . . . . . . . . . . . . . . . . . . 21
3.7.2.2.1.8. <is-on-allowed-users-list-dial-out> . . . 23 3.8. <user> . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.7.2.2.1.9. <is-on-allowed-users-list-refer> . . . . . 23 3.8.1. from-mixer, to-mixer . . . . . . . . . . . . . . . . . 23
3.7.2.2.1.10. <participant-passcode> . . . . . . . . . . 23 3.8.1.1. <floor> . . . . . . . . . . . . . . . . . . . . . 23
3.7.2.2.1.11. <administrators-passcode> . . . . . . . . 24 3.9. <sidebars-by-ref> . . . . . . . . . . . . . . . . . . . . 24
3.7.2.2.2. <actions> . . . . . . . . . . . . . . . . . . 24 3.10. <sidebars-by-val> . . . . . . . . . . . . . . . . . . . . 24
3.7.3. <user> . . . . . . . . . . . . . . . . . . . . . . . . 25 4. RELAX NG schema . . . . . . . . . . . . . . . . . . . . . . . 24
3.7.3.1. from_mixer, to_mixer . . . . . . . . . . . . . . . 26 5. XML Schema Extensibility . . . . . . . . . . . . . . . . . . . 48
3.7.3.1.1. <floor> . . . . . . . . . . . . . . . . . . . 27 6. XML example . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.7.3.1.2. <gain> . . . . . . . . . . . . . . . . . . . . 27 7. Security Considerations . . . . . . . . . . . . . . . . . . . 58
3.8. <sidebars-by-ref> . . . . . . . . . . . . . . . . . . . . 28 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 58
3.9. <sidebars-by-val> . . . . . . . . . . . . . . . . . . . . 28 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 58
4. XML Schema . . . . . . . . . . . . . . . . . . . . . . . . . . 28 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5. XML Schema Extensibility . . . . . . . . . . . . . . . . . . . 42 10.1. Normative References . . . . . . . . . . . . . . . . . . . 58
6. XML example . . . . . . . . . . . . . . . . . . . . . . . . . 43 10.2. Informative References . . . . . . . . . . . . . . . . . . 59
7. Security Considerations . . . . . . . . . . . . . . . . . . . 53 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 59
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 53 Intellectual Property and Copyright Statements . . . . . . . . . . 61
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 53
10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 53
10.1. Normative References . . . . . . . . . . . . . . . . . . . 53
10.2. Informative References . . . . . . . . . . . . . . . . . . 54
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 55
Intellectual Property and Copyright Statements . . . . . . . . . . 56
1. Introduction 1. Introduction
This document defines an Extensible Markup Language (XML) Schema that This document defines an Extensible Markup Language (XML) Schema that
represents the common conference information in a conferencing represents the conference object in a conferencing server. The
server. The information is modeled as a series of elements, each of information is modeled as a series of elements, each of which
which contains children and attributes. contains children and attributes.
The common conference information is a part of the Conference Object.
The Conference Object contains the XML schema, which is used to The Conference Object contains the XML schema, which is used to
represent the core information that is utilized in any conference represent the core information that is utilized in any conference
(capabilities,membership, roles, call control signalling, media, (capabilities,membership, roles, call control signalling, media,
etc...) and specifies the set of rights, permissions and limitations etc...) and specifies the set of rights, permissions and limitations
pertaining to operations being performed on a certain Conference pertaining to operations being performed on a certain Conference
Object. Object.
This document gives an overview of the conference variables that have This document gives an overview of the conference variables that have
been introduced in various protocol drafts of the XCON working group been introduced in various protocol drafts of the XCON working group
to date and proposes to create a unified common conference to date and proposes to create a unified common conference
information data model for XCON. information data model for XCON.
This document has been constructed in compliance with the XCON This document has been constructed in compliance with the XCON
Framework [1] and the Session Initiation Protocol (SIP) Event Package Framework [1] and the Session Initiation Protocol (SIP) Event Package
for Conference State [2]. It also incorporates data elements for Conference State [2]. It also incorporates data elements
proposed in several XCON WG and SIPPING WG drafts. proposed in several XCON WG and SIPPING WG drafts.
[Editors Note: This document is still in early stages of development
and is intended to trigger discussions.]
2. Terminology 2. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT","SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in NOT","SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in
this document are to be interpreted as described in RFC-2119 [3]. this document are to be interpreted as described in RFC-2119 [3].
This document uses the terminology defined in the XCON Conferencing This document uses the terminology defined in the XCON Conferencing
Framework [1] and the SIPPING Conferencing Framework [4]. In Framework [1] and the SIPPING Conferencing Framework [4]. In
addition, it uses definitions from The Binary Floor Control Protocol addition, it uses definitions from The Binary Floor Control Protocol
[7]. [7].
skipping to change at page 5, line 12 skipping to change at page 5, line 8
MUST be well formed and SHOULD be valid. Conference object data MUST be well formed and SHOULD be valid. Conference object data
model documents MUST be based on XML 1.0 and SHOULD be encoded using model documents MUST be based on XML 1.0 and SHOULD be encoded using
UTF-8. UTF-8.
A Common Conference information document begins with the root element A Common Conference information document begins with the root element
tag <conference-info> of conference-type. The <conference-info> has tag <conference-info> of conference-type. The <conference-info> has
the attribute 'entity' that contains the conference unique identifier the attribute 'entity' that contains the conference unique identifier
that identifies the conference being described in the document. that identifies the conference being described in the document.
The <conference-info> element is comprised of <conference- The <conference-info> element is comprised of <conference-
description>, <host-info>, <conference-state>, <security-mechanism>, description>, <host-info>, <conference-state>, <floor-information>,
<Floor Information>, <users>, <sidebars-by-ref>, <sidebars-by-val>, <users>, <sidebars-by-ref>, <sidebars-by-val>, child elements. A
child elements. A common conference document must at least include common conference document must at least include the <conference-
the <conference-description>, <host-info>, <conference-state>, description>, <host-info>, <conference-state>, and <users> child
<available-media>, and <users> child elements. Some of this elements. Some of this information can be represented using the
information can be represented using the conference-info-type schema conference-info-type schema as defined in [2].
as defined in [2].
Changes in the state of the conference should be communicated to the Changes in the state of the conference should be communicated to the
subscribers using a conference package subscribers (ex. A Session subscribers using a conference package subscribers (ex. A Session
Initiation Protocol (SIP) Event Package for Conference State). Initiation Protocol (SIP) Event Package for Conference State).
Critical changes should be communicated to specific subscribers, Critical changes should be communicated to specific subscribers,
perhaps those with unique roles. The conference policy control perhaps those with unique roles. The conference policy control
protocol msy be used to retrieve the conference state at any time. protocol msy be used to retrieve the conference state at any time.
The following non-normative diagram gives an example of the overall The following non-normative diagram gives an example of the overall
hierarchy used in this format. The operator "!" preceding an element hierarchy used in this format. The operator "!" preceding an element
skipping to change at page 5, line 43 skipping to change at page 5, line 38
!<conference-info> !<conference-info>
| |
|--!<conference-description> |--!<conference-description>
| |--<display-text> | |--<display-text>
| |--<subject> | |--<subject>
| |--<free-text> | |--<free-text>
| |--<keywords> | |--<keywords>
| |--<web-page> | |--<web-page>
| |--<security-level> | |--<security-level>
| |--<allow-sidebars> | |--<allow-sidebars>
| |--<conference-stage>* | |--<conference-stage>
| |--<conference-time> | |--<conference-time>
| | |--<entry> | | |--<entry>
| | | |--<base> | | | |--<base>
| | | |--<mixing-start-offset> | | | |--<mixing-start-offset>
| | | |--<mixing-end-offset> | | | |--<mixing-end-offset>
| | | |--<can-join-after-offset> | | | |--<can-join-after-offset>
| | | |--<must-join-before-offset> | | | |--<must-join-before-offset>
| | | |--<request-user> | | | |--<request-user>
| | | |--<notify-end-of-conference> | | | |--<notify-end-of-conference>
| | | |--<allowed-extend-mixing-end-offset> | | | |--<allowed-extend-mixing-end-offset>
skipping to change at page 6, line 19 skipping to change at page 6, line 14
| | | |--<uri> | | | |--<uri>
| | | |--<display-text> | | | |--<display-text>
| | | |--<purpose> | | | |--<purpose>
| | |--<H323> | | |--<H323>
| | | |--<H.323-alias> | | | |--<H.323-alias>
| | | |--<H.323-URI> | | | |--<H.323-URI>
| | |--<PSTN/ISDN> | | |--<PSTN/ISDN>
| | | |--<phone number> | | | |--<phone number>
| | | |--<PIN-code> | | | |--<PIN-code>
| | | |--<purpose> | | | |--<purpose>
| | | |--<rate>* | | | |--<rate>
| | ... | | ...
| |--<service-uris> | |--<service-uris>
| | |--<SIP> | | |--<SIP>
| | | |--<uri> | | | |--<uri>
| | | |--<display-text> | | | |--<display-text>
| | | |--<purpose> | | | |--<purpose>
| | |--<H323> | | |--<H323>
| | | |--<H.323-alias> | | | |--<H.323-alias>
| | | |--<H.323-URI> | | | |--<H.323-URI>
| | |--<PSTN/ISDN> | | |--<PSTN/ISDN>
skipping to change at page 6, line 48 skipping to change at page 6, line 43
| |--<maximum-streams> | |--<maximum-streams>
| | |--<entry> | | |--<entry>
| | |--<entry> | | |--<entry>
| | ... | | ...
| |--!<available-media> | |--!<available-media>
| | |--!<entry> | | |--!<entry>
| | | |--<type> | | | |--<type>
| | | |--<display-text> | | | |--<display-text>
| | | |--<status> | | | |--<status>
| | | |--<mixing-mode> | | | |--<mixing-mode>
| | | |--<mix level> | | | |--<mix-level>
| | | |--<controls>
| | | | |--<control>
| | | | | |--<display-text>
| | | | | |--<value>
| | | | |--<control>
| | | | | |--<display-text>
| | | | | |--<value>
| | | | ...
| | | |--<codecs> | | | |--<codecs>
| | | | |--<entry> | | | | |--<entry>
| | | | |--<entry> | | | | |--<entry>
| | | | ... | | | | ...
| | | |--<controls>
| | | | |--<mute>
| | | | |--<gain>
| | | | ...
| | |--<entry> | | |--<entry>
| | | |--<type> | | | |--<type>
| | | |--<display-text> | | | |--<display-text>
| | | |--<status> | | | |--<status>
| | | |--<mixing-mode> | | | |--<mixing-mode>
| | | |--<mix level> | | | |--<mix-level>
| | | |--<controls>
| | | | |--<control>
| | | | | |--<display-text>
| | | | | |--<value>
| | | | |--<control>
| | | | | |--<display-text>
| | | | | |--<value>
| | | | ...
| | | |--<codecs> | | | |--<codecs>
| | | | |--<entry> | | | | |--<entry>
| | | | |--<entry> | | | | |--<entry>
| | | | ... | | | | ...
| | | |--<controls>
| | | | |--<pause-video>
| | | | ...
| | ... | | ...
| |
|--!<host-info> |--!<host-info>
| |--<display-text> | |--<display-text>
| |--<web-page> | |--<web-page>
| |--!<uris> | |--!<uris>
| | |--!<SIP> | | |--!<SIP>
| | | |--!<uri> | | | |--!<uri>
| | | |--<display-text> | | | |--<display-text>
| | | |--<purpose> | | | |--<purpose>
skipping to change at page 8, line 5 skipping to change at page 7, line 40
| | | |--<H.323-URI> | | | |--<H.323-URI>
| | |--<PSTN/ISDN> | | |--<PSTN/ISDN>
| | | |--<phone number> | | | |--<phone number>
| ... | ...
|--!<conference-state> |--!<conference-state>
| |--<allow-conference-state> | |--<allow-conference-state>
| |--<user-count> | |--<user-count>
| |--!<active> | |--!<active>
| |--<locked> | |--<locked>
| |
|--<security-mechanism>
| |--<entry-protocol=SIP>
| | |--<methods>
| | | |--<method>
| | | ...
| | |--<option-tags>
| | | |--<option-tag>
| | | ...
| | |--<feature-tags>
| | | |--<feature-tag>
| | | ...
| | |--<bodies>
| | | |--<body-disposition>
| | | | |--<body-format>
| | | ...
| |--<entry-protocol=H.323>*
| | |--<version>*
| |--<entry-protocol=H.320>*
| | |--<supported>*
| ...
|
|--<floor-information> |--<floor-information>
| |--<allow-floor-events> | |--<allow-floor-events>
| |--<floor-request-handling> | |--<floor-request-handling>
| |--<conference-floor-policy> | |--<conference-floor-policy>
| | |--<floor> | | |--<floor>
| | | |--<media-types> | | | |--<media-types>
| | | |--<algorithm> | | | |--<algorithm>
| | | |--<max-floor-users> | | | |--<max-floor-users>
| | | |--<moderator-uri> | | | |--<moderator-uri>
| | | |--<moderator-uri> | | | |--<moderator-uri>
skipping to change at page 8, line 47 skipping to change at page 8, line 12
| | ... | | ...
| |
|--!<users> |--!<users>
| |--<join-handling> | |--<join-handling>
| |--<user-admission-policy> | |--<user-admission-policy>
| |--<allowed-users-list> | |--<allowed-users-list>
| | |--<target> | | |--<target>
| | |-- ... | | |-- ...
| | | |
| |--<privileges-control-list> | |--<privileges-control-list>
| | |--<data-access-rights>
| | | |--<entry name=sidebars-by-ref>
| | | |--<entry name=sidebars-by-val>
| | | |--<entry name=conference-time>
| | | |--<entry name=mixing-start-offset>
| | | ...
| | |
| | |--<conference-rules> | | |--<conference-rules>
| | | |--<entry> | | | |--<entry>
| | | | |--<condition> | | | | |--<condition>
| | | | | |--<identity> | | | | | |--<identity>
| | | | | | | | | | | | | |
| | | | | | ... | | | | | | ...
| | | | | | | | | | | |
| | | | | |--<validity> | | | | | |--<validity>
| | | | | | |--<from> | | | | | | |--<from>
| | | | | | |--<until> | | | | | | |--<until>
skipping to change at page 9, line 35 skipping to change at page 8, line 41
| | |--<provide-anonymity> | | |--<provide-anonymity>
| | |--<roles> | | |--<roles>
| | | | | | | |
| | | ... | | | ...
| | |--<languages> | | |--<languages>
| | |--<cascaded-focus> | | |--<cascaded-focus>
| | |--<sphere> | | |--<sphere>
| | |--<allow-refer-users-dynamically> | | |--<allow-refer-users-dynamically>
| | |--<allow-invite-users-dynamically> | | |--<allow-invite-users-dynamically>
| | |--<allow-remove-users-dynamically> | | |--<allow-remove-users-dynamically>
| | |--<floors> | | |--!<endpoint>
| | | |--<entry>
| | | | |--<show-floor-holder>
| | | | |--<show-floor-requests>
| | | ...
| | |--<endpoint>
| | | |--<display-text> | | | |--<display-text>
| | | |--<referred> | | | |--<referred>
| | | |--<status> | | | |--<status>
| | | |--<joining-method> | | | |--<joining-method>
| | | |--<joining-info> | | | |--<joining-info>
| | | |--<disconnection-method> | | | |--<disconnection-method>
| | | |--<disconnection-info> | | | |--<disconnection-info>
| | | |--<media> | | | |--!<media>
| | | | |--<type> | | | | |--<type>
| | | | |--<display-text> | | | | |--<display-text>
| | | | |--<label> | | | | |--<label>
| | | | |--<src-id> | | | | |--<src-id>
| | | | |--<status> | | | | |--<status>
| | | | |--<to_mixer> | | | | |--<to-mixer>
| | | | | |--<floor> | | | | | |--<floor>
| | | | | |--<controls> | | | | | |--<controls>
| | | | | | |--<control> | | | | | | |--<mute>
| | | | | | | |--<display-text> | | | | | | |--<gain>
| | | | | | | |--<value>
| | | | | | |--<control>
| | | | | | | |--<display-text>
| | | | | | | |--<value>
| | | | | | ... | | | | | | ...
| | | | |--<from_mixer> | | | | |--<from-mixer>
| | | | | |--<floor> | | | | | |--<floor>
| | | | | |--<controls> | | | | | |--<controls>
| | | | | | |--<control> | | | | | | |--<pause-video>
| | | | | | | |--<display-text>
| | | | | | | |--<value>
| | | | | | |--<control>
| | | | | | | |--<display-text>
| | | | | | | |--<value>
| | | | | | ... | | | | | | ...
| | | | ... | | | | ...
| | | |--<call-info> | | | |--<call-info>
| | | | |--<sip> | | | | |--<sip>
| | | | | |--<display-text> | | | | | |--<display-text>
| | | | | |--<call-id> | | | | | |--<call-id>
| | | | | |--<from-tag> | | | | | |--<from-tag>
| | | | | |--<to-tag> | | | | | |--<to-tag>
| ... ... | ... ...
|--<sidebars-by-ref> |--<sidebars-by-ref>
skipping to change at page 10, line 50 skipping to change at page 9, line 42
| | |-- <display-text> | | |-- <display-text>
| ... | ...
|--<sidebars-by-val> |--<sidebars-by-val>
| |--<entry> | |--<entry>
| | | | | |
| | ... | | ...
| |--<entry> | |--<entry>
| | | | | |
| ... ... | ... ...
The following sections describe these elements in detail. The full Following sections describe these elements in detail. The full XML
XML schema is provided in Section 4. schema is provided in Section 4.
3.2. <conference-description> 3.2. Common Conference Policies
Conference policies collectively refers to a set of rights,
permissions and limitations pertaining to operations being performed
on a certain conference object data model.
The set of rights describes the read/write access privileges for the
conference object data model as a whole. Every element of the data
model SHOULD has defined two attributes: the attribute 'read-only',
and the attribute 'read-write'. These attributes describes the read/
write access privileges for accessing the Conference Object as a
whole. It is partially described in [1]. When the conferencing
server receives a request for access privacy-sensitive data it needs
to match it against the 'read-only' and the 'read-write' attributes.
Each attribute of each individual element is evaluated and as a
result it is determined if the user can access that element. The
attributes specify the minimum subscriber's role that can access or
modify the element of the conference. Subscribers with a lower role
cannot access or modify the element. If an attribute is not defined
in some element, the 'read-only' attribute MUST be interpreted as a
"participant" and the 'read-write' attribute MUST be interpreted as
an "administrator" by default. It is possible to defined only one of
the attributes of the element, the other attribute SHOULD be
interpreted by default. This draft does not define the set of
possible conferencing roles.
However, it can also be the case that conflicts can occur given a
hierarchy of elements. In that case, the lower-level element
privileges predominate over the upper-level privileges element.
This document defines a more specific right mechanism in Section
3.7.2, beyond the 'read-only' and 'read-write' attributes.
The permissions and limits are specified as an integral part of the
data model, with elements containing the allowed ranges for other
elements (e.g., maximum number of participants) and lists of clients
allowed to perform certain operations on a conference object.
3.3. <conference-description>
The <conference-description> element describes the conference in its The <conference-description> element describes the conference in its
entirely. It SHOULD have an extra attribute 'xml:lang' to specify entirely. It SHOULD have an extra attribute 'xml:lang' to specify
the language used in the contents of this element as defined Section the language used in the contents of this element as defined Section
2.12 of [5]. It is comprised of <display-text>, <subject>, <free- 2.12 of [5]. It is comprised of <display-text>, <subject>, <free-
text>, <keywords>, <web-page>, <security-level>, <allow-sidebars>, text>, <keywords>, <web-page>, <security-level>, <allow-sidebars>,
<conference-stage>, <conference-time>, <conf-uris>, <service-uris>, <conference-stage>, <conference-time>, <conf-uris>, <service-uris>,
<maximum-user-count>, <maximum-streams>, and <available-media>. <maximum-user-count>, <maximum-streams>, and <available-media>.
The child elements <display-text>, <subject>, <free-text> and The child elements <display-text>, <subject>, <free-text> and
skipping to change at page 12, line 9 skipping to change at page 11, line 38
count> child element indicates the number of users that can be count> child element indicates the number of users that can be
invited to the conference. The <maximum-streams> child element invited to the conference. The <maximum-streams> child element
indicates the number of streams that can be for every media type. indicates the number of streams that can be for every media type.
The <available-media> child element is used to describe the media The <available-media> child element is used to describe the media
characteristics of the conference. characteristics of the conference.
The following sections describe the remaining elements in more The following sections describe the remaining elements in more
detail. Other child elements can be used to extend <conference- detail. Other child elements can be used to extend <conference-
description> in the future. description> in the future.
3.2.1. <conference-time> 3.3.1. <conference-time>
The <conference-time> element contains the information related to The <conference-time> element contains the information related to
conference time and duration of a conference. The <conference-time> conference time and duration of a conference. The <conference-time>
element contains one or more <entry> elements each defining the time element contains one or more <entry> elements each defining the time
information of a single conference occurrence. information of a single conference occurrence.
Every <entry> element contains a <mixing-start-offset> child element Every <entry> element contains a <mixing-start-offset> child element
that specifies when conference media mixing starts before the that specifies when conference media mixing starts before the
conference starts, <mixing-end-offset> child element that specifies conference starts, <mixing-end-offset> child element that specifies
the time a conference media mixing stops after the conference stops. the time a conference media mixing stops after the conference stops.
skipping to change at page 13, line 22 skipping to change at page 13, line 5
The <notify-end-of-conference> element defines in seconds when the The <notify-end-of-conference> element defines in seconds when the
system has to send a notification when the end of the conference is system has to send a notification when the end of the conference is
near. If the <notify-end-of-conference> element is not present, it near. If the <notify-end-of-conference> element is not present, it
indicates that the system does not notify the users when the end of indicates that the system does not notify the users when the end of
the conference is near. The <notify-end-of-conference> child element the conference is near. The <notify-end-of-conference> child element
expresses the offset as signed integers representing seconds before/ expresses the offset as signed integers representing seconds before/
after DTSTART field. The <allowed-extend-mixing-end-offset> refers after DTSTART field. The <allowed-extend-mixing-end-offset> refers
to the possibility to extend the conference. It has two values: to the possibility to extend the conference. It has two values:
allowed, denied. allowed, denied.
3.2.2. <conf-uris> 3.3.2. <conf-uris>
The <conf-uris> contains the identifiers to be used in order to The <conf-uris> contains the identifiers to be used in order to
access the conference by different signaling means. It contains a access the conference by different signaling means. It contains a
sequence of child elements: <SIP>, <H.323>, and <PSTN/ISDN>. The sequence of child elements: <SIP>, <H.323>, and <PSTN/ISDN>. The
<SIP> element contains the <uri>, <display-text>, and <purpose>. <SIP> element contains the <uri>, <display-text>, and <purpose>.
<uri>, <display-text>, and <purpose> are described in [2]. The <uri>, <display-text>, and <purpose> are described in [2]. The
<H.323> element includes either a <H.323-alias> or a <H.323-URI> <H.323> element includes either a <H.323-alias> or a <H.323-URI>
child elements. The <PSTN/ISDN> has an attribute 'PIN code' with the child elements. The <PSTN/ISDN> has an attribute 'PIN code' with the
PIN code of the conference if used and a 'purpose' attribute that PIN code of the conference if used and a 'purpose' attribute that
describes to the user which phone number to use. <PSTN/ISDN> element describes to the user which phone number to use. <PSTN/ISDN> element
may include 1 or more <phone number> child elements and the call rate may include 1 or more <phone number> child elements and the call rate
as well. as well.
3.2.3. <service-uris> 3.3.3. <service-uris>
The <service-uris> describes auxiliary services available for the The <service-uris> describes auxiliary services available for the
conference. It contains a sequence of child elements: <SIP>, conference. It contains a sequence of child elements: <SIP>,
<H.323>, <PSTN/ISDN>, and <BFCP>. <SIP> child element contains <uri>, <H.323>, <PSTN/ISDN>, and <BFCP>. <SIP> child element contains <uri>,
<display-text>, and <purpose>. The purpose will be used to describe <display-text>, and <purpose>. The purpose will be used to describe
the service. These elements are described in [2]. <H.323>, and the service. These elements are described in [2]. <H.323>, and
<PSTN/ISDN> child elements are described in <conf-uris> section. The <PSTN/ISDN> child elements are described in <conf-uris> section. The
<BFCP> has a sub-element <conference-ID> that are used by a floor <BFCP> has a sub-element <conference-ID> that are used by a floor
control server to provide a client with a conference ID. control server to provide a client with a conference ID.
3.2.4. <maximum-user-count> 3.3.4. <maximum-user-count>
The <maximum-user-count> contains the overall number of users allowed The <maximum-user-count> contains the overall number of users allowed
to join the conference. It contains a sequence of <entry> child to join the conference. It contains a sequence of <entry> child
elements. An <entry> element MAY contain the number of users with a elements. An <entry> element MAY contain the number of users with a
specific role allowed to join the conference [8]. specific role allowed to join the conference.
3.2.5. <maximum-streams> 3.3.5. <maximum-streams>
The <maximum-streams> contains the maximum number of streams that are The <maximum-streams> contains the maximum number of streams that are
permitted to be involved in a conference. It contains a sequence of permitted to be involved in a conference. It contains a sequence of
<entry> child elements. An <entry> element MAY contain the number of <entry> child elements. An <entry> element MAY contain the number of
streams of every specific type of stream, for instance, audio or streams of every specific type of stream, for instance, audio or
video. The minimum value permitted is "1" and the maximum value video. The minimum value permitted is "1" and the maximum value
permitted is "128". This element is optional. permitted is "128". This element is optional.
3.2.6. <available-media> 3.3.6. <available-media>
The <available-media> has the 'label' attribute that is the media The <available-media> has the 'label' attribute that is the media
stream identifier assigned by the conferencing server. This element stream identifier assigned by the conferencing server. This element
contains a sequence of <entry> child elements of conference-medium- contains a sequence of <entry> child elements of conference-medium-
type. Each <entry> element contains the <type>, <display-text>, type. Each <entry> element contains the <type>, <display-text>,
<status>, <mixing-mode>, <mix level>, <controls, and <codecs> child <status>, <mixing-mode>, <mix-level>, <controls> and <codecs> child
elements. The attribute 'label' and the <type>, <display-text>, and elements. The attribute 'label' and the <type>, <display-text>, and
<status> elements are described in [2]. The <codecs> element <status> elements are described in [2]. The <codecs> element
specifies the allowed codecs in the conference. It has an attribute specifies the allowed codecs in the conference. It has an attribute
'decision' that specifies if the focus decides the common codec 'decision' that specifies if the focus decides the common codec
automatically or needs the approvement of the moderator of the automatically or needs the approvement of the moderator of the
conference (automatic, moderator-controlled). The <codecs> element conference (automatic, moderator-controlled). The <codecs> element
contains a <entry> elements. A <entry> element can have the contains a <entry> elements. A <entry> element can have the
attribute 'name' and 'policy'. The 'name' attribute identifies a attribute 'name' and 'policy'. The 'name' attribute identifies a
codec, and the 'decision' attribute and the policy attribute contains codec, and the 'decision' attribute and the policy attribute contains
the policy for that codec (allowed, or disallowed). the policy for that codec (allowed, or disallowed).
The child elements <mixing-mode>, <mix level> describe a default The child elements <mixing-mode>, <mix-level> describe a default
policy by which the mixer will build the outgoing stream from the policy by which the mixer will build the outgoing stream from the
incoming streams. Notice that this policy is different that the incoming streams. Notice that this policy is different that the
policy describe for the floors for each media. The <mix level> child policy describe for the floors for each media. The <mix-level> child
element describes the number of participants in audio media streams element describes the number of participants in audio media streams
or the number of sub-windows in video media streams (for instance, a or the number of sub-windows in video media streams (for instance, a
value of 4 in the <mix level> element for video stremas means 2x2 value of 4 in the <mix-level> element for video stremas means 2x2
layout). The <mixing-mode> child element MUST contain one and only layout). The <mixing-mode> child element MUST contain one and only
one of the "Moderator-controlled", "FCFS", and "Automatic" values one of the "Moderator-controlled", "FCFS", and "Automatic" values
indicating the default algorithm to be use with every media stream. indicating the default algorithm to be use with every media stream.
Next section explains the <controls> child element. Next section explains the <controls> child element.
3.2.7. <controls> 3.3.7. <controls>
The <controls> element contains the basic audio and video global The <controls> element contains the basic audio and video global
controls for a conferencing. It is expected that for most of the controls for a conferencing. It is expected that for most of the
basic conferencing, these controls are sufficient. If the conference basic conferencing, these controls are sufficient. If the conference
server wants to support more advanced control, then it is recommended server wants to support more advanced control, then it is recommended
extension of the data model to be used. In the <controls> element extension of the data model to be used. In the <controls> element
the schema is extensible, hence new control types can be added in a the schema is extensible, hence new control types can be added in a
future. Controls that apply at a different level than endpoint/ future. Similarly, controls that apply to a especific users would
stream would appear at an appropriate place in the document. So, appear under the <users>/<user>/<endpoint> element. So, moderator
moderator controls that affect all media output would go under the controls that affect all media output would go under the <available-
<available-media> element. media> element.
3.2.7.1. mute 3.3.7.1. mute
The 'mute' control is used in conjunction with a media stream to The 'mute' control is used in conjunction with a audio stream to
cease transmission of associated media. It has a 'Boolean' value. cease transmission of associated media. It has a 'Boolean' value.
When muting, the control consists of the following attributes: If this control is not specify, the access to the control is not
'type', 'name', 'enable'. And the following additional elements: available to the client and media SHOULD not be transported for the
'label', and 'value'. The description of these elements are the associated media stream.
following:
type: The 'mute' control has a type of 'Boolean'.
name: The control is named 'mute'.
enable: The enable attribute specifies if access to the control is
available to the client. The value is of type 'boolean' and is set
to 'true' as default.
The Control also consists of the following additional elements:
display-text: Provides a Control label that can be rendered to the
client.
value: Provides a default value for the Control. For the Blue-Print
example the value is 'True'.
3.2.7.2. pause-video
The 'pause-video' control is used in conjunction with a media stream
to cease transmission of associated media. It has a 'Boolean' value.
The 'pause-video' control consists of the following attributes:
type: The 'pause-video' control has a type of 'Boolean'. 3.3.7.2. pause-video
name: The control is named 'pause-video'. The 'pause-video' control is used in conjunction with a video stream
to cease transmission of associated media. It has a 'Boolena' value.
default: Indicates the default value for the 'pause-video' control If this control is not specify, the access to the control is not
when not set. The attribute type is 'Boolean' with a default value available to the client and media SHOULD not be transported for the
of 'false. Setting the 'default' attribute to 'false' specifies that
media should be transported for the associated media stream. When
set to the value of 'true', media should not be transported for the
associated media stream. associated media stream.
enable: The enable attribute specifies if access to the control is 3.3.7.3. gain
available to the client. The value is of type 'boolean' and is set
to 'true' as default.
The Control also consists of the following additional elements:
display-text: Provides a Control label that can be rendered to the
client.
value: Provides a default value for the Control. For the Blue-Print The 'gain' control is used in conjunction with a media output stream
example the value is 'True'. to indicate the amount of amplification of an audio stream. It has a
'Int' number value from -127 to 127. If this control is not specify,
the access to the control is not available to the client.
3.3. <host-info> 3.4. <host-info>
The <host-info> element contains information about the entity hosting The <host-info> element contains information about the entity hosting
the conference. It contains the <display-text>, <web-page> child the conference. It contains the <display-text>, <web-page> child
elements. These child elements are explained in [2]. <host-info> elements. These child elements are explained in [2]. <host-info>
contains the <uris> child element as well. <uris> contains a sequence contains the <uris> child element as well. <uris> contains a sequence
of child elements: <SIP>, <H.323>, and <PSTN/ISDN>. The child of child elements: <SIP>, <H.323>, and <PSTN/ISDN>. The child
elements of <uris> are described in <conf-uris> section. elements of <uris> are described in <conf-uris> section.
3.4. <conference-state> 3.5. <conference-state>
The <conference-state> element and the <user-count>, <active>, and The <conference-state> element and the <user-count>, <active>, and
<locked> child element are explained in section 5.5 of [2]. The <locked> child element are explained in section 5.5 of [2]. The
<allow-conference-state> element represents a boolean action. If set <allow-conference-state> element represents a boolean action. If set
to TRUE, the focus is instructed to allow the subscription to to TRUE, the focus is instructed to allow the subscription to
conference state events, such as the SIP Event Package for Conference conference state events, such as the SIP Event Package for Conference
State [2]. If set to FALSE, the subscription to conference state State [2]. If set to FALSE, the subscription to conference state
events would be rejected. If this element is undefined it has a events would be rejected. If this element is undefined it has a
value of TRUE, causing the subscription to conference state events to value of TRUE, causing the subscription to conference state events to
be accepted. be accepted.
3.5. <security-mechanism>
The <security-mechanism> contains a series of <entry-protocol> sub-
elements. The <entry-protocol> element has a single mandatory
attribute, 'name'. The 'name' attribute identifies a protocol the
policy of each protocol element is referring to. Each <entry-
protocol> sub-element contains the policy related to the usage of a
particular protocol.
The <entry-protocol> element has a series of child elements: methods,
option-tags, feature-tags, and bodies are defined for the SIP
protocol. These elements are described in the following sections.
H.323 protocol has a sub element <version> that says which version of
H.323 is supported. H.320 protocol has a sub element <supported>
that says if H.320 is supported or not.
3.5.1. <methods>
The <methods> element contains a default-policy attribute and
<method> elements. The default-policy attribute contains the policy
for methods that are not listed as <method> elements. A <method>
element has two attributes: name and policy. The name attribute
identifies a method, and the policy attribute contains the policy for
that method (allowed or disallowed).
3.5.2. <option-tags>
The <option-tags> element contains a default-policy attribute and
<option-tag> elements. The default-policy attribute contains the
policy for option-tags that are not listed as <option-tag> elements.
An <option-tag> element has two attributes: name and policy. The
name attribute identifies a method, and the policy attribute contains
the policy for that method (mandatory, allowed, or disallowed).
3.5.3. <feature-tags>
The <feature-tags> element contains a default-policy attribute and
<feature-tag> elements. The default-policy attribute contains the
policy for feature-tags that are not listed as <feature-tag>
elements. A <feature-tag> element has two attributes: name and
policy. The name attribute identifies a method, and the policy
attribute contains the policy for that method (allowed, or
disallowed).
3.5.4. <bodies>
The <bodies> element contains a default-policy attribute, a default-
encryption attribute and <body-disposition> elements. The default-
policy attribute contains the policy for body dispositions that are
not listed as <body-disposition> elements. The default-encryption
attribute contains the encryption policy for body dispositions that
are not listed as <body-disposition> elements.
A <body-disposition> element can have a number of attributes: name,
policy, default-policy, and encryption. The name attribute
identifies a body-disposition, and the policy attribute contains the
policy for that body-disposition (allowed, or disallowed). The
default-policy attribute contains the policy for body formats that
are not listed as <body-format> elements. The encryption attribute
indicates whether or not encryption is allowed for a particular body
disposition.
A <body-disposition> element contains <body-format> elements. A
body-format element can have a two attributes: name and policy. The
name attribute identifies a <body-format>, and the policy attribute
contains the policy for that body-format (allowed or disallowed).
3.6. <floor-information> 3.6. <floor-information>
The <floor-information> element has the <allow-floor-events>, <floor- The <floor-information> element has the <allow-floor-events>, <floor-
request-handling>, and the <conference-floor-policy> child elements. request-handling>, and the <conference-floor-policy> child elements.
Other elements from different namespaces MAY be present for the Other elements from different namespaces MAY be present for the
purposes of extensibility. This element has its own XML namespace. purposes of extensibility. This element has its own XML namespace.
The absence of this namespace and its elements from an XML document The absence of this namespace and its elements from an XML document
indicates that the conference does not have a floor. indicates that the conference does not have a floor.
The <allow-floor-events> element represents a boolean action. If set The <allow-floor-events> element represents a boolean action. If set
skipping to change at page 18, line 45 skipping to change at page 16, line 27
Note that placing a value of block for this element does not Note that placing a value of block for this element does not
guarantee that a participant is blocked from joining the conference. guarantee that a participant is blocked from joining the conference.
Any other rule that might evaluate to true for this participant that Any other rule that might evaluate to true for this participant that
carried an action whose value was higher than block would carried an action whose value was higher than block would
automatically grant confirm/allow permission to that participant. automatically grant confirm/allow permission to that participant.
The <conference-floor-policy> element is mandatory and contains the The <conference-floor-policy> element is mandatory and contains the
required boolean attribute that indicates if the floor is moderator required boolean attribute that indicates if the floor is moderator
controlled or not. One or more <Floor> elements can appear in the controlled or not. One or more <Floor> elements can appear in the
<conference-floor-policy> element. Every floor is defined using the <conference-floor-policy> element. Every floor is defined using the
'label' attribute. The number of those elements indicates how many 'label' attribute. If the <available-media> information is included
floors the conference can have. A floor can be used for one or more in the conference document, the value of this attribute MUST be equal
media types; the mandatory <Media-types> element can contain zero or to the 'label' value of the corresponding media stream <entry> in the
more of the <Video>, <Audio>, <Application>, <Data> ,<Control>, <available-media> container. The number of those elements indicates
<Message>, and <text> elements indicating the media of the floor. how many floors the conference can have. A floor can be used for one
One type of media can only appear once. Other media types can be or more media types; the mandatory <Media-types> element can contain
defined by extensions. 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 A floor can be controlled using many algorithms; the mandatory
<Algorithm> element MUST contain one and only of the <Moderator- <Algorithm> element MUST contain one and only of the <Moderator-
controlled>, <FCFS>, and <Random> elements indicating the algorithm. controlled>, <FCFS>, and <Random> elements indicating the algorithm.
The <Max-floor-users> element in the <Floor> element is optional and, The <Max-floor-users> element in the <Floor> element is optional and,
if present, dictates the maximum number of users who can have the if present, dictates the maximum number of users who can have the
floor at one time. The optional <Moderator-URI> indicates the URI of floor at one time. The optional <Moderator-URI> indicates the URI of
the moderator. It MUST be set if the attribute moderator-controlled the moderator. It MUST be set if the attribute moderator-controlled
is set to "true". is set to "true".
skipping to change at page 20, line 15 skipping to change at page 17, line 48
description> in the future. description> in the future.
3.7.1. <allowed-users-list> 3.7.1. <allowed-users-list>
The <allowed-users-list> child element contains a list of user URIs, The <allowed-users-list> child element contains a list of user URIs,
PSTN phone numbers, roles, or domains (*@example.com) that the focus PSTN phone numbers, roles, or domains (*@example.com) that the focus
uses to determine who can join the conference, who can invite to join uses to determine who can join the conference, who can invite to join
a conference, or who the focus needs to "refer to" the conference. a conference, or who the focus needs to "refer to" the conference.
The <allowed-users-list> element includes zero or more <target> child The <allowed-users-list> element includes zero or more <target> child
element. This child element includes the mandatory 'uri' attribute element. This child element includes the mandatory 'uri' attribute
and the mandatory 'method' attribute. The 'method' attribute is a and the mandatory 'method' attribute. The same 'uri' attribute with
list with the following values: "dial-in", "dial-out, and "refer". different method values can appear in the list more than once. The
The value "dial-in" is used by the focus to determine who can join 'method' attribute is a list with the following values: "dial-in",
the conference. Value "dial-out" is used by the focus to determine "dial-out, and "refer". The value "dial-in" is used by the focus to
who to invite to join the conference. Value "refer" is used by the determine who can join the conference. Value "refer" is used by the
focus to determine the resources that the focus needs to "refer to" focus to determine the resources that the focus needs to "refer to"
the conference. In SIP, this is achieved by the focus sending a the conference. In SIP, this is achieved by the focus sending a
REFER request to those potential participants. In a different REFER request to those potential participants. In a different
paradigm, this could also mean that the focus sends an SMS or an paradigm, this could also mean that the focus sends an SMS or an
email to the referred user. This list can be updated during the email to the referred user. This list can be updated during the
conference lifetime so it can be used for mid-conference refers as conference lifetime so it can be used for mid-conference refers as
well. well.
The "refer" value differs from the "dial-out" in that the dial-out The "refer" value differs from the "dial-out" in that the dial-out
contains a list of resources that the focus will initiate a session contains a list of resources that the focus will initiate a session
with. The resources on the "refer" value, on the other hand, are with. The resources on the "refer" value, on the other hand, are
expected to initiate the session establishment towards the focus expected to initiate the session establishment towards the focus
themselves. It is also envisioned that difference users will have themselves. It is also envisioned that difference users will have
different access rights to those lists and therefore a separation different access rights to those lists and therefore a separation
between the two is needed. between the two is needed.
3.7.2. <privileges-control-list> 3.7.2. <privileges-control-list>
The <privileges-control-list> refers to a virtual set of rights, The <privileges-control-list> refers to a virtual set of rights
permissions and limitations pertaining to operations. This element pertaining to operations. This element contains the <conference-
contains the <data-access-rights> and the <conference-rules>. rules> element.
3.7.2.1. <data-access-rights>
The <data-access-rights> element describes the read/write access
privileges for accessing the Conference Object as a whole. It is
partially described in [1]. The <data-access-rights> contains a list
of <entry> elements defined in the Conference Object. Every element
has three attributes: the attribute 'name', 'read-only', and the
attribute 'read-write'. When the conferencing server receives a
request for access to privacy-sensitive data it needs to match it
against the 'read-only' and the 'read-write' attributes. Each
attribute of each individual element is evaluated and as a result it
is determined if the user can access that element. The attributes
specify the minimum subscriber's role that can access or modify the
element of the conference. Subscribers with a lower role cannot
access or modify the element. If an element is not defined in the
<data-access-rights> then the 'read-only' attribute MUST be
interpreted as a "participant" and the 'read-write' attribute MUST be
interpreted as an "administrator" by default. It is possible to
defined only one of the attributes of the element, the other
attribute SHOULD be interpreted by default. This draft does not
define the set of possible conferencing roles.
However, it can also be the case that conflicts can occur given a
hierarchy of elements. In that case, the lower-level element
privileges predominate over the upper-level privileges element.
3.7.2.2. <conference-rules> 3.7.2.1. <conference-rules>
The <conference-rules> element is a set of <entry> child elements The <conference-rules> element is a set of <entry> child elements
with specific authorization rules that indicate who is allowed to with specific authorization rules that indicate who is allowed to
subscribe to conference-information notifications, see floors, subscribe to conference-information notifications, see floors,
request/grant floors, and so on. request/grant floors, and so on.
Every <entry> element is represent by the 'id' attribute, each of Every <entry> element is represent by the 'id' attribute, each of
which identifies a rule inside the conference. It contains the which identifies a rule inside the conference. It contains the
<condition> and <actions> sub elements. <condition> and <actions> sub elements.
3.7.2.2.1. <condition> 3.7.2.1.1. <condition>
The <condition> element determines whether a particular privilege The <condition> element determines whether a particular privilege
applies to a user, a role, or domain. applies to a user, a role, or domain.
The <condition> element has the <identity> and the <validity> child The <condition> element has the <identity> and the <validity> child
element. These elements MUST NOT appear more than once in the element. These elements MUST NOT appear more than once in the
condition part of a single rule. condition part of a single rule.
The <identity> element restricts matching of a rule either to a The <identity> element restricts matching of a rule either to a
single entity or a group of entities. The <identity> element has the single entity or a group of entities. The <identity> element has the
<one> and <many> child elements defined in Section 7.1 of [9]. The <one> and <many> child elements defined in Section 7.1 of [8]. The
absence of the <identity> element in a <condition> element indicates absence of the <identity> element in a <condition> element indicates
that the privilege applies to all unauthenticated identities. that the privilege applies to all unauthenticated identities.
The <identity> element has other child elements. These child The <identity> element has other child elements. These child
elements are <external-list>, <pseudonymous>, <has-been-referred>, elements are <pseudonymous>, <has-been-referred>, <has-been-invited>,
<has-been-invited>, <has-been-in-conference>, <is-in-conference>, <has-been-in-conference>, <is-in-conference>, <administrator>, <is-
<administrator>, <is-on-allowed-users-list-dial-out>, <is-on-allowed- on-allowed-users-list-dial-out>, <is-on-allowed-users-list-refer>,
users-list-refer>, <participant-passcode>, and <administrator- <participant-passcode>, and <administrator-passcode>.
passcode>.
The <validity> element expresses the validity period of the rule with The <validity> element expresses the validity period of the rule with
a starting and an ending time. The <validity> element and its child a starting and an ending time. The <validity> element and its child
elements ,<from> and <until>, are defined in section 7.3 of [9]. elements ,<from> and <until>, are defined in section 7.3 of [8].
3.7.2.2.1.1. <external-list>
The <external-list> element can be used to match those participants
that are part of a resource list that is created externally. The
<external-list> element contains a list of <except> elements and
allows to implement a simple blacklist mechanism. The <except>
element contains an identity.
3.7.2.2.1.2. <pseudonymous> 3.7.2.1.2. <pseudonymous>
The <pseudonymous> element is used to match participants that have The <pseudonymous> element is used to match participants that have
provided an authenticated identity to the conference focus, but have provided an authenticated identity to the conference focus, but have
requested pseudonymity in the conference itself. A user requests requested pseudonymity in the conference itself. A user requests
pseudonymity by authenticating himself to the conference focus and pseudonymity by authenticating himself to the conference focus and
providing a pseudonym in the signalling protocol (for example, using providing a pseudonym in the signalling protocol (for example, using
the From-header of a SIP request). the From-header of a SIP request).
The <pseudonymous> element can be combined with the <identity> The <pseudonymous> element can be combined with the <identity>
element to provide the focus with a rule on what to do when a element to provide the focus with a rule on what to do when a
specific identity is authenticated and that identity is requesting specific identity is authenticated and that identity is requesting
pseudonymity through the signalling protocol. pseudonymity through the signalling protocol.
3.7.2.2.1.3. <has-been-referred> 3.7.2.1.3. <has-been-referred>
The <has-been-referred> element can be used to match those The <has-been-referred> element can be used to match those
participants that the focus has referred to the conference. participants that the focus has referred to the conference.
3.7.2.2.1.4. <has-been-invited> 3.7.2.1.4. <has-been-invited>
The <has-been-invited> element can be used to match those The <has-been-invited> element can be used to match those
participants that the focus has invited into the conference. participants that the focus has invited into the conference.
3.7.2.2.1.5. <has-been-in-conference> 3.7.2.1.5. <has-been-in-conference>
The <has-been-in-conference> element can be used to match those The <has-been-in-conference> element can be used to match those
participants that have joined the conference in the past. participants that have joined the conference in the past.
3.7.2.2.1.6. <is-in-conference> 3.7.2.1.6. <is-in-conference>
The <is-in-conference> element can be used to match those The <is-in-conference> element can be used to match those
participants that are currently participating in the conference. participants that are currently participating in the conference.
3.7.2.2.1.7. <administrator> 3.7.2.1.7. <administrator>
The <administrator> element can be used to match those participants The <administrator> element can be used to match those participants
that are administrators of a conference. that are administrators of a conference.
3.7.2.2.1.8. <is-on-allowed-users-list-dial-out> 3.7.2.1.8. <is-on-allowed-users-list-dial-out>
The <is-on-allowed-users-list-dial-out> element can be used to match The <is-on-allowed-users-list-dial-out> element can be used to match
those participants that are on the allowed-users-list with the method those participants that are on the allowed-users-list with the method
dial-out. dial-out.
3.7.2.2.1.9. <is-on-allowed-users-list-refer> 3.7.2.1.9. <is-on-allowed-users-list-refer>
The <is-on-allowed-users-list-refer> element can be used to match The <is-on-allowed-users-list-refer> element can be used to match
those participants that are on the allowed-users-list with the method those participants that are on the allowed-users-list with the method
refer. refer.
3.7.2.2.1.10. <participant-passcode> 3.7.2.1.10. <participant-passcode>
The <participant-passcode> element can be used to match those The <participant-passcode> element can be used to match those
participants that have knowledge of a passcode for the conference participants that have knowledge of a passcode for the conference
(PIN code). (PIN code).
A focus need not care if a user using a passcode to join is calling A focus need not care if a user using a passcode to join is calling
from a PSTN or an IP phone. For example: Using a SIP phone, a SIP from a PSTN or an IP phone. For example: Using a SIP phone, a SIP
INVITE request arrives directly at the focus. The focus examines the INVITE request arrives directly at the focus. The focus examines the
identity and discovers that there are no rules allowing this identity identity and discovers that there are no rules allowing this identity
to join. The focus also determines that there are no rules to join. The focus also determines that there are no rules
skipping to change at page 24, line 5 skipping to change at page 20, line 47
the rules allowing or denying the identity access. In this case, the the rules allowing or denying the identity access. In this case, the
identity is the GW. If no rules exist for that identity but a identity is the GW. If no rules exist for that identity but a
general passcode rule does, then the focus would challenge the GW/IVR general passcode rule does, then the focus would challenge the GW/IVR
for the passcode. for the passcode.
A focus can challenge for the passcode using, for example, a HTTP A focus can challenge for the passcode using, for example, a HTTP
Digest challenge. The username, passcode and realm need to be Digest challenge. The username, passcode and realm need to be
assigned and distributed is a manner that is outside the scope of assigned and distributed is a manner that is outside the scope of
this document. Mutliple passcodes can be assigned to multiple users. this document. Mutliple passcodes can be assigned to multiple users.
3.7.2.2.1.11. <administrators-passcode> 3.7.2.1.11. <administrators-passcode>
In some cases, administrators of the conference are assigned a In some cases, administrators of the conference are assigned a
different passcode than normal participants. The <administrator- different passcode than normal participants. The <administrator-
passcode> element can be used to match those key participants that passcode> element can be used to match those key participants that
have knowledge on a key participant passcode for the conference. have knowledge on a key participant passcode for the conference.
Again, a focus need not care if a user using a passcode to join is Again, a focus need not care if a user using a passcode to join is
calling from a PSTN or an IP phone. It is important that the focus calling from a PSTN or an IP phone. It is important that the focus
has a unique identity for each user joining from a PSTN phone via a has a unique identity for each user joining from a PSTN phone via a
gateway. It is not enough that one identity to be assigned to all gateway. It is not enough that one identity to be assigned to all
users joining from the same gateway since administrators have more users joining from the same gateway since administrators have more
control over conference duration. It might be required that a control over conference duration. It might be required that a
gateway maps the telephone number of the PSTN phone into the IP gateway maps the telephone number of the PSTN phone into the IP
signalling protocol header that usually carries the asserted identity signalling protocol header that usually carries the asserted identity
or a user. or a user.
3.7.2.2.2. <actions> 3.7.2.2. <actions>
The <actions> element in the applied rule is a positive grant of The <actions> element in the applied rule is a positive grant of
permission to the conference data model or the conferencing system. permission to the conference data model or the conferencing system.
The <actions> element has the following operations: The <actions> element has the following operations:
o The <allow-refer-users-dynamically> element represents a boolean o The <allow-refer-users-dynamically> element represents a boolean
action. If set to TRUE, the identity is allowed to instruct the action. If set to TRUE, the identity is allowed to instruct the
focus to refer a user to the conference without modifying the focus to refer a user to the conference without modifying the
allowed-users-list (in SIP terms, the identity is allowed to send allowed-users-list (in SIP terms, the identity is allowed to send
a REFER request to the focus which results in the focus sending a a REFER request to the focus which results in the focus sending a
REFER request to the user the referrer wishes to join the REFER request to the user the referrer wishes to join the
skipping to change at page 25, line 45 skipping to change at page 22, line 40
identity is present in the conditions. identity is present in the conditions.
o The <read-write> element represents a boolean action. If set to o The <read-write> element represents a boolean action. If set to
TRUE, the identity is allowed to modify the element described TRUE, the identity is allowed to modify the element described
inside the 'element' attribute in the conference policy. If set inside the 'element' attribute in the conference policy. If set
to FALSE, any modifications to the element are rejected. to FALSE, any modifications to the element are rejected.
o The <read-only> element represents a boolean action. If set to o The <read-only> element represents a boolean action. If set to
TRUE, the identity is allowed to read the element described inside TRUE, the identity is allowed to read the element described inside
the 'element' attribute in the conference policy. If set to the 'element' attribute in the conference policy. If set to
FALSE, any attempts to read the element are rejected. FALSE, any attempts to read the element are rejected.
3.7.3. <user> 3.8. <user>
The element <user> describes a single participant in the conference. The element <user> describes a single participant in the conference.
The following elements as well as the attributes of <user> are The following elements as well as the attributes of <user> are
defined in [2], section 5.6: <display-text>, <associated-aors>, defined in [2], section 5.6: <display-text>, <associated-aors>,
<roles>, <languages>, <cascaded-focus>, and <endpoint>. <roles>, <languages>, <cascaded-focus>, and <endpoint>.
The <provide-anonymity> provides anonymity to the user. When a user The <provide-anonymity> provides anonymity to the user. When a user
is defined then the role must be defined or set to "participant" by is defined then the role must be defined or set to "participant" by
default. This specification does not define the set of possible default. This specification does not define the set of possible
conferencing roles nor the semantics associated with each. conferencing roles nor the semantics associated with each.
The <sphere> element can be used to indicate the state (e.g., 'work', The <sphere> element can be used to indicate the state (e.g., 'work',
'home', 'meeting', 'travel') the user is currently in. It is defined 'home', 'meeting', 'travel') the user is currently in. It is defined
in section 7.2 of [9]. in section 7.2 of [8].
The <allow-refer-users-dynamically>, <allow-invite-users-dynamically> The <allow-refer-users-dynamically>, <allow-invite-users-dynamically>
and <allow-remove-users-dynamically> elements are defined in the and <allow-remove-users-dynamically> elements are defined in the
previous section. previous section.
The <floors> element is a container of <entry> child elements, each
describing a floor that joins this participant in the conference.
The <entry> element has the <show-floor-holder> and the <show-floor-
requests> child element. The <entry> child elements is represent by
the 'id' attribute, each of which identifies a floor inside the
conference.
The <endpoint> element is under a <user> parent. This element can The <endpoint> element is under a <user> parent. This element can
provide the desired level of detail about the user's devices and provide the desired level of detail about the user's devices and
signaling sessions taking part in the conference and has the signaling sessions taking part in the conference and has the
following child elements defined in [2]: <display-text>, <referred>, following child elements defined in [2]: <display-text>, <referred>,
<status>, <joining-method>, <joining-info>, <disconnection-method>, <status>, <joining-method>, <joining-info>, <disconnection-method>,
<disconnection-info>, <media>, and <call-info>. The <endpoint> <disconnection-info>, <media>, and <call-info>. The <endpoint>
element has as well two other child elements: <to_mixer>, and element has as well two other child elements: <to-mixer>, and <from-
<from_mixer> child element described in the following section. mixer> child element described in the following section.
3.7.3.1. from_mixer, to_mixer 3.8.1. from-mixer, to-mixer
Similarly that the controls defined in the <available-media> element, Similarly that the controls defined in the <available-media> element,
controls that apply to a particular user appear at this place in the controls that apply to a particular user appear at this place in the
document. The <to_mixer> element details properties associated with document. The <to-mixer> element details properties associated with
the incoming streams to the mixer. <from_mixer> element details the incoming streams to the mixer. <from-mixer> element details
properties associated with the outgoing streams from the mixer. BOth properties associated with the outgoing streams from the mixer. Both
of these elements have the attribute 'name'. 'Name' attribute has of these elements have the attribute 'name'. 'Name' attribute has
the values "VideoIn", "Videoout", "AudioOut", and "AudioIn". The the values "VideoIn", "VideoOut", "AudioOut", and "AudioIn". The
"VideoOut" and "AudioOut" media streams detail properties associated "VideoOut" and "AudioOut" media streams detail properties associated
with the outgoing video and audio from the mixer. The "VideoIn" and with the outgoing video and audio from the mixer. The "VideoIn" and
"AudioIn" media stream details properties associated with the "AudioIn" media stream details properties associated with the
incoming video and audio to the mixer. More values can be defined in incoming video and audio to the mixer. More values can be defined in
the future. the future.
Every of these elements have the <floor> and <controls> child Every of these elements have the <floor> and <controls> child
elements. The <controls> child elements defined the same elements elements.
described in section 3.2.7 and some new ones.
3.7.3.1.1. <floor>
If a participant, for instance, needs to talk in the conference, it
first needs to get a floor from the moderator of the conference. The
floor control can be enabled or disabled by the moderator during the
conference creation stage. When the floor control is not enabled
then any participant can speak in the conference at any time. In
this conference very basic controls like muting or pausing the output
stream, changing the volume of the output stream are provided to end
participants. The <floor> element consists of the following
attributes:
floor_id: Uniquely identifies the floor within the context of this
template and has a value of '1'.
instances: Value of '1' implies only one occurrence of this floor at
any one time.
enable: A value of 'false' indicates that this floor is not enabled
by default.
value: A value of false specifies that the instance represented by
this template does not have control of the floor.
3.7.3.1.2. <gain>
The 'gain' control is used in conjunction with a media output stream
to indicate the amount of amplification of an audio stream. It has a
'Int' number value from -127 to 127. The control consists of the
following attributes:
type: The 'gain' control has a type of 'Int'.
name: The control is named 'gain'.
enable: The enable attribute specifies if access to the control is
available to the client.
The Control also consists of the following additional elements: 3.8.1.1. <floor>
value: Indicates the default value for the 'gain' control when not The <floors> element describes a floor that joins this participant in
set. the conference. If a participant, for instance, needs to talk in the
conference, it first needs to get a floor from the moderator of the
conference.
display-text: Provides a Control label that can be rendered to the The <floor> element has a 'Boolen' value. A value of 'false'
client. indicates that this user does not hold the floor in this moment. If
this control is not specify, this user SHOULD not specify the floor
option.
3.8. <sidebars-by-ref> 3.9. <sidebars-by-ref>
The <sidebars-by-ref> element contains a set of <entry> child The <sidebars-by-ref> element contains a set of <entry> child
elements. Each <entry> child element contains a <user> child element elements. Each <entry> child element contains a <user> child element
with a sidebar conference unique identifier and a <display-text> with a sidebar conference unique identifier and a <display-text>
child element. The <sidebars-by-ref> element is described in Section child element. The <sidebars-by-ref> element is described in Section
5.9.1 of [2]. 5.9.1 of [2].
Notice that the <sidebars-by-ref> child element does not include the Notice that the <sidebars-by-ref> child element does not include the
attribute 'state' defined in [2]. attribute 'state' defined in [2].
3.9. <sidebars-by-val> 3.10. <sidebars-by-val>
The <sidebars-by-val> element contains a set of <entry> child The <sidebars-by-val> element contains a set of <entry> child
elements each containing information about a single sidebar. elements each containing information about a single sidebar.
Notice as well that the <sidebars-by-val> and the <entry> child Notice as well that the <sidebars-by-val> and the <entry> child
element do not include the attribute 'state' defined in [2]. element do not include the attribute 'state' defined in [2].
4. XML Schema 4. RELAX NG schema
In accordance with the XCON framework document [1], the Conference In accordance with the XCON framework document [1], the Conference
Object is a logical representation of a conference instance. The Object is a logical representation of a conference instance. The
common conference information schema contains core information that common conference information schema contains core information that
is utilized in any conference. It also contains the variable is utilized in any conference. It also contains the variable
information part of the Conference Object. information part of the Conference Object.
This specification makes use of XML namespaces for identifying common This specification defines some document fragments in RELAX NG
conference information documents and document fragments. The format.
namespace URI for elements defined by this specification is a URN:
urn:ietf:params:xml:ns:common-conference-schema.
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns="urn:ietf:params:xml:ns:common-conference-schema" <grammar xmlns="http://relaxng.org/ns/structure/1.0"
xmlns:info="urn:ietf:params:xml:ns:conference-info" xmlns:xs="http://relaxng.org/ns/compatibility/annotations/1.0"
xmlns:compol="urn:ietf:params:xml:ns:common-policy" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
xmlns:role="urn:ietf:params:xml:ns:role-schema" <start>
xmlns:xs="http://www.w3.org/2001/XMLSchema" <ref name="conference-type"/>
targetNamespace="urn:ietf:params:xml:ns:common-conference-schema" elementFormDefault="qualified" attributeFormDefault="unqualified"> </start>
<xs:import namespace="urn:ietf:params:xml:ns:conference-info" schemaLocation="C:\DOCUME~1\eoscdia\Desktop\conference-info.xsd" />
<xs:import namespace="urn:ietf:params:xml:ns:common-policy" schemaLocation="C:\DOCUME~1\eoscdia\Desktop\common-policy.xsd" />
<xs:import namespace="urn:ietf:params:xml:ns:role-schema" schemaLocation="C:\DOCUME~1\eoscdia\Desktop\role-schema.xsd" />
<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/03/xml.xsd"/>
<!--
CONFERENCE INFO
-->
<xs:element name="conference-info" type="conference-type"/>
<!-- <!--
CONFERENCE TYPE CONFERENCE TYPE
--> -->
<xs:complexType name="conference-type">
<xs:sequence> <define name="conference-type">
<xs:element name="conference-description" type="conference-description-type"/> <element name="conference-info">
<xs:element name="host-info" type="host-type"/> <ref name="role-type"/>
<xs:element name="conference-state" type="conference-state-type"/> <zeroOrMore>
<xs:element name="security-mechanism" type="security-mechanisms-type" minOccurs="0"/> <ref name="conference-description-type"/>
<xs:element name="floor-information" type="floor-information-type" minOccurs="0"/> <element name="host-info">
<xs:element name="users" type="users-type"/> <ref name="host-type"/>
<xs:element name="sidebars-by-ref" type="sidebars-by-ref-type" minOccurs="0"/> </element>
<xs:element name="sidebars-by-val" type="sidebars-by-val-type" minOccurs="0"/> <element name="conference-state">
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> <ref name="conference-state-type"/>
</xs:sequence> </element>
</xs:complexType> <element name="floor-information">
<ref name="floor-information-type"/>
</element>
<element name="users">
<ref name="user-type"/>
</element>
<element name="sidebars-by-ref">
<ref name="sidebars-by-ref-type"/>
</element>
<element name="sidebars-by-val">
<ref name="sidebars-by-val-type"/>
</element>
</zeroOrMore>
</element>
</define>
<!-- <!--
CONFERENCE DESCRIPTION TYPE CONFERENCE DESCRIPTION TYPE
--> -->
<xs:complexType name="conference-description-type"> <define name="conference-description-type">
<xs:sequence> <element name="conference-description">
<xs:element name="display-text" type="xs:string" minOccurs="0"/> <ref name="role-type"/>
<xs:element name="subject" type="xs:string" minOccurs="0"/> <optional>
<xs:element name="free-text" type="xs:string" minOccurs="0"/> <element name="display-text">
<xs:element name="keywords" type="info:keywords-type" minOccurs="0"/> <text/>
<xs:element name="webpage" type="xs:anyURI" minOccurs="0"/> </element>
<xs:element name="security-level" type="SecurityLevel" minOccurs="0"/> <element name="subject">
<xs:element name="allow-sidebars" type="xs:boolean" default="true" minOccurs="0"/> <text/>
<xs:element name="conference-stage" type="conference-stage-type"/> </element>
<xs:element name="conference-time" type="conferencetime-type" minOccurs="0"/> <element name="free-text">
<xs:element name="conf-uris" type="uris-type" minOccurs="0"/> <text/>
<xs:element name="service-uris" type="uris-type" minOccurs="0"/> </element>
<xs:element name="maximum-user-count" type="maximum-user-count-type" minOccurs="0"/> <element name="keywords">
<xs:element name="available-media" type="conference-media-type"/> <list>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> <data type="string"/>
</xs:sequence> </list>
<xs:anyAttribute namespace="##other" processContents="lax"/> </element>
</xs:complexType> <element name="webpage">
<data type="anyURI"/>
</element>
<element name="security-level">
<ref name="SecurityLevel"/>
</element>
<element name="allow-sidebars">
<data type="boolean"/>
</element>
<element name="conference-stage">
<ref name="conference-stage-type"/>
</element>
<element name="conference-time">
<ref name="conferencetime-type"/>
</element>
<element name="conf-uris">
<ref name="uris-type"/>
</element>
<element name="service-uris">
<ref name="uris-type"/>
</element>
<element name="maximum-user-count">
<ref name="maximum-user-count-type"/>
</element>
<element name="maximum-streams">
<ref name="maximum-streams-type"/>
</element>
<element name="available-media">
<ref name="conference-media-type"/>
</element>
</optional>
<xs:any/>
</element>
</define>
<!-- <!--
SECURITY LEVEL SECURITY LEVEL
--> -->
<xs:simpleType name="SecurityLevel"> <define name="SecurityLevel">
<xs:restriction base="xs:string"> <choice>
<xs:enumeration value="none"/> <value type="string">none</value>
<xs:enumeration value="low"/> <value type="string">low</value>
<xs:enumeration value="medium"/> <value type="string">medium</value>
<xs:enumeration value="high"/> <value type="string">high</value>
</xs:restriction> </choice>
</xs:simpleType> </define>
<!-- <!--
CONFERENCE STAGE CONFERENCE STAGE
--> -->
<xs:simpleType name="conference-stage-type"> <define name="conference-stage-type">
<xs:restriction base="xs:string"> <choice>
<xs:enumeration value="reserved"/> <value type="string">reserved</value>
<xs:enumeration value="started"/> <value type="string">started</value>
<xs:enumeration value="running"/> <value type="string">running</value>
<xs:enumeration value="ended"/> <value type="string">ended</value>
</xs:restriction> </choice>
</xs:simpleType> </define>
<!-- <!--
CONFERENCE TIME CONFERENCE TIME
--> -->
<xs:complexType name="conferencetime-type"> <define name="conferencetime-type">
<xs:sequence> <ref name="role-type"/>
<xs:element name="entry" minOccurs="0" maxOccurs="unbounded"> <zeroOrMore>
<xs:complexType> <element name="entry">
<xs:sequence> <optional>
<xs:element name="base" type="xs:string"/> <element name="base">
<xs:element name="mixing-start-offset" type="xs:integer" minOccurs="0"/> <text/>
<xs:element name="mixing-stop-offset" type="xs:integer" minOccurs="0"/> </element>
<xs:element name="can-join-after-offset" type="xs:integer" minOccurs="0"/> <element name="mixing-start-offset">
<xs:element name="must-join-before-offset" type="xs:integer" minOccurs="0"/> <data type="int"/>
<xs:element name="request-users" type="xs:integer" minOccurs="0"/> </element>
<xs:element name="notify-end-of-conference" type="xs:integer" minOccurs="0"/> <element name="mixing-stop-offset">
<xs:element name="allowed-extend-mixing-end-offset" type="xs:boolean" default="true" minOccurs="0"/> <data type="int"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0"/> </element>
</xs:sequence> <element name="can-join-after-offset">
</xs:complexType> <data type="int"/>
</xs:element> </element>
</xs:sequence> <element name="must-join-before-offset">
</xs:complexType> <data type="int"/>
</element>
<element name="request-users">
<data type="int"/>
</element>
<element name="notify-end-of-conference">
<data type="int"/>
</element>
<element name="allowed-extend-mixing-end-offset">
<data type="boolean"/>
</element>
</optional>
</element>
</zeroOrMore>
</define>
<!-- <!--
URIS TYPE URIS TYPE
--> -->
<xs:complexType name="uris-type"> <define name="uris-type">
<xs:sequence> <ref name="role-type"/>
<xs:element name="SIP" type="uri-type" maxOccurs="unbounded"/> <oneOrMore>
<xs:element name="H323" type="H323-type" maxOccurs="unbounded"/> <element name="SIP">
<xs:element name="PSTN-ISDN" type="PSTN-type" maxOccurs="unbounded"/> <ref name="uri-type"/>
<xs:element name="BFCP" type="BFCP-type" maxOccurs="unbounded"/> </element>
</xs:sequence> <element name="H323">
</xs:complexType> <ref name="H323-type"/>
</element>
<element name="PSTN-ISDN">
<ref name="PSTN-type"/>
</element>
<element name="BFCP">
<ref name="BFCP-type"/>
</element>
</oneOrMore>
</define>
<!-- <!--
SIP TYPE SIP TYPE
--> -->
<xs:complexType name="uri-type"> <define name="uri-type">
<xs:sequence> <ref name="role-type"/>
<xs:element name="uri" type="xs:anyURI"/> <oneOrMore>
<xs:element name="display-text" type="xs:string" minOccurs="0"/> <element name="uri">
<xs:element name="purpose" type="xs:string" minOccurs="0"/> <data type="anyURI"/>
<xs:element name="PIN-code" type="xs:integer" minOccurs="0"/> </element>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> <zeroOrMore>
</xs:sequence> <element name="display-text">
<xs:anyAttribute namespace="##other" processContents="lax"/> <text/>
</xs:complexType> </element>
<element name="purpose">
<text/>
</element>
<element name="PIN-code">
<data type="int"/>
</element>
</zeroOrMore>
</oneOrMore>
</define>
<!-- <!--
H323 TYPE H323 TYPE
--> -->
<xs:complexType name="H323-type"> <define name="H323-type">
<xs:sequence> <ref name="role-type"/>
<xs:element name="H.323-alias" type="xs:string" minOccurs="0"/> <zeroOrMore>
<xs:element name="H.323-URI" type="xs:anyURI"/> <element name="H.323-alias">
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> <text/>
</xs:sequence> </element>
<xs:anyAttribute namespace="##other" processContents="lax"/> <element name="H.323-URI">
</xs:complexType> <data type="anyURI"/>
</element>
</zeroOrMore>
</define>
<!-- <!--
PSTN TYPE PSTN TYPE
--> -->
<xs:complexType name="PSTN-type"> <define name="PSTN-type">
<xs:sequence> <ref name="role-type"/>
<xs:element name="phone-number" type="xs:unsignedInt" minOccurs="0"/> <attribute name="PIN-code">
<xs:element name="rate" type="xs:unsignedInt" minOccurs="0"/> <text/>
</xs:sequence> </attribute>
<xs:attribute name="PIN-code" type="xs:string" use="required"/> <attribute name="purpose">
<xs:attribute name="purpose" type="xs:string"/> <text/>
</xs:complexType> </attribute>
<zeroOrMore>
<element name="phone-number">
<data type="unsignedInt"/>
</element>
<element name="rate">
<data type="unsignedInt"/>
</element>
</zeroOrMore>
</define>
<!-- <!--
BFCP TYPE BFCP TYPE
--> -->
<xs:complexType name="BFCP-type"> <define name="BFCP-type">
<xs:sequence> <ref name="role-type"/>
<xs:element name="conference-id" type="xs:unsignedInt" minOccurs="0"/> <zeroOrMore>
</xs:sequence> <element name="conference-id">
<xs:anyAttribute namespace="##other" processContents="lax"/> <data type="unsignedInt"/>
</xs:complexType> </element>
</zeroOrMore>
</define>
<!-- <!--
MAXIMUM USER TYPE MAXIMUM USER TYPE
--> -->
<xs:complexType name="maximum-user-count-type"> <define name="maximum-user-count-type">
<xs:sequence> <ref name="role-type"/>
<xs:element name="entry" type="xs:unsignedInt" minOccurs="0"/> <xs:attribute name="role">
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> <ref name="single-role-type"/>
</xs:sequence> </xs:attribute>
<xs:attribute name="role" type="role:role-type" use="required"/> <zeroOrMore>
<xs:anyAttribute namespace="##other" processContents="lax"/> <element name="entry">
</xs:complexType> <data type="unsignedInt"/>
</element>
</zeroOrMore>
</define>
<!--
MAXIMUM STREAM TYPE
-->
<define name="maximum-streams-type">
<ref name="role-type"/>
<zeroOrMore>
<element name="entry">
<ref name="role-type"/>
<attribute name="type">
<ref name="media-stream-type"/>
</attribute>
<attribute name="min">
<data type="positiveInteger"/>
</attribute>
<attribute name="max">
<data type="positiveInteger"/>
</attribute>
</element>
</zeroOrMore>
</define>
<!--
MEDIA TYPES
-->
<define name="media-stream-type">
<choice>
<value type="string">audio</value>
<value type="string">video</value>
</choice>
</define>
<!-- <!--
CONFERENCE MEDIA TYPE CONFERENCE MEDIA TYPE
--> -->
<xs:complexType name="conference-media-type"> <define name="conference-media-type">
<xs:sequence> <ref name="role-type"/>
<xs:element name="entry" type="conference-medium-type" maxOccurs="unbounded"/> <attribute name="label">
</xs:sequence> <text/>
<xs:attribute name="label" type="xs:string" use="required"/> </attribute>
<xs:anyAttribute namespace="##other" processContents="lax"/> <zeroOrMore>
</xs:complexType> <element name="entry">
<ref name="conference-medium-type"/>
</element>
</zeroOrMore>
</define>
<!-- <!--
CONFERENCE MEDIUM TYPE CONFERENCE MEDIUM TYPE
--> -->
<xs:complexType name="conference-medium-type"> <define name="conference-medium-type">
<xs:sequence> <ref name="role-type"/>
<xs:element name="type" type="xs:string"/> <attribute name="label">
<xs:element name="display-text" type="xs:string" minOccurs="0"/> <text/>
<xs:element name="status" type="info:media-status-type" minOccurs="0"/> </attribute>
<xs:element name="mixing-mode" type="mix-mode-type" minOccurs="0"/> <zeroOrMore>
<xs:element name="mix level" type="xs:unsignedInt" minOccurs="0"/> <element name="type">
<xs:element name="codecs" type="codecs-type" minOccurs="0"/> <text/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </element>
</xs:sequence> <element name="display-text">
<xs:attribute name="label" type="xs:string" use="required"/> <text/>
<xs:anyAttribute namespace="##other" processContents="lax"/> </element>
</xs:complexType> <element name="status">
<ref name="media-status-type"/>
</element>
<element name="mixing-mode">
<ref name="mix-mode-type"/>
</element>
<element name="mix-level">
<data type="unsignedInt"/>
</element>
<element name="codecs">
<ref name="codecs-type"/>
</element>
<element name="controls">
<ref name="control-type"/>
</element>
</zeroOrMore>
</define>
<!-- <!--
MIX MODE TYPE MIX MODE TYPE
--> -->
<xs:simpleType name="mix-mode-type"> <define name="mix-mode-type">
<xs:restriction base="xs:string"> <choice>
<xs:enumeration value="Moderator-controlled"/> <value type="string">Moderator-controlled</value>
<xs:enumeration value="FCFS"/> <value type="string">FCFS</value>
<xs:enumeration value="Automatic"/> <value type="string">"Automatic</value>
</xs:restriction> </choice>
</xs:simpleType> </define>
<!-- <!--
CODECS TYPE CODECS TYPE
--> -->
<xs:complexType name="codecs-type"> <define name="codecs-type">
<xs:sequence> <ref name="role-type"/>
<xs:element name="entry" type="codec-type" maxOccurs="unbounded"/> <attribute name="decision">
</xs:sequence> <ref name="decision-type"/>
<xs:attribute name="decision" type="decision-type" use="required"/> </attribute>
<xs:anyAttribute namespace="##other" processContents="lax"/> <zeroOrMore>
</xs:complexType> <element name="entry">
<ref name="codec-type"/>
</element>
</zeroOrMore>
</define>
<!-- <!--
CODEC TYPE CODEC TYPE
--> -->
<xs:complexType name="codec-type"> <define name="codec-type">
<xs:attribute name="name" type="xs:string" use="required"/> <ref name="role-type"/>
<xs:attribute name="policy" type="policy-type" use="required"/> <attribute name="name">
<xs:anyAttribute namespace="##other" processContents="lax"/> <text/>
</xs:complexType> </attribute>
<attribute name="policy">
<ref name="policy-type"/>
</attribute>
</define>
<!-- <!--
DECISION TYPE DECISION TYPE
--> -->
<xs:simpleType name="decision-type"> <define name="decision-type">
<xs:restriction base="xs:string"> <choice>
<xs:enumeration value="Automatic"/> <value type="string">Automatic</value>
<xs:enumeration value="Moderator-controlled"/> <value type="string">Moderator-controlled</value>
</xs:restriction> </choice>
</xs:simpleType> </define>
<!-- <!--
POLICY TYPE POLICY TYPE
--> -->
<xs:simpleType name="policy-type"> <define name="policy-type">
<xs:restriction base="xs:string"> <choice>
<xs:enumeration value="Allowed"/> <value type="string">Allowed</value>
<xs:enumeration value="Disallowed"/> <value type="string">Disallowed</value>
</xs:restriction> </choice>
</xs:simpleType> </define>
<!--
HOST TYPE
-->
<xs:complexType name="host-type">
<xs:sequence>
<xs:element name="display-text" type="xs:string" minOccurs="0"/>
<xs:element name="web-page" type="xs:anyURI" minOccurs="0"/>
<xs:element name="uris" type="uris-type" minOccurs="0"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<!--
CONFERENCE STATE TYPE
-->
<xs:complexType name="conference-state-type">
<xs:sequence>
<xs:element name="allow-conference-state" type="xs:boolean" minOccurs="0"/>
<xs:element name="user-count" type="xs:unsignedInt" minOccurs="0"/>
<xs:element name="active" type="xs:boolean" minOccurs="0"/>
<xs:element name="locked" type="xs:boolean" minOccurs="0"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<!--
SECURITY MECHANISMS TYPE
-->
<xs:complexType name="security-mechanisms-type">
<xs:sequence>
<xs:element name="entry-protocol" type="security-mechanism-type" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<!--
SECURITY MECHANISM TYPE
-->
<xs:complexType name="security-mechanism-type">
<xs:sequence>
<xs:element name="methods" type="methods-type" minOccurs="0"/>
<xs:element name="option-tags" type="option-tags-type" minOccurs="0"/>
<xs:element name="feature-tags" type="feature-tags-type" minOccurs="0"/>
<xs:element name="bodies" type="bodies-type" minOccurs="0"/>
<xs:element name="version" type="xs:unsignedInt" minOccurs="0"/>
<xs:element name="supported" type="xs:boolean" minOccurs="0"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<!--
METHODS TYPE
-->
<xs:complexType name="methods-type">
<xs:sequence>
<xs:element name="method" type="codec-type" minOccurs="0"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="default-policy" type="policy-type" use="required"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<!--
OPTION TAGS TYPE
-->
<xs:complexType name="option-tags-type">
<xs:sequence>
<xs:element name="option-tag" type="codec-type" minOccurs="0"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="default-policy" type="default-policy-type" use="required"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<!--
DEFAULT POLICY TYPE
-->
<xs:simpleType name="default-policy-type">
<xs:restriction base="xs:string">
<xs:enumeration value="Allowed"/>
<xs:enumeration value="Disallowed"/>
<xs:enumeration value="Mandatory"/>
</xs:restriction>
</xs:simpleType>
<!-- <!--
FEATURE TAGS TYPE CONTROL TYPE
--> -->
<xs:complexType name="feature-tags-type"> <define name="control-type">
<xs:sequence> <choice>
<xs:element name="feature-tag" type="codec-type" minOccurs="0"/> <value type="string">integer</value>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> <value type="string">real</value>
</xs:sequence> <value type="string">boolean</value>
<xs:attribute name="default-policy" type="policy-type" use="required"/> </choice>
<xs:anyAttribute namespace="##other" processContents="lax"/> </define>
</xs:complexType>
<!-- <!--
BODIES TYPE HOST TYPE
--> -->
<xs:complexType name="bodies-type"> <define name="host-type">
<xs:sequence> <ref name="role-type"/>
<xs:element name="body-disposition" type="body-type" minOccurs="0"/> <zeroOrMore>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> <element name="display-text">
</xs:sequence> <text/>
<xs:attribute name="default-policy" type="policy-type" use="required"/> </element>
<xs:attribute name="default-encryption" type="policy-type" use="required"/> <element name="web-page">
<xs:anyAttribute namespace="##other" processContents="lax"/> <data type="anyURI"/>
</xs:complexType> </element>
<element name="uris">
<ref name="uris-type"/>
</element>
</zeroOrMore>
</define>
<!-- <!--
BODY TYPE CONFERENCE STATE TYPE
--> -->
<xs:complexType name="body-type"> <define name="conference-state-type">
<xs:sequence> <ref name="role-type"/>
<xs:element name="body-format" type="codec-type" minOccurs="0"/> <zeroOrMore>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> <element name="allow-conference-state">
</xs:sequence> <data type="boolean"/>
<xs:attribute name="name" type="xs:string" use="required"/> </element>
<xs:attribute name="policy" type="policy-type" use="required"/> <element name="user-count">
<xs:attribute name="default-policy" type="policy-type" use="required"/> <data type="unsignedInt"/>
<xs:attribute name="encryption" type="policy-type" use="required"/> </element>
<xs:anyAttribute namespace="##other" processContents="lax"/> <element name="active">
</xs:complexType> <data type="boolean"/>
</element>
<element name="locked">
<data type="boolean"/>
</element>
</zeroOrMore>
</define>
<!-- <!--
FLOOR INFORMATION TYPE FLOOR INFORMATION TYPE
--> -->
<xs:complexType name="floor-information-type">
<xs:sequence> <define name="floor-information-type">
<xs:element name="allow-floor-events" type="xs:boolean" maxOccurs="unbounded"/> <ref name="role-type"/>
<xs:element name="floor-request-handling" type="floor-request-type" maxOccurs="unbounded"/> <zeroOrMore>
<xs:element name="conference-floor-policy" type="Conference-floor-policy" maxOccurs="unbounded"/> <element name="allow-floor-events">
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> <data type="boolean"/>
</xs:sequence> </element>
<xs:anyAttribute namespace="##other" processContents="lax"/> <element name="floor-request-handling">
</xs:complexType> <ref name="floor-request-type"/>
</element>
<element name="conference-floor-policy">
<ref name="Conference-floor-policy"/>
</element>
</zeroOrMore>
</define>
<!-- <!--
FLOOR REQUEST TYPE FLOOR REQUEST TYPE
--> -->
<xs:simpleType name="floor-request-type">
<xs:restriction base="xs:string"> <define name="floor-request-type">
<xs:enumeration value="block"/> <choice>
<xs:enumeration value="confirm"/> <value type="string">block</value>
</xs:restriction> <value type="string">confirm</value>
</xs:simpleType> </choice>
</define>
<!-- <!--
CONFERENCE FLOOR POLICY CONFERENCE FLOOR POLICY
--> -->
<xs:complexType name="Conference-floor-policy">
<xs:sequence> <define name="Conference-floor-policy">
<xs:element name="Floor" maxOccurs="unbounded"> <ref name="role-type"/>
<xs:complexType> <attribute name="moderator-controlled">
<xs:sequence> <data type="boolean"/>
<xs:element name="Media-types"> </attribute>
<xs:complexType> <attribute name="label">
<xs:sequence> <text/>
<xs:element name="Video" minOccurs="0"/> </attribute>
<xs:element name="Audio" minOccurs="0"/> <oneOrMore>
<xs:element name="Application" minOccurs="0"/> <element name="Floor">
<xs:element name="Data" minOccurs="0"/> <zeroOrMore>
<xs:element name="Control" minOccurs="0"/> <element name="Media-types">
<xs:element name="Message" minOccurs="0"/> <ref name="role-type"/>
<xs:element name="Text" minOccurs="0"/> <zeroOrMore>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> <element name="Video">
</xs:sequence> <empty/>
</xs:complexType> </element>
</xs:element> <element name="Audio">
<xs:element name="Algorithm"> <empty/>
<xs:complexType> </element>
<xs:sequence> <element name="Application">
<xs:element name="Moderator-controlled" minOccurs="0"/> <empty/>
<xs:element name="FCFS" minOccurs="0"/> </element>
<xs:element name="Random" minOccurs="0"/> <element name="Data">
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> <empty/>
</xs:sequence> </element>
</xs:complexType> <element name="Control">
</xs:element> <empty/>
<xs:element name="Max-floor-users" type="xs:nonNegativeInteger" minOccurs="0"/> </element>
<xs:element name="Moderator-URI" type="xs:anyURI" minOccurs="0"/> <element name="Message">
</xs:sequence> <empty/>
<xs:attribute name="moderator-controlled" type="xs:boolean" default="false"/> </element>
<xs:attribute name="label" type="xs:string" use="required"/> <element name="Text">
</xs:complexType> <empty/>
</xs:element> </element>
</xs:sequence> </zeroOrMore>
</xs:complexType> </element>
<element name="Algorithm">
<ref name="role-type"/>
<zeroOrMore>
<element name="Moderator-controlled">
<empty/>
</element>
<element name="FCFS">
<empty/>
</element>
<element name="Random">
<empty/>
</element>
</zeroOrMore>
</element>
<element name="Max-floor-users">
<data type="nonNegativeInteger"/>
</element>
<element name="Moderator-URI">
<data type="anyURI"/>
</element>
</zeroOrMore>
</element>
</oneOrMore>
</define>
<!-- <!--
USERS TYPE USERS TYPE
--> -->
<xs:complexType name="users-type"> <define name="users-type">
<xs:sequence> <ref name="role-type"/>
<xs:element name="join-handling" type="join-handling-type" minOccurs="0"/> <zeroOrMore>
<xs:element name="user-admission-policy" type="user-admission-policy-type"/> <element name="join-handling">
<xs:element name="user-must-be-specified" type="xs:boolean" minOccurs="0"/> <ref name="join-handling-type"/>
<xs:element name="allowed-users-list" type="UserList" minOccurs="0"/> </element>
<xs:element name="privileges-control-list" type="privileges-control-list-type" minOccurs="0"/> <element name="user-admission-policy">
<xs:element name="user" type="user-type" minOccurs="0"/> <ref name="user-admission-policy-type"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </element>
</xs:sequence> <element name="user-must-be-specified">
<xs:anyAttribute namespace="##other" processContents="lax"/> <data type="boolean"/>
</xs:complexType> </element>
<element name="allowed-users-list">
<ref name="UserList"/>
</element>
<element name="privileges-control-list">
<ref name="privileges-control-list-type"/>
</element>
<element name="user">
<ref name="user-type"/>
</element>
</zeroOrMore>
</define>
<!-- <!--
USERS ADMISSION POLICY USERS ADMISSION POLICY
--> -->
<xs:simpleType name="user-admission-policy-type"> <define name="user-admission-policy-type">
<xs:restriction base="xs:string"> <choice>
<xs:enumeration value="closedAuthenticated"/> <value type="string">closedAuthenticated</value>
<xs:enumeration value="openAuthenticated"/> <value type="string">openAuthenticated</value>
<xs:enumeration value="anonymous"/> <value type="string">anonymous</value>
</xs:restriction> </choice>
</xs:simpleType> </define>
<!-- <!--
JOIN HANDLING TYPE JOIN HANDLING TYPE
--> -->
<xs:simpleType name="join-handling-type"> <define name="join-handling-type">
<xs:restriction base="xs:string"> <choice>
<xs:enumeration value="block"/> <value type="string">block</value>
<xs:enumeration value="allow"/> <value type="string">allow</value>
<xs:enumeration value="confirm"/> <value type="string">confirm</value>
<xs:enumeration value="IVR"/> <value type="string">IVR</value>
<xs:enumeration value="directed-operator"/> <value type="string">directed-operator</value>
</xs:restriction> </choice>
</xs:simpleType> </define>
<!-- <!--
USERLIST USERLIST
--> -->
<xs:complexType name="UserList"> <define name="UserList">
<xs:sequence> <ref name="role-type"/>
<xs:element name="target" type="Target" minOccurs="0" maxOccurs="unbounded"/> <zeroOrMore>
</xs:sequence> <element name="target">
</xs:complexType> <ref name="Target"/>
</element>
</zeroOrMore>
</define>
<!-- <!--
TARGET TARGET
--> -->
<xs:complexType name="Target"> <define name="Target">
<xs:complexContent> <ref name="role-type"/>
<xs:restriction base="xs:anyType"> <attribute name="uri">
<xs:sequence> <data type="anyURI"/>
<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </attribute>
</xs:sequence> <attribute name="method">
<xs:attribute name="uri" type="xs:anyURI" use="required"/> <ref name="method-type"/>
<xs:attribute name="method" type="xs:methodType" use="required"/> </attribute>
</xs:restriction> </define>
</xs:complexContent>
</xs:complexType>
<!-- <!--
METHOD TYPE METHOD TYPE
--> -->
<xs:complexType name="methodType"> <define name="method-type">
<xs:complexContent> <choice>
<xs:restriction base="xs:anyType"> <value type="string">dial-in</value>
<xs:choice minOccurs="0"> <value type="string">dial-out</value>
<xs:element name="dial-in" type="xs:string"/> <value type="string">refer</value>
<xs:element name="dial-out" type="xs:string"/> </choice>
<xs:element name="refer" type="xs:string"/> </define>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<!-- <!--
PRIVILEGES CONTROL LIST TYPE PRIVILEGES CONTROL LIST TYPE
--> -->
<xs:complexType name="privileges-control-list-type"> <define name="privileges-control-list-type">
<xs:sequence> <ref name="role-type"/>
<xs:element name="data-access-rights" type="data-access-rights-type" maxOccurs="unbounded"/> <oneOrMore>
<xs:element name="conference-rules" type="conference-rules-type" maxOccurs="unbounded"/> <element name="conference-rules">
</xs:sequence> <ref name="conference-rules-type"/>
<xs:anyAttribute namespace="##other" processContents="lax"/> </element>
</xs:complexType> </oneOrMore>
<!-- </define>
DATA ACCESS RIGHTS TYPE
-->
<xs:complexType name="data-access-rights-type">
<xs:sequence>
<xs:element name="entry" type="entry-rights-type" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<!--
ENTRY RIGHTS TYPE
-->
<xs:complexType name="entry-rights-type">
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="read-only" type="role:role-type" use="required"/>
<xs:attribute name="read-write" type="role:role-type" use="required"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<!-- <!--
CONFERENCE RULES TYPE CONFERENCE RULES TYPE
--> -->
<xs:complexType name="conference-rules-type"> <define name="conference-rules-type">
<xs:sequence> <ref name="role-type"/>
<xs:element name="entry" type="conference-rule-type" maxOccurs="unbounded"/> <attribute name="id">
</xs:sequence> <text/>
<xs:attribute name="id" type="xs:string" use="required"/> </attribute>
<xs:anyAttribute namespace="##other" processContents="lax"/> <zeroOrMore>
</xs:complexType> <element name="entry">
<ref name="conference-rule-type"/>
</element>
</zeroOrMore>
</define>
<!-- <!--
CONFERENCE RULE TYPE CONFERENCE RULE TYPE
--> -->
<xs:complexType name="conference-rule-type"> <define name="conference-rule-type">
<xs:sequence> <ref name="role-type"/>
<xs:element name="condition" type="condition-type" maxOccurs="unbounded"/> <zeroOrMore>
<xs:element name="action" type="action-type" maxOccurs="unbounded"/> <element name="condition">
</xs:sequence> <ref name="condition-type"/>
<xs:anyAttribute namespace="##other" processContents="lax"/> </element>
</xs:complexType> <element name="action">
<ref name="action-type"/>
</element>
</zeroOrMore>
</define>
<!-- <!--
CONDITION TYPE CONDITION TYPE
--> -->
<xs:complexType name="condition-type"> <define name="condition-type">
<xs:sequence> <ref name="role-type"/>
<xs:element name="identity" type="identity-type"/> <element name="identity">
<xs:element name="validity" type="compol:validityType"/> <ref name="identity-type"/>
</xs:sequence> </element>
<xs:anyAttribute namespace="##other" processContents="lax"/> <element name="validity">
</xs:complexType> <ref name="validityType"/>
</element>
</define>
<!-- <!--
IDENTITY TYPE IDENTITY TYPE
--> -->
<xs:complexType name="identity-type"> <define name="identity-type">
<xs:sequence> <ref name="role-type"/>
<xs:element name="identity" type="identityType" maxOccurs="unbounded"/> <element name="identity">
<xs:element name="validity" type="compol:validityType" maxOccurs="unbounded"/> <ref name="identityType"/>
</xs:sequence> </element>
<xs:anyAttribute namespace="##other" processContents="lax"/> <element name="validity">
</xs:complexType> <ref name="validityType"/>
</element>
</define>
<!-- <!--
ROLES IDENTITY TYPE ROLES IDENTITY TYPE
--> -->
<xs:complexType name="identityType"> <define name="identityType">
<xs:complexContent> <choice>
<xs:restriction base="xs:anyType"> <element name="one">
<xs:choice minOccurs="0"> <ref name="oneType"/>
<xs:element name="one" type="compol:oneType"/> </element>
<xs:element name="many" type="compol:manyType"/> <element name="many">
<xs:element name="external-list" type="xs:string"/> <ref name="manyType"/>
<xs:element name="pseudonymous" type="xs:string"/> </element>
<xs:element name="has-been-referred" type="xs:string"/> <element name="pseudonymous">
<xs:element name="has-been-invited" type="xs:string"/> <text/>
<xs:element name="has-been-in-conference" type="xs:string"/> </element>
<xs:element name="is-in-conference" type="xs:string"/> <element name="has-been-referred">
<xs:element name="administrator" type="xs:string"/> <text/>
<xs:element name="is-on-allowed-users-list-dial-out" type="xs:string"/> </element>
<xs:element name="is-on-allowed-users-list-refer" type="xs:string"/> <element name="has-been-invited">
<xs:element name="participant-passcode" type="xs:string"/> <text/>
<xs:element name="administrator-passcode" type="xs:string"/> </element>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> <element name="has-been-in-conference">
</xs:choice> <text/>
</xs:restriction> </element>
</xs:complexContent> <element name="is-in-conference">
</xs:complexType> <text/>
</element>
<element name="administrator">
<text/>
</element>
<element name="is-on-allowed-users-list-dial-out">
<text/>
</element>
<element name="is-on-allowed-users-list-refer">
<text/>
</element>
<element name="participant-passcode">
<text/>
</element>
<element name="administrator-passcode">
<text/>
</element>
</choice>
</define>
<!-- <!--
ACTION TYPE ACTION TYPE
--> -->
<xs:complexType name="action-type"> <define name="action-type">
<xs:complexContent> <choice>
<xs:restriction base="xs:anyType"> <element name="allow-refer-users-dynamically">
<xs:choice minOccurs="0" maxOccurs="unbounded"> <data type="boolean"/>
<xs:element name="allow-refer-users-dynamically" type="xs:boolean"/> </element>
<xs:element name="allow-invite-users-dynamically" type="xs:boolean"/> <element name="allow-invite-users-dynamically">
<xs:element name="allow-remove-users-dynamically" type="xs:boolean"/> <data type="boolean"/>
<xs:element name="show-floor-holder" type="floor-request-type"/> </element>
<xs:element name="show-floor-request" type="xs:boolean"/> <element name="allow-remove-users-dynamically">
<xs:element name="provide-anonymity" type="xs:boolean"/> <data type="boolean"/>
<xs:element name="read-only" type="role:role-type"/> </element>
<xs:element name="read-write" type="role:role-type"/> <element name="show-floor-holder">
</xs:choice> <ref name="floor-request-type"/>
</xs:restriction> </element>
</xs:complexContent> <element name="show-floor-request">
</xs:complexType> <data type="boolean"/>
</element>
<element name="provide-anonymity">
<data type="boolean"/>
</element>
<element name="read-only">
<ref name="single-role-type"/>
</element>
<element name="read-write">
<ref name="single-role-type"/>
</element>
</choice>
</define>
<!-- <!--
USER TYPE USER TYPE
--> -->
<xs:complexType name="user-type"> <define name="user-type">
<xs:sequence> <ref name="role-type"/>
<xs:element name="user" type="one-user-type" minOccurs="0" maxOccurs="unbounded"/> <attribute name="state">
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> <ref name="state-type"/>
</xs:sequence> </attribute>
<xs:attribute name="state" type="info:state-type" use="optional" default="full"/> <zeroOrMore>
<xs:anyAttribute namespace="##other" processContents="lax"/> <element name="user">
</xs:complexType> <ref name="one-user-type"/>
</element>
</zeroOrMore>
</define>
<!-- <!--
ONE USER TYPE ONE USER TYPE
--> -->
<xs:complexType name="one-user-type"> <define name="one-user-type">
<xs:sequence> <ref name="role-type"/>
<xs:element name="display-text" type="xs:string" minOccurs="0"/> <attribute name="entity">
<xs:element name="associated-aors" type="info:uris-type" minOccurs="0"/> <data type="anyURI"/>
<xs:element name="provide-anonymity" type="xs:boolean" minOccurs="0"/> </attribute>
<xs:element name="roles" type="role:role-type" minOccurs="0"/> <attribute name="state">
<xs:element name="languages" type="info:user-languages-type" minOccurs="0"/> <ref name="state-type"/>
<xs:element name="cascaded-focus" type="xs:anyURI" minOccurs="0"/> </attribute>
<xs:element name="sphere" type="compol:sphereType" minOccurs="0"/> <zeroOrMore>
<xs:element name="allow-refer-users-dynamically" type="xs:boolean"/> <element name="display-text">
<xs:element name="allow-invite-users-dynamically" type="xs:boolean"/> <text/>
<xs:element name="allow-remove-users-dynamically" type="xs:boolean"/> </element>
<xs:element name="floors" type="show-floors-type"/> <element name="associated-aors">
<xs:element name="endpoint" type="info:endpoint-type" minOccurs="0" maxOccurs="unbounded"/> <ref name="uris-type"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </element>
</xs:sequence> <element name="provide-anonymity">
<xs:attribute name="entity" type="xs:anyURI"/> <data type="boolean"/>
<xs:attribute name="state" type="info:state-type" use="optional" default="full"/> </element>
<xs:anyAttribute namespace="##other" processContents="lax"/> <element name="roles">
</xs:complexType> <ref name="single-role-type"/>
</element>
<element name="languages">
<list>
<data type="language"/>
</list>
</element>
<element name="cascaded-focus">
<data type="anyURI"/>
</element>
<element name="sphere">
<ref name="sphereType"/>
</element>
<element name="allow-refer-users-dynamically">
<data type="boolean"/>
</element>
<element name="allow-invite-users-dynamically">
<data type="boolean"/>
</element>
<element name="allow-remove-users-dynamically">
<data type="boolean"/>
</element>
<element name="endpoint">
<ref name="endpoint-type"/>
</element>
</zeroOrMore>
</define>
<!-- <!--
SHOW FLOORS TYPE ENDPOINT TYPE
--> -->
<xs:complexType name="show-floors-type"> <define name="endpoint-type">
<xs:sequence> <ref name="role-type"/>
<xs:element name="entry" type="show-floor-type" maxOccurs="unbounded"/> <attribute name="entity">
</xs:sequence> <text/>
<xs:anyAttribute namespace="##other" processContents="lax"/> </attribute>
</xs:complexType> <zeroOrMore>
<element name="display-text">
<text/>
</element>
<element name="referred">
<ref name="execution-type"/>
</element>
<element name="status">
<ref name="endpoint-status-type"/>
</element>
<element name="joining-method">
<ref name="joining-type"/>
</element>
<element name="joining-info">
<ref name="execution-type"/>
</element>
<element name="disconnection-method">
<ref name="disconnection-type"/>
</element>
<element name="disconnection-info">
<ref name="execution-type"/>
</element>
<element name="media">
<ref name="media-type"/>
</element>
<element name="call-info">
<ref name="call-type"/>
</element>
</zeroOrMore>
</define>
<!-- <!--
SHOW FLOOR TYPE MEDIA TYPE
--> -->
<xs:complexType name="show-floor-type"> <define name="media-type">
<xs:sequence> <attribute name="id">
<xs:element name="show-floor-holder" type="xs:boolean" minOccurs="0"/> <text/>
<xs:element name="show-floor-request" type="xs:boolean"/> </attribute>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> <zeroOrMore>
</xs:sequence> <element name="display-text">
<xs:attribute name="id" type="xs:string" use="required"/> <text/>
<xs:anyAttribute namespace="##other" processContents="lax"/> </element>
</xs:complexType> <element name="type">
<text/>
</element>
<element name="label">
<text/>
</element>
<element name="src-id">
<text/>
</element>
<element name="status">
<ref name="media-status-type"/>
</element>
<element name="to-mixer">
<ref name="mixer-type"/>
</element>
<element name="from-mixer">
<ref name="mixer-type"/>
</element>
</zeroOrMore>
</define>
<!--
MIXER TYPE
-->
<define name="mixer-type">
<ref name="role-type"/>
<optional>
<element name="floor">
<data type="boolean"/>
</element>
<element name="controls">
<ref name="control-type"/>
</element>
</optional>
</define>
<!-- <!--
SIDEBARS-BY-REF TYPE SIDEBARS-BY-REF TYPE
--> -->
<xs:complexType name="sidebars-by-ref-type"> <define name="sidebars-by-ref-type">
<xs:sequence> <ref name="role-type"/>
<xs:element name="entry" type="info:uri-type" maxOccurs="unbounded"/> <zeroOrMore>
</xs:sequence> <element name="entry">
<xs:anyAttribute namespace="##other" processContents="lax"/> <ref name="uri-type"/>
</xs:complexType> </element>
</zeroOrMore>
</define>
<!-- <!--
SIDEBARS-BY-VAL TYPE SIDEBARS-BY-VAL TYPE
--> -->
<xs:complexType name="sidebars-by-val-type"> <define name="sidebars-by-val-type">
<xs:sequence> <ref name="role-type"/>
<xs:element name="entry" type="conference-type" minOccurs="0" maxOccurs="unbounded"/> <zeroOrMore>
</xs:sequence> <element name="entry">
<xs:anyAttribute namespace="##other" processContents="lax"/> <ref name="conference-type"/>
</xs:complexType> </element>
</xs:schema> </zeroOrMore>
</define>
<!--
********************************************************************************
TYPES DEFINED IN THE EVENT PACKAGES FOR CONFERENCE STATE
********************************************************************************
-->
<!--
MEDIA STATUS TYPE
-->
<define name="media-status-type">
<choice>
<value type="string">recvonly</value>
<value type="string">sendonly</value>
<value type="string">sendrecv</value>
<value type="string">inactive</value>
</choice>
</define>
<!--
EXECUTION TYPE
-->
<define name="execution-type">
<zeroOrMore>
<element name="when">
<data type="int"/>
</element>
<element name="reason">
<data type="string"/>
</element>
<element name="by">
<data type="anyURI"/>
</element>
</zeroOrMore>
</define>
<!--
CALL TYPE
-->
<define name="call-type">
<zeroOrMore>
<element name="sip">
<ref name="sip-dialog-id-type"/>
</element>
</zeroOrMore>
</define>
<!--
SIP DIALOG ID TYPE
-->
<define name="sip-dialog-id-type">
<zeroOrMore>
<element name="display-text">
<text/>
</element>
<element name="call-id">
<text/>
</element>
<element name="from-tag">
<text/>
</element>
<element name="to-tag">
<text/>
</element>
</zeroOrMore>
</define>
<!--
DISCONNECTION TYPE
-->
<define name="disconnection-type">
<choice>
<value type="string">departed</value>
<value type="string">booted</value>
<value type="string">failed</value>
<value type="string">busy</value>
</choice>
</define>
<!--
JOINING TYPE
-->
<define name="joining-type">
<choice>
<value type="string">dialed-in</value>
<value type="string">dialed-out</value>
<value type="string">focus-owner</value>
</choice>
</define>
<!--
ENDPOINT STATUS TYPE
-->
<define name="endpoint-status-type">
<choice>
<value type="string">pending</value>
<value type="string">dialing-out</value>
<value type="string">dialing-in</value>
<value type="string">alerting</value>
<value type="string">on-hold</value>
<value type="string">connected</value>
<value type="string">muted-via-focus</value>
<value type="string">disconnecting</value>
<value type="string">disconnected</value>
</choice>
</define>
<!--
STATE TYPE
-->
<define name="state-type">
<choice>
<value type="string">full</value>
<value type="string">partial</value>
<value type="string">deleted</value>
</choice>
</define>
<!--
***********************************************
TYPE DEFINED IN THE ROLE DOCUMENT
***********************************************
-->
<!--
ROLE TYPE
-->
<define name="role-type">
<attribute name="read-only">
<ref name="single-role-type"/>
</attribute>
<attribute name="write-only">
<ref name="single-role-type"/>
</attribute>
</define>
<!--
SINGLE ROLE TYPE
-->
<define name="single-role-type">
<choice>
<value type="string">Administrator</value>
<value type="string">Creator</value>
<value type="string">Moderator</value>
<value type="string">Participant</value>
<value type="string">Observer</value>
</choice>
</define>
<!--
************************************************************
TYPE DEFINED IN THE COMMON POLICY DOCUMENT
************************************************************
-->
<!--
VALIDITY TYPE
-->
<define name="validityType">
<choice>
<element name="from">
<data type="int"/>
</element>
<element name="until">
<data type="int"/>
</element>
</choice>
</define>
<!--
ONE TYPE
-->
<define name="oneType">
<attribute name="id">
<data type="anyURI"/>
</attribute>
</define>
<!--
MANY TYPE
-->
<define name="manyType">
<choice>
<element name="except">
<ref name="exceptType"/>
</element>
</choice>
<attribute name="domain">
<text/>
</attribute>
</define>
<define name="exceptType">
<attribute name="domain">
<text/>
</attribute>
<attribute name="id">
<data type="anyURI"/>
</attribute>
</define>
<!--
SPHERE TYPE
-->
<define name="sphereType">
<attribute name="value">
<text/>
</attribute>
</define>
</grammar>
5. XML Schema Extensibility 5. XML Schema Extensibility
The Common Conference Information Data Model defined in this document The Common Conference Information Data Model defined in this document
is meant to be extensible toward specific application domains. Such is meant to be extensible toward specific application domains. Such
an extension is accomplished by defining elements, child elements and an extension is accomplished by defining elements, child elements and
attributes that are specific to the desired application domain. Each attributes that are specific to the desired application domain. Each
extension MUST define its own namespace. Points of extension MUST be extension MUST define its own namespace. Points of extension MUST be
defined in the schema, and SHOULD be done using the <any defined in the schema, and SHOULD be done using the <anyName>/
namespace="##other"> construct. <except> construct.
Elements or attributes from unknown namespaces MUST be ignored. Elements or attributes from unknown namespaces MUST be ignored.
6. XML example 6. XML example
The following is an example of a common conference information The following is an example of a common conference information
document. The conference starts on October 17, 2006, at 10:30 AM in document. The conference starts on October 17, 2006, at 10:30 AM in
New York City and finishes the same day at 12:30 PM every week. In New York City and finishes the same day at 12:30 PM every week. In
this example, there are currently 3 participants in a conference, one this example, there are currently 3 participants in a conference, one
administrator, one moderator, and one participant. Note that administrator, one moderator, and one participant. Note that
skipping to change at page 43, line 32 skipping to change at page 49, line 34
<conference-info <conference-info
xmlns="urn:ietf:params:xml:ns:common-conference-schema" xmlns="urn:ietf:params:xml:ns:common-conference-schema"
xmlns:info="urn:ietf:params:xml:ns:conference-info" xmlns:info="urn:ietf:params:xml:ns:conference-info"
xmlns:sesspol="urn:ietf:params:xml:ns:sessionpolicy" xmlns:sesspol="urn:ietf:params:xml:ns:sessionpolicy"
xmlns:compol="urn:ietf:params:xml:ns:common-policy" xmlns:compol="urn:ietf:params:xml:ns:common-policy"
entity="sips:conference@example.com"> entity="sips:conference@example.com">
<!-- <!--
CONFERENCE DESCRIPTION CONFERENCE DESCRIPTION
--> -->
<info:conference-description xml:lang="en-us"> <info:conference-description xml:lang="en-us">
<info:display-text>Discussion of the best moments in Formula-1\\ <info:display-text>Discussion of Formula-1 racing<
racing</info:display-text> /info:display-text>
<info:subject> Sports:Formula-1</info:subject> <info:subject> Sports:Formula-1</info:subject>
<info:free-text>This is a conference example</info:free-text> <info:free-text>This is a conference example</info:free-text>
<info:keywords>Formula-1, cars</info:keywords> <info:keywords>Formula-1, cars</info:keywords>
<web-page>http://www.example.com/users/alice/formula-1\\ <web-page>http://www.example.com/users/alice/formula-1<
</web-page> /web-page>
<security-level>low</security-level> <security-level>low</security-level>
<allow-sidebars>true</allow-sidebars> <allow-sidebars>true</allow-sidebars>
<conference-stage>running</conference-stage> <conference-stage>running</conference-stage>
<!-- <!--
CONFERENCE TIME CONFERENCE TIME
--> -->
<conference-time> <conference-time>
<entry> <entry>
<base> <base>BEGIN:VCALENDAR
BEGIN:VCALENDAR
PRODID:-//LlamaSpinner Inc.//NONSGML CamelCall//EN PRODID:-//LlamaSpinner Inc.//NONSGML CamelCall//EN
VERSION:2.0 VERSION:2.0
BEGIN:VEVENT BEGIN:VEVENT
DTSTAMP:20051103T140728Z DTSTAMP:20051103T140728Z
UID:carol at example.com UID:carol at example.com
ORGANIZER:MAILTO:carol at example.com ORGANIZER:MAILTO:carol at example.com
DTSTART:20061017T143000Z DTSTART:20061017T143000Z
RRULE:FREQ=WEEKLY RRULE:FREQ=WEEKLY
DTEND:20061017T163000Z DTEND:20061017T163000Z</base>
</base>
<mixing-start-offset required-participant="moderator"> <mixing-start-offset required-participant="moderator">
20061017T142900Z</mixing-start-offset> 20061017T142900Z</mixing-start-offset>
<mixing-end-offset required-participant="participant"> <mixing-end-offset required-participant="participant">
20061017T163100Z</mixing-end-offset> 20061017T163100Z</mixing-end-offset>
<must-join-before-offset> <must-join-before-offset>
20061017T15300Z</must-join-before-offset> 20061017T15300Z</must-join-before-offset>
</entry> </entry>
</conference-time> </conference-time>
<!-- <!--
CONFERENCE UNIQUE IDENTIFIERS CONFERENCE UNIQUE IDENTIFIERS
skipping to change at page 45, line 13 skipping to change at page 51, line 14
</maximum-user-count> </maximum-user-count>
<!-- <!--
AVAILABLE MEDIA AVAILABLE MEDIA
--> -->
<info:available-media> <info:available-media>
<info:entry label="10234"> <info:entry label="10234">
<info:display-text>main audio</info:display-text> <info:display-text>main audio</info:display-text>
<info:type>audio</info:type> <info:type>audio</info:type>
<info:status>sendrecv</info:status> <info:status>sendrecv</info:status>
<mixing-mode>automatic</mixing-mode> <mixing-mode>automatic</mixing-mode>
<mix level>3</mix level> <mix-level>3</mix-level>
<codecs decision="automatic"> <codecs decision="automatic">
<codec name="PCMU" policy="allowed"/> <codec name="PCMU" policy="allowed"/>
</codecs> </codecs>
</info:entry> </info:entry>
<info:entry label="10235"> <info:entry label="10235">
<info:display-text>main video</info:display-text> <info:display-text>main video</info:display-text>
<info:type>video</info:type> <info:type>video</info:type>
<mixing-mode>automatic</mixing-mode> <mixing-mode>automatic</mixing-mode>
<mix level>4</mix level> <mix-level>4</mix-level>
<info:status>sendrecv</info:status> <info:status>sendrecv</info:status>
<sesspol:codecs decision="automatic"> <sesspol:codecs decision="automatic">
<sesspol:codec name="H.263" policy="allowed"/> <sesspol:codec name="H.263" policy="allowed"/>
</sesspol:codecs> </sesspol:codecs>
</info:entry> </info:entry>
</info:available-media> </info:available-media>
</info:conference-description> </info:conference-description>
<!-- <!--
HOST INFO HOST INFO
--> -->
<info:host-info> <info:host-info>
<info:display-text>Formula1</info:display-text> <info:display-text>Formula1</info:display-text>
<info:web-page>http://www.example.com/users/formula-1/\\ <info:web-page>http://www.example.com/formula-1/<
</info:web-page> /info:web-page>
<info:uris> <info:uris>
<info:SIP> <info:SIP>
<info:uri>sip:alice@example.com</info:uri> <info:uri>sip:alice@example.com</info:uri>
</info:SIP> </info:SIP>
<info:SIP> <info:SIP>
<info:uri>sip:carol@example.com</info:uri> <info:uri>sip:carol@example.com</info:uri>
</info:SIP> </info:SIP>
</info:uris> </info:uris>
</info:host-info> </info:host-info>
<!-- <!--
CONFERENCE STATE CONFERENCE STATE
--> -->
<info:conference-state> <info:conference-state>
<allow-conference-state>true \\ <allow-conference-state>true<
</allow-conference-state> /allow-conference-state>
<info:user-count>3</info:user-count> <info:user-count>3</info:user-count>
<info:active>true</info:active> <info:active>true</info:active>
<info:locked>false</info:locked> <info:locked>false</info:locked>
</info:conference-state> </info:conference-state>
<!-- <!--
SECURITY MECHANISM
-->
<security-mechanism>
<entry-protocol name="SIP">
<sesspol:methods default-policy="allowed">
<sesspol:method name="MESSAGE" policy="disallowed"/>
</sesspol:methods>
<sesspol:option-tags default-policy="disallowed">
<sesspol:option-tag name="100rel" policy="mandatory"/>
<sesspol:option-tag name="preconditions" policy="allowed"/>
</sesspol:option-tags>
<sesspol:feature-tags default-policy="disallowed">
<sesspol:feature-tag name="video" policy="allowed"/>
</sesspol:feature-tags>
<sesspol:bodies default-policy="allowed" \\
default-encryption="allowed">
<sesspol:body-disposition name="session" policy="allowed" \\
encryption="disallowed" default-policy="disallowed">
<sesspol:body-format name="application/sdp" \\
policy="allowed"/>
</sesspol:body-disposition>
</sesspol:bodies>
</entry-protocol>
</security-mechanism>
<!--
FLOOR INFORMATION FLOOR INFORMATION
--> -->
<floor-information> <floor-information>
<allow-floor-events>true</allow-floor-events> <allow-floor-events>true</allow-floor-events>
<floor-request-handling>1 </floor-request-handling> <floor-request-handling>1 </floor-request-handling>
<conference-floor-policy> <conference-floor-policy>
<floor moderator-controlled="true" label="10234"> <floor moderator-controlled="true" label="10234">
<media-types>audio</media-types> <media-types>audio</media-types>
<algorithm>Moderator-controlled</algorithm> <algorithm>Moderator-controlled</algorithm>
<max-floor-users>1</max-floor-users> <max-floor-users>1</max-floor-users>
<moderator-uri>sip:alice@example.com \\ <moderator-uri>sip:alice@example.com<
</moderator-uri> /moderator-uri>
</floor> </floor>
<floor moderator-controlled="true" label="10235"> <floor moderator-controlled="true" label="10235">
<media-types>video</media-types> <media-types>video</media-types>
<algorithm>Moderator-controlled</algorithm> <algorithm>Moderator-controlled</algorithm>
<max-floor-users>1</max-floor-users> <max-floor-users>1</max-floor-users>
<moderator-uri>sip:carol@example.com \\ <moderator-uri>sip:carol@example.com<
</moderator-uri> /moderator-uri>
</floor> </floor>
</conference-floor-policy> </conference-floor-policy>
</floor-information> </floor-information>
<!-- <!--
USERS USERS
--> -->
<users> <users>
<join-handling>allow</join-handling> <join-handling>allow</join-handling>
<!-- <!--
ALLOWED USERS LIST ALLOWED USERS LIST
skipping to change at page 47, line 26 skipping to change at page 52, line 50
<allowed-users-list> <allowed-users-list>
<target uri="sip:bob@example.com" method="dial-out"/> <target uri="sip:bob@example.com" method="dial-out"/>
<target uri="sip:alice@example.com" method="dial-out"/> <target uri="sip:alice@example.com" method="dial-out"/>
<target uri="sip:carol@example.com" method="dial-out"/> <target uri="sip:carol@example.com" method="dial-out"/>
<target uri="sip:john@example.com" method="refer"/> <target uri="sip:john@example.com" method="refer"/>
</allowed-users-list> </allowed-users-list>
<!-- <!--
PRIVILEGES CONTROL LIST PRIVILEGES CONTROL LIST
--> -->
<privileges-control-list> <privileges-control-list>
<data-access-rights>
<conference-description read-only= "observer"/>
<security-level read-only= "administrator"/>
<allow-sidebars read-only= "creator" \\
read-write= "creator"/>
<conference-time read-only= "administrator"/>
<maximum-user-count read-write= "creator"/>
<codecs read-only= "creator" read-write= "creator"/>
<host-info read-write= "creator"/>
<conference-state read-write= "creator"/>
<security-mechanism read-only= "creator"/>
<floor-information read-only= "administrator"/>
<allowed-users-list read-only= "administrator"/>
<privileges-control-list read-only= "creator"/>
<conditions read-only= "creator"/>
<validity read-only= "creator"/>
<allow-conference-state read-only= "observer"/>
<sidebars-by-ref read-only= "observer"\\
read-write= "creator"/>
<sidebars-by-val read-only= "observer"\\
read-write= "creator"/>
</data-access-rights>
<conference-rules> <conference-rules>
<entry id="1"> <entry id="1">
<conditions> <conditions>
<compol:identity> <compol:identity>
<compol:domain>example.com</compol:domain> <compol:domain>example.com</compol:domain>
</compol:identity> </compol:identity>
<compol:validity> <compol:validity>
<compol:from>20061017T143000Z</compol:from> <compol:from>20061017T143000Z</compol:from>
<compol:to>20061017T163000Z</compol:to> <compol:to>20061017T163000Z</compol:to>
</compol:validity> </compol:validity>
</conditions> </conditions>
<compol:actions> <compol:actions>
<compol:allow-conference-state>true\\ <compol:allow-conference-state>true<
</compol:allow-conference-state> /compol:allow-conference-state>
</compol:actions> </compol:actions>
</entry> </entry>
<entry id="2"> <entry id="2">
<conditions> <conditions>
<compol:identity> <compol:identity>
<compol:uri>bob@example.com</compol:uri> <compol:uri>bob@example.com</compol:uri>
</compol:identity> </compol:identity>
</conditions> </conditions>
<compol:actions> <compol:actions>
<join-handling>block</join-handling> <join-handling>block</join-handling>
skipping to change at page 48, line 45 skipping to change at page 53, line 47
<info:uri>mailto:bob@example.com</info:uri> <info:uri>mailto:bob@example.com</info:uri>
<info:display-text>email</info:display-text> <info:display-text>email</info:display-text>
</info:entry> </info:entry>
</info:associated-aors> </info:associated-aors>
<provide-anonymity>false</provide-anonymity> <provide-anonymity>false</provide-anonymity>
<info:roles> <info:roles>
<info:entry>participant</info:entry> <info:entry>participant</info:entry>
</info:roles> </info:roles>
<info:languages>en</info:languages> <info:languages>en</info:languages>
<sphere value="work"/> <sphere value="work"/>
<allow-refer-users-dynamically>false\\ <allow-refer-users-dynamically>false<
</allow-refer-users-dynamically> /allow-refer-users-dynamically>
<allow-invite-users-dynamically>false\\ <allow-invite-users-dynamically>false<
</allow-invite-users-dynamically> /allow-invite-users-dynamically>
<allow-remove-users-dynamically>false\\ <allow-remove-users-dynamically>false<
</allow-remove-users-dynamically> /allow-remove-users-dynamically>
<floors>
<entry id="1">
<show-floor-holder>false</show-floor-holder>
<show-floor-requests>false \\
</show-floor-requests>
</entry>
</floors>
<!-- <!--
ENDPOINTS ENDPOINTS
--> -->
<info:endpoint entity="sip:bob@example.com"> <info:endpoint entity="sip:bob@example.com">
<info:display-text>Bob's Laptop</info:display-text> <info:display-text>Bob's Laptop</info:display-text>
<info:referred> <info:referred>
<info:when>20061017T140000Z</info:when> <info:when>20061017T140000Z</info:when>
<info:reason>expert required</info:reason> <info:reason>expert required</info:reason>
<info:by>sip:alice@example.com</info:by> <info:by>sip:alice@example.com</info:by>
</info:referred> </info:referred>
skipping to change at page 50, line 16 skipping to change at page 55, line 11
<info:uri>mailto:alice@example.com</info:uri> <info:uri>mailto:alice@example.com</info:uri>
<info:display-text>email</info:display-text> <info:display-text>email</info:display-text>
</info:entry> </info:entry>
</info:associated-aors> </info:associated-aors>
<provide-anonymity>false</provide-anonymity> <provide-anonymity>false</provide-anonymity>
<info:roles> <info:roles>
<info:entry>moderator</info:entry> <info:entry>moderator</info:entry>
</info:roles> </info:roles>
<info:languages>en</info:languages> <info:languages>en</info:languages>
<sphere value="work"/> <sphere value="work"/>
<allow-refer-users-dynamically>true\\ <allow-refer-users-dynamically>true<
</allow-refer-users-dynamically> /allow-refer-users-dynamically>
<allow-invite-users-dynamically>true\\ <allow-invite-users-dynamically>true<
</allow-invite-users-dynamically> /allow-invite-users-dynamically>
<allow-remove-users-dynamically>true\\ <allow-remove-users-dynamically>true<
</allow-remove-users-dynamically> /allow-remove-users-dynamically>
<!-- <!--
ENDPOINTS ENDPOINTS
--> -->
<info:endpoint entity="sip:alice@example.com"> <info:endpoint entity="sip:alice@example.com">
<info:display-text>Alice's Desktop</info:display-text> <info:display-text>Alice's Desktop</info:display-text>
<info:status>connected</info:status> <info:status>connected</info:status>
<info:joining-method>dialed-in</info:joining-method> <info:joining-method>dialed-in</info:joining-method>
<info:joining-info> <info:joining-info>
<info:when>20061017T133508Z</info:when> <info:when>20061017T133508Z</info:when>
<info:reason>invitation</info:reason> <info:reason>invitation</info:reason>
skipping to change at page 51, line 29 skipping to change at page 56, line 24
<info:uri>mailto:carol@example.com</info:uri> <info:uri>mailto:carol@example.com</info:uri>
<info:display-text>email</info:display-text> <info:display-text>email</info:display-text>
</info:entry> </info:entry>
</info:associated-aors> </info:associated-aors>
<provide-anonymity>false</provide-anonymity> <provide-anonymity>false</provide-anonymity>
<info:roles> <info:roles>
</info:entry>administrator</info:entry> </info:entry>administrator</info:entry>
</info:roles> </info:roles>
<info:languages>en</info:languages> <info:languages>en</info:languages>
<sphere value="work"/> <sphere value="work"/>
<allow-refer-users-dynamically>true\\ <allow-refer-users-dynamically>true<
</allow-refer-users-dynamically> /allow-refer-users-dynamically>
<allow-invite-users-dynamically>true\\ <allow-invite-users-dynamically>true<
</allow-invite-users-dynamically> /allow-invite-users-dynamically>
<allow-remove-users-dynamically>true\\ <allow-remove-users-dynamically>true<
</allow-remove-users-dynamically> /allow-remove-users-dynamically>
<!-- <!--
ENDPOINTS ENDPOINTS
--> -->
<info:endpoint entity="sip:carol@example.com"> <info:endpoint entity="sip:carol@example.com">
<info:display-text>Carol's Computer</info:display-text> <info:display-text>Carol's Computer</info:display-text>
<info:status>connected</info:status> <info:status>connected</info:status>
<info:joining-method>dialed-in</info:joining-method> <info:joining-method>dialed-in</info:joining-method>
<info:joining-info> <info:joining-info>
<info:when>20061017T133005Z</info:when> <info:when>20061017T133005Z</info:when>
<info:reason>invitation</info:reason> <info:reason>invitation</info:reason>
skipping to change at page 53, line 24 skipping to change at page 58, line 22
MUST provide authentication, confidentiality and integrity. MUST provide authentication, confidentiality and integrity.
8. IANA Considerations 8. IANA Considerations
9. Acknowledgements 9. Acknowledgements
This document is really a distillation of many ideas discussed over a This document is really a distillation of many ideas discussed over a
long period of time. These ideas were contributed by many different long period of time. These ideas were contributed by many different
drafts in the XCON working group and the SIPPING working group. I drafts in the XCON working group and the SIPPING working group. I
would like to thanks Orit Levin, Adam Roach, Mary Barnes, Chris would like to thanks Orit Levin, Adam Roach, Mary Barnes, Chris
Boulton, Umesh Chandra, Orit Levin, and Jari Urpilainen for their Boulton, Umesh Chandra, Orit Levin, Jari Urpilainen, and Srivatsa
comments. Also, I would like to thanks Hisham Khartabil, Petri Srinivasan for their comments. Also, I would like to thanks Hisham
Koskelainen, and Aki Niemi to let us use the policy information of Khartabil, Petri Koskelainen, and Aki Niemi to let us use the policy
their cpcp drafts in this document. information of their cpcp drafts in this document.
10. References 10. References
10.1. Normative References 10.1. Normative References
[1] Barnes, M. and C. Boulton, "A Framework and Data Model for [1] Barnes, M., "A Framework and Data Model for Centralized
Centralized Conferencing", draft-barnes-xcon-framework-02 (work Conferencing", draft-ietf-xcon-framework-05 (work in progress),
in progress), February 2005. September 2006.
[2] Rosenberg, J., "A Session Initiation Protocol (SIP) Event [2] Rosenberg, J., Schulzrinne, H., and O. Levin, "A Session
Package for Conference State", Initiation Protocol (SIP) Event Package for Conference State",
draft-ietf-sipping-conference-package-12 (work in progress), RFC 4575, August 2006.
July 2005.
[3] Bradner, S., "Key words for use in RFCs to Indicate Requirement [3] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997. Levels", BCP 14, RFC 2119, March 1997.
[4] Rosenberg, J., "A Framework for Conferencing with the Session [4] Rosenberg, J., "A Framework for Conferencing with the Session
Initiation Protocol", Initiation Protocol (SIP)", RFC 4353, February 2006.
draft-ietf-sipping-conferencing-framework-05 (work in progress),
May 2005.
[5] Sperberg-McQueen, C., Paoli, J., Maler, E., and T. Bray, [5] Paoli, J., Maler, E., Sperberg-McQueen, C., and T. Bray,
"Extensible Markup Language (XML) 1.0 (Second Edition)", World "Extensible Markup Language (XML) 1.0 (Second Edition)", World
Wide Web Consortium Wide Web Consortium FirstEdition REC-xml-20001006, October 2000,
FirstEdition http://www.w3.org/TR/2000/REC-xml-20001006, <http://www.w3.org/TR/2000/REC-xml-20001006>.
October 2000.
[6] Dawson, F. and Stenerson, D., "Internet Calendaring and [6] Dawson, F. and Stenerson, D., "Internet Calendaring and
Scheduling Core Object Specification (iCalendar)", RFC 2445, Scheduling Core Object Specification (iCalendar)", RFC 2445,
November 1998. November 1998.
10.2. Informative References 10.2. Informative References
[7] Camarillo, G., "The Binary Floor Control Protocol (BFCP)", [7] Camarillo, G., "The Binary Floor Control Protocol (BFCP)",
draft-ietf-xcon-bfcp-06 (work in progress), December 2005. draft-ietf-xcon-bfcp-06 (work in progress), December 2005.
[8] Levin, O., "Centralized Conference Control Protocol", [8] Schulzrinne, H., "Common Policy: A Document Format for
draft-levin-xcon-cccp-04 (work in progress), January 2006.
[9] Schulzrinne, H., "Common Policy: An XML Document Format for
Expressing Privacy Preferences", Expressing Privacy Preferences",
draft-ietf-geopriv-common-policy-10 (work in progress), draft-ietf-geopriv-common-policy-11 (work in progress),
May 2006. August 2006.
[10] Camarillo, G., "Session Description Protocol (SDP) Format for [9] Camarillo, G., "Session Description Protocol (SDP) Format for
Binary Floor Control Protocol (BFCP) Streams", Binary Floor Control Protocol (BFCP) Streams",
draft-ietf-mmusic-sdp-bfcp-03 (work in progress), draft-ietf-mmusic-sdp-bfcp-03 (work in progress), December 2005.
December 2005.
Authors' Addresses Authors' Addresses
Oscar Novo Oscar Novo
Ericsson Ericsson
Hirsalantie 11 Hirsalantie 11
Jorvas 02420 Jorvas 02420
Finland Finland
Email: Oscar.Novo@ericsson.com Email: Oscar.Novo@ericsson.com
skipping to change at page 55, line 30 skipping to change at page 60, line 4
Email: Gonzalo.Camarillo@ericsson.com Email: Gonzalo.Camarillo@ericsson.com
David P. Morgan David P. Morgan
Fidelity Investments Fidelity Investments
82 Devonshire St, MZ V8C 82 Devonshire St, MZ V8C
Boston, MA 02109-3614 Boston, MA 02109-3614
USA USA
Email: Dave.Morgan@fmr.com Email: Dave.Morgan@fmr.com
Roni Even Roni Even
Polycom Polycom
94 Derech Em Hamoshavot 94 Derech Em Hamoshavot
Petach Tikva 49130 Petach Tikva 49130
Israel Israel
Email: roni.even@polycom.co.il Email: roni.even@polycom.co.il
Intellectual Property Statement Full Copyright Statement
Copyright (C) The Internet Society (2006).
This document is subject to the rights, licenses and restrictions
contained in BCP 78, and except as set forth therein, the authors
retain all their rights.
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Intellectual Property
The IETF takes no position regarding the validity or scope of any The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights this document or the extent to which any license under such rights
might or might not be available; nor does it represent that it has might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79. found in BCP 78 and BCP 79.
skipping to change at page 56, line 29 skipping to change at page 61, line 45
such proprietary rights by implementers or users of this such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository at specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr. http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at this standard. Please address the information to the IETF at
ietf-ipr@ietf.org. ietf-ipr@ietf.org.
Disclaimer of Validity
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Copyright Statement
Copyright (C) The Internet Society (2006). This document is subject
to the rights, licenses and restrictions contained in BCP 78, and
except as set forth therein, the authors retain all their rights.
Acknowledgment Acknowledgment
Funding for the RFC Editor function is currently provided by the Funding for the RFC Editor function is provided by the IETF
Internet Society. Administrative Support Activity (IASA).
 End of changes. 164 change blocks. 
1101 lines changed or deleted 1319 lines changed or added

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