draft-ietf-xcon-common-data-model-04.txt   draft-ietf-xcon-common-data-model-05.txt 
XCON O. Novo XCON O. Novo
Internet-Draft G. Camarillo Internet-Draft G. Camarillo
Intended status: Informational Ericsson Intended status: Standards Track Ericsson
Expires: September 4, 2007 D. Morgan Expires: October 19, 2007 D. Morgan
Fidelity Investments Fidelity Investments
R. Even R. Even
Polycom Polycom
March 3, 2007 April 17, 2007
Conference Information Data Model for Centralized Conferencing (XCON) Conference Information Data Model for Centralized Conferencing (XCON)
draft-ietf-xcon-common-data-model-04.txt draft-ietf-xcon-common-data-model-05.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 38 skipping to change at page 1, line 38
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 September 4, 2007. This Internet-Draft will expire on October 19, 2007.
Copyright Notice Copyright Notice
Copyright (C) The IETF Trust (2007). Copyright (C) The IETF Trust (2007).
Abstract Abstract
This document defines an Extensible Markup Language (XML)-based This document defines an Extensible Markup Language (XML)-based
conference information data model for centralized conferencing conference information data model for centralized conferencing
(XCON). A conference object, which can be manipulated using a (XCON). A conference object, which can be manipulated using a
skipping to change at page 3, line 11 skipping to change at page 3, line 11
information data model defined in this document is an extension of information data model defined in this document is an extension of
(and thus, compatible with) the model specified in the Session (and thus, compatible with) the model specified in the Session
Initiation Protocol (SIP) Event Package for Conference State. Initiation Protocol (SIP) Event Package for Conference State.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 6 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 6
3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1. Data Model Structure . . . . . . . . . . . . . . . . . . . 6 3.1. Data Model Structure . . . . . . . . . . . . . . . . . . . 6
3.2. Conference Policies . . . . . . . . . . . . . . . . . . . 7 3.2. Role Definitions . . . . . . . . . . . . . . . . . . . . . 7
3.2.1. Role Definitions . . . . . . . . . . . . . . . . . . . 8 3.2.1. Role in a Floor . . . . . . . . . . . . . . . . . . . 8
3.2.1.1. Role in a Floor . . . . . . . . . . . . . . . . . 8 3.2.2. Changing Roles . . . . . . . . . . . . . . . . . . . . 8
3.2.1.2. Changing Roles . . . . . . . . . . . . . . . . . . 9 4. Data Model Definition . . . . . . . . . . . . . . . . . . . . 8
4. Data Model Definition . . . . . . . . . . . . . . . . . . . . 9
4.1. <conference-description> . . . . . . . . . . . . . . . . . 13 4.1. <conference-description> . . . . . . . . . . . . . . . . . 13
4.1.1. <conference-time> . . . . . . . . . . . . . . . . . . 14 4.1.1. <conference-time> . . . . . . . . . . . . . . . . . . 14
4.1.2. <conf-uris> . . . . . . . . . . . . . . . . . . . . . 15 4.1.2. <conf-uris> . . . . . . . . . . . . . . . . . . . . . 15
4.1.3. <service-uris> . . . . . . . . . . . . . . . . . . . . 16 4.1.3. <service-uris> . . . . . . . . . . . . . . . . . . . . 16
4.1.4. <maximum-user-count> . . . . . . . . . . . . . . . . . 16 4.1.4. <maximum-user-count> . . . . . . . . . . . . . . . . . 16
4.1.5. <available-media> . . . . . . . . . . . . . . . . . . 16 4.1.5. <available-media> . . . . . . . . . . . . . . . . . . 16
4.1.5.1. <controls> . . . . . . . . . . . . . . . . . . . . 17 4.1.5.1. <controls> . . . . . . . . . . . . . . . . . . . . 17
4.1.5.1.1. mute . . . . . . . . . . . . . . . . . . . . . 17 4.1.5.1.1. mute . . . . . . . . . . . . . . . . . . . . . 17
4.1.5.1.2. pause-video . . . . . . . . . . . . . . . . . 17 4.1.5.1.2. pause-video . . . . . . . . . . . . . . . . . 17
4.1.5.1.3. gain . . . . . . . . . . . . . . . . . . . . . 18 4.1.5.1.3. gain . . . . . . . . . . . . . . . . . . . . . 18
4.1.5.1.4. video-layout . . . . . . . . . . . . . . . . . 18 4.1.5.1.4. video-layout . . . . . . . . . . . . . . . . . 18
4.2. <host-info> . . . . . . . . . . . . . . . . . . . . . . . 19 4.2. <host-info> . . . . . . . . . . . . . . . . . . . . . . . 19
4.3. <conference-state> . . . . . . . . . . . . . . . . . . . . 19 4.3. <conference-state> . . . . . . . . . . . . . . . . . . . . 19
4.4. <floor-information> . . . . . . . . . . . . . . . . . . . 19 4.4. <floor-information> . . . . . . . . . . . . . . . . . . . 19
4.5. <users> . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.5. <users> . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.5.1. <allowed-users-list> . . . . . . . . . . . . . . . . . 22 4.5.1. <allowed-users-list> . . . . . . . . . . . . . . . . . 22
4.5.2. <user> . . . . . . . . . . . . . . . . . . . . . . . . 22 4.5.2. <user> . . . . . . . . . . . . . . . . . . . . . . . . 22
4.5.2.1. <from-mixer>, <to-mixer> . . . . . . . . . . . . . 23 4.5.2.1. <from-mixer>, <to-mixer> . . . . . . . . . . . . . 24
4.5.2.1.1. <floor> . . . . . . . . . . . . . . . . . . . 23 4.5.2.1.1. <floor> . . . . . . . . . . . . . . . . . . . 24
4.5.3. <sidebars-by-ref> . . . . . . . . . . . . . . . . . . 24 4.5.3. <sidebars-by-ref> . . . . . . . . . . . . . . . . . . 24
4.5.4. <sidebars-by-val> . . . . . . . . . . . . . . . . . . 24 4.5.4. <sidebars-by-val> . . . . . . . . . . . . . . . . . . 24
5. RELAX NG Schema . . . . . . . . . . . . . . . . . . . . . . . 24 5. RELAX NG Schema . . . . . . . . . . . . . . . . . . . . . . . 25
6. XML Schema Extensibility . . . . . . . . . . . . . . . . . . . 33 6. XML Schema Extensibility . . . . . . . . . . . . . . . . . . . 32
7. XML Example . . . . . . . . . . . . . . . . . . . . . . . . . 33 7. XML Example . . . . . . . . . . . . . . . . . . . . . . . . . 33
8. Security Considerations . . . . . . . . . . . . . . . . . . . 42 8. Security Considerations . . . . . . . . . . . . . . . . . . . 41
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 42 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 41
9.1. Conference Relax NG Schema Registration . . . . . . . . . 42 9.1. Conference Relax NG Schema Registration . . . . . . . . . 41
9.2. Conference Namespace Registration . . . . . . . . . . . . 43 9.2. Conference Namespace Registration . . . . . . . . . . . . 41
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 43 9.3. Conference Object Identifier Registration . . . . . . . . 41
11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 43 9.4. Conference User Identifier Registration . . . . . . . . . 42
11.1. Normative References . . . . . . . . . . . . . . . . . . . 43 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 42
11.2. Informative References . . . . . . . . . . . . . . . . . . 43 11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 42
11.1. Normative References . . . . . . . . . . . . . . . . . . . 42
11.2. Informative References . . . . . . . . . . . . . . . . . . 42
Appendix A. Appendix A. Non-Normative RELAX NG Schema in XML Appendix A. Appendix A. Non-Normative RELAX NG Schema in XML
Syntax . . . . . . . . . . . . . . . . . . . . . . . 44 Syntax . . . . . . . . . . . . . . . . . . . . . . . 43
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 69 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 66
Intellectual Property and Copyright Statements . . . . . . . . . . 71 Intellectual Property and Copyright Statements . . . . . . . . . . 68
1. Introduction 1. Introduction
Conference objects are a fundamental concept in Centralized Conference objects are a fundamental concept in Centralized
conferencing, as described in the XCON Conferencing Framework [1]. A conferencing, as described in the XCON Conferencing Framework [4]. A
conference object contains data that represents a conference during conference object contains data that represents a conference during
each of its various stages (e.g., reserved, started, running, ended, each of its various stages (e.g., reserved, started, running, ended,
etc.). Conference Objects are instantiations of the conference etc.). Conference Objects are instantiations of the conference
information data model defined in this document. Consequently, information data model defined in this document. Consequently,
conference objects follow the XML format defined in this document. conference objects follow the XML format defined in this document.
A conference object contains the core information of a conference A conference object contains the core information of a conference
(i.e., capabilities, membership, roles, call control signaling, (i.e., capabilities, membership, roles, call control signaling,
media, etc.) and specifies who, and in which way, can manipulate that media, etc.) and specifies who, and in which way, can manipulate that
information. information.
Figure 1 shows logical functional elements of a conference server as Figure 1 shows logical functional elements of a conference server as
defined by the XCON Conferencing Framework [1]. They are a defined by the XCON Conferencing Framework [4]. They are a
Conference Control Server, a Floor Control Server, a number of Foci, Conference Control Server, a Floor Control Server, a number of Foci,
and a Notification Service. A conference control protocol provides and a Notification Service. A conference control protocol provides
the interface between a conference and media control client, and the the interface between a conference and media control client, and the
conference control server. A floor control protocol (e.g., BFCP [7]) conference control server. A floor control protocol (e.g., BFCP [5])
provides the interface between a floor control client and the floor provides the interface between a floor control client and the floor
control server. A call signaling protocol (e.g., SIP, H.323, PSTN, control server. A call signaling protocol (e.g., SIP, H.323, PSTN,
etc.) provides the interface between a call signaling client and a etc.) provides the interface between a call signaling client and a
Focus. A notification protocol (e.g., SIP-based event notifications Focus. A notification protocol (e.g., SIP-based event notifications
[8]) provides the interface between the conferencing client and the [6]) provides the interface between the conferencing client and the
Notification Service. Within a conference, the conference control Notification Service. Within a conference, the conference control
server, floor control server, and focus can modify the information in server, floor control server, and focus can modify the information in
the conference object. the conference object.
............................................................... ...............................................................
. Conferencing Server . . Conferencing Server .
. +---------------------------------------------------+ . . +---------------------------------------------------+ .
. | C o n f e r e n c e o b j e c t | . . | C o n f e r e n c e o b j e c t | .
. +-+--------------------------------------------------+| . . +-+--------------------------------------------------+| .
. | C o n f e r e n c e o b j e c t || . . | C o n f e r e n c e o b j e c t || .
skipping to change at page 6, line 5 skipping to change at page 6, line 5
........|..............|..............|..........|............. ........|..............|..............|..........|.............
|Conference |Binary Floor |Call |Notification |Conference |Binary Floor |Call |Notification
|Control |Control |Signaling |Protocol |Control |Control |Signaling |Protocol
|Protocol |Protocol |Protocol | |Protocol |Protocol |Protocol |
........v..............v..............v..........v............. ........v..............v..............v..........v.............
. C o n f e r e n c i n g C l i e n t . . C o n f e r e n c i n g C l i e n t .
............................................................... ...............................................................
Figure 1: Conference Server Architecture Figure 1: Conference Server Architecture
The Session Initiation Protocol (SIP) Event Package for Conference The Session Initiation Protocol (SIP) Event Package for Conference
State, specified in RFC 4575 [2], already defines a data model for State, specified in RFC 4575 [1], already defines a data model for
conferences. However, that model is SIP specific and lacks elements conferences. However, that model is SIP specific and lacks elements
related to some of the functionality defined by the XCON conferencing related to some of the functionality defined by the XCON conferencing
framework [1] (e.g., floor control). The data model defined in this framework [4] (e.g., floor control). The data model defined in this
document extends the one defined in RFC 4575 [2]. The result is a document extends the one defined in RFC 4575 [1]. The result is a
data model that supports more call signaling protocols besides SIP data model that supports more call signaling protocols besides SIP
and that covers all the functionality defined in the XCON and that covers all the functionality defined in the XCON
conferencing framework [1]. conferencing framework [4].
2. Terminology 2. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [3]. document are to be interpreted as described in RFC 2119 [2].
This document uses the terminology defined in the XCON Conferencing This document uses the terminology defined in the XCON Conferencing
Framework [1], the SIP conferencing framework [4] and the BFCP Framework [4], the SIP conferencing framework [7] and the BFCP
(Binary Floor Control Protocol) specification [7]. Readers of this (Binary Floor Control Protocol) specification [5]. Readers of this
document are supposed to be familiar with the terminology used in document are supposed to be familiar with the terminology used in
those documents. those documents.
3. Overview 3. Overview
The data model defined in this document is the result of extending The data model defined in this document is the result of extending
the data model defined in RFC 4575 [2] with new elements, which carry the data model defined in RFC 4575 [1] with new elements, which carry
information such as non-SIP URIs or floor-control-related parameters. information such as non-SIP URIs or floor-control-related parameters.
This data model can be used by conference servers providing different This data model can be used by conference servers providing different
types of basic conferences. It is expected that this data model can types of basic conferences. It is expected that this data model can
be further extended with new elements in the future in order to be further extended with new elements in the future in order to
implement advanced features. implement advanced features.
3.1. Data Model Structure 3.1. Data Model Structure
The information in this data model is structured in the following The information in this data model is structured in the following
manner. All the information related to a conference is contained in manner. All the information related to a conference is contained in
skipping to change at page 7, line 17 skipping to change at page 7, line 17
o The <floor-information> element contains information about the o The <floor-information> element contains information about the
status of the different floors in the conference. status of the different floors in the conference.
o The <users> element describes the membership information as a o The <users> element describes the membership information as a
whole. The <users> element contains a set of <user> child whole. The <users> element contains a set of <user> child
elements, each describing a single participant in the conference. elements, each describing a single participant in the conference.
o If a participant in the main conference joins a sidebar, a new o If a participant in the main conference joins a sidebar, a new
element is created in the conference referenced from the element is created in the conference referenced from the
<sidebars-by-ref> element or under one of the <sidebars-by-val> <sidebars-by-ref> element or under one of the <sidebars-by-val>
elements. elements.
3.2. Conference Policies 3.2. Role Definitions
Conference policies specify who, and in which way, information in a
conference object can be manipulate. This data model has no strict
separation between conference membership and media information, and
its related policies. Policy-related elements and attributes appear
with the element they apply to.
[Editor's Note: The Policies section is still under discussion. For
more details refer to the XCON mailing list. ]
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 define 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. This is partially described in [1]. When the conferencing
server receives a request to 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 requestor can access that element.
The attributes specify the minimum requestor's role that can access
or modify the element of the conference. Requestors with a role with
lower privileges as defined in Section 3.2.1 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" role and the 'read-
write' attribute MUST be interpreted as an "administrator" role by
default. It is possible to defined only one of the attributes of the
element, the other attribute SHOULD be interpreted by default. The
next section defines conferencing roles that are used to represent
participants within a Conference Object. Additional roles may be
defined in the future, as necessary, with their corresponding schema
extensions, as appropriate.
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.
The policies and rights are 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 end-points allowed to
perform certain operations on a conference object.
3.2.1. Role Definitions
This section defines five logical roles for a Conference System to This section defines five logical roles for a Conference System to
represent participants within a Conference Object. In hierarchical represent participants within a Conference Object. In hierarchical
order they are: "administrator", "creator", "moderator", order they are: "administrator", "creator", "moderator",
"participant", and "observer". A set of semantics associated with "participant", and "observer". A set of semantics associated with
each role is out of the scope of this document. A Conference System each role is out of the scope of this document. A Conference System
MAY choose not to support a particular role. As well, additional MAY choose not to support a particular role. As well, additional
roles may be defined in the future, as necessary, with their roles may be defined in the future, as necessary, with their
corresponding schema extensions. corresponding schema extensions.
skipping to change at page 8, line 49 skipping to change at page 8, line 5
MUST have a role defined as "participant". MUST have a role defined as "participant".
Each user participating in a conference instance is an entity that Each user participating in a conference instance is an entity that
can assume one or more roles. Any entity can be allocated to an can assume one or more roles. Any entity can be allocated to an
appropriate logical role. A role can also be assumed in conjunction appropriate logical role. A role can also be assumed in conjunction
with the users identity within the Conference System as a result of with the users identity within the Conference System as a result of
an identity assertion transaction on the Conference System. If no an identity assertion transaction on the Conference System. If no
roles are defined for an entity, they SHOULD by default be a roles are defined for an entity, they SHOULD by default be a
"participant" but local policy MAY define an alternative. "participant" but local policy MAY define an alternative.
3.2.1.1. Role in a Floor 3.2.1. Role in a Floor
Floor control in centralized conferencing is described in the Binary Floor control in centralized conferencing is described in the Binary
Floor Control Protocol (BFCP) [7]. Floors can be specified in the Floor Control Protocol (BFCP) [5]. Floors can be specified in the
Conference System or created dynamically. Users can be added or Conference System or created dynamically. Users can be added or
deleted from a floor when the conference is active. deleted from a floor when the conference is active.
A floor chair is a logical entity that manages a floor (grants, A floor chair is a logical entity that manages a floor (grants,
denies, or revokes a floor). The floor chair is usually in an denies, or revokes a floor). The floor chair is usually in an
"administrator", "moderator", or "creator" role. A floor participant "administrator", "moderator", or "creator" role. A floor participant
is a logical entity that requests floors, and possibly information is a logical entity that requests floors, and possibly information
about them from a floor control server. They are usually in a about them from a floor control server. They are usually in a
"participant" or even a "moderator" role [7]. "participant" or even a "moderator" role [5].
Users in a conference MAY assume different roles in different floors. Users in a conference MAY assume different roles in different floors.
They MAY also assume different roles in the same floor, as floor They MAY also assume different roles in the same floor, as floor
transactions are processed. transactions are processed.
3.2.1.2. Changing Roles 3.2.2. Changing Roles
Users can change roles during a conference. This can be done in two Users can change roles during a conference. This can be done in two
ways: First, the user can join a new floor in a different role. ways: First, the user can join a new floor in a different role.
Second, an "administrator" or "creator" can dynamically change that Second, an "administrator" or "creator" can dynamically change that
user's role. This can be accomplished before the conference is user's role. This can be accomplished before the conference is
instantiated, or during the conference, using an appropriate instantiated, or during the conference, using an appropriate
conference control protocol. A logical entity whose role has been conference control protocol. A logical entity whose role has been
changed will typically have access to the media streams associated changed will typically have access to the media streams associated
with that role. with that role.
4. Data Model Definition 4. Data Model Definition
A conference object document is an XML [5] document that MUST be well A conference object document is an XML [8] document that MUST be well
formed and SHOULD be valid. Conference object data model documents formed and SHOULD be valid. Conference object data model documents
MUST be based on XML 1.0 and SHOULD be encoded using UTF-8. MUST be based on XML 1.0 and SHOULD be encoded using UTF-8.
A conference object document begins with the root element tag A conference object document begins with the root element tag
<conference-info>, which is defined in [2]. The <conference-info> <conference-info>, which is defined in [1]. The <conference-info>
element has an 'entity' attribute that contains a conference object element has an 'entity' attribute that contains a conference object
identifier (ID) that identifies the conference being described in the identifier (XCON-URI) that identifies the conference being described
document. in the document.
A conferencing system may maintain a relationship between the
conference object identifiers and the identifiers associated with
each of the complimentary centralized conferencing protocols (e.g.,
call signaling protocols, BFCP, etc.).
This implicit binding provides a structured mapping of the various
protocols with the associated conference object Identifier. Figure 2
illustrates the relationship between the identifiers used for the
protocols within the framework [4] and the general XCON-URI.
+--------------------------+
| Conference |
| Object |
| Identifier |
+--------------------------+
| xcon:Ji092i@example.com |
+------+-------------------+
|
|
|
+-----------------+---------------+
| |
+-----------+-----------+ +-------+-------+
| CSP Conference IDs | | BFCP 'confid' |
+-----------------------+ +---------------+
|h323:Ji092i@example.com| | Ji092i |
|tel:+44(0)2920930033 | +-------+-------+
|sip:Ji092i@example.com | |
+-----------------------+ +-------|-------+
| BFCP 'floorid |
+---------------+
| UEK78d |
| 09cnJk |
+---------------+
Figure 2: Conference Object Mapping
Further elements can be added to the tree representation in Figure 2
to enable a complete representation of a conference instance within a
conferencing system.
The <conference-info> element contains the <conference-description>, The <conference-info> element contains the <conference-description>,
<host-info>, <conference-state>, <floor-information>, <users>, <host-info>, <conference-state>, <floor-information>, <users>,
<sidebars-by-ref>, <sidebars-by-val> child elements. All these <sidebars-by-ref>, <sidebars-by-val> child elements. All these
elements, except <floor-information>, are defined in [2]. A elements, except <floor-information>, are defined in [1]. A
conference document MUST at least include the <conference- conference document MUST at least include the <conference-
description>, <host-info>, <conference-state>, and <users> child description>, <host-info>, <conference-state>, and <users> child
elements. elements.
The following non-normative diagram shows the structure of conference The following non-normative diagram shows the structure of conference
object documents. The operator "!" preceding an element indicates object documents. The operator "!" preceding an element indicates
that the element is mandatory in the data model. The operator "*" that the element is mandatory in the data model. The operator "*"
following an element indicates that the element is introduced and following an element indicates that the element is introduced and
defined in this document. That is, elements without a "*" have defined in this document. That is, elements without a "*" have
already been defined in RFC 4575 [2]. already been defined in RFC 4575 [1].
!<conference-info> !<conference-info>
| |
|--!<conference-description> |--!<conference-description>
| |--<display-text> | |--<display-text>
| |--<subject> | |--<subject>
| |--<free-text>* | |--<free-text>*
| |--<keywords> | |--<keywords>
| |--<allow-sidebars>* | |--<allow-sidebars>*
| |--<conference-time>* | |--<conference-time>*
skipping to change at page 12, line 7 skipping to change at page 12, line 6
| | |--<PSTN-ISDN>* | | |--<PSTN-ISDN>*
| | | |--<phone number>* | | | |--<phone number>*
| ... | ...
|--<conference-state> |--<conference-state>
| |--<allow-conference-event-subscription>* | |--<allow-conference-event-subscription>*
| |--<user-count> | |--<user-count>
| |--!<active> | |--!<active>
| |--<locked> | |--<locked>
| |
|--<floor-information>* |--<floor-information>*
| |--<conference-ID>*
| |--<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>*
| | | |--<chair-id>* | | | |--<chair-id>*
| | | |--<chair-id>* | | | |--<chair-id>*
| | | ... | | | ...
skipping to change at page 13, line 45 skipping to change at page 13, line 45
| | ... | | ...
| |--<entry> | |--<entry>
| | | | | |
| ... ... | ... ...
The following sections describe these elements in detail. The full The following sections describe these elements in detail. The full
Relax NG schema is provided Section 5. Relax NG schema is provided Section 5.
4.1. <conference-description> 4.1. <conference-description>
The <conference-description> element, which is defined in [2], The <conference-description> element, which is defined in [1],
describes the conference as a whole. It SHOULD have an extra describes the conference as a whole. It SHOULD have an extra
attribute 'xml:lang' to specify the language used in the contents of attribute 'xml:lang' to specify the language used in the contents of
this element as defined in Section 2.12 of [5]. It is comprised of this element as defined in Section 2.12 of [8]. It is comprised of
<display-text>, <subject>, <free-text>, <keywords>, <allow-sidebars>, <display-text>, <subject>, <free-text>, <keywords>, <allow-sidebars>,
<conference-time>, <conf-uris>, <service-uris>, <maximum-user-count>, <conference-time>, <conf-uris>, <service-uris>, <maximum-user-count>,
and <available-media>. and <available-media>.
The <display-text>, <subject>, <free-text> and <keywords> elements The <display-text>, <subject>, <free-text> and <keywords> elements
are defined in [2]. They are used to describe the conference's are defined in [1]. They are used to describe the conference's
content. content.
The child element <allow-sidebars> describes the capabilities of the The child element <allow-sidebars> describes the capabilities of the
conference. conference.
The <conference-time> child element contains information related to The <conference-time> child element contains information related to
conference time and duration of the conference. The <conf-uris> and conference time and duration of the conference. The <conf-uris> and
<service-uris> are used to describe the conference-related <service-uris> are used to describe the conference-related
identifiers. The <maximum-user-count> child element indicates the identifiers. The <maximum-user-count> child element indicates the
number of users that can be invited to the conference. The number of users that can be invited to the conference. The
skipping to change at page 15, line 21 skipping to change at page 15, line 21
An administrator can indicate the time when users can join a An administrator can indicate the time when users can join a
conference by populating the <can-join-after-offset> element. conference by populating the <can-join-after-offset> element.
Similarly, an administrator can define the time after which new users Similarly, an administrator can define the time after which new users
are not allowed to join the conference anymore. This is done by are not allowed to join the conference anymore. This is done by
populating the <must-join-before-offset> element expressing the populating the <must-join-before-offset> element expressing the
offset as signed integers representing seconds before/after DTSTART offset as signed integers representing seconds before/after DTSTART
field. field.
The <base> child element specifies the iCalendar object of the The <base> child element specifies the iCalendar object of the
conference. The iCalendar object components are defined in [6]. conference. The iCalendar object components are defined in [3].
The <entry> element also contains the <request-user> child element. The <entry> element also contains the <request-user> child element.
It is possible to define the time when users or resources on the It is possible to define the time when users or resources on the
<allowed-users-list> is requested to join the conference by using the <allowed-users-list> is requested to join the conference by using the
<request-users> element. This element expresses the offset as signed <request-users> element. This element expresses the offset as signed
integers representing seconds before/after DTSTART field. integers representing seconds before/after DTSTART field.
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
approaching. If the <notify-end-of-conference> element is not approaching. If the <notify-end-of-conference> element is not
skipping to change at page 15, line 45 skipping to change at page 15, line 45
representing seconds before/after DTSTART field. The <allowed- representing seconds before/after DTSTART field. The <allowed-
extend-mixing-end-offset> refers to the possibility to extend the extend-mixing-end-offset> refers to the possibility to extend the
conference. It has two values: "allowed", "denied". conference. It has two values: "allowed", "denied".
4.1.2. <conf-uris> 4.1.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: <entry>, <H.323>, and <PSTN-ISDN>. The sequence of child elements: <entry>, <H.323>, and <PSTN-ISDN>. The
<entry> element refers to the SIP protocol. It keeps the same name <entry> element refers to the SIP protocol. It keeps the same name
that is defined in [2] to maintain backwards compatibility with this that is defined in [1] to maintain backwards compatibility with this
RFC. The <entry> element contains the <uri>, <display-text>, and RFC. The <entry> element contains the <uri>, <display-text>, and
<purpose> which are described in [2]. The currently defined <purpose> which are described in [1]. The currently defined
<purpose> values to be used with the <conf-uris> are: <purpose> values to be used with the <conf-uris> are:
o participation: Accessing a URI with this <purpose> will bring the o participation: Accessing a URI with this <purpose> will bring the
party into the conference party into the conference
o streaming: Accessing a URI with this <purpose> will commence o streaming: Accessing a URI with this <purpose> will commence
streaming the conference, but not allow active participation streaming the conference, but not allow active participation
The <H.323> element includes either a <H.323-alias> or a <H.323-URI> The <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. The <PSTN-ISDN> describes to the user which phone number to use. The <PSTN-ISDN>
element may include one or more <phone number> child elements. element may include one or more <phone number> child elements.
4.1.3. <service-uris> 4.1.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: <entry>, conference. It contains a sequence of child elements: <entry>,
<H.323>, <PSTN-ISDN>, and <BFCP>. The <entry> child element contains <H.323>, and <PSTN-ISDN>. The <entry> child element contains <uri>,
<uri>, <display-text>, and <purpose>. The purpose will be used to <display-text>, and <purpose>. The purpose will be used to describe
describe the service. The currently defined <purpose> values to be the service. The currently defined <purpose> values to be used with
used with the <service-uris> are: the <service-uris> are:
o web-page: Indicates the web page containing the additional o web-page: Indicates the web page containing the additional
information about the conference information about the conference
o recording: Indicates the link at which the recorded conference o recording: Indicates the link at which the recorded conference
context can be retrieved context can be retrieved
o event: Indicates the URI at which a subscription to the conference o event: Indicates the URI at which a subscription to the conference
event package may be requested. This would typically be the event package may be requested. This would typically be the
conference URI of the main conference conference URI of the main conference
Future extensions to this schema may define new values and register Future extensions to this schema may define new values and register
them with IANA. These elements are described in [2]. <H.323>, and them with IANA. These elements are described in [1]. <H.323>, and
<PSTN-ISDN> child elements are described in the <conf-uris> section. <PSTN-ISDN> child elements are described in the <conf-uris> section.
4.1.4. <maximum-user-count> 4.1.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. Note that this value is set by an to join the conference. Note that this value is set by an
administrator and can reflect any local policies such as network administrator and can reflect any local policies such as network
consumption, CPU processing power, and licensing rules. consumption, CPU processing power, and licensing rules.
4.1.5. <available-media> 4.1.5. <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 [1]. 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 approval of the moderator of the automatically or needs the approval of the moderator of the
conference ("automatic", "moderator-controlled"). The <codecs> conference ("automatic", "moderator-controlled"). The <codecs>
element contains <entry> elements. A <entry> element can have the element contains <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 contains the policy for that codec, and the 'decision' attribute contains the policy for that
codec (allowed, or disallowed). codec (allowed, or disallowed).
The child elements <mixing-mode> and <mix-level> describe a default The child elements <mixing-mode> and <mix-level> describe a default
skipping to change at page 19, line 25 skipping to change at page 19, line 25
automatic: This option allows the focus to add panels as streams are automatic: This option allows the focus to add panels as streams are
added up to a limit of "panels". added up to a limit of "panels".
4.2. <host-info> 4.2. <host-info>
The <host-info> element contains information about the entity hosting The <host-info> element contains information about the entity hosting
the conference. This information is set before the conference the conference. This information is set before the conference
activation, and is rarely changed during the conference lifetime. activation, and is rarely changed during the conference lifetime.
The <host-info> element contains the <display-text>, <web-page> and The <host-info> element contains the <display-text>, <web-page> and
<uris> child elements. The <display-text> and <web-page> child <uris> child elements. The <display-text> and <web-page> child
elements are explained in [2]. The <uris> child element contains a elements are explained in [1]. The <uris> child element contains a
sequence of child elements: <entry>, <H.323>, and <PSTN-ISDN>. The sequence of child elements: <entry>, <H.323>, and <PSTN-ISDN>. The
<entry> element refers to the SIP protocol. It keeps the same name <entry> element refers to the SIP protocol. It keeps the same name
that is defined in [2] to maintain backwards compatibility with this that is defined in [1] to maintain backwards compatibility with this
RFC. Future extensions to the <uris> element may define new values. RFC. Future extensions to the <uris> element may define new values.
4.3. <conference-state> 4.3. <conference-state>
The <conference-state> element and the <user-count>, <active>, and The <conference-state> element and the <user-count>, <active>, and
<locked> child elements are explained in section 5.5 of [2]. The <locked> child elements are explained in section 5.5 of [1]. The
<allow-conference-event-subscription> element represents a boolean <allow-conference-event-subscription> element represents a boolean
action. If set to TRUE, the focus is instructed to allow the action. If set to TRUE, the focus is instructed to allow the
subscription to conference state events, such as the SIP Event subscription to conference state events, such as the SIP Event
Package for Conference State [2]. If set to FALSE, the subscription Package for Conference State [1]. If set to FALSE, the subscription
to conference state events would be rejected. If this element is to conference state events would be rejected. If this element is
undefined it has a default value of TRUE, causing the subscription to undefined it has a default value of TRUE, causing the subscription to
conference state events to be accepted. conference state events to be accepted.
4.4. <floor-information> 4.4. <floor-information>
The <floor-information> element has the <conference-ID>, <allow- The <floor-information> element has the <conference-ID>, <allow-
floor-events>, <floor-request-handling>, and <conference-floor- floor-events>, <floor-request-handling>, and <conference-floor-
policy> child elements. Other elements from different namespaces MAY policy> child elements. Other elements from different namespaces MAY
be present for the purposes of extensibility. This element has its be present for the purposes of extensibility. This element has its
skipping to change at page 22, line 46 skipping to change at page 22, line 46
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 toward the focus expected to initiate the session establishment toward 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.
4.5.2. <user> 4.5.2. <user>
The element <user> describes a single participant in the conference. The element <user> describes a single participant in the conference.
The following elements of <user> are defined in [2], section 5.6: The following elements of <user> are defined in [1], section 5.6:
<display-text>, <associated-aors>, <roles>, <languages>, <cascaded- <display-text>, <associated-aors>, <roles>, <languages>, <cascaded-
focus>, and <endpoint>. <user> has two attributes: 'entity' and focus>, and <endpoint>. <user> has two attributes: 'entity' and
'state'. The attribute 'state' is defined in [2], section 5.6. The 'state'. The attribute 'state' is defined in [1], section 5.6. The
attribute 'entity' contains a unique conference user identifier. attribute 'entity' contains a unique conference user identifier.
Other user identifiers can be associated with this conference user Other user identifiers can be associated with this conference user
identifier and enable the conferencing system to correlate and map identifier and enable the conferencing system to correlate and map
these multiple authenticated user identities to a single global user these multiple authenticated user identities to a single global user
identifier. identifier. Figure 4 illustrates an example using the conference
user identifier in association with the user identity defined for
BFCP, SIP, and H323 user identity. It should be noted that a
conferencing system is free to structure such relationships as
required and this information is just included as a guideline that
can be used.
+--------------+
| Conference |
| User |
| Identifier |
+--------------+
| John |
+------+-------+
|
|
|
+---------------------+---------------------+
| | |
+-------+--------+ +-------+-------+ +--------+-------+
| BFCP User ID | | SIP User ID | | H323 User ID |
+----------------+ +---------------+ +----------------+
| HK37ihdaj | | 123674 | | 928373 |
+----------------+ +---------------+ +----------------+
Figure 4: Conference Object Mapping
The <provide-anonymity> element provides anonymity to the user. In The <provide-anonymity> element provides anonymity to the user. In
this case, the focus provides to the rest of the participants an this case, the focus provides to the rest of the participants an
anonymous identity for that user, for example anonymousX. This can anonymous identity for that user, for example anonymousX. This
be achieved by using the <provide-anonymity> element. It is a element only affects the way the user information is shown to the
boolean transformation. If set to TRUE, the conference participants oher participants. The real information about the user is still
will see an anonymous identity for the user whose identity is present stored in the data model. This can be achieved by using the
in the conditions. <provide-anonymity> element. It is a boolean transformation. If set
to TRUE, the conference participants will see an anonymous identity
for the user whose identity is present in the conditions.
The <endpoint> child element can provide the desired level of detail The <endpoint> child element can provide the desired level of detail
about the user's devices and their signaling sessions taking part in about the user's devices and their signaling sessions taking part in
the conference and has the following child elements defined in RFC the conference and has the following child elements defined in RFC
4575 [2]: <display-text>, <referred>, <status>, <joining-method>, 4575 [1]: <display-text>, <referred>, <status>, <joining-method>,
<joining-info>, <disconnection-method>, <disconnection-info>, <joining-info>, <disconnection-method>, <disconnection-info>,
<media>, and <call-info>. The <endpoint>/<media> element has two <media>, and <call-info>. The <endpoint>/<media> element has two
other child elements: <to-mixer>, and <from-mixer> described in the other child elements: <to-mixer>, and <from-mixer> described in the
following section. following section.
4.5.2.1. <from-mixer>, <to-mixer> 4.5.2.1. <from-mixer>, <to-mixer>
Similar to the controls defined in the <available-media> element, Similar to 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
data structure. The <to-mixer> element details properties associated data structure. The <to-mixer> element details properties associated
skipping to change at page 24, line 24 skipping to change at page 25, line 7
4.5.4. <sidebars-by-val> 4.5.4. <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. By elements each containing information about a single sidebar. By
using this element, the server can include a full or partial using this element, the server can include a full or partial
description of each sidebar (as a sub-conference) in the body of the description of each sidebar (as a sub-conference) in the body of the
main conference document. main conference document.
5. RELAX NG Schema 5. RELAX NG Schema
In accordance with the XCON framework document [1], the Conference In accordance with the XCON framework document [4], the Conference
Object is a logical representation of a conference instance. The Object is a logical representation of a conference instance. The
conference information schema contains core information that is conference information schema contains core information that is
utilized in any conference. It also contains the variable utilized in any conference. It also contains the variable
information part of the Conference Object. information part of the Conference Object.
This specification defines some document fragments in RELAX NG This specification defines some document fragments in RELAX NG
format. format.
namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0" namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
namespace local = ""
namespace ns1 = "urn:ietf:params:xml:ns:conference-info-urn" namespace ns1 = "urn:ietf:params:xml:ns:conference-info-urn"
namespace ns2 = "urn:ietf:params:xml:ns:common-policy" default namespace ns2 = "urn:ietf:params:xml:ns:conference-schema"
default namespace ns3 = "urn:ietf:params:xml:ns:conference-schema"
start = element conference-info { conference-type } start = element conference-info { conference-type }
# CONFERENCE TYPE # CONFERENCE TYPE
conference-type = conference-type =
attribute entity { text }, attribute entity { text },
attribute version { xsd:unsignedInt }?, attribute version { xsd:unsignedInt }?,
attribute state { state-type }?, attribute state { state-type }?,
role-type,
conference-description-type, conference-description-type,
element host-info { host-type }?, element host-info { host-type }?,
element conference-state { conference-state-type }?, element conference-state { conference-state-type }?,
element floor-information { floor-information-type }?, element floor-information { floor-information-type }?,
element users { users-type }, element users { users-type },
element sidebars-by-ref { sidebars-by-ref-type }?, element sidebars-by-ref { sidebars-by-ref-type }?,
element sidebars-by-val { sidebars-by-val-type }?, element sidebars-by-val { sidebars-by-val-type }?,
anyElement* anyElement*
# CONFERENCE DESCRIPTION TYPE # CONFERENCE DESCRIPTION TYPE
conference-description-type = conference-description-type =
element conference-description { element conference-description {
role-type,
attribute xml:lang { xsd:language }?, attribute xml:lang { xsd:language }?,
attribute state { state-type }?, attribute state { state-type }?,
element display-text { text }?, element display-text { text }?,
element subject { text }?, element subject { text }?,
element free-text { text }?, element free-text { text }?,
element keywords { element keywords {
list { xsd:string* } list { xsd:string* }
}?, }?,
element allow-sidebars { xsd:boolean }?, element allow-sidebars { xsd:boolean }?,
element conference-time { conferencetime-type }?, element conference-time { conferencetime-type }?,
element conf-uris { uris-type }?, element conf-uris { uris-type }?,
element service-uris { uris-type }?, element service-uris { uris-type }?,
element maximum-user-count { xsd:int }?, element maximum-user-count { xsd:int }?,
element available-media { conference-media-type }?, element available-media { conference-media-type }?,
anyElement* anyElement*
} }
# CONFERENCE TIME # CONFERENCE TIME
conferencetime-type = conferencetime-type =
role-type,
element entry { element entry {
element base { text }?, element base { text }?,
element mixing-start-offset { element mixing-start-offset {
xsd:dateTime { pattern = ".+T.+Z.*" }, xsd:dateTime { pattern = ".+T.+Z.*" },
attribute required-participant { single-role-type }, attribute required-participant { single-role-type },
anyAttribute anyAttribute
}?, }?,
element mixing-end-offset { element mixing-end-offset {
xsd:dateTime { pattern = ".+T.+Z.*" }, xsd:dateTime { pattern = ".+T.+Z.*" },
attribute required-participant { single-role-type }, attribute required-participant { single-role-type },
skipping to change at page 26, line 11 skipping to change at page 26, line 37
allowed-extend-mixing-values allowed-extend-mixing-values
}?, }?,
anyElement* anyElement*
}*, }*,
anyElement* anyElement*
# ALLOWED EXTEND MIXING VALUES # ALLOWED EXTEND MIXING VALUES
allowed-extend-mixing-values = allowed-extend-mixing-values =
xsd:string "allowed" | xsd:string "denied" xsd:string "allowed" | xsd:string "denied"
# URIS TYPE # URIS TYPE
uris-type = uris-type =
role-type,
attribute state { state-type }?, attribute state { state-type }?,
(element entry { uri-type }* (element entry { uri-type }*
& element H323 { H323-type }* & element H323 { H323-type }*
& element PSTN-ISDN { PSTN-type }*), & element PSTN-ISDN { PSTN-type }*),
anyElement* anyElement*
# SIP TYPE # SIP TYPE
uri-type = uri-type =
role-type,
(element uri { xsd:anyURI }, (element uri { xsd:anyURI },
element display-text { text }?, element display-text { text }?,
element purpose { text }?, element purpose { text }?,
anyElement*)* anyElement*)*
# H323 TYPE # H323 TYPE
H323-type = H323-type =
role-type,
element H.323-alias { text }?, element H.323-alias { text }?,
element H.323-URI { xsd:anyURI }?, element H.323-URI { xsd:anyURI }?,
anyElement* anyElement*
# PSTN TYPE # PSTN TYPE
PSTN-type = PSTN-type =
role-type,
attribute PIN-code { xsd:unsignedInt }, attribute PIN-code { xsd:unsignedInt },
attribute purpose { xsd:unsignedInt }, attribute purpose { xsd:unsignedInt },
(element phone-number { xsd:unsignedInt }, (element phone-number { xsd:unsignedInt },
anyElement*)+ anyElement*)+
# BFCP TYPE
BFCP-type =
role-type,
(element conference-ID { xsd:unsignedInt },
anyElement*)*
# MAXIMUM USER TYPE
maximum-user-count-type =
role-type,
anyAttribute,
(element entry {
xsd:unsignedInt,
attribute role { single-role-type }
},
anyElement*)+
# CONFERENCE MEDIA TYPE # CONFERENCE MEDIA TYPE
conference-media-type = conference-media-type =
role-type,
attribute state { state-type }?, attribute state { state-type }?,
element entry { conference-medium-type }*, element entry { conference-medium-type }*,
anyElement* anyElement*
# CONFERENCE MEDIUM TYPE # CONFERENCE MEDIUM TYPE
conference-medium-type = conference-medium-type =
role-type,
attribute label { text }, attribute label { text },
element display-text { text }?, element display-text { text }?,
element type { text }?, element type { text }?,
element status { media-status-type }?, element status { media-status-type }?,
element mixing-mode { mix-mode-type }?, element mixing-mode { mix-mode-type }?,
element mix-level { xsd:unsignedInt }?, element mix-level { xsd:unsignedInt }?,
element codecs { codecs-type }?, element codecs { codecs-type }?,
element controls { controls-type }?, element controls { controls-type }?,
anyElement* anyElement*
# CONTROLS TYPE # CONTROLS TYPE
controls-type = controls-type =
role-type,
attribute state { state-type }?, attribute state { state-type }?,
element control { control-type }*, element control { control-type }*,
anyElement* anyElement*
# MIX MODE TYPE # MIX MODE TYPE
mix-mode-type = mix-mode-type =
xsd:string "moderator-controlled" xsd:string "moderator-controlled"
| xsd:string "FCFS" | xsd:string "FCFS"
| xsd:string "automatic" | xsd:string "automatic"
# CODECS TYPE # CODECS TYPE
codecs-type = codecs-type =
role-type,
attribute decision { decision-type }, attribute decision { decision-type },
element codec { codec-type }*, element codec { codec-type }*,
anyElement* anyElement*
# CODEC TYPE # CODEC TYPE
codec-type = codec-type =
role-type,
attribute name { text }, attribute name { text },
attribute policy { policy-type } attribute policy { policy-type }
# DECISION TYPE # DECISION TYPE
decision-type = decision-type =
xsd:string "automatic" | xsd:string "moderator-controlled" xsd:string "automatic" | xsd:string "moderator-controlled"
# POLICY TYPE # POLICY TYPE
policy-type = xsd:string "allowed" | xsd:string "disallowed" policy-type = xsd:string "allowed" | xsd:string "disallowed"
# CONTROL TYPE # CONTROL TYPE
control-type = control-type =
element mute { xsd:boolean } element mute { xsd:boolean }
skipping to change at page 28, line 22 skipping to change at page 28, line 25
| xsd:string "dual-view-2x1-crop" | xsd:string "dual-view-2x1-crop"
| xsd:string "quad-view" | xsd:string "quad-view"
| xsd:string "multiple-3x3" | xsd:string "multiple-3x3"
| xsd:string "multiple-4x4" | xsd:string "multiple-4x4"
| xsd:string "multiple-5x1" | xsd:string "multiple-5x1"
| xsd:string "automatic" | xsd:string "automatic"
} }
| anyElement* | anyElement*
# HOST TYPE # HOST TYPE
host-type = host-type =
role-type,
(element display-text { text }, (element display-text { text },
element web-page { xsd:anyURI }, element web-page { xsd:anyURI },
element uris { uris-type }, element uris { uris-type },
anyElement*)* anyElement*)*
# CONFERENCE STATE TYPE # CONFERENCE STATE TYPE
conference-state-type = conference-state-type =
role-type,
element allow-conference-event-subscription { xsd:boolean }?, element allow-conference-event-subscription { xsd:boolean }?,
element user-count { xsd:unsignedInt }?, element user-count { xsd:unsignedInt }?,
element active { xsd:boolean }?, element active { xsd:boolean }?,
element locked { xsd:boolean }?, element locked { xsd:boolean }?,
anyElement* anyElement*
# FLOOR INFORMATION TYPE # FLOOR INFORMATION TYPE
floor-information-type = floor-information-type =
role-type, (element conference-ID { xsd:unsignedInt },
(element conference-ID { BFCP-type },
element allow-floor-events { xsd:boolean }, element allow-floor-events { xsd:boolean },
element floor-request-handling { floor-request-type }, element floor-request-handling { floor-request-type },
element conference-floor-policy { Conference-floor-policy }, element conference-floor-policy { Conference-floor-policy },
anyElement*)* anyElement*)*
# FLOOR REQUEST TYPE # FLOOR REQUEST TYPE
floor-request-type = xsd:string "block" | xsd:string "confirm" floor-request-type = xsd:string "block" | xsd:string "confirm"
# CONFERENCE FLOOR POLICY # CONFERENCE FLOOR POLICY
Conference-floor-policy = Conference-floor-policy =
role-type,
element floor { element floor {
attribute moderator-controlled { xsd:boolean }, attribute moderator-controlled { xsd:boolean },
attribute label { text }, attribute label { text },
anyAttribute, anyAttribute,
(element media-types { (element media-types {
role-type, xsd:string "video"
(xsd:string "video"
| xsd:string "audio" | xsd:string "audio"
| xsd:string "application" | xsd:string "application"
| xsd:string "data" | xsd:string "data"
| xsd:string "control" | xsd:string "control"
| xsd:string "message" | xsd:string "message"
| xsd:string "text") | xsd:string "text"
}, },
element algorithm { element algorithm {
role-type, xsd:string "moderator-controlled"
(xsd:string "moderator-controlled"
| xsd:string "FCFS" | xsd:string "FCFS"
| xsd:string "random") | xsd:string "random"
}, },
element max-floor-users { xsd:nonNegativeInteger }, element max-floor-users { xsd:nonNegativeInteger },
element chair-id { xsd:anyURI }, element chair-id { xsd:anyURI },
anyElement*)* anyElement*)*
}+ }+
# USERS TYPE # USERS TYPE
users-type = users-type =
attribute state { state-type }?, attribute state { state-type }?,
role-type,
element join-handling { join-handling-type }?, element join-handling { join-handling-type }?,
element user-admission-policy { user-admission-policy-type }?, element user-admission-policy { user-admission-policy-type }?,
element user-must-be-specified { xsd:boolean }?, element user-must-be-specified { xsd:boolean }?,
element allowed-users-list { UserList }?, element allowed-users-list { UserList }?,
element user { user-type }*, element user { user-type }*,
anyElement* anyElement*
# USERS ADMISSION POLICY # USERS ADMISSION POLICY
user-admission-policy-type = user-admission-policy-type =
xsd:string "closedAuthenticated" xsd:string "closedAuthenticated"
| xsd:string "openAuthenticated" | xsd:string "openAuthenticated"
| xsd:string "anonymous" | xsd:string "anonymous"
# JOIN HANDLING TYPE # JOIN HANDLING TYPE
join-handling-type = join-handling-type =
xsd:string "block" xsd:string "block"
| xsd:string "allow" | xsd:string "allow"
| xsd:string "confirm" | xsd:string "confirm"
| xsd:string "IVR" | xsd:string "IVR"
| xsd:string "directed-operator" | xsd:string "directed-operator"
# USERLIST # USERLIST
UserList = UserList =
role-type,
element target { target-type }*, element target { target-type }*,
anyElement* anyElement*
# TARGET TYPE # TARGET TYPE
target-type = target-type =
role-type,
attribute uri { xsd:anyURI }, attribute uri { xsd:anyURI },
attribute method { method-type } attribute method { method-type }
# METHOD TYPE # METHOD TYPE
method-type = method-type =
xsd:string "dial-in" | xsd:string "dial-out" | xsd:string "refer" xsd:string "dial-in" | xsd:string "dial-out" | xsd:string "refer"
# USER TYPE # USER TYPE
user-type = user-type =
role-type,
attribute entity { xsd:anyURI }, attribute entity { xsd:anyURI },
attribute state { state-type }?, attribute state { state-type }?,
element display-text { text }?, element display-text { text }?,
element associated-aors { uris-type }?, element associated-aors { uris-type }?,
element provide-anonymity { xsd:boolean }?, element provide-anonymity { xsd:boolean }?,
element roles { roles-type }?, element roles { roles-type }?,
element languages { element languages {
list { xsd:language } list { xsd:language }
}?, }?,
element cascaded-focus { xsd:anyURI }?, element cascaded-focus { xsd:anyURI }?,
element allow-refer-users-dynamically { xsd:boolean }?, element allow-refer-users-dynamically { xsd:boolean }?,
element allow-invite-users-dynamically { xsd:boolean }?, element allow-invite-users-dynamically { xsd:boolean }?,
element allow-remove-users-dynamically { xsd:boolean }?, element allow-remove-users-dynamically { xsd:boolean }?,
element endpoint { endpoint-type }*, element endpoint { endpoint-type }*,
anyElement* anyElement*
# ENDPOINT TYPE # ENDPOINT TYPE
endpoint-type = endpoint-type =
role-type,
attribute entity { text }, attribute entity { text },
attribute state { state-type }?, attribute state { state-type }?,
element display-text { text }?, element display-text { text }?,
element referred { conference-info-urn* }?, element referred { conference-info-urn* }?,
element status { endpoint-status-type }?, element status { endpoint-status-type }?,
element joining-method { joining-type }?, element joining-method { joining-type }?,
element joining-info { conference-info-urn* }?, element joining-info { conference-info-urn* }?,
element disconnection-method { disconnection-type }?, element disconnection-method { disconnection-type }?,
element disconnection-info { conference-info-urn* }?, element disconnection-info { conference-info-urn* }?,
element media { media-type }*, element media { media-type }*,
skipping to change at page 31, line 11 skipping to change at page 30, line 51
element display-text { text }?, element display-text { text }?,
element type { text }?, element type { text }?,
element label { text }?, element label { text }?,
element src-id { text }?, element src-id { text }?,
element status { media-status-type }?, element status { media-status-type }?,
element to-mixer { mixer-type }?, element to-mixer { mixer-type }?,
element from-mixer { mixer-type }?, element from-mixer { mixer-type }?,
anyElement* anyElement*
# MIXER TYPE # MIXER TYPE
mixer-type = mixer-type =
role-type,
attribute state { state-type }?, attribute state { state-type }?,
(element floor { xsd:boolean }, (element floor { xsd:boolean },
element controls { controls-type })?, element controls { controls-type })?,
anyElement* anyElement*
# SIDEBARS-BY-REF TYPE # SIDEBARS-BY-REF TYPE
sidebars-by-ref-type = sidebars-by-ref-type =
role-type,
attribute state { state-type }?, attribute state { state-type }?,
element entry { uri-type }*, element entry { uri-type }*,
anyElement* anyElement*
# SIDEBARS-BY-VAL TYPE # SIDEBARS-BY-VAL TYPE
sidebars-by-val-type = sidebars-by-val-type =
role-type,
attribute state { state-type }?, attribute state { state-type }?,
element entry { conference-type }*, element entry { conference-type }*,
anyElement* anyElement*
# ROLES_TYPE # ROLES_TYPE
roles-type = roles-type =
element entry { single-role-type }*, element entry { single-role-type }*,
anyElement* anyElement*
# ROLE TYPE
role-type =
attribute read-only { single-role-type }?,
attribute write-only { single-role-type }?,
anyAttribute
# SINGLE ROLE TYPE # SINGLE ROLE TYPE
single-role-type = single-role-type =
xsd:string "administrator" xsd:string "administrator"
| xsd:string "creator" | xsd:string "creator"
| xsd:string "moderator" | xsd:string "moderator"
| xsd:string "participant" | xsd:string "participant"
| xsd:string "observer" | xsd:string "observer"
# ********************************* # *********************************
# EXTENSIBILITY OF THE SCHEMA # EXTENSIBILITY OF THE SCHEMA
# ********************************* # *********************************
skipping to change at page 32, line 29 skipping to change at page 32, line 13
| max | max
| label | label
| decision | decision
| name | name
| policy | policy
| moderator-controlled | moderator-controlled
| uri | uri
| method | method
| id | id
| domain | domain
| read-only | local:*
| write-only | ns2:*) { text }*
| ns3:*) { text }*
# ************************************************************* # *************************************************************
# TYPES DEFINED IN THE EVENT PACKAGE FOR CONFERENCE STATE # TYPES DEFINED IN THE EVENT PACKAGE FOR CONFERENCE STATE
# ************************************************************* # *************************************************************
# WILDCARD FOR EVENT-PACKAGE NAMESPACE # WILDCARD FOR EVENT-PACKAGE NAMESPACE
conference-info-urn = conference-info-urn =
element * - ns1:* { element ns1:* {
mixed {
(attribute * { text } (attribute * { text }
| conference-info-urn)* | conference-info-urn)*
} }
}
# DEFINITION OF STATE TYPE # DEFINITION OF STATE TYPE
state-type = "full" | "partial" | "deleted" state-type = "full" | "partial" | "deleted"
# DEFINITION OF ENDPOINT STATUS TYPE # DEFINITION OF ENDPOINT STATUS TYPE
media-status-type = "recvonly" | "sendonly" | "sendrecv" | "inactive" media-status-type = "recvonly" | "sendonly" | "sendrecv" | "inactive"
# ENDPOINT STATUS TYPE # ENDPOINT STATUS TYPE
endpoint-status-type = endpoint-status-type =
"pending" "pending"
| "dialing-out" | "dialing-out"
| "dialing-in" | "dialing-in"
| "alerting" | "alerting"
| "on-hold" | "on-hold"
| "connected" | "connected"
| "muted-via-focus" | "muted-via-focus"
| "disconnecting" | "disconnecting"
| "disconnected" | "disconnected"
# JOINING TYPE # JOINING TYPE
joining-type = "dialed-in" | "dialed-out" | "focus-owner" joining-type = "dialed-in" | "dialed-out" | "focus-owner"
# DISCONNECTION TYPE # DISCONNECTION TYPE
disconnection-type = "departed" | "booted" | "failed" | "busy" disconnection-type = "departed" | "booted" | "failed" | "busy"
# ******************************************
# TYPE DEFINED IN THE COMMON POLICY DOCUMENT
# ******************************************
# WILDCARD FOR COMMON-POLICY NAMESPACE
common-policy =
element * - ns2:* {
mixed {
(attribute * { text }
| common-policy)*
}
}
6. XML Schema Extensibility 6. XML Schema Extensibility
The Conference Information Data Model defined in this document is The Conference Information Data Model defined in this document is
meant to be extensible toward specific application domains. Such meant to be extensible toward specific application domains. Such
extensions are accomplished by defining elements, child elements and extensions are accomplished by defining elements, child elements and
attributes that are specific to the desired application domain. The attributes that are specific to the desired application domain. The
IETF MAY extend the data model schema with extension elements from IETF MAY extend the data model schema with extension elements from
the same namespace, but other instances are free to extend it from the same namespace, but other instances are free to extend it from
other than urn:ietf:params:xml:ns:conference-schema. other than urn:ietf:params:xml:ns:conference-schema.
Elements or attributes from unknown namespaces MUST be ignored. Elements or attributes from unknown namespaces MUST be ignored.
7. XML Example 7. XML Example
The following is an example of a conference information document. The following is an example of a conference information document.
The conference starts on October 17, 2006, at 10:30 AM in New York The conference starts on October 17, 2007, at 10:30 AM in New York
City and finishes the same day at 12:30 PM every week. In this City and finishes the same day at 12:30 PM every week. In this
example, there are currently 3 participants in a conference, one 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
sidebars are allowed in this conference and there is one sidebar in sidebars are allowed in this conference and there is one sidebar in
the conference. Also note that there is one floor moderator for the the conference. Also note that there is one floor moderator for the
audio and a different floor moderator for the video. audio and a different floor moderator for the video.
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<conference-info xmlns="urn:ietf:params:xml:ns:conference-schema" <conference-info xmlns="urn:ietf:params:xml:ns:conference-schema"
entity="conference123" state="full"> entity="conference123@example.com" state="full">
<!-- <!--
CONFERENCE DESCRIPTION CONFERENCE DESCRIPTION
--> -->
<conference-description xml:lang="en-us"> <conference-description xml:lang="en-us">
<display-text>Discussion of Formula-1 racing</display-text> <display-text>Discussion of Formula-1 racing</display-text>
<subject> Sports:Formula-1</subject> <subject> Sports:Formula-1</subject>
<free-text>This is a conference example</free-text> <free-text>This is a conference example</free-text>
<keywords>Formula-1, cars</keywords> <keywords>Formula-1, cars</keywords>
<webpage>http://www.example.com/users/formula-1</webpage> <webpage>http://www.example.com/users/formula-1</webpage>
skipping to change at page 34, line 30 skipping to change at page 33, line 47
<conference-stage>running</conference-stage> <conference-stage>running</conference-stage>
<!-- <!--
CONFERENCE TIME CONFERENCE TIME
--> -->
<conference-time> <conference-time>
<entry> <entry>
<base>BEGIN:VCALENDAR <base>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:20061103T140728Z
UID:carol at example.com UID:20061103T140728Z-345FDA-carol@example.com
ORGANIZER:MAILTO:carol at example.com ORGANIZER:MAILTO:carol@example.com
DTSTART:20061017T143000Z DTSTART:20071017T143000Z
RRULE:FREQ=WEEKLY RRULE:FREQ=WEEKLY
DTEND:20061017T163000Z</base> DTEND:20071217T163000Z
END:VEVENT
END:VCALENDAR</base>
<mixing-start-offset required-participant="moderator" <mixing-start-offset required-participant="moderator"
> 2006-10-17T14:29:00Z</mixing-start-offset> > 2007-10-17T14:29:00Z</mixing-start-offset>
<mixing-end-offset required-participant="participant" <mixing-end-offset required-participant="participant"
> 2006-10-17T16:31:00Z</mixing-end-offset> > 2007-10-17T16:31:00Z</mixing-end-offset>
<must-join-before-offset <must-join-before-offset
> 2006-10-17T15:30:00Z</must-join-before-offset> > 2007-10-17T15:30:00Z</must-join-before-offset>
</entry> </entry>
</conference-time> </conference-time>
<!-- <!--
CONFERENCE UNIQUE IDENTIFIERS CONFERENCE UNIQUE IDENTIFIERS
--> -->
<conf-uris state="full"> <conf-uris state="full">
<SIP> <SIP>
<uri>tel:+3585671234</uri> <uri>tel:+3585671234</uri>
<display-text>Conference Bridge</display-text> <display-text>Conference Bridge</display-text>
<purpose>participation</purpose> <purpose>participation</purpose>
skipping to change at page 36, line 33 skipping to change at page 36, line 5
<conference-state> <conference-state>
<allow-conference-state>true</allow-conference-state> <allow-conference-state>true</allow-conference-state>
<user-count>3</user-count> <user-count>3</user-count>
<active>true</active> <active>true</active>
<locked>false</locked> <locked>false</locked>
</conference-state> </conference-state>
<!-- <!--
FLOOR INFORMATION FLOOR INFORMATION
--> -->
<floor-information> <floor-information>
<conference-ID>567</conference-ID>
<allow-floor-events>true</allow-floor-events> <allow-floor-events>true</allow-floor-events>
<floor-request-handling>confirm</floor-request-handling> <floor-request-handling>confirm</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> <chair-id>sip:alice@example.com</chair-id>
</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> <chair-id>sip:carol@example.com</chair-id>
</floor> </floor>
</conference-floor-policy> </conference-floor-policy>
</floor-information> </floor-information>
<!-- <!--
USERS USERS
--> -->
<users state="full"> <users state="full">
<join-handling>allow</join-handling> <join-handling>allow</join-handling>
<!-- <!--
ALLOWED USERS LIST ALLOWED USERS LIST
--> -->
<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 USER BOB
-->
<privileges-control-list>
<conference-rules>
<entry id="1">
<condition>
<identity>
<many domain="example.com"/>
</identity>
<validity>
<to>2006-10-17T16:30:00Z</to>
<from>2006-10-17T14:30:00Z</from>
</validity>
</condition>
<action>
<allow-invite-users-dynamically
>true</allow-invite-users-dynamically>
</action>
</entry>
<entry id="2">
<condition>
<identity>
<one id="bob@example.com"/>
</identity>
</condition>
<action>
<show-floor-holder>block</show-floor-holder>
</action>
</entry>
</conference-rules>
</privileges-control-list>
<!--
USER
--> -->
<user entity="bob534" state="partial"> <user entity="bob534" state="partial">
<display-text>Bob Hoskins</display-text> <display-text>Bob Hoskins</display-text>
<associated-aors state="full"> <associated-aors state="full">
<SIP> <SIP>
<uri>mailto:bob@example.com</uri> <uri>mailto:bob@example.com</uri>
<display-text>email</display-text> <display-text>email</display-text>
</SIP> </SIP>
</associated-aors> </associated-aors>
<provide-anonymity>false</provide-anonymity> <provide-anonymity>false</provide-anonymity>
skipping to change at page 39, line 16 skipping to change at page 38, line 4
<display-text>full info</display-text> <display-text>full info</display-text>
<call-id>hsjh8980vhsb78</call-id> <call-id>hsjh8980vhsb78</call-id>
<from-tag>vav738dvbs</from-tag> <from-tag>vav738dvbs</from-tag>
<to-tag>8954jgjg8432</to-tag> <to-tag>8954jgjg8432</to-tag>
</sip> </sip>
</call-info> </call-info>
</endpoint> </endpoint>
</user> </user>
<!-- <!--
USER USER ALICE
--> -->
<user entity="alice334" state="full"> <user entity="alice334" state="full">
<display-text>Alice Kay</display-text> <display-text>Alice Kay</display-text>
<associated-aors state="full"> <associated-aors state="full">
<SIP> <SIP>
<uri>mailto:alice@example.com</uri> <uri>mailto:alice@example.com</uri>
<display-text>email</display-text> <display-text>email</display-text>
</SIP> </SIP>
</associated-aors> </associated-aors>
skipping to change at page 40, line 31 skipping to change at page 39, line 19
<display-text>full info</display-text> <display-text>full info</display-text>
<call-id>truy45469123478</call-id> <call-id>truy45469123478</call-id>
<from-tag>asd456cbgt</from-tag> <from-tag>asd456cbgt</from-tag>
<to-tag>3456jgjg1234</to-tag> <to-tag>3456jgjg1234</to-tag>
</sip> </sip>
</call-info> </call-info>
</endpoint> </endpoint>
</user> </user>
<!-- <!--
USER CAROL
--> -->
<user entity="carol233" state="full"> <user entity="carol233" state="full">
<display-text>Carol More</display-text> <display-text>Carol More</display-text>
<associated-aors state="full"> <associated-aors state="full">
<SIP> <SIP>
<uri>mailto:carol@example.com</uri> <uri>mailto:carol@example.com</uri>
<display-text>email</display-text> <display-text>email</display-text>
</SIP> </SIP>
</associated-aors> </associated-aors>
<provide-anonymity>false</provide-anonymity> <provide-anonymity>false</provide-anonymity>
skipping to change at page 42, line 44 skipping to change at page 41, line 33
URI: urn:ietf:params:xml:ns:conference-schema URI: urn:ietf:params:xml:ns:conference-schema
Relax NG Schema: The Relax NG schema to be registered is contained Relax NG Schema: The Relax NG schema to be registered is contained
in Section 4. Its first line is in Section 4. Its first line is
namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0" namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
and its last line is and its last line is
} disconnection-type = "departed" | "booted" | "failed" | "busy"
9.2. Conference Namespace Registration 9.2. Conference Namespace Registration
URI: urn:ietf:params:xml:ns:conference-schema URI: urn:ietf:params:xml:ns:conference-schema
9.3. Conference Object Identifier Registration
XCON_URI = "xcon" ":" [conf-object-id "@"] hostport
; hostport as defined in RFC3261
conf-object-id = 1*( unreserved / "+" / "=" / "/" )
; unreserved as defined in RFC3986
9.4. Conference User Identifier Registration
XCON_USERID = "xcon_userid" ":" conf-object-id
conf-object-id = 1*( unreserved / "+" / "=" / "/" )
; unreserved as defined in RFC3986
10. Acknowledgements 10. 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. We drafts in the XCON working group and the SIPPING working group. We
would like to thank Orit Levin, Adam Roach, Mary Barnes, Chris would like to thank Orit Levin, Adam Roach, Mary Barnes, Chris
Boulton, Umesh Chandra, and Jari Urpilainen for their comments. Boulton, Umesh Chandra, Hisham Khartabil, Petri Koskelainen, Aki
Also, We would like to thank Hisham Khartabil, Petri Koskelainen, and Niemi, and Jari Urpilainen for their comments. Also, We would like
Aki Niemi for letting us use the policy information of their cpcp to thank Mary Barnes, and Chris Boulton for letting us use the
drafts in this document. conference and user identifier information of their xcon drafts.
11. References 11. References
11.1. Normative References 11.1. Normative References
[1] Barnes, M., "A Framework and Data Model for Centralized [1] Rosenberg, J., Schulzrinne, H., and O. Levin, "A Session
Conferencing", draft-ietf-xcon-framework-07 (work in progress),
January 2007.
[2] Rosenberg, J., Schulzrinne, H., and O. Levin, "A Session
Initiation Protocol (SIP) Event Package for Conference State", Initiation Protocol (SIP) Event Package for Conference State",
RFC 4575, August 2006. RFC 4575, August 2006.
[3] Bradner, S., "Key words for use in RFCs to Indicate Requirement [2] 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 [3] Dawson, F. and Stenerson, D., "Internet Calendaring and
Initiation Protocol (SIP)", RFC 4353, February 2006.
[5] Paoli, J., Sperberg-McQueen, C., Bray, T., and E. Maler,
"Extensible Markup Language (XML) 1.0 (Second Edition)", World
Wide Web Consortium FirstEdition REC-xml-20001006, October 2000,
<http://www.w3.org/TR/2000/REC-xml-20001006>.
[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.
11.2. Informative References 11.2. Informative References
[7] Camarillo, G., Ott, J., and K. Drage, "The Binary Floor Control [4] Barnes, M., "A Framework and Data Model for Centralized
Conferencing", draft-ietf-xcon-framework-07 (work in progress),
January 2007.
[5] Camarillo, G., Ott, J., and K. Drage, "The Binary Floor Control
Protocol (BFCP)", RFC 4582, November 2006. Protocol (BFCP)", RFC 4582, November 2006.
[8] Roach, A., "Session Initiation Protocol (SIP)-Specific Event [6] Roach, A., "Session Initiation Protocol (SIP)-Specific Event
Notification", RFC 3265, June 2002. Notification", RFC 3265, June 2002.
[7] Rosenberg, J., "A Framework for Conferencing with the Session
Initiation Protocol (SIP)", RFC 4353, February 2006.
[8] Paoli, J., Sperberg-McQueen, C., Bray, T., and E. Maler,
"Extensible Markup Language (XML) 1.0 (Second Edition)", World
Wide Web Consortium FirstEdition REC-xml-20001006, October 2000,
<http://www.w3.org/TR/2000/REC-xml-20001006>.
Appendix A. Appendix A. Non-Normative RELAX NG Schema in XML Syntax Appendix A. Appendix A. Non-Normative RELAX NG Schema in XML Syntax
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<grammar ns="urn:ietf:params:xml:ns:conference-schema" <grammar ns="urn:ietf:params:xml:ns:conference-schema"
xmlns="http://relaxng.org/ns/structure/1.0" xmlns="http://relaxng.org/ns/structure/1.0"
xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
<start> <start>
<element name="conference-info"> <element name="conference-info">
<ref name="conference-type"/> <ref name="conference-type"/>
skipping to change at page 44, line 37 skipping to change at page 43, line 43
<optional> <optional>
<attribute name="version"> <attribute name="version">
<data type="unsignedInt"/> <data type="unsignedInt"/>
</attribute> </attribute>
</optional> </optional>
<optional> <optional>
<attribute name="state"> <attribute name="state">
<ref name="state-type"/> <ref name="state-type"/>
</attribute> </attribute>
</optional> </optional>
<ref name="role-type"/>
<ref name="conference-description-type"/> <ref name="conference-description-type"/>
<optional> <optional>
<element name="host-info"> <element name="host-info">
<ref name="host-type"/> <ref name="host-type"/>
</element> </element>
</optional> </optional>
<optional> <optional>
<element name="conference-state"> <element name="conference-state">
<ref name="conference-state-type"/> <ref name="conference-state-type"/>
</element> </element>
skipping to change at page 45, line 28 skipping to change at page 44, line 34
</optional> </optional>
<zeroOrMore> <zeroOrMore>
<ref name="anyElement"/> <ref name="anyElement"/>
</zeroOrMore> </zeroOrMore>
</define> </define>
<!-- <!--
CONFERENCE DESCRIPTION TYPE CONFERENCE DESCRIPTION TYPE
--> -->
<define name="conference-description-type"> <define name="conference-description-type">
<element name="conference-description"> <element name="conference-description">
<ref name="role-type"/>
<optional> <optional>
<attribute name="xml:lang"> <attribute name="xml:lang">
<data type="language"/> <data type="language"/>
</attribute> </attribute>
</optional> </optional>
<optional> <optional>
<attribute name="state"> <attribute name="state">
<ref name="state-type"/> <ref name="state-type"/>
</attribute> </attribute>
</optional> </optional>
skipping to change at page 47, line 6 skipping to change at page 46, line 11
</optional> </optional>
<zeroOrMore> <zeroOrMore>
<ref name="anyElement"/> <ref name="anyElement"/>
</zeroOrMore> </zeroOrMore>
</element> </element>
</define> </define>
<!-- <!--
CONFERENCE TIME CONFERENCE TIME
--> -->
<define name="conferencetime-type"> <define name="conferencetime-type">
<ref name="role-type"/>
<zeroOrMore> <zeroOrMore>
<element name="entry"> <element name="entry">
<optional> <optional>
<element name="base"> <element name="base">
<text/> <text/>
</element> </element>
</optional> </optional>
<optional> <optional>
<element name="mixing-start-offset"> <element name="mixing-start-offset">
<data type="dateTime"> <data type="dateTime">
skipping to change at page 48, line 34 skipping to change at page 47, line 38
<define name="allowed-extend-mixing-values"> <define name="allowed-extend-mixing-values">
<choice> <choice>
<value type="string">allowed</value> <value type="string">allowed</value>
<value type="string">denied</value> <value type="string">denied</value>
</choice> </choice>
</define> </define>
<!-- <!--
URIS TYPE URIS TYPE
--> -->
<define name="uris-type"> <define name="uris-type">
<ref name="role-type"/>
<optional> <optional>
<attribute name="state"> <attribute name="state">
<ref name="state-type"/> <ref name="state-type"/>
</attribute> </attribute>
</optional> </optional>
<interleave> <interleave>
<zeroOrMore> <zeroOrMore>
<element name="entry"> <element name="entry">
<ref name="uri-type"/> <ref name="uri-type"/>
</element> </element>
skipping to change at page 49, line 17 skipping to change at page 48, line 20
</zeroOrMore> </zeroOrMore>
</interleave> </interleave>
<zeroOrMore> <zeroOrMore>
<ref name="anyElement"/> <ref name="anyElement"/>
</zeroOrMore> </zeroOrMore>
</define> </define>
<!-- <!--
SIP TYPE SIP TYPE
--> -->
<define name="uri-type"> <define name="uri-type">
<ref name="role-type"/>
<zeroOrMore> <zeroOrMore>
<element name="uri"> <element name="uri">
<data type="anyURI"/> <data type="anyURI"/>
</element> </element>
<optional> <optional>
<element name="display-text"> <element name="display-text">
<text/> <text/>
</element> </element>
</optional> </optional>
<optional> <optional>
skipping to change at page 49, line 41 skipping to change at page 48, line 43
</optional> </optional>
<zeroOrMore> <zeroOrMore>
<ref name="anyElement"/> <ref name="anyElement"/>
</zeroOrMore> </zeroOrMore>
</zeroOrMore> </zeroOrMore>
</define> </define>
<!-- <!--
H323 TYPE H323 TYPE
--> -->
<define name="H323-type"> <define name="H323-type">
<ref name="role-type"/>
<optional> <optional>
<element name="H.323-alias"> <element name="H.323-alias">
<text/> <text/>
</element> </element>
</optional> </optional>
<optional> <optional>
<element name="H.323-URI"> <element name="H.323-URI">
<data type="anyURI"/> <data type="anyURI"/>
</element> </element>
</optional> </optional>
<zeroOrMore> <zeroOrMore>
<ref name="anyElement"/> <ref name="anyElement"/>
</zeroOrMore> </zeroOrMore>
</define> </define>
<!-- <!--
PSTN TYPE PSTN TYPE
--> -->
<define name="PSTN-type"> <define name="PSTN-type">
<ref name="role-type"/>
<attribute name="PIN-code"> <attribute name="PIN-code">
<data type="unsignedInt"/> <data type="unsignedInt"/>
</attribute> </attribute>
<attribute name="purpose"> <attribute name="purpose">
<data type="unsignedInt"/> <data type="unsignedInt"/>
</attribute> </attribute>
<oneOrMore> <oneOrMore>
<element name="phone-number"> <element name="phone-number">
<data type="unsignedInt"/> <data type="unsignedInt"/>
</element> </element>
<zeroOrMore> <zeroOrMore>
<ref name="anyElement"/> <ref name="anyElement"/>
</zeroOrMore> </zeroOrMore>
</oneOrMore> </oneOrMore>
</define> </define>
<!--
BFCP TYPE
-->
<define name="BFCP-type">
<ref name="role-type"/>
<zeroOrMore>
<element name="conference-ID">
<data type="unsignedInt"/>
</element>
<zeroOrMore>
<ref name="anyElement"/>
</zeroOrMore>
</zeroOrMore>
</define>
<!--
MAXIMUM USER TYPE
-->
<define name="maximum-user-count-type">
<ref name="role-type"/>
<ref name="anyAttribute"/>
<oneOrMore>
<element name="entry">
<data type="unsignedInt"/>
<attribute name="role">
<ref name="single-role-type"/>
</attribute>
</element>
<zeroOrMore>
<ref name="anyElement"/>
</zeroOrMore>
</oneOrMore>
</define>
<!-- <!--
CONFERENCE MEDIA TYPE CONFERENCE MEDIA TYPE
--> -->
<define name="conference-media-type"> <define name="conference-media-type">
<ref name="role-type"/>
<optional> <optional>
<attribute name="state"> <attribute name="state">
<ref name="state-type"/> <ref name="state-type"/>
</attribute> </attribute>
</optional> </optional>
<zeroOrMore> <zeroOrMore>
<element name="entry"> <element name="entry">
<ref name="conference-medium-type"/> <ref name="conference-medium-type"/>
</element> </element>
</zeroOrMore> </zeroOrMore>
<zeroOrMore> <zeroOrMore>
<ref name="anyElement"/> <ref name="anyElement"/>
</zeroOrMore> </zeroOrMore>
</define> </define>
<!-- <!--
CONFERENCE MEDIUM TYPE CONFERENCE MEDIUM TYPE
--> -->
<define name="conference-medium-type"> <define name="conference-medium-type">
<ref name="role-type"/>
<attribute name="label"> <attribute name="label">
<text/> <text/>
</attribute> </attribute>
<optional> <optional>
<element name="display-text"> <element name="display-text">
<text/> <text/>
</element> </element>
</optional> </optional>
<optional> <optional>
<element name="type"> <element name="type">
skipping to change at page 52, line 34 skipping to change at page 50, line 49
</element> </element>
</optional> </optional>
<zeroOrMore> <zeroOrMore>
<ref name="anyElement"/> <ref name="anyElement"/>
</zeroOrMore> </zeroOrMore>
</define> </define>
<!-- <!--
CONTROLS TYPE CONTROLS TYPE
--> -->
<define name="controls-type"> <define name="controls-type">
<ref name="role-type"/>
<optional> <optional>
<attribute name="state"> <attribute name="state">
<ref name="state-type"/> <ref name="state-type"/>
</attribute> </attribute>
</optional> </optional>
<zeroOrMore> <zeroOrMore>
<element name="control"> <element name="control">
<ref name="control-type"/> <ref name="control-type"/>
</element> </element>
</zeroOrMore> </zeroOrMore>
skipping to change at page 53, line 15 skipping to change at page 51, line 29
<choice> <choice>
<value type="string">moderator-controlled</value> <value type="string">moderator-controlled</value>
<value type="string">FCFS</value> <value type="string">FCFS</value>
<value type="string">automatic</value> <value type="string">automatic</value>
</choice> </choice>
</define> </define>
<!-- <!--
CODECS TYPE CODECS TYPE
--> -->
<define name="codecs-type"> <define name="codecs-type">
<ref name="role-type"/>
<attribute name="decision"> <attribute name="decision">
<ref name="decision-type"/> <ref name="decision-type"/>
</attribute> </attribute>
<zeroOrMore> <zeroOrMore>
<element name="codec"> <element name="codec">
<ref name="codec-type"/> <ref name="codec-type"/>
</element> </element>
</zeroOrMore> </zeroOrMore>
<zeroOrMore> <zeroOrMore>
<ref name="anyElement"/> <ref name="anyElement"/>
</zeroOrMore> </zeroOrMore>
</define> </define>
<!-- <!--
CODEC TYPE CODEC TYPE
--> -->
<define name="codec-type"> <define name="codec-type">
<ref name="role-type"/>
<attribute name="name"> <attribute name="name">
<text/> <text/>
</attribute> </attribute>
<attribute name="policy"> <attribute name="policy">
<ref name="policy-type"/> <ref name="policy-type"/>
</attribute> </attribute>
</define> </define>
<!-- <!--
DECISION TYPE DECISION TYPE
--> -->
skipping to change at page 54, line 50 skipping to change at page 53, line 14
</element> </element>
<zeroOrMore> <zeroOrMore>
<ref name="anyElement"/> <ref name="anyElement"/>
</zeroOrMore> </zeroOrMore>
</choice> </choice>
</define> </define>
<!-- <!--
HOST TYPE HOST TYPE
--> -->
<define name="host-type"> <define name="host-type">
<ref name="role-type"/>
<zeroOrMore> <zeroOrMore>
<element name="display-text"> <element name="display-text">
<text/> <text/>
</element> </element>
<element name="web-page"> <element name="web-page">
<data type="anyURI"/> <data type="anyURI"/>
</element> </element>
<element name="uris"> <element name="uris">
<ref name="uris-type"/> <ref name="uris-type"/>
</element> </element>
<zeroOrMore> <zeroOrMore>
<ref name="anyElement"/> <ref name="anyElement"/>
</zeroOrMore> </zeroOrMore>
</zeroOrMore> </zeroOrMore>
</define> </define>
<!-- <!--
CONFERENCE STATE TYPE CONFERENCE STATE TYPE
--> -->
<define name="conference-state-type"> <define name="conference-state-type">
<ref name="role-type"/>
<optional> <optional>
<element name="allow-conference-event-subscription"> <element name="allow-conference-event-subscription">
<data type="boolean"/> <data type="boolean"/>
</element> </element>
</optional> </optional>
<optional> <optional>
<element name="user-count"> <element name="user-count">
<data type="unsignedInt"/> <data type="unsignedInt"/>
</element> </element>
</optional> </optional>
skipping to change at page 55, line 51 skipping to change at page 54, line 13
</element> </element>
</optional> </optional>
<zeroOrMore> <zeroOrMore>
<ref name="anyElement"/> <ref name="anyElement"/>
</zeroOrMore> </zeroOrMore>
</define> </define>
<!-- <!--
FLOOR INFORMATION TYPE FLOOR INFORMATION TYPE
--> -->
<define name="floor-information-type"> <define name="floor-information-type">
<ref name="role-type"/>
<zeroOrMore> <zeroOrMore>
<element name="conference-ID"> <element name="conference-ID">
<ref name="BFCP-type"/> <data type="unsignedInt"/>
</element> </element>
<element name="allow-floor-events"> <element name="allow-floor-events">
<data type="boolean"/> <data type="boolean"/>
</element> </element>
<element name="floor-request-handling"> <element name="floor-request-handling">
<ref name="floor-request-type"/> <ref name="floor-request-type"/>
</element> </element>
<element name="conference-floor-policy"> <element name="conference-floor-policy">
<ref name="Conference-floor-policy"/> <ref name="Conference-floor-policy"/>
</element> </element>
skipping to change at page 56, line 35 skipping to change at page 54, line 44
<define name="floor-request-type"> <define name="floor-request-type">
<choice> <choice>
<value type="string">block</value> <value type="string">block</value>
<value type="string">confirm</value> <value type="string">confirm</value>
</choice> </choice>
</define> </define>
<!-- <!--
CONFERENCE FLOOR POLICY CONFERENCE FLOOR POLICY
--> -->
<define name="Conference-floor-policy"> <define name="Conference-floor-policy">
<ref name="role-type"/>
<oneOrMore> <oneOrMore>
<element name="floor"> <element name="floor">
<attribute name="moderator-controlled"> <attribute name="moderator-controlled">
<data type="boolean"/> <data type="boolean"/>
</attribute> </attribute>
<attribute name="label"> <attribute name="label">
<text/> <text/>
</attribute> </attribute>
<ref name="anyAttribute"/> <ref name="anyAttribute"/>
<zeroOrMore> <zeroOrMore>
<element name="media-types"> <element name="media-types">
<ref name="role-type"/>
<choice> <choice>
<value type="string">video</value> <value type="string">video</value>
<value type="string">audio</value> <value type="string">audio</value>
<value type="string">application</value> <value type="string">application</value>
<value type="string">data</value> <value type="string">data</value>
<value type="string">control</value> <value type="string">control</value>
<value type="string">message</value> <value type="string">message</value>
<value type="string">text</value> <value type="string">text</value>
</choice> </choice>
</element> </element>
<element name="algorithm"> <element name="algorithm">
<ref name="role-type"/>
<choice> <choice>
<value type="string">moderator-controlled</value> <value type="string">moderator-controlled</value>
<value type="string">FCFS</value> <value type="string">FCFS</value>
<value type="string">random</value> <value type="string">random</value>
</choice> </choice>
</element> </element>
<element name="max-floor-users"> <element name="max-floor-users">
<data type="nonNegativeInteger"/> <data type="nonNegativeInteger"/>
</element> </element>
<element name="chair-id"> <element name="chair-id">
skipping to change at page 57, line 40 skipping to change at page 55, line 46
</define> </define>
<!-- <!--
USERS TYPE USERS TYPE
--> -->
<define name="users-type"> <define name="users-type">
<optional> <optional>
<attribute name="state"> <attribute name="state">
<ref name="state-type"/> <ref name="state-type"/>
</attribute> </attribute>
</optional> </optional>
<ref name="role-type"/>
<optional> <optional>
<element name="join-handling"> <element name="join-handling">
<ref name="join-handling-type"/> <ref name="join-handling-type"/>
</element> </element>
</optional> </optional>
<optional> <optional>
<element name="user-admission-policy"> <element name="user-admission-policy">
<ref name="user-admission-policy-type"/> <ref name="user-admission-policy-type"/>
</element> </element>
</optional> </optional>
skipping to change at page 58, line 48 skipping to change at page 57, line 5
<value type="string">allow</value> <value type="string">allow</value>
<value type="string">confirm</value> <value type="string">confirm</value>
<value type="string">IVR</value> <value type="string">IVR</value>
<value type="string">directed-operator</value> <value type="string">directed-operator</value>
</choice> </choice>
</define> </define>
<!-- <!--
USERLIST USERLIST
--> -->
<define name="UserList"> <define name="UserList">
<ref name="role-type"/>
<zeroOrMore> <zeroOrMore>
<element name="target"> <element name="target">
<ref name="target-type"/> <ref name="target-type"/>
</element> </element>
</zeroOrMore> </zeroOrMore>
<zeroOrMore> <zeroOrMore>
<ref name="anyElement"/> <ref name="anyElement"/>
</zeroOrMore> </zeroOrMore>
</define> </define>
<!-- <!--
TARGET TYPE TARGET TYPE
--> -->
<define name="target-type"> <define name="target-type">
<ref name="role-type"/>
<attribute name="uri"> <attribute name="uri">
<data type="anyURI"/> <data type="anyURI"/>
</attribute> </attribute>
<attribute name="method"> <attribute name="method">
<ref name="method-type"/> <ref name="method-type"/>
</attribute> </attribute>
</define> </define>
<!-- <!--
METHOD TYPE METHOD TYPE
--> -->
skipping to change at page 59, line 36 skipping to change at page 57, line 39
<choice> <choice>
<value type="string">dial-in</value> <value type="string">dial-in</value>
<value type="string">dial-out</value> <value type="string">dial-out</value>
<value type="string">refer</value> <value type="string">refer</value>
</choice> </choice>
</define> </define>
<!-- <!--
USER TYPE USER TYPE
--> -->
<define name="user-type"> <define name="user-type">
<ref name="role-type"/>
<attribute name="entity"> <attribute name="entity">
<data type="anyURI"/> <data type="anyURI"/>
</attribute> </attribute>
<optional> <optional>
<attribute name="state"> <attribute name="state">
<ref name="state-type"/> <ref name="state-type"/>
</attribute> </attribute>
</optional> </optional>
<optional> <optional>
<element name="display-text"> <element name="display-text">
skipping to change at page 61, line 9 skipping to change at page 59, line 11
</element> </element>
</zeroOrMore> </zeroOrMore>
<zeroOrMore> <zeroOrMore>
<ref name="anyElement"/> <ref name="anyElement"/>
</zeroOrMore> </zeroOrMore>
</define> </define>
<!-- <!--
ENDPOINT TYPE ENDPOINT TYPE
--> -->
<define name="endpoint-type"> <define name="endpoint-type">
<ref name="role-type"/>
<attribute name="entity"> <attribute name="entity">
<text/> <text/>
</attribute> </attribute>
<optional> <optional>
<attribute name="state"> <attribute name="state">
<ref name="state-type"/> <ref name="state-type"/>
</attribute> </attribute>
</optional> </optional>
<optional> <optional>
<element name="display-text"> <element name="display-text">
skipping to change at page 63, line 35 skipping to change at page 61, line 36
</element> </element>
</optional> </optional>
<zeroOrMore> <zeroOrMore>
<ref name="anyElement"/> <ref name="anyElement"/>
</zeroOrMore> </zeroOrMore>
</define> </define>
<!-- <!--
MIXER TYPE MIXER TYPE
--> -->
<define name="mixer-type"> <define name="mixer-type">
<ref name="role-type"/>
<optional> <optional>
<attribute name="state"> <attribute name="state">
<ref name="state-type"/> <ref name="state-type"/>
</attribute> </attribute>
</optional> </optional>
<optional> <optional>
<element name="floor"> <element name="floor">
<data type="boolean"/> <data type="boolean"/>
</element> </element>
<element name="controls"> <element name="controls">
skipping to change at page 64, line 9 skipping to change at page 62, line 9
</element> </element>
</optional> </optional>
<zeroOrMore> <zeroOrMore>
<ref name="anyElement"/> <ref name="anyElement"/>
</zeroOrMore> </zeroOrMore>
</define> </define>
<!-- <!--
SIDEBARS-BY-REF TYPE SIDEBARS-BY-REF TYPE
--> -->
<define name="sidebars-by-ref-type"> <define name="sidebars-by-ref-type">
<ref name="role-type"/>
<optional> <optional>
<attribute name="state"> <attribute name="state">
<ref name="state-type"/> <ref name="state-type"/>
</attribute> </attribute>
</optional> </optional>
<zeroOrMore> <zeroOrMore>
<element name="entry"> <element name="entry">
<ref name="uri-type"/> <ref name="uri-type"/>
</element> </element>
</zeroOrMore> </zeroOrMore>
<zeroOrMore> <zeroOrMore>
<ref name="anyElement"/> <ref name="anyElement"/>
</zeroOrMore> </zeroOrMore>
</define> </define>
<!-- <!--
SIDEBARS-BY-VAL TYPE SIDEBARS-BY-VAL TYPE
--> -->
<define name="sidebars-by-val-type"> <define name="sidebars-by-val-type">
<ref name="role-type"/>
<optional> <optional>
<attribute name="state"> <attribute name="state">
<ref name="state-type"/> <ref name="state-type"/>
</attribute> </attribute>
</optional> </optional>
<zeroOrMore> <zeroOrMore>
<element name="entry"> <element name="entry">
<ref name="conference-type"/> <ref name="conference-type"/>
</element> </element>
</zeroOrMore> </zeroOrMore>
skipping to change at page 65, line 9 skipping to change at page 63, line 7
<zeroOrMore> <zeroOrMore>
<element name="entry"> <element name="entry">
<ref name="single-role-type"/> <ref name="single-role-type"/>
</element> </element>
</zeroOrMore> </zeroOrMore>
<zeroOrMore> <zeroOrMore>
<ref name="anyElement"/> <ref name="anyElement"/>
</zeroOrMore> </zeroOrMore>
</define> </define>
<!-- <!--
ROLE TYPE
-->
<define name="role-type">
<optional>
<attribute name="read-only">
<ref name="single-role-type"/>
</attribute>
</optional>
<optional>
<attribute name="write-only">
<ref name="single-role-type"/>
</attribute>
</optional>
<ref name="anyAttribute"/>
</define>
<!--
SINGLE ROLE TYPE SINGLE ROLE TYPE
--> -->
<define name="single-role-type"> <define name="single-role-type">
<choice> <choice>
<value type="string">administrator</value> <value type="string">administrator</value>
<value type="string">creator</value> <value type="string">creator</value>
<value type="string">moderator</value> <value type="string">moderator</value>
<value type="string">participant</value> <value type="string">participant</value>
<value type="string">observer</value> <value type="string">observer</value>
</choice> </choice>
skipping to change at page 66, line 38 skipping to change at page 64, line 20
<name ns="">max</name> <name ns="">max</name>
<name ns="">label</name> <name ns="">label</name>
<name ns="">decision</name> <name ns="">decision</name>
<name ns="">name</name> <name ns="">name</name>
<name ns="">policy</name> <name ns="">policy</name>
<name ns="">moderator-controlled</name> <name ns="">moderator-controlled</name>
<name ns="">uri</name> <name ns="">uri</name>
<name ns="">method</name> <name ns="">method</name>
<name ns="">id</name> <name ns="">id</name>
<name ns="">domain</name> <name ns="">domain</name>
<name ns="">read-only</name>
<name ns="">write-only</name>
<nsName ns=""/> <nsName ns=""/>
<nsName ns="urn:ietf:params:xml:ns:conference-schema"/> <nsName ns="urn:ietf:params:xml:ns:conference-schema"/>
</except> </except>
</anyName> </anyName>
<text/> <text/>
</attribute> </attribute>
</zeroOrMore> </zeroOrMore>
</define> </define>
<!-- <!--
************************************************************* *************************************************************
TYPES DEFINED IN THE EVENT PACKAGE FOR CONFERENCE STATE TYPES DEFINED IN THE EVENT PACKAGE FOR CONFERENCE STATE
************************************************************* *************************************************************
--> -->
<!-- <!--
WILDCARD FOR EVENT-PACKAGE NAMESPACE WILDCARD FOR EVENT-PACKAGE NAMESPACE
--> -->
<define name="conference-info-urn"> <define name="conference-info-urn">
<element> <element>
<anyName>
<except>
<nsName ns="urn:ietf:params:xml:ns:conference-info-urn"/> <nsName ns="urn:ietf:params:xml:ns:conference-info-urn"/>
<nsName ns=""/>
</except>
</anyName>
<mixed>
<zeroOrMore> <zeroOrMore>
<choice> <choice>
<attribute> <attribute>
<anyName/> <anyName/>
</attribute> </attribute>
<ref name="conference-info-urn"/> <ref name="conference-info-urn"/>
</choice> </choice>
</zeroOrMore> </zeroOrMore>
</mixed>
</element> </element>
</define> </define>
<!-- <!--
DEFINITION OF STATE TYPE DEFINITION OF STATE TYPE
--> -->
<define name="state-type"> <define name="state-type">
<choice> <choice>
<value>full</value> <value>full</value>
<value>partial</value> <value>partial</value>
<value>deleted</value> <value>deleted</value>
skipping to change at page 68, line 38 skipping to change at page 66, line 11
DISCONNECTION TYPE DISCONNECTION TYPE
--> -->
<define name="disconnection-type"> <define name="disconnection-type">
<choice> <choice>
<value>departed</value> <value>departed</value>
<value>booted</value> <value>booted</value>
<value>failed</value> <value>failed</value>
<value>busy</value> <value>busy</value>
</choice> </choice>
</define> </define>
<!--
******************************************
TYPE DEFINED IN THE COMMON POLICY DOCUMENT
******************************************
-->
<!--
WILDCARD FOR COMMON-POLICY NAMESPACE
-->
<define name="common-policy">
<element>
<anyName>
<except>
<nsName ns="urn:ietf:params:xml:ns:common-policy"/>
<nsName ns=""/>
</except>
</anyName>
<mixed>
<zeroOrMore>
<choice>
<attribute>
<anyName/>
</attribute>
<ref name="common-policy"/>
</choice>
</zeroOrMore>
</mixed>
</element>
</define>
</grammar> </grammar>
Authors' Addresses Authors' Addresses
Oscar Novo Oscar Novo
Ericsson Ericsson
Hirsalantie 11 Hirsalantie 11
Jorvas 02420 Jorvas 02420
Finland Finland
 End of changes. 141 change blocks. 
370 lines changed or deleted 212 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/