view Side-By-Side changes
XCON O. Novo Internet-Draft G. Camarillo Intended status: Informational Ericsson Expires:April 13,September 4, 2007 D. Morgan Fidelity Investments R. Even PolycomOctober 10, 2006 A CommonMarch 3, 2007 Conference Information Data Model for Centralized Conferencing (XCON)draft-ietf-xcon-common-data-model-03.txtdraft-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 onApril 13,September 4, 2007. Copyright Notice Copyright (C) TheInternet Society (2006).IETF Trust (2007). Abstract This documentcollects, organizes, and describes thedefines an Extensible Markup Language (XML)-based conferencevariables that have been introduced in various protocol drafts of the XCON and SIPPING working groups. The goal of this document is toinformation 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. ExpiresApril 13,September 4, 2007 [Page 1] Internet-DraftCommon ConferenceData Model SchemaOctober 2006 allow the conference control protocols to use a unified commonMarch 2007 particular instantiation of this data model. The conference information data modelfor XCON. Thisdefined in this documentformally definesis anExtensible Markup Language (XML) Schema that representsextension of (and thus, compatible with) thecommon conference informationmodel specified ina conferencing server. The information is modeled as a series of elements, each of which contains a set of children and attributes.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 . . . . . . . . . . . . . . . . . . . . . . . . .46 3.Common Conference DataOverview . . . . . . . . . . . . . . . . . . . .4 3.1. General. . . . . . . 6 3.1. Data Model Structure . . . . . . . . . . . . . . . . . . .46 3.2.CommonConference Policies . . . . . . . . . . . . . . . .9 3.3. <conference-description> .. . . 7 3.2.1. Role Definitions . . . . . . . . . . . . .10 3.3.1. <conference-time>. . . . . . 8 3.2.1.1. Role in a Floor . . . . . . . . . . . .11 3.3.2. <conf-uris>. . . . . 8 3.2.1.2. Changing Roles . . . . . . . . . . . . . . . .13 3.3.3. <service-uris>. . 9 4. Data Model Definition . . . . . . . . . . . . . . . . . .13 3.3.4. <maximum-user-count>. . 9 4.1. <conference-description> . . . . . . . . . . . . . . .13 3.3.5. <maximum-streams>. . 13 4.1.1. <conference-time> . . . . . . . . . . . . . . . .13 3.3.6. <available-media>. . 14 4.1.2. <conf-uris> . . . . . . . . . . . . . . . .13 3.3.7. <controls>. . . . . 15 4.1.3. <service-uris> . . . . . . . . . . . . . . . . .14 3.3.7.1. mute. . . 16 4.1.4. <maximum-user-count> . . . . . . . . . . . . . . . . . 16 4.1.5. <available-media> . . .14 3.3.7.2. pause-video. . . . . . . . . . . . . . . 16 4.1.5.1. <controls> . . . .14 3.3.7.3. gain. . . . . . . . . . . . . . . . 17 4.1.5.1.1. mute . . . . . . .15 3.4. <host-info>. . . . . . . . . . . . . . 17 4.1.5.1.2. pause-video . . . . . . . . .15 3.5. <conference-state>. . . . . . . . 17 4.1.5.1.3. gain . . . . . . . . . . . .15 3.6. <floor-information>. . . . . . . . . 18 4.1.5.1.4. video-layout . . . . . . . . . .15 3.7. <users>. . . . . . . 18 4.2. <host-info> . . . . . . . . . . . . . . . . . .16 3.7.1. <allowed-users-list>. . . . . 19 4.3. <conference-state> . . . . . . . . . . . .17 3.7.2. <privileges-control-list>. . . . . . . . 19 4.4. <floor-information> . . . . . .18 3.7.2.1. <conference-rules>. . . . . . . . . . . . . 19 4.5. <users> . . .18 3.7.2.1.1. <condition>. . . . . . . . . . . . . . . . .18 3.7.2.1.2. <pseudonymous>. . . . . 21 4.5.1. <allowed-users-list> . . . . . . . . . . .19 3.7.2.1.3. <has-been-referred>. . . . . . 22 4.5.2. <user> . . . . . . .19 3.7.2.1.4. <has-been-invited>. . . . . . . . . . . . . .19 3.7.2.1.5. <has-been-in-conference>. . . 22 4.5.2.1. <from-mixer>, <to-mixer> . . . . . . . .19 3.7.2.1.6. <is-in-conference>. . . . . 23 4.5.2.1.1. <floor> . . . . . . . . .19 3.7.2.1.7. <administrator>. . . . . . . . . . 23 4.5.3. <sidebars-by-ref> . . . . .19 3.7.2.1.8. <is-on-allowed-users-list-dial-out>. . . . .20 3.7.2.1.9. <is-on-allowed-users-list-refer>. . . . . . .20 3.7.2.1.10. <participant-passcode>. 24 4.5.4. <sidebars-by-val> . . . . . . . . . . .20 3.7.2.1.11. <administrators-passcode>. . . . . . . 24 5. RELAX NG Schema . . .20 3.7.2.2. <actions> . . . . . . . . . . . . . . . . . . . . 21 3.8. <user>. . . . . . . . . . . . . . . . . . . . 24 6. XML Schema Extensibility . . . . . .22 3.8.1. from-mixer, to-mixer. . . . . . . . . . . . . 33 7. XML Example . . . .23 3.8.1.1. <floor>. . . . . . . . . . . . . . . . . . . . .23 Novo, et al. Expires April 13, 2007 [Page 2] Internet-Draft Common Conference Schema October 2006 3.9. <sidebars-by-ref>33 8. Security Considerations . . . . . . . . . . . . . . . . . . . 42 9. IANA Considerations .24 3.10. <sidebars-by-val>. . . . . . . . . . . . . . . . . . . .24 4. RELAX42 9.1. Conference Relax NGschema . . . . . . . . . . . . . . . . . . . . . . . 24 5. XMLSchemaExtensibility . . . . . . . . . . . . . . . . . . . 48 6. XML example . . . . . .Registration . . . . . . . . .. . . . . . . . . . 49 7. Security Considerations . .42 9.2. Conference Namespace Registration . . . . . . . . . . . . 43 10. Acknowledgements . . . . .58 8. IANA Considerations. . . . . . . . . . . . . . . . . . 43 11. References . . .58 9. Acknowledgements. . . . . . . . . . . . . . . . . . . . . . .58 10.43 11.1. Normative References . . . . . . . . . . . . . . . . . . . 43 11.2. Informative References . . . . . . .58 10.1. Normative References . . .. . . . . . . . . . . 43 Appendix A. Appendix A. Non-Normative RELAX NG Schema in XML Syntax . . . . .58 10.2. Informative References. . . . . . . . . . . . . . . . . .5944 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . .5969 Intellectual Property and Copyright Statements . . . . . . . . . .6171 Novo, et al. ExpiresApril 13,September 4, 2007 [Page 3] Internet-DraftCommon ConferenceData Model SchemaOctober 2006March 2007 1. IntroductionThis document defines an Extensible Markup Language (XML) Schema that representsConference objects are a fundamental concept in Centralized conferencing, as described in the XCON Conferencing Framework [1]. A conference objectin a conferencing server. The information is modeled ascontains data that represents aseries of elements,conference during each ofwhich contains children and attributes. Theits various stages (e.g., reserved, started, running, ended, etc.). ConferenceObject containsObjects are instantiations of the conference information data model defined in this document. Consequently, conference objects follow the XMLschema, which is used to representformat defined in this document. A conference object contains the core informationthat is utilized in anyof a conference(capabilities,(i.e., capabilities, membership, roles, call controlsignalling,signaling, media,etc...)etc.) and specifiesthe set of rights, permissionswho, andlimitations pertaining to operations being performed on a certain Conference Object. This document gives an overview of the conference variables that have been introducedinvarious protocol draftswhich way, can manipulate that information. Figure 1 shows logical functional elements of a conference server as defined by the XCONworking group to dateConferencing Framework [1]. They are a Conference Control Server, a Floor Control Server, a number of Foci, andproposes to createaunified commonNotification Service. A conferenceinformation data model for XCON. This document has been constructed in compliance withcontrol protocol provides theXCON Framework [1]interface between a conference and media control client, and theSession Initiation Protocol (SIP) Event Package for Conference State [2]. It also incorporates data elements proposed in several XCON WGconference control server. A floor control protocol (e.g., BFCP [7]) provides the interface between a floor control client andSIPPING WG drafts. 2. Terminology The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT","SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY",the floor control server. A call signaling protocol (e.g., SIP, H.323, PSTN, etc.) provides the interface between a call signaling client and"OPTIONAL" in this document are to be interpreted as described in RFC-2119 [3]. This document usesa Focus. A notification protocol (e.g., SIP-based event notifications [8]) provides theterminology defined ininterface between theXCON Conferencing Framework [1]conferencing client and theSIPPING Conferencing Framework [4]. In addition, it uses definitions from The Binary Floor Control Protocol [7]. 3. Common Conference Data 3.1. General TheNotification Service. Within a conference, the conferenceobject data model 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.0control server, floor control server, andSHOULD be encoded using UTF-8. A Common Conferencefocus can modify the informationdocument begins within theroot element tag <conference-info> of conference-type. The <conference-info> hasconference object. Novo, et al. ExpiresApril 13,September 4, 2007 [Page 4] Internet-DraftCommon ConferenceData Model SchemaOctober 2006 the attribute 'entity' that contains the conference unique identifier that identifies the conference being described in the document. The <conference-info> element is comprised of <conference- description>, <host-info>, <conference-state>, <floor-information>, <users>, <sidebars-by-ref>, <sidebars-by-val>, child elements. A common conference document must at least include the <conference- description>, <host-info>, <conference-state>, and <users> child elements. Some of this information can be represented using the conference-info-type schema as defined in [2]. Changes in the state of the conference should be communicated to the subscribers using a conference package subscribers (ex. A Session Initiation Protocol (SIP) Event Package for Conference State). Critical changes should be communicated to specific subscribers, perhaps those with unique roles. The conference policy control protocol msy be used to retrieve the conference state at any time. The following non-normative diagram gives an example of the overall hierarchy used in this format. The operator "!" preceding an element indicates that this element is MANDATORY in the data model. The operator "*" preceding an element indicates that this element is introduced/proposed in this draft. !<conference-info> | |--!<conference-description> | |--<display-text>March 2007 ............................................................... . Conferencing Server . . +---------------------------------------------------+ . . ||--<subject>C o n f e r e n c e o b j e c t ||--<free-text>. . +-+--------------------------------------------------+| . . ||--<keywords>C o n f e r e n c e o b j e c t || . . +-+---------------------------------------------------+|| . . ||--<web-page>C o n f e r e n c e o b j e c t ||| . . ||--<security-level>+--------------------------------------------------+||| . . ||--<allow-sidebars>||--<conference-stage>Conference Information Data Model |||| . . ||--<conference-time>| +----------------------------------------------+ |||| . . ||--<entry>| | Conference description (times, duration) ||--<base>|||| . . | | +----------------------------------------------+ |||| . . ||--<mixing-start-offset>| +----------------------------------------------+ |||| . . | ||--<mixing-end-offset>| Host information | |||| . . ||--<can-join-after-offset>| +----------------------------------------------+ |||| . . | ||--<must-join-before-offset>+----------------------------------------------+ |||| . . | | ||--<request-user>Conference state | |||| . . | ||--<notify-end-of-conference>+----------------------------------------------+ |||| . . | | +----------------------------------------------+ |||| . . ||--<allowed-extend-mixing-end-offset>| |...Floor information ||--<conf-uris>|||| . . | ||--<SIP> Novo, et al. Expires April 13, 2007 [Page 5] Internet-Draft Common Conference Schema October 2006+----------------------------------------------+ |||| . . | | +----------------------------------------------+ |||| . . ||--<uri>| | Membership (users, roles, capacity) ||--<display-text>|||| . . | | +----------------------------------------------+ |||| . . ||--<purpose>| +----------------------------------------------+ |||| . . ||--<H323>| | Sidebars, Etc. ||--<H.323-alias>|||| . . | | +----------------------------------------------+ |||| . . ||--<H.323-URI>| +----------------------------------------------+ |||| . . ||--<PSTN/ISDN>| | Etc. ||--<phone number>|||| . . | | +----------------------------------------------+ |||+ . . ||--<PIN-code>+--------------------------------------------------+|+ . . +----^------------------^-------------^--------|------+ . . | | ||--<purpose> | | | |--<rate> | | ... | |--<service-uris> | | |--<SIP> | | | |--<uri> | | | |--<display-text> | | | |--<purpose> | | |--<H323> | | | |--<H.323-alias> | | | |--<H.323-URI> | | |--<PSTN/ISDN> | | | |--<phone number> | | |--<BFCP> | | | |--<conference-ID> | | ... | |--<maximum-user-count> | | |--<entry> | | |--<entry> | | ... | |--<maximum-streams> | | |--<entry> | | |--<entry> | | ... | |--!<available-media> | | |--!<entry> | | | |--<type> | | | |--<display-text> | | | |--<status> | | | |--<mixing-mode> | | | |--<mix-level> | | | |--<codecs> | | | | |--<entry> || . . +------v-------+ +--------v-----+ +-----v-+ +----v-------+ . . | Conference ||--<entry>| Floor | | |...| | . . ||--<controls>Control | | Control | |Foci ||--<mute>|Notification| . . | Server | | Server ||--<gain>| | |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. ExpiresApril 13,September 4, 2007 [Page6]5] Internet-DraftCommon ConferenceData Model SchemaOctober 2006 | | |--<entry> | | | |--<type> | | | |--<display-text> | | | |--<status> | | | |--<mixing-mode> | | | |--<mix-level> | | | |--<codecs> | | | | |--<entry> | | | | |--<entry> | | | | ... | | | |--<controls> | | | | |--<pause-video> | | | | ... | | ... | |--!<host-info> | |--<display-text> | |--<web-page> | |--!<uris> | | |--!<SIP> | | | |--!<uri> | | | |--<display-text> | | | |--<purpose> | | |--<H323> | | | |--<H.323-alias> | | | |--<H.323-URI> | | |--<PSTN/ISDN> | | | |--<phone number> | ... |--!<conference-state> | |--<allow-conference-state> | |--<user-count> | |--!<active> | |--<locked> | |--<floor-information> | |--<allow-floor-events> | |--<floor-request-handling> | |--<conference-floor-policy> | | |--<floor> | | | |--<media-types> | | | |--<algorithm> | | | |--<max-floor-users> | | | |--<moderator-uri> | | | |--<moderator-uri> | | | ... | | ... | Novo, et al. Expires April 13, 2007 [Page 7] Internet-Draft Common Conference Schema October 2006 |--!<users> | |--<join-handling> | |--<user-admission-policy> | |--<allowed-users-list> | | |--<target> | | |-- ... | | | |--<privileges-control-list> | | |--<conference-rules> | | | |--<entry> | | | | |--<condition> | | | | | |--<identity> | | | | | | | | | | | | | ... | | | | | | | | | | | |--<validity> | | | | | | |--<from> | | | | | | |--<until> | | | | | | | | | |--<actions> | | | | | | | | | | | ... | | | ... | | | |--!<user> | | |--<display-text> | | |--<associated-aors> | | |--<provide-anonymity> | | |--<roles> | | | | | | | ... | | |--<languages> | | |--<cascaded-focus> | | |--<sphere> | | |--<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> Novo, et al. Expires April 13,March 2007[Page 8] Internet-Draft CommonThe Session Initiation Protocol (SIP) Event Package for ConferenceSchema October 2006 | | | | |--<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> | | | | ... ... Following sections describe these elements in detail. The full XML schema is providedState, specified inSection 4. 3.2. Common Conference Policies Conference policies collectively refers toRFC 4575 [2], already defines aset of rights, permissionsdata model for conferences. However, that model is SIP specific andlimitations pertaininglacks elements related tooperations being performed on a certain conference object data model. Novo, et al. Expires April 13, 2007 [Page 9] Internet-Draft Common Conference Schema October 2006 The setsome ofrights describestheread/write access privileges forfunctionality defined by theconference objectXCON conferencing framework [1] (e.g., floor control). The data modelas a whole. Every element ofdefined in this document extends the one defined in RFC 4575 [2]. The result is a data modelSHOULD has defined two attributes: the attribute 'read-only',that supports more call signaling protocols besides SIP and that covers all theattribute 'read-write'. These attributes describes the read/ write access privileges for accessing the Conference Object as a whole. It is partially describedfunctionality defined in[1]. Whenthe XCON conferencingserver receives a request for access privacy-sensitive data it needs to match it against the 'read-only' and the 'read-write' attributes. Each attribute of each individual element is evaluatedframework [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 asa result it is determined ifdescribed in RFC 2119 [3]. This document uses theuser can access that element. The attributes specifyterminology defined in theminimum subscriber's role that can access or modifyXCON Conferencing Framework [1], theelement ofSIP conferencing framework [4] and theconference. SubscribersBFCP (Binary Floor Control Protocol) specification [7]. Readers of this document are supposed to be familiar witha lower role cannot access or modifytheelement. If an attribute is notterminology used in those documents. 3. Overview The data model defined insome element, the 'read-only' attribute MUST be interpreted as a "participant" and the 'read-write' attribute MUST be interpreted as an "administrator" by default. Itthis document ispossible to defined only one oftheattributesresult of extending theelement, the other attribute SHOULDdata 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 beinterpretedused bydefault. This draft does not define the setconference servers providing different types ofpossible conferencing roles. However, itbasic conferences. It is expected that this data model canalsobe further extended with new elements in thecase that conflicts can occur given a hierarchy of elements. In that case,future in order to implement advanced features. 3.1. Data Model Structure The information in this data model is structured in thelower-level element privileges predominate overfollowing manner. All theupper-level privileges element. This document definesinformation related to amore specific right mechanismconference is contained inSection 3.7.2, beyond the 'read-only' and 'read-write' attributes.a <conference-info> element. Thepermissions and limits are specified as an integral part of the data model, with elements containing<conference-info> element contains theallowed ranges for other elements (e.g., maximum number of participants) and lists of clients allowed to perform certain operations on a conference object. 3.3. <conference-description>following child elements: o The <conference-description> element describes the conferencein its entirely.as a whole. ItSHOULD have an extra attribute 'xml:lang' to specifyhas, for instance, information about thelanguage usedURI of the conference, maximum users allowed in thecontents of this element as defined Section 2.12 of [5]. It is comprised of <display-text>, <subject>, <free- text>, <keywords>, <web-page>, <security-level>, <allow-sidebars>, <conference-stage>, <conference-time>, <conf-uris>, <service-uris>, <maximum-user-count>, <maximum-streams>, and <available-media>. The child elements <display-text>, <subject>, <free-text> and <keywords> are used to describeconference, media available in the conference, or the time the conferencecontent. These elements are defined in [2].will start. o Thechild element <web-page> is an optional<host-info> elementthat points to a URI with additionalcontains information about theconference. The childentity hosting the conference (e.g., its URI). Novo, et al. ExpiresApril 13,September 4, 2007 [Page10]6] Internet-DraftCommon ConferenceData Model SchemaOctober 2006 elements <security-level> and <allow-sidebars> describeMarch 2007 o The <conference-state> element informs thecapabilities ofsubscribers about theconference.changes in the overall conference information. o The<conference-stage> is a mandatory<floor-information> elementthat givecontains information about thestagestatus of the different floors in the conference.Thiso The <users> elementcan have 4 values: reserved, started, running, and ended. Atdescribes thereserved stagemembership information as a whole. The <users> element contains a set of <user> child elements, each describing a single participant in theconference exists onlyconference. o If a participant in the main conferencecontrol server. There is no running focus and there are no subscribers or notifications. The informationjoins a sidebar, a new element isaccessible only viacreated in the conferencecontrol protocol. Atreferenced from thestarted stage, there are no users yet<sidebars-by-ref> element or under one of the <sidebars-by-val> 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 theconference, still itelement they apply to. [Editor's Note: The Policies section ispossible to subscribestill under discussion. For more details refer to theconference state.XCON mailing list. ] Therunning stage starts whenset of rights describes thefirst user joinsread/write access privileges for theconference. Inconference object data model as a whole. Every element of theended stage, there are no users connected todata model SHOULD define two attributes: theconference,attribute 'read-only', and theconference information is only inattribute 'read-write'. These attributes describes theconference server for recurring conference orread/ write access privileges forCDR. At this stage a user can get information only fromaccessing theconference control protocol. For instance, The Session Initiation Protocol (SIP) Event Package forConferenceState [2]Object as a whole. This isonly applicablepartially described in [1]. When thestart and running stage. The <conference-time> child element has information relatedconferencing server receives a request toconference time and duration ofaccess privacy-sensitive data it needs to match it against theconference. Other elements from different namespaces MAY be present for'read-only' and thepurposes'read-write' attributes. Each attribute ofextensibility. The <conf-uris>each individual element is evaluated and<service-uris> are used to describeas a result it is determined if theconference-related identifiers.requestor can access that element. The<maximum-user- count> child element indicatesattributes specify thenumber of usersminimum requestor's role that canbe invited toaccess or modify theconference. The <maximum-streams> childelementindicates the number of streams that can be for every media type. The <available-media> child element is used to describe the media characteristicsof the conference.The following sections describe the remaining elementsRequestors with a role with lower privileges as defined inmore detail. Other child elements can be used to extend <conference- description>Section 3.2.1 cannot access or modify the element. If an attribute is not defined in some element, thefuture. 3.3.1. <conference-time> The <conference-time> element contains'read-only' attribute MUST be interpreted as a "participant" role and theinformation related'read- write' attribute MUST be interpreted as an "administrator" role by default. It is possible toconference time and duration of a conference. The <conference-time> element containsdefined only oneor more <entry> elements each defining the time informationofa single conference occurrence. Every <entry> element contains a <mixing-start-offset> child element that specifies when conference media mixing starts beforetheconference starts, <mixing-end-offset> child element that specifiesattributes of thetime a conference media mixing stops afterelement, theconference stops.other attribute SHOULD be interpreted by default. The<mixing-end-offset> child element expressesnext section defines conferencing roles that are used to represent participants within a Conference Object. Additional roles may be defined in theoffsetfuture, assigned integers representing seconds before/after DTEND field. The <mixing- start-offset> child element expresses the offsetnecessary, with their corresponding schema extensions, assigned integersappropriate. Novo, et al. ExpiresApril 13,September 4, 2007 [Page11]7] Internet-DraftCommon ConferenceData Model SchemaOctober 2006 representing seconds before/after DTSTART field. If the <mixing- start-offset> element is not present,March 2007 However, itindicates that the conference media mixing starts immediately. Ifcan also be the<mixing-end- offset> element is not present, it indicatescase that conflicts can occur given a hierarchy of elements. In that case, theconference occurrence is not bounded. <mixing-start-offset>lower-level element privileges predominate over the upper-level privileges element. The policies and<mixing-end- offset>rights are an integral part of the data model, with elementsboth havecontaining themandatory 'require-participant' attribute. This attribute has oneallowed ranges for other elements (e.g., maximum number of4 values: 'none', 'administrator', 'moderator',participants) and'participant'. For mixing start offset, this attribute allows a privileged userlists of end-points allowed todefine when media mixing starts basedperform 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 thelatterscope of this document. A Conference System MAY choose not to support a particular role. As well, additional roles may be defined in themixing start time, andfuture, 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 thetime"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, thefirst participant, administrator, or moderator arrives. If"administrator" SHOULD have thevalue is setability to'none', mixing starts accordingmake changes to all conference variables during instantiation and full lifecycle of themixing start time. For mixing end offset, this attribute allows a privileged user to define when media mixing ends based onConference Object. The "creator" is theearlier'owner' of themixing end offset,conference andthe time the last participant, or moderator leaves. If the value is sethas various privileges which SHOULD allow them to'none', mixing stops accordingmodify the conference variables up to themixing end offset. Iftime the conferencepolicy was modified so that last privilegedis 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 <conference-info>, which is defined in [2]. The <conference-info> element has an 'entity' attribute that contains a conference object identifier (ID) that identifies the conference being described in the document. The <conference-info> element contains the <conference-description>, <host-info>, <conference-state>, <floor-information>, <users>, <sidebars-by-ref>, <sidebars-by-val> child elements. All these elements, except <floor-information>, are defined in [2]. A conference document MUST at least include the <conference- description>, <host-info>, <conference-state>, and <users> 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]. !<conference-info> | |--!<conference-description> | |--<display-text> | |--<subject> | |--<free-text>* | |--<keywords> | |--<allow-sidebars>* | |--<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> | | |--<H323>* | | | |--<H.323-alias>* | | | |--<H.323-URI>* | | |--<PSTN-ISDN>* | | | |--<phone number>* | | ... | |--<service-uris> | | |--<entry>* | | | |--<uri> | | | |--<display-text> | | | |--<purpose> | | |--<H323>* | | | |--<H.323-alias>* | | | |--<H.323-URI>* | | |--<PSTN-ISDN>* | | | |--<phone number>* | | ... | |--<maximum-user-count> | | ... Novo, et al. Expires September 4, 2007 [Page 10] Internet-Draft Data Model Schema March 2007 | |--!<available-media> | | |--!<entry> | | | |--<type> | | | |--<display-text> | | | |--<status> | | | |--<mixing-mode>* | | | |--<mix-level>* | | | |--<codecs>* | | | | |--<entry>* | | | | |--<entry>* | | | | ... | | | |--<controls>* | | | | |--<mute>* | | | | |--<gain>* | | | | ... | | |--<entry> | | | |--<type> | | | |--<display-text> | | | |--<status> | | | |--<mixing-mode>* | | | |--<mix-level>* | | | |--<codecs>* | | | | |--<entry>* | | | | |--<entry>* | | | | ... | | | |--<controls>* | | | | |--<pause-video>* | | | | |--<video-layout>* | | | | ... | | ... | |--<host-info> | |--<display-text> | |--<web-page> | |--!<uris> | | |--!<entry> | | | |--!<uri> | | | |--<display-text> | | |--<H323>* | | | |--<H.323-alias>* | | | |--<H.323-URI>* | | |--<PSTN-ISDN>* | | | |--<phone number>* | ... |--<conference-state> | |--<allow-conference-event-subscription>* | |--<user-count> | |--!<active> Novo, et al. Expires September 4, 2007 [Page 11] Internet-Draft Data Model Schema March 2007 | |--<locked> | |--<floor-information>* | |--<allow-floor-events>* | |--<floor-request-handling>* | |--<conference-floor-policy>* | | |--<floor>* | | | |--<media-types>* | | | |--<algorithm>* | | | |--<max-floor-users>* | | | |--<chair-id>* | | | |--<chair-id>* | | | ... | | ... | |--!<users> | |--<join-handling>* | |--<user-admission-policy>* | |--<allowed-users-list>* | | |--<target>* | | |-- ... | | | | | |--!<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> Novo, et al. Expires September 4, 2007 [Page 12] Internet-Draft Data Model Schema March 2007 | | | | |--<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> | | | | ... ... The following sections describe these elements in detail. The full Relax NG schema isnow a normal conference participant, and the conference requires a privileged user to continue; that conference MUST terminate. An administrator can indicate the time when users can join a conference by populating the <can-join-after-offset> element. Similarly, an administrator can define the time afterprovided Section 5. 4.1. <conference-description> The <conference-description> element, whichnew users are not allowed to join the conference anymore. Thisisdone by populating the <must-join-before-offset> element expressing the offset as signed integers representing seconds before/after DTSTART field. The <base> child element specifies the iCalendar object of the conference. The iCalendar object components aredefined in[6]. The <entry> element also contains[2], describes the<request-user> child element.conference as a whole. Itis possible to define the time when users or resources on the allowed-users-list is requestedSHOULD have an extra attribute 'xml:lang' tojoinspecify theconference by usinglanguage used in the<request-users> element. Thiscontents of this elementexpresses the offsetassigned integers representing seconds before/after DTSTART field. The <notify-end-of-conference> element definesdefined inseconds when the system has to send a notification when the endSection 2.12 ofthe conference is near. If the <notify-end-of-conference> element[5]. It isnot present, it indicates that the system does not notify the users when the endcomprised ofthe conference is near. The <notify-end-of-conference> child element expresses the offset as signed integers representing seconds before/ after DTSTART field. The <allowed-extend-mixing-end-offset> refers to the possibility to extend the conference. It has two values: allowed, denied.<display-text>, <subject>, <free-text>, <keywords>, <allow-sidebars>, <conference-time>, <conf-uris>, <service-uris>, <maximum-user-count>, Novo, et al. ExpiresApril 13,September 4, 2007 [Page12]13] Internet-DraftCommon ConferenceData Model SchemaOctober 2006 3.3.2. <conf-uris> The <conf-uris> contains the identifiers to be used in order to access the conference by different signaling means. It contains a sequence of child elements: <SIP>, <H.323>,March 2007 and<PSTN/ISDN>.<available-media>. The<SIP> element contains the <uri>, <display-text>, and <purpose>. <uri>,<display-text>, <subject>, <free-text> and<purpose><keywords> elements aredescribeddefined in [2].The <H.323> element includes either a <H.323-alias> or a <H.323-URI> child elements. The <PSTN/ISDN> has an attribute 'PIN code' with the PIN code of the conference ifThey are usedand a 'purpose' attribute that describes to the user which phone numbertouse. <PSTN/ISDN> element may include 1 or more <phone number> child elements anddescribe thecall rate as well. 3.3.3. <service-uris>conference's content. The<service-uris>child element <allow-sidebars> describesauxiliary services available fortheconference. It contains a sequencecapabilities ofchild elements: <SIP>, <H.323>, <PSTN/ISDN>, and <BFCP>. <SIP>the conference. The <conference-time> child element contains<uri>, <display-text>, and <purpose>. The purpose will be usedinformation related todescribe the service. These elements are described in [2]. <H.323>,conference time and<PSTN/ISDN> child elements are described in <conf-uris> section.duration of the conference. The<BFCP> has a sub-element <conference-ID> that<conf-uris> and <service-uris> are usedby a floor control servertoprovide a client with a conference ID. 3.3.4. <maximum-user-count>describe the conference-related identifiers. The <maximum-user-count>containschild element indicates theoverallnumber of usersallowedthat can be invited tojointhe conference.It contains a sequence of <entry>The <available-media> childelements. An <entry>elementMAY containis used to describe thenumbermedia characteristics ofusers with a specific role allowed to jointhe conference.3.3.5. <maximum-streams>The<maximum-streams>following sections describe these elements in more detail. Other child elements MAY be defined in the future to extend the <conference-description> element. 4.1.1. <conference-time> The <conference-time> element contains themaximum number of streams that are permittedinformation related tobe involved inconference time and duration of a conference.ItThe <conference-time> element contains one or more <entry> elements each defining the time information specifying asequence ofsingle conference occurrence. Every <entry> element contains a <mixing-start-offset> childelements. An <entry>elementMAY containthat specifies when conference media mixing starts before thenumber of streams of every specific type of stream, for instance, audio or video. The minimum value permitted is "1" andconference starts, <mixing-end-offset> child element that specifies themaximum value permitted is "128". Thistime a conference media mixing stops after the conference stops. The <mixing-end-offset> child elementis optional. 3.3.6. <available-media>expresses the offset as signed integers representing seconds before/after DTEND field. The<available-media> has<mixing- start-offset> child element expresses the'label' attribute thatoffset as signed integers representing seconds before/after DTSTART field. If the <mixing- start-offset> element is not present, it indicates that the conference mediastream identifier assigned bymixing starts immediately. If theconferencing server. This<mixing-end- offset> elementcontains a sequence of <entry> childis not present, it indicates that the conference occurrence is not bounded. <mixing-start-offset> and <mixing-end- offset> elements both have the mandatory 'require-participant' attribute. This attribute has one ofconference-medium- type. Each <entry> element contains4 values: "none", "administrator", "moderator", and "participant". For <mixing-start- offset>, this attribute allows a privileged user to define when media mixing starts based on the<type>, <display-text>, <status>, <mixing-mode>, <mix-level>, <controls>latter of the mixing start time, and<codecs> childthe time the first participant, administrator, or moderator arrives. If the value is set to "none'", mixing starts according to the mixing start time. For <mixing-end-offset>, this attribute allows a Novo, et al. ExpiresApril 13,September 4, 2007 [Page13]14] Internet-DraftCommon ConferenceData Model SchemaOctober 2006 elements. The attribute 'label' and the <type>, <display-text>, and <status> elements are described in [2]. The <codecs> element specifiesMarch 2007 privileged user to define when media mixing ends based on theallowed codecs inearlier of theconference. It has an attribute 'decision' that specifies if<mixing-end-offset>, and thefocus decidestime thecommon codec automaticallylast participant, orneedsmoderator leaves. If theapprovement ofvalue is set to "none", mixing stops according to themoderator of<mixing-end-offset>. If the conference(automatic, moderator-controlled). The <codecs> element contains a <entry> elements. A <entry> element can have the attribute 'name' and 'policy'. The 'name' attribute identifiespolicy was modified so that last privileged user is now acodec, and the 'decision' attributenormal conference participant, and thepolicy attribute contains the policy forconference requires a privileged user to continue; thatcodec (allowed, or disallowed). The child elements <mixing-mode>, <mix-level> describeconference MUST terminate. An administrator can indicate the time when users can join adefault policyconference bywhichpopulating themixer will build<can-join-after-offset> element. Similarly, an administrator can define theoutgoing stream fromtime after which new users are not allowed to join theincoming streams. Notice that this policyconference anymore. This isdifferent thatdone by populating thepolicy describe for<must-join-before-offset> element expressing thefloors for each media.offset as signed integers representing seconds before/after DTSTART field. The<mix-level><base> child elementdescribesspecifies thenumberiCalendar object ofparticipants in audio media streams orthenumber of sub-windows in video media streams (for instance, a value of 4conference. The iCalendar object components are defined inthe <mix-level> element for video stremas means 2x2 layout).[6]. The<mixing-mode><entry> element also contains the <request-user> childelement MUST contain one and only one ofelement. It is possible to define the"Moderator-controlled", "FCFS", and "Automatic" values indicatingtime when users or resources on thedefault algorithm<allowed-users-list> is requested tobe use with every media stream. Next section explainsjoin the<controls> childconference by using the <request-users> element.3.3.7. <controls>This element expresses the offset as signed integers representing seconds before/after DTSTART field. The<controls><notify-end-of-conference> elementcontainsdefines in seconds when thebasic audio and video global controls forsystem has to send aconferencing. It is expected that for mostnotification when the end of thebasic conferencing, these controls are sufficient.conference is approaching. If theconference server wants to support more advanced control, then it<notify-end-of-conference> element isrecommended extension ofnot present, it indicates that thedata model to be used. Insystem does not notify the<controls> elementusers when theschemaend of the conference isextensible, hence new control types can be added in a future. Similarly, controls that applyapproaching. The <notify-end-of- conference> child element expresses the offset as signed integers representing seconds before/after DTSTART field. The <allowed- extend-mixing-end-offset> refers toa especific users would appear underthe<users>/<user>/<endpoint> element. So, moderator controls that affect all media output would go underpossibility to extend the<available- media> element. 3.3.7.1. muteconference. It has two values: "allowed", "denied". 4.1.2. <conf-uris> The'mute' control is<conf-uris> contains the identifiers to be used inconjunction with a audio streamorder tocease transmission of associated media.access the conference by different signaling means. Ithascontains a'Boolean' value. If this control is not specify, the accesssequence of child elements: <entry>, <H.323>, and <PSTN-ISDN>. The <entry> element refers to thecontrolSIP protocol. It keeps the same name that isnot availabledefined in [2] to maintain backwards compatibility with this RFC. The <entry> element contains theclient<uri>, <display-text>, andmedia SHOULD not be transported for the associated media stream. 3.3.7.2. pause-video<purpose> which are described in [2]. The'pause-video' control iscurrently defined <purpose> values to be usedin conjunctionwith the <conf-uris> are: o participation: Accessing avideo stream to cease transmission of associated media. It has a 'Boolena' value.URI with this <purpose> will bring the party into the conference Novo, et al. ExpiresApril 13,September 4, 2007 [Page14]15] Internet-DraftCommon ConferenceData Model SchemaOctober 2006 IfMarch 2007 o streaming: Accessing a URI with thiscontrol is not specify, the access to the control is not available to<purpose> will commence streaming theclient and media SHOULDconference, but notbe transported for the associated media stream. 3.3.7.3. gainallow active participation The'gain' control is used in conjunction with<H.323> element includes either amedia output stream to indicate<H.323-alias> or a <H.323-URI> child elements. The <PSTN-ISDN> has an attribute 'PIN code' with theamount of amplificationPIN code ofan audio stream. It hasthe conference if used and a'Int' number value from -127'purpose' attribute that describes to127. If this control is not specify,theaccessuser which phone number tothe control is notuse. The <PSTN-ISDN> element may include one or more <phone number> child elements. 4.1.3. <service-uris> The <service-uris> describes auxiliary services availabletofor theclient. 3.4. <host-info>conference. It contains a sequence of child elements: <entry>, <H.323>, <PSTN-ISDN>, and <BFCP>. The<host-info><entry> child element contains <uri>, <display-text>, and <purpose>. The purpose will be used to describe the service. The currently defined <purpose> values to be used with the <service-uris> are: o web-page: Indicates the web page containing the additional information about theentity hostingconference o recording: Indicates the link at which the recorded conference context can be retrieved o event: Indicates the URI at which a subscription to the conference event package may be requested. This would typically be theconference. It containsconference URI of the<display-text>, <web-page> child elements.main conference Future extensions to this schema may define new values and register them with IANA. Thesechildelements areexplaineddescribed in [2].<host-info> contains the <uris> child element as well. <uris> contains a sequence of child elements: <SIP>,<H.323>, and<PSTN/ISDN>. The<PSTN-ISDN> child elementsof <uris>are described in the <conf-uris> section.3.5. <conference-state>4.1.4. <maximum-user-count> The<conference-state> element and<maximum-user-count> contains the<user-count>, <active>,overall number of users allowed to join the conference. Note that this value is set by an administrator and<locked>can reflect any local policies such as network consumption, CPU processing power, and licensing rules. 4.1.5. <available-media> The <available-media> has the 'label' attribute that is the media stream identifier assigned by the conferencing server. This element contains a sequence of <entry> child elements of conference-medium- type. Each <entry> element contains the <type>, <display-text>, <status>, <mixing-mode>, <mix-level>, <controls> and <codecs> child elements. The attribute 'label' and the <type>, <display-text>, and <status> elements areexplaineddescribed insection 5.5 of[2]. The<allow-conference-state><codecs> elementrepresents a boolean action. If set to TRUE,specifies the allowed codecs in the conference. It has an attribute 'decision' that specifies if the focusis instructed to allowdecides the common codec automatically or needs the approval of the moderator of thesubscription toconferencestate events, such as("automatic", "moderator-controlled"). The <codecs> element contains <entry> elements. A <entry> element can have theSIP Event PackageNovo, et al. Expires September 4, 2007 [Page 16] Internet-Draft Data Model Schema March 2007 attribute 'name' and 'policy'. The 'name' attribute identifies a codec, and the 'decision' attribute contains the policy forConference State [2]. If set to FALSE,that codec (allowed, or disallowed). The child elements <mixing-mode> and <mix-level> describe a default policy by which the mixer will build thesubscription to conference state events would be rejected. Ifoutgoing stream from the incoming streams. Notice that thiselementpolicy isundefined it hasdifferent than the policy describing the floors for each media. The <mix-level> child element describes the number of participants in audio media streams or the number of sub-windows in video media streams (for instance, a value ofTRUE, causing"4" in thesubscription to conference state events to be accepted. 3.6. <floor-information><mix-level> element for video streams implies a 2x2 layout). The<floor-information><mixing-mode> child elementhasMUST contain one and only one of the<allow-floor-events>, <floor- request-handling>,"Moderator-controlled", "FCFS", and "Automatic" values indicating the<conference-floor-policy> child elements. Other elements from different namespaces MAYdefault algorithm to bepresent for the purposes of extensibility. This element has its own XML namespace.use with every media stream. Theabsence of this namespace and its elements from an XML document indicates thatnext section explains theconference does not have a floor.<controls> child element. 4.1.5.1. <controls> The<allow-floor-events><controls> elementrepresents a boolean action. If set to TRUE,contains thefocusbasic audio and video global controls for a conference. It isinstructed to acceptexpected that for thesubscription to floor control events.majority of the basic conferences, these controls are sufficient. Ifset to FALSE,thefocus is instructedconference server wants toreject the subscription. If this element is undefined,support more advanced controls, then ithas a valueis recommended that an extension ofFALSE, causingthesubscription to floor control events todata model berejected. Novo, et al. Expires April 13, 2007 [Page 15] Internet-Draft Common Conference Schema October 2006 The <floor-request-handling> element definesused. In theactions used by<controls> element theconference focus toschema is extensible, hence new controlfloor requests. This element definestypes can be added in theactionfuture. Similarly, controls thatthe focus is to take when processing a particular requestapply to afloor within a conference. This element defines values of: o block: This action instructsspecific user would appear under thefocus to deny<users>/<user>/<endpoint> element. So moderator controls that affect all media output would go under thefloor request. This action<available-media> element. 4.1.5.1.1. mute The 'mute' control isthe default action takenused inthe absenceconjunction with an audio stream to cease transmission ofany other actions. o confirm: This action instructs the focusassociated media. It has a "boolean" value. If this control is not specified, access toallow the request. The focus then usesthedefined floor algorithmcontrol is not available tofurther allow of denythefloor.client and media SHOULD NOT be transported for the associated media stream. 4.1.5.1.2. pause-video Thealgorithms'pause-video' control is usedare outside the scope of this document. Note that placingin conjunction with avaluevideo stream to cease transmission ofblock for this element does not guarantee thatassociated media. It has aparticipant is blocked from joining the conference. Any other rule that might evaluate to true for"boolean" value. If thisparticipant that carried an action whose value was higher than block would automatically grant confirm/allow permissioncontrol is not specified, access tothat participant. The <conference-floor-policy> elementthe control ismandatory and containsnot available to therequired boolean attribute that indicates ifclient and media SHOULD NOT be transported for thefloorassociated media stream. Novo, et al. Expires September 4, 2007 [Page 17] Internet-Draft Data Model Schema March 2007 4.1.5.1.3. gain The 'gain' control ismoderator controlled or not. One or more <Floor> elements can appearused in conjunction with a media output stream to indicate the<conference-floor-policy> element. Every flooramount of amplification of an audio stream. It has a "int" number value. If this control isdefined usingnot specified, access to the'label' attribute. Ifcontrol is not available to the<available-media> informationclient. 4.1.5.1.4. video-layout The 'video-layout' control isincludedused in conjunction with a video stream to specify how theconference document, the value of this attribute MUSTvideo streams (participants) are viewed by each participant. Only one layout type can beequal tospecified for each output stream. If there are fewer participants than panels in the'label' value ofspecified layout, then blanking (black screen) MAY be mixed into thecorresponding mediastream<entry> inon the<available-media> container. The numberbehalf ofthose elements indicates how many floorstheconference can have. A floor canmissing input streams. If unspecified, the <video- layout> default type SHOULD beused for"single-view". The <layout> types are as follows: single-view: Only oneor more media types;stream is presented by themandatory <Media-types> element can contain zero or more offocus to all participants in one panel. dual-view: This dual view option will present the<Video>, <Audio>, <Application>, <Data> ,<Control>, <Message>,video side-by-side in 2 panels and<text> elements indicatingnot alter themediaaspect ratio of thefloor. One typestreams. This will require the focus to introduce blanking on parts ofmedia can only appear once. Other media types can be definedthe overall image as viewed byextensions. A floor can be controlled using many algorithms;themandatory <Algorithm> element MUST containparticipants. 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. 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-crop: This layout option also instructs the focus to place one stream above the other, in essence with two rows andonly ofone column. In this option the<Moderator- controlled>, <FCFS>,aspect ratio is altered and<Random> elements indicatingthealgorithm. The <Max-floor-users> elementvideo streams are cropped. quad-view: Four equal-sized panels inthe <Floor> elementa 2x2 layout isoptional and, if present, dictates the maximum number of users who can havepresented by thefloor at one time. The optional <Moderator-URI> indicatesfocus to all participants. Typically theURIaspect ratio of themoderator. It MUST be set if the attribute moderator-controlledstreams are maintained (alter-aspect-ratio= FALSE). multiple-3x3: Nine equal-sized panels in a 3x3 layout issetpresented by the focus to"true". 3.7. <users> The <users> element containsall participants. Typically the aspect ratio of the<join-handling>, <user-admission- policy>, <allowed-users-list>, <privileges-control-list> and <user> child elements.Novo, et al. ExpiresApril 13,September 4, 2007 [Page16]18] Internet-DraftCommon ConferenceData Model SchemaOctober 2006 The <join-handling> element defines the actions usedMarch 2007 streams are preserved. multiple-4x4: Sixteen equal-sized panels in a 4x4 layout is presented by theconferencefocus tocontrol conference participation. This element definesall participants. Typically theaction thataspect ratio of thefocus is to take when processing a particular requeststreams are preserved. multiple-5x1: This option refers tojoinaconference. This element defines values of: o block: This action instructs5x1 layout where one panel will occupy 4/9 of thefocus to deny access tomixed video stream while theconference. This action isothers will each occupy 1/9 of thedefault action taken instream. Typically theabsenceaspect ratio ofany other actions. o confirm:the streams is preserved. automatic: Thisaction instructsoption allows the focus toplace the participant onadd panels as streams are added up to apending list (e.g., by parkinglimit of "panels". 4.2. <host-info> The <host-info> element contains information about thecall on a music-on-hold server), awaiting moderator input for further actions. o allow:entity hosting the conference. Thisaction instructsinformation is set before thefocus to acceptconference activation, and is rarely changed during the conferencejoin requestlifetime. The <host-info> element contains the <display-text>, <web-page> and <uris> child elements. The <display-text> and <web-page> child elements are explained in [2]. The <uris> child element contains a sequence of child elements: <entry>, <H.323>, andgrant access<PSTN-ISDN>. The <entry> element refers to theconference withinSIP protocol. It keeps theinstructions specifiedsame name that is defined inthe transformations of[2] to maintain backwards compatibility with thisrule. o IVR: This action instructs the focus that the user hasRFC. Future extensions to the <uris> element may define new values. 4.3. <conference-state> The <conference-state> element and thePIN code. o directed-operator: This action instructs<user-count>, <active>, and <locked> child elements are explained in section 5.5 of [2]. The <allow-conference-event-subscription> element represents a boolean action. If set to TRUE, the focus is instructed todirectallow theusersubscription toan operator. Note that placing a value of blockconference state events, such as the SIP Event Package forthis element does not guarantee that a participant is blocked from joiningConference State [2]. If set to FALSE, theconference. Any other rule that might evaluatesubscription totrue for this participant that carried an action whose value was higher than blockconference state events wouldautomatically grant confirm/allow permission to that participant. The <user-admission-policy>be rejected. If this element is undefined it has alistdefault value ofthree elements: 'closedAuthenticated', 'openAuthenticated', and 'anonymous'. IfTRUE, causing the<user-admission-policy> element is setsubscription to conference state events to'closedAuthenticated', users mustbespecified (and authenticate). Ifaccepted. 4.4. <floor-information> The <floor-information> element has theattribute is set to 'openAuthenticated', users can<conference-ID>, <allow- floor-events>, <floor-request-handling>, and <conference-floor- policy> child elements. Other elements from different namespaces MAY beadd afterpresent for the purposes of extensibility. This element has its own XML namespace. The absence of this namespace and its elements from an XML document indicates that the conferenceactivation.does not have a floor. Novo, et al. Expires September 4, 2007 [Page 19] Internet-Draft Data Model Schema March 2007 Thefollowing sections describe the remaining elements in more detail. Other child elements can be<conference-ID> is used by a floor control server toextend <conference- description> in the future. 3.7.1. <allowed-users-list>provide a client with a conference ID. The<allowed-users-list> child<allow-floor-events> elementcontainsrepresents alist of user URIs, PSTN phone numbers, roles, or domains (*@example.com) thatboolean action. If set to TRUE, the focususesis instructed todetermine who can joinaccept theconference, who can invitesubscription tojoin a conference, or whofloor control events. If set to FALSE, the focusneedsis instructed to"refer to"reject theconference. The <allowed-users-list> element includes zero or more <target> child element. This childsubscription. If this elementincludes 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. The 'method' attributeis undefined, it has alist with the following values: "dial-in", "dial-out, and "refer". Thedefault value"dial-in" is used byof FALSE, causing thefocussubscription todetermine who can joinfloor control events to be rejected. The <floor-request-handling> element defines theconference. Value "refer" isactions used by theNovo, et al. Expires April 13, 2007 [Page 17] Internet-Draft Common Conference Schema October 2006conference focus todeterminecontrol floor requests. This element defines theresourcesaction that the focusneeds to "refer to" the conference. In SIP, thisisachieved by the focus sendingto take when processing aREFERparticular request tothose potential participants. Inadifferent paradigm, this could also mean thatfloor within a conference. This element defines values of: 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 "confirm": This action instructs the focussends an SMS or an emailto allow thereferred user. This list can be updated duringrequest. The focus then uses theconference lifetime so it can be used for mid-conference refers as well.defined floor algorithm to further allow or deny the floor. The"refer" value differs fromalgorithms used are outside the"dial-out" inscope of this document. Note thatthe dial-out containsplacing alistvalue ofresources"block" for this element does not guarantee thatthe focus will initiateasession with. The resources on the "refer" value, onparticipant is blocked from joining the conference. Any otherhand, are expectedrule that might evaluate toinitiate the session establishment towards the focus themselves. It is also envisionedTRUE for this participant thatdifference users will have different access rightscarried an action whose value was higher than "block" would automatically grant confirm/allow permission tothose lists and therefore a separation between the two is needed. 3.7.2. <privileges-control-list>that participant. The<privileges-control-list> refers to a virtual set of rights pertaining to operations. This<conference-floor-policy> element is mandatory and contains the<conference- rules> element. 3.7.2.1. <conference-rules> The <conference-rules> element is a set of <entry> child elements with specific authorization rulesrequired boolean attribute thatindicate whoindicates if the floor isallowed to subscribe to conference-information notifications, see floors, request/grant floors, and so on.moderator controlled or not. One or more <floor> elements can appear in the <conference-floor-policy> element. Every<entry> elementfloor isrepresent bydefined using the'id' attribute, each of which identifies a rule inside'label' attribute. If theconference. It contains<available-media> information is included in the<condition> and <actions> sub elements. 3.7.2.1.1. <condition> The <condition> element determines whether a particular privilege appliesconference document, the value of this attribute MUST be equal toa user, a role, or domain. The <condition> element hasthe<identity> and'label' value of the<validity> child element. These elements MUST NOT appear more than oncecorresponding media stream <entry> in thecondition part of a single rule.<available-media> container. The<identity> element restricts matchingnumber ofa rule either to a single entitythose elements indicates how many floors the conference can have. A floor can be used for one ora group of entities. The <identity>more media types; the mandatory <media-types> elementhascan contain zero or more of the<one><video>, <audio>, <application>, <data> ,<control>, <message>, and<many> child<text> elementsdefined in Section 7.1indicating the media of[8]. The absencethe floor. One type of media can only appear once. Other media types can be defined by extensions. A floor can be controlled using many algorithms; the<identity>mandatory <algorithm> elementin a <condition>MUST contain one and only one of the <moderator- controlled>, <FCFS>, and <random> elements indicating the algorithm. The <max-floor-users> child elementindicates thatin theprivilege applies to all unauthenticated identities.<floor> element is Novo, et al. ExpiresApril 13,September 4, 2007 [Page18]20] Internet-DraftCommon ConferenceData Model SchemaOctober 2006 The <identity> element has other child elements. These child elements are <pseudonymous>, <has-been-referred>, <has-been-invited>, <has-been-in-conference>, <is-in-conference>, <administrator>, <is- on-allowed-users-list-dial-out>, <is-on-allowed-users-list-refer>, <participant-passcode>, and <administrator-passcode>. The <validity> element expressesMarch 2007 optional and, if present, dictates thevalidity periodmaximum number of users who can have therule with a starting and an endingfloor at one time. The<validity>optional <chair-id> indicates the BFCP UserID of the moderator. It MUST be set if the attribute moderator-controlled is set to TRUE. 4.5. <users> The <users> element contains the <join-handling>, <user-admission- policy>, <allowed-users-list>, andits<user> childelements ,<from> and <until>, are defined in section 7.3 of [8]. 3.7.2.1.2. <pseudonymous>elements. The<pseudonymous><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 elementis useddefines values of: o "block": This action instructs the focus tomatch participants that have provided an authenticated identitydeny access to theconference focus, but have requested pseudonymityconference. This action is the default action taken in theconference itself. A user requests pseudonymityabsence of any other actions. o "confirm": This action instructs the focus to place the participant on a pending list (e.g., byauthenticating himselfparking the call on a music-on-hold server), awaiting moderator input for further actions. o "allow": This action instructs the focus to accept the conferencefocusjoin request andproviding a pseudonym ingrant access to thesignalling protocol (for example, usingconference within the instructions specified in theFrom-headertransformations ofa SIP request). The <pseudonymous> element can be combined withthis rule. o "IVR": This action instructs the<identity> elementfocus that the user has to provide the PIN code. o "directed-operator": This action instructs the focuswith a rule on whattodo whendirect the user to an operator. Note that placing aspecific identity is authenticated andvalue of block for this element does not guarantee thatidentitya participant isrequesting pseudonymity throughblocked from joining thesignalling protocol. 3.7.2.1.3. <has-been-referred> The <has-been-referred> element can be used to match those participantsconference. Any other rule thatthe focus has referredmight evaluate tothe conference. 3.7.2.1.4. <has-been-invited> The <has-been-invited> element can be usedTRUE for this participant that carried an action whose value was higher than "block" would automatically grant confirm/allow permission tomatch those participantsthatthe focus has invited into the conference. 3.7.2.1.5. <has-been-in-conference>participant. The<has-been-in-conference><user-admission-policy> is an elementcan be used to match those participantsthathave joinedlets an organizer (or a participant with appropriate rights) choose a policy for the conferencein the past. 3.7.2.1.6. <is-in-conference> The <is-in-conference> element can be used to match those participantsthat controls how users arecurrently participating inallowed into the conference.3.7.2.1.7. <administrator> The <administrator> element canA 'closedAuthenticated' policy requires each conference participant to beusedin the allowed users list (listed under the <allowed-users- list> XML element) with each participant being sufficiently (up tomatch thoselocal policy) authenticated. Conference join requests for users not in the allowed users list or participantsthat are administratorsnot authenticated should be rejected unless a <join-handling> action of 'confirm' is selected in which case the user is placed on aconference.pending list as indicated earlier. An 'openAuthenticated' policy requires each conferencing participant to be sufficiently authenticated (as before) but does not restrict Novo, et al. ExpiresApril 13,September 4, 2007 [Page19]21] Internet-DraftCommon ConferenceData Model SchemaOctober 2006 3.7.2.1.8. <is-on-allowed-users-list-dial-out> The <is-on-allowed-users-list-dial-out> element can be used to match thoseMarch 2007 which participantsthat are oncan join theallowed-users-listconference. Typically this implies that anyone capable of authenticating with themethod dial-out. 3.7.2.1.9. <is-on-allowed-users-list-refer>conferencing system may join the conference. An 'anonymous' policy allows any join requests in and is the least restrictive in policies. The<is-on-allowed-users-list-refer> elementfollowing sections describe the remaining elements in more detail. Other child elements can be used tomatch those participants that are on the allowed-users-list withextend <conference- description> in themethod refer. 3.7.2.1.10. <participant-passcode>future. 4.5.1. <allowed-users-list> The<participant-passcode><allowed-users-list> child element contains a list of user URIs, PSTN phone numbers, roles, or domains (*@example.com) that the focus uses to determine who can join the conference, who can beusedinvited tomatch those participants that have knowledge ofjoin apasscode forconference, or who theconference (PIN code). Afocusneed not care if a user using a passcodeneeds tojoin is calling from a PSTN"refer to" the conference. The <allowed-users-list> element includes zero oran IP phone. For example: Using a SIP phone, a SIP INVITE request arrives directly atmore <target> child elements. This child element includes the mandatory 'uri' attribute and thefocus.mandatory 'method' attribute. Thefocus examinessame 'uri' attribute with different method values can appear in the list more than once. The 'method' attribute is a list with theidentityfollowing values: "dial-in", "dial-out", anddiscovers that there are no rules allowing this identity to join."refer". The value "dial-in" is used by the focusalso determines that there are no rules explicitly prohibiting this identity from joining.to determine who can join the conference. The value "refer" is used by the focusin this case decidestochallengedetermine theidentity for a passcode, if there is a ruleresources thatallows users with a passcode knowledge to join. If no such rule exists,the focuswould not challenge for a passcode. For PSTN users, the system can be set up for an IVR systemneeds toprompt"refer to" theuser for a passcode before forwardingconference. 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 thefocus. Thefocusdoes not need to care if there issends anIVR systemSMS ornot. Itan email to the referred user. This list canapplybe updated during thesame procedureconference lifetime so it can be used for mid- conference refers asabove. It checks if there are any the rules allowing or denying the identity access. In this case, the identity iswell. The "refer" value differs from theGW. If no rules exist for"dial-out" in thatidentity butthe "dial-out" contains ageneral passcode rule does, thenlist of resources that the focuswould challengewill initiate a session with. The resources on theGW/IVR for"refer" value, on the other hand, are expected to initiate the session establishment toward thepasscode. Afocuscan challenge forthemselves. It is also envisioned that difference users will have different access rights to those lists and therefore a separation between thepasscode using, for example,two is needed. 4.5.2. <user> The element <user> describes aHTTP Digest challenge.single participant in the conference. Theusername, passcodefollowing elements of <user> are defined in [2], section 5.6: <display-text>, <associated-aors>, <roles>, <languages>, <cascaded- focus>, andrealm need to be assigned<endpoint>. <user> has two attributes: 'entity' anddistributed'state'. The attribute 'state' is defined in [2], section 5.6. The attribute 'entity' contains amanner that is outside the scope of this document. Mutliple passcodes can be assigned to multiple users. 3.7.2.1.11. <administrators-passcode> In some cases, administrators of theunique conferenceare assigned a different passcode than normal participants. The <administrator- passcode> elementuser identifier. Other user identifiers can beused to match those key participants that have knowledge on a key participant passcode for the conference.associated with this conference user Novo, et al. ExpiresApril 13,September 4, 2007 [Page20]22] Internet-DraftCommon ConferenceData Model SchemaOctober 2006 Again, a focus need not care if aMarch 2007 identifier and enable the conferencing system to correlate and map these multiple authenticated userusing a passcodeidentities tojoin is calling fromaPSTN or an IP phone. It is important thatsingle global user identifier. The <provide-anonymity> element provides anonymity to the user. In this case, the focushas a uniqueprovides to the rest of the participants an anonymous identity foreach user joining from a PSTN phone via a gateway. It is not enoughthatone identity touser, for example anonymousX. This can beassigned to all users joining fromachieved by using thesame gateway since administrators have more control over conference duration.<provide-anonymity> element. Itmight be required thatis agateway maps the telephone number of the PSTN phone intoboolean transformation. If set to TRUE, theIP signalling protocol header that usually carriesconference participants will see an anonymous identity for theasserteduser whose identityor a user. 3.7.2.2. <actions>is present in the conditions. The<actions><endpoint> child elementincan provide theapplied rule is a positive grantdesired level ofpermission todetail about the user's devices and their signaling sessions taking part in the conferencedata model orand has theconferencing system.following child elements defined in RFC 4575 [2]: <display-text>, <referred>, <status>, <joining-method>, <joining-info>, <disconnection-method>, <disconnection-info>, <media>, and <call-info>. The<actions><endpoint>/<media> element has two other child elements: <to-mixer>, and <from-mixer> described in the followingoperations: o The <allow-refer-users-dynamically> element represents a boolean action. If setsection. 4.5.2.1. <from-mixer>, <to-mixer> Similar toTRUE,theidentity is allowed to instructcontrols defined in thefocus<available-media> element, controls that apply torefera particular user appear at this place in the data structure. The <to-mixer> element details properties associated with the incoming streams to theconference without modifyingmixer. The <from-mixer> element details properties associated with theallowed-users-list (in SIP terms,outgoing streams from theidentity is allowed to send a REFER request tomixer. Both of these elements have thefocus which results inattribute 'name'. The 'name' attribute has thefocus sending a REFER request tovalues "VideoIn", "VideoOut", "AudioOut", and "AudioIn". The "VideoOut" and "AudioOut" media streams detail properties associated with theuseroutgoing video and audio from thereferrer wishes to joinmixer. The "VideoIn" and "AudioIn" media stream details properties associated with theconference). If setincoming video and audio toFALSE,therefer request is rejected. If this element is undefined it has a valuemixer. More values can be defined in the future. Each ofFALSE, causingthese elements have therefer to be rejected. o<floor> and <controls> child elements. 4.5.2.1.1. <floor> The<allow-invite-users-dynamically><floor> elementrepresentsdescribes aboolean action. If set to TRUE, the identity is allowed to instructfloor that joins this participant in thefocus to inviteconference. If auserparticipant, for instance, needs to talk in theconference without modifying the allowed-users-list list (in SIP terms, the identity is allowed to send a REFER requestconference, it first needs to get thefocus which results infloor from thefocus sending an INVITE request tochair of the conference. The <floor> element has a "Boolean" value. A value of FALSE indicates that this user does not hold thereferrer wishes to join the conference).floor in this moment. Ifset to FALSE, the refer requestNovo, et al. Expires September 4, 2007 [Page 23] Internet-Draft Data Model Schema March 2007 this control isrejected. Ifnot specified, this user SHOULD NOT specify the floor option. 4.5.3. <sidebars-by-ref> The <sidebars-by-ref> elementis undefined it hascontains avalueset ofFALSE, causing the refer to be rejected. o<entry> child elements. Each <entry> child element contains a <user> child element with a sidebar unique conference user identifier and a <display-text> child element. 4.5.4. <sidebars-by-val> The<allow-remove-users-dynamically><sidebars-by-val> elementrepresentscontains aboolean action. Ifsetto TRUE, the identity is allowed to instructof <entry> child elements each containing information about a single sidebar. By using this element, thefocus to removeserver can include auser fromfull or partial description of each sidebar (as a sub-conference) in the body of the main conferencewithout modifyingdocument. 5. RELAX NG Schema In accordance with theruleset (in SIP terms,XCON framework document [1], theidentityConference Object isallowed to sendaREFER request to the focus which resultslogical representation of a conference instance. The conference information schema contains core information that is utilized in any conference. It also contains thefocus sending an BYE request to the user the referrer wishes to leave the conference). If set to FALSE,variable information part of therefer request is rejected. If thisConference Object. This specification defines some document fragments in RELAX NG format. namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0" namespace ns1 = "urn:ietf:params:xml:ns:conference-info-urn" namespace ns2 = "urn:ietf:params:xml:ns:common-policy" default namespace ns3 = "urn:ietf:params:xml:ns:conference-schema" start = element conference-info { conference-type } # CONFERENCE TYPE conference-type = attribute entity { text }, attribute version { xsd:unsignedInt }?, attribute state { state-type }?, role-type, conference-description-type, element host-info { host-type }?, element conference-state { conference-state-type }?, element floor-information { floor-information-type }?, element users { users-type }, element sidebars-by-ref { sidebars-by-ref-type }?, Novo, et al. Expires September 4, 2007 [Page 24] Internet-Draft Data Model Schema March 2007 element sidebars-by-val { sidebars-by-val-type }?, anyElement* # CONFERENCE DESCRIPTION TYPE conference-description-type = elementis undefined it has a value of FALSE, causing the refer to be rejected. o The <show-floor-holder>conference-description { role-type, attribute xml:lang { xsd:language }?, attribute state { state-type }?, element display-text { text }?, elementdefines the actions used by the conference focus to control floor requests. Thissubject { text }?, element free-text { text }?, elementdefines the action that the focus is to take when processing a particular request to a floor within a conference. Thiskeywords { list { xsd:string* } }?, element allow-sidebars { xsd:boolean }?, element conference-time { conferencetime-type }?, element conf-uris { uris-type }?, element service-uris { uris-type }?, element maximum-user-count { xsd:int }?, element available-media { conference-media-type }?, anyElement* } # CONFERENCE TIME conferencetime-type = role-type, elementhas defined values of:entry { element base { text }?, element mixing-start-offset { xsd:dateTime { pattern = ".+T.+Z.*" }, attribute required-participant { single-role-type }, anyAttribute }?, element mixing-end-offset { xsd:dateTime { pattern = ".+T.+Z.*" }, attribute required-participant { single-role-type }, anyAttribute }?, element can-join-after-offset { xsd:dateTime { pattern = ".+T.+Z.*" } }?, element must-join-before-offset { xsd:dateTime { pattern = ".+T.+Z.*" } }?, element notify-end-of-conference { xsd:int }?, element allowed-extend-mixing-end-offset { allowed-extend-mixing-values }?, anyElement* Novo, et al. ExpiresApril 13,September 4, 2007 [Page21]25] Internet-DraftCommon ConferenceData Model SchemaOctober 2006 * 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. * confirm: This action instructs the focus to allow the request. The focus then uses the defined floor algorithm to further allow of deny the floor. The algorithms used are outside the scope of this document. o Note that placing a value of block for thisMarch 2007 }*, anyElement* # ALLOWED EXTEND MIXING VALUES allowed-extend-mixing-values = xsd:string "allowed" | xsd:string "denied" # URIS TYPE uris-type = role-type, attribute state { state-type }?, (element entry { uri-type }* & elementdoes not guarantee that a participant is blocked from joining the conference. Any other rule that might resolve to true for this participant that carried an action whose value was higher than block would automatically grant confirm/allow permission to that participant. o The <show-floor-requests>H323 { H323-type }* & element PSTN-ISDN { PSTN-type }*), anyElement* # SIP TYPE uri-type = role-type, (element uri { xsd:anyURI }, element display-text { text }?, elementis of type boolean transformation. If set to TRUE, the conference participant is able to see the floor requests. If set to FALSE, the conference participant is not able to see floor requests. If thispurpose { text }?, anyElement*)* # H323 TYPE H323-type = role-type, element H.323-alias { text }?, element H.323-URI { xsd:anyURI }?, anyElement* # PSTN TYPE PSTN-type = role-type, attribute PIN-code { xsd:unsignedInt }, attribute purpose { xsd:unsignedInt }, (element phone-number { xsd:unsignedInt }, anyElement*)+ # BFCP TYPE BFCP-type = role-type, (element conference-ID { xsd:unsignedInt }, anyElement*)* # MAXIMUM USER TYPE maximum-user-count-type = role-type, anyAttribute, (element entry { xsd:unsignedInt, attribute role { single-role-type } }, anyElement*)+ # CONFERENCE MEDIA TYPE Novo, et al. Expires September 4, 2007 [Page 26] Internet-Draft Data Model Schema March 2007 conference-media-type = role-type, attribute state { state-type }?, element entry { conference-medium-type }*, anyElement* # CONFERENCE MEDIUM TYPE conference-medium-type = role-type, attribute label { text }, element display-text { text }?, elementis undefined, it has a value of FALSE, causing the floor requests to not being seen by the conference participant. o A rule can be set that provides anonymity to a specific identity. In this case, the focus provides to the rest of the participants an anonymous identity for that user, for example anonymous1. This can be achieved by using the <provide-anonymity> element. It is a boolean transformation. If set to TRUE, the conference participants will see an anonymous identity for the user whose identity is present in the conditions. o The <read-write>type { text }?, element status { media-status-type }?, element mixing-mode { mix-mode-type }?, element mix-level { xsd:unsignedInt }?, elementrepresents a boolean action. If set to TRUE, the identity is allowed to modify thecodecs { codecs-type }?, elementdescribed inside the 'element'controls { controls-type }?, anyElement* # CONTROLS TYPE controls-type = role-type, attributein the conference policy. If set to FALSE, any modifications to thestate { state-type }?, elementare rejected. o The <read-only>control { control-type }*, anyElement* # MIX MODE TYPE mix-mode-type = xsd:string "moderator-controlled" | xsd:string "FCFS" | xsd:string "automatic" # CODECS TYPE codecs-type = role-type, attribute decision { decision-type }, elementrepresents a boolean action. If set to TRUE, the identity is allowed to read thecodec { codec-type }*, anyElement* # CODEC TYPE codec-type = role-type, attribute name { text }, attribute policy { policy-type } # DECISION TYPE decision-type = xsd:string "automatic" | xsd:string "moderator-controlled" # POLICY TYPE policy-type = xsd:string "allowed" | xsd:string "disallowed" # CONTROL TYPE control-type = element mute { xsd:boolean } | element pause-video { xsd:boolean } Novo, et al. Expires September 4, 2007 [Page 27] Internet-Draft Data Model Schema March 2007 | element gain { xsd:int { minInclusive = "-127" maxInclusive = "127" } } | element video-layout { 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" } | anyElement* # HOST TYPE host-type = role-type, (element display-text { text }, element web-page { xsd:anyURI }, element uris { uris-type }, anyElement*)* # CONFERENCE STATE TYPE conference-state-type = role-type, element allow-conference-event-subscription { xsd:boolean }?, element user-count { xsd:unsignedInt }?, element active { xsd:boolean }?, element locked { xsd:boolean }?, anyElement* # FLOOR INFORMATION TYPE floor-information-type = role-type, (element conference-ID { BFCP-type }, element allow-floor-events { xsd:boolean }, element floor-request-handling { floor-request-type }, element conference-floor-policy { Conference-floor-policy }, anyElement*)* # FLOOR REQUEST TYPE floor-request-type = xsd:string "block" | xsd:string "confirm" # CONFERENCE FLOOR POLICY Conference-floor-policy = role-type, element floor { attribute moderator-controlled { xsd:boolean }, attribute label { text }, anyAttribute, Novo, et al. Expires September 4, 2007 [Page 28] Internet-Draft Data Model Schema March 2007 (element media-types { role-type, (xsd:string "video" | xsd:string "audio" | xsd:string "application" | xsd:string "data" | xsd:string "control" | xsd:string "message" | xsd:string "text") }, elementdescribed inside the 'element'algorithm { role-type, (xsd:string "moderator-controlled" | xsd:string "FCFS" | xsd:string "random") }, element max-floor-users { xsd:nonNegativeInteger }, element chair-id { xsd:anyURI }, anyElement*)* }+ # USERS TYPE users-type = attributein the conference policy. If set to FALSE, any attempts to read thestate { state-type }?, role-type, element join-handling { join-handling-type }?, element user-admission-policy { user-admission-policy-type }?, element user-must-be-specified { xsd:boolean }?, elementare rejected. 3.8. <user> Theallowed-users-list { UserList }?, element<user> describes a single participant in the conference. The following elements as well as the attributes of <user> are defined in [2], section 5.6: <display-text>, <associated-aors>, <roles>, <languages>, <cascaded-focus>, and <endpoint>. The <provide-anonymity> provides anonymity to the user. When auseris defined then the role must be defined or set to "participant" by default. This specification does not define the set of possible conferencing roles nor the semantics associated with each.{ user-type }*, anyElement* # USERS ADMISSION POLICY user-admission-policy-type = xsd:string "closedAuthenticated" | xsd:string "openAuthenticated" | xsd:string "anonymous" # JOIN HANDLING TYPE join-handling-type = xsd:string "block" | xsd:string "allow" | xsd:string "confirm" | xsd:string "IVR" | xsd:string "directed-operator" # USERLIST UserList = role-type, element target { target-type }*, anyElement* # TARGET TYPE Novo, et al. ExpiresApril 13,September 4, 2007 [Page22]29] Internet-DraftCommon ConferenceData Model SchemaOctober 2006 The <sphere>March 2007 target-type = role-type, attribute uri { xsd:anyURI }, attribute method { method-type } # METHOD TYPE method-type = xsd:string "dial-in" | xsd:string "dial-out" | xsd:string "refer" # USER TYPE user-type = role-type, attribute entity { xsd:anyURI }, attribute state { state-type }?, element display-text { text }?, element associated-aors { uris-type }?, element provide-anonymity { xsd:boolean }?, elementcan be used to indicate theroles { roles-type }?, element languages { list { xsd:language } }?, element cascaded-focus { xsd:anyURI }?, element allow-refer-users-dynamically { xsd:boolean }?, element allow-invite-users-dynamically { xsd:boolean }?, element allow-remove-users-dynamically { xsd:boolean }?, element endpoint { endpoint-type }*, anyElement* # ENDPOINT TYPE endpoint-type = role-type, attribute entity { text }, attribute state(e.g., 'work', 'home', 'meeting', 'travel') the user is currently in. It is defined in section 7.2 of [8]. The <allow-refer-users-dynamically>, <allow-invite-users-dynamically> and <allow-remove-users-dynamically> elements are defined in the previous section. The <endpoint>{ state-type }?, element display-text { text }?, elementis under a <user> parent. Thisreferred { conference-info-urn* }?, element status { endpoint-status-type }?, element joining-method { joining-type }?, element joining-info { conference-info-urn* }?, element disconnection-method { disconnection-type }?, element disconnection-info { conference-info-urn* }?, elementcan provide the desired level of detail about the user's devices and signaling sessions taking part in the conference and has the following child elements defined in [2]: <display-text>, <referred>, <status>, <joining-method>, <joining-info>, <disconnection-method>, <disconnection-info>, <media>, and <call-info>. The <endpoint>media { media-type }*, element call-info { conference-info-urn* }?, anyElement* # MEDIA TYPE media-type = attribute id { xsd:int }, attribute state { state-type }?, anyAttribute, element display-text { text }?, element type { text }?, element label { text }?, Novo, et al. Expires September 4, 2007 [Page 30] Internet-Draft Data Model Schema March 2007 elementhas as well two other child elements: <to-mixer>, and <from- mixer> childsrc-id { text }?, element status { media-status-type }?, elementdescribed in the following section. 3.8.1. from-mixer,to-mixerSimilarly that the controls defined in the <available-media> element, controls that apply to a particular user appear at this place in the document. The <to-mixer>{ mixer-type }?, element from-mixer { mixer-type }?, anyElement* # MIXER TYPE mixer-type = role-type, attribute state { state-type }?, (element floor { xsd:boolean }, elementdetails properties associated with the incoming streams to the mixer. <from-mixer>controls { controls-type })?, anyElement* # SIDEBARS-BY-REF TYPE sidebars-by-ref-type = role-type, attribute state { state-type }?, element entry { uri-type }*, anyElement* # SIDEBARS-BY-VAL TYPE sidebars-by-val-type = role-type, attribute state { state-type }?, element entry { conference-type }*, anyElement* # ROLES_TYPE roles-type = elementdetails properties associated with the outgoing streams from the mixer. Both of these elements have theentry { single-role-type }*, anyElement* # ROLE TYPE role-type = attribute'name'. 'Name'read-only { single-role-type }?, attributehas 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. More values can be defined in the future. Every of these elements have the <floor> and <controls> child elements. 3.8.1.1. <floor> The <floors>write-only { single-role-type }?, anyAttribute # SINGLE ROLE TYPE single-role-type = xsd:string "administrator" | xsd:string "creator" | xsd:string "moderator" | xsd:string "participant" | xsd:string "observer" # ********************************* # EXTENSIBILITY OF THE SCHEMA # ********************************* # EXTENSIBILITY ELEMENTS anyElement = elementdescribes a floor that joins this participant in the conference. If a participant, for instance, needs to talk in the conference, it first needs to get a floor from the moderator of the conference. The <floor>* { (attribute * { text } Novo, et al. Expires September 4, 2007 [Page 31] Internet-Draft Data Model Schema March 2007 | text | anyElement)* } # EXTENSIBILITY ATTRIBUTES anyAttribute = attribute * - (entity | version | state | xml:lang | required-participant | PIN-code | purpose | role | type | min | max | label | decision | name | policy | moderator-controlled | uri | method | id | domain | read-only | write-only | ns3:*) { text }* # ************************************************************* # TYPES DEFINED IN THE EVENT PACKAGE FOR CONFERENCE STATE # ************************************************************* # WILDCARD FOR EVENT-PACKAGE NAMESPACE conference-info-urn = elementhas a 'Boolen' value. A value of 'false' indicates that this user does not hold the floor in this moment. If this control is not specify, this user SHOULD not specify the floor option.* - ns1:* { mixed { (attribute * { text } | conference-info-urn)* } } # DEFINITION OF STATE TYPE state-type = "full" | "partial" | "deleted" # DEFINITION OF ENDPOINT STATUS TYPE media-status-type = "recvonly" | "sendonly" | "sendrecv" | "inactive" # ENDPOINT STATUS TYPE endpoint-status-type = "pending" | "dialing-out" Novo, et al. ExpiresApril 13,September 4, 2007 [Page23]32] Internet-DraftCommon ConferenceData Model SchemaOctober 2006 3.9. <sidebars-by-ref> The <sidebars-by-ref> element contains a set of <entry> child elements. Each <entry> child element contains a <user> childMarch 2007 | "dialing-in" | "alerting" | "on-hold" | "connected" | "muted-via-focus" | "disconnecting" | "disconnected" # JOINING TYPE joining-type = "dialed-in" | "dialed-out" | "focus-owner" # DISCONNECTION TYPE disconnection-type = "departed" | "booted" | "failed" | "busy" # ****************************************** # TYPE DEFINED IN THE COMMON POLICY DOCUMENT # ****************************************** # WILDCARD FOR COMMON-POLICY NAMESPACE common-policy = elementwith a sidebar conference unique identifier and a <display-text> child element.* - ns2:* { mixed { (attribute * { text } | common-policy)* } } 6. XML Schema Extensibility The<sidebars-by-ref> element is described in Section 5.9.1 of [2]. Notice that the <sidebars-by-ref> child element does not include the attribute 'state'Conference Information Data Model defined in[2]. 3.10. <sidebars-by-val> The <sidebars-by-val> element contains a set of <entry>this document is meant to be extensible toward specific application domains. Such extensions are accomplished by defining elements, child elementseach containing information about a single sidebar. Notice as well that the <sidebars-by-val>and attributes that are specific to the<entry> child element do not includedesired application domain. The IETF MAY extend theattribute 'state' defined in [2]. 4. RELAX NGdata model schemaIn accordancewith extension elements from theXCON framework document [1], the Conference Objectsame namespace, but other instances are free to extend it from other than urn:ietf:params:xml:ns:conference-schema. Elements or attributes from unknown namespaces MUST be ignored. 7. XML Example The following isa logical representationan example of a conferenceinstance.information document. Thecommonconferenceinformation schema contains core informationstarts on October 17, 2006, at 10:30 AM in New York City and finishes the same day at 12:30 PM every week. In this example, there are currently 3 participants in a conference, one administrator, one moderator, and one participant. Note that sidebars are allowed in this conference and there isutilizedone sidebar inanythe conference.It also containsAlso note that there is one floor moderator for thevariable information part ofaudio and a different floor moderator for theConference Object. This specification defines some document fragments in RELAX NG format. <?xml version="1.0" encoding="UTF-8"?> <grammar xmlns="http://relaxng.org/ns/structure/1.0" xmlns:xs="http://relaxng.org/ns/compatibility/annotations/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> <start> <ref name="conference-type"/> </start> <!-- CONFERENCE TYPE --> <define name="conference-type"> <element name="conference-info"> <ref name="role-type"/> <zeroOrMore> Novo, et al. Expires April 13, 2007 [Page 24] Internet-Draft Common Conference Schema October 2006 <ref name="conference-description-type"/> <element name="host-info"> <ref name="host-type"/> </element> <element name="conference-state"> <ref name="conference-state-type"/> </element> <element name="floor-information"> <ref name="floor-information-type"/> </element> <element name="users"> <ref name="user-type"/> </element> <element name="sidebars-by-ref"> <ref name="sidebars-by-ref-type"/> </element> <element name="sidebars-by-val"> <ref name="sidebars-by-val-type"/> </element> </zeroOrMore> </element> </define> <!-- CONFERENCE DESCRIPTION TYPE --> <define name="conference-description-type"> <element name="conference-description"> <ref name="role-type"/> <optional> <element name="display-text"> <text/> </element> <element name="subject"> <text/> </element> <element name="free-text"> <text/> </element> <element name="keywords"> <list> <data type="string"/> </list> </element> <element name="webpage"> <data type="anyURI"/> </element> <element name="security-level">video. Novo, et al. ExpiresApril 13, 2007 [Page 25] Internet-Draft Common Conference Schema October 2006 <ref name="SecurityLevel"/> </element> <element name="allow-sidebars"> <data type="boolean"/> </element> <element name="conference-stage"> <ref name="conference-stage-type"/> </element> <element name="conference-time"> <ref name="conferencetime-type"/> </element> <element name="conf-uris"> <ref name="uris-type"/> </element> <element name="service-uris"> <ref name="uris-type"/> </element> <element name="maximum-user-count"> <ref name="maximum-user-count-type"/> </element> <element name="maximum-streams"> <ref name="maximum-streams-type"/> </element> <element name="available-media"> <ref name="conference-media-type"/> </element> </optional> <xs:any/> </element> </define>September 4, 2007 [Page 33] Internet-Draft Data Model Schema March 2007 <?xml version="1.0" encoding="UTF-8"?> <conference-info xmlns="urn:ietf:params:xml:ns:conference-schema" entity="conference123" state="full"> <!--SECURITY LEVELCONFERENCE DESCRIPTION --><define name="SecurityLevel"> <choice> <value type="string">none</value> <value type="string">low</value> <value type="string">medium</value> <value type="string">high</value> </choice> </define><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> <webpage>http://www.example.com/users/formula-1</webpage> <security-level>low</security-level> <allow-sidebars>true</allow-sidebars> <conference-stage>running</conference-stage> <!-- CONFERENCESTAGETIME --><define name="conference-stage-type"> <choice><conference-time> <entry> <base>BEGIN:VCALENDAR PRODID:-//LlamaSpinner Inc.//NONSGML CamelCall//EN VERSION:2.0 BEGIN:VEVENT DTSTAMP:20051103T140728Z UID:carol at example.com ORGANIZER:MAILTO:carol at example.com DTSTART:20061017T143000Z RRULE:FREQ=WEEKLY DTEND:20061017T163000Z</base> <mixing-start-offset required-participant="moderator" > 2006-10-17T14:29:00Z</mixing-start-offset> <mixing-end-offset required-participant="participant" > 2006-10-17T16:31:00Z</mixing-end-offset> <must-join-before-offset > 2006-10-17T15:30:00Z</must-join-before-offset> </entry> </conference-time> <!-- CONFERENCE UNIQUE IDENTIFIERS --> <conf-uris state="full"> <SIP> <uri>tel:+3585671234</uri> <display-text>Conference Bridge</display-text> <purpose>participation</purpose> Novo, et al. ExpiresApril 13,September 4, 2007 [Page26]34] Internet-DraftCommon ConferenceData Model SchemaOctober 2006 <value type="string">reserved</value> <value type="string">started</value> <value type="string">running</value> <value type="string">ended</value> </choice> </define>March 2007 </SIP> <SIP> <uri>http://www.example.comlive.ram</uri> <purpose>streaming</purpose> </SIP> </conf-uris> <!--CONFERENCE TIMESERVICE URIS --><define name="conferencetime-type"> <ref name="role-type"/> <zeroOrMore> <element name="entry"> <optional> <element name="base"> <text/> </element> <element name="mixing-start-offset"> <data type="int"/> </element> <element name="mixing-stop-offset"> <data type="int"/> </element> <element name="can-join-after-offset"> <data type="int"/> </element> <element name="must-join-before-offset"> <data type="int"/> </element> <element name="request-users"> <data type="int"/> </element> <element name="notify-end-of-conference"> <data type="int"/> </element> <element name="allowed-extend-mixing-end-offset"> <data type="boolean"/> </element> </optional> </element> </zeroOrMore> </define><service-uris state="full"> <SIP> <uri>http://www.example.com/formula1/</uri> <purpose>web-page</purpose> </SIP> </service-uris> <!--URIS TYPEMAXIMUM USER COUNT --><define name="uris-type"><maximum-user-count> <entry role="administrator">2</entry> <entry role="moderator">5</entry> <entry role="participant">150</entry> </maximum-user-count> <!-- AVAILABLE MEDIA --> <available-media> <entry label="10234"> <display-text>main audio</display-text> <type>audio</type> <status>sendrecv</status> <mixing-mode>automatic</mixing-mode> <mix-level>3</mix-level> <codecs decision="automatic"> <codec name="PCMU" policy="allowed"/> </codecs> </entry> <entry label="10235"> <display-text>main video</display-text> <type>video</type> <status>sendrecv</status> <mixing-mode>automatic</mixing-mode> <mix-level>4</mix-level> <codecs decision="automatic"> <codec name="H.263" policy="allowed"/> </codecs> </entry> </available-media> Novo, et al. ExpiresApril 13,September 4, 2007 [Page27]35] Internet-DraftCommon ConferenceData Model SchemaOctober 2006 <ref name="role-type"/> <oneOrMore> <element name="SIP"> <ref name="uri-type"/> </element> <element name="H323"> <ref name="H323-type"/> </element> <element name="PSTN-ISDN"> <ref name="PSTN-type"/> </element> <element name="BFCP"> <ref name="BFCP-type"/> </element> </oneOrMore> </define>March 2007 </conference-description> <!--SIP TYPEHOST INFO --><define name="uri-type"> <ref name="role-type"/> <oneOrMore> <element name="uri"> <data type="anyURI"/> </element> <zeroOrMore> <element name="display-text"> <text/> </element> <element name="purpose"> <text/> </element> <element name="PIN-code"> <data type="int"/> </element> </zeroOrMore> </oneOrMore> </define><host-info> <display-text>Formula1</display-text> <web-page>http://www.example.com/formula1/</web-page> <uris state="full"> <SIP> <uri>sip:alice@example.com</uri> </SIP> <SIP> <uri>sip:carol@example.com</uri> </SIP> </uris> </host-info> <!-- CONFERENCE STATE --> <conference-state> <allow-conference-state>true</allow-conference-state> <user-count>3</user-count> <active>true</active> <locked>false</locked> </conference-state> <!-- FLOOR INFORMATION --> <floor-information> <allow-floor-events>true</allow-floor-events> <floor-request-handling>confirm</floor-request-handling> <conference-floor-policy> <floor moderator-controlled="true" label="10234"> <media-types>audio</media-types> <algorithm>moderator-controlled</algorithm> <max-floor-users>1</max-floor-users> <moderator-uri>sip:alice@example.com</moderator-uri> </floor> <floor moderator-controlled="true" label="10235"> <media-types>video</media-types> <algorithm>moderator-controlled</algorithm> <max-floor-users>1</max-floor-users> <moderator-uri>sip:carol@example.com</moderator-uri> </floor> </conference-floor-policy> </floor-information> <!--H323 TYPE --> <define name="H323-type"> <ref name="role-type"/> <zeroOrMore> <element name="H.323-alias"> <text/>USERS Novo, et al. ExpiresApril 13,September 4, 2007 [Page28]36] Internet-DraftCommon ConferenceData Model SchemaOctober 2006 </element> <element name="H.323-URI"> <data type="anyURI"/> </element> </zeroOrMore> </define>March 2007 --> <users state="full"> <join-handling>allow</join-handling> <!--PSTN TYPEALLOWED USERS LIST --><define name="PSTN-type"> <ref name="role-type"/> <attribute name="PIN-code"> <text/> </attribute> <attribute name="purpose"> <text/> </attribute> <zeroOrMore> <element name="phone-number"> <data type="unsignedInt"/> </element> <element name="rate"> <data type="unsignedInt"/> </element> </zeroOrMore> </define><allowed-users-list> <target uri="sip:bob@example.com" method="dial-out"/> <target uri="sip:alice@example.com" method="dial-out"/> <target uri="sip:carol@example.com" method="dial-out"/> <target uri="sip:john@example.com" method="refer"/> </allowed-users-list> <!--BFCP TYPEPRIVILEGES CONTROL LIST --><define name="BFCP-type"> <ref name="role-type"/> <zeroOrMore> <element name="conference-id"> <data type="unsignedInt"/> </element> </zeroOrMore> </define><privileges-control-list> <conference-rules> <entry id="1"> <condition> <identity> <many domain="example.com"/> </identity> <validity> <to>2006-10-17T16:30:00Z</to> <from>2006-10-17T14:30:00Z</from> </validity> </condition> <action> <allow-invite-users-dynamically >true</allow-invite-users-dynamically> </action> </entry> <entry id="2"> <condition> <identity> <one id="bob@example.com"/> </identity> </condition> <action> <show-floor-holder>block</show-floor-holder> </action> </entry> </conference-rules> </privileges-control-list> <!--MAXIMUMUSERTYPE--><define name="maximum-user-count-type"> <ref name="role-type"/> <xs:attribute name="role"> <ref name="single-role-type"/> </xs:attribute> <zeroOrMore>Novo, et al. ExpiresApril 13,September 4, 2007 [Page29]37] Internet-DraftCommon ConferenceData Model SchemaOctober 2006 <element name="entry"> <data type="unsignedInt"/> </element> </zeroOrMore> </define>March 2007 <user entity="bob534" state="partial"> <display-text>Bob Hoskins</display-text> <associated-aors state="full"> <SIP> <uri>mailto:bob@example.com</uri> <display-text>email</display-text> </SIP> </associated-aors> <provide-anonymity>false</provide-anonymity> <roles> <entry>participant</entry> </roles> <languages>en</languages> <sphere value="work"/> <allow-refer-users-dynamically >false</allow-refer-users-dynamically> <allow-invite-users-dynamically >false</allow-invite-users-dynamically> <allow-remove-users-dynamically >false</allow-remove-users-dynamically> <!--MAXIMUM STREAM TYPEENDPOINTS --><define name="maximum-streams-type"> <ref name="role-type"/> <zeroOrMore> <element name="entry"> <ref name="role-type"/> <attribute name="type"> <ref name="media-stream-type"/> </attribute> <attribute name="min"> <data type="positiveInteger"/> </attribute> <attribute name="max"> <data type="positiveInteger"/> </attribute> </element> </zeroOrMore> </define><endpoint entity="sip:bob@example.com" state="full"> <display-text>Bob's Laptop</display-text> <referred> <when>2006-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>2006-10-17T14:00:00Z</when> <reason>invitation</reason> <by>sip:alice@example.com</by> </joining-info> <!-- MEDIATYPES--><define name="media-stream-type"> <choice> <value type="string">audio</value> <value type="string">video</value> </choice> </define><media id="1"> <label>10235</label> <src-id>432424</src-id> </media> <!--CONFERENCE MEDIA TYPECALL INFO --><define name="conference-media-type"> <ref name="role-type"/> <attribute name="label"> <text/> </attribute> <zeroOrMore> <element name="entry"> <ref name="conference-medium-type"/>Novo, et al. ExpiresApril 13,September 4, 2007 [Page30]38] Internet-DraftCommon ConferenceData Model SchemaOctober 2006 </element> </zeroOrMore> </define>March 2007 <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> </user> <!--CONFERENCE MEDIUM TYPEUSER --><define name="conference-medium-type"> <ref name="role-type"/> <attribute name="label"> <text/> </attribute> <zeroOrMore> <element name="type"> <text/> </element> <element name="display-text"> <text/> </element> <element name="status"> <ref name="media-status-type"/> </element> <element name="mixing-mode"> <ref name="mix-mode-type"/> </element> <element name="mix-level"> <data type="unsignedInt"/> </element> <element name="codecs"> <ref name="codecs-type"/> </element> <element name="controls"> <ref name="control-type"/> </element> </zeroOrMore> </define><user entity="alice334" state="full"> <display-text>Alice Kay</display-text> <associated-aors state="full"> <SIP> <uri>mailto:alice@example.com</uri> <display-text>email</display-text> </SIP> </associated-aors> <provide-anonymity>false</provide-anonymity> <roles> <entry>moderator</entry> </roles> <languages>en</languages> <sphere value="work"/> <allow-refer-users-dynamically >true</allow-refer-users-dynamically> <allow-invite-users-dynamically >true</allow-invite-users-dynamically> <allow-remove-users-dynamically >true</allow-remove-users-dynamically> <!--MIX MODE TYPEENDPOINTS --><define name="mix-mode-type"> <choice> <value type="string">Moderator-controlled</value> <value type="string">FCFS</value> <value type="string">"Automatic</value> </choice> </define><endpoint entity="sip:alice@example.com" state="full"> <display-text>Alice's Desktop</display-text> <status>connected</status> <joining-method>dialed-in</joining-method> <joining-info> <when>2006-10-17T13:35:08Z</when> <reason>invitation</reason> <by>sip:conference@example.com</by> </joining-info> <!-- Novo, et al. ExpiresApril 13,September 4, 2007 [Page31]39] Internet-DraftCommon ConferenceData Model SchemaOctober 2006March 2007 MEDIA --> <media id="1"> <label>10235</label> <src-id>432424</src-id> <status>sendrecv</status> </media> <media id="2"> <label>10234</label> <src-id>532535</src-id> <status>sendrecv</status> </media> <!--CODECS TYPECALL INFO --><define name="codecs-type"> <ref name="role-type"/> <attribute name="decision"> <ref name="decision-type"/> </attribute> <zeroOrMore> <element name="entry"> <ref name="codec-type"/> </element> </zeroOrMore> </define><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> </endpoint> </user> <!-- --> <user entity="carol233" state="full"> <display-text>Carol More</display-text> <associated-aors state="full"> <SIP> <uri>mailto:carol@example.com</uri> <display-text>email</display-text> </SIP> </associated-aors> <provide-anonymity>false</provide-anonymity> <roles> <entry>administrator</entry> </roles> <languages>en</languages> <sphere value="work"/> <allow-refer-users-dynamically >true</allow-refer-users-dynamically> <allow-invite-users-dynamically >true</allow-invite-users-dynamically> <allow-remove-users-dynamically >true</allow-remove-users-dynamically> Novo, et al. Expires September 4, 2007 [Page 40] Internet-Draft Data Model Schema March 2007 <!--CODEC TYPEENDPOINTS --><define name="codec-type"> <ref name="role-type"/> <attribute name="name"> <text/> </attribute> <attribute name="policy"> <ref name="policy-type"/> </attribute> </define><endpoint entity="sip:carol@example.com" state="full"> <display-text>Carol's Computer</display-text> <status>connected</status> <joining-method>dialed-in</joining-method> <joining-info> <when>2006-10-17T13:30:05Z</when> <reason>invitation</reason> <by>sip:conference@example.com</by> </joining-info> <!--DECISION TYPEMEDIA --><define name="decision-type"> <choice> <value type="string">Automatic</value> <value type="string">Moderator-controlled</value> </choice> </define><media id="1"> <label>10235</label> <src-id>432424</src-id> <status>sendrecv</status> </media> <media id="2"> <label>10234</label> <src-id>532535</src-id> <status>sendrecv</status> </media> <!--POLICY TYPECALL INFO --><define name="policy-type"> <choice> <value type="string">Allowed</value> <value type="string">Disallowed</value> </choice> </define><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> </endpoint> </user> </users> <!-- SIDEBARS BY REFERENCE --> <sidebars-by-ref state="full"> <entry> <uri>sips:conference123;grid=40</uri> <display-text>private with Bob</display-text> </entry> </sidebars-by-ref> Novo, et al. Expires September 4, 2007 [Page 41] Internet-Draft Data Model Schema March 2007 <!-- SIDEBARS BY VALUE --> <sidebars-by-val> <entry entity="conference123;grid=40"> <users> <user entity="bob534"/> <user entity="carol233"/> </users> </entry> </sidebars-by-val> </conference-info> Note that due to RFC formatting conventions, this documents splits lines whose content would exceed 72 characters. Two backslash characters mark where line folding has taken place. These backslashes would not appear in the actual XML data model. 8. Security Considerations A malicious user can manipulate parts of the Conference Information Data Model privileges document giving themselves and others privileges to manipulate the data model. It is very important that only authorized clients are able to manipulate the Conference Information Data Model document. Any conference control protocol MUST provide authentication, confidentiality and integrity. 9. IANA Considerations 9.1. Conference Relax NG Schema Registration URI: urn:ietf:params:xml:ns:conference-schema Relax NG Schema: The Relax NG schema to be registered is contained in Section 4. Its first line is namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0" and its last line is } Novo, et al. ExpiresApril 13,September 4, 2007 [Page32]42] Internet-DraftCommon ConferenceData Model SchemaOctober 2006 <!-- CONTROL TYPE --> <define name="control-type"> <choice> <value type="string">integer</value> <value type="string">real</value> <value type="string">boolean</value> </choice> </define> <!-- HOST TYPE --> <define name="host-type"> <ref name="role-type"/> <zeroOrMore> <element name="display-text"> <text/> </element> <element name="web-page"> <data type="anyURI"/> </element> <element name="uris"> <ref name="uris-type"/> </element> </zeroOrMore> </define> <!-- CONFERENCE STATE TYPE --> <define name="conference-state-type"> <ref name="role-type"/> <zeroOrMore> <element name="allow-conference-state"> <data type="boolean"/> </element> <element name="user-count"> <data type="unsignedInt"/> </element> <element name="active"> <data type="boolean"/> </element> <element name="locked"> <data type="boolean"/> </element> </zeroOrMore> Novo, et al. Expires April 13,March 2007[Page 33] Internet-Draft Common9.2. ConferenceSchema October 2006 </define> <!-- FLOOR INFORMATION TYPE --> <define name="floor-information-type"> <ref name="role-type"/> <zeroOrMore> <element name="allow-floor-events"> <data type="boolean"/> </element> <element name="floor-request-handling"> <ref name="floor-request-type"/> </element> <element name="conference-floor-policy"> <ref name="Conference-floor-policy"/> </element> </zeroOrMore> </define> <!-- FLOOR REQUEST TYPE --> <define name="floor-request-type"> <choice> <value type="string">block</value> <value type="string">confirm</value> </choice> </define> <!-- CONFERENCE FLOOR POLICY --> <define name="Conference-floor-policy"> <ref name="role-type"/> <attribute name="moderator-controlled"> <data type="boolean"/> </attribute> <attribute name="label"> <text/> </attribute> <oneOrMore> <element name="Floor"> <zeroOrMore> <element name="Media-types"> Novo, et al. Expires April 13, 2007 [Page 34] Internet-Draft CommonNamespace Registration URI: urn:ietf:params:xml:ns:conference-schema 10. Acknowledgements This document is really a distillation of many ideas discussed over a long period of time. These ideas were contributed by many different drafts in the XCON working group and the SIPPING working group. We would like to thank Orit Levin, Adam Roach, Mary Barnes, Chris Boulton, Umesh Chandra, and Jari Urpilainen for their comments. Also, We would like to thank Hisham Khartabil, Petri Koskelainen, and Aki Niemi for letting us use the policy information of their cpcp drafts in this document. 11. References 11.1. Normative References [1] Barnes, M., "A Framework and Data Model for Centralized Conferencing", draft-ietf-xcon-framework-07 (work in progress), January 2007. [2] Rosenberg, J., Schulzrinne, H., and O. Levin, "A Session Initiation Protocol (SIP) Event Package for ConferenceSchemaState", RFC 4575, August 2006. [3] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [4] Rosenberg, J., "A Framework for Conferencing with the Session Initiation Protocol (SIP)", RFC 4353, February 2006. [5] Paoli, J., Sperberg-McQueen, C., Bray, T., and E. Maler, "Extensible Markup Language (XML) 1.0 (Second Edition)", World Wide Web Consortium FirstEdition REC-xml-20001006, October2006 <ref name="role-type"/> <zeroOrMore> <element name="Video"> <empty/> </element> <element name="Audio"> <empty/> </element> <element name="Application"> <empty/> </element> <element name="Data"> <empty/> </element> <element name="Control"> <empty/> </element> <element name="Message"> <empty/> </element> <element name="Text"> <empty/> </element> </zeroOrMore> </element> <element name="Algorithm"> <ref name="role-type"/> <zeroOrMore> <element name="Moderator-controlled"> <empty/> </element> <element name="FCFS"> <empty/> </element> <element name="Random"> <empty/> </element> </zeroOrMore> </element> <element name="Max-floor-users"> <data type="nonNegativeInteger"/> </element> <element name="Moderator-URI"> <data type="anyURI"/> </element> </zeroOrMore> </element> </oneOrMore>2000, <http://www.w3.org/TR/2000/REC-xml-20001006>. [6] Dawson, F. and Stenerson, D., "Internet Calendaring and Scheduling Core Object Specification (iCalendar)", RFC 2445, November 1998. 11.2. Informative References [7] Camarillo, G., Ott, J., and K. Drage, "The Binary Floor Control Protocol (BFCP)", RFC 4582, November 2006. Novo, et al. ExpiresApril 13,September 4, 2007 [Page35]43] Internet-DraftCommon ConferenceData Model SchemaOctober 2006 </define> <!-- USERS TYPE --> <define name="users-type"> <ref name="role-type"/> <zeroOrMore> <element name="join-handling"> <ref name="join-handling-type"/> </element> <element name="user-admission-policy"> <ref name="user-admission-policy-type"/> </element> <element name="user-must-be-specified"> <data type="boolean"/> </element> <element name="allowed-users-list"> <ref name="UserList"/> </element> <element name="privileges-control-list"> <ref name="privileges-control-list-type"/> </element> <element name="user"> <ref name="user-type"/> </element> </zeroOrMore> </define> <!-- USERS ADMISSION POLICY --> <define name="user-admission-policy-type"> <choice> <value type="string">closedAuthenticated</value> <value type="string">openAuthenticated</value> <value type="string">anonymous</value> </choice> </define> <!-- JOIN HANDLING TYPE --> <define name="join-handling-type"> <choice> <value type="string">block</value> <value type="string">allow</value> <value type="string">confirm</value> <value type="string">IVR</value> <value type="string">directed-operator</value> Novo, et al. Expires April 13,March 2007[Page 36] Internet-Draft Common Conference[8] Roach, A., "Session Initiation Protocol (SIP)-Specific Event Notification", RFC 3265, June 2002. Appendix A. Appendix A. Non-Normative RELAX NG SchemaOctober 2006 </choice> </define> <!-- USERLIST --> <define name="UserList"> <ref name="role-type"/> <zeroOrMore>in XML Syntax <?xml version="1.0" encoding="UTF-8"?> <grammar ns="urn:ietf:params:xml:ns:conference-schema" xmlns="http://relaxng.org/ns/structure/1.0" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> <start> <elementname="target">name="conference-info"> <refname="Target"/>name="conference-type"/> </element></zeroOrMore> </define></start> <!--TARGETCONFERENCE TYPE --> <definename="Target"> <ref name="role-type"/>name="conference-type"> <attributename="uri">name="entity"> <text/> </attribute> <optional> <attribute name="version"> <datatype="anyURI"/>type="unsignedInt"/> </attribute> </optional> <optional> <attributename="method">name="state"> <refname="method-type"/>name="state-type"/> </attribute></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> </choice> </define> <!-- PRIVILEGES CONTROL LIST TYPE --> <define name="privileges-control-list-type"></optional> <ref name="role-type"/><oneOrMore><ref name="conference-description-type"/> <optional> <elementname="conference-rules">name="host-info"> <refname="conference-rules-type"/>name="host-type"/> </element></oneOrMore> </define></optional> <optional> <element name="conference-state"> <ref name="conference-state-type"/> </element> </optional> <optional> <element name="floor-information"> <ref name="floor-information-type"/> Novo, et al. ExpiresApril 13,September 4, 2007 [Page37]44] Internet-DraftCommon ConferenceData Model SchemaOctober 2006 <!-- CONFERENCE RULES TYPE --> <define name="conference-rules-type"> <ref name="role-type"/> <attribute name="id"> <text/> </attribute> <zeroOrMore>March 2007 </element> </optional> <elementname="entry">name="users"> <refname="conference-rule-type"/>name="users-type"/> </element></zeroOrMore> </define> <!-- CONFERENCE RULE TYPE --> <define name="conference-rule-type"> <ref name="role-type"/> <zeroOrMore><optional> <elementname="condition">name="sidebars-by-ref"> <refname="condition-type"/>name="sidebars-by-ref-type"/> </element> </optional> <optional> <elementname="action">name="sidebars-by-val"> <refname="action-type"/>name="sidebars-by-val-type"/> </element> </optional> <zeroOrMore> <ref name="anyElement"/> </zeroOrMore> </define> <!--CONDITIONCONFERENCE DESCRIPTION TYPE --> <definename="condition-type">name="conference-description-type"> <element name="conference-description"> <ref name="role-type"/><element name="identity"><optional> <attribute name="xml:lang"> <data type="language"/> </attribute> </optional> <optional> <attribute name="state"> <refname="identity-type"/> </element>name="state-type"/> </attribute> </optional> <optional> <elementname="validity"> <ref name="validityType"/>name="display-text"> <text/> </element></define> <!-- IDENTITY TYPE --> <define name="identity-type"> <ref name="role-type"/></optional> <optional> <elementname="identity"> <ref name="identityType"/>name="subject"> <text/> </element> </optional> <optional> <element name="free-text"> <text/> Novo, et al. ExpiresApril 13,September 4, 2007 [Page38]45] Internet-DraftCommon ConferenceData Model SchemaOctober 2006 <element name="validity"> <ref name="validityType"/> </element> </define> <!-- ROLES IDENTITY TYPE --> <define name="identityType"> <choice> <element name="one"> <ref name="oneType"/> </element> <element name="many"> <ref name="manyType"/> </element> <element name="pseudonymous"> <text/> </element> <element name="has-been-referred"> <text/>March 2007 </element> </optional> <optional> <elementname="has-been-invited"> <text/>name="keywords"> <list> <zeroOrMore> <data type="string"/> </zeroOrMore> </list> </element> </optional> <optional> <elementname="has-been-in-conference"> <text/>name="allow-sidebars"> <data type="boolean"/> </element> </optional> <optional> <elementname="is-in-conference"> <text/>name="conference-time"> <ref name="conferencetime-type"/> </element> </optional> <optional> <elementname="administrator"> <text/>name="conf-uris"> <ref name="uris-type"/> </element> </optional> <optional> <elementname="is-on-allowed-users-list-dial-out"> <text/>name="service-uris"> <ref name="uris-type"/> </element> </optional> <optional> <elementname="is-on-allowed-users-list-refer"> <text/>name="maximum-user-count"> <data type="int"/> </element> </optional> <optional> <elementname="participant-passcode"> <text/>name="available-media"> <ref name="conference-media-type"/> </element><element name="administrator-passcode"> <text/></optional> <zeroOrMore> <ref name="anyElement"/> </zeroOrMore> </element></choice></define> <!-- CONFERENCE TIME Novo, et al. ExpiresApril 13,September 4, 2007 [Page39]46] Internet-DraftCommon ConferenceData Model SchemaOctober 2006 <!-- ACTION TYPEMarch 2007 --> <definename="action-type"> <choice>name="conferencetime-type"> <ref name="role-type"/> <zeroOrMore> <elementname="allow-refer-users-dynamically"> <data type="boolean"/>name="entry"> <optional> <element name="base"> <text/> </element> </optional> <optional> <elementname="allow-invite-users-dynamically">name="mixing-start-offset"> <datatype="boolean"/>type="dateTime"> <param name="pattern">.+T.+Z.*</param> </data> <attribute name="required-participant"> <ref name="single-role-type"/> </attribute> <ref name="anyAttribute"/> </element> </optional> <optional> <elementname="allow-remove-users-dynamically">name="mixing-end-offset"> <datatype="boolean"/>type="dateTime"> <param name="pattern">.+T.+Z.*</param> </data> <attribute name="required-participant"> <ref name="single-role-type"/> </attribute> <ref name="anyAttribute"/> </element> </optional> <optional> <elementname="show-floor-holder"> <ref name="floor-request-type"/>name="can-join-after-offset"> <data type="dateTime"> <param name="pattern">.+T.+Z.*</param> </data> </element> </optional> <optional> <elementname="show-floor-request">name="must-join-before-offset"> <datatype="boolean"/>type="dateTime"> <param name="pattern">.+T.+Z.*</param> </data> </element> </optional> <optional> <elementname="provide-anonymity">name="notify-end-of-conference"> Novo, et al. Expires September 4, 2007 [Page 47] Internet-Draft Data Model Schema March 2007 <datatype="boolean"/>type="int"/> </element> </optional> <optional> <elementname="read-only">name="allowed-extend-mixing-end-offset"> <refname="single-role-type"/>name="allowed-extend-mixing-values"/> </element><element name="read-write"></optional> <zeroOrMore> <refname="single-role-type"/>name="anyElement"/> </zeroOrMore> </element> </zeroOrMore> <zeroOrMore> <ref name="anyElement"/> </zeroOrMore> </define> <!-- ALLOWED EXTEND MIXING VALUES --> <define name="allowed-extend-mixing-values"> <choice> <value type="string">allowed</value> <value type="string">denied</value> </choice> </define> <!--USERURIS TYPE --> <definename="user-type">name="uris-type"> <ref name="role-type"/> <optional> <attribute name="state"> <ref name="state-type"/> </attribute> </optional> <interleave> <zeroOrMore> <elementname="user">name="entry"> <refname="one-user-type"/>name="uri-type"/> </element> </zeroOrMore></define> <!-- ONE USER TYPE<zeroOrMore> <element name="H323"> <ref name="H323-type"/> </element> </zeroOrMore> <zeroOrMore> Novo, et al. ExpiresApril 13,September 4, 2007 [Page40]48] Internet-DraftCommon ConferenceData Model SchemaOctober 2006March 2007 <element name="PSTN-ISDN"> <ref name="PSTN-type"/> </element> </zeroOrMore> </interleave> <zeroOrMore> <ref name="anyElement"/> </zeroOrMore> </define> <!-- SIP TYPE --> <definename="one-user-type">name="uri-type"> <ref name="role-type"/><attribute name="entity"><zeroOrMore> <element name="uri"> <data type="anyURI"/></attribute> <attribute name="state"> <ref name="state-type"/> </attribute> <zeroOrMore></element> <optional> <element name="display-text"> <text/> </element> </optional> <optional> <elementname="associated-aors"> <ref name="uris-type"/> </element> <element name="provide-anonymity"> <data type="boolean"/>name="purpose"> <text/> </element><element name="roles"></optional> <zeroOrMore> <refname="single-role-type"/> </element>name="anyElement"/> </zeroOrMore> </zeroOrMore> </define> <!-- H323 TYPE --> <define name="H323-type"> <ref name="role-type"/> <optional> <elementname="languages"> <list> <data type="language"/> </list>name="H.323-alias"> <text/> </element> </optional> <optional> <elementname="cascaded-focus">name="H.323-URI"> <data type="anyURI"/> </element><element name="sphere"></optional> Novo, et al. Expires September 4, 2007 [Page 49] Internet-Draft Data Model Schema March 2007 <zeroOrMore> <refname="sphereType"/> </element> <element name="allow-refer-users-dynamically">name="anyElement"/> </zeroOrMore> </define> <!-- PSTN TYPE --> <define name="PSTN-type"> <ref name="role-type"/> <attribute name="PIN-code"> <datatype="boolean"/> </element>type="unsignedInt"/> </attribute> <attribute name="purpose"> <data type="unsignedInt"/> </attribute> <oneOrMore> <elementname="allow-invite-users-dynamically">name="phone-number"> <datatype="boolean"/>type="unsignedInt"/> </element> <zeroOrMore> <ref name="anyElement"/> </zeroOrMore> </oneOrMore> </define> <!-- BFCP TYPE --> <define name="BFCP-type"> <ref name="role-type"/> <zeroOrMore> <elementname="allow-remove-users-dynamically">name="conference-ID"> <datatype="boolean"/>type="unsignedInt"/> </element><element name="endpoint"><zeroOrMore> <refname="endpoint-type"/> </element>name="anyElement"/> </zeroOrMore> </zeroOrMore> </define> <!-- MAXIMUM USER TYPE --> <define name="maximum-user-count-type"> <ref name="role-type"/> <ref name="anyAttribute"/> <oneOrMore> <element name="entry"> <data type="unsignedInt"/> <attribute name="role"> Novo, et al. ExpiresApril 13,September 4, 2007 [Page41]50] Internet-DraftCommon ConferenceData Model SchemaOctober 2006March 2007 <ref name="single-role-type"/> </attribute> </element> <zeroOrMore> <ref name="anyElement"/> </zeroOrMore> </oneOrMore> </define> <!--ENDPOINTCONFERENCE MEDIA TYPE --> <definename="endpoint-type">name="conference-media-type"> <ref name="role-type"/> <optional> <attributename="entity"> <text/>name="state"> <ref name="state-type"/> </attribute> </optional> <zeroOrMore> <elementname="display-text"> <text/> </element> <element name="referred"> <ref name="execution-type"/> </element> <element name="status"> <ref name="endpoint-status-type"/> </element> <element name="joining-method"> <ref name="joining-type"/> </element> <element name="joining-info"> <ref name="execution-type"/> </element> <element name="disconnection-method"> <ref name="disconnection-type"/> </element> <element name="disconnection-info"> <ref name="execution-type"/> </element> <element name="media">name="entry"> <refname="media-type"/>name="conference-medium-type"/> </element><element name="call-info"></zeroOrMore> <zeroOrMore> <refname="call-type"/> </element>name="anyElement"/> </zeroOrMore> </define> <!--MEDIACONFERENCE MEDIUM TYPE --> <definename="media-type">name="conference-medium-type"> <ref name="role-type"/> <attributename="id">name="label"> <text/> </attribute><zeroOrMore><optional> <element name="display-text">Novo, et al. Expires April 13, 2007 [Page 42] Internet-Draft Common Conference Schema October 2006<text/> </element> </optional> <optional> <element name="type"> <text/> </element><element name="label"> <text/> </element> <element name="src-id"> <text/> </element></optional> <optional> <element name="status"> <ref name="media-status-type"/> Novo, et al. Expires September 4, 2007 [Page 51] Internet-Draft Data Model Schema March 2007 </element> </optional> <optional> <elementname="to-mixer">name="mixing-mode"> <refname="mixer-type"/>name="mix-mode-type"/> </element> </optional> <optional> <elementname="from-mixer"> <ref name="mixer-type"/>name="mix-level"> <data type="unsignedInt"/> </element></zeroOrMore> </define> <!-- MIXER TYPE --> <define name="mixer-type"> <ref name="role-type"/></optional> <optional> <elementname="floor"> <data type="boolean"/>name="codecs"> <ref name="codecs-type"/> </element> </optional> <optional> <element name="controls"> <refname="control-type"/>name="controls-type"/> </element> </optional></define> <!-- SIDEBARS-BY-REF TYPE --> <define name="sidebars-by-ref-type"> <ref name="role-type"/><zeroOrMore><element name="entry"><refname="uri-type"/> </element>name="anyElement"/> </zeroOrMore> </define>Novo, et al. Expires April 13, 2007 [Page 43] Internet-Draft Common Conference Schema October 2006<!--SIDEBARS-BY-VALCONTROLS TYPE --> <definename="sidebars-by-val-type">name="controls-type"> <ref name="role-type"/><zeroOrMore> <element name="entry"><optional> <attribute name="state"> <refname="conference-type"/> </element> </zeroOrMore> </define> <!-- ******************************************************************************** TYPES DEFINED IN THE EVENT PACKAGES FOR CONFERENCE STATE ******************************************************************************** --> <!-- MEDIA STATUS TYPE --> <define name="media-status-type"> <choice> <value type="string">recvonly</value> <value type="string">sendonly</value> <value type="string">sendrecv</value> <value type="string">inactive</value> </choice> </define> <!-- EXECUTION TYPE --> <define name="execution-type">name="state-type"/> </attribute> </optional> <zeroOrMore> <elementname="when"> <data type="int"/> </element> <element name="reason"> <data type="string"/> </element> <element name="by"> <data type="anyURI"/>name="control"> <ref name="control-type"/> </element> </zeroOrMore> <zeroOrMore> <ref name="anyElement"/> </zeroOrMore> </define> <!-- MIX MODE TYPE --> Novo, et al. ExpiresApril 13,September 4, 2007 [Page44]52] Internet-DraftCommon ConferenceData Model SchemaOctober 2006March 2007 <define name="mix-mode-type"> <choice> <value type="string">moderator-controlled</value> <value type="string">FCFS</value> <value type="string">automatic</value> </choice> </define> <!--CALLCODECS TYPE --> <definename="call-type">name="codecs-type"> <ref name="role-type"/> <attribute name="decision"> <ref name="decision-type"/> </attribute> <zeroOrMore> <elementname="sip">name="codec"> <refname="sip-dialog-id-type"/>name="codec-type"/> </element> </zeroOrMore> <zeroOrMore> <ref name="anyElement"/> </zeroOrMore> </define> <!--SIP DIALOG IDCODEC TYPE --> <definename="sip-dialog-id-type"> <zeroOrMore> <element name="display-text"> <text/> </element> <element name="call-id"> <text/> </element> <element name="from-tag"> <text/> </element> <element name="to-tag">name="codec-type"> <ref name="role-type"/> <attribute name="name"> <text/></element> </zeroOrMore></attribute> <attribute name="policy"> <ref name="policy-type"/> </attribute> </define> <!--DISCONNECTIONDECISION TYPE --> <definename="disconnection-type">name="decision-type"> <choice> <valuetype="string">departed</value> <value type="string">booted</value>type="string">automatic</value> <valuetype="string">failed</value> <value type="string">busy</value>type="string">moderator-controlled</value> </choice> </define> <!--JOININGPOLICY TYPE --> Novo, et al. ExpiresApril 13,September 4, 2007 [Page45]53] Internet-DraftCommon ConferenceData Model SchemaOctober 2006 -->March 2007 <definename="joining-type">name="policy-type"> <choice> <valuetype="string">dialed-in</value>type="string">allowed</value> <valuetype="string">dialed-out</value> <value type="string">focus-owner</value>type="string">disallowed</value> </choice> </define> <!--ENDPOINT STATUSCONTROL TYPE --> <definename="endpoint-status-type">name="control-type"> <choice> <element name="mute"> <data type="boolean"/> </element> <element name="pause-video"> <data type="boolean"/> </element> <element name="gain"> <data type="int"> <param name="minInclusive">-127</param> <param name="maxInclusive">127</param> </data> </element> <element name="video-layout"> <choice> <valuetype="string">pending</value> <value type="string">dialing-out</value> <value type="string">dialing-in</value>type="string">single-view</value> <valuetype="string">alerting</value>type="string">dual-view</value> <valuetype="string">on-hold</value>type="string">dual-view-crop</value> <valuetype="string">connected</value>type="string">dual-view-2x1</value> <valuetype="string">muted-via-focus</value>type="string">dual-view-2x1-crop</value> <valuetype="string">disconnecting</value>type="string">quad-view</value> <valuetype="string">disconnected</value> </choice> </define> <!-- STATE TYPE --> <define name="state-type"> <choice>type="string">multiple-3x3</value> <valuetype="string">full</value>type="string">multiple-4x4</value> <valuetype="string">partial</value>type="string">multiple-5x1</value> <valuetype="string">deleted</value>type="string">automatic</value> </choice> </element> <zeroOrMore> <ref name="anyElement"/> </zeroOrMore> </choice> </define> <!--*********************************************** TYPE DEFINED IN THE ROLE DOCUMENT *********************************************** --> <!-- ROLEHOST TYPE --> <define name="host-type"> <ref name="role-type"/> <zeroOrMore> Novo, et al. ExpiresApril 13,September 4, 2007 [Page46]54] Internet-DraftCommon ConferenceData Model SchemaOctober 2006 <define name="role-type"> <attribute name="read-only">March 2007 <element name="display-text"> <text/> </element> <element name="web-page"> <data type="anyURI"/> </element> <element name="uris"> <refname="single-role-type"/> </attribute> <attribute name="write-only">name="uris-type"/> </element> <zeroOrMore> <refname="single-role-type"/> </attribute> </define> <!-- SINGLE ROLE TYPE --> <define name="single-role-type"> <choice> <value type="string">Administrator</value> <value type="string">Creator</value> <value type="string">Moderator</value> <value type="string">Participant</value> <value type="string">Observer</value> </choice>name="anyElement"/> </zeroOrMore> </zeroOrMore> </define> <!--************************************************************ TYPE DEFINED IN THE COMMON POLICY DOCUMENT ************************************************************ --> <!-- VALIDITYCONFERENCE STATE TYPE --> <definename="validityType"> <choice>name="conference-state-type"> <ref name="role-type"/> <optional> <elementname="from">name="allow-conference-event-subscription"> <datatype="int"/>type="boolean"/> </element> </optional> <optional> <elementname="until">name="user-count"> <datatype="int"/>type="unsignedInt"/> </element></choice></optional> <optional> <element name="active"> <data type="boolean"/> </element> </optional> <optional> <element name="locked"> <data type="boolean"/> </element> </optional> <zeroOrMore> <ref name="anyElement"/> </zeroOrMore> </define> <!--ONEFLOOR INFORMATION TYPE --> <define name="floor-information-type"> <ref name="role-type"/> Novo, et al. ExpiresApril 13,September 4, 2007 [Page47]55] Internet-DraftCommon ConferenceData Model SchemaOctober 2006 --> <define name="oneType"> <attribute name="id">March 2007 <zeroOrMore> <element name="conference-ID"> <ref name="BFCP-type"/> </element> <element name="allow-floor-events"> <datatype="anyURI"/> </attribute>type="boolean"/> </element> <element name="floor-request-handling"> <ref name="floor-request-type"/> </element> <element name="conference-floor-policy"> <ref name="Conference-floor-policy"/> </element> <zeroOrMore> <ref name="anyElement"/> </zeroOrMore> </zeroOrMore> </define> <!--MANYFLOOR REQUEST TYPE --> <definename="manyType">name="floor-request-type"> <choice><element name="except"> <ref name="exceptType"/> </element><value type="string">block</value> <value type="string">confirm</value> </choice><attribute name="domain"> <text/> </attribute></define> <!-- CONFERENCE FLOOR POLICY --> <definename="exceptType"> <attribute name="domain"> <text/> </attribute>name="Conference-floor-policy"> <ref name="role-type"/> <oneOrMore> <element name="floor"> <attributename="id">name="moderator-controlled"> <datatype="anyURI"/>type="boolean"/> </attribute></define> <!-- SPHERE TYPE --> <define name="sphereType"><attributename="value">name="label"> <text/> </attribute></define> </grammar> 5. XML Schema Extensibility The Common Conference Information Data Model defined in this document is meant to be extensible toward specific application domains. Such<ref name="anyAttribute"/> <zeroOrMore> <element name="media-types"> <ref name="role-type"/> <choice> <value type="string">video</value> <value type="string">audio</value> <value type="string">application</value> Novo, et al. ExpiresApril 13,September 4, 2007 [Page48]56] Internet-DraftCommon ConferenceData Model SchemaOctober 2006 an extension is accomplished by defining elements, child elements and attributes that are specific to the desired application domain. Each extension MUST define its own namespace. Points of extension MUST be defined in the schema, and SHOULD be done using the <anyName>/ <except> construct. Elements or attributes from unknown namespaces MUST be ignored. 6. XML example The following is an example of a common conference information document. The conference starts on October 17, 2006, at 10:30 AM in New York City and finishes the same day at 12:30 PM every week. In this example, there are currently 3 participants in a conference, one administrator, one moderator, and one participant. Note that sidebars are allowed in this conference and there is one sidebar in the conference. Also note that there is one floor moderator for the audio and a different floor moderator for the video. <?xml version="1.0" encoding="UTF-8"?> <conference-info xmlns="urn:ietf:params:xml:ns:common-conference-schema" xmlns:info="urn:ietf:params:xml:ns:conference-info" xmlns:sesspol="urn:ietf:params:xml:ns:sessionpolicy" xmlns:compol="urn:ietf:params:xml:ns:common-policy" entity="sips:conference@example.com">March 2007 <value type="string">data</value> <value type="string">control</value> <value type="string">message</value> <value type="string">text</value> </choice> </element> <element name="algorithm"> <ref name="role-type"/> <choice> <value type="string">moderator-controlled</value> <value type="string">FCFS</value> <value type="string">random</value> </choice> </element> <element name="max-floor-users"> <data type="nonNegativeInteger"/> </element> <element name="chair-id"> <data type="anyURI"/> </element> <zeroOrMore> <ref name="anyElement"/> </zeroOrMore> </zeroOrMore> </element> </oneOrMore> </define> <!--CONFERENCE DESCRIPTIONUSERS TYPE --><info:conference-description xml:lang="en-us"> <info:display-text>Discussion of Formula-1 racing< /info:display-text> <info:subject> Sports:Formula-1</info:subject> <info:free-text>This is a conference example</info:free-text> <info:keywords>Formula-1, cars</info:keywords> <web-page>http://www.example.com/users/alice/formula-1< /web-page> <security-level>low</security-level> <allow-sidebars>true</allow-sidebars> <conference-stage>running</conference-stage><define name="users-type"> <optional> <attribute name="state"> <ref name="state-type"/> </attribute> </optional> <ref name="role-type"/> <optional> <element name="join-handling"> <ref name="join-handling-type"/> </element> </optional> <optional> <element name="user-admission-policy"> <ref name="user-admission-policy-type"/> </element> </optional> <optional> Novo, et al. Expires September 4, 2007 [Page 57] Internet-Draft Data Model Schema March 2007 <element name="user-must-be-specified"> <data type="boolean"/> </element> </optional> <optional> <element name="allowed-users-list"> <ref name="UserList"/> </element> </optional> <zeroOrMore> <element name="user"> <ref name="user-type"/> </element> </zeroOrMore> <zeroOrMore> <ref name="anyElement"/> </zeroOrMore> </define> <!--CONFERENCE TIMEUSERS ADMISSION POLICY --><conference-time> <entry> <base>BEGIN:VCALENDAR<define name="user-admission-policy-type"> <choice> <value type="string">closedAuthenticated</value> <value type="string">openAuthenticated</value> <value type="string">anonymous</value> </choice> </define> <!-- JOIN HANDLING TYPE --> <define name="join-handling-type"> <choice> <value type="string">block</value> <value type="string">allow</value> <value type="string">confirm</value> <value type="string">IVR</value> <value type="string">directed-operator</value> </choice> </define> <!-- USERLIST --> <define name="UserList"> <ref name="role-type"/> <zeroOrMore> <element name="target"> <ref name="target-type"/> Novo, et al. ExpiresApril 13,September 4, 2007 [Page49]58] Internet-DraftCommon ConferenceData Model SchemaOctober 2006 PRODID:-//LlamaSpinner Inc.//NONSGML CamelCall//EN VERSION:2.0 BEGIN:VEVENT DTSTAMP:20051103T140728Z UID:carol at example.com ORGANIZER:MAILTO:carol at example.com DTSTART:20061017T143000Z RRULE:FREQ=WEEKLY DTEND:20061017T163000Z</base> <mixing-start-offset required-participant="moderator"> 20061017T142900Z</mixing-start-offset> <mixing-end-offset required-participant="participant"> 20061017T163100Z</mixing-end-offset> <must-join-before-offset> 20061017T15300Z</must-join-before-offset> </entry> </conference-time>March 2007 </element> </zeroOrMore> <zeroOrMore> <ref name="anyElement"/> </zeroOrMore> </define> <!--CONFERENCE UNIQUE IDENTIFIERSTARGET TYPE --><info:conf-uris> <info:SIP> <info:uri>tel:+3585671234</info:uri> <info:display-text>Conference Bridge</info:display-text> <info:purpose>participation</info:purpose> </info:SIP> <info:SIP> <info:uri>http://www.example.com/54634/live.ram</info:uri> <info:purpose>streaming</info:purpose> </info:SIP> </info:conf-uris><define name="target-type"> <ref name="role-type"/> <attribute name="uri"> <data type="anyURI"/> </attribute> <attribute name="method"> <ref name="method-type"/> </attribute> </define> <!--SERVICE URISMETHOD TYPE --><info:service-uris> <info:SIP> <info:uri>http://www.example.com/formula1/</info:uri> <info:purpose>web-page</info:purpose> </info:SIP> </info:service-uris><define name="method-type"> <choice> <value type="string">dial-in</value> <value type="string">dial-out</value> <value type="string">refer</value> </choice> </define> <!--MAXIMUMUSERCOUNTTYPE --><maximum-user-count> <entry role = "administrator">2</entry> <entry role = "moderator">5</entry> <entry role = "participant">150</entry><define name="user-type"> <ref name="role-type"/> <attribute name="entity"> <data type="anyURI"/> </attribute> <optional> <attribute name="state"> <ref name="state-type"/> </attribute> </optional> <optional> <element name="display-text"> <text/> </element> </optional> <optional> <element name="associated-aors"> Novo, et al. ExpiresApril 13,September 4, 2007 [Page50]59] Internet-DraftCommon ConferenceData Model SchemaOctober 2006 </maximum-user-count> <!-- AVAILABLE MEDIA --> <info:available-media> <info:entry label="10234"> <info:display-text>main audio</info:display-text> <info:type>audio</info:type> <info:status>sendrecv</info:status> <mixing-mode>automatic</mixing-mode> <mix-level>3</mix-level> <codecs decision="automatic"> <codec name="PCMU" policy="allowed"/> </codecs> </info:entry> <info:entry label="10235"> <info:display-text>main video</info:display-text> <info:type>video</info:type> <mixing-mode>automatic</mixing-mode> <mix-level>4</mix-level> <info:status>sendrecv</info:status> <sesspol:codecs decision="automatic"> <sesspol:codec name="H.263" policy="allowed"/> </sesspol:codecs> </info:entry> </info:available-media> </info:conference-description> <!-- HOST INFO --> <info:host-info> <info:display-text>Formula1</info:display-text> <info:web-page>http://www.example.com/formula-1/< /info:web-page> <info:uris> <info:SIP> <info:uri>sip:alice@example.com</info:uri> </info:SIP> <info:SIP> <info:uri>sip:carol@example.com</info:uri> </info:SIP> </info:uris> </info:host-info> <!-- CONFERENCE STATE --> <info:conference-state> <allow-conference-state>true<March 2007 <ref name="uris-type"/> </element> </optional> <optional> <element name="provide-anonymity"> <data type="boolean"/> </element> </optional> <optional> <element name="roles"> <ref name="roles-type"/> </element> </optional> <optional> <element name="languages"> <list> <data type="language"/> </list> </element> </optional> <optional> <element name="cascaded-focus"> <data type="anyURI"/> </element> </optional> <optional> <element name="allow-refer-users-dynamically"> <data type="boolean"/> </element> </optional> <optional> <element name="allow-invite-users-dynamically"> <data type="boolean"/> </element> </optional> <optional> <element name="allow-remove-users-dynamically"> <data type="boolean"/> </element> </optional> <zeroOrMore> <element name="endpoint"> <ref name="endpoint-type"/> </element> </zeroOrMore> <zeroOrMore> <ref name="anyElement"/> </zeroOrMore> Novo, et al. ExpiresApril 13,September 4, 2007 [Page51]60] Internet-DraftCommon ConferenceData Model SchemaOctober 2006 /allow-conference-state> <info:user-count>3</info:user-count> <info:active>true</info:active> <info:locked>false</info:locked> </info:conference-state> <!-- FLOOR INFORMATION --> <floor-information> <allow-floor-events>true</allow-floor-events> <floor-request-handling>1 </floor-request-handling> <conference-floor-policy> <floor moderator-controlled="true" label="10234"> <media-types>audio</media-types> <algorithm>Moderator-controlled</algorithm> <max-floor-users>1</max-floor-users> <moderator-uri>sip:alice@example.com< /moderator-uri> </floor> <floor moderator-controlled="true" label="10235"> <media-types>video</media-types> <algorithm>Moderator-controlled</algorithm> <max-floor-users>1</max-floor-users> <moderator-uri>sip:carol@example.com< /moderator-uri> </floor> </conference-floor-policy> </floor-information> <!-- USERS --> <users> <join-handling>allow</join-handling> <!-- ALLOWED USERS LIST --> <allowed-users-list> <target uri="sip:bob@example.com" method="dial-out"/> <target uri="sip:alice@example.com" method="dial-out"/> <target uri="sip:carol@example.com" method="dial-out"/> <target uri="sip:john@example.com" method="refer"/> </allowed-users-list>March 2007 </define> <!--PRIVILEGES CONTROL LISTENDPOINT TYPE --><privileges-control-list> <conference-rules> <entry id="1"><define name="endpoint-type"> <ref name="role-type"/> <attribute name="entity"> <text/> </attribute> <optional> <attribute name="state"> <ref name="state-type"/> </attribute> </optional> <optional> <element name="display-text"> <text/> </element> </optional> <optional> <element name="referred"> <zeroOrMore> <ref name="conference-info-urn"/> </zeroOrMore> </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"> <zeroOrMore> <ref name="conference-info-urn"/> </zeroOrMore> </element> </optional> <optional> <element name="disconnection-method"> <ref name="disconnection-type"/> </element> </optional> Novo, et al. ExpiresApril 13,September 4, 2007 [Page52]61] Internet-DraftCommon ConferenceData Model SchemaOctober 2006 <conditions> <compol:identity> <compol:domain>example.com</compol:domain> </compol:identity> <compol:validity> <compol:from>20061017T143000Z</compol:from> <compol:to>20061017T163000Z</compol:to> </compol:validity> </conditions> <compol:actions> <compol:allow-conference-state>true< /compol:allow-conference-state> </compol:actions> </entry> <entry id="2"> <conditions> <compol:identity> <compol:uri>bob@example.com</compol:uri> </compol:identity> </conditions> <compol:actions> <join-handling>block</join-handling> </compol:actions> </entry> </conference-rules> </privileges-control-list>March 2007 <optional> <element name="disconnection-info"> <zeroOrMore> <ref name="conference-info-urn"/> </zeroOrMore> </element> </optional> <zeroOrMore> <element name="media"> <ref name="media-type"/> </element> </zeroOrMore> <optional> <element name="call-info"> <zeroOrMore> <ref name="conference-info-urn"/> </zeroOrMore> </element> </optional> <zeroOrMore> <ref name="anyElement"/> </zeroOrMore> </define> <!--USERMEDIA TYPE --><info:user entity="sip:bob@example.com"> <info:display-text>Bob Hoskins</display-text> <info:associated-aors> <info:entry> <info:uri>mailto:bob@example.com</info:uri> <info:display-text>email</info:display-text> </info:entry> </info:associated-aors> <provide-anonymity>false</provide-anonymity> <info:roles> <info:entry>participant</info:entry> </info:roles> <info:languages>en</info:languages> <sphere value="work"/> <allow-refer-users-dynamically>false< /allow-refer-users-dynamically> <allow-invite-users-dynamically>false< /allow-invite-users-dynamically> <allow-remove-users-dynamically>false<<define name="media-type"> <attribute name="id"> <data type="int"/> </attribute> <optional> <attribute name="state"> <ref name="state-type"/> </attribute> </optional> <ref name="anyAttribute"/> <optional> <element name="display-text"> <text/> </element> </optional> <optional> <element name="type"> <text/> </element> </optional> <optional> <element name="label"> Novo, et al. ExpiresApril 13,September 4, 2007 [Page53]62] Internet-DraftCommon ConferenceData Model SchemaOctober 2006 /allow-remove-users-dynamically> <!-- ENDPOINTS --> <info:endpoint entity="sip:bob@example.com"> <info:display-text>Bob's Laptop</info:display-text> <info:referred> <info:when>20061017T140000Z</info:when> <info:reason>expert required</info:reason> <info:by>sip:alice@example.com</info:by> </info:referred> <info:status>connected</info:status> <info:joining-method>dialed-out</info:joining-method> <info:joining-info> <info:when>20061017T140000Z</info:when> <info:reason>invitation</info:reason> <info:by>sip:alice@example.com</info:by> </info:joining-info> <!-- MEDIA --> <info:media id="1"> <info:label>10235</info:label> <info:src-id>432424</info:src-id> </info:media> <!-- CALL INFO --> <info:call-info> <info:sip> <info:display-text>full info</info:display-text> <info:call-id>hsjh8980vhsb78</info:call-id> <info:from-tag>vav738dvbs</info:from-tag> <info:to-tag>8954jgjg8432</info:to-tag> </info:sip> </info:call-info> </info:endpoint> </info:user>March 2007 <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="to-mixer"> <ref name="mixer-type"/> </element> </optional> <optional> <element name="from-mixer"> <ref name="mixer-type"/> </element> </optional> <zeroOrMore> <ref name="anyElement"/> </zeroOrMore> </define> <!--USERMIXER TYPE --><info:user entity="sip:alice@example.com"> <info:display-text>Alice Kay</info:display-text> <info:associated-aors> <info:entry> <info:uri>mailto:alice@example.com</info:uri> <info:display-text>email</info:display-text> </info:entry><define name="mixer-type"> <ref name="role-type"/> <optional> <attribute name="state"> <ref name="state-type"/> </attribute> </optional> <optional> <element name="floor"> <data type="boolean"/> </element> <element name="controls"> <ref name="controls-type"/> </element> </optional> <zeroOrMore> <ref name="anyElement"/> </zeroOrMore> Novo, et al. ExpiresApril 13,September 4, 2007 [Page54]63] Internet-DraftCommon ConferenceData Model SchemaOctober 2006 </info:associated-aors> <provide-anonymity>false</provide-anonymity> <info:roles> <info:entry>moderator</info:entry> </info:roles> <info:languages>en</info:languages> <sphere value="work"/> <allow-refer-users-dynamically>true< /allow-refer-users-dynamically> <allow-invite-users-dynamically>true< /allow-invite-users-dynamically> <allow-remove-users-dynamically>true< /allow-remove-users-dynamically>March 2007 </define> <!--ENDPOINTSSIDEBARS-BY-REF TYPE --><info:endpoint entity="sip:alice@example.com"> <info:display-text>Alice's Desktop</info:display-text> <info:status>connected</info:status> <info:joining-method>dialed-in</info:joining-method> <info:joining-info> <info:when>20061017T133508Z</info:when> <info:reason>invitation</info:reason> <info:by>sip:conference@example.com</info:by> </info:joining-info><define name="sidebars-by-ref-type"> <ref name="role-type"/> <optional> <attribute name="state"> <ref name="state-type"/> </attribute> </optional> <zeroOrMore> <element name="entry"> <ref name="uri-type"/> </element> </zeroOrMore> <zeroOrMore> <ref name="anyElement"/> </zeroOrMore> </define> <!--MEDIASIDEBARS-BY-VAL TYPE --><info:media id="1"> <info:label>10235</info:label> <info:src-id>432424</info:src-id> <info:status>sendrecv</info:status> </info:media> <info:media id="2"> <info:label>10234</info:label> <info:src-id>532535</info:src-id> <info:status>sendrecv</info:status> </info:media><define name="sidebars-by-val-type"> <ref name="role-type"/> <optional> <attribute name="state"> <ref name="state-type"/> </attribute> </optional> <zeroOrMore> <element name="entry"> <ref name="conference-type"/> </element> </zeroOrMore> <zeroOrMore> <ref name="anyElement"/> </zeroOrMore> </define> <!--CALL INFOROLES_TYPE --><info:call-info> <info:sip> <info:display-text>full info</info:display-text> <info:call-id>truy45469123478</info:call-id> <info:from-tag>asd456cbgt</info:from-tag> <info:to-tag>3456jgjg1234</info:to-tag> </info:sip><define name="roles-type"> <zeroOrMore> <element name="entry"> <ref name="single-role-type"/> </element> </zeroOrMore> Novo, et al. ExpiresApril 13,September 4, 2007 [Page55]64] Internet-DraftCommon ConferenceData Model SchemaOctober 2006 </info:call-info> </info:endpoint> </info:user>March 2007 <zeroOrMore> <ref name="anyElement"/> </zeroOrMore> </define> <!--USERROLE TYPE --><info:user entity="sip:carol@example.com"> <info:display-text>Carol More</info:display-text> <info:associated-aors> <info:entry> <info:uri>mailto:carol@example.com</info:uri> <info:display-text>email</info:display-text> </info:entry> </info:associated-aors> <provide-anonymity>false</provide-anonymity> <info:roles> </info:entry>administrator</info:entry> </info:roles> <info:languages>en</info:languages> <sphere value="work"/> <allow-refer-users-dynamically>true< /allow-refer-users-dynamically> <allow-invite-users-dynamically>true< /allow-invite-users-dynamically> <allow-remove-users-dynamically>true< /allow-remove-users-dynamically><define name="role-type"> <optional> <attribute name="read-only"> <ref name="single-role-type"/> </attribute> </optional> <optional> <attribute name="write-only"> <ref name="single-role-type"/> </attribute> </optional> <ref name="anyAttribute"/> </define> <!--ENDPOINTSSINGLE ROLE TYPE --> <define name="single-role-type"> <choice> <value type="string">administrator</value> <value type="string">creator</value> <value type="string">moderator</value> <value type="string">participant</value> <value type="string">observer</value> </choice> </define> <!-- ********************************* EXTENSIBILITY OF THE SCHEMA ********************************* --><info:endpoint entity="sip:carol@example.com"> <info:display-text>Carol's Computer</info:display-text> <info:status>connected</info:status> <info:joining-method>dialed-in</info:joining-method> <info:joining-info> <info:when>20061017T133005Z</info:when> <info:reason>invitation</info:reason> <info:by>sip:conference@example.com</info:by> </info:joining-info><!--MEDIAEXTENSIBILITY ELEMENTS --><info:media id="1"> <info:label>10235</info:label> <info:src-id>432424</info:src-id> <info:status>sendrecv</info:status> </info:media> <info:media id="2"> <info:label>10234</info:label><define name="anyElement"> <element> <anyName/> <zeroOrMore> <choice> <attribute> <anyName/> </attribute> Novo, et al. ExpiresApril 13,September 4, 2007 [Page56]65] Internet-DraftCommon ConferenceData Model SchemaOctober 2006 <info:src-id>532535</info:src-id> <info:status>sendrecv</info:status> </info:media> <!-- CALL INFO --> <info:call-info> <info:sip> <info:display-text>full info</info:display-text> <info:call-id>wevb12562321894</info:call-id> <info:from-tag>asw456wedf</info:from-tag> <info:to-tag>2365dfrt3497</info:to-tag> </info:sip> </info:call-info> </info:endpoint> </info:user> </users>March 2007 <text/> <ref name="anyElement"/> </choice> </zeroOrMore> </element> </define> <!--SIDEBARS BY REFERENCEEXTENSIBILITY ATTRIBUTES --><info:sidebars-by-ref> <info:entry> <info:uri>sips:conference@example.com;grid=40</info:uri> <info:display-text>private with Bob</info:display-text> </info:entry> </info:sidebars-by-ref><define name="anyAttribute"> <zeroOrMore> <attribute> <anyName> <except> <name ns="">entity</name> <name ns="">version</name> <name ns="">state</name> <name ns="">xml:lang</name> <name ns="">required-participant</name> <name ns="">PIN-code</name> <name ns="">purpose</name> <name ns="">role</name> <name ns="">type</name> <name ns="">min</name> <name ns="">max</name> <name ns="">label</name> <name ns="">decision</name> <name ns="">name</name> <name ns="">policy</name> <name ns="">moderator-controlled</name> <name ns="">uri</name> <name ns="">method</name> <name ns="">id</name> <name ns="">domain</name> <name ns="">read-only</name> <name ns="">write-only</name> <nsName ns=""/> <nsName ns="urn:ietf:params:xml:ns:conference-schema"/> </except> </anyName> <text/> </attribute> </zeroOrMore> </define> <!--SIDEBARS BY VALUE --> <info:sidebars-by-val> <info:entry entity="sips:conference@example.com;grid=40"> <info:users> <info:user entity="sip:bob@example.com"/> <info:user entity="sip:carol@example.com"/> </info:users> </info:entry> </info:sidebars-by-val> </info:conference-info> Note that due to RFC formatting conventions, this documents splits lines whose content would exceed 72 characters. Two backslash characters mark where the lines folding has taken place. These backslash would not appear in the actual XML data model.************************************************************* TYPES DEFINED IN THE EVENT PACKAGE FOR CONFERENCE STATE ************************************************************* Novo, et al. ExpiresApril 13,September 4, 2007 [Page57]66] Internet-DraftCommon Conference Schema October 2006 7. Security Considerations A malicious user can manipulate parts of the Conference Information Data Model privileges document giving themselves and others privileges to manipulate the data model. It is very important that only authorized clients are able to manipulate the Conference InformationData Modeldocument. Any conference control protocol MUST provide authentication, confidentiality and integrity. 8. IANA Considerations 9. Acknowledgements This document is really a distillation of many ideas discussed over a long period of time. These ideas were contributed by many different drafts in the XCON working group and the SIPPING working group. I would like to thanks Orit Levin, Adam Roach, Mary Barnes, Chris Boulton, Umesh Chandra, Orit Levin, Jari Urpilainen, and Srivatsa Srinivasan for their comments. Also, I would like to thanks Hisham Khartabil, Petri Koskelainen, and Aki Niemi to let us use the policy information of their cpcp drafts in this document. 10. References 10.1. Normative References [1] Barnes, M., "A Framework andSchema March 2007 --> <!-- WILDCARD FOR EVENT-PACKAGE NAMESPACE --> <define name="conference-info-urn"> <element> <anyName> <except> <nsName ns="urn:ietf:params:xml:ns:conference-info-urn"/> <nsName ns=""/> </except> </anyName> <mixed> <zeroOrMore> <choice> <attribute> <anyName/> </attribute> <ref name="conference-info-urn"/> </choice> </zeroOrMore> </mixed> </element> </define> <!-- DEFINITION OF STATE TYPE --> <define name="state-type"> <choice> <value>full</value> <value>partial</value> <value>deleted</value> </choice> </define> <!-- DEFINITION OF ENDPOINT STATUS TYPE --> <define name="media-status-type"> <choice> <value>recvonly</value> <value>sendonly</value> <value>sendrecv</value> <value>inactive</value> </choice> </define> <!-- ENDPOINT STATUS TYPE --> Novo, et al. Expires September 4, 2007 [Page 67] Internet-Draft Data Modelfor Centralized Conferencing", draft-ietf-xcon-framework-05 (work in progress), September 2006. [2] Rosenberg, J., Schulzrinne, H., and O. Levin, "A Session Initiation Protocol (SIP) Event Package for Conference State", RFC 4575, August 2006. [3] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119,Schema March1997. [4] Rosenberg, J., "A Framework for Conferencing with the Session Initiation Protocol (SIP)", RFC 4353, February 2006. [5] Paoli, J., Maler, E., Sperberg-McQueen, C., and T. Bray, "Extensible Markup Language (XML) 1.0 (Second Edition)", World Wide Web Consortium FirstEdition REC-xml-20001006, October 2000, <http://www.w3.org/TR/2000/REC-xml-20001006>.2007 <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> </choice> </define> <!-- JOINING TYPE --> <define name="joining-type"> <choice> <value>dialed-in</value> <value>dialed-out</value> <value>focus-owner</value> </choice> </define> <!-- DISCONNECTION TYPE --> <define name="disconnection-type"> <choice> <value>departed</value> <value>booted</value> <value>failed</value> <value>busy</value> </choice> </define> <!-- ****************************************** TYPE DEFINED IN THE COMMON POLICY DOCUMENT ****************************************** --> <!-- WILDCARD FOR COMMON-POLICY NAMESPACE --> <define name="common-policy"> <element> <anyName> <except> <nsName ns="urn:ietf:params:xml:ns:common-policy"/> <nsName ns=""/> Novo, et al. ExpiresApril 13,September 4, 2007 [Page58]68] Internet-DraftCommon ConferenceData Model SchemaOctober 2006 [6] Dawson, F. and Stenerson, D., "Internet Calendaring and Scheduling Core Object Specification (iCalendar)", RFC 2445, November 1998. 10.2. Informative References [7] Camarillo, G., "The Binary Floor Control Protocol (BFCP)", draft-ietf-xcon-bfcp-06 (work in progress), December 2005. [8] Schulzrinne, H., "Common Policy: A Document Format for Expressing Privacy Preferences", draft-ietf-geopriv-common-policy-11 (work in progress), August 2006. [9] Camarillo, G., "Session Description Protocol (SDP) Format for Binary Floor Control Protocol (BFCP) Streams", draft-ietf-mmusic-sdp-bfcp-03 (work in progress), December 2005.March 2007 </except> </anyName> <mixed> <zeroOrMore> <choice> <attribute> <anyName/> </attribute> <ref name="common-policy"/> </choice> </zeroOrMore> </mixed> </element> </define> </grammar> Authors' Addresses Oscar Novo Ericsson Hirsalantie 11 Jorvas 02420 Finland Email: Oscar.Novo@ericsson.com Gonzalo Camarillo Ericsson Hirsalantie 11 Jorvas 02420 Finland Email: Gonzalo.Camarillo@ericsson.com David P. Morgan Fidelity Investments 82 Devonshire St, MZV8CV3C Boston, MA 02109-3614 USA Email: Dave.Morgan@fmr.com Novo, et al. ExpiresApril 13,September 4, 2007 [Page59]69] Internet-DraftCommon ConferenceData Model SchemaOctober 2006March 2007 Roni Even Polycom 94 Derech Em Hamoshavot Petach Tikva 49130 Israel Email: roni.even@polycom.co.il Novo, et al. ExpiresApril 13,September 4, 2007 [Page60]70] Internet-DraftCommon ConferenceData Model SchemaOctober 2006March 2007 Full Copyright Statement Copyright (C) TheInternet Society (2006).IETF Trust (2007). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNETSOCIETYSOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Intellectual Property The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org. Acknowledgment Funding for the RFC Editor function is provided by the IETF Administrative Support Activity (IASA). Novo, et al. ExpiresApril 13,September 4, 2007 [Page61]71] ----