draft-ietf-xcon-common-data-model-27.txt   draft-ietf-xcon-common-data-model-28.txt 
XCON O. Novo XCON O. Novo
Internet-Draft G. Camarillo Internet-Draft G. Camarillo
Intended status: Standards Track Ericsson Intended status: Standards Track Ericsson
Expires: October 29, 2011 D. Morgan Expires: November 28, 2011 D. Morgan
Fidelity Investments Fidelity Investments
J. Urpalainen J. Urpalainen
Nokia Nokia
April 27, 2011 May 27, 2011
Conference Information Data Model for Centralized Conferencing (XCON) Conference Information Data Model for Centralized Conferencing (XCON)
draft-ietf-xcon-common-data-model-27.txt draft-ietf-xcon-common-data-model-28.txt
Abstract Abstract
[RFC5239] defines the idea of a centralized conferencing (XCON) as an RFC5239 defines the idea of a centralized conferencing (XCON) as an
association of participants with a central focus. The state of a association of participants with a central focus. The state of a
conference is represented by a conference object. This document conference is represented by a conference object. This document
defines an Extensible Markup Language (XML)-based conference defines an Extensible Markup Language (XML)-based conference
information data model to be used for conference objects. A information data model to be used for conference objects. A
conference information data model is designed to convey information conference information data model is designed to convey information
about the conference and about participation in the conference. The about the conference and about participation in the conference. The
conference information data model defined in this document conference information data model defined in this document
constitutes an extension of the data format specified in the Session constitutes an extension of the data format specified in the Session
Initiation Protocol (SIP) Event Package for Conference State Initiation Protocol (SIP) Event Package for Conference State.
[RFC4575].
Status of this Memo Status of this Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on October 29, 2011. This Internet-Draft will expire on November 28, 2011.
Copyright Notice Copyright Notice
Copyright (c) 2011 IETF Trust and the persons identified as the Copyright (c) 2011 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 3, line 49 skipping to change at page 3, line 49
4.5.1. <conference-ID> . . . . . . . . . . . . . . . . . . . 22 4.5.1. <conference-ID> . . . . . . . . . . . . . . . . . . . 22
4.5.2. <allow-floor-events> . . . . . . . . . . . . . . . . . 23 4.5.2. <allow-floor-events> . . . . . . . . . . . . . . . . . 23
4.5.3. <floor-request-handling> . . . . . . . . . . . . . . . 23 4.5.3. <floor-request-handling> . . . . . . . . . . . . . . . 23
4.5.4. <conference-floor-policy> . . . . . . . . . . . . . . 23 4.5.4. <conference-floor-policy> . . . . . . . . . . . . . . 23
4.6. <users> . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.6. <users> . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.6.1. <join-handling> . . . . . . . . . . . . . . . . . . . 24 4.6.1. <join-handling> . . . . . . . . . . . . . . . . . . . 24
4.6.2. <user-admission-policy> . . . . . . . . . . . . . . . 25 4.6.2. <user-admission-policy> . . . . . . . . . . . . . . . 25
4.6.3. <allowed-users-list> . . . . . . . . . . . . . . . . . 26 4.6.3. <allowed-users-list> . . . . . . . . . . . . . . . . . 26
4.6.4. <deny-users-list> . . . . . . . . . . . . . . . . . . 27 4.6.4. <deny-users-list> . . . . . . . . . . . . . . . . . . 27
4.6.5. <user> and Its <user> Sub-elements . . . . . . . . . . 27 4.6.5. <user> and Its <user> Sub-elements . . . . . . . . . . 27
4.6.5.1. <display-text> . . . . . . . . . . . . . . . . . . 28 4.6.5.1. <display-text> . . . . . . . . . . . . . . . . . . 29
4.6.5.2. <associated-aors> . . . . . . . . . . . . . . . . 29 4.6.5.2. <associated-aors> . . . . . . . . . . . . . . . . 29
4.6.5.3. <provide-anonymity> . . . . . . . . . . . . . . . 29 4.6.5.3. <provide-anonymity> . . . . . . . . . . . . . . . 29
4.6.5.4. <roles> . . . . . . . . . . . . . . . . . . . . . 29 4.6.5.4. <roles> . . . . . . . . . . . . . . . . . . . . . 29
4.6.5.5. <languages> . . . . . . . . . . . . . . . . . . . 29 4.6.5.5. <languages> . . . . . . . . . . . . . . . . . . . 29
4.6.5.6. <cascaded-focus> . . . . . . . . . . . . . . . . . 29 4.6.5.6. <cascaded-focus> . . . . . . . . . . . . . . . . . 29
4.6.5.7. <allow-refer-users-dynamically> . . . . . . . . . 29 4.6.5.7. <allow-refer-users-dynamically> . . . . . . . . . 30
4.6.5.8. <allow-invite-users-dynamically> . . . . . . . . . 30 4.6.5.8. <allow-invite-users-dynamically> . . . . . . . . . 30
4.6.5.9. <allow-remove-users-dynamically> . . . . . . . . . 30 4.6.5.9. <allow-remove-users-dynamically> . . . . . . . . . 30
4.6.5.10. <endpoint> . . . . . . . . . . . . . . . . . . . . 30 4.6.5.10. <endpoint> . . . . . . . . . . . . . . . . . . . . 30
4.7. <sidebars-by-ref> . . . . . . . . . . . . . . . . . . . . 31 4.7. <sidebars-by-ref> . . . . . . . . . . . . . . . . . . . . 31
4.8. <sidebars-by-val> . . . . . . . . . . . . . . . . . . . . 32 4.8. <sidebars-by-val> . . . . . . . . . . . . . . . . . . . . 32
5. RELAX NG Schema . . . . . . . . . . . . . . . . . . . . . . . 32 5. RELAX NG Schema . . . . . . . . . . . . . . . . . . . . . . . 32
6. XML Schema Extensibility . . . . . . . . . . . . . . . . . . . 43 6. XML Schema Extensibility . . . . . . . . . . . . . . . . . . . 43
7. XML Example . . . . . . . . . . . . . . . . . . . . . . . . . 43 7. XML Example . . . . . . . . . . . . . . . . . . . . . . . . . 43
8. Security Considerations . . . . . . . . . . . . . . . . . . . 52 8. Security Considerations . . . . . . . . . . . . . . . . . . . 52
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 54 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 54
9.1. Relax NG Schema Registration . . . . . . . . . . . . . . . 54 9.1. Relax NG Schema Registration . . . . . . . . . . . . . . . 54
9.2. XML Namespace Registration . . . . . . . . . . . . . . . . 54 9.2. XML Namespace Registration . . . . . . . . . . . . . . . . 54
9.3. Conference Object Identifier Registration . . . . . . . . 55 9.3. Conference Object Identifier Registration . . . . . . . . 55
9.4. Conference User Identifier Registration . . . . . . . . . 56 9.4. Conference User Identifier Registration . . . . . . . . . 56
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 57 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 57
11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 57 11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 57
11.1. Normative References . . . . . . . . . . . . . . . . . . . 57 11.1. Normative References . . . . . . . . . . . . . . . . . . . 57
11.2. Informative References . . . . . . . . . . . . . . . . . . 58 11.2. Informative References . . . . . . . . . . . . . . . . . . 58
Appendix A. Non-Normative RELAX NG Schema in XML Syntax . . . . . 58 Appendix A. Non-Normative RELAX NG Schema in XML Syntax . . . . . 58
Appendix B. Non-Normative W3C XML Schema . . . . . . . . . . . . 86 Appendix B. Non-Normative W3C XML Schema . . . . . . . . . . . . 86
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 95 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 96
1. Introduction 1. Introduction
There is a core data set of conference information that is utilized There is a core data set of conference information that is utilized
in any conference, independent of the specific conference media. in any conference, independent of the specific conference media.
This core data set called the 'conference information data model' is This core data set called the 'conference information data model' is
defined in this document using an Extensible Markup Language (XML)- defined in this document using an Extensible Markup Language (XML)-
based. The conference information data model defined in this based format. The conference information data model defined in this
document is logically represented by the conference object. document is logically represented by the conference object.
Conference objects are a fundamental concept in Centralized Conference objects are a fundamental concept in Centralized
Conferencing, as described in the Centralized Conferencing Framework Conferencing, as described in the Centralized Conferencing Framework
[RFC5239]. A conference object contains data that represents a [RFC5239]. A conference object contains data that represents a
conference during each of its various stages (e.g., created/creation, conference during each of its various stages (e.g., created/creation,
reserved/reservation, active/activation, completed/completion). A reserved/reservation, active/activation, completed/completion). A
conference object can be manipulated using a conference control conference object can be manipulated using a conference control
protocol at a conference server. The conference object represents a protocol at a conference server. The conference object represents a
particular instantiation of a conference information data model. particular instantiation of a conference information data model.
skipping to change at page 11, line 29 skipping to change at page 11, line 29
Note that some of the elements described above such <conference- Note that some of the elements described above such <conference-
info>, <conference-description>, <sidebars-by-ref>, or <sidebars-by- info>, <conference-description>, <sidebars-by-ref>, or <sidebars-by-
val> are not defined in the data model in this specification but are val> are not defined in the data model in this specification but are
defined in the data format of [RFC4575]. We describe them here defined in the data format of [RFC4575]. We describe them here
because they are part of the basic structure of the data model. because they are part of the basic structure of the data model.
4. Data Model Definition 4. Data Model Definition
The following non-normative diagram shows the structure of conference The following non-normative diagram shows the structure of conference
object documents. The operator "!" preceding an element indicates object documents. The symbol "!" preceding an element indicates that
that the element is mandatory in the data model. The operator "*" the element is REQUIRED in the data model. The symbol "*" following
following an element indicates that the element is introduced and an element indicates that the element is introduced and defined in
defined in this document. That is, elements without a "*" have this document. That is, elements without a "*" have already been
already been defined in [RFC4575]. defined in [RFC4575].
!<conference-info> !<conference-info>
| |
|--!<conference-description> |--!<conference-description>
| |--<language>* | |--<language>*
| |--<display-text> | |--<display-text>
| |--<subject> | |--<subject>
| |--<free-text> | |--<free-text>
| |--<keywords> | |--<keywords>
| |--<allow-sidebars>* | |--<allow-sidebars>*
skipping to change at page 14, line 12 skipping to change at page 14, line 12
| | |--<associated-aors> | | |--<associated-aors>
| | |--<provide-anonymity>* | | |--<provide-anonymity>*
| | |--<roles> | | |--<roles>
| | | | | | | |
| | | ... | | | ...
| | |--<languages> | | |--<languages>
| | |--<cascaded-focus> | | |--<cascaded-focus>
| | |--<allow-refer-users-dynamically>* | | |--<allow-refer-users-dynamically>*
| | |--<allow-invite-users-dynamically>* | | |--<allow-invite-users-dynamically>*
| | |--<allow-remove-users-dynamically>* | | |--<allow-remove-users-dynamically>*
| | |--!<endpoint> | | |--<endpoint>
| | | |--<display-text> | | | |--<display-text>
| | | |--<referred> | | | |--<referred>
| | | |--<status> | | | |--<status>
| | | |--<joining-method> | | | |--<joining-method>
| | | |--<joining-info> | | | |--<joining-info>
| | | |--<disconnection-method> | | | |--<disconnection-method>
| | | |--<disconnection-info> | | | |--<disconnection-info>
| | | |--<media> | | | |--<media>
| | | | |--<type> | | | | |--<type>
| | | | |--<display-text> | | | | |--<display-text>
skipping to change at page 15, line 13 skipping to change at page 15, line 13
| | |-- <display-text> | | |-- <display-text>
| ... | ...
|--<sidebars-by-val> |--<sidebars-by-val>
| |--<entry> | |--<entry>
| | | | | |
| | ... | | ...
| |--<entry> | |--<entry>
| | | | | |
| ... ... | ... ...
Figure 3: Non-normative diagram
The following sections describe these elements in detail. The full The following sections describe these elements in detail. The full
Relax NG schema is provided Section 5. Relax NG schema is provided in Section 5.
4.1. <conference-info> 4.1. <conference-info>
A conference object document begins with the root element A conference object document begins with the root element
<conference-info>, which is defined in [RFC4575]. The <conference- <conference-info>, which is defined in [RFC4575]. The <conference-
info> attributes are described in [RFC4575]. Note that the info> attributes are described in [RFC4575]. Note that the
<conference-info> element does not have the attributes 'state' and <conference-info> element does not have the attributes 'state' and
'version' defined in [RFC4575] for this element because these 'version' defined in [RFC4575] for this element because these
attributes only apply to notification mechanisms. attributes only apply to notification mechanisms.
skipping to change at page 16, line 8 skipping to change at page 16, line 8
parent>, <conference-time>, <conf-uris>, <service-uris>, <maximum- parent>, <conference-time>, <conf-uris>, <service-uris>, <maximum-
user-count>, and <available-media>. user-count>, and <available-media>.
The following sections describe these elements in more detail. Other The following sections describe these elements in more detail. Other
child elements MAY be defined in the future to extend the child elements MAY be defined in the future to extend the
<conference-description> element. <conference-description> element.
4.2.1. <language> 4.2.1. <language>
The <language> element indicates the predominant language that is The <language> element indicates the predominant language that is
expected to be employed within a conference. The possible values of expected to be employed within a conference. This element contains
this element are the values of the 'Subtag' column of the [RFC5646] only one language. The possible values of this element are the
defined in IANA [IANA-Lan]. This element does not enforce the values of the 'Subtag' column of the [RFC5646] defined in [IANA-Lan].
language of the conference, but only informs the participants about This element does not enforce the language of the conference, but
the desirable language that they should use in the conference. only informs the participants about the desirable language that they
Participants are free to switch to other languages if they like. should use in the conference. Participants are free to switch to
other languages if they like.
4.2.2. <display-text> 4.2.2. <display-text>
The <display-text> element is described in section 5.3 of [RFC4575]. The <display-text> element is described in section 5.3 of [RFC4575].
4.2.3. <subject> 4.2.3. <subject>
The <subject> element is described in section 5.3 of [RFC4575]. The <subject> element is described in section 5.3 of [RFC4575].
4.2.4. <free-text> 4.2.4. <free-text>
skipping to change at page 17, line 24 skipping to change at page 17, line 24
offset>) for the same conference at different times. offset>) for the same conference at different times.
Every <entry> element contains the following child elements: Every <entry> element contains the following child elements:
o <base>: The <base> child element specifies the iCalendar object of o <base>: The <base> child element specifies the iCalendar object of
the conference. The iCalendar object components are defined in the conference. The iCalendar object components are defined in
[RFC5545]. [RFC5545].
o <mixing-start-offset>: The <mixing-start-offset> child element o <mixing-start-offset>: The <mixing-start-offset> child element
specifies when the conference media mixing starts before the specifies when the conference media mixing starts before the
conference starts. If the <mixing-start-offset> element is not conference starts. The <mixing-start-offset> element specifies an
present, it indicates that the conference media mixing starts absolute value rather than an offset value. If the <mixing-start-
immediately. The <mixing-start-offset> has the mandatory offset> element is not present, it indicates that the conference
'required-participant' attribute. This attribute contains one of media mixing starts immediately. The <mixing-start-offset> MUST
the following values: "none", "administrator", "moderator", include the 'required-participant' attribute. This attribute
"user", "observer", and "participant". The roles' semantic contains one of the following values: "none", "administrator",
definitions are out of the scope of this document and is subject "moderator", "user", "observer", and "participant". The roles'
to future policy documents. More values can be specified in the semantic definitions are out of the scope of this document and is
future. The 'required-participant' attribute allows a privileged subject to future policy documents. More values can be specified
user to define when media mixing starts based on the latter of the in the future. The 'required-participant' attribute allows a
mixing start time, and the time the first participant arrives. If privileged user to define when media mixing starts based on the
the value is set to "none'", mixing starts according to the mixing latter of the mixing start time, and the time the first
start time. participant arrives. If the value is set to "none'", mixing
starts according to the mixing start time.
o <mixing-end-offset>: The <mixing-end-offset> child element o <mixing-end-offset>: The <mixing-end-offset> child element
specifies the time conference media mixing stops after the specifies the time conference media mixing stops after the
conference stops. If the <mixing-end-offset> element is not conference stops. If the <mixing-end-offset> element is not
present, it indicates that the conference occurrence is not present, it indicates that the conference occurrence is not
bounded. The <mixing-end-offset> element has the mandatory bounded. The <mixing-end-offset> element MUST include the
'required-participant' attribute. This attribute contains one of 'required-participant' attribute. This attribute contains one of
the following values: "none", "administrator", "moderator", the following values: "none", "administrator", "moderator",
"observer", "user", and "participant". More values can be "observer", "user", and "participant". More values can be
specified in the future. The 'required-participant' attribute specified in the future. The 'required-participant' attribute
allows a privileged user to define when media mixing ends based on allows a privileged user to define when media mixing ends based on
the earlier of the <mixing-end-offset>, and the time the last the earlier of the <mixing-end-offset>, and the time the last
participant leaves. If the value is set to "none", mixing stops participant leaves. If the value is set to "none", mixing stops
according to the <mixing-end-offset>. If the conference policy according to the <mixing-end-offset>. If the conference policy
was modified so that last privileged user is now a normal was modified so that last privileged user is now a normal
conference participant, and the conference requires a privileged conference participant, and the conference requires a privileged
skipping to change at page 19, line 8 skipping to change at page 19, line 9
4.2.11. <service-uris> 4.2.11. <service-uris>
The <service-uris> describes auxiliary services available for the The <service-uris> describes auxiliary services available for the
conference. The <service-uris> element is described in section 5.3.2 conference. The <service-uris> element is described in section 5.3.2
of [RFC4575]. of [RFC4575].
4.2.12. <maximum-user-count> 4.2.12. <maximum-user-count>
The <maximum-user-count> contains the overall number of users allowed The <maximum-user-count> contains the overall number of users allowed
to join the conference. Note that this value is set by an to join the conference. Note that this value is typically set by an
administrator and can reflect any local policies such as network administrator and can reflect any local policies such as network
consumption, CPU processing power, and licensing rules. consumption, CPU processing power, and licensing rules.
4.2.13. <available-media> 4.2.13. <available-media>
The <available-media> element consists of a sequence of <entry> child The <available-media> element consists of a sequence of <entry> child
elements. Each <entry> element contain the 'label' attribute that is elements. Each <entry> element contain the 'label' attribute that is
the media stream identifier assigned by the conferencing server. The the media stream identifier assigned by the conferencing server. The
attribute 'label' is described in [RFC4575], section 5.3.4. Each attribute 'label' is described in [RFC4575], section 5.3.4. Each
<entry> element contains the following child elements: <entry> element MAY contain the following child elements:
o The <type> element is described in section 5.3.4 of [RFC4575]. o The <type> element is described in section 5.3.4 of [RFC4575].
o The <display-text> element is described in section 5.3.4 of o The <display-text> element is described in section 5.3.4 of
[RFC4575]. [RFC4575].
o The <status> element is described in section 5.3.4 of [RFC4575]. o The <status> element is described in section 5.3.4 of [RFC4575].
o The child element <mixing-mode> describes a default scheduling o The child element <mixing-mode> describes a default scheduling
policy by which the mixer will build the outgoing stream from the policy by which the mixer will build the outgoing stream from the
skipping to change at page 20, line 20 skipping to change at page 20, line 22
that an extension to the data model be used. In the <controls> that an extension to the data model be used. In the <controls>
element the schema is extensible, hence new control types can be element the schema is extensible, hence new control types can be
added in the future. So moderator controls that affect all media added in the future. So moderator controls that affect all media
output would go under the <available-media> element. The output would go under the <available-media> element. The
following controls elements are defined for <controls>: following controls elements are defined for <controls>:
* The <mute> element is used in conjunction with an audio stream * The <mute> element is used in conjunction with an audio stream
to cease transmission of any audio from the associated stream. to cease transmission of any audio from the associated stream.
That means that for the entire duration where mute is That means that for the entire duration where mute is
applicable, all current and future participants of the applicable, all current and future participants of the
conference are muted and will not receive any audio. It has a conference are muted and will not send any audio. It has a
"boolean" value. If this control is not specified, access to "boolean" value. If this control is not specified, access to
the control is not available to the client. the control is not available to the client.
* The <pause-video> element is used in conjunction with a video * The <pause-video> element is used in conjunction with a video
stream to cease transmission of associated media. It has a stream to cease transmission of associated media. It has a
"boolean" value. If this control is not specified, the access "boolean" value. If this control is not specified, the access
to the control is not available to the client. to the control is not available to the client.
* The <gain> element is used in conjunction with a media output * The <gain> element is used in conjunction with a media output
stream to indicate the amount of amplification of an audio stream to indicate the amount of amplification of an audio
skipping to change at page 24, line 17 skipping to change at page 24, line 17
A floor can be used for one or more media types; A floor can be used for one or more media types;
o <algorithm>: A floor can be controlled using many algorithms; the o <algorithm>: A floor can be controlled using many algorithms; the
mandatory <algorithm> element MUST be set to any of the mandatory <algorithm> element MUST be set to any of the
"moderator-controlled", "FCFS" or "random" values indicating the "moderator-controlled", "FCFS" or "random" values indicating the
algorithm. The "Moderator-controlled" value indicates that the algorithm. The "Moderator-controlled" value indicates that the
moderator of the conference controls the floor. The "FCFS" value moderator of the conference controls the floor. The "FCFS" value
states for 'first-come-first-served' floor control. states for 'first-come-first-served' floor control.
o <max-floor-users>: The <max-floor-users> child element in the o <max-floor-users>: The <max-floor-users> child element in the
<floor> element is optional and, if present, dictates the maximum <floor> element is OPTIONAL and, if present, dictates the maximum
number of users who can have the floor at one time. number of users who can have the floor at one time.
o <moderator-id>: The optional <moderator-id> indicates the 'User o <moderator-id>: The OPTIONAL <moderator-id> indicates the 'User
ID' of the moderator(s). It MUST be set if the element ID' of the moderator(s). It MUST be set if the element
<algorithm> is set to "Moderator-controlled" value. When the <algorithm> is set to "Moderator-controlled" value. When the
floor is created within the conferencing system, the XCON-User floor is created within the conferencing system, the XCON-User
identifier MAY be used as the moderator-id. In the case of BFCP identifier MAY be used as the moderator-id. In the case of BFCP
as the floor control protocol, the <moderator-id> is defined in as the floor control protocol, the <moderator-id> is defined in
[RFC4582] section 3. Note that [RFC4582] refers to the moderator [RFC4582] section 3. Note that [RFC4582] refers to the moderator
role as a 'floor chair'. role as a 'floor chair'.
4.6. <users> 4.6. <users>
skipping to change at page 28, line 10 skipping to change at page 28, line 10
XCON-USERID = "xcon-userid" ":" conf-user-id XCON-USERID = "xcon-userid" ":" conf-user-id
conf-user-id = 1*unreserved conf-user-id = 1*unreserved
[unreserved is defined in RFC3986] [unreserved is defined in RFC3986]
In order to facilitate the comparison of the XCON-USERID identifiers, In order to facilitate the comparison of the XCON-USERID identifiers,
all the components of the identifiers MUST be converted to lowercase. all the components of the identifiers MUST be converted to lowercase.
After normalizing the URI strings, the URIs comparison MUST applied a After normalizing the URI strings, the URIs comparison MUST applied a
character-by-character basis as prescribed by RFC3986, Section 6.2.1. codepoint-by-codepoint after conversion to a common character
encoding as prescribed by [RFC3986], Section 6.2.1.
Other user identifiers can be associated with this conference user Other user identifiers can be associated with this conference user
identifier and enable the conferencing system to correlate and map identifier and enable the conferencing system to correlate and map
these multiple authenticated user identities to a single global user these multiple authenticated user identities to a single global user
identifier. Figure 4 illustrates an example using the conference identifier. Figure 3 illustrates an example using the conference
user identifier in association with the user identity defined for user identifier in association with the user identity defined for
BFCP, SIP, and H323 user identity. It should be noted that a BFCP, SIP, and H323 user identity. It should be noted that a
conferencing system is free to structure such relationships as conferencing system is free to structure such relationships as
required and this information is just included as a guideline. required and this information is just included as a guideline.
+----------------+ +----------------+
| Conference | | Conference |
| User | | User |
| Identifier | | Identifier |
+----------------+ +----------------+
skipping to change at page 28, line 39 skipping to change at page 28, line 40
| |
| |
+----------------------+-------------------------+ +----------------------+-------------------------+
| | | | | |
+-------+--------+ +-----------+-----------+ +-----------+-----------+ +-------+--------+ +-----------+-----------+ +-----------+-----------+
| BFCP User ID | | SIP User URI | | H323 User URI | | BFCP User ID | | SIP User URI | | H323 User URI |
+----------------+ +-----------------------+ +-----------------------+ +----------------+ +-----------------------+ +-----------------------+
| 543 | |sip:851221@example.com | |h323:taeduk@example.com| | 543 | |sip:851221@example.com | |h323:taeduk@example.com|
+----------------+ +-----------------------+ +-----------------------+ +----------------+ +-----------------------+ +-----------------------+
Figure 4: Conference User Mapping Figure 3: Conference User Mapping
The element <user> element contains the <display-text>, <associated- The element <user> element contains the <display-text>, <associated-
aors>, <provide-anonymity>, <roles>, <languages>, <cascaded-focus>, aors>, <provide-anonymity>, <roles>, <languages>, <cascaded-focus>,
<allow-refer-users-dynamically>, <allow-invite-users-dynamically>, <allow-refer-users-dynamically>, <allow-invite-users-dynamically>,
<allow-remove-users-dynamically>, and <endpoint>. The following <allow-remove-users-dynamically>, and <endpoint>. The following
sections describe these elements in more detail. sections describe these elements in more detail.
4.6.5.1. <display-text> 4.6.5.1. <display-text>
The <display-text> child element is explained in [RFC4575], section The <display-text> child element is explained in [RFC4575], section
skipping to change at page 32, line 29 skipping to change at page 32, line 31
information that is utilized in any conference. It also contains the information that is utilized in any conference. It also contains the
variable information part of the Conference Object. variable information part of the Conference Object.
The normative schema is backwards compatible with [RFC5239], in other The normative schema is backwards compatible with [RFC5239], in other
words, valid [RFC5239] instance documents are also valid according to words, valid [RFC5239] instance documents are also valid according to
this RELAX NG schema [RELAX]. In addition to approximately similar this RELAX NG schema [RELAX]. In addition to approximately similar
RELAX NG [RELAX] definitions of [RFC5239], this schema contains RELAX NG [RELAX] definitions of [RFC5239], this schema contains
extension elements in the extension elements in the
"urn:ietf:params:xml:ns:xcon-conference-info" namespace. "urn:ietf:params:xml:ns:xcon-conference-info" namespace.
default namespace = "urn:ietf:params:xml:ns:conference-info" default namespace = "urn:ietf:params:xml:ns:conference-info"
namespace xcon = "urn:ietf:params:xml:ns:xcon-conference-info" namespace xcon = "urn:ietf:params:xml:ns:xcon-conference-info"
start = element conference-info { conference-type } start = element conference-info { conference-type }
# CONFERENCE TYPE # CONFERENCE TYPE
conference-type = conference-type =
attribute entity { text } attribute entity { text }
& anyAttribute & anyAttribute
& conference-description-type? & conference-description-type?
& element host-info { host-type }? & element host-info { host-type }?
& element conference-state { conference-state-type }? & element conference-state { conference-state-type }?
& element users { users-type }? & element users { users-type }?
& element sidebars-by-ref { uris-type }? & element sidebars-by-ref { uris-type }?
& element sidebars-by-val { sidebars-by-val-type }? & element sidebars-by-val { sidebars-by-val-type }?
& element xcon:floor-information { floor-information-type }? & element xcon:floor-information { floor-information-type }?
& anyElement* & anyElement*
# CONFERENCE DESCRIPTION TYPE # CONFERENCE DESCRIPTION TYPE
conference-description-type = conference-description-type =
element conference-description { element conference-description {
attribute xml:lang { xsd:language }? attribute lang { xsd:language }?
& anyAttribute & anyAttribute
& element display-text { text }? & element display-text { text }?
& element subject { text }? & element subject { text }?
& element free-text { text }? & element free-text { text }?
& element keywords { & element keywords {
list { xsd:string* } list { xsd:string* }
}? }?
& element conf-uris { uris-type }? & element conf-uris { uris-type }?
& element service-uris { uris-type }? & element service-uris { uris-type }?
& element maximum-user-count { xsd:int }? & element maximum-user-count { xsd:int }?
& element available-media { conference-media-type }? & element available-media { conference-media-type }?
& element xcon:language { xsd:language }? & element xcon:language { xsd:language }?
& element xcon:allow-sidebars { xsd:boolean }? & element xcon:allow-sidebars { xsd:boolean }?
& element xcon:cloning-parent { xsd:anyURI }? & element xcon:cloning-parent { xsd:anyURI }?
& element xcon:sidebar-parent { xsd:anyURI }? & element xcon:sidebar-parent { xsd:anyURI }?
& element xcon:conference-time { conferencetime-type }? & element xcon:conference-time { conferencetime-type }?
& anyElement* & anyElement*
} }
# HOST TYPE # HOST TYPE
host-type = host-type =
element display-text { text }? element display-text { text }?
& element web-page { xsd:anyURI }? & element web-page { xsd:anyURI }?
& element uris { uris-type }? & element uris { uris-type }?
& anyElement* & anyElement*
& anyAttribute & anyAttribute
# CONFERENCE STATE TYPE # CONFERENCE STATE TYPE
conference-state-type = conference-state-type =
anyAttribute anyAttribute
& element user-count { xsd:unsignedInt }? & element user-count { xsd:unsignedInt }?
& element active { xsd:boolean }? & element active { xsd:boolean }?
& element locked { xsd:boolean }? & element locked { xsd:boolean }?
& element xcon:allow-conference-event-subscription { xsd:boolean }? & element xcon:allow-conference-event-subscription { xsd:boolean }?
& anyElement* & anyElement*
# CONFERENCE MEDIA TYPE # CONFERENCE MEDIA TYPE
conference-media-type = conference-media-type =
anyAttribute anyAttribute
& element entry { conference-medium-type }* & element entry { conference-medium-type }*
& anyElement* & anyElement*
# CONFERENCE MEDIUM TYPE # CONFERENCE MEDIUM TYPE
conference-medium-type = conference-medium-type =
attribute label { text } attribute label { text }
& anyAttribute & anyAttribute
& element display-text { text }? & element display-text { text }?
& element type { text }? & element type { text }?
& element status { media-status-type }? & element status { media-status-type }?
& element xcon:mixing-mode { mixing-mode-type }? & element xcon:mixing-mode { mixing-mode-type }?
& element xcon:codecs { codecs-type }? & element xcon:codecs { codecs-type }?
& element xcon:controls { control-type }? & element xcon:controls { control-type }?
& anyElement* & anyElement*
# URIs TYPE # URIs TYPE
uris-type = uris-type =
anyAttribute anyAttribute
& element entry { uri-type }* & element entry { uri-type }*
& anyElement* & anyElement*
# URI TYPE # URI TYPE
uri-type = uri-type =
element uri { xsd:anyURI } element uri { xsd:anyURI }
& element display-text { text }? & element display-text { text }?
& element purpose { text }? & element purpose { text }?
& element modified { execution-type }? & element modified { execution-type }?
& element xcon:conference-password { text }* & element xcon:conference-password { text }*
& anyElement* & anyElement*
& anyAttribute & anyAttribute
# USERS TYPE # USERS TYPE
users-type = users-type =
anyAttribute anyAttribute
& element user { user-type }* & element user { user-type }*
& element xcon:join-handling { join-handling-type }? & element xcon:join-handling { join-handling-type }?
& element xcon:user-admission-policy { user-admission-policy-type }? & element xcon:user-admission-policy { user-admission-policy-type }?
& element xcon:allowed-users-list { allowed-users-list-type }? & element xcon:allowed-users-list { allowed-users-list-type }?
& element xcon:deny-users-list { deny-user-list-type }? & element xcon:deny-users-list { deny-user-list-type }?
& anyElement* & anyElement*
# USER TYPE # USER TYPE
user-type = user-type =
attribute entity { xsd:anyURI } attribute entity { xsd:anyURI }
& anyAttribute & anyAttribute
& element display-text { text }? & element display-text { text }?
& element associated-aors { uris-type }? & element associated-aors { uris-type }?
& element roles { & element roles {
element entry { single-role-type }+ element entry { single-role-type }+
}? }?
& element languages { & element languages {
list { xsd:language } list { xsd:language }
}? }?
& element cascaded-focus { xsd:anyURI }? & element cascaded-focus { xsd:anyURI }?
& element endpoint { endpoint-type }* & element endpoint { endpoint-type }*
& element xcon:provide-anonymity { provide-anonymity-type }? & element xcon:provide-anonymity { provide-anonymity-type }?
& element xcon:allow-refer-users-dynamically { xsd:boolean }? & element xcon:allow-refer-users-dynamically { xsd:boolean }?
& element xcon:allow-invite-users-dynamically { xsd:boolean }? & element xcon:allow-invite-users-dynamically { xsd:boolean }?
& element xcon:allow-remove-users-dynamically { xsd:boolean }? & element xcon:allow-remove-users-dynamically { xsd:boolean }?
& anyElement* & anyElement*
# ENDPOINT TYPE # ENDPOINT TYPE
endpoint-type = endpoint-type =
attribute entity { text } attribute entity { text }
& anyAttribute & anyAttribute
& element display-text { text }? & element display-text { text }?
& element referred { execution-type }? & element referred { execution-type }?
& element status { endpoint-status-type }? & element status { endpoint-status-type }?
& element joining-method { joining-type }? & element joining-method { joining-type }?
& element joining-info { execution-type }? & element joining-info { execution-type }?
& element disconnection-method { disconnection-type }? & element disconnection-method { disconnection-type }?
& element disconnection-info { execution-type }? & element disconnection-info { execution-type }?
& element media { media-type }* & element media { media-type }*
& element call-info { call-type }? & element call-info { call-type }?
& anyElement* & anyElement*
# ENDPOINT STATUS TYPE # ENDPOINT STATUS TYPE
endpoint-status-type = endpoint-status-type =
"pending" "pending"
| "dialing-out" | "dialing-out"
| "dialing-in" | "dialing-in"
| "alerting" | "alerting"
| "on-hold" | "on-hold"
| "connected" | "connected"
| "muted-via-focus" | "muted-via-focus"
| "disconnecting" | "disconnecting"
| "disconnected" | "disconnected"
| free-text-extension | free-text-extension
# JOINING TYPE # JOINING TYPE
joining-type = joining-type =
"dialed-in" | "dialed-out" | "focus-owner" | free-text-extension "dialed-in" | "dialed-out" | "focus-owner" | free-text-extension
# DISCONNECTION TYPE # DISCONNECTION TYPE
disconnection-type = disconnection-type =
"departed" | "booted" | "failed" | "busy" | free-text-extension "departed" | "booted" | "failed" | "busy" | free-text-extension
# EXECUTION TYPE # EXECUTION TYPE
execution-type = execution-type =
element when { xsd:dateTime }? element when { xsd:dateTime }?
& element reason { text }? & element reason { text }?
& element by { xsd:anyURI }? & element by { xsd:anyURI }?
& anyAttribute & anyAttribute
# CALL TYPE # CALL TYPE
call-type = call-type =
element sip { sip-dialog-id-type } element sip { sip-dialog-id-type }
& anyElement* & anyElement*
& anyAttribute & anyAttribute
# SIP DIALOG ID TYPE # SIP DIALOG ID TYPE
sip-dialog-id-type = sip-dialog-id-type =
element display-text { text }? element display-text { text }?
& element call-id { text } & element call-id { text }
& element from-tag { text } & element from-tag { text }
& element to-tag { text } & element to-tag { text }
& anyElement* & anyElement*
& anyAttribute & anyAttribute
# MEDIA TYPE # MEDIA TYPE
media-type = media-type =
attribute id { xsd:int } attribute id { xsd:int }
& anyAttribute & anyAttribute
& element display-text { text }? & element display-text { text }?
& element type { text }? & element type { text }?
& element label { text }? & element label { text }?
& element src-id { text }? & element src-id { text }?
& element status { media-status-type }? & element status { media-status-type }?
& element xcon:to-mixer { mixer-type }? & element xcon:to-mixer { mixer-type }?
& element xcon:from-mixer { mixer-type }? & element xcon:from-mixer { mixer-type }?
& anyElement* & anyElement*
# MEDIA STATUS TYPE # MEDIA STATUS TYPE
media-status-type = media-status-type =
"recvonly" "recvonly"
| "sendonly" | "sendonly"
| "sendrecv" | "sendrecv"
| "inactive" | "inactive"
| free-text-extension | free-text-extension
# SIDEBARS-BY-VAL TYPE # SIDEBARS-BY-VAL TYPE
sidebars-by-val-type = sidebars-by-val-type =
anyAttribute anyAttribute
& element entry { conference-type }* & element entry { conference-type }*
& anyElement* & anyElement*
# CONFERENCE TIME # CONFERENCE TIME
conferencetime-type = conferencetime-type =
anyAttribute anyAttribute
& element xcon:entry { & element xcon:entry {
element xcon:base { text }, element xcon:base { text },
element xcon:mixing-start-offset { element xcon:mixing-start-offset {
time-type, time-type,
attribute required-participant { single-role-type }, attribute required-participant { single-role-type },
anyAttribute anyAttribute
}?, }?,
element xcon:mixing-end-offset { element xcon:mixing-end-offset {
time-type, time-type,
attribute required-participant { single-role-type }, attribute required-participant { single-role-type },
anyAttribute anyAttribute
}?, }?,
element xcon:can-join-after-offset { time-type }?, element xcon:can-join-after-offset { time-type }?,
element xcon:must-join-before-offset { time-type }?, element xcon:must-join-before-offset { time-type }?,
element xcon:request-user { time-type }?, element xcon:request-user { time-type }?,
element xcon:notify-end-of-conference { xsd:int }?, element xcon:notify-end-of-conference { xsd:nonNegativeInteger }?,
element xcon:allowed-extend-mixing-end-offset { xsd:boolean }?, element xcon:allowed-extend-mixing-end-offset { xsd:boolean }?,
anyElement* anyElement*
}* }*
# TIME TYPE # TIME TYPE
time-type = xsd:dateTime { pattern = ".+T.+Z.*" } time-type = xsd:dateTime { pattern = ".+T.+Z.*" }
# SINGLE ROLE TYPE # SINGLE ROLE TYPE
single-role-type = single-role-type =
xsd:string "none" xsd:string "none"
| xsd:string "administrator" | xsd:string "administrator"
| xsd:string "moderator" | xsd:string "moderator"
| xsd:string "user" | xsd:string "user"
| xsd:string "observer" | xsd:string "observer"
| xsd:string "participant" | xsd:string "participant"
| free-text-extension | free-text-extension
# MIXING MODE TYPE # MIXING MODE TYPE
mixing-mode-type = mixing-mode-type =
xsd:string "moderator-controlled" xsd:string "moderator-controlled"
| xsd:string "FCFS" | xsd:string "FCFS"
| xsd:string "automatic" | xsd:string "automatic"
| free-text-extension | free-text-extension
# CODECS TYPE # CODECS TYPE
codecs-type = codecs-type =
attribute decision { decision-type } attribute decision { decision-type }
& anyAttribute & anyAttribute
& element xcon:codec { codec-type }* & element xcon:codec { codec-type }*
& anyElement* & anyElement*
# CODEC TYPE # CODEC TYPE
codec-type = codec-type =
attribute name { text } attribute name { text }
& attribute policy { policy-type } & attribute policy { policy-type }
& anyAttribute & anyAttribute
& element xcon:subtype { text }? & element xcon:subtype { text }?
& anyElement* & anyElement*
# DECISION TYPE # DECISION TYPE
decision-type = decision-type =
xsd:string "automatic" xsd:string "automatic"
| xsd:string "moderator-controlled" | xsd:string "moderator-controlled"
| free-text-extension | free-text-extension
# POLICY TYPE # POLICY TYPE
policy-type = policy-type =
xsd:string "allowed" | xsd:string "disallowed" | free-text-extension xsd:string "allowed" | xsd:string "disallowed" | free-text-extension
# CONTROL TYPE # CONTROL TYPE
control-type = control-type =
anyAttribute anyAttribute
& element xcon:mute { xsd:boolean }? & element xcon:mute { xsd:boolean }?
& element xcon:pause-video { xsd:boolean }? & element xcon:pause-video { xsd:boolean }?
& element xcon:gain { gain-type }? & element xcon:gain { gain-type }?
& element xcon:video-layout { video-layout-type }? & element xcon:video-layout { video-layout-type }?
& anyElement* & anyElement*
# GAIN TYPE # GAIN TYPE
gain-type = xsd:int { minInclusive = "-127" maxInclusive = "127" } gain-type = xsd:int { minInclusive = "-127" maxInclusive = "127" }
# VIDEO LAYOUT TYPE # VIDEO LAYOUT TYPE
video-layout-type = video-layout-type =
xsd:string "single-view" xsd:string "single-view"
| xsd:string "dual-view" | xsd:string "dual-view"
| xsd:string "dual-view-crop" | xsd:string "dual-view-crop"
| xsd:string "dual-view-2x1" | xsd:string "dual-view-2x1"
| xsd:string "dual-view-2x1-crop" | xsd:string "dual-view-2x1-crop"
| xsd:string "quad-view" | xsd:string "quad-view"
| xsd:string "multiple-3x3" | xsd:string "multiple-3x3"
| xsd:string "multiple-4x4" | xsd:string "multiple-4x4"
| xsd:string "multiple-5x1" | xsd:string "multiple-5x1"
| xsd:string "automatic" | xsd:string "automatic"
| free-text-extension | free-text-extension
# FLOOR INFORMATION TYPE # FLOOR INFORMATION TYPE
floor-information-type = floor-information-type =
anyAttribute anyAttribute
& element xcon:conference-ID { xsd:unsignedLong }? & element xcon:conference-ID { xsd:unsignedLong }?
& element xcon:allow-floor-events { xsd:boolean }? & element xcon:allow-floor-events { xsd:boolean }?
& element xcon:floor-request-handling { floor-request-type }? & element xcon:floor-request-handling { floor-request-type }?
& element xcon:conference-floor-policy { conference-floor-policy }? & element xcon:conference-floor-policy { conference-floor-policy }?
& anyElement* & anyElement*
# FLOOR REQUEST TYPE # FLOOR REQUEST TYPE
floor-request-type = floor-request-type =
xsd:string "block" | xsd:string "confirm" | free-text-extension xsd:string "block" | xsd:string "confirm" | free-text-extension
# CONFERENCE FLOOR POLICY # CONFERENCE FLOOR POLICY
conference-floor-policy = conference-floor-policy =
anyAttribute anyAttribute
& element xcon:floor { & element xcon:floor {
attribute id { text } attribute id { text }
& anyAttribute & anyAttribute
& element xcon:media-label { xsd:nonNegativeInteger }+ & element xcon:media-label { xsd:nonNegativeInteger }+
& element xcon:algorithm { algorithm-type }? & element xcon:algorithm { algorithm-type }?
& element xcon:max-floor-users { xsd:nonNegativeInteger }? & element xcon:max-floor-users { xsd:nonNegativeInteger }?
& element xcon:moderator-id { xsd:nonNegativeInteger }? & element xcon:moderator-id { xsd:nonNegativeInteger }?
& anyElement* & anyElement*
}+ }+
# ALGORITHM POLICY # ALGORITHM POLICY
algorithm-type = algorithm-type =
xsd:string "moderator-controlled" xsd:string "moderator-controlled"
| xsd:string "FCFS" | xsd:string "FCFS"
| xsd:string "random" | xsd:string "random"
| free-text-extension | free-text-extension
# USERS ADMISSION POLICY # USERS ADMISSION POLICY
user-admission-policy-type = user-admission-policy-type =
xsd:string "closedAuthenticated" xsd:string "closedAuthenticated"
| xsd:string "openAuthenticated" | xsd:string "openAuthenticated"
| xsd:string "anonymous" | xsd:string "anonymous"
| free-text-extension | free-text-extension
# JOIN HANDLING TYPE # JOIN HANDLING TYPE
join-handling-type = join-handling-type =
xsd:string "block" xsd:string "block"
| xsd:string "confirm" | xsd:string "confirm"
| xsd:string "allow" | xsd:string "allow"
| xsd:string "authenticate" | xsd:string "authenticate"
| xsd:string "directed-operator" | xsd:string "directed-operator"
| free-text-extension | free-text-extension
# DENY USERLIST # DENY USERLIST
deny-user-list-type = deny-user-list-type =
anyAttribute anyAttribute
& element xcon:target { & element xcon:target {
attribute uri { xsd:anyURI }, attribute uri { xsd:anyURI },
anyAttribute anyAttribute
}* }*
& anyElement* & anyElement*
# ALLOWED USERS LIST TYPE # ALLOWED USERS LIST TYPE
allowed-users-list-type = allowed-users-list-type =
anyAttribute anyAttribute
& element xcon:target { target-type }* & element xcon:target { target-type }*
& element xcon:persistent-list { persistent-list-type }? & element xcon:persistent-list { persistent-list-type }?
& anyElement* & anyElement*
# PERSISTENT LIST TYPE # PERSISTENT LIST TYPE
persistent-list-type = persistent-list-type =
element xcon:user { element xcon:user {
attribute name { text } attribute name { text }
& attribute nickname { text } & attribute nickname { text }
& attribute id { text } & attribute id { text }
& anyAttribute & anyAttribute
& element xcon:e-mail { text }* & element xcon:e-mail { text }*
& anyElement* & anyElement*
}* }*
& anyElement* & anyElement*
# TARGET TYPE # TARGET TYPE
target-type = target-type =
attribute uri { xsd:anyURI }, attribute uri { xsd:anyURI },
attribute method { method-type }, attribute method { method-type },
anyAttribute anyAttribute
# METHOD TYPE # METHOD TYPE
method-type = method-type =
xsd:string "dial-in" xsd:string "dial-in"
| xsd:string "dial-out" | xsd:string "dial-out"
| xsd:string "refer" | xsd:string "refer"
| free-text-extension | free-text-extension
# ANONYMITY TYPE # ANONYMITY TYPE
provide-anonymity-type = provide-anonymity-type =
"private" | "semi-private" | "hidden" | free-text-extension "private" | "semi-private" | "hidden" | free-text-extension
# MIXER TYPE # MIXER TYPE
mixer-type = mixer-type =
attribute name { mixer-name-type } attribute name { mixer-name-type }
& anyAttribute & anyAttribute
& element xcon:controls { control-type }* & element xcon:controls { control-type }*
& element xcon:floor { & element xcon:floor {
attribute id { text }, attribute id { text },
anyAttribute, anyAttribute,
xsd:boolean xsd:boolean
}* }*
& anyElement* & anyElement*
# MIXER NAME TYPE # MIXER NAME TYPE
mixer-name-type = mixer-name-type =
"VideoIn" | "VideoOut" | "AudioOut" | "AudioIn" | free-text-extension "VideoIn" | "VideoOut" | "AudioOut" | "AudioIn" | free-text-extension
# FREE TEXT EXTENSION # FREE TEXT EXTENSION
# #
free-text-extension = text free-text-extension = text
# ********************************* # *********************************
# EXTENSIBILITY OF THE SCHEMA # EXTENSIBILITY OF THE SCHEMA
# ********************************* # *********************************
# EXTENSIBILITY ELEMENTS # EXTENSIBILITY ELEMENTS
# #
anyElement = anyElement =
element * - (conference-description element * - (conference-description
| host-info | host-info
| conference-state | conference-state
| users | users
| sidebars-by-ref | sidebars-by-ref
| sidebars-by-val | sidebars-by-val
| display-text | display-text
| subject | subject
| free-text | free-text
| keywords | keywords
| conf-uris | conf-uris
| service-uris | service-uris
| maximum-user-count | maximum-user-count
| available-media | available-media
| web-page | web-page
| uris | uris
| uri | uri
| user-count | user-count
| active | active
| locked | locked
| entry | entry
| type | type
| status | status
| purpose | purpose
| modified | modified
| user | user
| associated-aors | associated-aors
| roles | roles
| languages | languages
| cascaded-focus | cascaded-focus
| endpoint | endpoint
| referred | referred
| joining-method | joining-method
| joining-info | joining-info
| disconnection-method | disconnection-method
| disconnection-info | disconnection-info
| media | media
| call-info | call-info
| when | when
| reason | reason
| by | by
| sip | sip
| call-id | call-id
| from-tag | from-tag
| to-tag | to-tag
| label | label
| src-id | src-id
| xcon:conference-password | xcon:conference-password
| xcon:mixing-mode | xcon:mixing-mode
| xcon:codecs | xcon:codecs
| xcon:controls | xcon:controls
| xcon:language | xcon:language
| xcon:allow-sidebars | xcon:allow-sidebars
| xcon:cloning-parent | xcon:cloning-parent
| xcon:sidebar-parent | xcon:sidebar-parent
| xcon:allow-conference-event-subscription | xcon:allow-conference-event-subscription
| xcon:to-mixer | xcon:to-mixer
| xcon:provide-anonymity | xcon:provide-anonymity
| xcon:allow-refer-users-dynamically | xcon:allow-refer-users-dynamically
| xcon:allow-invite-users-dynamically | xcon:allow-invite-users-dynamically
| xcon:allow-remove-users-dynamically | xcon:allow-remove-users-dynamically
| xcon:from-mixer | xcon:from-mixer
| xcon:join-handling | xcon:join-handling
| xcon:user-admission-policy | xcon:user-admission-policy
| xcon:allowed-users-list | xcon:allowed-users-list
| xcon:deny-users-list | xcon:deny-users-list
| xcon:floor-information | xcon:floor-information
| xcon:conference-time | xcon:conference-time
| xcon:provide-anonymity | xcon:provide-anonymity
| xcon:floor | xcon:floor
| xcon:entry | xcon:entry
| xcon:mixing-start-offset | xcon:mixing-start-offset
| xcon:mixing-end-offset | xcon:mixing-end-offset
| xcon:can-join-after-offset | xcon:can-join-after-offset
| xcon:must-join-before-offset | xcon:must-join-before-offset
| xcon:request-user | xcon:request-user
| xcon:notify-end-of-conference | xcon:notify-end-of-conference
| xcon:allowed-extend-mixing-end-offset | xcon:allowed-extend-mixing-end-offset
| xcon:codec | xcon:codec
| xcon:subtype | xcon:subtype
| xcon:mute | xcon:mute
| xcon:pause-video | xcon:pause-video
| xcon:gain | xcon:gain
| xcon:video-layout | xcon:video-layout
| xcon:conference-ID | xcon:conference-ID
| xcon:allow-floor-events | xcon:allow-floor-events
| xcon:floor-request-handling | xcon:floor-request-handling
| xcon:conference-floor-policy | xcon:conference-floor-policy
| xcon:media-label | xcon:media-label
| xcon:algorithm | xcon:algorithm
| xcon:max-floor-users | xcon:max-floor-users
| xcon:moderator-id | xcon:moderator-id
| xcon:target | xcon:target
| xcon:persistent-list | xcon:persistent-list
| xcon:e-mail | xcon:e-mail
| xcon:user) { anyExtension } | xcon:user) { anyExtension }
anyExtension = anyExtension =
(attribute * { text } (attribute * { text }
| any)* | any)*
any = any =
element * { element * {
(attribute * { text } (attribute * { text }
| text | text
| any)* | any)*
} }
# EXTENSIBILITY ATTRIBUTES # EXTENSIBILITY ATTRIBUTES
# #
anyAttribute = anyAttribute =
attribute * - (xml:lang attribute * - (lang
| entity | entity
| required-participant | required-participant
| label | label
| decision | decision
| name | name
| policy | policy
| uri | uri
| method | method
| id | id
| nickname) { text }* | nickname) { text }*
6. XML Schema Extensibility 6. XML Schema Extensibility
The Conference Information Data Model defined in this document is The Conference Information Data Model defined in this document is
meant to be extensible toward specific application domains. Such meant to be extensible. Extensions are accomplished by defining
extensions are accomplished by defining elements, child elements and elements or attributes qualified by namespaces other than
attributes that are specific to the desired application domain. The "urn:ietf:params:xml:ns:conference-info" and
IETF MAY extend the data model schema with unqualified attributes or "urn:ietf:params:xml:ns:xcon-conference-info" for use wherever the
extension elements from the "urn:ietf:params:xml:ns:" "sub-namespace" schema allows such extensions (i.e., where the RelaxNG definition
in the future. Other instances are free to define extension elements specifies "anyAttribute" or "anyElement").
or attributes under other namespaces.
Elements or attributes from unknown namespaces MUST be ignored. Elements or attributes from unknown namespaces MUST be ignored.
7. XML Example 7. XML Example
The following is an example of a conference information document. The following is an example of a conference information document.
The conference starts on October 17, 2007, at 10:30 AM in New York The conference starts on October 17, 2007, at 10:30 AM in New York
City and finishes the same day at 12:30 PM every week. In this City and finishes the same day at 12:30 PM every week. In this
example, there are currently 3 participants in a conference, one example, there are currently 3 participants in a conference, one
administrator, one moderator, and one participant. Sidebars are administrator, one moderator, and one participant. Sidebars are
skipping to change at page 43, line 38 skipping to change at page 43, line 37
moment, Alice is assigned to use the floor. moment, Alice is assigned to use the floor.
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<conference-info <conference-info
xmlns="urn:ietf:params:xml:ns:conference-info" xmlns="urn:ietf:params:xml:ns:conference-info"
xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info" xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info"
entity="conference123@example.com"> entity="conference123@example.com">
<!-- <!--
CONFERENCE DESCRIPTION CONFERENCE DESCRIPTION
--> -->
<conference-description xml:lang="en-us"> <conference-description lang="en-us">
<display-text>Discussion of Formula-1 racing</display-text> <display-text>Discussion of Formula-1 racing</display-text>
<subject>Sports:Formula-1</subject> <subject>Sports:Formula-1</subject>
<free-text>This is a conference example</free-text> <free-text>This is a conference example</free-text>
<keywords>Formula-1 cars</keywords> <keywords>Formula-1 cars</keywords>
<!-- <!--
CONFERENCE UNIQUE IDENTIFIERS CONFERENCE UNIQUE IDENTIFIERS
--> -->
<conf-uris> <conf-uris>
<entry> <entry>
skipping to change at page 53, line 34 skipping to change at page 53, line 34
Furthermore, users may use different identifiers to access to a Furthermore, users may use different identifiers to access to a
conference as explained in Section 4.6.5. These different namespaces conference as explained in Section 4.6.5. These different namespaces
can be associated with a unique conference user identifier (XCON- can be associated with a unique conference user identifier (XCON-
USERID). A mapping database is used to map all these authenticated USERID). A mapping database is used to map all these authenticated
user namespaces to the XCON-USERID. There are several threats user namespaces to the XCON-USERID. There are several threats
against this database. In order to minimize these threats, the against this database. In order to minimize these threats, the
administrator of the conferencing system MUST ensure that only administrator of the conferencing system MUST ensure that only
authorized users can connect to this database (e.g., by using access authorized users can connect to this database (e.g., by using access
control rules). In particular, the integrity of the database MUST be control rules). In particular, the integrity of the database MUST be
protected against unauthorized modifications. Generic security protected against unauthorized modifications. In addition to that,
considerations for usage of URIs are discussed in [RFC3986]. There the XCON-USERID or XCON-URI SHOULD be hard to guess. It is critical
is no other encoding considerations for XCON-USERID or XCON-URI not that the URI remain difficult to "guess" via brute force methods.
discussed in RFC 3986 [RFC3986]. Generic security considerations for usage of URIs are discussed in
[RFC3986].
The confidentiality of the database SHOULD be protected from The confidentiality of the database SHOULD be protected from
unauthorized users, given that the data model contains a set of unauthorized users, given that the data model contains a set of
sensitive elements (e.g., passwords). Therefore, in addition to sensitive elements (e.g., passwords), and it is RECOMMENDED the
implementing access control, as discussed above, it is RECOMMENDED database uses encryption mechanisms if the information is stored in
that administrators of conferencing systems only provide access to long term storage (e.g., disk). In addition to implementing access
the database over encrypted channels (e.g., using TLS encryption) in control, as discussed above, it is RECOMMENDED that administrators of
order to avoid eavesdroppers. Administrators of conferencing systems conferencing systems only provide access to the database over
SHOULD also avoid disclosing information to unauthorized parties when encrypted channels (e.g., using TLS encryption) in order to avoid
a conference is being cloned or when a sidebar is being created. For eavesdroppers. Administrators of conferencing systems SHOULD also
avoid disclosing information to unauthorized parties when a
conference is being cloned or when a sidebar is being created. For
example, an external sidebar as defined in [RFC5239], section 9.4.2, example, an external sidebar as defined in [RFC5239], section 9.4.2,
may include participants who were not authorized for the parent may include participants who were not authorized for the parent
conference. conference.
The security considerations for authentication (Section 11.1) The security considerations for authentication (Section 11.1)
described in the centralized conferencing framework [RFC5239] also described in the centralized conferencing framework [RFC5239] also
apply to this document. Similarly, the security considerations for apply to this document. Similarly, the security considerations for
authorization (Section 5.2) described in the Session Initiation authorization (Section 5.2) described in the Session Initiation
Protocol (SIP) REFER Method [RFC3515] apply to this document as well. Protocol (SIP) REFER Method [RFC3515] apply to this document as well.
skipping to change at page 54, line 31 skipping to change at page 54, line 33
<xcon@ietf.org>, Oscar Novo <xcon@ietf.org>, Oscar Novo
<Oscar.Novo@ericsson.com> <Oscar.Novo@ericsson.com>
Relax NG Schema: The Relax NG schema to be registered is contained Relax NG Schema: The Relax NG schema to be registered is contained
in Section 5. Its first line is in Section 5. Its first line is
default namespace = "urn:ietf:params:xml:ns:conference-info" default namespace = "urn:ietf:params:xml:ns:conference-info"
and its last line is and its last line is
anyAttribute = attribute * - (xml:lang | entity anyAttribute = attribute * - (lang | entity
| required-participant | label | decision | name | required-participant | label | decision | name
| policy | uri | method | id | nickname) { text }* | policy | uri | method | id | nickname) { text }*
9.2. XML Namespace Registration 9.2. XML Namespace Registration
This section registers a new XML namespace. This section registers a new XML namespace.
URI: urn:ietf:params:xml:ns:xcon-conference-info URI: urn:ietf:params:xml:ns:xcon-conference-info
Registrant Contact: IETF XCON working group, Registrant Contact: IETF XCON working group,
<xcon@ietf.org>, Oscar Novo <xcon@ietf.org>, Oscar Novo
skipping to change at page 58, line 15 skipping to change at page 58, line 15
11.2. Informative References 11.2. Informative References
[IANA] "IANA registry for RTP Payload Types" [IANA] "IANA registry for RTP Payload Types"
"http://www.iana.org/assignments/rtp-parameters". "http://www.iana.org/assignments/rtp-parameters".
[IANA-Lan] [IANA-Lan]
"IANA Language Subtag Registry" "IANA Language Subtag Registry"
"http://www.iana.org/assignments/ "http://www.iana.org/assignments/
language-subtag-registry". language-subtag-registry".
[RELAX] "RELAX NG Home Page" "http://relaxng.org/". [RELAX] "RELAX NG Home Page" "ISO/IEC 19757-2:2008".
[RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model
with Session Description Protocol (SDP)", RFC 3264, with Session Description Protocol (SDP)", RFC 3264,
June 2002. June 2002.
[RFC3265] Roach, A., "Session Initiation Protocol (SIP)-Specific [RFC3265] Roach, A., "Session Initiation Protocol (SIP)-Specific
Event Notification", RFC 3265, June 2002. Event Notification", RFC 3265, June 2002.
[RFC3515] Sparks, R., "The Session Initiation Protocol (SIP) Refer [RFC3515] Sparks, R., "The Session Initiation Protocol (SIP) Refer
Method", RFC 3515, April 2003. Method", RFC 3515, April 2003.
skipping to change at page 58, line 41 skipping to change at page 58, line 41
[RFC4855] Casner, S., "Media Type Registration of RTP Payload [RFC4855] Casner, S., "Media Type Registration of RTP Payload
Formats", RFC 4855, February 2007. Formats", RFC 4855, February 2007.
[RFC5018] Camarillo, G., "Connection Establishment in the Binary [RFC5018] Camarillo, G., "Connection Establishment in the Binary
Floor Control Protocol (BFCP)", RFC 5018, September 2007. Floor Control Protocol (BFCP)", RFC 5018, September 2007.
[RFC5646] Phillips, A. and M. Davis, "Tags for Identifying [RFC5646] Phillips, A. and M. Davis, "Tags for Identifying
Languages", BCP 47, RFC 5646, September 2009. Languages", BCP 47, RFC 5646, September 2009.
[W3C.REC-xml-20081126] [W3C.REC-xml-20081126]
Yergeau, F., Sperberg-McQueen, C., Paoli, J., Maler, E., Paoli, J., Yergeau, F., Bray, T., Maler, E., and C.
and T. Bray, "Extensible Markup Language (XML) 1.0 (Fifth Sperberg-McQueen, "Extensible Markup Language (XML) 1.0
Edition)", World Wide Web Consortium Recommendation REC- (Fifth Edition)", World Wide Web Consortium
xml-20081126, November 2008, Recommendation REC-xml-20081126, November 2008,
<http://www.w3.org/TR/2008/REC-xml-20081126>. <http://www.w3.org/TR/2008/REC-xml-20081126>.
Appendix A. Non-Normative RELAX NG Schema in XML Syntax Appendix A. Non-Normative RELAX NG Schema in XML Syntax
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<grammar <grammar
ns="urn:ietf:params:xml:ns:conference-info" ns="urn:ietf:params:xml:ns:conference-info"
xmlns="http://relaxng.org/ns/structure/1.0" xmlns="http://relaxng.org/ns/structure/1.0"
xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info" xmlns:xcon="urn:ietf:params:xml:ns:xcon-conference-info"
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
skipping to change at page 60, line 19 skipping to change at page 60, line 19
</zeroOrMore> </zeroOrMore>
</interleave> </interleave>
</define> </define>
<!-- <!--
CONFERENCE DESCRIPTION TYPE CONFERENCE DESCRIPTION TYPE
--> -->
<define name="conference-description-type"> <define name="conference-description-type">
<element name="conference-description"> <element name="conference-description">
<interleave> <interleave>
<optional> <optional>
<attribute name="xml:lang"> <attribute name="lang">
<data type="language"/> <data type="language"/>
</attribute> </attribute>
</optional> </optional>
<ref name="anyAttribute"/> <ref name="anyAttribute"/>
<optional> <optional>
<element name="display-text"> <element name="display-text">
<text/> <text/>
</element> </element>
</optional> </optional>
<optional> <optional>
skipping to change at page 73, line 33 skipping to change at page 73, line 33
<ref name="time-type"/> <ref name="time-type"/>
</element> </element>
</optional> </optional>
<optional> <optional>
<element name="xcon:request-user"> <element name="xcon:request-user">
<ref name="time-type"/> <ref name="time-type"/>
</element> </element>
</optional> </optional>
<optional> <optional>
<element name="xcon:notify-end-of-conference"> <element name="xcon:notify-end-of-conference">
<data type="int"/> <data type="nonNegativeInteger"/>
</element> </element>
</optional> </optional>
<optional> <optional>
<element name="xcon:allowed-extend-mixing-end-offset"> <element name="xcon:allowed-extend-mixing-end-offset">
<data type="boolean"/> <data type="boolean"/>
</element> </element>
</optional> </optional>
<zeroOrMore> <zeroOrMore>
<ref name="anyElement"/> <ref name="anyElement"/>
</zeroOrMore> </zeroOrMore>
skipping to change at page 80, line 51 skipping to change at page 81, line 4
<ref name="anyAttribute"/> <ref name="anyAttribute"/>
<zeroOrMore> <zeroOrMore>
<element name="xcon:e-mail"> <element name="xcon:e-mail">
<text/> <text/>
</element> </element>
</zeroOrMore> </zeroOrMore>
<zeroOrMore> <zeroOrMore>
<ref name="anyElement"/> <ref name="anyElement"/>
</zeroOrMore> </zeroOrMore>
</interleave> </interleave>
</element>
</element>
</zeroOrMore> </zeroOrMore>
<zeroOrMore> <zeroOrMore>
<ref name="anyElement"/> <ref name="anyElement"/>
</zeroOrMore> </zeroOrMore>
</interleave> </interleave>
</define> </define>
<!-- <!--
TARGET TYPE TARGET TYPE
--> -->
<define name="target-type"> <define name="target-type">
skipping to change at page 88, line 20 skipping to change at page 88, line 22
</xs:simpleContent> </xs:simpleContent>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="can-join-after-offset" type="time-type" <xs:element name="can-join-after-offset" type="time-type"
minOccurs="0"/> minOccurs="0"/>
<xs:element name="must-join-before-offset" <xs:element name="must-join-before-offset"
type="time-type" minOccurs="0"/> type="time-type" minOccurs="0"/>
<xs:element name="request-user" type="time-type" <xs:element name="request-user" type="time-type"
minOccurs="0"/> minOccurs="0"/>
<xs:element name="notify-end-of-conference" <xs:element name="notify-end-of-conference"
type="xs:integer" minOccurs="0"/> type="xs:nonNegativeInteger" minOccurs="0"/>
<xs:element name="allowed-extend-mixing-end-offset" <xs:element name="allowed-extend-mixing-end-offset"
type="xs:boolean" minOccurs="0"/> type="xs:boolean" minOccurs="0"/>
<xs:any namespace="##other" processContents="lax" <xs:any namespace="##other" processContents="lax"
minOccurs="0" maxOccurs="unbounded"/> minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence> </xs:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:any namespace="##other" processContents="lax" <xs:any namespace="##other" processContents="lax"
minOccurs="0" maxOccurs="unbounded"/> minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence> </xs:sequence>
 End of changes. 46 change blocks. 
569 lines changed or deleted 571 lines changed or added

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