XCON O. Novo Internet-Draft G. Camarillo Intended status: Informational Ericsson Expires: September 4, 2007 D. Morgan Fidelity Investments R. Even Polycom March 3, 2007 Conference Information Data Model for Centralized Conferencing (XCON) draft-ietf-xcon-common-data-model-04.txt Status of this Memo By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on September 4, 2007. Copyright Notice Copyright (C) The IETF Trust (2007). Abstract This document defines an Extensible Markup Language (XML)-based conference information data model for centralized conferencing (XCON). A conference object, which can be manipulated using a conference control protocol, at a conference server represents a Novo, et al. Expires September 4, 2007 [Page 1] Internet-Draft Data Model Schema March 2007 particular instantiation of this data model. The conference information data model defined in this document is an extension of (and thus, compatible with) the model specified in the Session Initiation Protocol (SIP) Event Package for Conference State. Novo, et al. Expires September 4, 2007 [Page 2] Internet-Draft Data Model Schema March 2007 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 6 3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.1. Data Model Structure . . . . . . . . . . . . . . . . . . . 6 3.2. Conference Policies . . . . . . . . . . . . . . . . . . . 7 3.2.1. Role Definitions . . . . . . . . . . . . . . . . . . . 8 3.2.1.1. Role in a Floor . . . . . . . . . . . . . . . . . 8 3.2.1.2. Changing Roles . . . . . . . . . . . . . . . . . . 9 4. Data Model Definition . . . . . . . . . . . . . . . . . . . . 9 4.1. . . . . . . . . . . . . . . . . . 13 4.1.1. . . . . . . . . . . . . . . . . . . 14 4.1.2. . . . . . . . . . . . . . . . . . . . . . 15 4.1.3. . . . . . . . . . . . . . . . . . . . . 16 4.1.4. . . . . . . . . . . . . . . . . . 16 4.1.5. . . . . . . . . . . . . . . . . . . 16 4.1.5.1. . . . . . . . . . . . . . . . . . . . . 17 4.1.5.1.1. mute . . . . . . . . . . . . . . . . . . . . . 17 4.1.5.1.2. pause-video . . . . . . . . . . . . . . . . . 17 4.1.5.1.3. gain . . . . . . . . . . . . . . . . . . . . . 18 4.1.5.1.4. video-layout . . . . . . . . . . . . . . . . . 18 4.2. . . . . . . . . . . . . . . . . . . . . . . . 19 4.3. . . . . . . . . . . . . . . . . . . . . 19 4.4. . . . . . . . . . . . . . . . . . . . 19 4.5. . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.5.1. . . . . . . . . . . . . . . . . . 22 4.5.2. . . . . . . . . . . . . . . . . . . . . . . . . 22 4.5.2.1. , . . . . . . . . . . . . . 23 4.5.2.1.1. . . . . . . . . . . . . . . . . . . . 23 4.5.3. . . . . . . . . . . . . . . . . . . 24 4.5.4. . . . . . . . . . . . . . . . . . . 24 5. RELAX NG Schema . . . . . . . . . . . . . . . . . . . . . . . 24 6. XML Schema Extensibility . . . . . . . . . . . . . . . . . . . 33 7. XML Example . . . . . . . . . . . . . . . . . . . . . . . . . 33 8. Security Considerations . . . . . . . . . . . . . . . . . . . 42 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 42 9.1. Conference Relax NG Schema Registration . . . . . . . . . 42 9.2. Conference Namespace Registration . . . . . . . . . . . . 43 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 43 11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 43 11.1. Normative References . . . . . . . . . . . . . . . . . . . 43 11.2. Informative References . . . . . . . . . . . . . . . . . . 43 Appendix A. Appendix A. Non-Normative RELAX NG Schema in XML Syntax . . . . . . . . . . . . . . . . . . . . . . . 44 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 69 Intellectual Property and Copyright Statements . . . . . . . . . . 71 Novo, et al. Expires September 4, 2007 [Page 3] Internet-Draft Data Model Schema March 2007 1. Introduction Conference objects are a fundamental concept in Centralized conferencing, as described in the XCON Conferencing Framework [1]. A conference object contains data that represents a conference during each of its various stages (e.g., reserved, started, running, ended, etc.). Conference Objects are instantiations of the conference information data model defined in this document. Consequently, conference objects follow the XML format defined in this document. A conference object contains the core information of a conference (i.e., capabilities, membership, roles, call control signaling, media, etc.) and specifies who, and in which way, can manipulate that information. Figure 1 shows logical functional elements of a conference server as defined by the XCON Conferencing Framework [1]. They are a Conference Control Server, a Floor Control Server, a number of Foci, and a Notification Service. A conference control protocol provides the interface between a conference and media control client, and the conference control server. A floor control protocol (e.g., BFCP [7]) provides the interface between a floor control client and the floor control server. A call signaling protocol (e.g., SIP, H.323, PSTN, etc.) provides the interface between a call signaling client and a Focus. A notification protocol (e.g., SIP-based event notifications [8]) provides the interface between the conferencing client and the Notification Service. Within a conference, the conference control server, floor control server, and focus can modify the information in the conference object. Novo, et al. Expires September 4, 2007 [Page 4] Internet-Draft Data Model Schema March 2007 ............................................................... . Conferencing Server . . +---------------------------------------------------+ . . | C o n f e r e n c e o b j e c t | . . +-+--------------------------------------------------+| . . | C o n f e r e n c e o b j e c t || . . +-+---------------------------------------------------+|| . . | C o n f e r e n c e o b j e c t ||| . . | +--------------------------------------------------+||| . . | | Conference Information Data Model |||| . . | | +----------------------------------------------+ |||| . . | | | Conference description (times, duration) | |||| . . | | +----------------------------------------------+ |||| . . | | +----------------------------------------------+ |||| . . | | | Host information | |||| . . | | +----------------------------------------------+ |||| . . | | +----------------------------------------------+ |||| . . | | | Conference state | |||| . . | | +----------------------------------------------+ |||| . . | | +----------------------------------------------+ |||| . . | | | Floor information | |||| . . | | +----------------------------------------------+ |||| . . | | +----------------------------------------------+ |||| . . | | | Membership (users, roles, capacity) | |||| . . | | +----------------------------------------------+ |||| . . | | +----------------------------------------------+ |||| . . | | | Sidebars, Etc. | |||| . . | | +----------------------------------------------+ |||| . . | | +----------------------------------------------+ |||| . . | | | Etc. | |||| . . | | +----------------------------------------------+ |||+ . . | +--------------------------------------------------+|+ . . +----^------------------^-------------^--------|------+ . . | | | | . . +------v-------+ +--------v-----+ +-----v-+ +----v-------+ . . | Conference | | Floor | | | | | . . | Control | | Control | |Foci | |Notification| . . | Server | | Server | | | |Service | . . +-----^--------+ +---^----------+ +-^-----+ +------------+ . ........|..............|..............|..........|............. |Conference |Binary Floor |Call |Notification |Control |Control |Signaling |Protocol |Protocol |Protocol |Protocol | ........v..............v..............v..........v............. . C o n f e r e n c i n g C l i e n t . ............................................................... Figure 1: Conference Server Architecture Novo, et al. Expires September 4, 2007 [Page 5] Internet-Draft Data Model Schema March 2007 The Session Initiation Protocol (SIP) Event Package for Conference State, specified in RFC 4575 [2], already defines a data model for conferences. However, that model is SIP specific and lacks elements related to some of the functionality defined by the XCON conferencing framework [1] (e.g., floor control). The data model defined in this document extends the one defined in RFC 4575 [2]. The result is a data model that supports more call signaling protocols besides SIP and that covers all the functionality defined in the XCON conferencing framework [1]. 2. Terminology The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [3]. This document uses the terminology defined in the XCON Conferencing Framework [1], the SIP conferencing framework [4] and the BFCP (Binary Floor Control Protocol) specification [7]. Readers of this document are supposed to be familiar with the terminology used in those documents. 3. Overview The data model defined in this document is the result of extending the data model defined in RFC 4575 [2] with new elements, which carry information such as non-SIP URIs or floor-control-related parameters. This data model can be used by conference servers providing different types of basic conferences. It is expected that this data model can be further extended with new elements in the future in order to implement advanced features. 3.1. Data Model Structure The information in this data model is structured in the following manner. All the information related to a conference is contained in a element. The element contains the following child elements: o The 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 The element contains information about the entity hosting the conference (e.g., its URI). Novo, et al. Expires September 4, 2007 [Page 6] Internet-Draft Data Model Schema March 2007 o The element informs the subscribers about the changes in the overall conference information. o The element contains information about the status of the different floors in the conference. o The element describes the membership information as a whole. The element contains a set of child elements, each describing a single participant in the conference. o If a participant in the main conference joins a sidebar, a new element is created in the conference referenced from the element or under one of the elements. 3.2. Conference Policies Conference policies specify who, and in which way, information in a conference object can be manipulate. This data model has no strict separation between conference membership and media information, and its related policies. Policy-related elements and attributes appear with the element they apply to. [Editor's Note: The Policies section is still under discussion. For more details refer to the XCON mailing list. ] The set of rights describes the read/write access privileges for the conference object data model as a whole. Every element of the data model SHOULD define two attributes: the attribute 'read-only', and the attribute 'read-write'. These attributes describes the read/ write access privileges for accessing the Conference Object as a whole. This is partially described in [1]. When the conferencing server receives a request to access privacy-sensitive data it needs to match it against the 'read-only' and the 'read-write' attributes. Each attribute of each individual element is evaluated and as a result it is determined if the requestor can access that element. The attributes specify the minimum requestor's role that can access or modify the element of the conference. Requestors with a role with lower privileges as defined in Section 3.2.1 cannot access or modify the element. If an attribute is not defined in some element, the 'read-only' attribute MUST be interpreted as a "participant" role and the 'read- write' attribute MUST be interpreted as an "administrator" role by default. It is possible to defined only one of the attributes of the element, the other attribute SHOULD be interpreted by default. The next section defines conferencing roles that are used to represent participants within a Conference Object. Additional roles may be defined in the future, as necessary, with their corresponding schema extensions, as appropriate. Novo, et al. Expires September 4, 2007 [Page 7] Internet-Draft Data Model Schema March 2007 However, it can also be the case that conflicts can occur given a hierarchy of elements. In that case, the lower-level element privileges predominate over the upper-level privileges element. The policies and rights are an integral part of the data model, with elements containing the allowed ranges for other elements (e.g., maximum number of participants) and lists of end-points allowed to perform certain operations on a conference object. 3.2.1. Role Definitions This section defines five logical roles for a Conference System to represent participants within a Conference Object. In hierarchical order they are: "administrator", "creator", "moderator", "participant", and "observer". A set of semantics associated with each role is out of the scope of this document. A Conference System MAY choose not to support a particular role. As well, additional roles may be defined in the future, as necessary, with their corresponding schema extensions. These five roles have an intrinsic hierarchical order within a specific conference. By hierarchical order, it is implied that the "administrator" by default SHOULD have higher privileges than a "creator", which by default SHOULD have higher privileges than a "moderator" and so on. For example, the "administrator" SHOULD have the ability to make changes to all conference variables during instantiation and full lifecycle of the Conference Object. The "creator" is the 'owner' of the conference and has various privileges which SHOULD allow them to modify the conference variables up to the time the conference is instantiated. The "moderator" is a logical entity that will manage the conference. The "participant" is a logical entity with generic privileges that will be attending a conference. The "observer" is a logical entity which can only receive media streams from the conference. All Conference Systems MUST have a role defined as "participant". Each user participating in a conference instance is an entity that can assume one or more roles. Any entity can be allocated to an appropriate logical role. A role can also be assumed in conjunction with the users identity within the Conference System as a result of an identity assertion transaction on the Conference System. If no roles are defined for an entity, they SHOULD by default be a "participant" but local policy MAY define an alternative. 3.2.1.1. Role in a Floor Floor control in centralized conferencing is described in the Binary Floor Control Protocol (BFCP) [7]. Floors can be specified in the Novo, et al. Expires September 4, 2007 [Page 8] Internet-Draft Data Model Schema March 2007 Conference System or created dynamically. Users can be added or deleted from a floor when the conference is active. A floor chair is a logical entity that manages a floor (grants, denies, or revokes a floor). The floor chair is usually in an "administrator", "moderator", or "creator" role. A floor participant is a logical entity that requests floors, and possibly information about them from a floor control server. They are usually in a "participant" or even a "moderator" role [7]. Users in a conference MAY assume different roles in different floors. They MAY also assume different roles in the same floor, as floor transactions are processed. 3.2.1.2. Changing Roles Users can change roles during a conference. This can be done in two ways: First, the user can join a new floor in a different role. Second, an "administrator" or "creator" can dynamically change that user's role. This can be accomplished before the conference is instantiated, or during the conference, using an appropriate conference control protocol. A logical entity whose role has been changed will typically have access to the media streams associated with that role. 4. Data Model Definition A conference object document is an XML [5] document that MUST be well formed and SHOULD be valid. Conference object data model documents MUST be based on XML 1.0 and SHOULD be encoded using UTF-8. A conference object document begins with the root element tag , which is defined in [2]. The element has an 'entity' attribute that contains a conference object identifier (ID) that identifies the conference being described in the document. The element contains the , , , , , , child elements. All these elements, except , are defined in [2]. A conference document MUST at least include the , , , and child elements. The following non-normative diagram shows the structure of conference object documents. The operator "!" preceding an element indicates Novo, et al. Expires September 4, 2007 [Page 9] Internet-Draft Data Model Schema March 2007 that the element is mandatory in the data model. The operator "*" following an element indicates that the element is introduced and defined in this document. That is, elements without a "*" have already been defined in RFC 4575 [2]. ! | |--! | |-- | |-- | |--* | |-- | |--* | |--* | | |--* | | | |--* | | | |--* | | | |--* | | | |--* | | | |--* | | | |--* | | | |--* | | | |--* | | ... | |-- | | |--* | | | |-- | | | |-- | | | |-- | | |--* | | | |--* | | | |--* | | |--* | | | |--* | | ... | |-- | | |--* | | | |-- | | | |-- | | | |-- | | |--* | | | |--* | | | |--* | | |--* | | | |--* | | ... | |-- | | ... Novo, et al. Expires September 4, 2007 [Page 10] Internet-Draft Data Model Schema March 2007 | |--! | | |--! | | | |-- | | | |-- | | | |-- | | | |--* | | | |--* | | | |--* | | | | |--* | | | | |--* | | | | ... | | | |--* | | | | |--* | | | | |--* | | | | ... | | |-- | | | |-- | | | |-- | | | |-- | | | |--* | | | |--* | | | |--* | | | | |--* | | | | |--* | | | | ... | | | |--* | | | | |--* | | | | |--* | | | | ... | | ... | |-- | |-- | |-- | |--! | | |--! | | | |--! | | | |-- | | |--* | | | |--* | | | |--* | | |--* | | | |--* | ... |-- | |--* | |-- | |--! Novo, et al. Expires September 4, 2007 [Page 11] Internet-Draft Data Model Schema March 2007 | |-- | |--* | |--* | |--* | |--* | | |--* | | | |--* | | | |--* | | | |--* | | | |--* | | | |--* | | | ... | | ... | |--! | |--* | |--* | |--* | | |--* | | |-- ... | | | | | |--! | | |-- | | |-- | | |--* | | |-- | | | | | | | ... | | |-- | | |-- | | |--* | | |--* | | |--* | | |--! | | | |-- | | | |-- | | | |-- | | | |-- | | | |-- | | | |-- | | | |-- | | | |--! | | | | |-- | | | | |-- | | | | |--