Internet Engineering Task Force (IETF)                           O. Novo
Request for Comments: 6501                                  G. Camarillo
Category: Standards Track                                       Ericsson
ISSN: 2070-1721                                                D. Morgan
                                                    Fidelity Investments
                                                           J. Urpalainen
                                                                   Nokia
                                                              March 2012
        
Internet Engineering Task Force (IETF)                           O. Novo
Request for Comments: 6501                                  G. Camarillo
Category: Standards Track                                       Ericsson
ISSN: 2070-1721                                                D. Morgan
                                                    Fidelity Investments
                                                           J. Urpalainen
                                                                   Nokia
                                                              March 2012
        

Conference Information Data Model for Centralized Conferencing (XCON)

集中式会议(XCON)的会议信息数据模型

Abstract

摘要

RFC 5239 defines centralized conferencing (XCON) as an association of participants with a central focus. The state of a conference is represented by a conference object. This document defines an XML-based conference information data model to be used for conference objects. A conference information data model is designed to convey information about the conference and about participation in the conference. The conference information data model defined in this document constitutes an extension of the data format specified in the Session Initiation Protocol (SIP) event package for conference State.

RFC 5239将集中式会议(XCON)定义为参与者与中心焦点的关联。会议状态由会议对象表示。本文档定义了用于会议对象的基于XML的会议信息数据模型。会议信息数据模型旨在传达有关会议和参与会议的信息。本文档中定义的会议信息数据模型构成了会议状态会话启动协议(SIP)事件包中指定的数据格式的扩展。

Status of This Memo

关于下段备忘

This is an Internet Standards Track document.

这是一份互联网标准跟踪文件。

This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 5741.

本文件是互联网工程任务组(IETF)的产品。它代表了IETF社区的共识。它已经接受了公众审查,并已被互联网工程指导小组(IESG)批准出版。有关互联网标准的更多信息,请参见RFC 5741第2节。

Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at http://www.rfc-editor.org/info/rfc6501.

有关本文件当前状态、任何勘误表以及如何提供反馈的信息,请访问http://www.rfc-editor.org/info/rfc6501.

Copyright Notice

版权公告

Copyright (c) 2012 IETF Trust and the persons identified as the document authors. All rights reserved.

版权所有(c)2012 IETF信托基金和确定为文件作者的人员。版权所有。

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.

本文件受BCP 78和IETF信托有关IETF文件的法律规定的约束(http://trustee.ietf.org/license-info)自本文件出版之日起生效。请仔细阅读这些文件,因为它们描述了您对本文件的权利和限制。从本文件中提取的代码组件必须包括信托法律条款第4.e节中所述的简化BSD许可证文本,并提供简化BSD许可证中所述的无担保。

This document may contain material from IETF Documents or IETF Contributions published or made publicly available before November 10, 2008. The person(s) controlling the copyright in some of this material may not have granted the IETF Trust the right to allow modifications of such material outside the IETF Standards Process. Without obtaining an adequate license from the person(s) controlling the copyright in such materials, this document may not be modified outside the IETF Standards Process, and derivative works of it may not be created outside the IETF Standards Process, except to format it for publication as an RFC or to translate it into languages other than English.

本文件可能包含2008年11月10日之前发布或公开的IETF文件或IETF贡献中的材料。控制某些材料版权的人员可能未授予IETF信托允许在IETF标准流程之外修改此类材料的权利。在未从控制此类材料版权的人员处获得充分许可的情况下,不得在IETF标准流程之外修改本文件,也不得在IETF标准流程之外创建其衍生作品,除了将其格式化以RFC形式发布或将其翻译成英语以外的其他语言。

Table of Contents

目录

   1. Introduction ....................................................4
   2. Terminology .....................................................4
   3. Overview ........................................................4
      3.1. Data Model Format ..........................................5
      3.2. Data Model Namespace .......................................5
      3.3. The Conference Object Identifier ...........................5
           3.3.1. Conference Object URI Definition ....................7
           3.3.2. Normalization and Conference Object URI Comparison ..7
      3.4. Data Model Structure .......................................7
   4. Data Model Definition ...........................................8
      4.1. <conference-info> .........................................12
      4.2. <conference-description> ..................................12
           4.2.1. <language> .........................................13
           4.2.2. <allow-sidebars> ...................................13
           4.2.3. <cloning-parent> ...................................13
           4.2.4. <sidebar-parent> ...................................13
           4.2.5. <conference-time> ..................................13
           4.2.6. <conf-uris> ........................................15
           4.2.7. <available-media> ..................................15
        
   1. Introduction ....................................................4
   2. Terminology .....................................................4
   3. Overview ........................................................4
      3.1. Data Model Format ..........................................5
      3.2. Data Model Namespace .......................................5
      3.3. The Conference Object Identifier ...........................5
           3.3.1. Conference Object URI Definition ....................7
           3.3.2. Normalization and Conference Object URI Comparison ..7
      3.4. Data Model Structure .......................................7
   4. Data Model Definition ...........................................8
      4.1. <conference-info> .........................................12
      4.2. <conference-description> ..................................12
           4.2.1. <language> .........................................13
           4.2.2. <allow-sidebars> ...................................13
           4.2.3. <cloning-parent> ...................................13
           4.2.4. <sidebar-parent> ...................................13
           4.2.5. <conference-time> ..................................13
           4.2.6. <conf-uris> ........................................15
           4.2.7. <available-media> ..................................15
        
      4.3. <host-info> ...............................................18
      4.4. <conference-state> ........................................18
           4.4.1. <allow-conference-event-subscription> ..............18
      4.5. <floor-information> .......................................18
           4.5.1. <conference-ID> ....................................19
           4.5.2. <allow-floor-events> ...............................19
           4.5.3. <floor-request-handling> ...........................19
           4.5.4. <conference-floor-policy> ..........................20
      4.6. <users> ...................................................20
           4.6.1. <join-handling> ....................................21
           4.6.2. <user-admission-policy> ............................21
           4.6.3. <allowed-users-list> ...............................22
           4.6.4. <deny-users-list> ..................................23
           4.6.5. <user> and Its <user> Sub-Elements .................24
                  4.6.5.1. <provide-anonymity> .......................25
                  4.6.5.2. <roles> ...................................26
                  4.6.5.3. <allow-refer-users-dynamically> ...........26
                  4.6.5.4. <allow-invite-users-dynamically> ..........26
                  4.6.5.5. <allow-remove-users-dynamically> ..........26
                  4.6.5.6. <endpoint> ................................27
      4.7. <sidebars-by-ref> .........................................28
      4.8. <sidebars-by-val> .........................................28
   5. RELAX NG Schema ................................................28
   6. XML Schema Extensibility .......................................39
   7. XML Example ....................................................39
   8. Security Considerations ........................................49
   9. IANA Considerations ............................................51
      9.1. RELAX NG Schema Registration ..............................51
      9.2. XML Namespace Registration ................................52
      9.3. Conference Object Identifier Registration .................52
      9.4. Conference User Identifier Registration ...................53
   10. Acknowledgements ..............................................53
   11. References ....................................................53
      11.1. Normative References .....................................53
      11.2. Informative References ...................................54
   Appendix A.  Non-Normative RELAX NG Schema in XML Syntax ..........56
   Appendix B.  Non-Normative W3C XML Schema .........................84
        
      4.3. <host-info> ...............................................18
      4.4. <conference-state> ........................................18
           4.4.1. <allow-conference-event-subscription> ..............18
      4.5. <floor-information> .......................................18
           4.5.1. <conference-ID> ....................................19
           4.5.2. <allow-floor-events> ...............................19
           4.5.3. <floor-request-handling> ...........................19
           4.5.4. <conference-floor-policy> ..........................20
      4.6. <users> ...................................................20
           4.6.1. <join-handling> ....................................21
           4.6.2. <user-admission-policy> ............................21
           4.6.3. <allowed-users-list> ...............................22
           4.6.4. <deny-users-list> ..................................23
           4.6.5. <user> and Its <user> Sub-Elements .................24
                  4.6.5.1. <provide-anonymity> .......................25
                  4.6.5.2. <roles> ...................................26
                  4.6.5.3. <allow-refer-users-dynamically> ...........26
                  4.6.5.4. <allow-invite-users-dynamically> ..........26
                  4.6.5.5. <allow-remove-users-dynamically> ..........26
                  4.6.5.6. <endpoint> ................................27
      4.7. <sidebars-by-ref> .........................................28
      4.8. <sidebars-by-val> .........................................28
   5. RELAX NG Schema ................................................28
   6. XML Schema Extensibility .......................................39
   7. XML Example ....................................................39
   8. Security Considerations ........................................49
   9. IANA Considerations ............................................51
      9.1. RELAX NG Schema Registration ..............................51
      9.2. XML Namespace Registration ................................52
      9.3. Conference Object Identifier Registration .................52
      9.4. Conference User Identifier Registration ...................53
   10. Acknowledgements ..............................................53
   11. References ....................................................53
      11.1. Normative References .....................................53
      11.2. Informative References ...................................54
   Appendix A.  Non-Normative RELAX NG Schema in XML Syntax ..........56
   Appendix B.  Non-Normative W3C XML Schema .........................84
        
1. Introduction
1. 介绍

There is a core data set of conference information that is utilized in any conference, independent of the specific conference media. This core data set, called the "conference information data model", is defined in this document using an XML-based format. The conference information data model defined in this document is logically represented by the conference object.

在任何会议中都会使用会议信息的核心数据集,独立于特定的会议媒体。该核心数据集称为“会议信息数据模型”,在本文档中使用基于XML的格式定义。本文档中定义的会议信息数据模型在逻辑上由会议对象表示。

Conference objects are a fundamental concept in centralized conferencing, as described in the centralized conferencing framework [RFC5239]. The conference object represents a particular instantiation of a conference information data model. Consequently, conference objects use the XML format defined in this document.

会议对象是集中式会议中的一个基本概念,如集中式会议框架[RFC5239]中所述。会议对象表示会议信息数据模型的特定实例化。因此,会议对象使用本文档中定义的XML格式。

The Session Initiation Protocol (SIP) event package for conference state, specified in [RFC4575], already defines a data format for conferences. However, that model is SIP specific and lacks elements related to some of the functionality defined by the centralized conferencing framework [RFC5239] (e.g., floor control). The data model defined in this document constitutes a superset of the data format defined in [RFC4575]. The result is a data format that supports more call signaling protocols (CSPs) besides SIP and that covers all the functionality defined in the centralized conferencing framework [RFC5239].

[RFC4575]中指定的会议状态会话启动协议(SIP)事件包已经定义了会议的数据格式。然而,该模型是特定于SIP的,并且缺少与集中式会议框架[RFC5239]定义的某些功能相关的元素(例如,楼层控制)。本文件中定义的数据模型构成了[RFC4575]中定义的数据格式的超集。其结果是数据格式支持除SIP之外的更多呼叫信令协议(CSP),并涵盖了集中式会议框架[RFC5239]中定义的所有功能。

2. Terminology
2. 术语

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119].

本文件中的关键词“必须”、“不得”、“要求”、“应”、“不应”、“应”、“不应”、“建议”、“可”和“可选”应按照RFC 2119[RFC2119]中所述进行解释。

This document uses the terminology defined in the centralized conferencing framework [RFC5239], the SIPPING conferencing framework [RFC4353], and the BFCP (Binary Floor Control Protocol) specification [RFC4582]. Readers of this document should be familiar with the terminology used in those documents.

本文件使用了集中式会议框架[RFC5239]、啜饮式会议框架[RFC4353]和BFCP(二进制地板控制协议)规范[RFC4582]中定义的术语。本文件的读者应熟悉这些文件中使用的术语。

3. Overview
3. 概述

The data model specified in this document is the result of extending the data format defined in [RFC4575] with new elements. Examples of such extensions include scheduling elements, media control elements, floor control elements, non-SIP URIs, and the addition of localization extensions to text elements. This data model can be used by conference servers providing different types of basic

本文档中指定的数据模型是使用新元素扩展[RFC4575]中定义的数据格式的结果。此类扩展的示例包括调度元素、媒体控制元素、楼层控制元素、非SIPURI,以及向文本元素添加本地化扩展。此数据模型可由提供不同类型基本服务的会议服务器使用

conferences. It is expected that this data model can be further extended with new elements in the future in order to implement additional advanced features.

会议。预计该数据模型将来可以进一步扩展为新的元素,以实现其他高级功能。

3.1. Data Model Format
3.1. 数据模型格式

A conference object document is an XML [W3C.REC-xml-20081126] document. Conference object documents MUST be based on XML 1.0 and MUST be encoded using UTF-8.

会议对象文档是XML[W3C.REC-XML-20081126]文档。会议对象文档必须基于XML 1.0,并且必须使用UTF-8编码。

The normative description of the syntax of the conference object document, for use by implementers of parsers and generators, is found in the RELAX NG schema provided in Section 5. Compliant messages MUST meet the requirements of that schema.

第5节提供的RELAXNG模式中提供了供解析器和生成器实现人员使用的会议对象文档语法的规范性描述。符合要求的消息必须满足该架构的要求。

3.2. Data Model Namespace
3.2. 数据模型名称空间

This specification defines a new namespace specification for identifying the elements defined in the data model. This namespace is as follows:

该规范定义了一个新的名称空间规范,用于标识数据模型中定义的元素。此命名空间如下所示:

   urn:ietf:params:xml:ns:xcon-conference-info
        
   urn:ietf:params:xml:ns:xcon-conference-info
        
3.3. The Conference Object Identifier
3.3. 会议对象标识符

The conference object identifier (XCON-URI) can be viewed as a key to accessing a specific conference object. It can be used, for instance, by the conference control protocol to access, manipulate and delete a conference object. A conference object identifier is provided to the conferencing client by the conference notification service or through out-of-band mechanisms (e.g., email).

可以将会议对象标识符(XCON-URI)视为访问特定会议对象的密钥。例如,会议控制协议可以使用它来访问、操作和删除会议对象。会议对象标识符由会议通知服务或通过带外机制(例如电子邮件)提供给会议客户端。

A conferencing system may maintain a relationship between the conference object identifiers and the identifiers associated with each of the complementary centralized conferencing protocols (e.g., call signaling protocol, BFCP, etc.). To facilitate the maintenance of these relationships, the conference object identifier acts as a top-level identifier within the conferencing system for the purpose of identifying the interfaces for these other protocols. This implicit binding provides a structured mapping of the various protocols with the associated conference object identifier. Figure 1 illustrates the relationship between the identifiers used for the protocols and the general conference object identifier (XCON-URI).

会议系统可以维持会议对象标识符和与补充的集中式会议协议(例如,呼叫信令协议、BFCP等)中的每一个相关联的标识符之间的关系。为了便于维护这些关系,会议对象标识符充当会议系统内的顶级标识符,用于标识这些其他协议的接口。这种隐式绑定提供了各种协议与相关会议对象标识符的结构化映射。图1说明了用于协议的标识符和大会对象标识符(XCON-URI)之间的关系。

                            +--------------------------+
                            |       Conference         |
                            |         Object           |
                            |       Identifier         |
                            +--------------------------+
                            |  xcon:Ji092i@example.com |
                            +------+-------------------+
                                        |
                                        |
                                        |
                      +-----------------+---------------+
                      |                                 |
          +-----------+-----------+          +----------+---------+
          |   CSP Conference IDs  |          |BFCP 'Conference ID'|
          +-----------------------+          +--------------------+
          | h323:i092@example.com |          |        i092        |
          | tel:+44(0)2920930033  |          +----------+---------+
          | sip:i092@example.com  |                     |
          +-----------------------+             +-------+--------+
                                                | BFCP 'Floor ID'|
                                                +----------------+
                                                |      543       |
                                                |      236       |
                                                +----------------+
        
                            +--------------------------+
                            |       Conference         |
                            |         Object           |
                            |       Identifier         |
                            +--------------------------+
                            |  xcon:Ji092i@example.com |
                            +------+-------------------+
                                        |
                                        |
                                        |
                      +-----------------+---------------+
                      |                                 |
          +-----------+-----------+          +----------+---------+
          |   CSP Conference IDs  |          |BFCP 'Conference ID'|
          +-----------------------+          +--------------------+
          | h323:i092@example.com |          |        i092        |
          | tel:+44(0)2920930033  |          +----------+---------+
          | sip:i092@example.com  |                     |
          +-----------------------+             +-------+--------+
                                                | BFCP 'Floor ID'|
                                                +----------------+
                                                |      543       |
                                                |      236       |
                                                +----------------+
        

Figure 1: Conference Object Mapping

图1:会议对象映射

In Figure 1, the conference object identifier acts as the top-level key in the identification process. The call signaling protocols have an associated conference user identifier, often represented in the form of a URI. The BFCP, as defined in [RFC4582], defines the 'conference ID' identifier which represents a conference instance within floor control. When created within the conferencing system, the 'conference ID' has a 1:1 mapping to the unique conference object identifier(XCON-URI). Operations associated with the conference control protocols are directly associated with the conference object; thus, the primary identifier associated with these protocols is the conference object identifier(XCON-URI). The mappings between additional protocols/interfaces is not strictly 1:1 and does allow for multiple occurrences. For example, multiple call signaling protocols will each have a representation that is implicitly linked to the top-level conference object identifier, e.g., H323 and SIP URIs that represent a conference instance. 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.

在图1中,会议对象标识符充当标识过程中的顶级密钥。呼叫信令协议具有相关联的会议用户标识符,通常以URI的形式表示。[RFC4582]中定义的BFCP定义了“会议ID”标识符,该标识符表示楼层控制中的会议实例。在会议系统中创建时,“会议ID”与唯一的会议对象标识符(XCON-URI)具有1:1的映射。与会议控制协议相关联的操作直接与会议对象相关联;因此,与这些协议相关联的主要标识符是会议对象标识符(XCON-URI)。附加协议/接口之间的映射严格来说不是1:1,允许多次出现。例如,多个呼叫信令协议将各自具有隐式链接到顶级会议对象标识符的表示,例如,表示会议实例的H323和SIP uri。应该注意的是,会议系统可以根据需要自由地构建此类关系,并且这些信息只是作为可以使用的指南。

Further elements can be added to the tree representation in Figure 1 to enable a complete representation of a conference instance within a conferencing system.

可以向图1中的树表示中添加更多元素,以实现会议系统中会议实例的完整表示。

3.3.1. Conference Object URI Definition
3.3.1. 会议对象URI定义

The syntax is defined by the following ABNF [RFC5234] rules.

语法由以下ABNF[RFC5234]规则定义。

      XCON-URI = "xcon" ":" [conf-object-id "@"] host
        
      XCON-URI = "xcon" ":" [conf-object-id "@"] host
        
      conf-object-id = 1*( unreserved / "+" / "=" / "/" )
        
      conf-object-id = 1*( unreserved / "+" / "=" / "/" )
        

Note: host and unreserved are defined in RFC 3986 [RFC3986].

注:主机和非保留在RFC 3986[RFC3986]中定义。

An XCON-URI is not designed to be resolved, and an application MUST NOT attempt to perform a standard DNS lookup on the host portion of such a URI in an attempt to discover an IP address or port at which to connect.

XCON-URI不是为解析而设计的,应用程序不得试图在此类URI的主机部分上执行标准DNS查找,以发现要连接的IP地址或端口。

3.3.2. Normalization and Conference Object URI Comparison
3.3.2. 规范化和会议对象URI比较

In order to facilitate the comparison of the XCON-URI identifiers, all the components of the identifiers MUST be converted to lowercase. After normalizing the URI strings, the URI comparison MUST be applied on a character-by-character basis as prescribed by [RFC3986], Section 6.2.1.

为了便于比较XCON-URI标识符,标识符的所有组件都必须转换为小写。规范化URI字符串后,必须按照[RFC3986]第6.2.1节的规定,逐字符应用URI比较。

The host construction, as defined in RFC 3986, can take the form of an IP address, which is not conventionally compared on a character-by-character basis. The host part of an XCON-URI serves only as an identifier; that is, it is never used as an address. The character-by-character comparison still applies.

RFC 3986中定义的主机结构可以采用IP地址的形式,这在传统上不是按字符进行比较的。XCON-URI的主机部分仅用作标识符;也就是说,它从未被用作地址。逐字比较仍然适用。

3.4. Data Model Structure
3.4. 数据模型结构

The information in this data model is structured in the following manner. All the information related to a conference is contained in a <conference-info> element. The <conference-info> element contains the following child elements:

此数据模型中的信息按以下方式构造。与会议相关的所有信息都包含在<conference info>元素中。<conference info>元素包含以下子元素:

o The <conference-description> element describes the conference as a whole. It has, for instance, information about the URI of the conference, maximum users allowed in the conference, media available in the conference, or the time the conference will start.

o <conference description>元素将会议描述为一个整体。例如,它包含有关会议URI、会议中允许的最大用户数、会议中可用的媒体或会议开始时间的信息。

o The <host-info> element contains information about the entity hosting the conference (e.g., its URI).

o <host info>元素包含有关会议主办实体的信息(例如,其URI)。

o The <conference-state> element informs the subscribers about the changes in the overall conference information.

o <conference state>元素通知订阅者整个会议信息的变化。

o The <floor-information> element contains information about the status of the different floors in the conference.

o <floor information>元素包含有关会议中不同楼层的状态的信息。

o The <users> element describes the membership information as a whole. The <users> element contains a set of <user> child elements, each describing a single participant in the conference.

o <users>元素将成员信息描述为一个整体。<users>元素包含一组<user>子元素,每个子元素描述会议中的单个参与者。

o If a participant in the main conference joins a sidebar, a new element is created in the conference referenced from the <sidebars-by-ref> element or under one of the <sidebars-by-val> elements.

o 如果主会议的参与者加入侧栏,则会在会议中从<sidebars by ref>元素引用或在<sidebars by val>元素之一下创建新元素。

Note that some of the elements described above such as <conference-info>, <conference-description>, <sidebars-by-ref>, or <sidebars-by-val> are not defined in the data model in this specification but are defined in the data format of [RFC4575]. We describe them here because they are part of the basic structure of the data model.

请注意,上面描述的一些元素,如<conference info>、<conference description>、<sidebars by ref>或<sidebars by val>未在本规范的数据模型中定义,而是以[RFC4575]的数据格式定义。我们在这里描述它们是因为它们是数据模型基本结构的一部分。

4. Data Model Definition
4. 数据模型定义

The following non-normative diagram shows the structure of conference object documents. The symbol "!" preceding an element indicates that the element is REQUIRED in the data model. The symbol "*" following an element indicates that the element is introduced and defined in this document. That is, elements without a "*" have already been defined in [RFC4575].

以下非规范性图表显示了会议目标文件的结构。元素前面的符号“!”表示数据模型中需要该元素。元素后面的符号“*”表示该元素已在本文档中介绍和定义。也就是说,没有“*”的元素已经在[RFC4575]中定义。

   !<conference-info>
        |
        |--<conference-description>
        |     |--<language>*
        |     |--<display-text>
        |     |--<subject>
        |     |--<free-text>
        |     |--<keywords>
        |     |--<allow-sidebars>*
        |     |--<cloning-parent>*
        |     |--<sidebar-parent>*
        |     |--<conference-time>*
        |     |      |--<entry>*
        |     |      |    |--<base>*
        |     |      |    |--<mixing-start-offset>*
        |     |      |    |--<mixing-end-offset>*
        |     |      |    |--<can-join-after-offset>*
        |     |      |    |--<must-join-before-offset>*
        
   !<conference-info>
        |
        |--<conference-description>
        |     |--<language>*
        |     |--<display-text>
        |     |--<subject>
        |     |--<free-text>
        |     |--<keywords>
        |     |--<allow-sidebars>*
        |     |--<cloning-parent>*
        |     |--<sidebar-parent>*
        |     |--<conference-time>*
        |     |      |--<entry>*
        |     |      |    |--<base>*
        |     |      |    |--<mixing-start-offset>*
        |     |      |    |--<mixing-end-offset>*
        |     |      |    |--<can-join-after-offset>*
        |     |      |    |--<must-join-before-offset>*
        
        |     |      |    |--<request-user>*
        |     |      |    |--<notify-end-of-conference>*
        |     |      |    |--<allowed-extend-mixing-end-offset>*
        |     |           ...
        |     |--<conf-uris>
        |     |      |--<entry>
        |     |      |    |--<uri>
        |     |      |    |--<display-text>
        |     |      |    |--<purpose>
        |     |      |    |--<conference-password>*
        |     |      ...
        |     |--<service-uris>
        |     |      |--<entry>
        |     |      |    |--<uri>
        |     |      |    |--<display-text>
        |     |      |    |--<purpose>
        |     |      ...
        |     |--<maximum-user-count>
        |     |      ...
        |     |--<available-media>
        |     |      |--<entry>
        |     |      |     |--<display-text>
        |     |      |     |--<type>
        |     |      |     |--<status>
        |     |      |     |--<mixing-mode>*
        |     |      |     |--<codecs>*
        |     |      |     |    |--<codec>*
        |     |      |     |    |    |--<subtype>*
        |     |      |     |    |--<codec>*
        |     |      |     |    |    |--<subtype>*
        |     |      |     |    ...
        |     |      |     |--<controls>*
        |     |      |     |    |--<mute>*
        |     |      |     |    |--<gain>*
        |     |      |     |   ...
        |     |      |--<entry>
        |     |      |     |--<display-text>
        |     |      |     |--<type>
        |     |      |     |--<status>
        |     |      |     |--<mixing-mode>*
        |     |      |     |--<codecs>*
        |     |      |     |    |--<codec>*
        |     |      |     |    |    |--<subtype>*
        |     |      |     |    |--<codec>*
        |     |      |     |    |    |--<subtype>*
        |     |      |     |    ...
        |     |      |     |--<controls>*
        |     |      |     |    |--<pause-video>*
        
        |     |      |    |--<request-user>*
        |     |      |    |--<notify-end-of-conference>*
        |     |      |    |--<allowed-extend-mixing-end-offset>*
        |     |           ...
        |     |--<conf-uris>
        |     |      |--<entry>
        |     |      |    |--<uri>
        |     |      |    |--<display-text>
        |     |      |    |--<purpose>
        |     |      |    |--<conference-password>*
        |     |      ...
        |     |--<service-uris>
        |     |      |--<entry>
        |     |      |    |--<uri>
        |     |      |    |--<display-text>
        |     |      |    |--<purpose>
        |     |      ...
        |     |--<maximum-user-count>
        |     |      ...
        |     |--<available-media>
        |     |      |--<entry>
        |     |      |     |--<display-text>
        |     |      |     |--<type>
        |     |      |     |--<status>
        |     |      |     |--<mixing-mode>*
        |     |      |     |--<codecs>*
        |     |      |     |    |--<codec>*
        |     |      |     |    |    |--<subtype>*
        |     |      |     |    |--<codec>*
        |     |      |     |    |    |--<subtype>*
        |     |      |     |    ...
        |     |      |     |--<controls>*
        |     |      |     |    |--<mute>*
        |     |      |     |    |--<gain>*
        |     |      |     |   ...
        |     |      |--<entry>
        |     |      |     |--<display-text>
        |     |      |     |--<type>
        |     |      |     |--<status>
        |     |      |     |--<mixing-mode>*
        |     |      |     |--<codecs>*
        |     |      |     |    |--<codec>*
        |     |      |     |    |    |--<subtype>*
        |     |      |     |    |--<codec>*
        |     |      |     |    |    |--<subtype>*
        |     |      |     |    ...
        |     |      |     |--<controls>*
        |     |      |     |    |--<pause-video>*
        
        |     |      |     |    |--<video-layout>*
        |     |      |     |   ...
        |     |      ...
        |
        |--<host-info>
        |     |--<display-text>
        |     |--<web-page>
        |     |--<uris>
        |     |     |--<entry>
        |     |     |    |--<uri>
        |     |     |    |--<display-text>
        |           ...
        |--<conference-state>
        |     |--<allow-conference-event-subscription>*
        |     |--<user-count>
        |     |--<active>
        |     |--<locked>
        |
        |--<floor-information>*
        |     |--<conference-ID>*
        |     |--<allow-floor-events>*
        |     |--<floor-request-handling>*
        |     |--<conference-floor-policy>*
        |     |     |--<floor>*
        |     |     |    |--!<media-label>*
        |     |     |    |--<algorithm>*
        |     |     |    |--<max-floor-users>*
        |     |     |    |--<moderator-id>*
        |     |     |   ...
        |     |     ...
        |
        |--<users>
        |     |--<join-handling>*
        |     |--<user-admission-policy>*
        |     |--<allowed-users-list>*
        |     |     |--<target>*
        |     |     |
        |     |     |--<persistent-list>*
        |     |     |     |--<user>*
        |     |     |     |     |-- <email>*
        |     |
        |     |--<deny-users-list>*
        |     |
        |     |--<user>
        |     |    |--<display-text>
        |     |    |--<associated-aors>
        |     |    |--<provide-anonymity>*
        |     |    |--<roles>
        
        |     |      |     |    |--<video-layout>*
        |     |      |     |   ...
        |     |      ...
        |
        |--<host-info>
        |     |--<display-text>
        |     |--<web-page>
        |     |--<uris>
        |     |     |--<entry>
        |     |     |    |--<uri>
        |     |     |    |--<display-text>
        |           ...
        |--<conference-state>
        |     |--<allow-conference-event-subscription>*
        |     |--<user-count>
        |     |--<active>
        |     |--<locked>
        |
        |--<floor-information>*
        |     |--<conference-ID>*
        |     |--<allow-floor-events>*
        |     |--<floor-request-handling>*
        |     |--<conference-floor-policy>*
        |     |     |--<floor>*
        |     |     |    |--!<media-label>*
        |     |     |    |--<algorithm>*
        |     |     |    |--<max-floor-users>*
        |     |     |    |--<moderator-id>*
        |     |     |   ...
        |     |     ...
        |
        |--<users>
        |     |--<join-handling>*
        |     |--<user-admission-policy>*
        |     |--<allowed-users-list>*
        |     |     |--<target>*
        |     |     |
        |     |     |--<persistent-list>*
        |     |     |     |--<user>*
        |     |     |     |     |-- <email>*
        |     |
        |     |--<deny-users-list>*
        |     |
        |     |--<user>
        |     |    |--<display-text>
        |     |    |--<associated-aors>
        |     |    |--<provide-anonymity>*
        |     |    |--<roles>
        
        |     |    |    |
        |     |    |   ...
        |     |    |--<languages>
        |     |    |--<cascaded-focus>
        |     |    |--<allow-refer-users-dynamically>*
        |     |    |--<allow-invite-users-dynamically>*
        |     |    |--<allow-remove-users-dynamically>*
        |     |    |--<endpoint>
        |     |    |      |--<display-text>
        |     |    |      |--<referred>
        |     |    |      |--<status>
        |     |    |      |--<joining-method>
        |     |    |      |--<joining-info>
        |     |    |      |--<disconnection-method>
        |     |    |      |--<disconnection-info>
        |     |    |      |--<media>
        |     |    |      |    |--<type>
        |     |    |      |    |--<display-text>
        |     |    |      |    |--<label>
        |     |    |      |    |--<src-id>
        |     |    |      |    |--<status>
        |     |    |      |    |--<to-mixer>*
        |     |    |      |    |      |--<floor>*
        |     |    |      |    |      |--<controls>*
        |     |    |      |    |      |      |--<mute>*
        |     |    |      |    |      |      |--<gain>*
        |     |    |      |    |      |     ...
        |     |    |      |    |--<from-mixer>*
        |     |    |      |    |      |--<floor>*
        |     |    |      |    |      |--<controls>*
        |     |    |      |    |      |      |--<pause-video>*
        |     |    |      |    |      |     ...
        |     |    |      |   ...
        |     |    |      |--<call-info>
        |     |    |      |    |--<sip>
        |     |    |      |    |   |--<display-text>
        |     |    |      |    |   |--<call-id>
        |     |    |      |    |   |--<from-tag>
        |     |    |      |    |   |--<to-tag>
        |          ...    ...
        |--<sidebars-by-ref>
        |     |--<entry>
        |     |     |-- <user>
        |     |     |-- <display-text>
        |     |--<entry>
        |     |     |-- <user>
        |     |     |-- <display-text>
        |     ...
        
        |     |    |    |
        |     |    |   ...
        |     |    |--<languages>
        |     |    |--<cascaded-focus>
        |     |    |--<allow-refer-users-dynamically>*
        |     |    |--<allow-invite-users-dynamically>*
        |     |    |--<allow-remove-users-dynamically>*
        |     |    |--<endpoint>
        |     |    |      |--<display-text>
        |     |    |      |--<referred>
        |     |    |      |--<status>
        |     |    |      |--<joining-method>
        |     |    |      |--<joining-info>
        |     |    |      |--<disconnection-method>
        |     |    |      |--<disconnection-info>
        |     |    |      |--<media>
        |     |    |      |    |--<type>
        |     |    |      |    |--<display-text>
        |     |    |      |    |--<label>
        |     |    |      |    |--<src-id>
        |     |    |      |    |--<status>
        |     |    |      |    |--<to-mixer>*
        |     |    |      |    |      |--<floor>*
        |     |    |      |    |      |--<controls>*
        |     |    |      |    |      |      |--<mute>*
        |     |    |      |    |      |      |--<gain>*
        |     |    |      |    |      |     ...
        |     |    |      |    |--<from-mixer>*
        |     |    |      |    |      |--<floor>*
        |     |    |      |    |      |--<controls>*
        |     |    |      |    |      |      |--<pause-video>*
        |     |    |      |    |      |     ...
        |     |    |      |   ...
        |     |    |      |--<call-info>
        |     |    |      |    |--<sip>
        |     |    |      |    |   |--<display-text>
        |     |    |      |    |   |--<call-id>
        |     |    |      |    |   |--<from-tag>
        |     |    |      |    |   |--<to-tag>
        |          ...    ...
        |--<sidebars-by-ref>
        |     |--<entry>
        |     |     |-- <user>
        |     |     |-- <display-text>
        |     |--<entry>
        |     |     |-- <user>
        |     |     |-- <display-text>
        |     ...
        
        |--<sidebars-by-val>
        |     |--<entry>
        |     |     |
        |     |    ...
        |     |--<entry>
        |     |     |
        |     ...   ...
        
        |--<sidebars-by-val>
        |     |--<entry>
        |     |     |
        |     |    ...
        |     |--<entry>
        |     |     |
        |     ...   ...
        

The following sections describe these elements in detail. The full RELAX NG schema is provided in Section 5.

以下各节详细介绍了这些要素。第5节提供了完整的RELAXNG模式。

4.1. <conference-info>
4.1. <会议信息>

A conference object document begins with the root element <conference-info>, which is defined in [RFC4575]. The 'state' and 'version' attributes of the <conference-info> element are defined in [RFC4575] and are not used in the context of the XCON Conference Information Model since they apply only to notification mechanisms.

会议对象文档以根元素<conference info>开始,该元素在[RFC4575]中定义。<conference info>元素的“状态”和“版本”属性在[RFC4575]中定义,不在XCON会议信息模型的上下文中使用,因为它们仅适用于通知机制。

In addition, [RFC4575] defines an 'entity' attribute that contains the SIP URI identifier. This specification extends the meaning of the 'entity' attribute to the conference object identifier (XCON-URI) explained in Section 3.3.

此外,[RFC4575]定义了一个包含SIP URI标识符的“实体”属性。本规范将“实体”属性的含义扩展到第3.3节中解释的会议对象标识符(XCON-URI)。

This specification adds to the <conference-info> element the child elements of the <floor-information> element.

此规范将<floor information>元素的子元素添加到<conference info>元素中。

4.2. <conference-description>
4.2. <会议说明>

The <conference-description> element, which is defined in [RFC4575], describes the conference as a whole. It SHOULD have an attribute 'lang' to specify the language used in the contents of this element. It is comprised of <language>, <display-text>, <subject>, <free-text>, <keywords>, <allow-sidebars>, <cloning-parent>, <sidebar-parent>, <conference-time>, <conf-uris>, <service-uris>, <maximum-user-count>, and <available-media>. The <display-text>, <subject>, <free-text>, <keywords>, <service-uris>, and <maximum-user-count> elements are described in Section 5.3 of [RFC4575].

[RFC4575]中定义的<conference description>元素将会议描述为一个整体。它应该有一个属性“lang”来指定此元素内容中使用的语言。它由<language>、<display text>、<subject>、<free text>、<keywords>、<allow sidebar>、<cloning parent>、<sidebar parent>、<conf uris>、<service uris>、<maximum user count>和<available media>组成。[RFC4575]第5.3节介绍了<display text>、<subject>、<free text>、<keywords>、<service URI>和<maximum user count>元素。

The following sections describe these elements in more detail. Other child elements MAY be defined in the future to extend the <conference-description> element.

以下各节将更详细地描述这些元素。将来可以定义其他子元素以扩展<conference description>元素。

4.2.1. <language>
4.2.1. <language>

The <language> element indicates the predominant language that is expected to be employed within a conference. This element contains only one language. The possible values of this element are the values of the 'Subtag' column of the "Language Subtag Registry" at [IANA-Lan] originally defined in [RFC5646]. This element does not enforce the language of the conference: it only informs the participants about the desirable language that they should use in the conference. Participants are free to switch to other languages if they like.

<language>元素表示会议中预期使用的主要语言。此元素仅包含一种语言。此元素的可能值是[RFC5646]中最初定义的[IANA Lan]处“语言子标记注册表”的“子标记”列的值。这一要素并不强制执行会议的语言:它只告知与会者他们应该在会议中使用的理想语言。如果参与者愿意,他们可以自由切换到其他语言。

4.2.2. <allow-sidebars>
4.2.2. <允许侧栏>

The <allow-sidebars> element represents a boolean value. If set to true or "1", the conference is allowed to create sidebar conferences. If absent, or set to "false" or "0", the conference cannot create sidebar conferences.

<allow sidebars>元素表示一个布尔值。如果设置为true或“1”,则允许会议创建侧栏会议。如果缺席,或设置为“false”或“0”,会议将无法创建侧栏会议。

4.2.3. <cloning-parent>
4.2.3. <克隆父项>

When the <cloning-parent> is present, it indicates that the conference object is a child of a parent conference. The <cloning-parent> element contains the conference object identifier (XCON-URI) (different from the main XCON-URI) of the parent.

当出现<cloning parent>时,表示会议对象是父会议的子会议。<cloning parent>元素包含父对象的会议对象标识符(XCON-URI)(与主XCON-URI不同)。

4.2.4. <sidebar-parent>
4.2.4. <sidebar parent>

When the <sidebar-parent> is present, it indicates that the conference object represents a sidebar of another conference. The <sidebar-parent> element contains the conference object identifier (XCON-URI) (different from the main XCON-URI) of the parent.

当出现<sidebar parent>时,它表示会议对象代表另一个会议的侧栏。<sidebar parent>元素包含父级的会议对象标识符(XCON-URI)(与主XCON-URI不同)。

4.2.5. <conference-time>
4.2.5. <会议时间>

The <conference-time> element contains the information related to time, policy, and duration of a conference. The <conference-time> element contains one or more <entry> elements, each defining the time and policy information specifying a single conference occurrence. The <conference-time> element differs from the iCalendar objects [RFC5545] in that it has the ability to define different policies (<can-join-after-offset>, <must-join-before-offset>) for the same conference at different times.

<conference time>元素包含与会议的时间、策略和持续时间相关的信息。<conference time>元素包含一个或多个<entry>元素,每个元素定义指定单个会议事件的时间和策略信息。<conference time>元素与iCalendar对象[RFC5545]的不同之处在于,它能够在不同时间为同一会议定义不同的策略(<can join after offset>,<must join before offset>)。

Every <entry> element contains the following child elements:

每个<entry>元素都包含以下子元素:

o <base>: The <base> child element specifies the iCalendar object of the conference. The iCalendar object components are defined in [RFC5545].

o <base>:子元素指定会议的iCalendar对象。iCalendar对象组件在[RFC5545]中定义。

o <mixing-start-offset>: The <mixing-start-offset> child element specifies when the conference media mixing starts before the conference starts. The <mixing-start-offset> element specifies an absolute value rather than an offset value. If the <mixing-start-offset> element is not present, it indicates that the conference media mixing starts immediately. The <mixing-start-offset> MUST include the 'required-participant' attribute. This attribute contains one of the following values: "none", "administrator", "moderator", "user", "observer", and "participant". The roles' semantic definitions are out of the scope of this document and are subject to future policy documents. More values can be specified in the future. The 'required-participant' attribute allows a privileged user to define when media mixing starts based on the latter of the mixing start time and the time the first participant arrives. If the value is set to "none", mixing starts according to the mixing start time.

o <mixing start offset>:子元素指定会议开始之前会议媒体混合何时开始。<mixing start offset>元素指定绝对值而不是偏移值。如果<mixing start offset>元素不存在,则表示会议媒体混合立即开始。<mixing start offset>必须包含“必需参与者”属性。此属性包含以下值之一:“无”、“管理员”、“主持人”、“用户”、“观察者”和“参与者”。角色的语义定义不在本文档的范围内,受未来策略文档的约束。以后可以指定更多的值。“required participant”属性允许特权用户根据混合开始时间和第一个参与者到达时间中的后一个来定义媒体混合何时开始。如果该值设置为“无”,则根据混合开始时间开始混合。

o <mixing-end-offset>: The <mixing-end-offset> child element specifies the time conference media mixing stops after the conference stops. If the <mixing-end-offset> element is not present, it indicates that the conference occurrence is not bounded. The <mixing-end-offset> element MUST include the 'required-participant' attribute. This attribute contains one of the following values: "none", "administrator", "moderator", "user", "observer", and "participant". More values can be specified in the future. The 'required-participant' attribute allows a privileged user to define when media mixing ends based on the earlier of the <mixing-end-offset> and the time the last participant leaves. If the value is set to "none", mixing stops according to the <mixing-end-offset>. If the conference policy was modified so that the last privileged user is now a normal conference participant, and the conference requires a privileged user to continue, that conference MUST terminate.

o <mixing end offset>:子元素指定会议停止后会议媒体混合停止的时间。如果<mixing end offset>元素不存在,则表示会议引用没有边界。<mixing end offset>元素必须包含“必需参与者”属性。此属性包含以下值之一:“无”、“管理员”、“主持人”、“用户”、“观察者”和“参与者”。以后可以指定更多的值。“required participant”(所需参与者)属性允许特权用户根据<mixing end offset>中的较早者和最后一个参与者离开的时间定义媒体混合何时结束。如果该值设置为“无”,则混合将根据<mixing end offset>停止。如果修改了会议策略,使最后一个特权用户现在是正常会议参与者,并且会议需要特权用户才能继续,则该会议必须终止。

o <can-join-after-offset>: An administrator can indicate the time when users can join a conference by populating the <can-join-after-offset> element.

o <can join after offset>:管理员可以通过填充<can join after offset>元素来指示用户可以加入会议的时间。

o <must-join-before-offset>: An administrator can define the time after which new users are not allowed to join the conference anymore.

o <必须在偏移量之前加入>:管理员可以定义新用户不再被允许加入会议的时间。

o <request-user>: This element defines the time when users or resources on the <allowed-users-list> are requested to join the conference by using the <request-users> element.

o <request user>:此元素定义使用<request users>元素请求<allowed users list>上的用户或资源加入会议的时间。

o <notify-end-of-conference>: The <notify-end-of-conference> element defines in seconds when the system MUST send a notification that the end of the conference is approaching. If the <notify-end-of-conference> element is not present, this indicates that the system does not notify the users when the end of the conference is approaching.

o <notify end of conference>:元素以秒为单位定义系统必须发送会议即将结束的通知的时间。如果<notify end of conference>元素不存在,则表示系统不会在会议即将结束时通知用户。

o <allowed-extend-mixing-end-offset>: The <allowed-extend-mixing-end-offset> element indicates if the conference is allowed to be extended. It has a boolean value.

o <allowed extend mixing end offset>:元素<allowed extend mixing end offset>指示是否允许扩展会议。它有一个布尔值。

4.2.6. <conf-uris>
4.2.6. <confuris>

The <conf-uris> contains a set of <entry> child elements -- each containing a new element: <conference-password>. This element contains the password(s) of the conference, for instance, Public Switched Telephone Network (PSTN) conference will store the 'PIN code' in this element. All the other <conf-uris> child elements are described in Section 5.3.1 of [RFC4575].

<confuris>包含一组<entry>子元素,每个子元素都包含一个新元素:<conferencepassword>。此元素包含会议的密码,例如,公共交换电话网络(PSTN)会议将在此元素中存储“PIN码”。[RFC4575]的第5.3.1节描述了所有其他<conf uri>子元素。

The RELAX NG schema in Section 5 allows <conference-password> to appear anywhere uris-type is expanded. This document only provides meaning for <conference-password> appearing as a descendant of the <conf-uris> element. Future standardization may give meaning to <conference-password> appearing in other elements of type "uris-type". In the absence of such standardization, <conference-password> MUST NOT appear in elements of type "uris-type" other than <conf-uris>.

第5节中的RELAXNG模式允许<conference password>出现在扩展URI类型的任何位置。本文档仅为<conf uris>元素的后代出现的<conferencepassword>提供了含义。未来的标准化可能会赋予出现在“uris type”类型的其他元素中的<conference password>含义。在没有此类标准化的情况下,<conference password>不得出现在除<conf uris>之外的“uris type”类型的元素中。

4.2.7. <available-media>
4.2.7. <可用媒体>

The <available-media> element consists of a sequence of <entry> child elements. Each <entry> element MAY contain the following child elements:

<available media>元素由一系列<entry>子元素组成。每个<entry>元素可以包含以下子元素:

o The <display-text>, <type>, and <status> elements are described in Section 5.3.4 of [RFC4575].

o [RFC4575]第5.3.4节描述了<display text>、<type>和<status>元素。

o The child element <mixing-mode> describes a default scheduling policy by which the mixer will build the outgoing stream from the incoming streams. Note that this policy is different than the policy describing the floors for each media. The <mixing-mode> child element MUST contain one and only one of the "moderator-controlled", "FCFS", and "automatic" values, indicating the

o 子元素<mixing mode>描述了一个默认的调度策略,通过该策略,混合器将从传入流构建传出流。请注意,此策略与描述每种媒体的楼层的策略不同。<mixing mode>子元素必须包含且仅包含一个“慢化剂控制”、“FCFS”和“自动”值,指示

default algorithm to use with every media stream. The "moderator-controlled" value indicates that the moderator of the conference controls the media stream policy. The "FCFS" value indicates a 'first-come-first-served' policy. The "automatic" value means the mixer must choose the best scheduling policy for the conference.

用于每个媒体流的默认算法。“主持人控制”值表示会议主持人控制媒体流策略。“FCFS”值表示“先到先得”策略。“自动”值表示混合器必须为会议选择最佳调度策略。

o The <codecs> element specifies the allowed codecs in the conference. It has an attribute 'decision' that specifies if the focus decides the common codec automatically or needs the approval of the moderator of the conference ("automatic", "moderator-controlled"). The <codecs> element contains <codec> elements. A <codec> element can have the attribute 'name' and 'policy'. The 'name' attribute is a codec identifier assigned by the conferencing server. The 'policy' attribute contains the policy for that codec (allowed or disallowed). The <codec> element has the child element <subtype>, which stores the codec's name. The possible values of this element are the values of the 'subtype' column of the "RTP Payload Format media types" registry at [IANA] originally defined in [RFC4855]. It is expected that future conferencing specifications will define corresponding schema extensions, as appropriate.

o 元素指定会议中允许的编解码器。它有一个属性“decision”,指定焦点是自动决定公共编解码器还是需要会议主持人的批准(“自动”、“主持人控制”)。<codec>元素包含<codec>元素。<codec>元素可以具有属性“name”和“policy”。“name”属性是会议服务器分配的编解码器标识符。“policy”属性包含该编解码器的策略(允许或不允许)。<codec>元素具有子元素<subtype>,该子元素存储编解码器的名称。此元素的可能值是[RFC4855]中最初定义的[IANA]处“RTP有效负载格式媒体类型”注册表的“子类型”列的值。预计未来的会议规范将酌情定义相应的模式扩展。

o The <controls> element contains the basic audio and video global control elements for a conference. These controls are sufficient for the majority of basic conferences. If the conference server wants to support more-advanced controls, then it is RECOMMENDED that an extension to the data model be used. In the <controls> element, the schema is extensible; hence, new control types can be added in the future. So, moderator controls that affect all media output would go under the <available-media> element. The following child elements are defined for <controls>:

o <controls>元素包含会议的基本音频和视频全局控制元素。这些控制措施对于大多数基本会议来说是足够的。如果会议服务器希望支持更高级的控件,则建议使用数据模型的扩展。在<controls>元素中,模式是可扩展的;因此,将来可以添加新的控件类型。因此,影响所有媒体输出的版主控件将位于<available media>元素下。为<controls>定义了以下子元素:

* The <mute> element is used in conjunction with an audio stream to cease transmission of any audio from the associated stream. That means that for the entire duration where mute is applicable, all current and future participants of the conference are muted and will not send any audio. It has a boolean value. If this control is not specified, access to the control is not available to the client.

* <mute>元素与音频流一起使用,以停止来自相关流的任何音频的传输。这意味着,在适用静音的整个持续时间内,会议的所有当前和未来参与者都将静音,并且不会发送任何音频。它有一个布尔值。如果未指定此控件,则客户端无法访问该控件。

* The <pause-video> element is used in conjunction with a video stream to cease transmission of associated media. It has a boolean value. If this control is not specified, the access to the control is not available to the client.

* <pause video>元素与视频流一起使用,以停止相关媒体的传输。它有一个布尔值。如果未指定此控件,则客户端无法访问该控件。

* The <gain> element is used in conjunction with a media output stream to indicate the amount of amplification of an audio stream. The value is an integer number that ranges from -127 to 127. If this control is not specified, access to the control is not available to the client.

* <gain>元素与媒体输出流结合使用,以指示音频流的放大量。该值是一个从-127到127的整数。如果未指定此控件,则客户端无法访问该控件。

* The <video-layout> element is used in conjunction with a video stream to specify how the video streams (of participants) are viewed by each participant. Only one layout type can be specified for each output stream. If there are fewer participants than panels in the specified layout, then blanking (black screen) MAY be mixed into the stream on the behalf of the missing input streams. If unspecified, the <video-layout> default type SHOULD be "single-view". The <video-layout> types are as follows, although any number of custom layouts may be specified in future extensions:

* <video layout>元素与视频流一起使用,以指定每个参与者如何查看(参与者的)视频流。每个输出流只能指定一种布局类型。如果指定布局中的参与者少于面板,则可以代表缺失的输入流将空白(黑屏)混合到流中。如果未指定,<video layout>默认类型应为“单视图”。<video layout>类型如下所示,尽管将来的扩展中可能会指定任意数量的自定义布局:

+ single-view: Only one stream is presented by the focus to all participants in one panel.

+ 单一视图:焦点仅向一个面板中的所有参与者呈现一个流。

+ dual-view: This dual-view option will present the video side-by-side in two panels and not alter the aspect ratio of the streams. This will require the focus to introduce blanking on parts of the overall image as viewed by the participants.

+ 双视图:此双视图选项将在两个面板中并排显示视频,并且不会改变流的纵横比。这将需要重点在参与者看到的整体图像的部分引入空白。

+ dual-view-crop: This side-by-side layout option instructs the focus to alter the aspect ratio of the streams (alter-aspect-ratio=true) so that blanking is not necessary. The focus handles the cropping of the streams.

+ 双视图裁剪:此并排布局选项指示焦点改变流的纵横比(alter aspect ratio=true),因此无需消隐。焦点处理流的裁剪。

+ dual-view-2x1: This layout option instructs the focus to place one stream above the other, in essence, with two rows and one column. In this option, the aspect ratio is not altered and blanking is introduced.

+ dual-view-2x1:此布局选项指示焦点将一个流置于另一个流之上,本质上是两行一列。在该选项中,不改变纵横比,并引入消隐。

+ dual-view-2x1-crop: This layout option also instructs the focus to place one stream above the other, in essence, with two rows and one column. In this option, the aspect ratio is altered and the video streams are cropped.

+ dual-view-2x1-crop:此布局选项还指示焦点将一个流置于另一个流之上,本质上是两行一列。在该选项中,改变纵横比并裁剪视频流。

+ quad-view: Four equal-sized panels in a 2x2 layout are presented by the focus to all participants. Typically, the aspect ratio of the streams are maintained (alter-aspect-ratio= FALSE).

+ 四视图:焦点向所有参与者展示2x2布局中四个大小相等的面板。通常,保持流的纵横比(alter aspect ratio=FALSE)。

+ multiple-3x3: Nine equal-sized panels in a 3x3 layout are presented by the focus to all participants. Typically, the aspect ratio of the streams are preserved.

+ 多个3x3:焦点向所有参与者展示九个3x3布局的同等大小的面板。通常,保留流的纵横比。

+ multiple-4x4: 16 equal-sized panels in a 4x4 layout are presented by the focus to all participants. Typically, the aspect ratio of the streams are preserved.

+ 多个4x4:focus以4x4布局向所有参与者展示16个同等大小的面板。通常,保留流的纵横比。

+ multiple-5x1: This option refers to a 5x1 layout where one panel will occupy 4/9 of the mixed video stream while the others will each occupy 1/9 of the stream. Typically, the aspect ratio of the streams is preserved.

+ multiple-5x1:此选项指5x1布局,其中一个面板将占据混合视频流的4/9,而其他面板将分别占据流的1/9。通常,保留流的纵横比。

+ automatic: This option allows the focus to add panels as streams are added.

+ 自动:此选项允许焦点在添加流时添加面板。

4.3. <host-info>
4.3. <主机信息>

The <host-info> element and its child elements are described in [RFC4575], Section 5.4.

[RFC4575]第5.4节描述了<host info>元素及其子元素。

4.4. <conference-state>
4.4. <会议状态>

The <conference-state> is introduced in [RFC4575]. The <conference-state> element contains the <allow-conference-event-subscription>, <user-count>, <active>, and <locked> child elements. The <user-count>, <active>, and <locked> child elements are defined in [RFC4575], Section 5.5.

[RFC4575]中引入了<会议状态>。<conference state>元素包含<allow conference event subscription>、<user count>、<active>和<locked>子元素。[RFC4575]第5.5节定义了<user count>、<active>和<locked>子元素。

4.4.1. <allow-conference-event-subscription>
4.4.1. <允许会议事件订阅>

The <allow-conference-event-subscription> element represents a boolean action. If set to true, the focus is instructed to allow the subscription to conference state events, such as 'SIP event package for conference state' [RFC4575]. If set to FALSE, the subscription to conference state events MUST be rejected. If this element is undefined, it has a default value of true, causing the subscription to conference state events to be accepted.

<allow conference event subscription>元素表示布尔操作。如果设置为true,则指示焦点允许订阅会议状态事件,例如“会议状态的SIP事件包”[RFC4575]。如果设置为FALSE,则必须拒绝对会议状态事件的订阅。如果此元素未定义,则其默认值为true,从而导致接受对会议状态事件的订阅。

4.5. <floor-information>
4.5. <楼层信息>

The <floor-information> element contains the <conference-ID>, <allow-floor-events>, <floor-request-handling>, and <conference-floor-policy> child elements. The absence of this element from an XML document indicates that the conference does not have a floor.

<floor information>元素包含<conference ID>、<allow floor events>、<floor request handling>和<conference floor policy>子元素。XML文档中缺少此元素表示会议没有发言权。

4.5.1. <conference-ID>
4.5.1. <conference ID>

The <conference-ID> represents a conference instance within floor control. When BFCP serves as the floor control protocol, the <conference-ID> is a 32-bit BFCP conference identifier defined in [RFC4582], Section 5.1. Note that when created within the conferencing system, there is a 1:1 mapping between this <conference-ID> and the unique conference object identifier (XCON-URI).

<conference ID>表示楼层控制中的会议实例。当BFCP用作楼层控制协议时,<conference ID>是[RFC4582]第5.1节中定义的32位BFCP会议标识符。请注意,在会议系统中创建时,此<conference ID>与唯一会议对象标识符(XCON-URI)之间存在1:1映射。

4.5.2. <allow-floor-events>
4.5.2. <允许现场活动>

The <allow-floor-events> element represents a boolean action. If set to true, the focus is instructed to accept the subscription to floor control events. If set to FALSE, the focus is instructed to reject the subscription. If this element is undefined, it has a default value of FALSE, causing the subscription to floor control events to be rejected.

<allow floor events>元素表示一个布尔操作。如果设置为true,则指示焦点接受对楼层控制事件的订阅。如果设置为FALSE,则指示焦点拒绝订阅。如果此元素未定义,则其默认值为FALSE,从而导致拒绝对楼层控制事件的订阅。

A conference participant can subscribe himself to a floor control event in two different ways: one method is using an offer/answer exchange mechanism ([RFC3264]) using SIP INVITE and BFCP parameters in the SDP [RFC4583], the other method is a general authorization mechanism described in Section 9 of [RFC4582] and in [RFC5018]. Future documentation may define additional connection mechanisms.

会议参与者可以通过两种不同的方式订阅楼层控制事件:一种方法是使用SDP[RFC4583]中使用SIP INVITE和BFCP参数的要约/应答交换机制([RFC3264]),另一种方法是[RFC4582]第9节和[RFC5018]中描述的通用授权机制。将来的文档可能会定义其他连接机制。

4.5.3. <floor-request-handling>
4.5.3. <楼层请求处理>

The <floor-request-handling> element defines the actions used by the conference focus to control floor requests. This element defines the action that the focus is to take when processing a particular request to a floor within a conference. This element defines values of the following:

<floor request handling>元素定义会议焦点用于控制发言权请求的操作。此元素定义了在处理会议内某一楼层的特定请求时重点要采取的行动。此元素定义以下各项的值:

o "block": This action instructs the focus to deny the floor request. This action is the default action taken in the absence of any other actions.

o “阻止”:此操作指示焦点拒绝发言请求。此操作是在没有任何其他操作的情况下采取的默认操作。

o "confirm": This action instructs the focus to allow the request. The focus then uses the defined floor algorithm to further allow or deny the floor. The algorithms used are outside the scope of this document.

o “确认”:此操作指示焦点允许请求。然后焦点使用定义的楼层算法进一步允许或拒绝楼层。使用的算法不在本文档的范围内。

Note that this section discusses floor control information; therefore, the value "block" in a <floor-request-handling> element is not related with the "block" value in the <join-handling> element (see Section 4.6.1).

请注意,本节讨论楼层控制信息;因此,<floor request handling>元素中的值“block”与<join handling>元素中的“block”值无关(参见第4.6.1节)。

4.5.4. <conference-floor-policy>
4.5.4. <会议厅政策>

The <conference-floor-policy> element has one or more <floor> child elements. Every <floor> child elements has an attribute 'id', which uniquely identifies a floor within a conference. In the case of BFCP [RFC4582], the 'id' attribute corresponds to the floor-id identifier defined in [RFC4582], Section 5.2.2.

<conference floor policy>元素有一个或多个子元素。每个<floor>子元素都有一个属性“id”,它唯一地标识会议中的一个楼层。在BFCP[RFC4582]的情况下,“id”属性对应于[RFC4582]第5.2.2节中定义的楼层id标识符。

   o  <media-label>: Every floor is identified for one or more mandatory
      <media-label> elements.  If the <available-media> information is
      included in the conference document, the value of this element
      MUST be equal to the "label" value of the corresponding media
      stream <entry> in the <available-media> container.  The number of
      those elements indicates how many floors the conference can have.
      A floor can be used for one or more media types;
        
   o  <media-label>: Every floor is identified for one or more mandatory
      <media-label> elements.  If the <available-media> information is
      included in the conference document, the value of this element
      MUST be equal to the "label" value of the corresponding media
      stream <entry> in the <available-media> container.  The number of
      those elements indicates how many floors the conference can have.
      A floor can be used for one or more media types;
        

o <algorithm>: A floor can be controlled using many algorithms; the mandatory <algorithm> element MUST be set to any of the "moderator-controlled", "FCFS", or "random" values indicating the algorithm. The "moderator-controlled" value indicates that the moderator of the conference controls the floor. The "FCFS" value indicates a 'first-come-first-served' policy.

o <algorithm>:可以使用多种算法控制地板;必须将强制<algorithm>元素设置为指示算法的任何“调节器控制”、“FCFS”或“随机”值。“主持人控制”值表示会议主持人控制发言权。“FCFS”值表示“先到先得”策略。

o <max-floor-users>: The <max-floor-users> child element in the <floor> element is OPTIONAL and, if present, dictates the maximum number of users who can have the floor at one time.

o <max floor users>:元素<floor>中的<max floor users>子元素是可选的,如果存在,则指定一次可以拥有发言权的最大用户数。

o <moderator-id>: The OPTIONAL <moderator-id> indicates the "User ID" of the moderator(s). It MUST be set if the element <algorithm> is set to the "moderator-controlled" value. When the floor is created within the conferencing system, the XCON-USERID MAY be used as the <moderator-id>. In the case where the BFCP is the floor control protocol, the <moderator-id> is defined in [RFC4582], Section 3. Note that [RFC4582] refers to the moderator role as a "floor chair".

o <主持人id>:可选的<主持人id>表示主持人的“用户id”。如果元素<algorithm>设置为“慢化剂控制”值,则必须设置该值。在会议系统中创建楼层时,XCON-USERID可用作<主持人id>。如果BFCP是地板控制协议,<主持人id>在[RFC4582]第3节中定义。请注意,[RFC4582]将主持人角色称为“现场主席”。

4.6. <users>
4.6. <用户>

The <users> element is described in [RFC4575] and contains the <join-handling>, <user-admission-policy>, <allowed-users-list>, and <deny-users-list> defined in this document and <user> child elements defined in [RFC4575]. When the <users> element is used in the context of the XCON Conference Information Model, the 'state' and 'version' attributes defined in [RFC4575] are not used, since they apply only to notification mechanisms. The following sections describe these elements in more detail. Other child elements and attributes can be used to extend <users> in the future.

[RFC4575]中描述了<users>元素,其中包含本文档中定义的<join handling>、<user admission policy>、<allowed users list>和<deny users list>,以及[RFC4575]中定义的<user>子元素。在XCON会议信息模型的上下文中使用<users>元素时,不使用[RFC4575]中定义的“state”和“version”属性,因为它们仅适用于通知机制。以下各节将更详细地描述这些元素。将来可以使用其他子元素和属性来扩展<users>。

4.6.1. <join-handling>
4.6.1. <join handling>

The <join-handling> element defines the actions used by the conference focus to control conference participation. This element defines the action that the focus is to take when processing a particular request to join a conference. This element defines values of:

<join handling>元素定义会议焦点用于控制会议参与的操作。此元素定义了在处理加入会议的特定请求时焦点要采取的操作。此元素定义以下各项的值:

o "block": This action instructs the focus to deny access to the conference. This action is the default action taken in the absence of any other actions.

o “阻止”:此操作指示焦点拒绝访问会议。此操作是在没有任何其他操作的情况下采取的默认操作。

o "confirm": This action instructs the focus to place the participant on a pending list (e.g., by parking the call on a music-on-hold server), awaiting moderator input for further actions.

o “确认”:此操作指示焦点将参与者放在待决列表上(例如,通过将呼叫停在音乐保留服务器上),等待主持人输入进一步操作。

o "allow": This action instructs the focus to accept the conference join request and grant access to the conference within the instructions specified in the transformations of this rule.

o “允许”:此操作指示焦点接受会议加入请求,并在本规则转换中指定的指示范围内授予对会议的访问权。

o "authenticate": This action instructs the focus that the user has to provide a combination of username/password.

o “验证”:此操作指示焦点用户必须提供用户名/密码的组合。

o "directed-operator": This action instructs the focus to direct the user to an operator.

o “定向操作员”:此操作指示焦点将用户定向到操作员。

4.6.2. <user-admission-policy>
4.6.2. <用户准入政策>

The <user-admission-policy> is an element that lets an organizer (or a participant with appropriate rights) choose a policy for the conference that controls how users are authenticated into the conference, using a mechanism of the conference's choosing. Since a variety of signaling protocols are possible, a variety of authentication mechanisms -- determined by every individual conference server -- may need to be mapped from the different protocols. The specific types of authentication mechanisms are beyond the scope of this document. The list of possible values are as follows:

<user acmission policy>是一个元素,组织者(或具有适当权限的参与者)可以使用会议选择的机制为会议选择一个策略,该策略控制用户如何通过身份验证进入会议。由于各种信令协议是可能的,因此可能需要从不同的协议映射各种身份验证机制(由每个单独的会议服务器确定)。特定类型的身份验证机制超出了本文档的范围。可能值列表如下所示:

o "closedAuthenticated": A 'closedAuthenticated' policy MUST have each conference participant in the allowed users list (listed under the <allowed-users-list> element) with each participant being sufficiently (up to local policy) authenticated. Conference join requests for users not in the allowed users list or participants not authenticated should be rejected unless a <join-handling> action of 'confirm' is selected; in which case, the user is placed on a pending list as indicated earlier. A

o “closedAuthenticated”:一个“closedAuthenticated”策略必须让允许用户列表中的每个会议参与者(列在<allowed users list>元素下),并且每个参与者都经过充分的身份验证(根据本地策略)。对于不在允许用户列表中的用户或未经身份验证的参与者的会议加入请求应被拒绝,除非选择了“确认”的<join handling>操作;在这种情况下,用户将被置于挂起列表中,如前所述。A.

'closedAuthenticated' policy MUST NOT include a <deny-users-list>. If <deny-users-list> appears in the data model, it MUST be ignored.

“closedAuthenticated”策略不得包含<deny users list>。如果数据模型中出现<deny users list>,则必须忽略它。

o "openAuthenticated": An 'openAuthenticated' policy requires each conferencing participant to be sufficiently authenticated. Typically, this implies that anyone capable of authenticating with the conferencing system may join the conference. The 'openAuthenticated' policy permits the specification of "banned" conferencing participants. Such banned users are prevented from re-joining the conference until they have been un-banned. An 'openAuthenticated' policy SHOULD have a deny users list (listed under the <deny-users-list> XML element) to support the banning of conferencing participants from a conference. An 'openAuthenticated' policy MUST NOT include an <allowed-users-list>. If <allowed-users-list> appears in the data model, it MUST be ignored.

o “openAuthenticated”:一个“openAuthenticated”策略要求每个会议参与者都经过充分的身份验证。通常,这意味着能够通过会议系统进行身份验证的任何人都可以加入会议。“openAuthenticated”策略允许指定“被禁止的”会议参与者。这些被禁止的用户将被阻止重新加入会议,直到他们被联合国禁止。“openAuthenticated”策略应具有拒绝用户列表(列在<deny users list>XML元素下),以支持禁止会议参与者参加会议。“openAuthenticated”策略不得包含<allowed users list>。如果数据模型中出现<allowed users list>,则必须忽略它。

o "anonymous": An 'anonymous' policy grants any join requests and is the least restrictive policy. An 'anonymous' policy MUST NOT include either an <allowed-users-list> or a <deny-users-list>. If any of these lists appear in the data model, they MUST be ignored.

o “匿名”:一个“匿名”策略允许任何加入请求,是限制最少的策略。“匿名”策略不得包含<allowed users list>或<deny users list>。如果这些列表中的任何一个出现在数据模型中,则必须忽略它们。

In all other cases, the appearance of an <allowed-users-list> and <deny-users-list> MUST be ignored, except as otherwise described in a future specification. Future specifications describing the use of these lists must provide clear guidance on how to process the lists when they occur concurrently, especially when both lists contain the same user. For example, such a specification could disallow both lists from appearing at the same time similar to <user-admission-policy> values defined in this document.

在所有其他情况下,必须忽略<allowed users list>和<deny users list>的外观,除非将来的规范中另有说明。描述这些列表使用的未来规范必须提供关于如何处理同时出现的列表的明确指导,特别是当两个列表包含相同用户时。例如,这样的规范可能会禁止两个列表同时出现,类似于本文档中定义的<user acmission policy>值。

4.6.3. <allowed-users-list>
4.6.3. <允许的用户列表>

The <allowed-users-list> child element contains a list of user URIs (e.g., XCON-USERID, as defined in Section 4.6.5), roles (defined in Section 4.6.5.2), or domains (e.g., *@example.com) that the focus uses to determine who can join the conference, who can be invited to join a conference, or who the focus needs to "refer to" the conference. The <allowed-users-list> element includes zero or more <target> child elements. This child element includes the mandatory 'uri' attribute and the mandatory 'method' attribute. The same 'uri' attribute with different method values can appear in the list more than once.

<allowed users list>子元素包含用户URI(例如,第4.6.5节中定义的XCON-USERID)、角色(第4.6.5.2节中定义)或域(例如*@example.com)的列表,focus使用这些用户URI来确定谁可以加入会议、谁可以被邀请加入会议或谁需要关注“参考”会议。<allowed users list>元素包含零个或多个<target>子元素。此子元素包括必需的“uri”属性和必需的“method”属性。具有不同方法值的同一“uri”属性可以多次出现在列表中。

The 'method' attribute is a list with the following values:

“方法”属性是具有以下值的列表:

o "dial-in": The value "dial-in" is used by the focus to determine who can join the conference.

o “拨入”:焦点使用“拨入”值来确定谁可以加入会议。

o "dial-out": The value "dial-out" contains a list of resources with which the focus will initiate a session.

o “拨出”:值“拨出”包含焦点将启动会话的资源列表。

o "refer": The value "refer" is used by the focus to determine the resources that the focus needs to "refer to" the conference. In SIP, this is achieved by the focus sending a REFER request to those potential participants. In a different paradigm, this could also mean that the focus sends an SMS or an email to the referred user. This list can be updated during the conference lifetime so it can be used for mid-conference refers as well.

o “参考”:焦点使用“参考”值来确定焦点需要“参考”会议的资源。在SIP中,这是通过焦点向这些潜在参与者发送REFER请求来实现的。在另一个范例中,这也可能意味着焦点向被推荐的用户发送短信或电子邮件。此列表可以在会议生命周期内更新,因此也可以用于会议中期引用。

The "refer" value differs from "dial-out" in that the resources on the "refer" value are expected to initiate the session establishment toward the focus themselves. It is also envisioned that different users will have different access rights to those lists and therefore a separation between the two is needed.

“refere”值与“dial out”的不同之处在于,“refere”值上的资源预期会向焦点本身发起会话建立。还设想不同的用户对这些列表具有不同的访问权限,因此需要将两者分开。

The <allowed-users-list> element has a <persistent-list> child element as well. Some chat room systems allow -- and some require -- registration of detailed information about a user before they are allowed to join a chat room. The <persistent-list> child element stores persistent information about users who are not actively part of an ongoing chat room session. The <persistent-list> element stores the following information:

<allowed users list>元素还有一个子元素<persistent list>。一些聊天室系统允许——也有一些要求——在允许用户加入聊天室之前注册用户的详细信息。<persistent list>子元素存储关于未积极参与正在进行的聊天室会话的用户的持久信息。<persistent list>元素存储以下信息:

o user: The <user> element stores the name, nickname, conference user identifier (XCON-USERID), and email address of a user. It has three attributes: 'name', 'nickname', and 'id' and an <email> element. Future extensions to this schema may define new elements for the <user> element.

o 用户:<user>元素存储用户的名称、昵称、会议用户标识符(XCON-USERID)和电子邮件地址。它有三个属性:“name”、“昵称”和“id”以及一个<email>元素。此模式的未来扩展可能会为<user>元素定义新元素。

Future extensions to this schema may define new elements for the <target> element.

此模式的未来扩展可能会为<target>元素定义新元素。

4.6.4. <deny-users-list>
4.6.4. <拒绝用户列表>

The <deny-users-list> child element contains a list of user URIs (e.g., SIP URI, XCON-USERID defined in Section 4.6.5), roles (defined in Section 4.6.5.2), or domains (e.g.: *@example.com) that the focus uses to determine who has been 'banned' from the conference. Such banned users are prevented from re-joining the chat room until the ban has been lifted.

<deny users list>子元素包含用户URI(例如,SIP URI、第4.6.5节中定义的XCON-USERID)、角色(第4.6.5.2节中定义)或域(例如:*@example.com)的列表,focus使用这些用户URI来确定谁被“禁止”参加会议。在禁令解除之前,这些被禁止的用户将被禁止重新加入聊天室。

4.6.5. <user> and Its <user> Sub-Elements
4.6.5. <user>及其<user>子元素

The element <user> is described in [RFC4575] and describes a single participant in the conference. The <user> element has an attribute 'entity'. However, when the <user> element is used in the context of the XCON Conference Information Model, the 'state' and 'version' attributes defined in [RFC4575] are not used, since they only apply to notification mechanisms.

[RFC4575]中描述了元素<user>,并描述了会议中的单个参与者。<user>元素有一个属性“entity”。但是,当在XCON会议信息模型的上下文中使用<user>元素时,不会使用[RFC4575]中定义的“状态”和“版本”属性,因为它们仅适用于通知机制。

The attribute 'entity' contains a unique conference user identifier (XCON-USERID) within the scope of the conference. The URI format of this identifier is as follows (using ABNF [RFC5234]):

属性“实体”包含会议范围内的唯一会议用户标识符(XCON-USERID)。此标识符的URI格式如下(使用ABNF[RFC5234]):

XCON-USERID = "xcon-userid" ":" conf-user-id

XCON-USERID=“XCON USERID”“:”配置用户id

      conf-user-id = 1*unreserved
        
      conf-user-id = 1*unreserved
        

Note: unreserved is defined in RFC 3986.

注:未保留在RFC 3986中定义。

In order to facilitate the comparison of the XCON-USERID identifiers, all the components of the identifiers MUST be converted to lowercase.

为了便于比较XCON-USERID标识符,必须将标识符的所有组件转换为小写。

After normalizing the URI strings, the URIs comparison MUST be applied codepoint-by-codepoint after conversion to a common character encoding, as prescribed by [RFC3986], Section 6.2.1.

规范化URI字符串后,按照[RFC3986]第6.2.1节的规定,在转换为公共字符编码后,必须逐码点应用URI比较。

Other user identifiers can be associated with this conference user identifier and enable the conferencing system to correlate and map these multiple authenticated user identities to a single global user identifier. Figure 2 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.

其他用户标识符可与该会议用户标识符相关联,并使会议系统能够将这些多个认证用户标识关联并映射到单个全局用户标识符。图2展示了一个使用会议用户标识符与为BFCP、SIP和H323用户标识定义的用户标识相关联的示例。应该注意的是,会议系统可以根据需要自由地构建这种关系,并且这些信息只是作为一个指南。

                         +----------------+
                         |   Conference   |
                         |      User      |
                         |   Identifier   |
                         +----------------+
                         |XCON-USERID:John|
                         +-------+--------+
                                 |
                                 |
                                 |
          +----------------------+-------------------------+
          |                      |                         |
  +-------+--------+ +-----------+-----------+ +-----------+-----------+
  |  BFCP User ID  | |      SIP User URI     | |     H323 User URI     |
  +----------------+ +-----------------------+ +-----------------------+
  |      543       | |sip:851221@example.com | |h323:taeduk@example.com|
  +----------------+ +-----------------------+ +-----------------------+
        
                         +----------------+
                         |   Conference   |
                         |      User      |
                         |   Identifier   |
                         +----------------+
                         |XCON-USERID:John|
                         +-------+--------+
                                 |
                                 |
                                 |
          +----------------------+-------------------------+
          |                      |                         |
  +-------+--------+ +-----------+-----------+ +-----------+-----------+
  |  BFCP User ID  | |      SIP User URI     | |     H323 User URI     |
  +----------------+ +-----------------------+ +-----------------------+
  |      543       | |sip:851221@example.com | |h323:taeduk@example.com|
  +----------------+ +-----------------------+ +-----------------------+
        

Figure 2: Conference User Mapping

图2:会议用户映射

The element <user> element contains the <display-text>, <associated-aors>, <provide-anonymity>, <roles>, <languages>, <cascaded-focus>, <allow-refer-users-dynamically>, <allow-invite-users-dynamically>, <allow-remove-users-dynamically>, and <endpoint>. The following sections describe these elements in more detail. The <display-text>, <associated-aors>, <languages>, and <cascaded-focus> are defined in [RFC4575], Section 5.6.

元素<user>包含<display text>,<associated aor>,<provide anonymety>,<roles>,<languages>,<cascaded focus>,<allow refere users dynamicly>,<allow invite users dynamicly>,<allow remove users dynamicly>,以及<endpoint>。以下各节将更详细地描述这些元素。[RFC4575]第5.6节定义了<display text>、<associated AOR>、<languages>和<cascaded focus>。

4.6.5.1. <provide-anonymity>
4.6.5.1. <提供匿名性>

The <provide-anonymity> element specifies what level of anonymity the server should provide to the user. In this case, the focus provides the rest of the participants with an anonymous identity for that user, for example, anonymousX, or it does not provide any information for that user such that other users cannot see he is a participant in the conference. This element only affects the way the user information is provided to the other participants. The real user information is stored in the data model but SHOULD NOT be provided to the other participants of the conference. This can be achieved by using the <provide-anonymity> element. This element has three values: "private", "semi-private", and "hidden". The "private" value specifies that this user is completely anonymous in the conference. The "semi-private" value specifies that this user is anonymous to all users who have not been granted permission to see him. The "hidden" value specifies that other users cannot see this participant in the conference.

元素指定服务器应该向用户提供的匿名级别。在这种情况下,焦点为其他参与者提供该用户的匿名身份,例如,anonymousX,或者它不为该用户提供任何信息,使得其他用户看不到他是会议的参与者。此元素仅影响向其他参与者提供用户信息的方式。真实用户信息存储在数据模型中,但不应提供给会议的其他参与者。这可以通过使用<提供匿名>元素来实现。该元素有三个值:“私有”、“半私有”和“隐藏”。“private”值指定此用户在会议中完全匿名。“半私有”值指定此用户对所有未被授予查看权限的用户是匿名的。“hidden”值指定其他用户无法在会议中看到此参与者。

4.6.5.2. <roles>
4.6.5.2. <角色>

A <role> provides the context for the set of conference operations that a participant can perform. This element can contain one or more of the following values: "administrator", "moderator", "user", "participant", "observer", and "none". A role of "none" indicates that any role is assigned. The <roles> semantic definition is out of the scope of this document and is subject to future policy documents. This element can be extended with new roles in future documents.

<role>为参与者可以执行的一组会议操作提供上下文。此元素可以包含以下一个或多个值:“管理员”、“版主”、“用户”、“参与者”、“观察者”和“无”。角色“无”表示已分配任何角色。<roles>语义定义不在本文档范围内,受未来政策文档的约束。可以在将来的文档中使用新角色扩展此元素。

4.6.5.3. <allow-refer-users-dynamically>
4.6.5.3. <允许动态引用用户>

The <allow-refer-users-dynamically> element represents a boolean value. If set to true, a participant is allowed to instruct the focus to refer a user to the conference without modifying the <allowed-users-list> (in SIP terms, a participant is allowed to send a REFER request [RFC3515] to the focus, which results in the focus sending a REFER request to the user the referrer wishes to join the conference). If set to FALSE, the REFER request is rejected. If this element is undefined, it has a value of FALSE, causing the REFER request to be rejected.

<allow refere users dynamicy>元素表示一个布尔值。如果设置为true,则允许参与者指示焦点将用户转介至会议,而无需修改<allowed users list>(在SIP术语中,允许参与者向焦点发送转介请求[RFC3515],这导致焦点向转介者希望加入会议的用户发送转介请求)。如果设置为FALSE,则REFER请求将被拒绝。如果此元素未定义,则其值为FALSE,从而导致REFER请求被拒绝。

4.6.5.4. <allow-invite-users-dynamically>
4.6.5.4. <允许动态邀请用户>

The <allow-invite-users-dynamically> element represents a boolean action. If set to true, a participant is allowed to instruct the focus to invite a user to the conference without modifying the <allowed-users-list> list (in SIP terms, a participant is allowed to send a REFER request [RFC3515] to the focus, which results in the focus sending an INVITE request to the user the referrer wishes to join the conference). If set to FALSE, the REFER request is rejected. If this element is undefined, it has a value of FALSE, causing the REFER request to be rejected.

<allow invite users dynamicy>元素表示一个布尔操作。如果设置为true,则允许参与者指示焦点邀请用户参加会议,而无需修改<allowed users list>列表(在SIP术语中,允许参与者向焦点发送参考请求[RFC3515],这导致焦点向推荐人希望加入会议的用户发送邀请请求)。如果设置为FALSE,则REFER请求将被拒绝。如果此元素未定义,则其值为FALSE,从而导致REFER请求被拒绝。

4.6.5.5. <allow-remove-users-dynamically>
4.6.5.5. <允许动态删除用户>

The <allow-remove-users-dynamically> element represents a boolean action. If set to true, a participant is allowed to instruct the focus to remove a user from the conference without modifying the ruleset (in SIP terms, a participant is allowed to send a REFER request [RFC3515] to the focus, which results in the focus sending a BYE request to the user the referrer wishes to leave the conference). If set to FALSE, the REFER request is rejected. If this element is undefined, it has a value of FALSE, causing the REFER request to be rejected.

<allow remove users dynamicy>元素表示一个布尔操作。如果设置为true,则允许参与者指示focus将用户从会议中删除,而不修改规则集(在SIP术语中,允许参与者向focus发送Referer请求[RFC3515],这导致focus向Referer希望离开会议的用户发送BYE请求)。如果设置为FALSE,则REFER请求将被拒绝。如果此元素未定义,则其值为FALSE,从而导致REFER请求被拒绝。

4.6.5.6. <endpoint>
4.6.5.6. <endpoint>

The <endpoint> child element is identical to the element with the same name in [RFC4575] except that the 'state' attribute is not included. When the <endpoint> element is used in the context of the XCON Conference Information Model, the 'state' and 'version' attributes defined in [RFC4575] are not used, since they apply only to notification mechanisms. The <endpoint> element can provide the desired level of detail about the user's devices and their signaling sessions taking part in the conference.

<endpoint>子元素与[RFC4575]中具有相同名称的元素相同,只是不包括“state”属性。在XCON会议信息模型的上下文中使用<endpoint>元素时,不使用[RFC4575]中定义的“状态”和“版本”属性,因为它们仅适用于通知机制。<endpoint>元素可以提供关于用户设备及其参与会议的信令会话的所需详细程度。

The <endpoint> element has the following child elements: <display-text>, <referred>, <status>, <joining-method>, <joining-info>, <disconnection-method>, <disconnection-info>, <media>, and <call-info>. All the <endpoint> child elements are defined in [RFC4575] with the exception of the <to-mixer> element and the <from-mixer> element.

<endpoint>元素具有以下子元素:<display text>、<refered>、<status>、<join method>、<join info>、<disconnection method>、<disconnection info>、<media>和<call info>。[RFC4575]中定义了所有<endpoint>子元素,但<to mixer>元素和<from mixer>元素除外。

The <endpoint>/<media> element has two other child elements defined in this document: the <to-mixer> and the <from-mixer>:

<endpoint>/<media>元素在本文档中定义了另外两个子元素:<to mixer>和<from mixer>:

o <from-mixer>, <to-mixer>: These are controls that apply to a user's media stream being sent from the mixer to the participant's endpoint or to the mixer from the participant's endpoint. The <to-mixer> element details properties associated with the incoming streams to the mixer (streams sent to the mixer from the participant). The <from-mixer> element details properties associated with the outgoing streams from the mixer (sent from the mixer to the participant). Both of these elements have the attribute 'name'. The 'name' attribute has the values "VideoIn", "VideoOut", "AudioOut", and "AudioIn". The "VideoOut" and "AudioOut" media streams detail properties associated with the outgoing video and audio from the mixer. The "VideoIn" and "AudioIn" media stream details properties associated with the incoming video and audio to the mixer. Both of these elements can have the <floor> child element defined:

o <from mixer>,<to mixer>:这些控件应用于从混合器发送到参与者端点或从参与者端点发送到混合器的用户媒体流。<to mixer>元素详细说明了与到混合器的传入流(从参与者发送到混合器的流)相关联的属性。<from mixer>元素详细说明了与来自混合器(从混合器发送到参与者)的传出流相关联的属性。这两个元素都具有“name”属性。“name”属性的值为“VideoIn”、“VideoOut”、“AudioOut”和“AudioIn”。“VideoOut”和“AudioOut”媒体流详细说明了与来自混音器的传出视频和音频相关的属性。“VideoIn”和“AudioIn”媒体流详细说明了与混音器的传入视频和音频相关的属性。这两个元素都可以定义<floor>子元素:

* The <floor> element refers to the floor assigned to a certain participant in the conference. If a participant, for instance, needs to talk in the conference, it first needs to get the floor from the chair of the conference. The <floor> element has an attribute 'id', which uniquely identifies a floor within a conference. The 'id' attribute corresponds to the floor-id identifier defined in [RFC4582], Section 5.2.2. The <floor> element has a boolean value. A value of FALSE indicates that this user does not hold the floor in this moment. If this control is not specified, this user SHOULD NOT specify the floor option.

* <floor>元素是指分配给会议中某个参与者的发言权。例如,如果一位与会者需要在会议上发言,他首先需要得到会议主席的发言权。<floor>元素有一个属性“id”,它唯一地标识会议中的一个楼层。“id”属性对应于[RFC4582]第5.2.2节中定义的楼层id标识符。<floor>元素有一个布尔值。如果值为FALSE,则表示该用户此时没有发言权。如果未指定此控件,则此用户不应指定楼层选项。

The <to-mixer> and <from-mixer> elements can have the <controls> child element:

<to mixer>和<from mixer>元素可以具有<controls>子元素:

* Controls that apply to a specific user would appear under the <controls> element.

* 应用于特定用户的控件将显示在<Controls>元素下。

o More values can be defined in the future.

o 将来可以定义更多的值。

4.7. <sidebars-by-ref>
4.7. <参考侧边栏>

The <sidebars-by-ref> element contains a set of <entry> child elements. This element is described in [RFC4575], Section 5.9.1. When the <sidebars-by-ref> element is used in the context of the XCON conference information model, the 'state' and 'version' attributes defined in [RFC4575] are not used, since they apply only to notification mechanisms.

<sidebarsbyref>元素包含一组<entry>子元素。[RFC4575]第5.9.1节描述了该元素。在XCON会议信息模型的上下文中使用<sidebars by ref>元素时,不使用[RFC4575]中定义的“状态”和“版本”属性,因为它们仅适用于通知机制。

4.8. <sidebars-by-val>
4.8. <val的侧边栏>

The <sidebars-by-val> element contains a set of <entry> child elements each containing information about a single sidebar. This element is described in [RFC4575], Section 5.9.2. When the <sidebars-by-val> element is used in the context of the XCON conference information model, the 'state' and 'version' attributes defined in [RFC4575] are not used, since they apply only to notification mechanisms.

<sidebarsby val>元素包含一组<entry>子元素,每个子元素都包含关于单个侧栏的信息。[RFC4575]第5.9.2节描述了该元素。在XCON会议信息模型的上下文中使用<sidebars by val>元素时,不使用[RFC4575]中定义的“状态”和“版本”属性,因为它们仅适用于通知机制。

5. RELAX NG Schema
5. RELAXNG模式

In accordance with the centralized conferencing framework document [RFC5239], the conference object is a logical representation of a conference instance. The conference information schema contains core information that is utilized in any conference. It also contains the variable information part of the conference object.

根据集中式会议框架文档[RFC5239],会议对象是会议实例的逻辑表示。会议信息模式包含在任何会议中使用的核心信息。它还包含会议对象的可变信息部分。

The normative schema is backwards compatible with [RFC5239], in other words, valid [RFC5239] instance documents are also valid according to this RELAX NG schema [RELAX]. In addition to approximately similar RELAX NG [RELAX] definitions of [RFC5239], this schema contains extension elements in the "urn:ietf:params:xml:ns:xcon-conference-info" namespace.

标准模式与[RFC5239]向后兼容,换句话说,根据此RELAX NG模式[RELAX],有效的[RFC5239]实例文档也有效。除了[RFC5239]的类似RELAX NG[RELAX]定义外,此模式还包含“urn:ietf:params:xml:ns:xcon会议信息”命名空间中的扩展元素。

default namespace = "urn:ietf:params:xml:ns:conference-info"
namespace xcon = "urn:ietf:params:xml:ns:xcon-conference-info"
        
default namespace = "urn:ietf:params:xml:ns:conference-info"
namespace xcon = "urn:ietf:params:xml:ns:xcon-conference-info"
        
start = element conference-info { conference-type }
# CONFERENCE TYPE
conference-type =
  attribute entity { text }
  & anyAttribute
  & conference-description-type?
  & element host-info { host-type }?
  & element conference-state { conference-state-type }?
  & element users { users-type }?
  & element sidebars-by-ref { uris-type }?
  & element sidebars-by-val { sidebars-by-val-type }?
  & element xcon:floor-information { floor-information-type }?
  & anyElement*
# CONFERENCE DESCRIPTION TYPE
conference-description-type =
  element conference-description {
    attribute xml:lang { xsd:language }?
    & anyAttribute
    & element display-text { text }?
    & element subject { text }?
    & element free-text { text }?
    & element keywords {
        list { xsd:string* }
      }?
    & element conf-uris { uris-type }?
    & element service-uris { uris-type }?
    & element maximum-user-count { xsd:int }?
    & element available-media { conference-media-type }?
    & element xcon:language { xsd:language }?
    & element xcon:allow-sidebars { xsd:boolean }?
    & element xcon:cloning-parent { xsd:anyURI }?
    & element xcon:sidebar-parent { xsd:anyURI }?
    & element xcon:conference-time { conferencetime-type }?
    & anyElement*
  }
# HOST TYPE
host-type =
  element display-text { text }?
  & element web-page { xsd:anyURI }?
  & element uris { uris-type }?
  & anyElement*
  & anyAttribute
# CONFERENCE STATE TYPE
conference-state-type =
  anyAttribute
        
start = element conference-info { conference-type }
# CONFERENCE TYPE
conference-type =
  attribute entity { text }
  & anyAttribute
  & conference-description-type?
  & element host-info { host-type }?
  & element conference-state { conference-state-type }?
  & element users { users-type }?
  & element sidebars-by-ref { uris-type }?
  & element sidebars-by-val { sidebars-by-val-type }?
  & element xcon:floor-information { floor-information-type }?
  & anyElement*
# CONFERENCE DESCRIPTION TYPE
conference-description-type =
  element conference-description {
    attribute xml:lang { xsd:language }?
    & anyAttribute
    & element display-text { text }?
    & element subject { text }?
    & element free-text { text }?
    & element keywords {
        list { xsd:string* }
      }?
    & element conf-uris { uris-type }?
    & element service-uris { uris-type }?
    & element maximum-user-count { xsd:int }?
    & element available-media { conference-media-type }?
    & element xcon:language { xsd:language }?
    & element xcon:allow-sidebars { xsd:boolean }?
    & element xcon:cloning-parent { xsd:anyURI }?
    & element xcon:sidebar-parent { xsd:anyURI }?
    & element xcon:conference-time { conferencetime-type }?
    & anyElement*
  }
# HOST TYPE
host-type =
  element display-text { text }?
  & element web-page { xsd:anyURI }?
  & element uris { uris-type }?
  & anyElement*
  & anyAttribute
# CONFERENCE STATE TYPE
conference-state-type =
  anyAttribute
        
  & element user-count { xsd:unsignedInt }?
  & element active { xsd:boolean }?
  & element locked { xsd:boolean }?
  & element xcon:allow-conference-event-subscription { xsd:boolean }?
  & anyElement*
# CONFERENCE MEDIA TYPE
conference-media-type =
  anyAttribute
  & element entry { conference-medium-type }*
  & anyElement*
# CONFERENCE MEDIUM TYPE
conference-medium-type =
  attribute label { text }
  & anyAttribute
  & element display-text { text }?
  & element type { text }?
  & element status { media-status-type }?
  & element xcon:mixing-mode { mixing-mode-type }?
  & element xcon:codecs { codecs-type }?
  & element xcon:controls { control-type }?
  & anyElement*
# URIs TYPE
uris-type =
  anyAttribute
  & element entry { uri-type }*
  & anyElement*
# URI TYPE
uri-type =
  element uri { xsd:anyURI }
  & element display-text { text }?
  & element purpose { text }?
  & element modified { execution-type }?
  & element xcon:conference-password { text }*
  & anyElement*
  & anyAttribute
# USERS TYPE
users-type =
  anyAttribute
  & element user { user-type }*
  & element xcon:join-handling { join-handling-type }?
  & element xcon:user-admission-policy { user-admission-policy-type }?
  & element xcon:allowed-users-list { allowed-users-list-type }?
  & element xcon:deny-users-list { deny-user-list-type }?
  & anyElement*
# USER TYPE
user-type =
  attribute entity { xsd:anyURI }
  & anyAttribute
        
  & element user-count { xsd:unsignedInt }?
  & element active { xsd:boolean }?
  & element locked { xsd:boolean }?
  & element xcon:allow-conference-event-subscription { xsd:boolean }?
  & anyElement*
# CONFERENCE MEDIA TYPE
conference-media-type =
  anyAttribute
  & element entry { conference-medium-type }*
  & anyElement*
# CONFERENCE MEDIUM TYPE
conference-medium-type =
  attribute label { text }
  & anyAttribute
  & element display-text { text }?
  & element type { text }?
  & element status { media-status-type }?
  & element xcon:mixing-mode { mixing-mode-type }?
  & element xcon:codecs { codecs-type }?
  & element xcon:controls { control-type }?
  & anyElement*
# URIs TYPE
uris-type =
  anyAttribute
  & element entry { uri-type }*
  & anyElement*
# URI TYPE
uri-type =
  element uri { xsd:anyURI }
  & element display-text { text }?
  & element purpose { text }?
  & element modified { execution-type }?
  & element xcon:conference-password { text }*
  & anyElement*
  & anyAttribute
# USERS TYPE
users-type =
  anyAttribute
  & element user { user-type }*
  & element xcon:join-handling { join-handling-type }?
  & element xcon:user-admission-policy { user-admission-policy-type }?
  & element xcon:allowed-users-list { allowed-users-list-type }?
  & element xcon:deny-users-list { deny-user-list-type }?
  & anyElement*
# USER TYPE
user-type =
  attribute entity { xsd:anyURI }
  & anyAttribute
        
  & element display-text { text }?
  & element associated-aors { uris-type }?
  & element roles {
      element entry { single-role-type }+
    }?
  & element languages {
      list { xsd:language }
    }?
  & element cascaded-focus { xsd:anyURI }?
  & element endpoint { endpoint-type }*
  & element xcon:provide-anonymity { provide-anonymity-type }?
  & element xcon:allow-refer-users-dynamically { xsd:boolean }?
  & element xcon:allow-invite-users-dynamically { xsd:boolean }?
  & element xcon:allow-remove-users-dynamically { xsd:boolean }?
  & anyElement*
# ENDPOINT TYPE
endpoint-type =
  attribute entity { text }
  & anyAttribute
  & element display-text { text }?
  & element referred { execution-type }?
  & element status { endpoint-status-type }?
  & element joining-method { joining-type }?
  & element joining-info { execution-type }?
  & element disconnection-method { disconnection-type }?
  & element disconnection-info { execution-type }?
  & element media { media-type }*
  & element call-info { call-type }?
  & anyElement*
# ENDPOINT STATUS TYPE
endpoint-status-type =
  "pending"
  | "dialing-out"
  | "dialing-in"
  | "alerting"
  | "on-hold"
  | "connected"
  | "muted-via-focus"
  | "disconnecting"
  | "disconnected"
  | free-text-extension
# JOINING TYPE
joining-type =
  "dialed-in" | "dialed-out" | "focus-owner" | free-text-extension
# DISCONNECTION TYPE
disconnection-type =
  "departed" | "booted" | "failed" | "busy" | free-text-extension
# EXECUTION TYPE
        
  & element display-text { text }?
  & element associated-aors { uris-type }?
  & element roles {
      element entry { single-role-type }+
    }?
  & element languages {
      list { xsd:language }
    }?
  & element cascaded-focus { xsd:anyURI }?
  & element endpoint { endpoint-type }*
  & element xcon:provide-anonymity { provide-anonymity-type }?
  & element xcon:allow-refer-users-dynamically { xsd:boolean }?
  & element xcon:allow-invite-users-dynamically { xsd:boolean }?
  & element xcon:allow-remove-users-dynamically { xsd:boolean }?
  & anyElement*
# ENDPOINT TYPE
endpoint-type =
  attribute entity { text }
  & anyAttribute
  & element display-text { text }?
  & element referred { execution-type }?
  & element status { endpoint-status-type }?
  & element joining-method { joining-type }?
  & element joining-info { execution-type }?
  & element disconnection-method { disconnection-type }?
  & element disconnection-info { execution-type }?
  & element media { media-type }*
  & element call-info { call-type }?
  & anyElement*
# ENDPOINT STATUS TYPE
endpoint-status-type =
  "pending"
  | "dialing-out"
  | "dialing-in"
  | "alerting"
  | "on-hold"
  | "connected"
  | "muted-via-focus"
  | "disconnecting"
  | "disconnected"
  | free-text-extension
# JOINING TYPE
joining-type =
  "dialed-in" | "dialed-out" | "focus-owner" | free-text-extension
# DISCONNECTION TYPE
disconnection-type =
  "departed" | "booted" | "failed" | "busy" | free-text-extension
# EXECUTION TYPE
        
execution-type =
  element when { xsd:dateTime }?
  & element reason { text }?
  & element by { xsd:anyURI }?
  & anyAttribute
# CALL TYPE
call-type =
  element sip { sip-dialog-id-type }
  & anyElement*
  & anyAttribute
# SIP DIALOG ID TYPE
sip-dialog-id-type =
  element display-text { text }?
  & element call-id { text }
  & element from-tag { text }
  & element to-tag { text }
  & anyElement*
  & anyAttribute
# MEDIA TYPE
media-type =
  attribute id { xsd:int }
  & anyAttribute
  & element display-text { text }?
  & element type { text }?
  & element label { text }?
  & element src-id { text }?
  & element status { media-status-type }?
  & element xcon:to-mixer { mixer-type }?
  & element xcon:from-mixer { mixer-type }?
  & anyElement*
# MEDIA STATUS TYPE
media-status-type =
  "recvonly"
  | "sendonly"
  | "sendrecv"
  | "inactive"
  | free-text-extension
# SIDEBARS-BY-VAL TYPE
sidebars-by-val-type =
  anyAttribute
  & element entry { conference-type }*
  & anyElement*
# CONFERENCE TIME
conferencetime-type =
  anyAttribute
  & element xcon:entry {
      element xcon:base { text },
      element xcon:mixing-start-offset {
        
execution-type =
  element when { xsd:dateTime }?
  & element reason { text }?
  & element by { xsd:anyURI }?
  & anyAttribute
# CALL TYPE
call-type =
  element sip { sip-dialog-id-type }
  & anyElement*
  & anyAttribute
# SIP DIALOG ID TYPE
sip-dialog-id-type =
  element display-text { text }?
  & element call-id { text }
  & element from-tag { text }
  & element to-tag { text }
  & anyElement*
  & anyAttribute
# MEDIA TYPE
media-type =
  attribute id { xsd:int }
  & anyAttribute
  & element display-text { text }?
  & element type { text }?
  & element label { text }?
  & element src-id { text }?
  & element status { media-status-type }?
  & element xcon:to-mixer { mixer-type }?
  & element xcon:from-mixer { mixer-type }?
  & anyElement*
# MEDIA STATUS TYPE
media-status-type =
  "recvonly"
  | "sendonly"
  | "sendrecv"
  | "inactive"
  | free-text-extension
# SIDEBARS-BY-VAL TYPE
sidebars-by-val-type =
  anyAttribute
  & element entry { conference-type }*
  & anyElement*
# CONFERENCE TIME
conferencetime-type =
  anyAttribute
  & element xcon:entry {
      element xcon:base { text },
      element xcon:mixing-start-offset {
        
        time-type,
        attribute required-participant { single-role-type },
        anyAttribute
      }?,
      element xcon:mixing-end-offset {
        time-type,
        attribute required-participant { single-role-type },
        anyAttribute
      }?,
      element xcon:can-join-after-offset { time-type }?,
      element xcon:must-join-before-offset { time-type }?,
      element xcon:request-user { time-type }?,
      element xcon:notify-end-of-conference { xsd:nonNegativeInteger }?,
      element xcon:allowed-extend-mixing-end-offset { xsd:boolean }?,
      anyElement*
    }*
# TIME TYPE
time-type = xsd:dateTime { pattern = ".+T.+Z.*" }
# SINGLE ROLE TYPE
single-role-type =
  xsd:string "none"
  | xsd:string "administrator"
  | xsd:string "moderator"
  | xsd:string "user"
  | xsd:string "observer"
  | xsd:string "participant"
  | free-text-extension
# MIXING MODE TYPE
mixing-mode-type =
  xsd:string "moderator-controlled"
  | xsd:string "FCFS"
  | xsd:string "automatic"
  | free-text-extension
# CODECS TYPE
codecs-type =
  attribute decision { decision-type }
  & anyAttribute
  & element xcon:codec { codec-type }*
  & anyElement*
# CODEC TYPE
codec-type =
  attribute name { text }
  & attribute policy { policy-type }
  & anyAttribute
  & element xcon:subtype { text }?
  & anyElement*
# DECISION TYPE
decision-type =
        
        time-type,
        attribute required-participant { single-role-type },
        anyAttribute
      }?,
      element xcon:mixing-end-offset {
        time-type,
        attribute required-participant { single-role-type },
        anyAttribute
      }?,
      element xcon:can-join-after-offset { time-type }?,
      element xcon:must-join-before-offset { time-type }?,
      element xcon:request-user { time-type }?,
      element xcon:notify-end-of-conference { xsd:nonNegativeInteger }?,
      element xcon:allowed-extend-mixing-end-offset { xsd:boolean }?,
      anyElement*
    }*
# TIME TYPE
time-type = xsd:dateTime { pattern = ".+T.+Z.*" }
# SINGLE ROLE TYPE
single-role-type =
  xsd:string "none"
  | xsd:string "administrator"
  | xsd:string "moderator"
  | xsd:string "user"
  | xsd:string "observer"
  | xsd:string "participant"
  | free-text-extension
# MIXING MODE TYPE
mixing-mode-type =
  xsd:string "moderator-controlled"
  | xsd:string "FCFS"
  | xsd:string "automatic"
  | free-text-extension
# CODECS TYPE
codecs-type =
  attribute decision { decision-type }
  & anyAttribute
  & element xcon:codec { codec-type }*
  & anyElement*
# CODEC TYPE
codec-type =
  attribute name { text }
  & attribute policy { policy-type }
  & anyAttribute
  & element xcon:subtype { text }?
  & anyElement*
# DECISION TYPE
decision-type =
        
  xsd:string "automatic"
  | xsd:string "moderator-controlled"
  | free-text-extension
# POLICY TYPE
policy-type =
  xsd:string "allowed" | xsd:string "disallowed" | free-text-extension
# CONTROL TYPE
control-type =
  anyAttribute
  & element xcon:mute { xsd:boolean }?
  & element xcon:pause-video { xsd:boolean }?
  & element xcon:gain { gain-type }?
  & element xcon:video-layout { video-layout-type }?
  & anyElement*
# GAIN TYPE
gain-type = xsd:int { minInclusive = "-127" maxInclusive = "127" }
# VIDEO LAYOUT TYPE
video-layout-type =
  xsd:string "single-view"
  | xsd:string "dual-view"
  | xsd:string "dual-view-crop"
  | xsd:string "dual-view-2x1"
  | xsd:string "dual-view-2x1-crop"
  | xsd:string "quad-view"
  | xsd:string "multiple-3x3"
  | xsd:string "multiple-4x4"
  | xsd:string "multiple-5x1"
  | xsd:string "automatic"
  | free-text-extension
# FLOOR INFORMATION TYPE
floor-information-type =
  anyAttribute
  & element xcon:conference-ID { xsd:unsignedLong }?
  & element xcon:allow-floor-events { xsd:boolean }?
  & element xcon:floor-request-handling { floor-request-type }?
  & element xcon:conference-floor-policy { conference-floor-policy }?
  & anyElement*
# FLOOR REQUEST TYPE
floor-request-type =
  xsd:string "block" | xsd:string "confirm" | free-text-extension
# CONFERENCE FLOOR POLICY
conference-floor-policy =
  anyAttribute
  & element xcon:floor {
      attribute id { text }
      & anyAttribute
      & element xcon:media-label { xsd:nonNegativeInteger }+
      & element xcon:algorithm { algorithm-type }?
        
  xsd:string "automatic"
  | xsd:string "moderator-controlled"
  | free-text-extension
# POLICY TYPE
policy-type =
  xsd:string "allowed" | xsd:string "disallowed" | free-text-extension
# CONTROL TYPE
control-type =
  anyAttribute
  & element xcon:mute { xsd:boolean }?
  & element xcon:pause-video { xsd:boolean }?
  & element xcon:gain { gain-type }?
  & element xcon:video-layout { video-layout-type }?
  & anyElement*
# GAIN TYPE
gain-type = xsd:int { minInclusive = "-127" maxInclusive = "127" }
# VIDEO LAYOUT TYPE
video-layout-type =
  xsd:string "single-view"
  | xsd:string "dual-view"
  | xsd:string "dual-view-crop"
  | xsd:string "dual-view-2x1"
  | xsd:string "dual-view-2x1-crop"
  | xsd:string "quad-view"
  | xsd:string "multiple-3x3"
  | xsd:string "multiple-4x4"
  | xsd:string "multiple-5x1"
  | xsd:string "automatic"
  | free-text-extension
# FLOOR INFORMATION TYPE
floor-information-type =
  anyAttribute
  & element xcon:conference-ID { xsd:unsignedLong }?
  & element xcon:allow-floor-events { xsd:boolean }?
  & element xcon:floor-request-handling { floor-request-type }?
  & element xcon:conference-floor-policy { conference-floor-policy }?
  & anyElement*
# FLOOR REQUEST TYPE
floor-request-type =
  xsd:string "block" | xsd:string "confirm" | free-text-extension
# CONFERENCE FLOOR POLICY
conference-floor-policy =
  anyAttribute
  & element xcon:floor {
      attribute id { text }
      & anyAttribute
      & element xcon:media-label { xsd:nonNegativeInteger }+
      & element xcon:algorithm { algorithm-type }?
        
      & element xcon:max-floor-users { xsd:nonNegativeInteger }?
      & element xcon:moderator-id { xsd:nonNegativeInteger }?
      & anyElement*
    }+
# ALGORITHM POLICY
algorithm-type =
  xsd:string "moderator-controlled"
  | xsd:string "FCFS"
  | xsd:string "random"
  | free-text-extension
# USERS ADMISSION POLICY
user-admission-policy-type =
  xsd:string "closedAuthenticated"
  | xsd:string "openAuthenticated"
  | xsd:string "anonymous"
  | free-text-extension
# JOIN HANDLING TYPE
join-handling-type =
  xsd:string "block"
  | xsd:string "confirm"
  | xsd:string "allow"
  | xsd:string "authenticate"
  | xsd:string "directed-operator"
  | free-text-extension
# DENY USERLIST
deny-user-list-type =
  anyAttribute
  & element xcon:target {
      attribute uri { xsd:anyURI },
      anyAttribute
    }*
  & anyElement*
# ALLOWED USERS LIST TYPE
allowed-users-list-type =
  anyAttribute
  & element xcon:target { target-type }*
  & element xcon:persistent-list { persistent-list-type }?
  & anyElement*
# PERSISTENT LIST TYPE
persistent-list-type =
  element xcon:user {
    attribute name { text }
    & attribute nickname { text }
    & attribute id { text }
    & anyAttribute
    & element xcon:e-mail { text }*
    & anyElement*
  }*
        
      & element xcon:max-floor-users { xsd:nonNegativeInteger }?
      & element xcon:moderator-id { xsd:nonNegativeInteger }?
      & anyElement*
    }+
# ALGORITHM POLICY
algorithm-type =
  xsd:string "moderator-controlled"
  | xsd:string "FCFS"
  | xsd:string "random"
  | free-text-extension
# USERS ADMISSION POLICY
user-admission-policy-type =
  xsd:string "closedAuthenticated"
  | xsd:string "openAuthenticated"
  | xsd:string "anonymous"
  | free-text-extension
# JOIN HANDLING TYPE
join-handling-type =
  xsd:string "block"
  | xsd:string "confirm"
  | xsd:string "allow"
  | xsd:string "authenticate"
  | xsd:string "directed-operator"
  | free-text-extension
# DENY USERLIST
deny-user-list-type =
  anyAttribute
  & element xcon:target {
      attribute uri { xsd:anyURI },
      anyAttribute
    }*
  & anyElement*
# ALLOWED USERS LIST TYPE
allowed-users-list-type =
  anyAttribute
  & element xcon:target { target-type }*
  & element xcon:persistent-list { persistent-list-type }?
  & anyElement*
# PERSISTENT LIST TYPE
persistent-list-type =
  element xcon:user {
    attribute name { text }
    & attribute nickname { text }
    & attribute id { text }
    & anyAttribute
    & element xcon:e-mail { text }*
    & anyElement*
  }*
        
  & anyElement*
# TARGET TYPE
target-type =
  attribute uri { xsd:anyURI },
  attribute method { method-type },
  anyAttribute
# METHOD TYPE
method-type =
  xsd:string "dial-in"
  | xsd:string "dial-out"
  | xsd:string "refer"
  | free-text-extension
# ANONYMITY TYPE
provide-anonymity-type =
  "private" | "semi-private" | "hidden" | free-text-extension
# MIXER TYPE
mixer-type =
  attribute name { mixer-name-type }
  & anyAttribute
  & element xcon:controls { control-type }*
  & element xcon:floor {
      attribute id { text },
      anyAttribute,
      xsd:boolean
    }*
  & anyElement*
# MIXER NAME TYPE
mixer-name-type =
  "VideoIn" | "VideoOut" | "AudioOut" | "AudioIn" | free-text-extension
        
  & anyElement*
# TARGET TYPE
target-type =
  attribute uri { xsd:anyURI },
  attribute method { method-type },
  anyAttribute
# METHOD TYPE
method-type =
  xsd:string "dial-in"
  | xsd:string "dial-out"
  | xsd:string "refer"
  | free-text-extension
# ANONYMITY TYPE
provide-anonymity-type =
  "private" | "semi-private" | "hidden" | free-text-extension
# MIXER TYPE
mixer-type =
  attribute name { mixer-name-type }
  & anyAttribute
  & element xcon:controls { control-type }*
  & element xcon:floor {
      attribute id { text },
      anyAttribute,
      xsd:boolean
    }*
  & anyElement*
# MIXER NAME TYPE
mixer-name-type =
  "VideoIn" | "VideoOut" | "AudioOut" | "AudioIn" | free-text-extension
        

# FREE TEXT EXTENSION #

#自由文本扩展#

free-text-extension = text
        
free-text-extension = text
        
# *********************************
# EXTENSIBILITY OF THE SCHEMA
# *********************************
        
# *********************************
# EXTENSIBILITY OF THE SCHEMA
# *********************************
        

# EXTENSIBILITY ELEMENTS #

#可扩展性元素#

anyElement =
  element * - (conference-description
               | host-info
               | conference-state
               | users
               | sidebars-by-ref
        
anyElement =
  element * - (conference-description
               | host-info
               | conference-state
               | users
               | sidebars-by-ref
        
               | sidebars-by-val
               | display-text
               | subject
               | free-text
               | keywords
               | conf-uris
               | service-uris
               | maximum-user-count
               | available-media
               | web-page
               | uris
               | uri
               | user-count
               | active
               | locked
               | entry
               | type
        
               | sidebars-by-val
               | display-text
               | subject
               | free-text
               | keywords
               | conf-uris
               | service-uris
               | maximum-user-count
               | available-media
               | web-page
               | uris
               | uri
               | user-count
               | active
               | locked
               | entry
               | type
        
               | status
               | purpose
               | modified
               | user
               | associated-aors
               | roles
               | languages
               | cascaded-focus
               | endpoint
               | referred
               | joining-method
               | joining-info
               | disconnection-method
               | disconnection-info
               | media
               | call-info
               | when
               | reason
               | by
               | sip
               | call-id
               | from-tag
               | to-tag
               | label
        
               | status
               | purpose
               | modified
               | user
               | associated-aors
               | roles
               | languages
               | cascaded-focus
               | endpoint
               | referred
               | joining-method
               | joining-info
               | disconnection-method
               | disconnection-info
               | media
               | call-info
               | when
               | reason
               | by
               | sip
               | call-id
               | from-tag
               | to-tag
               | label
        
               | src-id
               | xcon:conference-password
               | xcon:mixing-mode
               | xcon:codecs
               | xcon:controls
               | xcon:language
               | xcon:allow-sidebars
               | xcon:cloning-parent
               | xcon:sidebar-parent
               | xcon:allow-conference-event-subscription
               | xcon:to-mixer
               | xcon:provide-anonymity
               | xcon:allow-refer-users-dynamically
               | xcon:allow-invite-users-dynamically
               | xcon:allow-remove-users-dynamically
               | xcon:from-mixer
               | xcon:join-handling
               | xcon:user-admission-policy
               | xcon:allowed-users-list
               | xcon:deny-users-list
               | xcon:floor-information
               | xcon:conference-time
               | xcon:provide-anonymity
               | xcon:floor
               | xcon:entry
               | xcon:mixing-start-offset
               | xcon:mixing-end-offset
               | xcon:can-join-after-offset
               | xcon:must-join-before-offset
               | xcon:request-user
               | xcon:notify-end-of-conference
               | xcon:allowed-extend-mixing-end-offset
               | xcon:codec
               | xcon:subtype
               | xcon:mute
               | xcon:pause-video
               | xcon:gain
               | xcon:video-layout
               | xcon:conference-ID
               | xcon:allow-floor-events
               | xcon:floor-request-handling
               | xcon:conference-floor-policy
               | xcon:media-label
               | xcon:algorithm
               | xcon:max-floor-users
               | xcon:moderator-id
               | xcon:target
               | xcon:persistent-list
        
               | src-id
               | xcon:conference-password
               | xcon:mixing-mode
               | xcon:codecs
               | xcon:controls
               | xcon:language
               | xcon:allow-sidebars
               | xcon:cloning-parent
               | xcon:sidebar-parent
               | xcon:allow-conference-event-subscription
               | xcon:to-mixer
               | xcon:provide-anonymity
               | xcon:allow-refer-users-dynamically
               | xcon:allow-invite-users-dynamically
               | xcon:allow-remove-users-dynamically
               | xcon:from-mixer
               | xcon:join-handling
               | xcon:user-admission-policy
               | xcon:allowed-users-list
               | xcon:deny-users-list
               | xcon:floor-information
               | xcon:conference-time
               | xcon:provide-anonymity
               | xcon:floor
               | xcon:entry
               | xcon:mixing-start-offset
               | xcon:mixing-end-offset
               | xcon:can-join-after-offset
               | xcon:must-join-before-offset
               | xcon:request-user
               | xcon:notify-end-of-conference
               | xcon:allowed-extend-mixing-end-offset
               | xcon:codec
               | xcon:subtype
               | xcon:mute
               | xcon:pause-video
               | xcon:gain
               | xcon:video-layout
               | xcon:conference-ID
               | xcon:allow-floor-events
               | xcon:floor-request-handling
               | xcon:conference-floor-policy
               | xcon:media-label
               | xcon:algorithm
               | xcon:max-floor-users
               | xcon:moderator-id
               | xcon:target
               | xcon:persistent-list
        
               | xcon:e-mail
               | xcon:user) { anyExtension }
anyExtension =
  (attribute * { text }
   | any)*
any =
  element * {
    (attribute * { text }
     | text
     | any)*
  }
        
               | xcon:e-mail
               | xcon:user) { anyExtension }
anyExtension =
  (attribute * { text }
   | any)*
any =
  element * {
    (attribute * { text }
     | text
     | any)*
  }
        

# EXTENSIBILITY ATTRIBUTES #

#可扩展性属性#

anyAttribute =
  attribute * - (xml:lang
                 | entity
                 | required-participant
                 | label
                 | decision
                 | name
                 | policy
                 | uri
                 | method
                 | id
                 | nickname) { text }*
        
anyAttribute =
  attribute * - (xml:lang
                 | entity
                 | required-participant
                 | label
                 | decision
                 | name
                 | policy
                 | uri
                 | method
                 | id
                 | nickname) { text }*
        
6. XML Schema Extensibility
6. XML模式可扩展性

The conference information data model defined in this document is meant to be extensible. Extensions are accomplished by defining elements or attributes qualified by namespaces other than "urn:ietf:params:xml:ns:conference-info" and "urn:ietf:params:xml:ns:xcon-conference-info" for use wherever the schema allows such extensions (i.e., where the RELAX NG definition specifies "anyAttribute" or "anyElement").

本文档中定义的会议信息数据模型具有可扩展性。扩展是通过定义由名称空间限定的元素或属性来完成的,而不是“urn:ietf:params:xml:ns:conference info”和“urn:ietf:params:xml:ns:xcon conference info”,以便在模式允许此类扩展的情况下使用(即,RELAXNG定义指定“anyAttribute”或“anyElement”)。

Elements or attributes from unknown namespaces MUST be ignored.

必须忽略未知名称空间中的元素或属性。

7. XML Example
7. XML示例

The following is an example of a conference information document. The conference starts on October 17, 2007, at 10:30 a.m. in New York City and finishes the same day at 12:30 p.m. every week and repeats every week. In this example, there are currently three participants in the conference: one administrator, one moderator, and one participant. Sidebars are allowed in this conference and,

以下是会议信息文档的示例。会议于2007年10月17日上午10:30在纽约市开始,并于当天下午12:30结束,每周重复一次。在本例中,会议目前有三名参与者:一名管理员、一名主持人和一名参与者。本次会议允许使用边栏,

consequently, there is one sidebar in the conference. In addition, Alice and Carol are using a floor in the main conference to manage the audio and video resources. At the moment, Alice is assigned to use the floor.

因此,会议中有一个侧边栏。此外,Alice和Carol正在主会议中使用一个楼层来管理音频和视频资源。目前,爱丽丝被指派使用地板。

<?xml version="1.0" encoding="UTF-8"?>
<conference-info
        xmlns="urn:ietf:params:xml:ns:conference-info"
        xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info"
        entity="conference123@example.com">
        <!--
            CONFERENCE DESCRIPTION
        -->
        <conference-description xml:lang="en-us">
            <display-text>Discussion of Formula-1 racing</display-text>
            <subject>Sports:Formula-1</subject>
            <free-text>This is a conference example</free-text>
            <keywords>Formula-1 cars</keywords>
            <!--
        
<?xml version="1.0" encoding="UTF-8"?>
<conference-info
        xmlns="urn:ietf:params:xml:ns:conference-info"
        xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info"
        entity="conference123@example.com">
        <!--
            CONFERENCE DESCRIPTION
        -->
        <conference-description xml:lang="en-us">
            <display-text>Discussion of Formula-1 racing</display-text>
            <subject>Sports:Formula-1</subject>
            <free-text>This is a conference example</free-text>
            <keywords>Formula-1 cars</keywords>
            <!--
        
                CONFERENCE UNIQUE IDENTIFIERS
            -->
            <conf-uris>
                <entry>
                    <uri>tel:+3585671234</uri>
                    <display-text>Conference Bridge</display-text>
                    <purpose>participation</purpose>
                    <xcon:conference-password
                     >5678</xcon:conference-password>
                </entry>
                <entry>
                    <uri>http://www.example.com/live.ram</uri>
                    <purpose>streaming</purpose>
                </entry>
            </conf-uris>
            <!--
                SERVICE URIS
            -->
            <service-uris>
                <entry>
                    <uri>mailto:bob@example.com</uri>
                    <display-text>email</display-text>
                </entry>
            </service-uris>
            <!--
                MAXIMUM USER COUNT
            -->
            <maximum-user-count>50</maximum-user-count>
        
                CONFERENCE UNIQUE IDENTIFIERS
            -->
            <conf-uris>
                <entry>
                    <uri>tel:+3585671234</uri>
                    <display-text>Conference Bridge</display-text>
                    <purpose>participation</purpose>
                    <xcon:conference-password
                     >5678</xcon:conference-password>
                </entry>
                <entry>
                    <uri>http://www.example.com/live.ram</uri>
                    <purpose>streaming</purpose>
                </entry>
            </conf-uris>
            <!--
                SERVICE URIS
            -->
            <service-uris>
                <entry>
                    <uri>mailto:bob@example.com</uri>
                    <display-text>email</display-text>
                </entry>
            </service-uris>
            <!--
                MAXIMUM USER COUNT
            -->
            <maximum-user-count>50</maximum-user-count>
        
            <!--
                AVAILABLE MEDIA
            -->
            <available-media>
                <entry label="10234">
                    <display-text>main audio</display-text>
                    <type>audio</type>
                    <status>sendrecv</status>
                    <xcon:mixing-mode>automatic</xcon:mixing-mode>
                    <xcon:codecs decision="automatic">
                        <xcon:codec name="122" policy="allowed">
                           <xcon:subtype>PCMU</xcon:subtype>
                        </xcon:codec>
                    </xcon:codecs>
                    <xcon:controls>
                        <xcon:mute>true</xcon:mute>
                        <xcon:gain>50</xcon:gain>
                    </xcon:controls>
                </entry>
                <entry label="10235">
                    <display-text>main video</display-text>
                    <type>video</type>
                    <status>sendrecv</status>
                    <xcon:mixing-mode>automatic</xcon:mixing-mode>
                    <xcon:codecs decision="automatic">
                        <xcon:codec name="123" policy="allowed">
                           <xcon:subtype>H.263</xcon:subtype>
                        </xcon:codec>
                    </xcon:codecs>
                    <xcon:controls>
                        <xcon:video-layout
                          >single-view</xcon:video-layout>
                    </xcon:controls>
                </entry>
            </available-media>
        
            <!--
                AVAILABLE MEDIA
            -->
            <available-media>
                <entry label="10234">
                    <display-text>main audio</display-text>
                    <type>audio</type>
                    <status>sendrecv</status>
                    <xcon:mixing-mode>automatic</xcon:mixing-mode>
                    <xcon:codecs decision="automatic">
                        <xcon:codec name="122" policy="allowed">
                           <xcon:subtype>PCMU</xcon:subtype>
                        </xcon:codec>
                    </xcon:codecs>
                    <xcon:controls>
                        <xcon:mute>true</xcon:mute>
                        <xcon:gain>50</xcon:gain>
                    </xcon:controls>
                </entry>
                <entry label="10235">
                    <display-text>main video</display-text>
                    <type>video</type>
                    <status>sendrecv</status>
                    <xcon:mixing-mode>automatic</xcon:mixing-mode>
                    <xcon:codecs decision="automatic">
                        <xcon:codec name="123" policy="allowed">
                           <xcon:subtype>H.263</xcon:subtype>
                        </xcon:codec>
                    </xcon:codecs>
                    <xcon:controls>
                        <xcon:video-layout
                          >single-view</xcon:video-layout>
                    </xcon:controls>
                </entry>
            </available-media>
        
            <xcon:language>En-us</xcon:language>
        
            <xcon:language>En-us</xcon:language>
        
            <xcon:allow-sidebars>true</xcon:allow-sidebars>
            <!--
                CONFERENCE TIME
            -->
        
            <xcon:allow-sidebars>true</xcon:allow-sidebars>
            <!--
                CONFERENCE TIME
            -->
        
            <xcon:conference-time>
                <xcon:entry>
                    <xcon:base>BEGIN:VCALENDAR
  PRODID:-//LlamaSpinner Inc.//NONSGML CamelCall//EN
  VERSION:2.0
        
            <xcon:conference-time>
                <xcon:entry>
                    <xcon:base>BEGIN:VCALENDAR
  PRODID:-//LlamaSpinner Inc.//NONSGML CamelCall//EN
  VERSION:2.0
        
  BEGIN:VEVENT
  DTSTAMP:20071003T140728Z
  UID:20071003T140728Z-345FDA-carol@example.com
  ORGANIZER:MAILTO:carol@example.com
  DTSTART:20071017T143000Z
  RRULE:FREQ=WEEKLY
  DTEND:20071217T163000Z
  END:VEVENT
  END:VCALENDAR</xcon:base>
                    <xcon:mixing-start-offset
                        required-participant="moderator"
                       >2007-10-17T14:29:00Z</xcon:mixing-start-offset>
                    <xcon:mixing-end-offset
                        required-participant="participant"
                       >2007-10-17T16:31:00Z</xcon:mixing-end-offset>
                    <xcon:must-join-before-offset
                       >2007-10-17T15:30:00Z
                       </xcon:must-join-before-offset>
        
  BEGIN:VEVENT
  DTSTAMP:20071003T140728Z
  UID:20071003T140728Z-345FDA-carol@example.com
  ORGANIZER:MAILTO:carol@example.com
  DTSTART:20071017T143000Z
  RRULE:FREQ=WEEKLY
  DTEND:20071217T163000Z
  END:VEVENT
  END:VCALENDAR</xcon:base>
                    <xcon:mixing-start-offset
                        required-participant="moderator"
                       >2007-10-17T14:29:00Z</xcon:mixing-start-offset>
                    <xcon:mixing-end-offset
                        required-participant="participant"
                       >2007-10-17T16:31:00Z</xcon:mixing-end-offset>
                    <xcon:must-join-before-offset
                       >2007-10-17T15:30:00Z
                       </xcon:must-join-before-offset>
        
                </xcon:entry>
            </xcon:conference-time>
        
                </xcon:entry>
            </xcon:conference-time>
        
        </conference-description>
        <!--
            HOST INFO
        -->
        <host-info>
            <display-text>Formula1</display-text>
            <web-page>http://www.example.com/formula1/</web-page>
            <uris>
                <entry>
                    <uri>sip:alice@example.com</uri>
                </entry>
                <entry>
                    <uri>sip:carol@example.com</uri>
                </entry>
            </uris>
        </host-info>
        <!--
            CONFERENCE STATE
        -->
        <conference-state>
            <user-count>3</user-count>
            <active>true</active>
        
        </conference-description>
        <!--
            HOST INFO
        -->
        <host-info>
            <display-text>Formula1</display-text>
            <web-page>http://www.example.com/formula1/</web-page>
            <uris>
                <entry>
                    <uri>sip:alice@example.com</uri>
                </entry>
                <entry>
                    <uri>sip:carol@example.com</uri>
                </entry>
            </uris>
        </host-info>
        <!--
            CONFERENCE STATE
        -->
        <conference-state>
            <user-count>3</user-count>
            <active>true</active>
        
            <locked>false</locked>
            <xcon:allow-conference-event-subscription
              >true</xcon:allow-conference-event-subscription>
        
            <locked>false</locked>
            <xcon:allow-conference-event-subscription
              >true</xcon:allow-conference-event-subscription>
        
       </conference-state>
        <!--
            USERS
        -->
        <users>
            <!--
                USER BOB
            -->
            <user entity="xcon-userid:bob534">
                <display-text>Bob Hoskins</display-text>
                <associated-aors>
                    <entry>
                        <uri>mailto:bob@example.com</uri>
                        <display-text>email</display-text>
                    </entry>
                </associated-aors>
                <roles>
                    <entry>participant</entry>
                </roles>
                <languages>en-us</languages>
        
       </conference-state>
        <!--
            USERS
        -->
        <users>
            <!--
                USER BOB
            -->
            <user entity="xcon-userid:bob534">
                <display-text>Bob Hoskins</display-text>
                <associated-aors>
                    <entry>
                        <uri>mailto:bob@example.com</uri>
                        <display-text>email</display-text>
                    </entry>
                </associated-aors>
                <roles>
                    <entry>participant</entry>
                </roles>
                <languages>en-us</languages>
        
                <!--
                    ENDPOINTS
                -->
                <endpoint entity="sip:bob@example.com">
                    <display-text>Bob's Laptop</display-text>
                    <referred>
                        <when>2007-10-17T14:00:00Z</when>
                        <reason>expert required</reason>
                        <by>sip:alice@example.com</by>
                    </referred>
                    <status>connected</status>
                    <joining-method>dialed-out</joining-method>
                    <joining-info>
                        <when>2007-10-17T14:00:00Z</when>
                        <reason>invitation</reason>
                        <by>sip:alice@example.com</by>
                    </joining-info>
                    <!--
                        MEDIA
                    -->
                    <media id="1">
                        <type>video</type>
                        <label>10235</label>
        
                <!--
                    ENDPOINTS
                -->
                <endpoint entity="sip:bob@example.com">
                    <display-text>Bob's Laptop</display-text>
                    <referred>
                        <when>2007-10-17T14:00:00Z</when>
                        <reason>expert required</reason>
                        <by>sip:alice@example.com</by>
                    </referred>
                    <status>connected</status>
                    <joining-method>dialed-out</joining-method>
                    <joining-info>
                        <when>2007-10-17T14:00:00Z</when>
                        <reason>invitation</reason>
                        <by>sip:alice@example.com</by>
                    </joining-info>
                    <!--
                        MEDIA
                    -->
                    <media id="1">
                        <type>video</type>
                        <label>10235</label>
        
                        <src-id>432424</src-id>
                        <status>sendrecv</status>
                        <xcon:to-mixer name="VideoIn">
                            <xcon:controls>
                                <xcon:video-layout
                                   >single-view</xcon:video-layout>
                            </xcon:controls>
                        </xcon:to-mixer>
                    </media>
                    <!--
                        CALL INFO
                    -->
                    <call-info>
                        <sip>
                            <display-text>full info</display-text>
                            <call-id>hsjh8980vhsb78</call-id>
                            <from-tag>vav738dvbs</from-tag>
                            <to-tag>8954jgjg8432</to-tag>
                        </sip>
                    </call-info>
                </endpoint>
                <xcon:provide-anonymity
                 >semi-private</xcon:provide-anonymity>
                 <xcon:allow-refer-users-dynamically
                    >false</xcon:allow-refer-users-dynamically>
                <xcon:allow-invite-users-dynamically
                    >false</xcon:allow-invite-users-dynamically>
                <xcon:allow-remove-users-dynamically
                    >false</xcon:allow-remove-users-dynamically>
            </user>
        
                        <src-id>432424</src-id>
                        <status>sendrecv</status>
                        <xcon:to-mixer name="VideoIn">
                            <xcon:controls>
                                <xcon:video-layout
                                   >single-view</xcon:video-layout>
                            </xcon:controls>
                        </xcon:to-mixer>
                    </media>
                    <!--
                        CALL INFO
                    -->
                    <call-info>
                        <sip>
                            <display-text>full info</display-text>
                            <call-id>hsjh8980vhsb78</call-id>
                            <from-tag>vav738dvbs</from-tag>
                            <to-tag>8954jgjg8432</to-tag>
                        </sip>
                    </call-info>
                </endpoint>
                <xcon:provide-anonymity
                 >semi-private</xcon:provide-anonymity>
                 <xcon:allow-refer-users-dynamically
                    >false</xcon:allow-refer-users-dynamically>
                <xcon:allow-invite-users-dynamically
                    >false</xcon:allow-invite-users-dynamically>
                <xcon:allow-remove-users-dynamically
                    >false</xcon:allow-remove-users-dynamically>
            </user>
        
            <!--
                USER ALICE
            -->
            <user entity="xcon-userid:alice334">
                <display-text>Alice Kay</display-text>
                <associated-aors>
                    <entry>
                        <uri>mailto:alice@example.com</uri>
                        <display-text>email</display-text>
                    </entry>
                </associated-aors>
                <roles>
                    <entry>moderator</entry>
                </roles>
                <languages>en-us</languages>
                <!--
                    ENDPOINTS
        
            <!--
                USER ALICE
            -->
            <user entity="xcon-userid:alice334">
                <display-text>Alice Kay</display-text>
                <associated-aors>
                    <entry>
                        <uri>mailto:alice@example.com</uri>
                        <display-text>email</display-text>
                    </entry>
                </associated-aors>
                <roles>
                    <entry>moderator</entry>
                </roles>
                <languages>en-us</languages>
                <!--
                    ENDPOINTS
        
                -->
                <endpoint entity="sip:alice@example.com">
                    <display-text>Alice's Desktop</display-text>
                    <status>connected</status>
                    <joining-method>dialed-in</joining-method>
                    <joining-info>
                        <when>2007-10-17T13:35:08Z</when>
                        <reason>invitation</reason>
                        <by>sip:conference@example.com</by>
                    </joining-info>
                    <!--
                        MEDIA
                    -->
                    <media id="1">
                        <type>video</type>
                        <label>10235</label>
                        <src-id>432424</src-id>
                        <status>sendrecv</status>
                        <xcon:to-mixer name="VideoIn">
                         <xcon:controls>
                            <xcon:video-layout
                              >single-view</xcon:video-layout>
                         </xcon:controls>
                        </xcon:to-mixer>
                    </media>
                    <media id="2">
                        <type>audio</type>
                        <label>10234</label>
                        <src-id>532535</src-id>
                        <status>sendrecv</status>
                        <xcon:to-mixer name="AudioIn">
                          <xcon:controls>
                            <xcon:gain>50</xcon:gain>
                          </xcon:controls>
                        </xcon:to-mixer>
                        <xcon:from-mixer name="AudioOut">
                          <xcon:controls>
                              <xcon:gain>50</xcon:gain>
                          </xcon:controls>
                        </xcon:from-mixer>
                    </media>
                    <!--
                        CALL INFO
                    -->
                    <call-info>
                        <sip>
                            <display-text>full info</display-text>
                            <call-id>truy45469123478</call-id>
        
                -->
                <endpoint entity="sip:alice@example.com">
                    <display-text>Alice's Desktop</display-text>
                    <status>connected</status>
                    <joining-method>dialed-in</joining-method>
                    <joining-info>
                        <when>2007-10-17T13:35:08Z</when>
                        <reason>invitation</reason>
                        <by>sip:conference@example.com</by>
                    </joining-info>
                    <!--
                        MEDIA
                    -->
                    <media id="1">
                        <type>video</type>
                        <label>10235</label>
                        <src-id>432424</src-id>
                        <status>sendrecv</status>
                        <xcon:to-mixer name="VideoIn">
                         <xcon:controls>
                            <xcon:video-layout
                              >single-view</xcon:video-layout>
                         </xcon:controls>
                        </xcon:to-mixer>
                    </media>
                    <media id="2">
                        <type>audio</type>
                        <label>10234</label>
                        <src-id>532535</src-id>
                        <status>sendrecv</status>
                        <xcon:to-mixer name="AudioIn">
                          <xcon:controls>
                            <xcon:gain>50</xcon:gain>
                          </xcon:controls>
                        </xcon:to-mixer>
                        <xcon:from-mixer name="AudioOut">
                          <xcon:controls>
                              <xcon:gain>50</xcon:gain>
                          </xcon:controls>
                        </xcon:from-mixer>
                    </media>
                    <!--
                        CALL INFO
                    -->
                    <call-info>
                        <sip>
                            <display-text>full info</display-text>
                            <call-id>truy45469123478</call-id>
        
                            <from-tag>asd456cbgt</from-tag>
                            <to-tag>3456jgjg1234</to-tag>
                        </sip>
                    </call-info>
                    <xcon:floor id="345">true</xcon:floor>
                </endpoint>
                <xcon:provide-anonymity>private</xcon:provide-anonymity>
                <xcon:allow-refer-users-dynamically
                    >true</xcon:allow-refer-users-dynamically>
                <xcon:allow-invite-users-dynamically
                    >true</xcon:allow-invite-users-dynamically>
                <xcon:allow-remove-users-dynamically
                    >true</xcon:allow-remove-users-dynamically>
            </user>
        
                            <from-tag>asd456cbgt</from-tag>
                            <to-tag>3456jgjg1234</to-tag>
                        </sip>
                    </call-info>
                    <xcon:floor id="345">true</xcon:floor>
                </endpoint>
                <xcon:provide-anonymity>private</xcon:provide-anonymity>
                <xcon:allow-refer-users-dynamically
                    >true</xcon:allow-refer-users-dynamically>
                <xcon:allow-invite-users-dynamically
                    >true</xcon:allow-invite-users-dynamically>
                <xcon:allow-remove-users-dynamically
                    >true</xcon:allow-remove-users-dynamically>
            </user>
        
            <!--
                USER CAROL
            -->
            <user entity="xcon-userid:carol233">
                <display-text>Carol More</display-text>
                <associated-aors>
                    <entry>
                        <uri>mailto:carol@example.com</uri>
                        <display-text>email</display-text>
                    </entry>
                </associated-aors>
                <roles>
                    <entry>administrator</entry>
                </roles>
                <languages>en-us</languages>
                <!--
                    ENDPOINTS
                -->
                <endpoint entity="sip:carol@example.com">
                    <display-text>Carol's Computer</display-text>
                    <status>connected</status>
                    <joining-method>dialed-in</joining-method>
                    <joining-info>
                        <when>2007-10-17T13:30:05Z</when>
                        <reason>invitation</reason>
                        <by>sip:conference@example.com</by>
                    </joining-info>
                    <!--
                        MEDIA
                    -->
                    <media id="1">
                        <type>video</type>
                        <label>10235</label>
        
            <!--
                USER CAROL
            -->
            <user entity="xcon-userid:carol233">
                <display-text>Carol More</display-text>
                <associated-aors>
                    <entry>
                        <uri>mailto:carol@example.com</uri>
                        <display-text>email</display-text>
                    </entry>
                </associated-aors>
                <roles>
                    <entry>administrator</entry>
                </roles>
                <languages>en-us</languages>
                <!--
                    ENDPOINTS
                -->
                <endpoint entity="sip:carol@example.com">
                    <display-text>Carol's Computer</display-text>
                    <status>connected</status>
                    <joining-method>dialed-in</joining-method>
                    <joining-info>
                        <when>2007-10-17T13:30:05Z</when>
                        <reason>invitation</reason>
                        <by>sip:conference@example.com</by>
                    </joining-info>
                    <!--
                        MEDIA
                    -->
                    <media id="1">
                        <type>video</type>
                        <label>10235</label>
        
                        <src-id>432424</src-id>
                        <status>sendrecv</status>
                        <xcon:to-mixer name="VideoIn">
                            <xcon:controls>
                                <xcon:video-layout
                              >single-view</xcon:video-layout>
                         </xcon:controls>
                        </xcon:to-mixer>
                    </media>
                    <media id="2">
                        <type>audio</type>
                        <label>10234</label>
                        <src-id>532535</src-id>
                        <status>sendrecv</status>
                        <xcon:to-mixer name="AudioIn">
                            <xcon:controls>
                                <xcon:gain>50</xcon:gain>
                            </xcon:controls>
                        </xcon:to-mixer>
                        <xcon:from-mixer name="AudioOut">
                            <xcon:controls>
                                <xcon:gain>50</xcon:gain>
                          </xcon:controls>
                        </xcon:from-mixer>
                    </media>
                    <!--
                        CALL INFO
                    -->
                    <call-info>
                        <sip>
                            <display-text>full info</display-text>
                            <call-id>wevb12562321894</call-id>
                            <from-tag>asw456wedf</from-tag>
                            <to-tag>2365dfrt3497</to-tag>
        
                        <src-id>432424</src-id>
                        <status>sendrecv</status>
                        <xcon:to-mixer name="VideoIn">
                            <xcon:controls>
                                <xcon:video-layout
                              >single-view</xcon:video-layout>
                         </xcon:controls>
                        </xcon:to-mixer>
                    </media>
                    <media id="2">
                        <type>audio</type>
                        <label>10234</label>
                        <src-id>532535</src-id>
                        <status>sendrecv</status>
                        <xcon:to-mixer name="AudioIn">
                            <xcon:controls>
                                <xcon:gain>50</xcon:gain>
                            </xcon:controls>
                        </xcon:to-mixer>
                        <xcon:from-mixer name="AudioOut">
                            <xcon:controls>
                                <xcon:gain>50</xcon:gain>
                          </xcon:controls>
                        </xcon:from-mixer>
                    </media>
                    <!--
                        CALL INFO
                    -->
                    <call-info>
                        <sip>
                            <display-text>full info</display-text>
                            <call-id>wevb12562321894</call-id>
                            <from-tag>asw456wedf</from-tag>
                            <to-tag>2365dfrt3497</to-tag>
        
                        </sip>
                    </call-info>
        
                        </sip>
                    </call-info>
        
                    <xcon:floor id="345">false</xcon:floor>
                </endpoint>
        
                    <xcon:floor id="345">false</xcon:floor>
                </endpoint>
        
                <xcon:provide-anonymity>private</xcon:provide-anonymity>
                <xcon:allow-refer-users-dynamically
                    >true</xcon:allow-refer-users-dynamically>
                <xcon:allow-invite-users-dynamically
                    >true</xcon:allow-invite-users-dynamically>
                <xcon:allow-remove-users-dynamically
                    >true</xcon:allow-remove-users-dynamically>
        
                <xcon:provide-anonymity>private</xcon:provide-anonymity>
                <xcon:allow-refer-users-dynamically
                    >true</xcon:allow-refer-users-dynamically>
                <xcon:allow-invite-users-dynamically
                    >true</xcon:allow-invite-users-dynamically>
                <xcon:allow-remove-users-dynamically
                    >true</xcon:allow-remove-users-dynamically>
        
            </user>
        
            </user>
        
            <xcon:join-handling>allow</xcon:join-handling>
            <xcon:user-admission-policy
               >openAuthenticated</xcon:user-admission-policy>
            <!--
                ALLOWED USERS LIST
            -->
            <xcon:allowed-users-list>
                <xcon:target uri="sip:bob@example.com"
                    method="dial-out"/>
                <xcon:target uri="sip:alice@example.com"
                    method="dial-out"/>
                <xcon:target uri="sip:carol@example.com"
                    method="dial-out"/>
                <xcon:target uri="sip:john@example.com"
                    method="refer"/>
            </xcon:allowed-users-list>
            <!--
                DENY USERS LIST
            -->
            <xcon:deny-users-list>
                <xcon:target uri="sip:charlie@example.com"/>
            </xcon:deny-users-list>
        </users>
        <!--
            SIDEBARS BY REFERENCE
        -->
        <sidebars-by-ref>
            <entry>
                <uri>xcon:conf223</uri>
                <display-text>private with Bob</display-text>
            </entry>
        </sidebars-by-ref>
        <!--
            SIDEBARS BY VALUE
        -->
        <sidebars-by-val>
            <entry entity="conf223">
                <users>
                    <user entity="xcon-userid:bob534"/>
                    <user entity="xcon-userid:carol233"/>
                </users>
            </entry>
        </sidebars-by-val>
        <!--
            FLOOR INFORMATION
        -->
        
            <xcon:join-handling>allow</xcon:join-handling>
            <xcon:user-admission-policy
               >openAuthenticated</xcon:user-admission-policy>
            <!--
                ALLOWED USERS LIST
            -->
            <xcon:allowed-users-list>
                <xcon:target uri="sip:bob@example.com"
                    method="dial-out"/>
                <xcon:target uri="sip:alice@example.com"
                    method="dial-out"/>
                <xcon:target uri="sip:carol@example.com"
                    method="dial-out"/>
                <xcon:target uri="sip:john@example.com"
                    method="refer"/>
            </xcon:allowed-users-list>
            <!--
                DENY USERS LIST
            -->
            <xcon:deny-users-list>
                <xcon:target uri="sip:charlie@example.com"/>
            </xcon:deny-users-list>
        </users>
        <!--
            SIDEBARS BY REFERENCE
        -->
        <sidebars-by-ref>
            <entry>
                <uri>xcon:conf223</uri>
                <display-text>private with Bob</display-text>
            </entry>
        </sidebars-by-ref>
        <!--
            SIDEBARS BY VALUE
        -->
        <sidebars-by-val>
            <entry entity="conf223">
                <users>
                    <user entity="xcon-userid:bob534"/>
                    <user entity="xcon-userid:carol233"/>
                </users>
            </entry>
        </sidebars-by-val>
        <!--
            FLOOR INFORMATION
        -->
        
        <xcon:floor-information>
            <xcon:conference-ID>567</xcon:conference-ID>
            <xcon:allow-floor-events>true</xcon:allow-floor-events>
            <xcon:floor-request-handling
             >confirm</xcon:floor-request-handling>
        
        <xcon:floor-information>
            <xcon:conference-ID>567</xcon:conference-ID>
            <xcon:allow-floor-events>true</xcon:allow-floor-events>
            <xcon:floor-request-handling
             >confirm</xcon:floor-request-handling>
        
            <xcon:conference-floor-policy>
                <xcon:floor id="345">
                    <xcon:media-label>10234</xcon:media-label>
                    <xcon:media-label>10235</xcon:media-label>
                    <xcon:algorithm
                     >moderator-controlled</xcon:algorithm>
                    <xcon:max-floor-users>1</xcon:max-floor-users>
                    <xcon:moderator-id>234</xcon:moderator-id>
                </xcon:floor>
            </xcon:conference-floor-policy>
        </xcon:floor-information>
        
            <xcon:conference-floor-policy>
                <xcon:floor id="345">
                    <xcon:media-label>10234</xcon:media-label>
                    <xcon:media-label>10235</xcon:media-label>
                    <xcon:algorithm
                     >moderator-controlled</xcon:algorithm>
                    <xcon:max-floor-users>1</xcon:max-floor-users>
                    <xcon:moderator-id>234</xcon:moderator-id>
                </xcon:floor>
            </xcon:conference-floor-policy>
        </xcon:floor-information>
        
    </conference-info>
        
    </conference-info>
        

Note that due to RFC formatting conventions, this documents splits lines whose content would exceed 72 characters.

请注意,由于RFC格式约定,此文档会拆分内容超过72个字符的行。

8. Security Considerations
8. 安全考虑

There are numerous security considerations for this document. Overall, the security considerations for authentication and the Security and Privacy of Identity described in Sections 11 and 11.2, respectively, of the centralized conferencing framework document [RFC5239] apply to this document.

本文档有许多安全注意事项。总的来说,集中会议框架文件[RFC5239]第11节和第11.2节中分别描述的身份验证安全注意事项以及身份安全和隐私适用于本文件。

This specification defines a data model for conference objects. Different conferencing systems may use different protocols to provide access to these conference objects. This section contains general security considerations for the conference objects and for the protocols. The specification of each particular protocol needs to discuss how the specific protocol meets the security requirements provided in this section.

本规范定义了会议对象的数据模型。不同的会议系统可以使用不同的协议来提供对这些会议对象的访问。本节包含会议对象和协议的一般安全注意事项。每个特定协议的规范需要讨论特定协议如何满足本节中提供的安全要求。

A given conferencing system usually supports different protocols in order to implement different functions (e.g., SIP for session control and BFCP for floor control). Each of these protocols may use its own authentication mechanism. In cases where a user is authenticated using multiple authentication mechanisms, it is up to the conferencing system to map all the different authentications to the same user. Discussing the specifics of different authentication mechanism is beyond the scope of this document.

给定的会议系统通常支持不同的协议以实现不同的功能(例如,会话控制的SIP和楼层控制的BFCP)。这些协议中的每一个都可以使用自己的身份验证机制。在使用多个身份验证机制对用户进行身份验证的情况下,由会议系统将所有不同的身份验证映射到同一用户。讨论不同身份验证机制的细节超出了本文档的范围。

Furthermore, users may use different identifiers to access a conference, as explained in Section 4.6.5. These different namespaces can be associated with a unique conference user identifier (XCON-USERID). A mapping database is used to map all these authenticated user namespaces to the XCON-USERID. There are several threats against this database. In order to minimize these threats, the administrator of the conferencing system MUST ensure that only authorized users can connect to this database (e.g., by using access control rules). In particular, the integrity of the database MUST be protected against unauthorized modifications. In addition, the XCON-USERID or XCON-URI SHOULD be hard to guess. It is critical that the URI remain difficult to "guess" via brute force methods. Generic security considerations for usage of URIs are discussed in [RFC3986].

此外,如第4.6.5节所述,用户可以使用不同的标识符访问会议。这些不同的名称空间可以与唯一的会议用户标识符(XCON-USERID)相关联。映射数据库用于将所有这些经过身份验证的用户名称空间映射到XCON-USERID。此数据库存在多个威胁。为了将这些威胁降至最低,会议系统管理员必须确保只有授权用户才能连接到此数据库(例如,通过使用访问控制规则)。特别是,必须保护数据库的完整性,防止未经授权的修改。此外,XCON-USERID或XCON-URI应该很难猜测。关键是URI仍然难以通过暴力方法“猜测”。[RFC3986]中讨论了使用URI的一般安全注意事项。

It is RECOMMENDED that the database uses encryption mechanisms if the information is stored in long-term storage (e.g., disk). If the database contains sensitive elements (e.g., passwords), the confidentiality of the database MUST be protected from unauthorized users. If no sensitive elements are present, then confidentiality is not needed. In addition to implementing access control, as discussed above, it is RECOMMENDED that administrators of conferencing systems only provide access to the database over encrypted channels (e.g., using TLS encryption) in order to avoid eavesdroppers. Administrators of conferencing systems SHOULD also avoid disclosing information to unauthorized parties when a conference is being cloned or when a sidebar is being created. For example, an external sidebar as defined in [RFC5239], Section 9.4.2, may include participants who were not authorized for the parent conference.

如果信息存储在长期存储器(如磁盘)中,建议数据库使用加密机制。如果数据库包含敏感元素(例如密码),则必须保护数据库的机密性,以防未经授权的用户使用。如果不存在敏感元素,则不需要保密。除了如上所述实施访问控制外,建议会议系统管理员仅通过加密通道(例如,使用TLS加密)提供对数据库的访问,以避免窃听者。会议系统管理员还应避免在克隆会议或创建侧栏时向未经授权的各方披露信息。例如,[RFC5239]第9.4.2节中定义的外部侧栏可能包括未经授权参加家长会议的与会者。

The security considerations for authentication described in Section 11.1 of the centralized conferencing framework document [RFC5239] also apply to this document. Similarly, the security considerations for authorization described in Section 5.2 of the Session Initiation Protocol (SIP) REFER Method [RFC3515] apply to this document as well.

集中式会议框架文件[RFC5239]第11.1节中描述的认证安全注意事项也适用于本文件。同样,会话启动协议(SIP)参考方法[RFC3515]第5.2节中描述的授权安全注意事项也适用于本文件。

Note that the specification of the privacy policy is outside the scope of this document. Saying that, a privacy policy will be needed in the real implementation of the data model and, therefore, is subject to future policy documents.

请注意,隐私政策的规范不在本文档的范围内。也就是说,在数据模型的实际实现中需要隐私政策,因此,隐私政策受未来政策文件的约束。

9. IANA Considerations
9. IANA考虑
9.1. RELAX NG Schema Registration
9.1. RELAXNG模式注册

This specification registers a schema. The schema can be found as the sole content of Section 5.

此规范注册一个模式。该模式是第5节的唯一内容。

      URI: urn:ietf:params:xml:schema:xcon-conference-info
        
      URI: urn:ietf:params:xml:schema:xcon-conference-info
        
      Registrant Contact: IETF XCON working group <xcon@ietf.org>,
         Oscar Novo <Oscar.Novo@ericsson.com>
        
      Registrant Contact: IETF XCON working group <xcon@ietf.org>,
         Oscar Novo <Oscar.Novo@ericsson.com>
        

RELAX NG Schema: The RELAX NG schema to be registered is contained in Section 5. Its first line is as follows:

RELAXNG模式:要注册的RELAXNG模式包含在第5节中。其第一行如下:

      default namespace = "urn:ietf:params:xml:ns:conference-info"
        
      default namespace = "urn:ietf:params:xml:ns:conference-info"
        

and its last line is as follows:

最后一行是:

      anyAttribute = attribute * - (xml:lang | entity
                     | required-participant | label | decision | name
                     | policy | uri | method | id | nickname) { text }*
        
      anyAttribute = attribute * - (xml:lang | entity
                     | required-participant | label | decision | name
                     | policy | uri | method | id | nickname) { text }*
        
9.2. XML Namespace Registration
9.2. XML命名空间注册

This section registers a new XML namespace.

本节注册一个新的XML名称空间。

      URI: urn:ietf:params:xml:ns:xcon-conference-info
        
      URI: urn:ietf:params:xml:ns:xcon-conference-info
        
      Registrant Contact: IETF XCON working group <xcon@ietf.org>,
         Oscar Novo <Oscar.Novo@ericsson.com>
        
      Registrant Contact: IETF XCON working group <xcon@ietf.org>,
         Oscar Novo <Oscar.Novo@ericsson.com>
        

XML:

XML:

         BEGIN
         <?xml version="1.0"?>
         <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
           "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
         <html xmlns="http://www.w3.org/1999/xhtml">
         <head>
           <meta http-equiv="content-type"
                 content="text/html;charset=iso-8859-1"/>
           <title> Centralized Conferencing Namespace</title>
         </head>
         <body>
           <h1>Namespace for Centralized Conferencing</h1>
           <h2>urn:ietf:params:xml:ns:xcon-conference-info</h2>
         <p>See <a href="http://www.rfc-editor.org/rfc/rfc6501.txt">
            RFC 6501</a>.</p>
         </body>
         </html>
         END
        
         BEGIN
         <?xml version="1.0"?>
         <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
           "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
         <html xmlns="http://www.w3.org/1999/xhtml">
         <head>
           <meta http-equiv="content-type"
                 content="text/html;charset=iso-8859-1"/>
           <title> Centralized Conferencing Namespace</title>
         </head>
         <body>
           <h1>Namespace for Centralized Conferencing</h1>
           <h2>urn:ietf:params:xml:ns:xcon-conference-info</h2>
         <p>See <a href="http://www.rfc-editor.org/rfc/rfc6501.txt">
            RFC 6501</a>.</p>
         </body>
         </html>
         END
        
9.3. Conference Object Identifier Registration
9.3. 会议对象标识符注册
    URI scheme name: xcon
    Status: permanent
    URI scheme syntax: see Section 3.3.1.
    URI schema semantics: see Section 3.3
    Encoding considerations: see Section 8
    Intended usage: see Section 3.3
    Applications and/or protocols that use this URI scheme name:
           Centralized Conferencing systems
    Interoperability considerations: none
    Security considerations: see Section 8
    Relevant publications: conference information data model for
           Centralized Conferencing (XCON)
    Contact: Oscar Novo <oscar.novo@ericsson.com>
    Author/Change controller: Oscar Novo <oscar.novo@ericsson.com>
        
    URI scheme name: xcon
    Status: permanent
    URI scheme syntax: see Section 3.3.1.
    URI schema semantics: see Section 3.3
    Encoding considerations: see Section 8
    Intended usage: see Section 3.3
    Applications and/or protocols that use this URI scheme name:
           Centralized Conferencing systems
    Interoperability considerations: none
    Security considerations: see Section 8
    Relevant publications: conference information data model for
           Centralized Conferencing (XCON)
    Contact: Oscar Novo <oscar.novo@ericsson.com>
    Author/Change controller: Oscar Novo <oscar.novo@ericsson.com>
        
9.4. Conference User Identifier Registration
9.4. 会议用户标识符注册
    URI scheme name: XCON-USERID
    Status: permanent
    URI scheme syntax: see Section 4.6.5
    URI schema semantics: see Section 4.6.5
    Encoding considerations: see Section 8
    Intended usage: see Section 4.6.3 and 4.6.5
    Applications and/or protocols that use this URI scheme name:
           Centralized Conferencing systems.
    Interoperability considerations: none
    Security considerations: see Section 8
    Relevant publications: conference information data model for
           Centralized Conferencing (XCON)
    Contact: Oscar Novo <oscar.novo@ericsson.com>
    Author/Change controller: Oscar Novo <oscar.novo@ericsson.com>
        
    URI scheme name: XCON-USERID
    Status: permanent
    URI scheme syntax: see Section 4.6.5
    URI schema semantics: see Section 4.6.5
    Encoding considerations: see Section 8
    Intended usage: see Section 4.6.3 and 4.6.5
    Applications and/or protocols that use this URI scheme name:
           Centralized Conferencing systems.
    Interoperability considerations: none
    Security considerations: see Section 8
    Relevant publications: conference information data model for
           Centralized Conferencing (XCON)
    Contact: Oscar Novo <oscar.novo@ericsson.com>
    Author/Change controller: Oscar Novo <oscar.novo@ericsson.com>
        
10. Acknowledgements
10. 致谢

This document is really a distillation of many ideas discussed over a long period of time. These ideas were contributed by many different documents in the XCON working group and the SIPPING working group. We would like to thank Orit Levin, Roni Even, Adam Roach, Mary Barnes, Chris Boulton, Umesh Chandra, Hisham Khartabil, Petri Koskelainen, Aki Niemi, Rohan Mahy, Jonathan Lennox, Sean Duddy, Richard Barnes, and Henning Schulzrinne for their comments. Also, we would like to thank Mary Barnes and Chris Boulton for letting us use the conference and user identifier information of their XCON documents. Last but not least, we would like to express our gratitude to all those reviewers for their invaluable contributions: Simon Pietro Romano, Lorenzo Miniero, Tobia Castaldi, Miguel Garcia, Mary Barnes, Srivatsa Srinivasan, Avshalom Houri, Pierre Tane, and Ben Campbell.

这份文件实际上是经过长时间讨论的许多想法的结晶。XCON工作组和SIPING工作组的许多不同文件都提出了这些想法。我们要感谢Orit Levin、Roni Een、Adam Roach、Mary Barnes、Chris Boulton、Umesh Chandra、Hisham Khartabil、Petri Koskelainen、Aki Niemi、Rohan Mahy、Jonathan Lennox、Sean Duddy、Richard Barnes和Henning Schulzrinne的评论。此外,我们还要感谢Mary Barnes和Chris Boulton让我们使用他们的XCON文档的会议和用户标识符信息。最后但并非最不重要的一点是,我们要感谢所有这些评论家的宝贵贡献:西蒙·皮特罗·罗马诺、洛伦佐·米尼罗、托比亚·卡斯塔尔迪、米格尔·加西亚、玛丽·巴恩斯、斯利瓦萨·斯里尼瓦桑、阿夫沙洛姆·胡里、皮埃尔·坦恩和本·坎贝尔。

11. References
11. 工具书类
11.1. Normative References
11.1. 规范性引用文件

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

[RFC2119]Bradner,S.,“RFC中用于表示需求水平的关键词”,BCP 14,RFC 2119,1997年3月。

[RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform Resource Identifier (URI): Generic Syntax", STD 66, RFC 3986, January 2005.

[RFC3986]Berners Lee,T.,Fielding,R.,和L.Masinter,“统一资源标识符(URI):通用语法”,STD 66,RFC 3986,2005年1月。

[RFC4575] Rosenberg, J., Schulzrinne, H., and O. Levin, "A Session Initiation Protocol (SIP) Event Package for Conference State", RFC 4575, August 2006.

[RFC4575]Rosenberg,J.,Schulzrinne,H.,和O.Levin,“会议状态的会话启动协议(SIP)事件包”,RFC 45752006年8月。

[RFC4582] Camarillo, G., Ott, J., and K. Drage, "The Binary Floor Control Protocol (BFCP)", RFC 4582, November 2006.

[RFC4582]Camarillo,G.,Ott,J.,和K.Drage,“二进制地板控制协议(BFCP)”,RFC 4582,2006年11月。

[RFC4583] Camarillo, G., "Session Description Protocol (SDP) Format for Binary Floor Control Protocol (BFCP) Streams", RFC 4583, November 2006.

[RFC4583]Camarillo,G.“二进制地板控制协议(BFCP)流的会话描述协议(SDP)格式”,RFC4583,2006年11月。

[RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", STD 68, RFC 5234, January 2008.

[RFC5234]Crocker,D.和P.Overell,“语法规范的扩充BNF:ABNF”,STD 68,RFC 5234,2008年1月。

[RFC5239] Barnes, M., Boulton, C., and O. Levin, "A Framework for Centralized Conferencing", RFC 5239, June 2008.

[RFC5239]Barnes,M.,Boulton,C.,和O.Levin,“集中会议的框架”,RFC 5239,2008年6月。

[RFC5545] Desruisseaux, B., "Internet Calendaring and Scheduling Core Object Specification (iCalendar)", RFC 5545, September 2009.

[RFC5545]Desruisseaux,B.“互联网日历和调度核心对象规范(iCalendar)”,RFC 55452009年9月。

11.2. Informative References
11.2. 资料性引用

[IANA] IANA, "RTP Payload Types", <http://www.iana.org/assignments/rtp-parameters>.

[IANA]IANA,“RTP有效负载类型”<http://www.iana.org/assignments/rtp-parameters>.

[IANA-Lan] IANA, "Language Subtag Registry", <http://www.iana.org/assignments/ language-subtag-registry>.

[IANA Lan]IANA,“语言子标签注册”<http://www.iana.org/assignments/ 语言子标记注册表>。

[RELAX] "RELAX NG Home Page", ISO/IEC 19757-2:2008.

[放松]“放松NG主页”,ISO/IEC 19757-2:2008。

[RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with Session Description Protocol (SDP)", RFC 3264, June 2002.

[RFC3264]Rosenberg,J.和H.Schulzrinne,“具有会话描述协议(SDP)的提供/应答模型”,RFC 3264,2002年6月。

[RFC3515] Sparks, R., "The Session Initiation Protocol (SIP) Refer Method", RFC 3515, April 2003.

[RFC3515]Sparks,R.,“会话启动协议(SIP)引用方法”,RFC3515,2003年4月。

[RFC4353] Rosenberg, J., "A Framework for Conferencing with the Session Initiation Protocol (SIP)", RFC 4353, February 2006.

[RFC4353]Rosenberg,J.,“会话启动协议(SIP)会议框架”,RFC 4353,2006年2月。

[RFC4855] Casner, S., "Media Type Registration of RTP Payload Formats", RFC 4855, February 2007.

[RFC4855]Casner,S.,“RTP有效负载格式的媒体类型注册”,RFC 48552007年2月。

[RFC5018] Camarillo, G., "Connection Establishment in the Binary Floor Control Protocol (BFCP)", RFC 5018, September 2007.

[RFC5018]Camarillo,G.“二进制地板控制协议(BFCP)中的连接建立”,RFC 5018,2007年9月。

[RFC5646] Phillips, A. and M. Davis, "Tags for Identifying Languages", BCP 47, RFC 5646, September 2009.

[RFC5646]Phillips,A.和M.Davis,“识别语言的标记”,BCP 47,RFC 5646,2009年9月。

[W3C.REC-xml-20081126] Bray, T., Paoli, J., Sperberg-McQueen, C., Maler, E., and F. Yergeau, "Extensible Markup Language (XML) 1.0 (Fifth Edition)", World Wide Web Consortium Recommendation REC-xml-20081126, November 2008, <http://www.w3.org/TR/2008/REC-xml-20081126>.

[W3C.REC-xml-20081126]Bray,T.,Paoli,J.,Sperberg McQueen,C.,Maler,E.,和F.Yergeau,“可扩展标记语言(xml)1.0(第五版)”,万维网联盟建议REC-xml-20081126,2008年11月<http://www.w3.org/TR/2008/REC-xml-20081126>.

Appendix A. Non-Normative RELAX NG Schema in XML Syntax
附录A.XML语法中的非规范RELAXNG模式
 <?xml version="1.0" encoding="UTF-8" ?>
    <grammar
           ns="urn:ietf:params:xml:ns:conference-info"
           xmlns="http://relaxng.org/ns/structure/1.0"
           xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info"
           datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
           <start>
            <element name="conference-info">
             <ref name="conference-type"/>
            </element>
           </start>
           <!--
               CONFERENCE TYPE
        
 <?xml version="1.0" encoding="UTF-8" ?>
    <grammar
           ns="urn:ietf:params:xml:ns:conference-info"
           xmlns="http://relaxng.org/ns/structure/1.0"
           xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info"
           datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
           <start>
            <element name="conference-info">
             <ref name="conference-type"/>
            </element>
           </start>
           <!--
               CONFERENCE TYPE
        
           -->
           <define name="conference-type">
            <interleave>
            <attribute name="entity">
             <text/>
            </attribute>
            <ref name="anyAttribute"/>
            <optional>
             <ref name="conference-description-type"/>
            </optional>
            <optional>
             <element name="host-info">
              <ref name="host-type"/>
             </element>
            </optional>
            <optional>
             <element name="conference-state">
              <ref name="conference-state-type"/>
             </element>
            </optional>
            <optional>
             <element name="users">
              <ref name="users-type"/>
             </element>
            </optional>
            <optional>
             <element name="sidebars-by-ref">
              <ref name="uris-type"/>
             </element>
            </optional>
            <optional>
             <element name="sidebars-by-val">
        
           -->
           <define name="conference-type">
            <interleave>
            <attribute name="entity">
             <text/>
            </attribute>
            <ref name="anyAttribute"/>
            <optional>
             <ref name="conference-description-type"/>
            </optional>
            <optional>
             <element name="host-info">
              <ref name="host-type"/>
             </element>
            </optional>
            <optional>
             <element name="conference-state">
              <ref name="conference-state-type"/>
             </element>
            </optional>
            <optional>
             <element name="users">
              <ref name="users-type"/>
             </element>
            </optional>
            <optional>
             <element name="sidebars-by-ref">
              <ref name="uris-type"/>
             </element>
            </optional>
            <optional>
             <element name="sidebars-by-val">
        
              <ref name="sidebars-by-val-type"/>
             </element>
            </optional>
            <optional>
             <element name="xcon:floor-information">
              <ref name="floor-information-type"/>
             </element>
            </optional>
            <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            </interleave>
           </define>
           <!--
               CONFERENCE DESCRIPTION TYPE
           -->
           <define name="conference-description-type">
            <element name="conference-description">
             <interleave>
             <optional>
              <attribute name="xml:lang">
               <data type="language"/>
              </attribute>
             </optional>
             <ref name="anyAttribute"/>
             <optional>
              <element name="display-text">
               <text/>
              </element>
             </optional>
             <optional>
              <element name="subject">
               <text/>
              </element>
             </optional>
             <optional>
              <element name="free-text">
               <text/>
              </element>
             </optional>
             <optional>
              <element name="keywords">
               <list>
                <zeroOrMore>
                 <data type="string"/>
                </zeroOrMore>
               </list>
              </element>
        
              <ref name="sidebars-by-val-type"/>
             </element>
            </optional>
            <optional>
             <element name="xcon:floor-information">
              <ref name="floor-information-type"/>
             </element>
            </optional>
            <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            </interleave>
           </define>
           <!--
               CONFERENCE DESCRIPTION TYPE
           -->
           <define name="conference-description-type">
            <element name="conference-description">
             <interleave>
             <optional>
              <attribute name="xml:lang">
               <data type="language"/>
              </attribute>
             </optional>
             <ref name="anyAttribute"/>
             <optional>
              <element name="display-text">
               <text/>
              </element>
             </optional>
             <optional>
              <element name="subject">
               <text/>
              </element>
             </optional>
             <optional>
              <element name="free-text">
               <text/>
              </element>
             </optional>
             <optional>
              <element name="keywords">
               <list>
                <zeroOrMore>
                 <data type="string"/>
                </zeroOrMore>
               </list>
              </element>
        
             </optional>
             <optional>
              <element name="conf-uris">
               <ref name="uris-type"/>
              </element>
             </optional>
             <optional>
              <element name="service-uris">
                 <ref name="uris-type"/>
              </element>
             </optional>
             <optional>
              <element name="maximum-user-count">
               <data type="int"/>
              </element>
             </optional>
             <optional>
              <element name="available-media">
               <ref name="conference-media-type"/>
              </element>
             </optional>
             <optional>
              <element name="xcon:language">
               <data type="language"/>
              </element>
             </optional>
             <optional>
              <element name="xcon:allow-sidebars">
               <data type="boolean"/>
              </element>
             </optional>
             <optional>
             <element name="xcon:cloning-parent">
              <data type="anyURI"/>
             </element>
             </optional>
             <optional>
             <element name="xcon:sidebar-parent">
              <data type="anyURI"/>
             </element>
             </optional>
             <optional>
              <element name="xcon:conference-time">
               <ref name="conferencetime-type"/>
              </element>
             </optional>
             <zeroOrMore>
              <ref name="anyElement"/>
        
             </optional>
             <optional>
              <element name="conf-uris">
               <ref name="uris-type"/>
              </element>
             </optional>
             <optional>
              <element name="service-uris">
                 <ref name="uris-type"/>
              </element>
             </optional>
             <optional>
              <element name="maximum-user-count">
               <data type="int"/>
              </element>
             </optional>
             <optional>
              <element name="available-media">
               <ref name="conference-media-type"/>
              </element>
             </optional>
             <optional>
              <element name="xcon:language">
               <data type="language"/>
              </element>
             </optional>
             <optional>
              <element name="xcon:allow-sidebars">
               <data type="boolean"/>
              </element>
             </optional>
             <optional>
             <element name="xcon:cloning-parent">
              <data type="anyURI"/>
             </element>
             </optional>
             <optional>
             <element name="xcon:sidebar-parent">
              <data type="anyURI"/>
             </element>
             </optional>
             <optional>
              <element name="xcon:conference-time">
               <ref name="conferencetime-type"/>
              </element>
             </optional>
             <zeroOrMore>
              <ref name="anyElement"/>
        
             </zeroOrMore>
             </interleave>
            </element>
           </define>
           <!--
               HOST TYPE
           -->
           <define name="host-type">
            <interleave>
            <optional>
             <element name="display-text">
              <text/>
             </element>
            </optional>
            <optional>
             <element name="web-page">
              <data type="anyURI"/>
             </element>
            </optional>
            <optional>
             <element name="uris">
              <ref name="uris-type"/>
             </element>
            </optional>
            <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            <ref name="anyAttribute"/>
            </interleave>
           </define>
           <!--
               CONFERENCE STATE TYPE
           -->
           <define name="conference-state-type">
            <interleave>
            <ref name="anyAttribute"/>
            <optional>
             <element name="user-count">
              <data type="unsignedInt"/>
             </element>
            </optional>
            <optional>
             <element name="active">
              <data type="boolean"/>
             </element>
            </optional>
            <optional>
             <element name="locked">
        
             </zeroOrMore>
             </interleave>
            </element>
           </define>
           <!--
               HOST TYPE
           -->
           <define name="host-type">
            <interleave>
            <optional>
             <element name="display-text">
              <text/>
             </element>
            </optional>
            <optional>
             <element name="web-page">
              <data type="anyURI"/>
             </element>
            </optional>
            <optional>
             <element name="uris">
              <ref name="uris-type"/>
             </element>
            </optional>
            <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            <ref name="anyAttribute"/>
            </interleave>
           </define>
           <!--
               CONFERENCE STATE TYPE
           -->
           <define name="conference-state-type">
            <interleave>
            <ref name="anyAttribute"/>
            <optional>
             <element name="user-count">
              <data type="unsignedInt"/>
             </element>
            </optional>
            <optional>
             <element name="active">
              <data type="boolean"/>
             </element>
            </optional>
            <optional>
             <element name="locked">
        
              <data type="boolean"/>
             </element>
            </optional>
            <optional>
             <element name="xcon:allow-conference-event-subscription">
              <data type="boolean"/>
             </element>
            </optional>
            <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            </interleave>
           </define>
           <!--
               CONFERENCE MEDIA TYPE
           -->
           <define name="conference-media-type">
            <interleave>
            <ref name="anyAttribute"/>
            <zeroOrMore>
             <element name="entry">
              <ref name="conference-medium-type"/>
             </element>
            </zeroOrMore>
            <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            </interleave>
           </define>
           <!--
               CONFERENCE MEDIUM TYPE
           -->
           <define name="conference-medium-type">
            <interleave>
            <attribute name="label">
             <text/>
            </attribute>
            <ref name="anyAttribute"/>
            <optional>
             <element name="display-text">
              <text/>
             </element>
            </optional>
            <optional>
             <element name="type">
              <text/>
             </element>
            </optional>
        
              <data type="boolean"/>
             </element>
            </optional>
            <optional>
             <element name="xcon:allow-conference-event-subscription">
              <data type="boolean"/>
             </element>
            </optional>
            <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            </interleave>
           </define>
           <!--
               CONFERENCE MEDIA TYPE
           -->
           <define name="conference-media-type">
            <interleave>
            <ref name="anyAttribute"/>
            <zeroOrMore>
             <element name="entry">
              <ref name="conference-medium-type"/>
             </element>
            </zeroOrMore>
            <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            </interleave>
           </define>
           <!--
               CONFERENCE MEDIUM TYPE
           -->
           <define name="conference-medium-type">
            <interleave>
            <attribute name="label">
             <text/>
            </attribute>
            <ref name="anyAttribute"/>
            <optional>
             <element name="display-text">
              <text/>
             </element>
            </optional>
            <optional>
             <element name="type">
              <text/>
             </element>
            </optional>
        
            <optional>
             <element name="status">
              <ref name="media-status-type"/>
             </element>
            </optional>
            <optional>
             <element name="xcon:mixing-mode">
              <ref name="mixing-mode-type"/>
             </element>
            </optional>
            <optional>
             <element name="xcon:codecs">
              <ref name="codecs-type"/>
             </element>
            </optional>
            <optional>
             <element name="xcon:controls">
              <ref name="control-type"/>
             </element>
            </optional>
            <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            </interleave>
           </define>
           <!--
               URIs TYPE
           -->
           <define name="uris-type">
            <interleave>
            <ref name="anyAttribute"/>
            <zeroOrMore>
             <element name="entry">
              <ref name="uri-type"/>
             </element>
            </zeroOrMore>
            <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            </interleave>
           </define>
           <!--
               URI TYPE
           -->
           <define name="uri-type">
            <interleave>
            <element name="uri">
             <data type="anyURI"/>
        
            <optional>
             <element name="status">
              <ref name="media-status-type"/>
             </element>
            </optional>
            <optional>
             <element name="xcon:mixing-mode">
              <ref name="mixing-mode-type"/>
             </element>
            </optional>
            <optional>
             <element name="xcon:codecs">
              <ref name="codecs-type"/>
             </element>
            </optional>
            <optional>
             <element name="xcon:controls">
              <ref name="control-type"/>
             </element>
            </optional>
            <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            </interleave>
           </define>
           <!--
               URIs TYPE
           -->
           <define name="uris-type">
            <interleave>
            <ref name="anyAttribute"/>
            <zeroOrMore>
             <element name="entry">
              <ref name="uri-type"/>
             </element>
            </zeroOrMore>
            <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            </interleave>
           </define>
           <!--
               URI TYPE
           -->
           <define name="uri-type">
            <interleave>
            <element name="uri">
             <data type="anyURI"/>
        
            </element>
            <optional>
             <element name="display-text">
              <text/>
             </element>
            </optional>
            <optional>
             <element name="purpose">
              <text/>
             </element>
            </optional>
            <optional>
             <element name="modified">
              <ref name="execution-type"/>
             </element>
            </optional>
            <zeroOrMore>
             <element name="xcon:conference-password">
              <text/>
             </element>
            </zeroOrMore>
            <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            <ref name="anyAttribute"/>
           </interleave>
        
            </element>
            <optional>
             <element name="display-text">
              <text/>
             </element>
            </optional>
            <optional>
             <element name="purpose">
              <text/>
             </element>
            </optional>
            <optional>
             <element name="modified">
              <ref name="execution-type"/>
             </element>
            </optional>
            <zeroOrMore>
             <element name="xcon:conference-password">
              <text/>
             </element>
            </zeroOrMore>
            <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            <ref name="anyAttribute"/>
           </interleave>
        
           </define>
           <!--
               USERS TYPE
           -->
           <define name="users-type">
            <interleave>
            <ref name="anyAttribute"/>
            <zeroOrMore>
             <element name="user">
              <ref name="user-type"/>
             </element>
            </zeroOrMore>
            <optional>
             <element name="xcon:join-handling">
              <ref name="join-handling-type"/>
             </element>
            </optional>
            <optional>
             <element name="xcon:user-admission-policy">
              <ref name="user-admission-policy-type"/>
             </element>
        
           </define>
           <!--
               USERS TYPE
           -->
           <define name="users-type">
            <interleave>
            <ref name="anyAttribute"/>
            <zeroOrMore>
             <element name="user">
              <ref name="user-type"/>
             </element>
            </zeroOrMore>
            <optional>
             <element name="xcon:join-handling">
              <ref name="join-handling-type"/>
             </element>
            </optional>
            <optional>
             <element name="xcon:user-admission-policy">
              <ref name="user-admission-policy-type"/>
             </element>
        
            </optional>
            <optional>
             <element name="xcon:allowed-users-list">
              <ref name="allowed-users-list-type"/>
             </element>
            </optional>
            <optional>
             <element name="xcon:deny-users-list">
              <ref name="deny-user-list-type"/>
             </element>
            </optional>
            <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            </interleave>
           </define>
           <!--
               USER TYPE
           -->
           <define name="user-type">
            <interleave>
            <attribute name="entity">
             <data type="anyURI"/>
            </attribute>
            <ref name="anyAttribute"/>
            <optional>
             <element name="display-text">
              <text/>
             </element>
            </optional>
            <optional>
             <element name="associated-aors">
               <ref name="uris-type"/>
             </element>
            </optional>
            <optional>
             <element name="roles">
              <oneOrMore>
               <element name="entry">
                <ref name="single-role-type"/>
               </element>
              </oneOrMore>
             </element>
            </optional>
            <optional>
             <element name="languages">
              <list>
               <data type="language"/>
        
            </optional>
            <optional>
             <element name="xcon:allowed-users-list">
              <ref name="allowed-users-list-type"/>
             </element>
            </optional>
            <optional>
             <element name="xcon:deny-users-list">
              <ref name="deny-user-list-type"/>
             </element>
            </optional>
            <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            </interleave>
           </define>
           <!--
               USER TYPE
           -->
           <define name="user-type">
            <interleave>
            <attribute name="entity">
             <data type="anyURI"/>
            </attribute>
            <ref name="anyAttribute"/>
            <optional>
             <element name="display-text">
              <text/>
             </element>
            </optional>
            <optional>
             <element name="associated-aors">
               <ref name="uris-type"/>
             </element>
            </optional>
            <optional>
             <element name="roles">
              <oneOrMore>
               <element name="entry">
                <ref name="single-role-type"/>
               </element>
              </oneOrMore>
             </element>
            </optional>
            <optional>
             <element name="languages">
              <list>
               <data type="language"/>
        
              </list>
             </element>
            </optional>
            <optional>
             <element name="cascaded-focus">
              <data type="anyURI"/>
             </element>
            </optional>
            <zeroOrMore>
             <element name="endpoint">
              <ref name="endpoint-type"/>
             </element>
            </zeroOrMore>
            <optional>
             <element name="xcon:provide-anonymity">
              <ref name="provide-anonymity-type"/>
             </element>
            </optional>
           <optional>
             <element name="xcon:allow-refer-users-dynamically">
              <data type="boolean"/>
             </element>
            </optional>
            <optional>
             <element name="xcon:allow-invite-users-dynamically">
              <data type="boolean"/>
             </element>
            </optional>
            <optional>
             <element name="xcon:allow-remove-users-dynamically">
              <data type="boolean"/>
             </element>
            </optional>
             <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            </interleave>
           </define>
           <!--
               ENDPOINT TYPE
           -->
           <define name="endpoint-type">
            <interleave>
            <attribute name="entity">
             <text/>
            </attribute>
            <ref name="anyAttribute"/>
            <optional>
        
              </list>
             </element>
            </optional>
            <optional>
             <element name="cascaded-focus">
              <data type="anyURI"/>
             </element>
            </optional>
            <zeroOrMore>
             <element name="endpoint">
              <ref name="endpoint-type"/>
             </element>
            </zeroOrMore>
            <optional>
             <element name="xcon:provide-anonymity">
              <ref name="provide-anonymity-type"/>
             </element>
            </optional>
           <optional>
             <element name="xcon:allow-refer-users-dynamically">
              <data type="boolean"/>
             </element>
            </optional>
            <optional>
             <element name="xcon:allow-invite-users-dynamically">
              <data type="boolean"/>
             </element>
            </optional>
            <optional>
             <element name="xcon:allow-remove-users-dynamically">
              <data type="boolean"/>
             </element>
            </optional>
             <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            </interleave>
           </define>
           <!--
               ENDPOINT TYPE
           -->
           <define name="endpoint-type">
            <interleave>
            <attribute name="entity">
             <text/>
            </attribute>
            <ref name="anyAttribute"/>
            <optional>
        
             <element name="display-text">
              <text/>
             </element>
            </optional>
            <optional>
             <element name="referred">
               <ref name="execution-type"/>
             </element>
            </optional>
            <optional>
             <element name="status">
              <ref name="endpoint-status-type"/>
             </element>
            </optional>
            <optional>
             <element name="joining-method">
              <ref name="joining-type"/>
             </element>
            </optional>
            <optional>
             <element name="joining-info">
               <ref name="execution-type"/>
             </element>
            </optional>
            <optional>
             <element name="disconnection-method">
              <ref name="disconnection-type"/>
             </element>
            </optional>
            <optional>
             <element name="disconnection-info">
              <ref name="execution-type"/>
             </element>
            </optional>
            <zeroOrMore>
             <element name="media">
              <ref name="media-type"/>
             </element>
            </zeroOrMore>
            <optional>
             <element name="call-info">
              <ref name="call-type"/>
             </element>
            </optional>
            <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            </interleave>
        
             <element name="display-text">
              <text/>
             </element>
            </optional>
            <optional>
             <element name="referred">
               <ref name="execution-type"/>
             </element>
            </optional>
            <optional>
             <element name="status">
              <ref name="endpoint-status-type"/>
             </element>
            </optional>
            <optional>
             <element name="joining-method">
              <ref name="joining-type"/>
             </element>
            </optional>
            <optional>
             <element name="joining-info">
               <ref name="execution-type"/>
             </element>
            </optional>
            <optional>
             <element name="disconnection-method">
              <ref name="disconnection-type"/>
             </element>
            </optional>
            <optional>
             <element name="disconnection-info">
              <ref name="execution-type"/>
             </element>
            </optional>
            <zeroOrMore>
             <element name="media">
              <ref name="media-type"/>
             </element>
            </zeroOrMore>
            <optional>
             <element name="call-info">
              <ref name="call-type"/>
             </element>
            </optional>
            <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            </interleave>
        
           </define>
           <!--
               ENDPOINT STATUS TYPE
           -->
           <define name="endpoint-status-type">
            <choice>
             <value>pending</value>
             <value>dialing-out</value>
             <value>dialing-in</value>
             <value>alerting</value>
             <value>on-hold</value>
             <value>connected</value>
             <value>muted-via-focus</value>
             <value>disconnecting</value>
             <value>disconnected</value>
             <ref name="free-text-extension"/>
            </choice>
           </define>
           <!--
               JOINING TYPE
           -->
           <define name="joining-type">
            <choice>
             <value>dialed-in</value>
             <value>dialed-out</value>
             <value>focus-owner</value>
             <ref name="free-text-extension"/>
            </choice>
           </define>
           <!--
               DISCONNECTION TYPE
           -->
           <define name="disconnection-type">
            <choice>
             <value>departed</value>
             <value>booted</value>
             <value>failed</value>
             <value>busy</value>
             <ref name="free-text-extension"/>
            </choice>
           </define>
           <!--
               EXECUTION TYPE
           -->
           <define name="execution-type">
            <interleave>
            <optional>
             <element name="when">
        
           </define>
           <!--
               ENDPOINT STATUS TYPE
           -->
           <define name="endpoint-status-type">
            <choice>
             <value>pending</value>
             <value>dialing-out</value>
             <value>dialing-in</value>
             <value>alerting</value>
             <value>on-hold</value>
             <value>connected</value>
             <value>muted-via-focus</value>
             <value>disconnecting</value>
             <value>disconnected</value>
             <ref name="free-text-extension"/>
            </choice>
           </define>
           <!--
               JOINING TYPE
           -->
           <define name="joining-type">
            <choice>
             <value>dialed-in</value>
             <value>dialed-out</value>
             <value>focus-owner</value>
             <ref name="free-text-extension"/>
            </choice>
           </define>
           <!--
               DISCONNECTION TYPE
           -->
           <define name="disconnection-type">
            <choice>
             <value>departed</value>
             <value>booted</value>
             <value>failed</value>
             <value>busy</value>
             <ref name="free-text-extension"/>
            </choice>
           </define>
           <!--
               EXECUTION TYPE
           -->
           <define name="execution-type">
            <interleave>
            <optional>
             <element name="when">
        
              <data type="dateTime"/>
             </element>
            </optional>
            <optional>
             <element name="reason">
              <text/>
             </element>
            </optional>
            <optional>
             <element name="by">
              <data type="anyURI"/>
             </element>
            </optional>
            <ref name="anyAttribute"/>
            </interleave>
           </define>
           <!--
               CALL TYPE
           -->
           <define name="call-type">
            <interleave>
             <element name="sip">
              <ref name="sip-dialog-id-type"/>
             </element>
             <zeroOrMore>
              <ref name="anyElement"/>
             </zeroOrMore>
             <ref name="anyAttribute"/>
            </interleave>
           </define>
           <!--
               SIP DIALOG ID TYPE
           -->
           <define name="sip-dialog-id-type">
        
              <data type="dateTime"/>
             </element>
            </optional>
            <optional>
             <element name="reason">
              <text/>
             </element>
            </optional>
            <optional>
             <element name="by">
              <data type="anyURI"/>
             </element>
            </optional>
            <ref name="anyAttribute"/>
            </interleave>
           </define>
           <!--
               CALL TYPE
           -->
           <define name="call-type">
            <interleave>
             <element name="sip">
              <ref name="sip-dialog-id-type"/>
             </element>
             <zeroOrMore>
              <ref name="anyElement"/>
             </zeroOrMore>
             <ref name="anyAttribute"/>
            </interleave>
           </define>
           <!--
               SIP DIALOG ID TYPE
           -->
           <define name="sip-dialog-id-type">
        
            <interleave>
            <optional>
            <element name="display-text">
             <text/>
            </element>
            </optional>
            <element name="call-id">
             <text/>
            </element>
            <element name="from-tag">
             <text/>
            </element>
        
            <interleave>
            <optional>
            <element name="display-text">
             <text/>
            </element>
            </optional>
            <element name="call-id">
             <text/>
            </element>
            <element name="from-tag">
             <text/>
            </element>
        
            <element name="to-tag">
             <text/>
            </element>
            <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            <ref name="anyAttribute"/>
            </interleave>
           </define>
           <!--
               MEDIA TYPE
           -->
           <define name="media-type">
            <interleave>
            <attribute name="id">
             <data type="int"/>
            </attribute>
            <ref name="anyAttribute"/>
            <optional>
             <element name="display-text">
              <text/>
             </element>
            </optional>
            <optional>
             <element name="type">
              <text/>
             </element>
            </optional>
            <optional>
             <element name="label">
              <text/>
             </element>
            </optional>
            <optional>
             <element name="src-id">
              <text/>
             </element>
            </optional>
            <optional>
             <element name="status">
              <ref name="media-status-type"/>
             </element>
            </optional>
            <optional>
             <element name="xcon:to-mixer">
              <ref name="mixer-type"/>
             </element>
            </optional>
        
            <element name="to-tag">
             <text/>
            </element>
            <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            <ref name="anyAttribute"/>
            </interleave>
           </define>
           <!--
               MEDIA TYPE
           -->
           <define name="media-type">
            <interleave>
            <attribute name="id">
             <data type="int"/>
            </attribute>
            <ref name="anyAttribute"/>
            <optional>
             <element name="display-text">
              <text/>
             </element>
            </optional>
            <optional>
             <element name="type">
              <text/>
             </element>
            </optional>
            <optional>
             <element name="label">
              <text/>
             </element>
            </optional>
            <optional>
             <element name="src-id">
              <text/>
             </element>
            </optional>
            <optional>
             <element name="status">
              <ref name="media-status-type"/>
             </element>
            </optional>
            <optional>
             <element name="xcon:to-mixer">
              <ref name="mixer-type"/>
             </element>
            </optional>
        
            <optional>
             <element name="xcon:from-mixer">
              <ref name="mixer-type"/>
             </element>
            </optional>
            <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            </interleave>
           </define>
           <!--
               MEDIA STATUS TYPE
           -->
           <define name="media-status-type">
            <choice>
             <value>recvonly</value>
             <value>sendonly</value>
             <value>sendrecv</value>
             <value>inactive</value>
             <ref name="free-text-extension"/>
            </choice>
           </define>
           <!--
               SIDEBARS-BY-VAL TYPE
           -->
           <define name="sidebars-by-val-type">
            <interleave>
            <ref name="anyAttribute"/>
            <zeroOrMore>
             <element name="entry">
              <ref name="conference-type"/>
             </element>
            </zeroOrMore>
            <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            </interleave>
           </define>
           <!--
               CONFERENCE TIME
           -->
           <define name="conferencetime-type">
            <interleave>
            <ref name="anyAttribute"/>
            <zeroOrMore>
             <element name="xcon:entry">
              <element name="xcon:base">
               <text/>
        
            <optional>
             <element name="xcon:from-mixer">
              <ref name="mixer-type"/>
             </element>
            </optional>
            <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            </interleave>
           </define>
           <!--
               MEDIA STATUS TYPE
           -->
           <define name="media-status-type">
            <choice>
             <value>recvonly</value>
             <value>sendonly</value>
             <value>sendrecv</value>
             <value>inactive</value>
             <ref name="free-text-extension"/>
            </choice>
           </define>
           <!--
               SIDEBARS-BY-VAL TYPE
           -->
           <define name="sidebars-by-val-type">
            <interleave>
            <ref name="anyAttribute"/>
            <zeroOrMore>
             <element name="entry">
              <ref name="conference-type"/>
             </element>
            </zeroOrMore>
            <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            </interleave>
           </define>
           <!--
               CONFERENCE TIME
           -->
           <define name="conferencetime-type">
            <interleave>
            <ref name="anyAttribute"/>
            <zeroOrMore>
             <element name="xcon:entry">
              <element name="xcon:base">
               <text/>
        
              </element>
              <optional>
               <element name="xcon:mixing-start-offset">
                 <ref name="time-type"/>
                 <attribute name="required-participant">
                  <ref name="single-role-type"/>
                 </attribute>
                <ref name="anyAttribute"/>
               </element>
              </optional>
              <optional>
               <element name="xcon:mixing-end-offset">
                <ref name="time-type"/>
                <attribute name="required-participant">
                 <ref name="single-role-type"/>
                </attribute>
                <ref name="anyAttribute"/>
               </element>
              </optional>
              <optional>
               <element name="xcon:can-join-after-offset">
                <ref name="time-type"/>
               </element>
              </optional>
              <optional>
               <element name="xcon:must-join-before-offset">
                <ref name="time-type"/>
               </element>
              </optional>
              <optional>
               <element name="xcon:request-user">
                <ref name="time-type"/>
               </element>
              </optional>
              <optional>
               <element name="xcon:notify-end-of-conference">
                <data type="nonNegativeInteger"/>
               </element>
              </optional>
              <optional>
               <element name="xcon:allowed-extend-mixing-end-offset">
                <data type="boolean"/>
               </element>
              </optional>
              <zeroOrMore>
               <ref name="anyElement"/>
              </zeroOrMore>
             </element>
        
              </element>
              <optional>
               <element name="xcon:mixing-start-offset">
                 <ref name="time-type"/>
                 <attribute name="required-participant">
                  <ref name="single-role-type"/>
                 </attribute>
                <ref name="anyAttribute"/>
               </element>
              </optional>
              <optional>
               <element name="xcon:mixing-end-offset">
                <ref name="time-type"/>
                <attribute name="required-participant">
                 <ref name="single-role-type"/>
                </attribute>
                <ref name="anyAttribute"/>
               </element>
              </optional>
              <optional>
               <element name="xcon:can-join-after-offset">
                <ref name="time-type"/>
               </element>
              </optional>
              <optional>
               <element name="xcon:must-join-before-offset">
                <ref name="time-type"/>
               </element>
              </optional>
              <optional>
               <element name="xcon:request-user">
                <ref name="time-type"/>
               </element>
              </optional>
              <optional>
               <element name="xcon:notify-end-of-conference">
                <data type="nonNegativeInteger"/>
               </element>
              </optional>
              <optional>
               <element name="xcon:allowed-extend-mixing-end-offset">
                <data type="boolean"/>
               </element>
              </optional>
              <zeroOrMore>
               <ref name="anyElement"/>
              </zeroOrMore>
             </element>
        
            </zeroOrMore>
            </interleave>
           </define>
           <!--
               TIME TYPE
           -->
           <define name="time-type">
             <data type="dateTime">
               <param name="pattern">.+T.+Z.*</param>
             </data>
           </define>
           <!--
               SINGLE ROLE TYPE
           -->
           <define name="single-role-type">
            <choice>
             <value type="string">none</value>
             <value type="string">administrator</value>
             <value type="string">moderator</value>
             <value type="string">user</value>
             <value type="string">observer</value>
             <value type="string">participant</value>
             <ref name="free-text-extension"/>
            </choice>
           </define>
           <!--
               MIXING MODE TYPE
           -->
           <define name="mixing-mode-type">
            <choice>
             <value type="string">moderator-controlled</value>
             <value type="string">FCFS</value>
             <value type="string">automatic</value>
             <ref name="free-text-extension"/>
            </choice>
           </define>
           <!--
               CODECS TYPE
           -->
           <define name="codecs-type">
            <interleave>
            <attribute name="decision">
             <ref name="decision-type"/>
            </attribute>
            <ref name="anyAttribute"/>
            <zeroOrMore>
             <element name="xcon:codec">
              <ref name="codec-type"/>
        
            </zeroOrMore>
            </interleave>
           </define>
           <!--
               TIME TYPE
           -->
           <define name="time-type">
             <data type="dateTime">
               <param name="pattern">.+T.+Z.*</param>
             </data>
           </define>
           <!--
               SINGLE ROLE TYPE
           -->
           <define name="single-role-type">
            <choice>
             <value type="string">none</value>
             <value type="string">administrator</value>
             <value type="string">moderator</value>
             <value type="string">user</value>
             <value type="string">observer</value>
             <value type="string">participant</value>
             <ref name="free-text-extension"/>
            </choice>
           </define>
           <!--
               MIXING MODE TYPE
           -->
           <define name="mixing-mode-type">
            <choice>
             <value type="string">moderator-controlled</value>
             <value type="string">FCFS</value>
             <value type="string">automatic</value>
             <ref name="free-text-extension"/>
            </choice>
           </define>
           <!--
               CODECS TYPE
           -->
           <define name="codecs-type">
            <interleave>
            <attribute name="decision">
             <ref name="decision-type"/>
            </attribute>
            <ref name="anyAttribute"/>
            <zeroOrMore>
             <element name="xcon:codec">
              <ref name="codec-type"/>
        
             </element>
            </zeroOrMore>
            <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            </interleave>
           </define>
           <!--
               CODEC TYPE
           -->
           <define name="codec-type">
            <interleave>
            <attribute name="name">
             <text/>
            </attribute>
            <attribute name="policy">
             <ref name="policy-type"/>
            </attribute>
            <ref name="anyAttribute"/>
            <optional>
             <element name="xcon:subtype">
              <text/>
             </element>
            </optional>
            <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            </interleave>
           </define>
           <!--
               DECISION TYPE
           -->
           <define name="decision-type">
            <choice>
             <value type="string">automatic</value>
             <value type="string">moderator-controlled</value>
             <ref name="free-text-extension"/>
            </choice>
           </define>
           <!--
               POLICY TYPE
           -->
           <define name="policy-type">
            <choice>
             <value type="string">allowed</value>
             <value type="string">disallowed</value>
             <ref name="free-text-extension"/>
            </choice>
        
             </element>
            </zeroOrMore>
            <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            </interleave>
           </define>
           <!--
               CODEC TYPE
           -->
           <define name="codec-type">
            <interleave>
            <attribute name="name">
             <text/>
            </attribute>
            <attribute name="policy">
             <ref name="policy-type"/>
            </attribute>
            <ref name="anyAttribute"/>
            <optional>
             <element name="xcon:subtype">
              <text/>
             </element>
            </optional>
            <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            </interleave>
           </define>
           <!--
               DECISION TYPE
           -->
           <define name="decision-type">
            <choice>
             <value type="string">automatic</value>
             <value type="string">moderator-controlled</value>
             <ref name="free-text-extension"/>
            </choice>
           </define>
           <!--
               POLICY TYPE
           -->
           <define name="policy-type">
            <choice>
             <value type="string">allowed</value>
             <value type="string">disallowed</value>
             <ref name="free-text-extension"/>
            </choice>
        
           </define>
           <!--
               CONTROL TYPE
           -->
           <define name="control-type">
            <interleave>
            <ref name="anyAttribute"/>
            <optional>
             <element name="xcon:mute">
              <data type="boolean"/>
             </element>
            </optional>
            <optional>
             <element name="xcon:pause-video">
              <data type="boolean"/>
             </element>
            </optional>
            <optional>
             <element name="xcon:gain">
              <ref name="gain-type"/>
             </element>
            </optional>
            <optional>
             <element name="xcon:video-layout">
              <ref name="video-layout-type"/>
             </element>
            </optional>
        
           </define>
           <!--
               CONTROL TYPE
           -->
           <define name="control-type">
            <interleave>
            <ref name="anyAttribute"/>
            <optional>
             <element name="xcon:mute">
              <data type="boolean"/>
             </element>
            </optional>
            <optional>
             <element name="xcon:pause-video">
              <data type="boolean"/>
             </element>
            </optional>
            <optional>
             <element name="xcon:gain">
              <ref name="gain-type"/>
             </element>
            </optional>
            <optional>
             <element name="xcon:video-layout">
              <ref name="video-layout-type"/>
             </element>
            </optional>
        
            <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            </interleave>
           </define>
           <!--
               GAIN TYPE
           -->
           <define name="gain-type">
             <data type="int">
               <param name="minInclusive">-127</param>
               <param name="maxInclusive">127</param>
             </data>
           </define>
           <!--
               VIDEO LAYOUT TYPE
           -->
        
            <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            </interleave>
           </define>
           <!--
               GAIN TYPE
           -->
           <define name="gain-type">
             <data type="int">
               <param name="minInclusive">-127</param>
               <param name="maxInclusive">127</param>
             </data>
           </define>
           <!--
               VIDEO LAYOUT TYPE
           -->
        
           <define name="video-layout-type">
              <choice>
               <value type="string">single-view</value>
               <value type="string">dual-view</value>
               <value type="string">dual-view-crop</value>
               <value type="string">dual-view-2x1</value>
               <value type="string">dual-view-2x1-crop</value>
               <value type="string">quad-view</value>
               <value type="string">multiple-3x3</value>
               <value type="string">multiple-4x4</value>
               <value type="string">multiple-5x1</value>
               <value type="string">automatic</value>
               <ref name="free-text-extension"/>
              </choice>
           </define>
           <!--
               FLOOR INFORMATION TYPE
           -->
           <define name="floor-information-type">
            <interleave>
            <ref name="anyAttribute"/>
            <optional>
             <element name="xcon:conference-ID">
              <data type="unsignedLong"/>
             </element>
            </optional>
            <optional>
             <element name="xcon:allow-floor-events">
              <data type="boolean"/>
             </element>
            </optional>
            <optional>
             <element name="xcon:floor-request-handling">
              <ref name="floor-request-type"/>
             </element>
            </optional>
            <optional>
             <element name="xcon:conference-floor-policy">
              <ref name="conference-floor-policy"/>
             </element>
            </optional>
            <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            </interleave>
           </define>
           <!--
               FLOOR REQUEST TYPE
        
           <define name="video-layout-type">
              <choice>
               <value type="string">single-view</value>
               <value type="string">dual-view</value>
               <value type="string">dual-view-crop</value>
               <value type="string">dual-view-2x1</value>
               <value type="string">dual-view-2x1-crop</value>
               <value type="string">quad-view</value>
               <value type="string">multiple-3x3</value>
               <value type="string">multiple-4x4</value>
               <value type="string">multiple-5x1</value>
               <value type="string">automatic</value>
               <ref name="free-text-extension"/>
              </choice>
           </define>
           <!--
               FLOOR INFORMATION TYPE
           -->
           <define name="floor-information-type">
            <interleave>
            <ref name="anyAttribute"/>
            <optional>
             <element name="xcon:conference-ID">
              <data type="unsignedLong"/>
             </element>
            </optional>
            <optional>
             <element name="xcon:allow-floor-events">
              <data type="boolean"/>
             </element>
            </optional>
            <optional>
             <element name="xcon:floor-request-handling">
              <ref name="floor-request-type"/>
             </element>
            </optional>
            <optional>
             <element name="xcon:conference-floor-policy">
              <ref name="conference-floor-policy"/>
             </element>
            </optional>
            <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            </interleave>
           </define>
           <!--
               FLOOR REQUEST TYPE
        
           -->
           <define name="floor-request-type">
            <choice>
             <value type="string">block</value>
             <value type="string">confirm</value>
             <ref name="free-text-extension"/>
            </choice>
           </define>
           <!--
               CONFERENCE FLOOR POLICY
           -->
           <define name="conference-floor-policy">
            <interleave>
            <ref name="anyAttribute"/>
            <oneOrMore>
             <element name="xcon:floor">
              <interleave>
              <attribute name="id">
               <text/>
              </attribute>
              <ref name="anyAttribute"/>
              <oneOrMore>
               <element name="xcon:media-label">
                <data type="nonNegativeInteger"/>
               </element>
              </oneOrMore>
              <optional>
               <element name="xcon:algorithm">
                <ref name="algorithm-type"/>
               </element>
              </optional>
              <optional>
               <element name="xcon:max-floor-users">
                <data type="nonNegativeInteger"/>
               </element>
              </optional>
              <optional>
               <element name="xcon:moderator-id">
                <data type="nonNegativeInteger"/>
               </element>
              </optional>
              <zeroOrMore>
               <ref name="anyElement"/>
              </zeroOrMore>
              </interleave>
             </element>
            </oneOrMore>
            </interleave>
        
           -->
           <define name="floor-request-type">
            <choice>
             <value type="string">block</value>
             <value type="string">confirm</value>
             <ref name="free-text-extension"/>
            </choice>
           </define>
           <!--
               CONFERENCE FLOOR POLICY
           -->
           <define name="conference-floor-policy">
            <interleave>
            <ref name="anyAttribute"/>
            <oneOrMore>
             <element name="xcon:floor">
              <interleave>
              <attribute name="id">
               <text/>
              </attribute>
              <ref name="anyAttribute"/>
              <oneOrMore>
               <element name="xcon:media-label">
                <data type="nonNegativeInteger"/>
               </element>
              </oneOrMore>
              <optional>
               <element name="xcon:algorithm">
                <ref name="algorithm-type"/>
               </element>
              </optional>
              <optional>
               <element name="xcon:max-floor-users">
                <data type="nonNegativeInteger"/>
               </element>
              </optional>
              <optional>
               <element name="xcon:moderator-id">
                <data type="nonNegativeInteger"/>
               </element>
              </optional>
              <zeroOrMore>
               <ref name="anyElement"/>
              </zeroOrMore>
              </interleave>
             </element>
            </oneOrMore>
            </interleave>
        
           </define>
           <!--
               ALGORITHM POLICY
           -->
           <define name="algorithm-type">
            <choice>
             <value type="string">moderator-controlled</value>
             <value type="string">FCFS</value>
             <value type="string">random</value>
             <ref name="free-text-extension"/>
            </choice>
           </define>
           <!--
               USERS ADMISSION POLICY
           -->
           <define name="user-admission-policy-type">
            <choice>
             <value type="string">closedAuthenticated</value>
             <value type="string">openAuthenticated</value>
             <value type="string">anonymous</value>
             <ref name="free-text-extension"/>
            </choice>
        
           </define>
           <!--
               ALGORITHM POLICY
           -->
           <define name="algorithm-type">
            <choice>
             <value type="string">moderator-controlled</value>
             <value type="string">FCFS</value>
             <value type="string">random</value>
             <ref name="free-text-extension"/>
            </choice>
           </define>
           <!--
               USERS ADMISSION POLICY
           -->
           <define name="user-admission-policy-type">
            <choice>
             <value type="string">closedAuthenticated</value>
             <value type="string">openAuthenticated</value>
             <value type="string">anonymous</value>
             <ref name="free-text-extension"/>
            </choice>
        
           </define>
           <!--
               JOIN HANDLING TYPE
           -->
           <define name="join-handling-type">
            <choice>
             <value type="string">block</value>
             <value type="string">confirm</value>
             <value type="string">allow</value>
             <value type="string">authenticate</value>
             <value type="string">directed-operator</value>
             <ref name="free-text-extension"/>
            </choice>
           </define>
           <!--
               DENY USERLIST
           -->
           <define name="deny-user-list-type">
            <interleave>
            <ref name="anyAttribute"/>
            <zeroOrMore>
             <element name="xcon:target">
              <attribute name="uri">
               <data type="anyURI"/>
              </attribute>
        
           </define>
           <!--
               JOIN HANDLING TYPE
           -->
           <define name="join-handling-type">
            <choice>
             <value type="string">block</value>
             <value type="string">confirm</value>
             <value type="string">allow</value>
             <value type="string">authenticate</value>
             <value type="string">directed-operator</value>
             <ref name="free-text-extension"/>
            </choice>
           </define>
           <!--
               DENY USERLIST
           -->
           <define name="deny-user-list-type">
            <interleave>
            <ref name="anyAttribute"/>
            <zeroOrMore>
             <element name="xcon:target">
              <attribute name="uri">
               <data type="anyURI"/>
              </attribute>
        
              <ref name="anyAttribute"/>
             </element>
            </zeroOrMore>
            <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            </interleave>
           </define>
           <!--
               ALLOWED USERS LIST TYPE
           -->
           <define name="allowed-users-list-type">
            <interleave>
            <ref name="anyAttribute"/>
            <zeroOrMore>
             <element name="xcon:target">
              <ref name="target-type"/>
             </element>
            </zeroOrMore>
            <optional>
             <element name="xcon:persistent-list">
              <ref name="persistent-list-type"/>
             </element>
            </optional>
            <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            </interleave>
           </define>
           <!--
               PERSISTENT LIST TYPE
           -->
           <define name="persistent-list-type">
            <interleave>
              <zeroOrMore>
               <element name="xcon:user">
                <interleave>
                <attribute name="name">
                 <text/>
                </attribute>
                <attribute name="nickname">
                 <text/>
                </attribute>
                <attribute name="id">
                 <text/>
                </attribute>
                <ref name="anyAttribute"/>
                <zeroOrMore>
        
              <ref name="anyAttribute"/>
             </element>
            </zeroOrMore>
            <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            </interleave>
           </define>
           <!--
               ALLOWED USERS LIST TYPE
           -->
           <define name="allowed-users-list-type">
            <interleave>
            <ref name="anyAttribute"/>
            <zeroOrMore>
             <element name="xcon:target">
              <ref name="target-type"/>
             </element>
            </zeroOrMore>
            <optional>
             <element name="xcon:persistent-list">
              <ref name="persistent-list-type"/>
             </element>
            </optional>
            <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            </interleave>
           </define>
           <!--
               PERSISTENT LIST TYPE
           -->
           <define name="persistent-list-type">
            <interleave>
              <zeroOrMore>
               <element name="xcon:user">
                <interleave>
                <attribute name="name">
                 <text/>
                </attribute>
                <attribute name="nickname">
                 <text/>
                </attribute>
                <attribute name="id">
                 <text/>
                </attribute>
                <ref name="anyAttribute"/>
                <zeroOrMore>
        
                 <element name="xcon:e-mail">
                  <text/>
                 </element>
                </zeroOrMore>
                <zeroOrMore>
                 <ref name="anyElement"/>
                </zeroOrMore>
                </interleave>
               </element>
             </zeroOrMore>
             <zeroOrMore>
              <ref name="anyElement"/>
             </zeroOrMore>
            </interleave>
           </define>
           <!--
               TARGET TYPE
           -->
           <define name="target-type">
            <attribute name="uri">
             <data type="anyURI"/>
            </attribute>
            <attribute name="method">
             <ref name="method-type"/>
            </attribute>
            <ref name="anyAttribute"/>
           </define>
           <!--
               METHOD TYPE
           -->
           <define name="method-type">
            <choice>
             <value type="string">dial-in</value>
             <value type="string">dial-out</value>
             <value type="string">refer</value>
             <ref name="free-text-extension"/>
            </choice>
           </define>
           <!--
               ANONYMITY TYPE
           -->
           <define name="provide-anonymity-type">
              <choice>
               <value>private</value>
               <value>semi-private</value>
               <value>hidden</value>
               <ref name="free-text-extension"/>
              </choice>
        
                 <element name="xcon:e-mail">
                  <text/>
                 </element>
                </zeroOrMore>
                <zeroOrMore>
                 <ref name="anyElement"/>
                </zeroOrMore>
                </interleave>
               </element>
             </zeroOrMore>
             <zeroOrMore>
              <ref name="anyElement"/>
             </zeroOrMore>
            </interleave>
           </define>
           <!--
               TARGET TYPE
           -->
           <define name="target-type">
            <attribute name="uri">
             <data type="anyURI"/>
            </attribute>
            <attribute name="method">
             <ref name="method-type"/>
            </attribute>
            <ref name="anyAttribute"/>
           </define>
           <!--
               METHOD TYPE
           -->
           <define name="method-type">
            <choice>
             <value type="string">dial-in</value>
             <value type="string">dial-out</value>
             <value type="string">refer</value>
             <ref name="free-text-extension"/>
            </choice>
           </define>
           <!--
               ANONYMITY TYPE
           -->
           <define name="provide-anonymity-type">
              <choice>
               <value>private</value>
               <value>semi-private</value>
               <value>hidden</value>
               <ref name="free-text-extension"/>
              </choice>
        
           </define>
           <!--
               MIXER TYPE
           -->
           <define name="mixer-type">
            <interleave>
            <attribute name="name">
             <ref name="mixer-name-type"/>
            </attribute>
        
           </define>
           <!--
               MIXER TYPE
           -->
           <define name="mixer-type">
            <interleave>
            <attribute name="name">
             <ref name="mixer-name-type"/>
            </attribute>
        
            <ref name="anyAttribute"/>
            <zeroOrMore>
             <element name="xcon:floor">
              <attribute name="id">
               <text/>
              </attribute>
              <ref name="anyAttribute"/>
              <data type="boolean"/>
             </element>
            </zeroOrMore>
            <zeroOrMore>
             <element name="xcon:controls">
              <ref name="control-type"/>
             </element>
            </zeroOrMore>
            <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            </interleave>
           </define>
           <!--
               MIXER NAME TYPE
           -->
           <define name="mixer-name-type">
             <choice>
              <value>VideoIn</value>
              <value>VideoOut</value>
              <value>AudioOut</value>
              <value>AudioIn</value>
              <ref name="free-text-extension"/>
             </choice>
           </define>
           <!--
               FREE TEXT EXTENSION
           -->
           <define name="free-text-extension">
            <text/>
           </define>
        
            <ref name="anyAttribute"/>
            <zeroOrMore>
             <element name="xcon:floor">
              <attribute name="id">
               <text/>
              </attribute>
              <ref name="anyAttribute"/>
              <data type="boolean"/>
             </element>
            </zeroOrMore>
            <zeroOrMore>
             <element name="xcon:controls">
              <ref name="control-type"/>
             </element>
            </zeroOrMore>
            <zeroOrMore>
             <ref name="anyElement"/>
            </zeroOrMore>
            </interleave>
           </define>
           <!--
               MIXER NAME TYPE
           -->
           <define name="mixer-name-type">
             <choice>
              <value>VideoIn</value>
              <value>VideoOut</value>
              <value>AudioOut</value>
              <value>AudioIn</value>
              <ref name="free-text-extension"/>
             </choice>
           </define>
           <!--
               FREE TEXT EXTENSION
           -->
           <define name="free-text-extension">
            <text/>
           </define>
        
           <!--
            *********************************
            EXTENSIBILITY OF THE SCHEMA
            *********************************
           -->
           <!--
               EXTENSIBILITY ELEMENTS
           -->
           <define name="anyElement">
            <element>
             <anyName>
              <except>
               <name>conference-description</name>
               <name>host-info</name>
               <name>conference-state</name>
               <name>users</name>
               <name>sidebars-by-ref</name>
               <name>sidebars-by-val</name>
               <name>display-text</name>
               <name>subject</name>
               <name>free-text</name>
               <name>keywords</name>
               <name>conf-uris</name>
               <name>service-uris</name>
               <name>maximum-user-count</name>
               <name>available-media</name>
               <name>web-page</name>
               <name>uris</name>
               <name>uri</name>
               <name>user-count</name>
               <name>active</name>
               <name>locked</name>
               <name>entry</name>
               <name>type</name>
               <name>status</name>
               <name>purpose</name>
               <name>modified</name>
               <name>user</name>
               <name>associated-aors</name>
               <name>roles</name>
               <name>languages</name>
               <name>cascaded-focus</name>
               <name>endpoint</name>
               <name>referred</name>
               <name>joining-method</name>
               <name>joining-info</name>
               <name>disconnection-method</name>
               <name>disconnection-info</name>
        
           <!--
            *********************************
            EXTENSIBILITY OF THE SCHEMA
            *********************************
           -->
           <!--
               EXTENSIBILITY ELEMENTS
           -->
           <define name="anyElement">
            <element>
             <anyName>
              <except>
               <name>conference-description</name>
               <name>host-info</name>
               <name>conference-state</name>
               <name>users</name>
               <name>sidebars-by-ref</name>
               <name>sidebars-by-val</name>
               <name>display-text</name>
               <name>subject</name>
               <name>free-text</name>
               <name>keywords</name>
               <name>conf-uris</name>
               <name>service-uris</name>
               <name>maximum-user-count</name>
               <name>available-media</name>
               <name>web-page</name>
               <name>uris</name>
               <name>uri</name>
               <name>user-count</name>
               <name>active</name>
               <name>locked</name>
               <name>entry</name>
               <name>type</name>
               <name>status</name>
               <name>purpose</name>
               <name>modified</name>
               <name>user</name>
               <name>associated-aors</name>
               <name>roles</name>
               <name>languages</name>
               <name>cascaded-focus</name>
               <name>endpoint</name>
               <name>referred</name>
               <name>joining-method</name>
               <name>joining-info</name>
               <name>disconnection-method</name>
               <name>disconnection-info</name>
        
               <name>media</name>
               <name>call-info</name>
               <name>when</name>
               <name>reason</name>
               <name>by</name>
               <name>sip</name>
               <name>call-id</name>
               <name>from-tag</name>
               <name>to-tag</name>
               <name>label</name>
               <name>src-id</name>
               <name>xcon:conference-password</name>
               <name>xcon:mixing-mode</name>
               <name>xcon:codecs</name>
               <name>xcon:controls</name>
               <name>xcon:language</name>
               <name>xcon:allow-sidebars</name>
               <name>xcon:cloning-parent</name>
               <name>xcon:sidebar-parent</name>
               <name>xcon:allow-conference-event-subscription</name>
               <name>xcon:to-mixer</name>
               <name>xcon:provide-anonymity</name>
               <name>xcon:allow-refer-users-dynamically</name>
               <name>xcon:allow-invite-users-dynamically</name>
               <name>xcon:allow-remove-users-dynamically</name>
               <name>xcon:from-mixer</name>
               <name>xcon:join-handling</name>
               <name>xcon:user-admission-policy</name>
               <name>xcon:allowed-users-list</name>
               <name>xcon:deny-users-list</name>
               <name>xcon:floor-information</name>
               <name>xcon:conference-time</name>
               <name>xcon:provide-anonymity</name>
               <name>xcon:floor</name>
               <name>xcon:entry</name>
               <name>xcon:mixing-start-offset</name>
               <name>xcon:mixing-end-offset</name>
               <name>xcon:can-join-after-offset</name>
               <name>xcon:must-join-before-offset</name>
               <name>xcon:request-user</name>
               <name>xcon:notify-end-of-conference</name>
               <name>xcon:allowed-extend-mixing-end-offset</name>
               <name>xcon:codec</name>
               <name>xcon:subtype</name>
               <name>xcon:mute</name>
               <name>xcon:pause-video</name>
               <name>xcon:gain</name>
               <name>xcon:video-layout</name>
        
               <name>media</name>
               <name>call-info</name>
               <name>when</name>
               <name>reason</name>
               <name>by</name>
               <name>sip</name>
               <name>call-id</name>
               <name>from-tag</name>
               <name>to-tag</name>
               <name>label</name>
               <name>src-id</name>
               <name>xcon:conference-password</name>
               <name>xcon:mixing-mode</name>
               <name>xcon:codecs</name>
               <name>xcon:controls</name>
               <name>xcon:language</name>
               <name>xcon:allow-sidebars</name>
               <name>xcon:cloning-parent</name>
               <name>xcon:sidebar-parent</name>
               <name>xcon:allow-conference-event-subscription</name>
               <name>xcon:to-mixer</name>
               <name>xcon:provide-anonymity</name>
               <name>xcon:allow-refer-users-dynamically</name>
               <name>xcon:allow-invite-users-dynamically</name>
               <name>xcon:allow-remove-users-dynamically</name>
               <name>xcon:from-mixer</name>
               <name>xcon:join-handling</name>
               <name>xcon:user-admission-policy</name>
               <name>xcon:allowed-users-list</name>
               <name>xcon:deny-users-list</name>
               <name>xcon:floor-information</name>
               <name>xcon:conference-time</name>
               <name>xcon:provide-anonymity</name>
               <name>xcon:floor</name>
               <name>xcon:entry</name>
               <name>xcon:mixing-start-offset</name>
               <name>xcon:mixing-end-offset</name>
               <name>xcon:can-join-after-offset</name>
               <name>xcon:must-join-before-offset</name>
               <name>xcon:request-user</name>
               <name>xcon:notify-end-of-conference</name>
               <name>xcon:allowed-extend-mixing-end-offset</name>
               <name>xcon:codec</name>
               <name>xcon:subtype</name>
               <name>xcon:mute</name>
               <name>xcon:pause-video</name>
               <name>xcon:gain</name>
               <name>xcon:video-layout</name>
        
               <name>xcon:conference-ID</name>
               <name>xcon:allow-floor-events</name>
               <name>xcon:floor-request-handling</name>
               <name>xcon:conference-floor-policy</name>
               <name>xcon:media-label</name>
               <name>xcon:algorithm</name>
               <name>xcon:max-floor-users</name>
               <name>xcon:moderator-id</name>
               <name>xcon:target</name>
               <name>xcon:persistent-list</name>
               <name>xcon:e-mail</name>
               <name>xcon:user</name>
              </except>
             </anyName>
             <ref name="anyExtension"/>
            </element>
           </define>
        
               <name>xcon:conference-ID</name>
               <name>xcon:allow-floor-events</name>
               <name>xcon:floor-request-handling</name>
               <name>xcon:conference-floor-policy</name>
               <name>xcon:media-label</name>
               <name>xcon:algorithm</name>
               <name>xcon:max-floor-users</name>
               <name>xcon:moderator-id</name>
               <name>xcon:target</name>
               <name>xcon:persistent-list</name>
               <name>xcon:e-mail</name>
               <name>xcon:user</name>
              </except>
             </anyName>
             <ref name="anyExtension"/>
            </element>
           </define>
        
           <define name="anyExtension">
            <zeroOrMore>
             <choice>
              <attribute>
               <anyName/>
              </attribute>
              <ref name="any"/>
             </choice>
            </zeroOrMore>
           </define>
        
           <define name="anyExtension">
            <zeroOrMore>
             <choice>
              <attribute>
               <anyName/>
              </attribute>
              <ref name="any"/>
             </choice>
            </zeroOrMore>
           </define>
        
           <define name="any">
            <element>
             <anyName/>
             <zeroOrMore>
              <choice>
               <attribute>
                <anyName/>
               </attribute>
               <text/>
               <ref name="any"/>
              </choice>
             </zeroOrMore>
           </element>
           </define>
        
           <define name="any">
            <element>
             <anyName/>
             <zeroOrMore>
              <choice>
               <attribute>
                <anyName/>
               </attribute>
               <text/>
               <ref name="any"/>
              </choice>
             </zeroOrMore>
           </element>
           </define>
        

<!-- EXTENSIBILITY ATTRIBUTES -->

<!-- 扩展性属性-->

           <define name="anyAttribute">
            <zeroOrMore>
             <attribute>
              <anyName>
               <except>
                <name ns="http://www.w3.org/XML/1998/namespace">lang
                </name>
                <name ns="">entity</name>
                <name ns="">required-participant</name>
                <name ns="">label</name>
                <name ns="">decision</name>
                <name ns="">name</name>
                <name ns="">policy</name>
                <name ns="">uri</name>
                <name ns="">method</name>
                <name ns="">id</name>
                <name ns="">nickname</name>
               </except>
              </anyName>
             </attribute>
            </zeroOrMore>
           </define>
          </grammar>
        
           <define name="anyAttribute">
            <zeroOrMore>
             <attribute>
              <anyName>
               <except>
                <name ns="http://www.w3.org/XML/1998/namespace">lang
                </name>
                <name ns="">entity</name>
                <name ns="">required-participant</name>
                <name ns="">label</name>
                <name ns="">decision</name>
                <name ns="">name</name>
                <name ns="">policy</name>
                <name ns="">uri</name>
                <name ns="">method</name>
                <name ns="">id</name>
                <name ns="">nickname</name>
               </except>
              </anyName>
             </attribute>
            </zeroOrMore>
           </define>
          </grammar>
        
Appendix B. Non-Normative W3C XML Schema
附录B.非标准W3C XML模式

The non-normative W3C XML schema defines extension elements in the "urn:ietf:params:xml:ns:xcon-conference-info" namespace. Note that <xs:any> extensions in this schema are stricter than in the normative RELAX NG schema [RELAX], and the normative RELAX NG schema [RELAX] allows unordered child elements unlike this schema (and the [RFC4575] schema). Also, note that this schema allows otherwise valid extension elements to appear in the non-allowed positions. Likewise, the cardinalities of these extension elements cannot be constrained with this schema.

非标准的W3CXML模式在“urn:ietf:params:XML:ns:xcon会议信息”命名空间中定义扩展元素。请注意,此模式中的<xs:any>扩展比标准RELAX NG模式[RELAX]更严格,并且标准RELAX NG模式[RELAX]允许与此模式(以及[RFC4575]模式)不同的无序子元素。另外,请注意,此模式允许其他有效的扩展元素出现在不允许的位置。同样,这些扩展元素的基数不能用这个模式约束。

<?xml version="1.0" encoding="UTF-8"?>
  <xs:schema
     xmlns="urn:ietf:params:xml:ns:xcon-conference-info"
     xmlns:info="urn:ietf:params:xml:ns:conference-info"
     xmlns:xs="http://www.w3.org/2001/XMLSchema"
     attributeFormDefault="unqualified" elementFormDefault="qualified"
     targetNamespace="urn:ietf:params:xml:ns:xcon-conference-info">
        
<?xml version="1.0" encoding="UTF-8"?>
  <xs:schema
     xmlns="urn:ietf:params:xml:ns:xcon-conference-info"
     xmlns:info="urn:ietf:params:xml:ns:conference-info"
     xmlns:xs="http://www.w3.org/2001/XMLSchema"
     attributeFormDefault="unqualified" elementFormDefault="qualified"
     targetNamespace="urn:ietf:params:xml:ns:xcon-conference-info">
        
    <xs:import namespace="urn:ietf:params:xml:ns:conference-info"
      schemaLocation="rfc4575.xsd"/>
        
    <xs:import namespace="urn:ietf:params:xml:ns:conference-info"
      schemaLocation="rfc4575.xsd"/>
        
    <xs:import namespace="http://www.w3.org/XML/1998/namespace"
      schemaLocation="http://www.w3.org/2001/03/xml.xsd"/>
        
    <xs:import namespace="http://www.w3.org/XML/1998/namespace"
      schemaLocation="http://www.w3.org/2001/03/xml.xsd"/>
        
    <xs:element name="mixing-mode" type="mixing-mode-type"/>
    <xs:element name="codecs" type="codecs-type"/>
    <xs:element name="conference-password" type="xs:string"/>
    <xs:element name="controls" type="controls-type"/>
    <xs:element name="language" type="xs:language"/>
    <xs:element name="allow-sidebars" type="xs:boolean"/>
    <xs:element name="cloning-parent" type="xs:anyURI"/>
    <xs:element name="sidebar-parent" type="xs:anyURI"/>
    <xs:element name="conference-time" type="conference-time-type"/>
    <xs:element name="allow-conference-event-subscription"
      type="xs:boolean"/>
    <xs:element name="to-mixer" type="mixer-type"/>
    <xs:element name="provide-anonymity"
      type="provide-anonymity-type"/>
    <xs:element name="allow-refer-users-dynamically"
      type="xs:boolean"/>
    <xs:element name="allow-invite-users-dynamically"
      type="xs:boolean"/>
    <xs:element name="allow-remove-users-dynamically"
      type="xs:boolean"/>
    <xs:element name="from-mixer" type="mixer-type"/>
    <xs:element name="join-handling" type="join-handling-type"/>
        
    <xs:element name="mixing-mode" type="mixing-mode-type"/>
    <xs:element name="codecs" type="codecs-type"/>
    <xs:element name="conference-password" type="xs:string"/>
    <xs:element name="controls" type="controls-type"/>
    <xs:element name="language" type="xs:language"/>
    <xs:element name="allow-sidebars" type="xs:boolean"/>
    <xs:element name="cloning-parent" type="xs:anyURI"/>
    <xs:element name="sidebar-parent" type="xs:anyURI"/>
    <xs:element name="conference-time" type="conference-time-type"/>
    <xs:element name="allow-conference-event-subscription"
      type="xs:boolean"/>
    <xs:element name="to-mixer" type="mixer-type"/>
    <xs:element name="provide-anonymity"
      type="provide-anonymity-type"/>
    <xs:element name="allow-refer-users-dynamically"
      type="xs:boolean"/>
    <xs:element name="allow-invite-users-dynamically"
      type="xs:boolean"/>
    <xs:element name="allow-remove-users-dynamically"
      type="xs:boolean"/>
    <xs:element name="from-mixer" type="mixer-type"/>
    <xs:element name="join-handling" type="join-handling-type"/>
        
    <xs:element name="user-admission-policy"
      type="user-admission-policy-type"/>
    <xs:element name="allowed-users-list"
      type="allowed-users-list-type"/>
    <xs:element name="deny-users-list" type="deny-users-list-type"/>
    <xs:element name="floor-information" type="floor-information-type"/>
        
    <xs:element name="user-admission-policy"
      type="user-admission-policy-type"/>
    <xs:element name="allowed-users-list"
      type="allowed-users-list-type"/>
    <xs:element name="deny-users-list" type="deny-users-list-type"/>
    <xs:element name="floor-information" type="floor-information-type"/>
        
    <!-- CONFERENCE TIME -->
        
    <!-- CONFERENCE TIME -->
        
    <xs:complexType name="conference-time-type">
      <xs:sequence>
        <xs:element name="entry"
          minOccurs="0" maxOccurs="unbounded">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="base"
                type="xs:string" minOccurs="1"/>
              <xs:element name="mixing-start-offset" minOccurs="0">
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:extension base="time-type">
                     <xs:attribute name="required-participant"
                       type="role-type" use="required"/>
                      <xs:anyAttribute namespace="##any"
                        processContents="lax"/>
                    </xs:extension>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="mixing-end-offset" minOccurs="0">
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:extension base="time-type">
                      <xs:attribute name="required-participant"
                        type="role-type" use="required"/>
                      <xs:anyAttribute namespace="##any"
                        processContents="lax"/>
                    </xs:extension>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="can-join-after-offset" type="time-type"
                minOccurs="0"/>
              <xs:element name="must-join-before-offset"
                type="time-type" minOccurs="0"/>
              <xs:element name="request-user" type="time-type"
                minOccurs="0"/>
              <xs:element name="notify-end-of-conference"
        
    <xs:complexType name="conference-time-type">
      <xs:sequence>
        <xs:element name="entry"
          minOccurs="0" maxOccurs="unbounded">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="base"
                type="xs:string" minOccurs="1"/>
              <xs:element name="mixing-start-offset" minOccurs="0">
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:extension base="time-type">
                     <xs:attribute name="required-participant"
                       type="role-type" use="required"/>
                      <xs:anyAttribute namespace="##any"
                        processContents="lax"/>
                    </xs:extension>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="mixing-end-offset" minOccurs="0">
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:extension base="time-type">
                      <xs:attribute name="required-participant"
                        type="role-type" use="required"/>
                      <xs:anyAttribute namespace="##any"
                        processContents="lax"/>
                    </xs:extension>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="can-join-after-offset" type="time-type"
                minOccurs="0"/>
              <xs:element name="must-join-before-offset"
                type="time-type" minOccurs="0"/>
              <xs:element name="request-user" type="time-type"
                minOccurs="0"/>
              <xs:element name="notify-end-of-conference"
        
                type="xs:nonNegativeInteger" minOccurs="0"/>
              <xs:element name="allowed-extend-mixing-end-offset"
                type="xs:boolean" minOccurs="0"/>
              <xs:any namespace="##other" processContents="lax"
                minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace="##other" processContents="lax"
          minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:anyAttribute namespace="##any" processContents="lax"/>
    </xs:complexType>
        
                type="xs:nonNegativeInteger" minOccurs="0"/>
              <xs:element name="allowed-extend-mixing-end-offset"
                type="xs:boolean" minOccurs="0"/>
              <xs:any namespace="##other" processContents="lax"
                minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace="##other" processContents="lax"
          minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:anyAttribute namespace="##any" processContents="lax"/>
    </xs:complexType>
        
    <!-- TIME TYPE -->
        
    <!-- TIME TYPE -->
        
     <xs:simpleType name="time-type">
      <xs:restriction base="xs:dateTime">
        <xs:pattern value=".+T.+Z.*"/>
       </xs:restriction>
     </xs:simpleType>
        
     <xs:simpleType name="time-type">
      <xs:restriction base="xs:dateTime">
        <xs:pattern value=".+T.+Z.*"/>
       </xs:restriction>
     </xs:simpleType>
        
    <!-- ROLE-TYPE -->
        
    <!-- ROLE-TYPE -->
        
    <xs:simpleType name="role-type">
     <xs:restriction base="xs:string">
      <xs:pattern value="none"/>
      <xs:pattern value="administrator"/>
      <xs:pattern value="moderator"/>
      <xs:pattern value="user"/>
      <xs:pattern value="observer"/>
      <xs:pattern value="participant"/>
      <xs:pattern value=".+"/>
     </xs:restriction>
    </xs:simpleType>
        
    <xs:simpleType name="role-type">
     <xs:restriction base="xs:string">
      <xs:pattern value="none"/>
      <xs:pattern value="administrator"/>
      <xs:pattern value="moderator"/>
      <xs:pattern value="user"/>
      <xs:pattern value="observer"/>
      <xs:pattern value="participant"/>
      <xs:pattern value=".+"/>
     </xs:restriction>
    </xs:simpleType>
        
    <!-- MIXING MODE TYPE -->
        
    <!-- MIXING MODE TYPE -->
        
    <xs:simpleType name="mixing-mode-type">
      <xs:restriction base="xs:string">
        <xs:pattern value="moderator-controlled"/>
        <xs:pattern value="FCFS"/>
        <xs:pattern value="automatic"/>
        <xs:pattern value=".+"/>
      </xs:restriction>
    </xs:simpleType>
        
    <xs:simpleType name="mixing-mode-type">
      <xs:restriction base="xs:string">
        <xs:pattern value="moderator-controlled"/>
        <xs:pattern value="FCFS"/>
        <xs:pattern value="automatic"/>
        <xs:pattern value=".+"/>
      </xs:restriction>
    </xs:simpleType>
        
    <!-- CODECS TYPE -->
        
    <!-- CODECS TYPE -->
        
    <xs:complexType name="codecs-type">
      <xs:sequence>
        <xs:element name="codec" type="codec-type"/>
        <xs:any namespace="##other" processContents="lax"
          minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="decision"
        type="decision-type" use="required"/>
      <xs:anyAttribute namespace="##any" processContents="lax"/>
    </xs:complexType>
        
    <xs:complexType name="codecs-type">
      <xs:sequence>
        <xs:element name="codec" type="codec-type"/>
        <xs:any namespace="##other" processContents="lax"
          minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="decision"
        type="decision-type" use="required"/>
      <xs:anyAttribute namespace="##any" processContents="lax"/>
    </xs:complexType>
        
    <!-- CODEC TYPE -->
        
    <!-- CODEC TYPE -->
        
    <xs:complexType name="codec-type">
      <xs:sequence>
        <xs:element name="subtype" type="xs:string" minOccurs="0"/>
        <xs:any namespace="##other" processContents="lax"
          minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="name"
        type="xs:string" use="required"/>
      <xs:attribute name="policy"
        type="policy-type" use="required"/>
      <xs:anyAttribute namespace="##any" processContents="lax"/>
    </xs:complexType>
        
    <xs:complexType name="codec-type">
      <xs:sequence>
        <xs:element name="subtype" type="xs:string" minOccurs="0"/>
        <xs:any namespace="##other" processContents="lax"
          minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="name"
        type="xs:string" use="required"/>
      <xs:attribute name="policy"
        type="policy-type" use="required"/>
      <xs:anyAttribute namespace="##any" processContents="lax"/>
    </xs:complexType>
        
    <!-- DECISION TYPE -->
        
    <!-- DECISION TYPE -->
        
    <xs:simpleType name="decision-type">
      <xs:restriction base="xs:string">
        <xs:pattern value="automatic"/>
        <xs:pattern value="moderator-controlled"/>
        <xs:pattern value=".+"/>
      </xs:restriction>
    </xs:simpleType>
        
    <xs:simpleType name="decision-type">
      <xs:restriction base="xs:string">
        <xs:pattern value="automatic"/>
        <xs:pattern value="moderator-controlled"/>
        <xs:pattern value=".+"/>
      </xs:restriction>
    </xs:simpleType>
        
    <!-- POLICY TYPE -->
        
    <!-- POLICY TYPE -->
        
     <xs:simpleType name="policy-type">
      <xs:restriction base="xs:string">
        <xs:pattern value="allowed"/>
        <xs:pattern value="disallowed"/>
        <xs:pattern value=".+"/>
      </xs:restriction>
     </xs:simpleType>
        
     <xs:simpleType name="policy-type">
      <xs:restriction base="xs:string">
        <xs:pattern value="allowed"/>
        <xs:pattern value="disallowed"/>
        <xs:pattern value=".+"/>
      </xs:restriction>
     </xs:simpleType>
        
    <!-- CONTROL TYPE -->
        
    <!-- CONTROL TYPE -->
        
    <xs:complexType name="controls-type">
      <xs:sequence>
        <xs:element name="mute"
          type="xs:boolean" minOccurs="0"/>
        <xs:element name="pause-video"
          type="xs:boolean" minOccurs="0"/>
        <xs:element name="gain"
          type="gain-type" minOccurs="0"/>
        <xs:element name="video-layout"
          type="video-layout-type" default="single-view" minOccurs="0"/>
        
    <xs:complexType name="controls-type">
      <xs:sequence>
        <xs:element name="mute"
          type="xs:boolean" minOccurs="0"/>
        <xs:element name="pause-video"
          type="xs:boolean" minOccurs="0"/>
        <xs:element name="gain"
          type="gain-type" minOccurs="0"/>
        <xs:element name="video-layout"
          type="video-layout-type" default="single-view" minOccurs="0"/>
        
        <xs:any namespace="##other" processContents="lax"
          minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:anyAttribute namespace="##any" processContents="lax"/>
    </xs:complexType>
        
        <xs:any namespace="##other" processContents="lax"
          minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:anyAttribute namespace="##any" processContents="lax"/>
    </xs:complexType>
        
    <!-- GAIN TYPE -->
        
    <!-- GAIN TYPE -->
        
    <xs:simpleType name="gain-type">
      <xs:restriction base="xs:integer">
        <xs:minInclusive value="-127"/>
        <xs:maxInclusive value="127"/>
      </xs:restriction>
    </xs:simpleType>
        
    <xs:simpleType name="gain-type">
      <xs:restriction base="xs:integer">
        <xs:minInclusive value="-127"/>
        <xs:maxInclusive value="127"/>
      </xs:restriction>
    </xs:simpleType>
        
    <!-- VIDEO LAYOUT TYPE -->
        
    <!-- VIDEO LAYOUT TYPE -->
        
    <xs:simpleType name="video-layout-type">
      <xs:restriction base="xs:string">
        <xs:pattern value="single-view"/>
        <xs:pattern value="dual-view"/>
        <xs:pattern value="dual-view-crop"/>
        <xs:pattern value="dual-view-2x1"/>
        <xs:pattern value="dual-view-2x1-crop"/>
        <xs:pattern value="quad-view"/>
        <xs:pattern value="multiple-3x3"/>
        <xs:pattern value="multiple-4x4"/>
        
    <xs:simpleType name="video-layout-type">
      <xs:restriction base="xs:string">
        <xs:pattern value="single-view"/>
        <xs:pattern value="dual-view"/>
        <xs:pattern value="dual-view-crop"/>
        <xs:pattern value="dual-view-2x1"/>
        <xs:pattern value="dual-view-2x1-crop"/>
        <xs:pattern value="quad-view"/>
        <xs:pattern value="multiple-3x3"/>
        <xs:pattern value="multiple-4x4"/>
        
        <xs:pattern value="multiple-5x1"/>
        <xs:pattern value="automatic"/>
        <xs:pattern value=".+"/>
      </xs:restriction>
    </xs:simpleType>
        
        <xs:pattern value="multiple-5x1"/>
        <xs:pattern value="automatic"/>
        <xs:pattern value=".+"/>
      </xs:restriction>
    </xs:simpleType>
        
    <!-- FLOOR INFORMATION TYPE -->
        
    <!-- FLOOR INFORMATION TYPE -->
        
    <xs:complexType name="floor-information-type">
      <xs:sequence>
        <xs:element name="conference-ID"
          type="xs:unsignedLong" minOccurs="0"/>
        <xs:element name="allow-floor-events"
          type="xs:boolean" default="false" minOccurs="0"/>
        <xs:element name="floor-request-handling"
          type="floor-request-handling-type" minOccurs="0"/>
        <xs:element name="conference-floor-policy"
          type="conference-floor-policy" minOccurs="0"/>
        <xs:any namespace="##other" processContents="lax"
          minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:anyAttribute namespace="##any" processContents="lax"/>
    </xs:complexType>
        
    <xs:complexType name="floor-information-type">
      <xs:sequence>
        <xs:element name="conference-ID"
          type="xs:unsignedLong" minOccurs="0"/>
        <xs:element name="allow-floor-events"
          type="xs:boolean" default="false" minOccurs="0"/>
        <xs:element name="floor-request-handling"
          type="floor-request-handling-type" minOccurs="0"/>
        <xs:element name="conference-floor-policy"
          type="conference-floor-policy" minOccurs="0"/>
        <xs:any namespace="##other" processContents="lax"
          minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:anyAttribute namespace="##any" processContents="lax"/>
    </xs:complexType>
        
    <!-- FLOOR REQUEST TYPE -->
        
    <!-- FLOOR REQUEST TYPE -->
        
    <xs:simpleType name="floor-request-handling-type">
      <xs:restriction base="xs:string">
        <xs:pattern value="block"/>
        <xs:pattern value="confirm"/>
        <xs:pattern value=".+"/>
      </xs:restriction>
    </xs:simpleType>
        
    <xs:simpleType name="floor-request-handling-type">
      <xs:restriction base="xs:string">
        <xs:pattern value="block"/>
        <xs:pattern value="confirm"/>
        <xs:pattern value=".+"/>
      </xs:restriction>
    </xs:simpleType>
        
    <!-- CONFERENCE FLOOR POLICY -->
        
    <!-- CONFERENCE FLOOR POLICY -->
        
    <xs:complexType name="conference-floor-policy">
      <xs:sequence>
        <xs:element name="floor" maxOccurs="unbounded">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="media-label"
                type="xs:string" minOccurs="1" maxOccurs="unbounded"/>
              <xs:element name="algorithm"
                type="algorithm-type" minOccurs="0"/>
              <xs:element name="max-floor-users"
                type="xs:nonNegativeInteger" minOccurs="0"/>
              <xs:element name="moderator-id"
                type="xs:nonNegativeInteger" minOccurs="0"/>
                <xs:any namespace="##other" processContents="lax"
                  minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:attribute name="id" type="xs:string" use="required"/>
            <xs:anyAttribute namespace="##any" processContents="lax"/>
          </xs:complexType>
        </xs:element>
        
    <xs:complexType name="conference-floor-policy">
      <xs:sequence>
        <xs:element name="floor" maxOccurs="unbounded">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="media-label"
                type="xs:string" minOccurs="1" maxOccurs="unbounded"/>
              <xs:element name="algorithm"
                type="algorithm-type" minOccurs="0"/>
              <xs:element name="max-floor-users"
                type="xs:nonNegativeInteger" minOccurs="0"/>
              <xs:element name="moderator-id"
                type="xs:nonNegativeInteger" minOccurs="0"/>
                <xs:any namespace="##other" processContents="lax"
                  minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:attribute name="id" type="xs:string" use="required"/>
            <xs:anyAttribute namespace="##any" processContents="lax"/>
          </xs:complexType>
        </xs:element>
        
      </xs:sequence>
      <xs:anyAttribute namespace="##any" processContents="lax"/>
    </xs:complexType>
        
      </xs:sequence>
      <xs:anyAttribute namespace="##any" processContents="lax"/>
    </xs:complexType>
        
    <!-- ALGORITHM TYPE -->
        
    <!-- ALGORITHM TYPE -->
        
    <xs:simpleType name="algorithm-type">
      <xs:restriction base="xs:string">
        <xs:pattern value="moderator-controlled"/>
        <xs:pattern value="FCFS"/>
        <xs:pattern value="random"/>
        <xs:pattern value=".+"/>
      </xs:restriction>
    </xs:simpleType>
        
    <xs:simpleType name="algorithm-type">
      <xs:restriction base="xs:string">
        <xs:pattern value="moderator-controlled"/>
        <xs:pattern value="FCFS"/>
        <xs:pattern value="random"/>
        <xs:pattern value=".+"/>
      </xs:restriction>
    </xs:simpleType>
        
    <!-- USER ADMISSION POLICY TYPE -->
        
    <!-- USER ADMISSION POLICY TYPE -->
        
    <xs:simpleType name="user-admission-policy-type">
      <xs:restriction base="xs:string">
        <xs:pattern value="closedAuthenticated"/>
        <xs:pattern value="openAuthenticated"/>
        <xs:pattern value="anonymous"/>
        <xs:pattern value=".+"/>
      </xs:restriction>
    </xs:simpleType>
        
    <xs:simpleType name="user-admission-policy-type">
      <xs:restriction base="xs:string">
        <xs:pattern value="closedAuthenticated"/>
        <xs:pattern value="openAuthenticated"/>
        <xs:pattern value="anonymous"/>
        <xs:pattern value=".+"/>
      </xs:restriction>
    </xs:simpleType>
        
    <!-- JOIN HANDLING TYPE -->
        
    <!-- JOIN HANDLING TYPE -->
        
    <xs:simpleType name="join-handling-type">
      <xs:restriction base="xs:string">
        <xs:pattern value="block"/>
        <xs:pattern value="confirm"/>
        <xs:pattern value="allow"/>
        <xs:pattern value="authenticate"/>
        <xs:pattern value="directed-operator"/>
        <xs:pattern value=".+"/>
       </xs:restriction>
    </xs:simpleType>
        
    <xs:simpleType name="join-handling-type">
      <xs:restriction base="xs:string">
        <xs:pattern value="block"/>
        <xs:pattern value="confirm"/>
        <xs:pattern value="allow"/>
        <xs:pattern value="authenticate"/>
        <xs:pattern value="directed-operator"/>
        <xs:pattern value=".+"/>
       </xs:restriction>
    </xs:simpleType>
        
   <!-- DENY USER LIST TYPE -->
        
   <!-- DENY USER LIST TYPE -->
        
    <xs:complexType name="deny-users-list-type">
      <xs:sequence>
        <xs:element name="target" minOccurs="0" maxOccurs="unbounded">
          <xs:complexType>
            <xs:attribute name="uri" use="required" type="xs:anyURI"/>
            <xs:anyAttribute namespace="##any" processContents="lax"/>
          </xs:complexType>
        
    <xs:complexType name="deny-users-list-type">
      <xs:sequence>
        <xs:element name="target" minOccurs="0" maxOccurs="unbounded">
          <xs:complexType>
            <xs:attribute name="uri" use="required" type="xs:anyURI"/>
            <xs:anyAttribute namespace="##any" processContents="lax"/>
          </xs:complexType>
        
        </xs:element>
        <xs:any namespace="##other" processContents="lax"
          minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:anyAttribute namespace="##any" processContents="lax"/>
    </xs:complexType>
        
        </xs:element>
        <xs:any namespace="##other" processContents="lax"
          minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:anyAttribute namespace="##any" processContents="lax"/>
    </xs:complexType>
        
     <!-- ALLOWED USERS LIST TYPE -->
        
     <!-- ALLOWED USERS LIST TYPE -->
        
    <xs:complexType name="allowed-users-list-type">
      <xs:sequence>
        <xs:element name="target" type="target-type"
          minOccurs="0" maxOccurs="unbounded">
        </xs:element>
        <xs:element name="persistent-list"
          type="persistent-list-type"
          minOccurs="0"/>
        <xs:any namespace="##other" processContents="lax"
          minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:anyAttribute namespace="##any" processContents="lax"/>
    </xs:complexType>
        
    <xs:complexType name="allowed-users-list-type">
      <xs:sequence>
        <xs:element name="target" type="target-type"
          minOccurs="0" maxOccurs="unbounded">
        </xs:element>
        <xs:element name="persistent-list"
          type="persistent-list-type"
          minOccurs="0"/>
        <xs:any namespace="##other" processContents="lax"
          minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:anyAttribute namespace="##any" processContents="lax"/>
    </xs:complexType>
        
    <!-- PERSISTENT LIST TYPE -->
        
    <!-- PERSISTENT LIST TYPE -->
        
    <xs:complexType name="persistent-list-type">
      <xs:sequence>
        <xs:element name="user" minOccurs="0" maxOccurs="unbounded">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="email" type="xs:string"
                minOccurs="0" maxOccurs="unbounded"/>
              <xs:any namespace="##other" processContents="lax"
                minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:attribute name="name"
              use="required" type="xs:anyURI"/>
            <xs:attribute name="nickname"
              use="required" type="xs:string"/>
            <xs:attribute name="id"
              use="required" type="xs:string"/>
            <xs:anyAttribute namespace="##any" processContents="lax"/>
          </xs:complexType>
        </xs:element>
        <xs:any namespace="##other" processContents="lax"
          minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:anyAttribute namespace="##any" processContents="lax"/>
        
    <xs:complexType name="persistent-list-type">
      <xs:sequence>
        <xs:element name="user" minOccurs="0" maxOccurs="unbounded">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="email" type="xs:string"
                minOccurs="0" maxOccurs="unbounded"/>
              <xs:any namespace="##other" processContents="lax"
                minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:attribute name="name"
              use="required" type="xs:anyURI"/>
            <xs:attribute name="nickname"
              use="required" type="xs:string"/>
            <xs:attribute name="id"
              use="required" type="xs:string"/>
            <xs:anyAttribute namespace="##any" processContents="lax"/>
          </xs:complexType>
        </xs:element>
        <xs:any namespace="##other" processContents="lax"
          minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:anyAttribute namespace="##any" processContents="lax"/>
        
    </xs:complexType>
        
    </xs:complexType>
        
    <!-- TARGET TYPE -->
        
    <!-- TARGET TYPE -->
        
    <xs:complexType name="target-type">
      <xs:attribute name="uri" use="required"
        type="xs:anyURI"/>
      <xs:attribute name="method" use="required"
        type="method-type"/>
      <xs:anyAttribute namespace="##any" processContents="lax"/>
    </xs:complexType>
        
    <xs:complexType name="target-type">
      <xs:attribute name="uri" use="required"
        type="xs:anyURI"/>
      <xs:attribute name="method" use="required"
        type="method-type"/>
      <xs:anyAttribute namespace="##any" processContents="lax"/>
    </xs:complexType>
        
    <!-- METHOD TYPE -->
        
    <!-- METHOD TYPE -->
        
    <xs:simpleType name="method-type">
      <xs:restriction base="xs:string">
        <xs:pattern value="dial-in"/>
        <xs:pattern value="dial-out"/>
        <xs:pattern value="refer"/>
        <xs:pattern value=".+"/>
      </xs:restriction>
    </xs:simpleType>
        
    <xs:simpleType name="method-type">
      <xs:restriction base="xs:string">
        <xs:pattern value="dial-in"/>
        <xs:pattern value="dial-out"/>
        <xs:pattern value="refer"/>
        <xs:pattern value=".+"/>
      </xs:restriction>
    </xs:simpleType>
        
    <!-- ANONYMITY TYPE -->
        
    <!-- ANONYMITY TYPE -->
        
    <xs:simpleType name="provide-anonymity-type">
      <xs:restriction base="xs:string">
        <xs:pattern value="private"/>
        <xs:pattern value="semi-private"/>
        <xs:pattern value="hidden"/>
        <xs:pattern value=".+"/>
      </xs:restriction>
    </xs:simpleType>
        
    <xs:simpleType name="provide-anonymity-type">
      <xs:restriction base="xs:string">
        <xs:pattern value="private"/>
        <xs:pattern value="semi-private"/>
        <xs:pattern value="hidden"/>
        <xs:pattern value=".+"/>
      </xs:restriction>
    </xs:simpleType>
        
    <!-- MIXER TYPE -->
        
    <!-- MIXER TYPE -->
        
    <xs:complexType name="mixer-type">
      <xs:sequence>
        <xs:element name="floor">
          <xs:complexType>
            <xs:simpleContent>
              <xs:extension base="xs:boolean">
                <xs:attribute name="id" type="xs:string"
                  use="required"/>
                <xs:anyAttribute namespace="##any"
                  processContents="lax"/>
              </xs:extension>
            </xs:simpleContent>
        
    <xs:complexType name="mixer-type">
      <xs:sequence>
        <xs:element name="floor">
          <xs:complexType>
            <xs:simpleContent>
              <xs:extension base="xs:boolean">
                <xs:attribute name="id" type="xs:string"
                  use="required"/>
                <xs:anyAttribute namespace="##any"
                  processContents="lax"/>
              </xs:extension>
            </xs:simpleContent>
        
          </xs:complexType>
        </xs:element>
        <xs:element name="controls" type="controls-type"
          minOccurs="0" maxOccurs="unbounded"/>
        <xs:any namespace="##other" processContents="lax"
          minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="name" type="mixer-name-type"
        use="required"/>
      <xs:anyAttribute namespace="##any" processContents="lax"/>
    </xs:complexType>
        
          </xs:complexType>
        </xs:element>
        <xs:element name="controls" type="controls-type"
          minOccurs="0" maxOccurs="unbounded"/>
        <xs:any namespace="##other" processContents="lax"
          minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="name" type="mixer-name-type"
        use="required"/>
      <xs:anyAttribute namespace="##any" processContents="lax"/>
    </xs:complexType>
        
    <!-- MIXER NAME TYPE -->
        
    <!-- MIXER NAME TYPE -->
        
    <xs:simpleType name="mixer-name-type">
      <xs:restriction base="xs:string">
        <xs:pattern value="VideoIn"/>
        <xs:pattern value="VideoOut"/>
        <xs:pattern value="AudioOut"/>
        <xs:pattern value="AudioIn"/>
        <xs:pattern value=".+"/>
      </xs:restriction>
    </xs:simpleType>
        
    <xs:simpleType name="mixer-name-type">
      <xs:restriction base="xs:string">
        <xs:pattern value="VideoIn"/>
        <xs:pattern value="VideoOut"/>
        <xs:pattern value="AudioOut"/>
        <xs:pattern value="AudioIn"/>
        <xs:pattern value=".+"/>
      </xs:restriction>
    </xs:simpleType>
        
  </xs:schema>
        
  </xs:schema>
        

Authors' Addresses

作者地址

Oscar Novo Ericsson Hirsalantie 11 Jorvas 02420 Finland

Oscar Novo Ericsson Hirsalantie 11 Jorvas 02420芬兰

   EMail: Oscar.Novo@ericsson.com
        
   EMail: Oscar.Novo@ericsson.com
        

Gonzalo Camarillo Ericsson Hirsalantie 11 Jorvas 02420 Finland

Gonzalo Camarillo Ericsson Hirsalantie 11 Jorvas 02420芬兰

   EMail: Gonzalo.Camarillo@ericsson.com
        
   EMail: Gonzalo.Camarillo@ericsson.com
        

David P. Morgan Fidelity Investments 82 Devonshire St, MZ V3C Boston, MA 02109-3614 USA

David P.Morgan Fidelity Investments美国马萨诸塞州波士顿市德文郡街82号MZ V3C邮编:02109-3614

   EMail: Dave.Morgan@fmr.com
        
   EMail: Dave.Morgan@fmr.com
        

Jari Urpalainen Nokia Itamerenkatu 11-13 Helsinki 00180 Finland

芬兰赫尔辛基乌尔帕莱宁诺基亚伊塔梅伦卡图11-13 00180

   Phone: +358 7180 37686
   EMail: jari.urpalainen@nokia.com
        
   Phone: +358 7180 37686
   EMail: jari.urpalainen@nokia.com