| < draft-boulton-xcon-media-template-01.txt | draft-boulton-xcon-media-template-02.txt > | |||
|---|---|---|---|---|
| XCON Working Group C. Boulton | XCON Working Group C. Boulton | |||
| Internet-Draft Ubiquity Software Corporation | Internet-Draft Ubiquity Software Corporation | |||
| Expires: October 15, 2005 U. Chandra | Expires: April 26, 2006 U. Chandra | |||
| Nokia Research Center | Nokia Research Center | |||
| April 13, 2005 | October 23, 2005 | |||
| Media Policy Templates for XCON | Media Policy Templates for XCON | |||
| draft-boulton-xcon-media-template-01 | draft-boulton-xcon-media-template-02 | |||
| Status of this Memo | Status of this Memo | |||
| By submitting this Internet-Draft, each author represents that any | By submitting this Internet-Draft, each author represents that any | |||
| applicable patent or other IPR claims of which he or she is aware | applicable patent or other IPR claims of which he or she is aware | |||
| have been or will be disclosed, and any of which he or she becomes | have been or will be disclosed, and any of which he or she becomes | |||
| aware will be disclosed, in accordance with Section 6 of BCP 79. | aware will be disclosed, in accordance with Section 6 of BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
| skipping to change at page 1, line 35 ¶ | skipping to change at page 1, line 35 ¶ | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
| http://www.ietf.org/ietf/1id-abstracts.txt. | http://www.ietf.org/ietf/1id-abstracts.txt. | |||
| The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
| http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
| This Internet-Draft will expire on October 15, 2005. | This Internet-Draft will expire on April 26, 2006. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (C) The Internet Society (2005). | Copyright (C) The Internet Society (2005). | |||
| Abstract | Abstract | |||
| Media Policy control is the mechanism by which participants of a | The xcon framework[1] specifies the object model for centralized | |||
| conference manipulates the media in the conference. The controls | conferencing. The Conference Object, which is defined in the | |||
| provided to conference participants to manipulate media enhances | framework data model, comprises of two distinct components - the | |||
| participants experience in the conference. This document provides a | Common Conference Information and Conference Templates. This memo | |||
| minimum set of media policy templates that can be instantiated during | specifies the Conference Templates that describe various common | |||
| conference creation and manipulated during the life cycle of a | conference scenarios. The templates define controls (and media | |||
| conference instance. The templates define conference properties like | properties like type of media supported, what streams are supported | |||
| what streams are supported, what controls are available etc. | etc) through which participants of the conference can manipulate the | |||
| media they receive from the conference server. This document | ||||
| provides a minimum set of media templates that can be instantiated | ||||
| during conference creation and manipulated during the life cycle of a | ||||
| conference instance. | ||||
| This draft is currently under major revision and should be considered | This draft is currently under major revision and should be considered | |||
| a work in progress as it aligns with current technical direction of | a work in progress as it aligns with current technical direction of | |||
| the Working Group. A revision of this draft will be submitted very | the Working Group. A revision of this draft will be submitted very | |||
| soon. | soon. | |||
| This work is being discussed on the xcon@ietf.org mailing list. | This work is being discussed on the xcon@ietf.org mailing list. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 2. Guidelines for writers of Media Policy Templates . . . . . . 4 | 2. XML Conventions and Practices . . . . . . . . . . . . . . . . 4 | |||
| 3. Templates . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 3. Guidelines for writers of Media Policy Templates . . . . . . . 5 | |||
| 3.1 Basic-Audio Template . . . . . . . . . . . . . . . . . . . 4 | 4. Templates . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3.1.1 Description . . . . . . . . . . . . . . . . . . . . . 4 | 4.1. Basic-Audio Template . . . . . . . . . . . . . . . . . . . 5 | |||
| 3.1.2 Roles . . . . . . . . . . . . . . . . . . . . . . . . 4 | 4.1.1. Description . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3.1.3 Parameters . . . . . . . . . . . . . . . . . . . . . . 5 | 4.1.2. Roles . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3.1.4 Controls . . . . . . . . . . . . . . . . . . . . . . . 5 | 4.1.3. Parameters . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 3.1.5 Streams . . . . . . . . . . . . . . . . . . . . . . . 7 | 4.1.4. Controls . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 3.1.6 XML Definition . . . . . . . . . . . . . . . . . . . . 8 | 4.1.5. Control Arrays . . . . . . . . . . . . . . . . . . . . 7 | |||
| 3.1.7 XML Schema Definition . . . . . . . . . . . . . . . . 9 | 4.1.6. Streams . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 3.2 Advanced Audio Template . . . . . . . . . . . . . . . . . 12 | 4.1.7. Blueprint - XML example . . . . . . . . . . . . . . . 9 | |||
| 3.2.1 Description . . . . . . . . . . . . . . . . . . . . . 12 | 4.1.8. XML Schema Definition . . . . . . . . . . . . . . . . 11 | |||
| 3.2.2 Roles . . . . . . . . . . . . . . . . . . . . . . . . 12 | 4.2. Advanced Audio Template . . . . . . . . . . . . . . . . . 14 | |||
| 3.2.3 Parameters . . . . . . . . . . . . . . . . . . . . . . 12 | 4.3. Basic-Video Template . . . . . . . . . . . . . . . . . . . 14 | |||
| 3.2.4 Controls . . . . . . . . . . . . . . . . . . . . . . . 13 | 4.3.1. Description . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 3.2.5 Streams . . . . . . . . . . . . . . . . . . . . . . . 15 | 4.3.2. Roles . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 3.2.6 XML Definition . . . . . . . . . . . . . . . . . . . . 16 | 4.3.3. Parameters . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 3.3 Basic-Video Template . . . . . . . . . . . . . . . . . . . 18 | 4.3.4. Controls . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 3.3.1 Description . . . . . . . . . . . . . . . . . . . . . 18 | 4.3.5. Control Array . . . . . . . . . . . . . . . . . . . . 16 | |||
| 3.3.2 Roles . . . . . . . . . . . . . . . . . . . . . . . . 18 | 4.3.6. Streams . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 3.3.3 Parameters . . . . . . . . . . . . . . . . . . . . . . 18 | 4.3.7. Blueprint - XML Example . . . . . . . . . . . . . . . 17 | |||
| 3.3.4 Controls . . . . . . . . . . . . . . . . . . . . . . . 19 | 4.3.8. XML Schema Definition . . . . . . . . . . . . . . . . 19 | |||
| 3.3.5 Streams . . . . . . . . . . . . . . . . . . . . . . . 20 | 4.4. Advanced Video Template . . . . . . . . . . . . . . . . . 22 | |||
| 3.3.6 XML Definition . . . . . . . . . . . . . . . . . . . . 22 | 4.5. Basic Text Template . . . . . . . . . . . . . . . . . . . 22 | |||
| 3.4 Advanced Video Template . . . . . . . . . . . . . . . . . 23 | 4.5.1. Description . . . . . . . . . . . . . . . . . . . . . 22 | |||
| 3.4.1 Description . . . . . . . . . . . . . . . . . . . . . 23 | 4.5.2. Roles . . . . . . . . . . . . . . . . . . . . . . . . 22 | |||
| 3.4.2 Roles . . . . . . . . . . . . . . . . . . . . . . . . 23 | 4.5.3. Parameters . . . . . . . . . . . . . . . . . . . . . . 23 | |||
| 3.4.3 Parameters . . . . . . . . . . . . . . . . . . . . . . 23 | 4.5.4. Controls . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
| 3.4.4 Controls . . . . . . . . . . . . . . . . . . . . . . . 24 | 4.5.5. Control Array . . . . . . . . . . . . . . . . . . . . 23 | |||
| 3.4.5 Streams . . . . . . . . . . . . . . . . . . . . . . . 25 | 4.5.6. Streams . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
| 3.4.6 XML Definition . . . . . . . . . . . . . . . . . . . . 27 | 4.5.7. Blueprint - XML Example . . . . . . . . . . . . . . . 25 | |||
| 3.5 Basic Text Template . . . . . . . . . . . . . . . . . . . 28 | 4.5.8. XML Schema Definition . . . . . . . . . . . . . . . . 26 | |||
| 3.5.1 Description . . . . . . . . . . . . . . . . . . . . . 28 | 4.6. Advanced Text Template . . . . . . . . . . . . . . . . . . 29 | |||
| 3.5.2 Roles . . . . . . . . . . . . . . . . . . . . . . . . 28 | 4.7. Basic Audio-Video Template . . . . . . . . . . . . . . . . 29 | |||
| 3.5.3 Parameters . . . . . . . . . . . . . . . . . . . . . . 29 | 4.7.1. Description . . . . . . . . . . . . . . . . . . . . . 29 | |||
| 3.5.4 Controls . . . . . . . . . . . . . . . . . . . . . . . 29 | 4.7.2. Roles . . . . . . . . . . . . . . . . . . . . . . . . 29 | |||
| 3.5.5 Streams . . . . . . . . . . . . . . . . . . . . . . . 30 | 4.7.3. Parameters . . . . . . . . . . . . . . . . . . . . . . 30 | |||
| 3.5.6 XML Definition . . . . . . . . . . . . . . . . . . . . 32 | 4.7.4. Controls . . . . . . . . . . . . . . . . . . . . . . . 30 | |||
| 3.6 Advanced Text Template . . . . . . . . . . . . . . . . . . 33 | 4.7.5. Control Array . . . . . . . . . . . . . . . . . . . . 30 | |||
| 3.6.1 Description . . . . . . . . . . . . . . . . . . . . . 33 | 4.7.6. Streams . . . . . . . . . . . . . . . . . . . . . . . 30 | |||
| 3.6.2 Roles . . . . . . . . . . . . . . . . . . . . . . . . 33 | 4.7.7. Blueprint - XML Example . . . . . . . . . . . . . . . 31 | |||
| 3.6.3 Parameters . . . . . . . . . . . . . . . . . . . . . . 33 | 4.7.8. XML Schema Definition . . . . . . . . . . . . . . . . 33 | |||
| 3.6.4 Controls . . . . . . . . . . . . . . . . . . . . . . . 33 | 4.8. Audio-text Template . . . . . . . . . . . . . . . . . . . 37 | |||
| 3.6.5 Streams . . . . . . . . . . . . . . . . . . . . . . . 33 | 4.9. Basic Multimedia Template . . . . . . . . . . . . . . . . 37 | |||
| 3.6.6 XML Definition . . . . . . . . . . . . . . . . . . . . 33 | 4.10. Advanced Multimedia Template . . . . . . . . . . . . . . . 37 | |||
| 3.7 Audio-Video Template . . . . . . . . . . . . . . . . . . . 33 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 37 | |||
| 3.7.1 Description . . . . . . . . . . . . . . . . . . . . . 33 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 37 | |||
| 3.7.2 Roles . . . . . . . . . . . . . . . . . . . . . . . . 33 | 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 37 | |||
| 3.7.3 Parameters . . . . . . . . . . . . . . . . . . . . . . 33 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 37 | |||
| 3.7.4 Controls . . . . . . . . . . . . . . . . . . . . . . . 33 | 8.1. Normative References . . . . . . . . . . . . . . . . . . . 37 | |||
| 3.7.5 Streams . . . . . . . . . . . . . . . . . . . . . . . 33 | 8.2. Informative References . . . . . . . . . . . . . . . . . . 38 | |||
| 3.7.6 XML Definition . . . . . . . . . . . . . . . . . . . . 33 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 39 | |||
| 3.8 audio-text Template . . . . . . . . . . . . . . . . . . . 36 | Intellectual Property and Copyright Statements . . . . . . . . . . 40 | |||
| 3.8.1 Description . . . . . . . . . . . . . . . . . . . . . 36 | ||||
| 3.8.2 Roles . . . . . . . . . . . . . . . . . . . . . . . . 37 | ||||
| 3.8.3 Parameters . . . . . . . . . . . . . . . . . . . . . . 37 | ||||
| 3.8.4 Controls . . . . . . . . . . . . . . . . . . . . . . . 37 | ||||
| 3.8.5 Streams . . . . . . . . . . . . . . . . . . . . . . . 37 | ||||
| 3.8.6 XML Definition . . . . . . . . . . . . . . . . . . . . 37 | ||||
| 3.9 Basic Multimedia Template . . . . . . . . . . . . . . . . 40 | ||||
| 3.9.1 Description . . . . . . . . . . . . . . . . . . . . . 40 | ||||
| 3.9.2 Roles . . . . . . . . . . . . . . . . . . . . . . . . 40 | ||||
| 3.9.3 Parameters . . . . . . . . . . . . . . . . . . . . . . 40 | ||||
| 3.9.4 Controls . . . . . . . . . . . . . . . . . . . . . . . 40 | ||||
| 3.9.5 Streams . . . . . . . . . . . . . . . . . . . . . . . 40 | ||||
| 3.9.6 XML Definition . . . . . . . . . . . . . . . . . . . . 40 | ||||
| 3.10 Advanced Multimedia Template . . . . . . . . . . . . . . 40 | ||||
| 3.10.1 Description . . . . . . . . . . . . . . . . . . . . 40 | ||||
| 3.10.2 Roles . . . . . . . . . . . . . . . . . . . . . . . 41 | ||||
| 3.10.3 Parameters . . . . . . . . . . . . . . . . . . . . . 41 | ||||
| 3.10.4 Controls . . . . . . . . . . . . . . . . . . . . . . 41 | ||||
| 3.10.5 Streams . . . . . . . . . . . . . . . . . . . . . . 41 | ||||
| 3.10.6 XML Definition . . . . . . . . . . . . . . . . . . . 41 | ||||
| 4. Security Considerations . . . . . . . . . . . . . . . . . . 41 | ||||
| 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . 41 | ||||
| 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 41 | ||||
| 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 41 | ||||
| 7.1 Normative References . . . . . . . . . . . . . . . . . . . 41 | ||||
| 7.2 Informative References . . . . . . . . . . . . . . . . . . 41 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 41 | ||||
| Intellectual Property and Copyright Statements . . . . . . . 43 | ||||
| 1. Introduction | 1. Introduction | |||
| The mechanism described in the 'Media Conference Server Control[1] | The XCON architecture defined in [1] is built around a fundamental | |||
| draft defines a protocol between the centralized conference server | concept of Conference Object. A Conference Object is a logical | |||
| and conference participants. The mechanism details the construction | representation of a conference instance. For conference creation, a | |||
| of media templates that provide a wide range of functionality to a | conference object provides a "blueprint" representing the system | |||
| client for the purpose of manipulating a media profile. The | capabilities which consists of a Common Conference Information part | |||
| templates are constructed using an XML rule set described in [1]. | [4] and a Conference Template (as defined in this document). A | |||
| conference object also provides the logical representation of a | ||||
| conference during each of the various stages of a conference (e.g. | ||||
| reservation, active, completed etc). | ||||
| [Editors Note: Need explicit reference relating to where the CCI is | ||||
| derived from.] | ||||
| The mechanism described in the 'Media Conference Server Control[2]' | ||||
| draft defines a protocol between the Centralized Conference System | ||||
| and individual Conference Participants. The mechanism details the | ||||
| construction of media templates that provide a wide range of | ||||
| functionality to a client for the purpose of manipulating a media | ||||
| profile. The templates are constructed using an XML rule set | ||||
| described in [2]. | ||||
| This document supplies a a set of core media templates that should be | This document supplies a a set of core media templates that should be | |||
| used in conjunction with [1]. The templates specified SHOULD be | used in conjunction with [2]. The templates specified SHOULD be | |||
| supported at a minimum. | supported at a minimum but MAY NOT be supported if a core related | |||
| feature is not available on the Conference System. | ||||
| The editors of this document would like to point out that this | The editors of this document would like to point out that this | |||
| document is currently 'Work In Progress' and fully identify that more | document is currently 'Work In Progress' and fully identify that more | |||
| work is required on the text and XML for the next revision. The | work is required on the text and XML for the next revision. In the | |||
| document has been released to gain early feedback. | current draft revision we have defined only four templates - basic | |||
| audio, basic video, basic audio & video and basic-text. The intent | ||||
| of defining these templates is to get a complete picture of | ||||
| conference object which comprises of the common conference | ||||
| information which is defined in [4] and the conference template. The | ||||
| idea is to get early feedback from the working group regarding | ||||
| templates which would help in defining the more complex templates for | ||||
| different conference scenarios in the next revision. | ||||
| 2. Guidelines for writers of Media Policy Templates | 2. XML Conventions and Practices | |||
| It is intended that future iterations of this document will provide | ||||
| an individual namespace for each template schema definition. The | ||||
| schema will then be registered in an appropriate IANA registry. In | ||||
| the future, when new templates are constructed, they can also be | ||||
| registered. | ||||
| It is also intended that common components of this draft will be | ||||
| removed and incorporated in a separate namespace. Templates will | ||||
| then import the common components and use appropriately. This will | ||||
| save on repetition of common elements that appear in multiple media | ||||
| templates. This section will be expanded to include all the relevant | ||||
| details of these changes. | ||||
| 3. Guidelines for writers of Media Policy Templates | ||||
| [Editors Note: TODO] | [Editors Note: TODO] | |||
| 3. Templates | 4. Templates | |||
| 3.1 Basic-Audio Template | 4.1. Basic-Audio Template | |||
| 3.1.1 Description | 4.1.1. Description | |||
| The Basic-Audio template can be used to achieve the simplest form of | The Basic-Audio template can be used to achieve the simplest form of | |||
| audio interaction between multiple voice input streams from | audio interaction between multiple voice input streams from | |||
| participating entities. The output stream consists mix of all the | participating entities. The output stream consists mix of all the | |||
| participants audio excluding the input stream of the receiving | participants audio excluding the input stream of the receiving | |||
| entity. If a participant needs to talk in the conference, it first | entity. If a participant needs to talk in the conference, it first | |||
| needs to get a floor from the moderator of the conference. | needs to get a floor from the moderator of the conference. The floor | |||
| control can be enabled or disabled by the moderator during the | ||||
| conference creation stage. When the floor control is not enabled | ||||
| then any participant can speak in the conference at any time. In | ||||
| this conference very basic controls like muting the output stream, | ||||
| changing the volume of the output stream are provided to end | ||||
| participants. If more advanced control (or user defined control) are | ||||
| required, it is recommended to use the advance-audio template. | ||||
| 3.1.2 Roles | 4.1.2. Roles | |||
| Participant: The basic audio template specifies the role of | Roles define different privileges that are available to the | |||
| 'Participant' to signify an entry level user with no privileges by | conference participants. In [3] different types of roles that the | |||
| default. The participant role could obtain access to all controls | participants can assume in a conference are defined. For the basic | |||
| available for this template if set accordingly by a privileged user. | audio template, there can be only two types of roles - participants | |||
| Access to the controls available to a participant can be controlled | and moderator. | |||
| using floor control, as defined in [ref control draft]. | ||||
| Moderator: The basic audio template specifies the role of 'Moderator' | Issue : Do we limit that there can be only two types of participants | |||
| to signify a user with advanced privileges by default. The | or we remove this restriction and let the conference creator to | |||
| 'Moderator' role for this template has the same controls as a | define as many roles as possible and name them as they wish. | |||
| 'Participant' with an additional control for muting any participant | ||||
| in a conference instance. Another difference being that the default | ||||
| value for the 'enable' attribute on the 'mute' control on an output | ||||
| media stream is set to 'true'. See the individual control | ||||
| definitions for the impact of attribute settings. | ||||
| 3.1.3 Parameters | 4.1.2.1. Participant | |||
| max-particpants: The 'max-particpants' parameter specifies the | The basic audio template specifies the role of 'Participant' to | |||
| maximum number of participants (Entity with signaling connection to | signify an entry level user with no privileges by default. The | |||
| the focus) that are permitted to be involved in an instantiated | participant role could obtain access to all controls available for | |||
| instance of the template (or sub-element, depending on where | this template if set accordingly by a privileged user. This is | |||
| specified) for the specified role. The minimum value permitted is | achieved during the blueprint creation phase by setting the enable | |||
| attribute of the control element to TRUE. | ||||
| 4.1.2.2. Moderator | ||||
| The basic audio template specifies the role of 'Moderator' to signify | ||||
| a user with advanced privileges by default. The 'Moderator' role for | ||||
| this template has the same controls as a 'Participant' with an | ||||
| additional control for muting any participant in a conference | ||||
| instance. The primary difference being that the default value for | ||||
| the 'enable' attribute on the 'mute' control on an output media | ||||
| stream is set to 'true'. See the individual control definitions for | ||||
| the impact of attribute settings. | ||||
| 4.1.3. Parameters | ||||
| 4.1.3.1. max-participants | ||||
| The 'max-particpants' parameter specifies the maximum number of | ||||
| participants (Entity with signaling connection to the focus) that are | ||||
| permitted to be involved in an instantiated instance of the template | ||||
| (or sub-element, depending on where specified) for the specified | ||||
| role. The example Blue-Print provides a minimum value permitted of | ||||
| "1" and the maximum value permitted is "128". | "1" and the maximum value permitted is "128". | |||
| max-audio-streams: The 'max-audio-streams' parameter specifies the | 4.1.3.2. max-audio-streams | |||
| maximum number of audio media streams that are permitted to be | ||||
| involved in an instantiated instance of the template for the | ||||
| specified role. The minimum value permitted is "1" and the maximum | ||||
| value permitted is "128". | ||||
| 3.1.4 Controls | The 'max-audio-streams' parameter specifies the maximum number of | |||
| audio media streams that are permitted to be involved in an | ||||
| instantiated instance of the template for the specified role. The | ||||
| example Blue-Print provides a minimum value permitted of "1" and the | ||||
| maximum value permitted is "128". | ||||
| 3.1.4.1 mute | 4.1.4. Controls | |||
| In the basic-audio template, only two types of controls are defined - | ||||
| mute and gain. It is expected that for most of the basic audio | ||||
| conferencing, these two controls are sufficient. If the conference | ||||
| server wants to support more advanced control, then it is recommended | ||||
| that advance-audio template to be used. In those templates the | ||||
| schema for controls is extensible, hence new control types can be | ||||
| added. | ||||
| Issue : For the basic audio template, we are restricting the type of | ||||
| the control to boolean and real (for mute and gain control). The | ||||
| motivation for that was you cannot define new control types in the | ||||
| basic-audio template. Should we keep the restriction or let the | ||||
| capability to define new control in a basic-audio template. | ||||
| 4.1.4.1. mute | ||||
| The 'mute' control is used in conjunction with a media stream to | The 'mute' control is used in conjunction with a media stream to | |||
| cease transmission of associated media. It has a 'Boolean' value. | cease transmission of associated media. It has a 'Boolean' value. | |||
| The 'mute' control can exist in two forms, depending on if the | When muting, the control consists of the following attributes:- | |||
| control appears on input or output media streams. When appearing as | ||||
| a control on an input media stream, the control locally manipulates | ||||
| the clients media stream to be active or inactive. When muting | ||||
| locally, the control consists of the following attributes:- | ||||
| type: The 'mute' control has a type of 'Boolean'. | type: The 'mute' control has a type of 'Boolean'. | |||
| name: The control is named 'mute'. | name: The control is named 'mute'. | |||
| default: Indicates the default value for the 'mute' control when not | ||||
| set. The attribute type is 'Boolean' with a default value of | ||||
| 'false'. Setting the 'mute' attribute to 'false' specifies that | ||||
| media should be transported for the associated media stream. When | ||||
| set to the value of 'true', media should not be transported for the | ||||
| associated media stream. | ||||
| enable: The enable attribute specifies if access to the control is | enable: The enable attribute specifies if access to the control is | |||
| available to the client. The value is of type 'boolean' and is set | available to the client. The value is of type 'boolean' and is set | |||
| to 'true' as default. | to 'true' as default. | |||
| The 'mute' control can also appear on an output stream. This | The Control also consists of the following additional elements:- | |||
| indicates that the mute will manipulate outgoing media streams from | ||||
| the mixer to alternative clients. When used in this instance, the | ||||
| attributes for the control are identical to that of the input | ||||
| definition with the exception that the 'enable' and 'default' values | ||||
| are both set to 'true'. This instance of the control defines an | ||||
| additional 'controlArray' that represents other participating | ||||
| clients. This provides a privileged user the ability to mute/un-mute | ||||
| media being distributed to every client defined. | ||||
| 3.1.4.2 MuteInputAudio | label: Provides a Control label that can be rendered to the client. | |||
| For the Blue-Print example the vlaue is 'Mute-Audio'. | ||||
| 'MuteInputAudio' is a controlarray that is used in conjunction with | value: Provides a default value for the Control. For the Blue-Print | |||
| media input streams of other participants and allows any input media | example the value is 'True'. | |||
| stream of the participants to be muted. The moderator can use this | ||||
| control to mute any paritcipant if it doesn't follows conference | ||||
| code. The controlArray enables a specific media stream to be muted | ||||
| by passing in the associated identifying number of the participant | ||||
| into the name attribute e.g. The first participant to enter the mix | ||||
| could be identified by the number '1' and so the operation | ||||
| 'MuteInoutAudio[1]' would result in the participant identified within | ||||
| the policy with a value of '1' being muted. The upper bound of the | ||||
| number being passed in is controlled by the 'max-participants' | ||||
| parameter value. | ||||
| 3.1.4.3 gain | 4.1.4.2. gain | |||
| The 'gain' control is used in conjunction with a media output stream | The 'gain' control is used in conjunction with a media output stream | |||
| to indicate the amount of amplification of an audio stream. It has a | to indicate the amount of amplification of an audio stream. It has a | |||
| 'Real' number value. The control consists of the following | 'Real' number value. The control consists of the following | |||
| attributes:- | attributes:- | |||
| type: The 'gain' control has a type of 'Real'. | type: The 'gain' control has a type of 'Real'. | |||
| name: The control is named 'gain'. | name: The control is named 'gain'. | |||
| enable: The enable attribute specifies if access to the control is | enable: The enable attribute specifies if access to the control is | |||
| available to the client. | available to the client. | |||
| The Control also consists of the following additional elements:- | ||||
| default: Indicates the default value for the 'gain' control when not | default: Indicates the default value for the 'gain' control when not | |||
| set. | set. | |||
| 3.1.4.4 MuteOutputAudio | 4.1.5. Control Arrays | |||
| This controlarray is used by the moderator to mute the outgoing audio | The definition for Templates is derived from [2] which permits for | |||
| stream to a participant in case the participant is not confirming to | Control Arrays. The controlArray defines a control for an logical | |||
| the conference policy. The moderator can choose to set this control | stream. In the actual conference object, there would be one instance | |||
| temporaraly till the participant follows conference rules. The | of control for each of the stream in the logical stream. Logical | |||
| controlarray enables a specific outgoing audio stream to be muted by | streams are defined in [2]. With the controlArray an control is | |||
| passing in the associated identifying number of the participant into | defined which applies to all the streams which are contributing to | |||
| the name attribute e.g. The first participant to enter the | the logical stream. The logical stream element has an attribute type | |||
| conference would be identified by the number '1' and so the operation | which defines the media type of the logical stream. The attribute | |||
| 'StopoutputText[1]' would result in the participant identified within | name in the Logicalstream has a semantic meaning. The conference | |||
| the policy with a value of '1' not hearing the conference. The | server based on the name of the logical stream knows what streams | |||
| control type is boolean and the default value of the control when not | constitutes the logical stream. For example in the basic audio we | |||
| set is false indicating that all participant get the text stream. | have an logical stream called MainAudioIn, which comprises of the | |||
| incoming streams from the participants. We also define another | ||||
| logical stream in basic audio called MainAudioOut which comprises of | ||||
| the output stream from the server to the end points. | ||||
| 3.1.5 Streams | In the basic-audio template, for the role of the moderator, two | |||
| controlArray elements are defined which work on the two logical | ||||
| streams - MainAudioIn, MainAudioOut. For both these logical streams, | ||||
| the controlArray element defines the control Mute, which enables the | ||||
| moderator to mute any participants incoming audio stream or out going | ||||
| audio stream | ||||
| 4.1.6. Streams | ||||
| The 'Basic Audio Template' consists of two audio streams: | The 'Basic Audio Template' consists of two audio streams: | |||
| 3.1.5.1 AudioIn | 4.1.6.1. AudioIn | |||
| The 'AudioIn' media stream details properties associated with the | The 'AudioIn' media stream details properties associated with the | |||
| incoming audio to the mixer. The 'AudioIn' stream has the following | incoming audio to the mixer. The 'AudioIn' stream has the following | |||
| attributes: | attributes and properties: | |||
| type: The stream type is 'audio'. | type: The stream type is 'audio'. | |||
| name: The descriptive name for this stream is 'AudioIn'. | name: The descriptive name for this stream is 'AudioIn'. | |||
| dir: The direction of the stream is set to 'in'. | dir: The direction of the stream is set to 'in'. | |||
| 3.1.5.1.1 Floor | stream-id : The identifier which uniquely identifies the stream. It | |||
| is optional because during the blueprint creation phase there is no | ||||
| need to specify the stream-id. But once the conference starts and | ||||
| the streams are created in the server, each stream element is | ||||
| assigned an stream-id, through which the server and the client can | ||||
| uniquely identify the streams. | ||||
| 4.1.6.1.1. Floor | ||||
| The 'AudioIn' media stream consists of the following floor: | The 'AudioIn' media stream consists of the following floor: | |||
| 3.1.5.1.1.1 Send_audio | 4.1.6.1.1.1. Send_audio | |||
| The 'Send-audio' floor is associated with the 'AudioIn' stream. It | The 'Send-audio' floor is associated with the 'AudioIn' stream. It | |||
| provides a mechanism to control the input to a media mix. A | provides a mechanism to control the input to a media mix. A | |||
| participant with a role of 'Moderator' should always have floor | participant with a role of 'Moderator' should always have floor | |||
| preference - this is considered out of scope for this document. The | preference - this is considered out of scope for this document. The | |||
| following attributes are defined: | following attributes are defined: | |||
| floor_id: Uniquely identifies the floor within the context of this | floor_id: Uniquely identifies the floor within the context of this | |||
| template and has a value of '1'. | template and has a value of '1'. | |||
| instances: Value of '1' implies only one occurrence of this floor at | instances: Value of '1' implies only one occurrence of this floor at | |||
| any one time. | any one time. | |||
| enable: A value of 'false' indicates that this floor is not enabled | enable: A value of 'false' indicates that this floor is not enabled | |||
| by default. | by default. | |||
| value: A value of false specifies that the instance represented by | value: A value of false specifies that the instance represented by | |||
| this template does not have control of the floor. | this template does not have control of the floor. | |||
| 3.1.5.2 AudioOut | 4.1.6.2. AudioOut | |||
| The 'AudioOut' media stream details properties associated with the | The 'AudioOut' media stream details properties associated with the | |||
| outgoing audio from the mixer. The 'AudioOut' stream has the | outgoing audio from the mixer. The 'AudioOut' stream has the | |||
| following attributes: | following attributes: | |||
| type: The stream type is 'audio'. | type: The stream type is 'audio'. | |||
| name: The descriptive name for this stream is 'AudioOut'. | name: The descriptive name for this stream is 'AudioOut'. | |||
| dir: The direction of the stream is set to 'out'. | dir: The direction of the stream is set to 'out'. | |||
| 3.1.6 XML Definition | 4.1.7. Blueprint - XML example | |||
| <template name="basic-audio"> | <template name="basic-audio"> | |||
| <parameter type="integer" name="max-participants" min="1" max="128"/> | <parameter type="integer" name="max-participants" value="1" min="1" max="128"/> | |||
| <parameter type="integer" name="max-audio-streams" min="1" max="128"/> | <parameter type="integer" name="max-audio-streams" value="1" min="1" max="128"/> | |||
| <role name="Participant"> | <role name="Participant"> | |||
| <parameter type="integer" name="max-participants" min="1" max="128"/> | <parameter type="integer" name="max-participants" value="1" min="1" max="128"/> | |||
| <stream type="audio" name="AudioIn" dir="in"> | <stream type="audio" name="AudioIn" dir="in"> | |||
| <floor name="Send_audio" floor_id="1" instances="1" enable="true" value="false"> | <floor name="Send_audio" floor_id="1" instances="1" enable="true" value="false"> | |||
| <control type ="boolean" name="mute" enable="true"> | <control type ="boolean" name="mute" enable="true"> | |||
| <label> Mute-Audio </label> | <label> Mute-Audio </label> | |||
| <value>True</value> | <value>True</value> | |||
| </control> | </control> | |||
| </floor> | </floor> | |||
| </stream> | </stream> | |||
| <stream type="audio" name="AudioOut" dir="out"> | <stream type="audio" name="AudioOut" dir="out"> | |||
| <control type="real" name="gain" enable="true" > | <control type="real" name="gain" enable="true" > | |||
| <label>Volume</label> | <label>Volume</label> | |||
| <value>0</value> | <value>0</value> | |||
| </control> | </control> | |||
| </stream> | </stream> | |||
| </role> | </role> | |||
| <role name="moderator"> | <role name="moderator"> | |||
| <parameter type="integer" name="max-participants" min="0" max="128"/> | <parameter type="integer" name="max-participants" value="0" min="0" max="128"/> | |||
| <controlArray name="MuteInputAudio" index="0" type="boolean" enable="true" > | <controlArray > | |||
| <label>MuteInputAudio</label> | <LogicaStream type="audio" name="MainAudioIn" /> | |||
| <value>False</value> | <control type="boolean" name="mute" enable="false"> | |||
| </controlArray> | <label>MuteInputAudio</label> | |||
| <controlArray name="MuteOutputAudio" index="0" type="boolean" enable="true" > | <value>False</value> | |||
| <label>MuteOutputAudio</label> | </control> | |||
| <value>False</value> | </controlArray> | |||
| </controlArray> | ||||
| <stream type="audio" name="AudioIn" dir="in"> | ||||
| <floor name="Send_audio" floor_id="1" instances="1" enable="true" value="true"> | ||||
| <control type ="boolean" name="mute" enable="true"> | ||||
| <label> Mute-Audio </label> | ||||
| <value>True</value> | ||||
| </control> | ||||
| </floor> | ||||
| </stream> | ||||
| <stream type="audio" name="AudioOut" dir="out"> | <controlArray> | |||
| <control type="real" name="gain" enable="true" > | <LogicalStream type="audio" name="MainAudioOut" /> | |||
| <label>Volume</label> | <control name="mute" type="boolean" enable="false"> | |||
| <value>1.0</value> | <label>MuteOutputAudio</label> | |||
| </control> | <value>False</value> | |||
| </stream> | </control> | |||
| </role> | </controlArray> | |||
| </template> | ||||
| 3.1.7 XML Schema Definition | <stream type="audio" name="AudioIn" dir="in"> | |||
| <floor name="Send_audio" floor_id="1" instances="1" enable="true" value="true"> | ||||
| <control type ="boolean" name="mute" enable="true"> | ||||
| <label> Mute-Audio </label> | ||||
| <value>True</value> | ||||
| </control> | ||||
| </floor> | ||||
| </stream> | ||||
| <stream type="audio" name="AudioOut" dir="out"> | ||||
| <control type="real" name="gain" enable="true" > | ||||
| <label>Volume</label> | ||||
| <value>1.0</value> | ||||
| </control> | ||||
| </stream> | ||||
| </role> | ||||
| </template> | ||||
| 4.1.8. XML Schema Definition | ||||
| This section provides the XML schema definition for the 'Basic-Audio' | This section provides the XML schema definition for the 'Basic-Audio' | |||
| template. This schema in currently in the process of being defined | template. | |||
| and was included as an early hint of working group direction. | ||||
| <?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
| <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> | <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" | |||
| xmlns:role="urn:ietf:params:xml:ns:role-schema"> | ||||
| <import namespace="urn:ietf:params:xml:ns:role-schema" /> | ||||
| <xs:element name="template-basic-audio"> | <xs:element name="template-basic-audio"> | |||
| <xs:complexType> | <xs:complexType> | |||
| <xs:sequence> | <xs:sequence> | |||
| <xs:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/> | <xs:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/> | |||
| <xs:element ref="role" minOccurs="0" maxOccurs="unbounded"/> | <xs:element ref="role" minOccurs="1" maxOccurs="unbounded"/> | |||
| </xs:sequence> | </xs:sequence> | |||
| </xs:complexType> | </xs:complexType> | |||
| </xs:element> | </xs:element> | |||
| <xs:element name="parameter"> | <xs:element name="parameter"> | |||
| <xs:complexType> | <xs:complexType> | |||
| <xs:attribute name="type" type="parameter-defined" use="required"/> | <xs:attribute name="type" type="parameter-defined" use="required"/> | |||
| <xs:attribute name="name" type="xs:string" use="required"/> | <xs:attribute name="name" type="xs:string" use="required"/> | |||
| <xs:attribute name="value" type="parameter-value" use="required"/> | ||||
| <xs:attribute name="min" type="xs:positiveInteger" use="optional"/> | <xs:attribute name="min" type="xs:positiveInteger" use="optional"/> | |||
| <xs:attribute name="max" type="xs:positiveInteger" use="optional"/> | <xs:attribute name="max" type="xs:positiveInteger" use="optional"/> | |||
| </xs:complexType> | </xs:complexType> | |||
| </xs:element> | </xs:element> | |||
| <xs:simpleType name="parameter-value"> | ||||
| <xs:union> | ||||
| <xs:simpleType> | ||||
| <xs:restriction base="xs:integer"/> | ||||
| </xs:simpleType> | ||||
| <xs:simpleType> | ||||
| <xs:restriction base="xs:real"/> | ||||
| </xs:simpleType> | ||||
| <xs:simpleType> | ||||
| <xs:restriction base="xs:enumeration"/> | ||||
| </xs:simpleType> | ||||
| </xs:union> | ||||
| </xs:simpleType> | ||||
| <xs:simpleType name="parameter-defined"> | <xs:simpleType name="parameter-defined"> | |||
| <xs:restriction base="xs:string"> | <xs:restriction base="xs:string"> | |||
| <xs:enumeration value="integer"/> | <xs:enumeration value="integer"/> | |||
| <xs:enumeration value="real"/> | <xs:enumeration value="real"/> | |||
| <xs:enumeration value="enumeration"/> | <xs:enumeration value="enumeration"/> | |||
| </xs:restriction> | </xs:restriction> | |||
| </xs:simpleType> | </xs:simpleType> | |||
| <xs:element name="role"> | <xs:element name="role"> | |||
| <xs:complexType> | <xs:complexType> | |||
| <xs:sequence> | <xs:sequence> | |||
| <xs:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/> | <xs:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/> | |||
| <xs:element ref="controlArray" minOccurs="0" maxOccurs="unbounded"/> | <xs:element ref="controlArray" minOccurs="0" maxOccurs="unbounded"/> | |||
| <xs:element ref="stream" minOccurs="0" maxOccurs="unbounded"/> | <xs:element ref="stream" minOccurs="0" maxOccurs="unbounded"/> | |||
| </xs:sequence> | </xs:sequence> | |||
| <xs:attribute name="name" type="role-type" use="required"/> | <xs:attribute name="name" type="rtype" use="required"/> | |||
| </xs:complexType> | </xs:complexType> | |||
| </xs:element> | </xs:element> | |||
| <xs:simpleType name="role-type"> | <xs:simpleType name="rtype"> | |||
| <xs:restriction base="xs:string"> | <xs:restriction base="role:role-type"> | |||
| <xs:enumeration value="Participant"/> | <xs:enumeration value="Participant"/> | |||
| <xs:enumeration value="Presenter"/> | <xs:enumeration value="Moderator"/> | |||
| <xs:enumeration value="Moderator"/> | </xs:restriction> | |||
| <xs:enumeration value="Observer"/> | </xs:simpleType> | |||
| </xs:restriction> | ||||
| </xs:simpleType> | ||||
| <xs:element name="controlArray"> | <xs:element name="controlArray"> | |||
| <xs:complexType> | <xs:complexType> | |||
| <element name="label" type="xs:string"/> | <xs:sequence> | |||
| <element name="value" type="control-type"/> | <xs:element ref="LogicalStream" minoccurs="1" maxoccurs="unbounded" /> | |||
| </xs:complexType> | <xs:element ref="control" minoccurs="1" maxoccurs="1"/> | |||
| <xs:attribute name="type" type="control-type" use="required"/> | </xs:sequence> | |||
| <xs:attribute name="name" type="xs:string" use="required"/> | </xs:complexType> | |||
| <xs:attribute name="enable" type="xs:boolean" use="required"/> | </xs:element> | |||
| <xs:attribute name="arrayIndex" type="xs:positiveInteger" use="required"/> | ||||
| </xs:element> | ||||
| <xs:element name="stream"> | <xs:element name="stream"> | |||
| <xs:complexType> | <xs:complexType> | |||
| <xs:sequence> | <xs:sequence> | |||
| <xs:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/> | <xs:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/> | |||
| <xs:element ref="floor" minOccurs="0" maxOccurs="unbounded"/> | <xs:element ref="floor" minOccurs="0" maxOccurs="unbounded"/> | |||
| <xs:element ref="control" minOccurs="0" maxOccurs="unbounded"/> | <xs:element ref="control" minOccurs="0" maxOccurs="unbounded"/> | |||
| </xs:sequence> | </xs:sequence> | |||
| <xs:attribute name="type" type="media-type" use="required"/> | <xs:attribute name="type" type="media-type" use="required"/> | |||
| <xs:attribute name="name" type="xs:string" use="required"/> | <xs:attribute name="name" type="xs:string" use="required"/> | |||
| <xs:attribute name="dir" type="direction-type" use="required"/> | <xs:attribute name="dir" type="direction-type" use="required"/> | |||
| <xs:attribute name="stream-id" type="xs:positiveInteger" use="optional"/> | ||||
| </xs:complexType> | </xs:complexType> | |||
| </xs:element> | </xs:element> | |||
| <xs:element name="LogicalStream"> | ||||
| <xs:complexType> | ||||
| <xs:attribute name="type" type="media-type" /> | ||||
| <xs:attribute name="name" type="logical-Streamtype" /> | ||||
| <xs:complexType> | ||||
| </xs:element> | ||||
| <xs:simpleType name="logical-streamType > | ||||
| <xs:restriction base="xs:string"> | ||||
| <xs:enumeration value="MainAudioIn"/> | ||||
| <xs:enumeration value="MainAudioOut"/> | ||||
| </xs:simpleType> | ||||
| <xs:simpleType name="media-type"> | <xs:simpleType name="media-type"> | |||
| <xs:restriction base="xs:string"> | <xs:restriction base="xs:string"> | |||
| <xs:enumeration value="audio"/> | <xs:enumeration value="audio"/> | |||
| <xs:enumeration value="video"/> | </xs:restriction> | |||
| </xs:restriction> | ||||
| </xs:simpleType> | </xs:simpleType> | |||
| <xs:simpleType name="direction-type"> | <xs:simpleType name="direction-type"> | |||
| <xs:restriction base="xs:string"> | <xs:restriction base="xs:string"> | |||
| <xs:enumeration value="in"/> | <xs:enumeration value="in"/> | |||
| <xs:enumeration value="out"/> | <xs:enumeration value="out"/> | |||
| </xs:restriction> | </xs:restriction> | |||
| </xs:simpleType> | </xs:simpleType> | |||
| <xs:element name="floor"> | <xs:element name="floor"> | |||
| skipping to change at page 11, line 40 ¶ | skipping to change at page 13, line 43 ¶ | |||
| </xs:sequence> | </xs:sequence> | |||
| <xs:attribute name="name" type="xs:string" use="required"/> | <xs:attribute name="name" type="xs:string" use="required"/> | |||
| <xs:attribute name="floor_id" type="xs:positiveInteger" use="required"/> | <xs:attribute name="floor_id" type="xs:positiveInteger" use="required"/> | |||
| <xs:attribute name="instances" type="xs:positiveInteger" use="required"/> | <xs:attribute name="instances" type="xs:positiveInteger" use="required"/> | |||
| <xs:attribute name="enable" type="xs:boolean" use="required"/> | <xs:attribute name="enable" type="xs:boolean" use="required"/> | |||
| <xs:attribute name="value" type="xs:boolean" use="required"/> | <xs:attribute name="value" type="xs:boolean" use="required"/> | |||
| </xs:complexType> | </xs:complexType> | |||
| </xs:element> | </xs:element> | |||
| <xs:element name="control"> | <xs:element name="control"> | |||
| <xs:complexType> | <xs:complexType> | |||
| <element name="label" type="xs:string"/> | ||||
| <element name="value" type="control-value"/> | ||||
| </xs:complexType> | ||||
| <xs:attribute name="type" type="control-type" use="required"/> | <xs:attribute name="type" type="control-type" use="required"/> | |||
| <xs:attribute name="name" type="xs:string" use="required"/> | <xs:attribute name="name" type="xs:string" use="required"/> | |||
| <xs:attribute name="enable" type="xs:boolean" use="required"/> | <xs:attribute name="enable" type="xs:boolean" use="required"/> | |||
| </xs:complexType> | </xs:element> | |||
| </xs:element> | <xs:simpleType name="control-value"> | |||
| <xs:union> | ||||
| <xs:simpleType> | ||||
| <xs:restriction base="xs:real"/> | ||||
| </xs:simpleType> | ||||
| <xs:simpleType> | ||||
| <xs:restriction base="xs:boolean"/> | ||||
| </xs:simpleType> | ||||
| </xs:union> | ||||
| </xs:simpleType> | ||||
| <xs:simpleType name="control-type"> | <xs:simpleType name="control-type"> | |||
| <xs:restriction base="xs:string"> | <xs:restriction base="xs:string"> | |||
| <xs:enumeration value="integer"/> | ||||
| <xs:enumeration value="real"/> | <xs:enumeration value="real"/> | |||
| <xs:enumeration value="boolean"/> | <xs:enumeration value="boolean"/> | |||
| </xs:restriction> | </xs:restriction> | |||
| </xs:simpleType> | </xs:simpleType> | |||
| </xs:schema> | </xs:schema> | |||
| 3.2 Advanced Audio Template | 4.2. Advanced Audio Template | |||
| 3.2.1 Description | ||||
| The 'Advanced-Audio' template builds on the functionality provided by | ||||
| the 'Basic-Audio' template. Additional features include 'sidebar' | ||||
| support and the ability to output both 'mix-minus' style audio or the | ||||
| active speakers audio stream. | ||||
| 3.2.2 Roles | ||||
| Participant: The advanced audio template specifies the role of | ||||
| 'Participant' to signify an entry level user with no privileges by | ||||
| default. The participant role could obtain access to all controls | ||||
| available for this template if set accordingly by a privileged user. | ||||
| Access to the controls available to a participant can be controlled | ||||
| using floor control, as defined in [ref control draft]. | ||||
| Moderator: The advanced audio template specifies the role of | ||||
| 'Moderator' to signify a user with advanced privileges by default. | ||||
| The 'Moderator' role for this template has the same controls as a | ||||
| 'Participant' with an additional control for muting any participant | ||||
| in a conference instance and one for specifying the type of output | ||||
| mix (e.g. mix-minus or Active speaker). Another difference being | ||||
| that the default value for the 'enable' attribute on the 'mute' | ||||
| control on an output media stream is set to 'true'. See the | ||||
| individual control definitions for the impact of attribute settings. | ||||
| 3.2.3 Parameters | ||||
| max-particpants: The 'max-particpants' parameter specifies the | ||||
| maximum number of participants (Entity with signalling connection to | ||||
| the focus) that are permitted to be involved in an instantiated | ||||
| instance of the template (or sub-element, depending on where | ||||
| specified) for the specified role. The minimum value permitted is | ||||
| "1" and the maximum value permitted is "128". | ||||
| max-audio-streams: The 'max-streams' parameter specifies the maximum | ||||
| number of audio media streams that are permitted to be involved in an | ||||
| instantiated instance of the template for the specified role. The | ||||
| minimum value permitted is "1" and the maximum value permitted is | ||||
| "128". | ||||
| 3.2.4 Controls | ||||
| 3.2.4.1 mute | ||||
| The 'mute' control is used in conjunction with a media stream to | ||||
| cease transmission of associated media. It has a 'Boolean' value. | ||||
| The 'mute' control can exist in two forms, depending on if the | ||||
| control appears on input or output media streams. When appearing as | ||||
| a control on an input media stream, the control locally manipulates | ||||
| the clients media stream to be active or inactive. When muting | ||||
| locally, the control consists of the following attributes:- | ||||
| type: The 'mute' control has a type of 'Boolean'. | ||||
| name: The control is named 'mute'. | ||||
| default: Indicates the default value for the 'mute' control when not | ||||
| set. The attribute type is 'Boolean' with a default value of | ||||
| 'false'. Setting the 'mute' attribute to 'false' specifies that | ||||
| media should be transported for the associated media stream. When | ||||
| set to the value of 'true', media should not be transported for the | ||||
| associated media stream. | ||||
| enable: The enable attribute specifies if access to the control is | ||||
| available to the client. The value is of type 'boolean' and is set | ||||
| to 'true' as default. | ||||
| The 'mute' control can also appear on an output stream. This | ||||
| indicates that the mute will manipulate outgoing media streams from | ||||
| the mixer to alternative clients. When used in this instance, the | ||||
| attributes for the control are identical to that of the input | ||||
| definition with the exception that the 'enable' and 'default' values | ||||
| are both set to 'true'. This instance of the control defines an | ||||
| additional 'controlArray' that represents other participating | ||||
| clients. This provides a privileged user the ability to mute/un-mute | ||||
| media being distributed to every client defined. | ||||
| 3.2.4.2 MuteInputAudio | ||||
| 'MuteInputAudio' is a controlarray that is used in conjunction with | ||||
| media input streams of other participants and allows any input media | ||||
| stream of the participant to be muted. The moderator can use this | ||||
| control to mute any participant if it doesn't follows conference | ||||
| code. The controlArray enables a specific media stream to be muted | ||||
| by passing in the associated identifying number of the participant | ||||
| into the name attribute e.g. The first participant to enter the mix | ||||
| could be identified by the number '1' and so the operation | ||||
| 'MuteInoutAudio[1]' would result in the participant identified within | ||||
| the policy with a value of '1' being muted. The upper bound of the | ||||
| number being passed in is controlled by the 'max-participants' | ||||
| parameter value. | ||||
| 3.2.4.3 gain | ||||
| The 'gain' control is used in conjunction with a media output stream | ||||
| to indicate the amount of amplification of an audio stream. It has a | ||||
| 'Real' number value. The control consists of the following | ||||
| attributes:- | ||||
| type: The 'gain' control has a type of 'Real'. | ||||
| name: The control is named 'gain'. | ||||
| enable: The enable attribute specifies if access to the control is | ||||
| available to the client. | ||||
| default: Indicates the default value for the 'gain' control when not | ||||
| set. | ||||
| 3.2.4.4 MuteOutputAudio | ||||
| This controlarray is used by the moderator to mute the outgoing audio | ||||
| stream to a participant in case the participant is not confirming to | ||||
| the conference policy. The moderator can choose to set this control | ||||
| temporaraly till the participant follows conference rules. The | ||||
| controlarray enables a specific outgoing audio stream to be muted by | ||||
| passing in the associated identifying number of the participant into | ||||
| the name attribute e.g. The first participant to enter the | ||||
| conference would be identified by the number '1' and so the operation | ||||
| 'StopoutputText[1]' would result in the participant identified within | ||||
| the policy with a value of '1' not hearing the conference. The | ||||
| control type is boolean and the default value of the control when not | ||||
| set is false indicating that all participant get the text stream. | ||||
| 3.2.4.5 individual-stream-gain | ||||
| The 'individual-stream-gain' controlArray can be used in conjunction | ||||
| with an 'AudioOut-Mix' media stream. It allows the gain of | ||||
| individual audio media streams involved in the mix to be controlled. | ||||
| The controlArray enables gain to be controlled on a specific media | ||||
| stream by passing in the associated identifying number of the | ||||
| participant into the name attribute e.g. The first participant to | ||||
| enter the mix could be identified by the number '1' and so the | ||||
| operation 'individual-stream-gain[1]' would result in the media | ||||
| involved in the output mix, identified within the media policy with a | ||||
| value of '1', having it's gain adjusted. The upper bound of the | ||||
| number being passed in is controlled by the 'max-participants' | ||||
| parameter value. | ||||
| 3.2.4.6 MuteParticipantsfromMix | ||||
| The 'MuteParticipantsfromMix' controlArray is also used in | ||||
| conjunction with an 'AudioOut-Mix' media stream. It allows | ||||
| individual participants audio streams involved in the mix to be | ||||
| muted. Participants to be muted are selected in a similar manner to | ||||
| 'individual-stream-gain'control by passing in the associated | ||||
| identifying number of the participant into the name attribute e.g. | ||||
| The first participant to enter the mix could be identified by the | ||||
| number '1' and so the operation 'MuteParticipantsfromMix[1]' would | ||||
| result in the media involved in the output mix, identified within the | ||||
| media policy with a value of '1', being muted. The upper bound of | ||||
| the number being passed in is controlled by the 'max-participants' | ||||
| parameter value. | ||||
| 3.2.5 Streams | ||||
| The 'Advanced-Audio' Template consists of two audio streams: | ||||
| 3.2.5.1 AudioIn | ||||
| The 'AudioIn' media stream details properties associated with the | ||||
| incoming audio to the mixer. The 'AudioIn' stream has the following | ||||
| attributes: | ||||
| type: The stream type is 'audio'. | ||||
| name: The descriptive name for this stream is 'AudioIn'. | ||||
| dir: The direction of the stream is set to 'in'. | ||||
| 3.2.5.1.1 Floor | ||||
| The 'AudioIn' media stream consists of the following floor: | ||||
| 3.2.5.1.1.1 Send_audio | ||||
| The 'Send-audio' floor is associated with the 'AudioIn' stream. It | ||||
| provides a mechanism to control the input to a media mix. A | ||||
| participant with a role of 'Moderator' should always have floor | ||||
| preference - this is considered out of scope for this document. The | ||||
| following attributes are defined: | ||||
| floor_id: Uniquely identifies the floor within the context of this | ||||
| template and has a value of '1'. | ||||
| instances: Value of '1' implies only one occurrence of this floor at | ||||
| any one time. | ||||
| enable: A value of 'false' indicates that this floor is not enabled | ||||
| by default. | ||||
| value: A value of false specifies that the instance represented by | ||||
| this template does not have control of the floor. | ||||
| 3.2.5.2 AudioOut | ||||
| The 'AudioOut' media stream details properties associated with the | ||||
| outgoing audio from the mixer. Two types of AudioOut streams are | ||||
| defined based on the mix type. This gives the participant the | ||||
| ability to choose either the audio of the active speaker of the | ||||
| conference or can choose to hear the audio mix of all the | ||||
| participants(excluding itself). The 'AudioOut' stream has the | ||||
| following attributes: | ||||
| type: The stream type is 'audio'. | ||||
| name: The descriptive name for this stream is 'AudioOut'. | ||||
| dir: The direction of the stream is set to 'out'. | ||||
| 3.2.6 XML Definition | ||||
| <template name="Advanced-audio"> | ||||
| <parameter type="integer" name="max-participants" min="1" max="128"/> | ||||
| <parameter type="integer" name="max-audio-streams" min="1" max="128"/> | ||||
| <role name="Participant"> | ||||
| <parameter type="integer" name="max-participants" min="1" max="128"/> | ||||
| <parameter type="integer" name="max-audio-input-streams" min="1" max="1"/> | ||||
| <stream type="audio" name="AudioIn" dir="in"> | ||||
| <floor name="Send_audio" floor_id="1" instances="1" enable="true" value="false"> | ||||
| <control type ="boolean" name="mute" enable="true"> | ||||
| <label>Mute-Audio</label> | ||||
| <value>True</value> | ||||
| </control> | ||||
| </floor> | ||||
| </stream> | ||||
| <stream type="audio" name="AudioOut-ActiveSpeaker" dir="out"> | ||||
| <control type="real" name="gain" enable="true"> | ||||
| <label>Volume</label> | ||||
| <value>1.0</value> | ||||
| </control> | ||||
| </stream> | ||||
| <stream type="audio" name="AudioOut-Mix" dir="out"> | ||||
| <controlArray type="real" name="gain" index="0" enable="true" > | ||||
| <label>Volume</label> | ||||
| <value>1.0</value> | ||||
| </controlArray> | ||||
| <controlArray name=MuteParticipantsfromMix" index="0" type="boolean" enable="true"> | ||||
| <label>MuteParticipant</label> | ||||
| <value>False</value> | ||||
| </controlArray> | ||||
| </stream> | ||||
| </role> | ||||
| <role name="moderator"> | ||||
| <parameter type="integer" name="max-participants" min="0" max="1"/> | ||||
| <parameter type="integer" name="max-audio-input-streams" min="1" max="1"/> | ||||
| <controlArray name="MuteInputAudio" type="enumeration" index="0" enable="true" > | ||||
| <label>MuteInputAudio</label> | ||||
| <value>False</value> | ||||
| </controlArray> | ||||
| <controlArray name="MuteOutputAudio" type="enumeration" index="0" enable="true" > | ||||
| <label>MuteOutputAudio</label> | ||||
| <value>False</value> | ||||
| </controlArray> | ||||
| <stream type="audio" name="AudioIn" dir="in"> | ||||
| <floor name="Send_audio" floor_id="1" instances="1" enable="true" value="true"> | ||||
| <control type ="boolean" name="mute" enable="true"> | ||||
| <label>Mute-Audio</label> | ||||
| <value>True</value> | ||||
| </control> | ||||
| </floor> | ||||
| </stream> | ||||
| <stream type="audio" name="AudioOut-ActiveSpeaker" dir="out"> | ||||
| <control type="real" name="gain" enable="true"> | ||||
| <label>Volume</label> | ||||
| <value>1.0</value> | ||||
| </control> | ||||
| </stream> | ||||
| <stream type="audio" name="AudioOut-Mix" dir="out"> | ||||
| <controlArray type="real" name="gain" index="0" enable="true" > | ||||
| <label>Volume</label> | ||||
| <value>1.0</value> | ||||
| </controlArray> | ||||
| <controlArray name="MuteParticipantsfromMix" index="0" type="boolean" enable="true"> | ||||
| <label>MuteParticipant</label> | ||||
| <value>False</value> | ||||
| </controlArray> | ||||
| </stream> | ||||
| </role> | ||||
| </template> | ||||
| [Editors Note: Sidebar support to be added in next revision] | TODO | |||
| 3.3 Basic-Video Template | 4.3. Basic-Video Template | |||
| 3.3.1 Description | 4.3.1. Description | |||
| The 'Basic-Video Template' is used to convey the basic set of video | The 'Basic-Video Template' is used to convey the basic set of video | |||
| functionality. The template allows participants to send and receive | functionality. The template allows participants to send and receive | |||
| video media with a control that allows input to be paused. The | video media with a control that allows input to be paused. The | |||
| conference server chooses the output video stream for each | conference server chooses the output video stream for each | |||
| participant based on local policy The template also defines a | participant based on local policy. The local policy for example can | |||
| moderator role who has the ability pause a users video input. | be active-speaker or the video of the host of the conference or the | |||
| moderator of the conference. The template also defines a moderator | ||||
| role who has the ability to pause a users video input. | ||||
| 3.3.2 Roles | 4.3.2. Roles | |||
| Participant: The basic video template specifies the role of | Participant: The basic video template specifies the role of | |||
| 'Participant' to signify an entry level user with no priviledges by | 'Participant' to signify an entry level user with no privileges by | |||
| default. The participant role could obtain access to all controls | default. The participant role could obtain access to all controls | |||
| available for this template if set accordingly by a privileged user. | available for this template if set accordingly by a privileged user. | |||
| Moderator: The basic video template specifies the role of 'Moderator' | Moderator: The basic video template specifies the role of 'Moderator' | |||
| to signify a user with advanced privileges by default. The | to signify a user with advanced privileges by default. The | |||
| 'Moderator' role for this template has exactly the same controls as a | 'Moderator' role for this template has exactly the same controls as a | |||
| 'Participant'. The major difference being that the default value for | 'Participant'. The major difference being that the default value for | |||
| the 'enable' attribute on the 'pause-video' control of the output | the 'enable' attribute on the 'pause-video' control of the output | |||
| video stream is set to 'false'. | video stream is set to 'false'. | |||
| 3.3.3 Parameters | 4.3.3. Parameters | |||
| max-participants: The 'max-participants' parameter specifies the | 4.3.3.1. max-participants | |||
| maximum number of entities that are permitted to be involved in an | ||||
| instantiated instance of the template for the specified template | ||||
| category. The minimum value permitted is "1" and the maximum value | ||||
| permitted is "128". The parameter can appear at either a template or | ||||
| role level. | ||||
| max-video-streams: The 'max-video-streams' parameter specifies the | The 'max-participants' parameter specifies the maximum number of | |||
| maximum number of video media streams that are permitted to be | entities that are permitted to be involved in an instantiated | |||
| involved in an instantiated instance of the template. The minimum | instance of the template for the specified template category. The | |||
| value permitted is "1" and the maximum value permitted is "128". | minimum value permitted is "1" and the maximum value permitted is | |||
| This parameter is required as participant of the mix can contribute | "128". The parameter can appear at either a template or role level. | |||
| more than one video stream. | ||||
| max-video-input-streams: The parameter "max-video-input-streams" | 4.3.3.2. max-video-streams | |||
| indicates the number of input video streams each participant can | ||||
| inject into the conference. The convenor of the conference can set | ||||
| this value when instantiating a conference. This reduces the | ||||
| requirement to define multiple templates for a number of media stream | ||||
| of same type that participants can send to the conference. | ||||
| 3.3.4 Controls | The 'max-video-streams' parameter specifies the maximum number of | |||
| video media streams that are permitted to be involved in an | ||||
| instantiated instance of the template. The minimum value permitted | ||||
| is "1" and the maximum value permitted is "128". This parameter is | ||||
| required as participant of the mix can contribute more than one video | ||||
| stream. | ||||
| 3.3.4.1 pause-video | 4.3.4. Controls | |||
| In the basic-video template, a pause-video control is defined which | ||||
| basically pauses the input and the output stream from and to the | ||||
| conference server. It is expected that for a very basic video | ||||
| conferencing this control is sufficient. If the conference server | ||||
| wants to support more advance features, then it is recommended that | ||||
| advance-video template to be used. In advance-video template the | ||||
| schema for controls is extensible, hence new control types can be | ||||
| defined. | ||||
| Issue : For the basic video template we are restricting the type of | ||||
| the control to boolean (for pause-video control). The reason for | ||||
| doing is the basic-audio can only have very basic control like pause- | ||||
| video. Should we keep the restriction or let the capability to | ||||
| define new control in basic-video template. | ||||
| 4.3.4.1. pause-video | ||||
| The 'pause-video' control is used in conjunction with a media stream | The 'pause-video' control is used in conjunction with a media stream | |||
| to cease transmission of associated media. It has a 'Boolean' value. | to cease transmission of associated media. It has a 'Boolean' value. | |||
| The 'pause-video' control consists of the following attributes:- | The 'pause-video' control consists of the following attributes:- | |||
| type: The 'pause-video' control has a type of 'Boolean'. | type: The 'pause-video' control has a type of 'Boolean'. | |||
| name: The control is named 'pause-video'. | name: The control is named 'pause-video'. | |||
| default: Indicates the default value for the 'pause-video' control | default: Indicates the default value for the 'pause-video' control | |||
| when not set. The attribute type is 'Boolean' with a default value | when not set. The attribute type is 'Boolean' with a default value | |||
| of 'false. Setting the 'default' attribute to 'false' specifies that | of 'false. Setting the 'default' attribute to 'false' specifies that | |||
| media should be transported for the associated media stream. When | media should be transported for the associated media stream. When | |||
| set to the value of 'true', media should not be transported for the | set to the value of 'true', media should not be transported for the | |||
| associated media stream. | associated media stream. | |||
| enable: The enable attribute specifies if access to the control is | enable: The enable attribute specifies if access to the control is | |||
| available to the client. The value is of type 'boolean' and is set | available to the client. The value is of type 'boolean' and is set | |||
| to 'true' as default. | to 'true' as default. | |||
| 3.3.4.2 PauseInputVideo | 4.3.5. Control Array | |||
| 'PauseInputVideo' is a controlarray that is used in conjuntion with | ||||
| video media input streams of other participants and allows to pause | ||||
| any input media streams from the participants. The moderator of the | ||||
| conference can use this control to pause the incoming video stream in | ||||
| case the participant does not follow the conference code. The | ||||
| controlarray enables a specific video stream to be paused by passing | ||||
| in the associated identifying number of the participant into the name | ||||
| attribute e.g. The first participant to enter the conference would | ||||
| be identified by the number '1' and so the operation | ||||
| 'PauseInputVideo[1]' would result in the participant identified | ||||
| within the policy with a value of '1' being paused. This result | ||||
| would be such that this participants video would not be sent to any | ||||
| one in the conference or would not be mixed in case the server is | ||||
| mixing the video streams. | ||||
| 3.3.4.3 PauseOutputVideo | ||||
| This controlarray is used by the moderator to pause the outgoing | In the basic-video template, two logical streams are defined - | |||
| video stream to a participant in case the participant is not | mainvideoIn, mainvideoOut. The mainvideoIn comprises of the input | |||
| confirming to the conference policy. The moderator can choose to set | video stream from the participants and the mainvideoout stream | |||
| this control temporaraly till the participant follows conference | comprises of the output video stream from the server to the | |||
| rules. The controlarray enables a specific outgoing video stream to | participants. For the role of moderator, two controlArrays are | |||
| be paused by passing in the associated identifying number of the | defined which defines the control pause-video for each of the logical | |||
| participant into the name attribute e.g. The first participant to | streams. With the help of this controls, the moderator can pause any | |||
| enter the conference would be identified by the number '1' and so the | participants video being mixed in the server and can pause any output | |||
| operation 'StopoutputText[1]' would result in the participant | video stream to any of the participants of the conference. | |||
| identified within the policy with a value of '1' not seeing the | ||||
| conference. The control type is boolean and the default value of the | ||||
| control when not set is false indicating that all participant get the | ||||
| text stream. | ||||
| 3.3.5 Streams | 4.3.6. Streams | |||
| The 'Basic-Video Template' consists of two video streams: | The 'Basic-Video Template' consists of two video streams: | |||
| 3.3.5.1 VideoIn | 4.3.6.1. VideoIn | |||
| The 'VideoIn' media stream details properties associated with the | The 'VideoIn' media stream details properties associated with the | |||
| incoming video to the mixer. The 'VideoIn' stream has the following | incoming video to the mixer. The 'VideoIn' stream has the following | |||
| attributes: | attributes: | |||
| type: The stream type is 'video'. | type: The stream type is 'video'. | |||
| name: The descriptive name for this stream is 'VideoIn'. | name: The descriptive name for this stream is 'VideoIn'. | |||
| dir: The direction of the stream is set to 'in'. | dir: The direction of the stream is set to 'in'. | |||
| 3.3.5.1.1 Floor | stream-id : The unique identifier of the stream. | |||
| 3.3.5.1.1.1 Send_Video | 4.3.6.1.1. Floor | |||
| 4.3.6.1.1.1. Send_Video | ||||
| The 'Send_Video' floor is associated with the 'VideoIn' stream. It | The 'Send_Video' floor is associated with the 'VideoIn' stream. It | |||
| provides a mechanism to control the Video input to a media mix. A | provides a mechanism to control the Video input to a media mix. A | |||
| participant with a role of 'Moderator' should always have floor | participant with a role of 'Moderator' should always have floor | |||
| preference - this is considered out of scope for this document. The | preference - this is considered out of scope for this document. The | |||
| following attributes are defined: | following attributes are defined: | |||
| floor_id: Uniquely identifies the floor within the context of this | floor_id: Uniquely identifies the floor within the context of this | |||
| template and has a value of '1'. | template and has a value of '1'. | |||
| instances: Value of '1' implies only one occurrence of this floor at | instances: Value of '1' implies only one occurrence of this floor at | |||
| any one time. | any one time. | |||
| enable: A value of 'false' indicates that this floor is not enabled | enable: A value of 'false' indicates that this floor is not enabled | |||
| by default. | by default. | |||
| value: A value of 'false' specifies that the instance represented by | value: A value of 'false' specifies that the instance represented by | |||
| this template does not have control of the floor. A value of 'true' | this template does not have control of the floor. A value of 'true' | |||
| indicates conttrol of the floor. | indicates conttrol of the floor. | |||
| enable: A value of 'true' specifies that floor control is in | enable: A value of 'true' specifies that floor control is in | |||
| operation while 'false' specifies that floor control is not in | operation while 'false' specifies that floor control is not in | |||
| operation. | operation. | |||
| 3.3.5.2 VideoOut | 4.3.6.2. VideoOut | |||
| The 'ViedoOut' media stream details properties associated with the | The 'ViedoOut' media stream details properties associated with the | |||
| outgoing audio from the mixer. The 'VideoOut' stream has the | outgoing audio from the mixer. The 'VideoOut' stream has the | |||
| following attributes: | following attributes: | |||
| type: The stream type is 'video'. | type: The stream type is 'video'. | |||
| name: The descriptive name for this stream is 'VideoOut'. | name: The descriptive name for this stream is 'VideoOut'. | |||
| dir: The direction of the stream is set to 'out'. | dir: The direction of the stream is set to 'out'. | |||
| 3.3.6 XML Definition | stream-id : The unique identifier of the stream. | |||
| 4.3.7. Blueprint - XML Example | ||||
| <template name="basic-video"> | <template name="basic-video"> | |||
| <parameter type="integer" name="max-participants" min="1" max="128"/> | <parameter type="integer" name="max-participants" value ="1" min="1" max="128"/> | |||
| <parameter type="integer" name="max-video-streams" min="1" max="128"/> | <parameter type="integer" name="max-video-streams" value="1" min="1" max="128"/> | |||
| <role name="Participant"> | ||||
| <parameter type="integer" name="max-participants" value="1" min="1" max="128"/> | ||||
| <role name="Participant"> | <stream type="video" name="VideoIn" dir="in"> | |||
| <parameter type="integer" name="max-participants" min="1" max="128"/> | <floor name="Send_Video" floor_id="1" instances="1" enable="true" value="false"> | |||
| <parameter type="integer" name="max-video-input-streams" min="1" max="128"/> | <control name ="pause-video" type="boolean" enable="true" > | |||
| <label>Pause-Video</label> | ||||
| <value>False</value> | ||||
| </control> | ||||
| </floor> | ||||
| </stream> | ||||
| <stream type="video" name="VideoIn" dir="in"> | <stream type="video" name="VideoOut" dir="out"/> | |||
| <floor name="Send_Video" floor_id="1" instances="1" enable="true" value="false"> | </role> | |||
| <control name ="pause-video" type="boolean" enable="true" > | ||||
| <label>Pause-Video</label> | ||||
| <value>False</value> | ||||
| </control> | ||||
| </floor> | ||||
| </stream> | ||||
| <stream type="video" name="VideoOut" dir="out"/> | ||||
| </role> | ||||
| <role name="Moderator"> | <role name="Moderator"> | |||
| <parameter type="integer" name="max-participants" min="0" max="1"/> | <parameter type="integer" name="max-participants" value="1" min="0" max="1"/> | |||
| <parameter type="integer" name="max-video-input-streams" min="1" max="128"/> | ||||
| <controlArray name="PauseInputVideo" index="0" type="boolean" enable="true"> | <controlArray> | |||
| <label>PauseInputVideo</label> | <LogicalStream type="video" name="MainVideoIn" /> | |||
| <value>False</value> | <control type="boolean" name="pause-video" enable="false"> | |||
| </controlArray> | <label>PauseInputVideo</label> | |||
| <controlArray name="PauseOutputAudio" index="0" type="boolean" enable="true"> | <value>False</value> | |||
| <label>PauseOutputVideo</label> | ||||
| <value>False</value> | ||||
| </controlArray> | ||||
| <stream type="video" name="VideoIn" dir="in"> | ||||
| <floor name="Send_video" floor_id="1" instances="1" enable="true" value="true"> | ||||
| <control name ="pause-video" type="boolean" enable="true" > | ||||
| <label>Pause-Video</label> | ||||
| <value>False</value> | ||||
| </control> | </control> | |||
| </floor> | </controlArray> | |||
| </stream> | ||||
| <stream type="video" name="VideoOut" dir="out"/> | ||||
| </role> | ||||
| </template> | ||||
| 3.4 Advanced Video Template | ||||
| 3.4.1 Description | ||||
| The 'Advanced-Video Template' builds on the basic set of video | ||||
| functionality to provide a set of advanced features. The template | ||||
| allows provides additional functionality which includes the | ||||
| specification of layout associated with a participants output stream | ||||
| and the ability to select an individual output source from the list | ||||
| participants. | ||||
| 3.4.2 Roles | ||||
| Participant: The advanced video template specifies the role of | ||||
| 'Participant' to signify an entry level user with no privileges by | ||||
| default. The participant role could obtain access to all controls | ||||
| available for this template if set accordingly by a privileged user. | ||||
| Moderator: The advanced video template specifies the role of | ||||
| 'Moderator' to signify a user with advanced privileges by default. | ||||
| The 'Moderator' role for this template has exactly the same controls | ||||
| as a 'Participant'. The major difference being that the default | ||||
| value for the 'enable' attribute on the 'pause-video' and 'Layout' | ||||
| controls are set to 'true'. | ||||
| 3.4.3 Parameters | ||||
| max-participants: The 'max-participants' parameter specifies the | ||||
| maximum number of entities that are permitted to be involved in an | ||||
| instantiated instance of the template for the specified template | ||||
| category. The minimum value permitted is "1" and the maximum value | ||||
| permitted is "128". The parameter can appear at either a template or | ||||
| role level. | ||||
| max-video-streams: The 'max-video-streams' parameter specifies the | ||||
| maximum number of video media streams that are permitted to be | ||||
| involved in an instantiated instance of the template. The minimum | ||||
| value permitted is "1" and the maximum value permitted is "128". | ||||
| This parameter is required as participant of the mix can contribute | ||||
| more than one video stream. | ||||
| max-video-input-streams: The parameter "max-video-input-streams" | ||||
| indicates the number of input video streams each participant can | ||||
| inject into the conference. The convener of the conference can set | ||||
| this value when instantiating a conference. This reduces the | ||||
| requirement to define multiple templates for a number of media stream | ||||
| of same type that participants can send to the conference. | ||||
| 3.4.4 Controls | ||||
| 3.4.4.1 pause-video | ||||
| The 'pause-video' control is used in conjunction with a media stream | ||||
| to cease transmission of associated media. It has a 'Boolean' value. | ||||
| The 'pause-video' control consists of the following attributes:- | ||||
| type: The 'pause-video' control has a type of 'Boolean'. | ||||
| name: The control is named 'pause-video'. | ||||
| default: Indicates the default value for the 'pause-video' control | ||||
| when not set. The attribute type is 'Boolean' with a default value | ||||
| of 'false. Setting the 'default' attribute to 'false' specifies that | ||||
| media should be transported for the associated media stream. When | ||||
| set to the value of 'true', media should not be transported for the | ||||
| associated media stream. | ||||
| enable: The enable attribute specifies if access to the control is | ||||
| available to the client. The value is of type 'boolean'. | ||||
| 3.4.4.2 Layout | ||||
| The 'Layout' control is used in conjunction with an output video | ||||
| stream to define the video layout configuration. It has a | ||||
| 'enumeration' value which provides various tile formats for video | ||||
| display. The 'Layout' control consists of the following attributes:- | ||||
| name: The control is named 'Layout' | ||||
| type: The 'Layout' control has a type of 'enumeration'. | ||||
| enable: The enable attribute specifies if access to the control is | ||||
| available to the client. The value is of type 'boolean'. | ||||
| default: The default value for this control is '0'. | ||||
| 3.4.4.3 SourceSelector | ||||
| The 'SourceSelector' control is used in conjunction with an output | ||||
| video stream to define which video media stream are contributing to | ||||
| the output mix. It has a 'enumeration' value which provides a list | ||||
| format containing the media participants. The List element is | ||||
| described in [1]. The 'SourceSelector' control consists of the | ||||
| following attributes:- | ||||
| name: The control is named 'SourceSelector' | ||||
| type: The 'SourceSelector' control has a type of 'enumeration'. | ||||
| enable: The enable attribute specifies if access to the control is | ||||
| available to the client. The value is of type 'boolean'. | ||||
| default: The default value for this control is '1'. | ||||
| 3.4.4.4 PauseInputVideo | ||||
| 'PauseInputVideo' is a controlarray that is used in conjunction with | <controlArray> | |||
| video media input streams of other participants and allows to pause | <LogicalStream type="video" name="MainVideoOut" /> | |||
| any input media streams from the participants. The moderator of the | <control type="boolean" name="pause-video" enable="false"> | |||
| conference can use this control to pause the incoming video stream in | <label>PauseOutputVideo</label> | |||
| case the participant does not follow the conference code. The | <value>False</value> | |||
| controlarray enables a specific video stream to be paused by passing | </control> | |||
| in the associated identifying number of the participant into the name | </controlArray> | |||
| attribute e.g. The first participant to enter the conference would | ||||
| be identified by the number '1' and so the operation | ||||
| 'PauseInputVideo[1]' would result in the participant identified | ||||
| within the policy with a value of '1' being paused. This result | ||||
| would be such that this participants video would not be sent to any | ||||
| one in the conference or would not be mixed in case the server is | ||||
| mixing the video streams. | ||||
| 3.4.4.5 PauseOutputVideo | <stream type="video" name="VideoIn" dir="in"> | |||
| <floor name="Send_video" floor_id="1" instances="1" enable="true" value="true"> | ||||
| <control name ="pause-video" type="boolean" enable="true" > | ||||
| <label>Pause-Video</label> | ||||
| <value>False</value> | ||||
| </control> | ||||
| </floor> | ||||
| </stream> | ||||
| This controlarray is used by the moderator to pause the outgoing | <stream type="video" name="VideoOut" dir="out"/> | |||
| video stream to a participant in case the participant is not | </role> | |||
| confirming to the conference policy. The moderator can choose to set | ||||
| this control temporaraly until the participant follows conference | ||||
| rules. The controlarray enables a specific outgoing video stream to | ||||
| be paused by passing in the associated identifying number of the | ||||
| participant into the name attribute e.g. The first participant to | ||||
| enter the conference would be identified by the number '1' and so the | ||||
| operation 'StopoutputText[1]' would result in the participant | ||||
| identified within the policy with a value of '1' not seeing the | ||||
| conference. The control type is boolean and the default value of the | ||||
| control when not set is false indicating that all participant get the | ||||
| text stream. | ||||
| 3.4.5 Streams | </template> | |||
| The 'Advanced-Video Template' consists of two video streams: | 4.3.8. XML Schema Definition | |||
| 3.4.5.1 VideoIn | This section provides the XML schema definition for the 'Basic-Video' | |||
| template. | ||||
| The 'VideoIn' media stream details properties associated with the | <?xml version="1.0" encoding="UTF-8"?> | |||
| incoming video to the mixer. The 'VideoIn' stream has the following | <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" | |||
| attributes: | xmlns:role="urn:ietf:params:xml:ns:role-schema"> | |||
| type: The stream type is 'video'. | <import namespace="urn:ietf:params:xml:ns:role-schema" /> | |||
| name: The descriptive name for this stream is 'VideoIn'. | <xs:element name="template-basic-video> | |||
| <xs:complexType> | ||||
| <xs:sequence> | ||||
| <xs:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/> | ||||
| <xs:element ref="role" minOccurs="1" maxOccurs="unbounded"/> | ||||
| </xs:sequence> | ||||
| </xs:complexType> | ||||
| </xs:element> | ||||
| dir: The direction of the stream is set to 'in'. | <xs:element name="parameter"> | |||
| <xs:complexType> | ||||
| <xs:attribute name="type" type="parameter-defined" use="required"/> | ||||
| <xs:attribute name="name" type="parameter-name" use="required"/> | ||||
| <xs:attribute name="value" type="parameter-value" use="required"/> | ||||
| <xs:attribute name="min" type="xs:positiveInteger" use="optional"/> | ||||
| <xs:attribute name="max" type="xs:positiveInteger" use="optional"/> | ||||
| </xs:complexType> | ||||
| </xs:element> | ||||
| 3.4.5.1.1 Floor | <xs:simpleType name="parameter-value"> | |||
| <xs:union> | ||||
| <xs:simpleType> | ||||
| <xs:restriction base="xs:integer"/> | ||||
| </xs:simpleType> | ||||
| <xs:simpleType> | ||||
| <xs:restriction base="xs:real"/> | ||||
| </xs:simpleType> | ||||
| <xs:simpleType> | ||||
| <xs:restriction base="xs:enumeration"/> | ||||
| </xs:simpleType> | ||||
| </xs:union> | ||||
| </xs:simpleType> | ||||
| 3.4.5.1.1.1 Send_Video | <xs:simpleType name="parameter-defined"> | |||
| <xs:restriction base="xs:string"> | ||||
| <xs:enumeration value="integer"/> | ||||
| <xs:enumeration value="real"/> | ||||
| <xs:enumeration value="enumeration"/> | ||||
| </xs:restriction> | ||||
| </xs:simpleType> | ||||
| The 'Send_Video' floor is associated with the 'VideoIn' stream. It | <xs:element name="role"> | |||
| provides a mechanism to control the Video input to a media mix. A | <xs:complexType> | |||
| participant with a role of 'Moderator' should always have floor | <xs:sequence> | |||
| preference - this is considered out of scope for this document. The | <xs:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/> | |||
| following attributes are defined: | <xs:element ref="controlArray" minOccurs="0" maxOccurs="unbounded"/> | |||
| <xs:element ref="stream" minOccurs="0" maxOccurs="unbounded"/> | ||||
| </xs:sequence> | ||||
| <xs:attribute name="name" type="rtype" use="required"/> | ||||
| </xs:complexType> | ||||
| </xs:element> | ||||
| floor_id: Uniquely identifies the floor within the context of this | <xs:simpleType name="rtype"> | |||
| template and has a value of '1'. | <xs:restriction base="role:role-type"> | |||
| <xs:enumeration value="Participant"/> | ||||
| <xs:enumeration value="Moderator"/> | ||||
| </xs:restriction> | ||||
| </xs:simpleType> | ||||
| instances: Value of '1' implies only one occurrence of this floor at | <xs:element name="controlArray"> | |||
| any one time. | <xs:complexType> | |||
| <xs:sequence> | ||||
| <xs:element ref="LogicalStream" minoccurs="1" maxoccurs="unbounded" /> | ||||
| <xs:element ref="control" minoccurs="1" maxoccurs="1"/> | ||||
| </xs:sequence> | ||||
| </xs:complexType> | ||||
| </xs:element> | ||||
| enable: A value of 'false' indicates that this floor is not enabled | <xs:element name="stream"> | |||
| by default. | <xs:complexType> | |||
| <xs:sequence> | ||||
| <xs:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/> | ||||
| <xs:element ref="floor" minOccurs="0" maxOccurs="unbounded"/> | ||||
| <xs:element ref="control" minOccurs="0" maxOccurs="unbounded"/> | ||||
| </xs:sequence> | ||||
| <xs:attribute name="type" type="media-type" use="required"/> | ||||
| <xs:attribute name="name" type="xs:string" use="required"/> | ||||
| <xs:attribute name="dir" type="direction-type" use="required"/> | ||||
| <xs:attribute name="stream-id" type="xs:positiveInteger" use="optional"/> | ||||
| value: A value of 'false' specifies that the instance represented by | </xs:complexType> | |||
| this template does not have control of the floor. A value of 'true' | </xs:element> | |||
| indicates control of the floor. | ||||
| enable: A value of 'true' specifies that floor control is in | <xs:element name="LogicalStream"> | |||
| operation while 'false' specifies that floor control is not in | <xs:complexType> | |||
| operation. | <xs:attribute name="type" type="media-type" /> | |||
| <xs:attribute name="name" type="logical-Streamtype" /> | ||||
| <xs:complexType> | ||||
| </xs:element> | ||||
| 3.4.5.2 VideoOut | <xs:simpleType name="logical-streamType > | |||
| <xs:restriction base="xs:string"> | ||||
| <xs:enumeration value="MainVideoIn"/> | ||||
| <xs:enumeration value="MainVideoOut"/> | ||||
| </xs:simpleType> | ||||
| The 'ViedoOut' media stream details properties associated with the | <xs:simpleType name="media-type"> | |||
| outgoing audio from the mixer. The 'VideoOut' stream has the | <xs:restriction base="xs:string"> | |||
| following attributes: | <xs:enumeration value="video"/> | |||
| </xs:restriction> | ||||
| </xs:simpleType> | ||||
| type: The stream type is 'video'. | <xs:simpleType name="direction-type"> | |||
| <xs:restriction base="xs:string"> | ||||
| <xs:enumeration value="in"/> | ||||
| <xs:enumeration value="out"/> | ||||
| </xs:restriction> | ||||
| </xs:simpleType> | ||||
| name: The descriptive name for this stream is 'VideoOut'. | <xs:element name="floor"> | |||
| <xs:complexType> | ||||
| <xs:sequence> | ||||
| <xs:element ref="control" minOccurs="1" maxOccurs="unbounded"/> | ||||
| </xs:sequence> | ||||
| <xs:attribute name="name" type="xs:string" use="required"/> | ||||
| <xs:attribute name="floor_id" type="xs:positiveInteger" use="required"/> | ||||
| <xs:attribute name="instances" type="xs:positiveInteger" use="required"/> | ||||
| <xs:attribute name="enable" type="xs:boolean" use="required"/> | ||||
| <xs:attribute name="value" type="xs:boolean" use="required"/> | ||||
| </xs:complexType> | ||||
| </xs:element> | ||||
| dir: The direction of the stream is set to 'out'. | <xs:element name="control"> | |||
| <xs:complexType> | ||||
| <element name="label" type="xs:string"/> | ||||
| <element name="value" type="xs:boolean"/> | ||||
| </xs:complexType> | ||||
| <xs:attribute name="type" type="control-type" use="required"/> | ||||
| <xs:attribute name="name" type="xs:string" use="required"/> | ||||
| <xs:attribute name="enable" type="xs:boolean" use="required"/> | ||||
| </xs:element> | ||||
| 3.4.6 XML Definition | <xs:simpleType name="control-type"> | |||
| <template name="advanced-video"> | <xs:restriction base="xs:string"> | |||
| <parameter type="integer" name="max-participants" min="1" max="128"/> | <xs:enumeration value="boolean"/> | |||
| <parameter type="integer" name="max-video-streams" min="1" max="128"/> | </xs:restriction> | |||
| <list name="participants[1:%maxparticipants]"/> | </xs:simpleType> | |||
| <role name="Participant"> | </xs:schema> | |||
| <parameter type="integer" name="max-participants" min="1" max="128"/> | ||||
| <parameter type="integer" name="max-video-input-streams" min="1" max="128"/> | ||||
| <stream type="video" name="VideoIn" dir="in"> | ||||
| <floor name="Send_Video" floor_id="1" instances="1" enable="true" value="false"> | ||||
| <control name ="pause-video" type="boolean" enable="true" > | ||||
| <label>Pause-Video</label> | ||||
| <value>False</value> | ||||
| </control> | ||||
| </floor> | ||||
| </stream> | ||||
| <stream type="video" name="VideoOut" dir="out"> | ||||
| <control name="Layout" type="select1" enable="false"> | ||||
| <label>Video-Layout</label> | ||||
| <value>0</value> | ||||
| <item> | ||||
| <label> 1x1</label> | ||||
| <value> 0 </value> | ||||
| </item> | ||||
| <item> | ||||
| <label> 2x2</label> | ||||
| <value> 1 </value> | ||||
| </item> | ||||
| <item> | ||||
| <label> 3x3</label> | ||||
| <value> 2 </value> | ||||
| </item> | ||||
| <item> | ||||
| <label> 4x4</label> | ||||
| <value> 3 </value> | ||||
| </item> | ||||
| </control> | ||||
| <control name="sourceSelector" type="enumeration" enable="false" default="1" > | ||||
| <item label="%participants[*]" value="*"/> | ||||
| </control> | ||||
| </stream> | ||||
| </role> | ||||
| <role name="Moderator"> | ||||
| <parameter type="integer" name="max-participants" min="0" max="128"/> | ||||
| <parameter type="integer" name="max-video-input-streams" min="0" max="128"/> | ||||
| <controlArray name="PauseInputVideo" index="0" type="boolean" enable="true"> | ||||
| <label>PauseInputVideo</label> | ||||
| <value>False</value> | ||||
| </controlArray> | ||||
| <controlArray name="PauseOutputAudio" index="0" type="boolean" enable="true"> | ||||
| <label>PauseOutputVideo</label> | ||||
| <value>False</value> | ||||
| </controlArray> | ||||
| <stream type="video" name="VideoIn" dir="in"> | 4.4. Advanced Video Template | |||
| <floor name="Send_Video" floor_id="1" instances="1" enable="true" value="true"> | ||||
| <control name ="pause-video" type="boolean" enable="true" > | ||||
| <label>Pause-Video</label> | ||||
| <value>False</value> | ||||
| </control> | ||||
| </floor> | ||||
| </stream> | ||||
| <stream type="video" name="VideoOut" dir="out"> | ||||
| <control name="Layout" type="enumeration" enable="true" default="0"> | ||||
| <item label="1x1" value="0"/> | ||||
| <item label="2x1" value="1"/> | ||||
| <item label="1x2" value="2"/> | ||||
| <item label="2x2" value="3"/> | ||||
| <item label="3x3" value="4"/> | ||||
| </control> | ||||
| <control name="sourceSelector" type="enumeration" enable="true" default="1" > | ||||
| <item label="%participants[*]" value="*"/> | ||||
| </control> | ||||
| </stream> | ||||
| </role> | ||||
| </template> | ||||
| [Editors Note: Sidebar support to be added in next revision] | TODO | |||
| 3.5 Basic Text Template | 4.5. Basic Text Template | |||
| 3.5.1 Description | 4.5.1. Description | |||
| The Basic-Text template can be used to achieve the simplest form of | The Basic-Text template can be used to achieve the simplest form of | |||
| interaction between multiple text input streams from participating | interaction between multiple text input streams from participating | |||
| entities. The output stream will consist of all inout messages | entities. The output stream will consist of all input messages | |||
| except those injected by the participant in question. Controls are | except those injected by the participant in question. Controls are | |||
| defined to limit who can inject into a conference and a privilege | defined to limit who can inject into a conference and a privilege | |||
| user has the ability to block participants receiving outgoing media. | user has the ability to block participants receiving outgoing media. | |||
| 3.5.2 Roles | 4.5.2. Roles | |||
| Participant: The basic audio template specifies the role of | Participant: The basic audio template specifies the role of | |||
| 'Participant' to signify an entry level user with no privileges by | 'Participant' to signify an entry level user with no privileges by | |||
| default. The participant role could obtain access to all controls | default. The participant role could obtain access to all controls | |||
| available for this template if set accordingly by a privileged user. | available for this template if set accordingly by a privileged user. | |||
| Access to the controls available to a participant can be controlled | Access to the controls available to a participant can be controlled | |||
| using floor control, as defined in [ref control draft]. | using floor element. | |||
| Moderator: The basic audio template specifies the role of 'Moderator' | Moderator: The basic audio template specifies the role of 'Moderator' | |||
| to signify a user with advanced privileges by default. The | to signify a user with advanced privileges by default. The | |||
| 'Moderator' role for this template has the the same controls as a | 'Moderator' role for this template has the same controls as a | |||
| 'Participant' with an additional control for muting any participant | 'Participant'. The moderator also has the capability to block any | |||
| in a conference instance. Another difference being that the default | input stream from being mixed in the output stream and can also block | |||
| value for the 'enable' attribute on the 'mute' control on an output | the output stream to any participant. See the individual control | |||
| media stream is set to 'true'. See the individual control | definitions for the impact of attribute settings. | |||
| definitions for ithe mpact of attribute settings. | ||||
| 3.5.3 Parameters | 4.5.3. Parameters | |||
| max-participants: The 'max-particpants' parameter specifies the | max-participants: The 'max-particpants' parameter specifies the | |||
| maximum number of participants (Entity with signalling connection to | maximum number of participants (Entity with signalling connection to | |||
| the focus) that are permitted to be involved in an instantiated | the focus) that are permitted to be involved in an instantiated | |||
| instance of the template (or sub-element, depending on where | instance of the template (or sub-element, depending on where | |||
| specified) for the specified role. The minimum value permitted is | specified) for the specified role. The minimum value permitted is | |||
| "1" and the maximum value permitted is "128". | "1" and the maximum value permitted is "128". | |||
| 3.5.4 Controls | 4.5.4. Controls | |||
| 3.5.4.1 block-incoming | 4.5.4.1. block | |||
| The 'block-incoming' control is used in conjunction with a input | The 'block' control is used in conjunction with a input (and output) | |||
| stream from a participant to cease transmission of associated media. | stream from a participant (and from the conference server) to cease | |||
| It has a 'Boolean' value. The 'block-incoming' control consists of | transmission of associated media. It has a 'Boolean' value. The | |||
| the following attributes:- | 'block' control consists of the following attributes:- | |||
| type: The 'block-incoming' control has a type of 'Boolean'. | type: The 'block' control has a type of 'Boolean'. | |||
| name: The control is named 'block-incoming'. | name: The control is named 'block'. | |||
| default: Indicates the default value for the 'block-incoming' control | default: Indicates the default value for the 'block' control when not | |||
| when not set. The attribute type is 'Boolean' with a default value | set. The attribute type is 'Boolean' with a default value of | |||
| of 'false'. Setting the 'block-incoming' attribute to 'false' | 'false'. Setting the 'block-incoming' attribute to 'false' specifies | |||
| specifies that media should be transported for the associated media | that media should be transported for the associated media stream. | |||
| stream. When set to the value of 'true', media should not be | When set to the value of 'true', media should not be transported for | |||
| transported for the associated media stream. | the associated media stream. | |||
| enable: The enable attribute specifies if access to the control is | enable: The enable attribute specifies if access to the control is | |||
| available to the client. The value is of type 'boolean' and is set | available to the client. The value is of type 'boolean' and is set | |||
| to 'true' as default. | to 'true' as default. | |||
| 3.5.4.2 StopoutputText | 4.5.5. Control Array | |||
| This controlarray is used by the moderator to block the outgoing text | ||||
| stream to a particular participant if the participant doesnt follow | ||||
| conference rules. The moderator can choose to set this control | ||||
| temporaraly till the participant follows conference rules. The | ||||
| controlarray enables a specific outgoing text stream to be stopped by | ||||
| passing in the associated identifying number of the participant into | ||||
| the name attribute e.g. The first participant to enter the | ||||
| conference would be identified by the number '1' and so the operation | ||||
| 'StopoutputText[1]' would result in the participant identified within | ||||
| the policy with a value of '1' not getting any text media. The | ||||
| control type is boolean and the default value of the control when not | ||||
| set is false indicating that all participant get the text stream. | ||||
| 3.5.4.3 StopinputText | ||||
| This controlarray is used by the moderator to block the incoming text | In the basic-text template, two logical streams are defined - | |||
| stream from a particular participant uf the participant doesnt follow | mainTextIn, mainTextOut. The mainTextIn comprises of the input text | |||
| the conference rules. This will result in the participants input | stream from the participants and the maintextout stream comprises of | |||
| text media not to distributed to other participants in conference | the output text stream from the server to the participants. For the | |||
| mix. The controlarray enables a specific incoming text stream to be | role of moderator, two controlArrays are defined which defines the | |||
| not be mixed in the conference mix by passing the associated | control "block" for each of the logical streams. With the help of | |||
| identifying number of the participant into the name attribute e.g. | this controls, the moderator can block any participants text stream | |||
| The first participant to enter the conference would be identified by | from being mixed in the server and can block any output text stream | |||
| the number '1' and so the operation 'StopinputText[1]' would result | to any of the participants of the conference. | |||
| in the participant identified within the policy with a value of '1', | ||||
| its text media not being mixed. The control type is boolean and the | ||||
| default value of the control when not set is false indicating that | ||||
| all participant text stream is mixed. | ||||
| 3.5.5 Streams | 4.5.6. Streams | |||
| The 'Basic-Text' Template consists of two text media streams: | The 'Basic-Text' Template consists of two text media streams: | |||
| 3.5.5.1 TextIn | 4.5.6.1. TextIn | |||
| The 'TextIn' media stream details properties associated with the | The 'TextIn' media stream details properties associated with the | |||
| incoming text to the mixer. The 'TextIn' stream has the following | incoming text to the mixer. The 'TextIn' stream has the following | |||
| attributes: | attributes: | |||
| type: The stream type is 'text'. | type: The stream type is 'text'. | |||
| name: The descriptive name for this stream is 'TextIn'. | name: The descriptive name for this stream is 'TextIn'. | |||
| dir: The direction of the stream is set to 'in'. | dir: The direction of the stream is set to 'in'. | |||
| 3.5.5.1.1 Floor | 4.5.6.1.1. Floor | |||
| 3.5.5.1.1.1 Right_to_inject | 4.5.6.1.1.1. send_text | |||
| The 'Right_to_inject' floor is associated with the 'TextIn' stream. | The 'send_text' floor is associated with the 'TextIn' stream. It | |||
| It provides a mechanism to control the text input to a text media | provides a mechanism to control the text input to a text media mix. | |||
| mix. A participant with a role of 'Moderator' should always have | A participant with a role of 'Moderator' should always have floor | |||
| floor preference - this is considered out of scope for this document. | preference - this is considered out of scope for this document. The | |||
| The following attributes are defined: | following attributes are defined: | |||
| floor_id: Uniquely identifies the floor within the context of this | floor_id: Uniquely identifies the floor within the context of this | |||
| template and has a value of '1'. | template and has a value of '1'. | |||
| instances: Indicatesthe number of occurrences of this floor at any | instances: Indicates the number of occurrences of this floor at any | |||
| one time. | one time. | |||
| enable: A value of 'false' indicates that this floor is not enabled. | enable: A value of 'false' indicates that this floor is not enabled. | |||
| A value of 'true' indicates that this floor is enabled. | A value of 'true' indicates that this floor is enabled. | |||
| value: A value of 'false' specifies that the instance represented by | value: A value of 'false' specifies that the instance represented by | |||
| this template does not have control of the floor. A value of 'true' | this template does not have control of the floor. A value of 'true' | |||
| indicates control of the floor. | indicates control of the floor. | |||
| 3.5.5.2 TextOut | 4.5.6.2. TextOut | |||
| The 'TextOut' media stream details properties associated with the | The 'TextOut' media stream details properties associated with the | |||
| outgoing text media from the mixer. The 'TextOut' stream has the | outgoing text media from the mixer. The 'TextOut' stream has the | |||
| following attributes: | following attributes: | |||
| type: The stream type is 'text'. | type: The stream type is 'text'. | |||
| name: The descriptive name for this stream is 'TextOut'. | name: The descriptive name for this stream is 'TextOut'. | |||
| dir: The direction of the stream is set to 'out'. | dir: The direction of the stream is set to 'out'. | |||
| 3.5.6 XML Definition | 4.5.7. Blueprint - XML Example | |||
| <template name="basic-text"> | <template name="basic-text"> | |||
| <parameter type="integer" name="max-participants" min="1" max="128"/> | <parameter type="integer" name="max-participants" min="1" max="128"/> | |||
| <list name="participants[1:%maxparticipants]"/> | ||||
| <role name="Participant"> | <role name="Participant"> | |||
| <parameter type="integer" name="max-participants" min="1" max="128"/> | <parameter type="integer" name="max-participants" value="1" min="1" max="128"/> | |||
| <stream type="text" name="TextIn" dir="in"> | <stream type="text" name="TextIn" dir="in"> | |||
| <floor name="Right_to_inject" floor_id="1" instances="1" enable="true" value="false"> | <floor name="send_text" floor_id="1" instances="1" enable="true" value="false"> | |||
| <control type ="boolean" name="block_incoming" enable="true"> | <control type ="boolean" name="block" enable="true"> | |||
| <label>Block-Incoming-Text</label> | <label>Block-Incoming-Text</label> | |||
| <value>True</value> | <value>True</value> | |||
| </control> | </control> | |||
| </floor> | </floor> | |||
| </stream> | </stream> | |||
| <stream type="text" name="TextOut" dir="out"/> | <stream type="text" name="TextOut" dir="out"/> | |||
| </role> | </role> | |||
| <role name="moderator"> | <role name="moderator"> | |||
| <parameter type="integer" name="max-participants" min="1" max="128"/> | <parameter type="integer" name="max-participants" value="0" min="1" max="128"/> | |||
| <controlArray name="StopOutputText" type="boolean" index="0" enable="true" > | <controlArray> | |||
| <label>Stop-Output-Text</label> | <LogicalStream name="MainTextIn" type="Text"/> | |||
| <control name="block" type="boolean" enable="false"> | ||||
| <label>Stop-Input-Text</label> | ||||
| <value>False</value> | <value>False</value> | |||
| </control> | ||||
| </controlArray> | </controlArray> | |||
| <controlArray name="StopInputText" type="boolean" index="0" enable="true" > | ||||
| <label>StopInputText</label> | <controlArray> | |||
| <LogicalStream name="MainTextOut" type="Text" /> | ||||
| <control name="block" type="boolean" enable="false"> | ||||
| <label>StopOutputText</label> | ||||
| <value>False</value> | <value>False</value> | |||
| </control> | ||||
| </controlArray> | </controlArray> | |||
| <stream type="text" name="TextIn" dir="in"> | <stream type="text" name="TextIn" dir="in"> | |||
| <floor name="Right_to_inject" floor_id="1" instances="1" enable="true" value="true"> | <floor name="Right_to_inject" floor_id="1" instances="1" enable="true" value="true"> | |||
| <control type ="boolean" name="block_incoming" enable="true"> | <control type ="boolean" name="block" enable="true"> | |||
| <label>Block-Incoming-Text</label> | <label>Block-Incoming-Text</label> | |||
| <value>False</value> | <value>False</value> | |||
| </control> | </control> | |||
| </floor> | </floor> | |||
| </stream> | </stream> | |||
| <stream type="text" name="TextOut" dir="out"/> | <stream type="text" name="TextOut" dir="out"/> | |||
| </role> | </role> | |||
| </template> | </template> | |||
| 3.6 Advanced Text Template | 4.5.8. XML Schema Definition | |||
| 3.6.1 Description | This section provides the XML schema definition for the 'Basic-Text' | |||
| template. | ||||
| [Editors Note: To be completed in the next revision of this draft] | <?xml version="1.0" encoding="UTF-8"?> | |||
| <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" | ||||
| xmlns:role="urn:ietf:params:xml:ns:role-schema"> | ||||
| 3.6.2 Roles | <import namespace="urn:ietf:params:xml:ns:role-schema" /> | |||
| 3.6.3 Parameters | <xs:element name="template-basic-text"> | |||
| <xs:complexType> | ||||
| <xs:sequence> | ||||
| <xs:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/> | ||||
| <xs:element ref="role" minOccurs="1" maxOccurs="unbounded"/> | ||||
| </xs:sequence> | ||||
| </xs:complexType> | ||||
| </xs:element> | ||||
| 3.6.4 Controls | <xs:element name="parameter"> | |||
| <xs:complexType> | ||||
| <xs:attribute name="type" type="parameter-defined" use="required"/> | ||||
| <xs:attribute name="name" type="xs:string" use="required"/> | ||||
| <xs:attribute name="value" type="parameter-value" use="required"/> | ||||
| <xs:attribute name="min" type="xs:positiveInteger" use="optional"/> | ||||
| <xs:attribute name="max" type="xs:positiveInteger" use="optional"/> | ||||
| </xs:complexType> | ||||
| </xs:element> | ||||
| 3.6.5 Streams | <xs:simpleType name="parameter-value"> | |||
| <xs:union> | ||||
| <xs:simpleType> | ||||
| <xs:restriction base="xs:integer"/> | ||||
| </xs:simpleType> | ||||
| <xs:simpleType> | ||||
| <xs:restriction base="xs:real"/> | ||||
| </xs:simpleType> | ||||
| <xs:simpleType> | ||||
| <xs:restriction base="xs:enumeration"/> | ||||
| </xs:simpleType> | ||||
| </xs:union> | ||||
| </xs:simpleType> | ||||
| 3.6.6 XML Definition | <xs:simpleType name="parameter-defined"> | |||
| <xs:restriction base="xs:string"> | ||||
| <xs:enumeration value="integer"/> | ||||
| <xs:enumeration value="real"/> | ||||
| <xs:enumeration value="enumeration"/> | ||||
| </xs:restriction> | ||||
| </xs:simpleType> | ||||
| [Editors Note: Sidebar support to be added in next revision] | <xs:element name="role"> | |||
| <xs:complexType> | ||||
| <xs:sequence> | ||||
| <xs:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/> | ||||
| <xs:element ref="controlArray" minOccurs="0" maxOccurs="unbounded"/> | ||||
| <xs:element ref="stream" minOccurs="0" maxOccurs="unbounded"/> | ||||
| </xs:sequence> | ||||
| <xs:attribute name="name" type="rtype" use="required"/> | ||||
| </xs:complexType> | ||||
| </xs:element> | ||||
| 3.7 Audio-Video Template | <xs:simpleType name="rtype"> | |||
| <xs:restriction base="role:role-type"> | ||||
| <xs:enumeration value="Participant"/> | ||||
| <xs:enumeration value="Moderator"/> | ||||
| </xs:restriction> | ||||
| </xs:simpleType> | ||||
| 3.7.1 Description | <xs:element name="controlArray"> | |||
| <xs:complexType> | ||||
| <xs:sequence> | ||||
| <xs:element ref="LogicalStream" minoccurs="1" maxoccurs="unbounded" /> | ||||
| <xs:element ref="control" minoccurs="1" maxoccurs="1"/> | ||||
| </xs:sequence> | ||||
| </xs:complexType> | ||||
| </xs:element> | ||||
| The advance audio-video template enables a conference with audio and | <xs:element name="stream"> | |||
| video and gives some advance controls to the participants of the | <xs:complexType> | |||
| conference. The controls provided to the participants in this | <xs:sequence> | |||
| templates are similar to the one defined in advance audio and advance | <xs:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/> | |||
| video templates. | <xs:element ref="floor" minOccurs="0" maxOccurs="unbounded"/> | |||
| <xs:element ref="control" minOccurs="0" maxOccurs="unbounded"/> | ||||
| </xs:sequence> | ||||
| <xs:attribute name="type" type="media-type" use="required"/> | ||||
| <xs:attribute name="name" type="xs:string" use="required"/> | ||||
| <xs:attribute name="dir" type="direction-type" use="required"/> | ||||
| <xs:attribute name="stream-id" type="xs:positiveInteger" use="optional"/> | ||||
| 3.7.2 Roles | </xs:complexType> | |||
| </xs:element> | ||||
| 3.7.3 Parameters | <xs:element name="LogicalStream"> | |||
| <xs:complexType> | ||||
| <xs:attribute name="type" type="media-type" /> | ||||
| <xs:attribute name="name" type="logical-Streamtype" /> | ||||
| <xs:complexType> | ||||
| </xs:element> | ||||
| 3.7.4 Controls | <xs:simpleType name="logical-streamType > | |||
| <xs:restriction base="xs:string"> | ||||
| <xs:enumeration value="MainTextIn"/> | ||||
| <xs:enumeration value="MainTextOut"/> | ||||
| </xs:simpleType> | ||||
| 3.7.5 Streams | <xs:simpleType name="media-type"> | |||
| <xs:restriction base="xs:string"> | ||||
| <xs:enumeration value="text"/> | ||||
| </xs:restriction> | ||||
| </xs:simpleType> | ||||
| 3.7.6 XML Definition | <xs:simpleType name="direction-type"> | |||
| <xs:restriction base="xs:string"> | ||||
| <xs:enumeration value="in"/> | ||||
| <xs:enumeration value="out"/> | ||||
| </xs:restriction> | ||||
| </xs:simpleType> | ||||
| <template name="audio-video"> | <xs:element name="floor"> | |||
| <parameter type="integer" name="max-participants" min="1" max="128"/> | <xs:complexType> | |||
| <parameter type="integer" name="max-audio-streams" min="1" max="128"/> | <xs:sequence> | |||
| <parameter type="integer" name="max-video-streams" min="1" max="128"/> | <xs:element ref="control" minOccurs="1" maxOccurs="unbounded"/> | |||
| </xs:sequence> | ||||
| <xs:attribute name="name" type="xs:string" use="required"/> | ||||
| <xs:attribute name="floor_id" type="xs:positiveInteger" use="required"/> | ||||
| <xs:attribute name="instances" type="xs:positiveInteger" use="required"/> | ||||
| <xs:attribute name="enable" type="xs:boolean" use="required"/> | ||||
| <xs:attribute name="value" type="xs:boolean" use="required"/> | ||||
| </xs:complexType> | ||||
| </xs:element> | ||||
| <role name="Participant"> | <xs:element name="control"> | |||
| <parameter type="integer" name="max-participants" min="1" max="128"/> | <xs:complexType> | |||
| <parameter type="integer" name="max-audio-input-streams" min="1" max="1"/> | <element name="label" type="xs:string"/> | |||
| <parameter type="integer" name="max-video-input-streams" min="1" max="2"/> | <element name="value" type="control-value"/> | |||
| <list name="participants[1:%maxparticipants]"/> | </xs:complexType> | |||
| <xs:attribute name="type" type="control-type" use="required"/> | ||||
| <xs:attribute name="name" type="xs:string" use="required"/> | ||||
| <xs:attribute name="enable" type="xs:boolean" use="required"/> | ||||
| </xs:element> | ||||
| <stream type="audio" name="AudioIn" dir="in"> | <xs:simpleType name="control-type"> | |||
| <floor name="Send_audio" floor_id="1" instances="1" enable="true" value="false"> | <xs:restriction base="xs:string"> | |||
| <control type ="boolean" name="mute" enable="true"> | <xs:enumeration value="boolean"/> | |||
| <label>Mute-Audio</label> | </xs:restriction> | |||
| <value>True</value> | </xs:simpleType> | |||
| </control> | ||||
| </floor> | ||||
| </stream> | ||||
| <stream type="video" name="VideoIn" dir="in"> | </xs:schema> | |||
| <floor name="Send_Video" floor_id="2" instances="1" enable="true" value="false"> | ||||
| <control name ="pause-video" type="boolean" enable="true" > | ||||
| <label>Pause-Video</label> | ||||
| <value>True</value> | ||||
| </control> | ||||
| </floor> | ||||
| </stream> | ||||
| <stream type="audio" name="AudioOut-ActiveSpeaker" dir="out"> | 4.6. Advanced Text Template | |||
| <control type="real" name="gain" enable="true" > | ||||
| <label>Volume</label> | ||||
| <value>1.0</value> | ||||
| </control> | ||||
| </stream> | ||||
| <stream type="audio" name="AudioOut-Mix" dir="out"> | TODO | |||
| <controlArray type="real" name="gain" index="0" enable="true" > | ||||
| <label>Volume</label> | ||||
| <value>1.0</value> | ||||
| </controlArray> | ||||
| <controlArray name="MuteParticipantsfromMix" index="0" type="boolean" enable="true"> | ||||
| <label>MuteParticipant</label> | ||||
| <value>False</value> | ||||
| </controlArray> | ||||
| </stream> | ||||
| <stream type="video" name="VideoOut" dir="out"> | 4.7. Basic Audio-Video Template | |||
| <control name="Layout" type="enumeration" enable="false" default="0"> | ||||
| <item label="1x1" value="0"/> | ||||
| <item label="2x1" value="1"/> | ||||
| <item label="1x2" value="2"/> | ||||
| <item label="2x2" value="3"/> | ||||
| <item label="3x3" value="4"/> | ||||
| </control> | ||||
| <control name="sourceSelector" type="enumeration" enable="false" default="0" > | ||||
| <item label="Voice_Activated-Switching" value="0"/> | ||||
| <item label="%participants[*]" value="*"/> | ||||
| </control> | ||||
| </stream> | ||||
| </role> | 4.7.1. Description | |||
| <role name="moderator"> | The Basic Audio-Video template enables a conference to provide both | |||
| <parameter type="integer" name="max-participants" min="0" max="1"/> | audio and video interactions between entities that provide input | |||
| <parameter type="integer" name="max-audio-input-streams" min="1" max="1"/> | stream to a Conference mix. The Audio and Video output streams | |||
| <parameter type="integer" name="max-video-input-streams" min="1" max="2"/> | consist of a mix of all participants audio and video input. This | |||
| particular template and definition creates a union of functionality | ||||
| from the basic audio and basic video templates. | ||||
| <controlArray name="MuteInputAudio" type="enumeration" index="0" enable="true" > | 4.7.2. Roles | |||
| <label>MuteInputAudio</label> | ||||
| <value>False</value> | ||||
| </controlArray> | ||||
| <controlArray name="PauseInputVideo" type="enumeration" index="0" enable="true" > | ||||
| <label>PauseInputVideo</label> | ||||
| <value>False</value> | ||||
| </controlArray> | ||||
| <controlArray name="MuteOutputAudio" type="enumeration" index="0" enable="true" > | ||||
| <label>MuteOutputAudio</label> | ||||
| <value>False</value> | ||||
| </controlArray> | ||||
| <controlArray name="PauseOutputVideo" type="enumeration" index="0" enable="true"> | ||||
| <label>PauseOutputVideo</label> | ||||
| <value>False</value> | ||||
| </controlArray> | ||||
| <stream type="audio" name="AudioIn" dir="in"> | ||||
| <floor name="Send_audio" floor_id="1" instances="1" enable="true" value="true"> | ||||
| <control name ="pause-video" type="boolean" enable="true" > | ||||
| <label>Pause-Video</label> | ||||
| <value>False</value> | ||||
| </control> | ||||
| </floor> | ||||
| </stream> | ||||
| <stream type="audio" name="AudioOut-ActiveSpeaker" dir="out"> | 4.7.2.1. Participant | |||
| <control type="real" name="gain" enable="true" > | ||||
| <label>Volume</label> | ||||
| <value>1.0</value> | ||||
| </control> | ||||
| </stream> | ||||
| <stream type="audio" name="AudioOut-Mix" dir="out"> | ||||
| <controlArray type="real" name="gain" index="0" enable="true" > | ||||
| <label>Volume</label> | ||||
| <value>1.0</value> | ||||
| </controlArray> | ||||
| <controlArray name="MuteParticipantsfromMix" index="0" type="boolean" enable="true"> | ||||
| <label>MuteParticipant</label> | ||||
| <value>False</value> | ||||
| </controlArray> | ||||
| </stream> | ||||
| <stream type="video" name="VideoIn" dir="in"> | The basic Audio-Video template specifies the role of 'Participant' to | |||
| <floor name="Send_video" floor_id="2" instances="1" enable="true" value="true"> | signify an entry level user with no privileges by default. The | |||
| <control name ="pause-video" type="boolean" enable="false"> | participant role could obtain access to all controls available for | |||
| <label>Pause-Video</label> | this template if set accordingly by a privileged user. This is | |||
| <value>False</value> | achieved during the blueprint creation phase by setting the enable | |||
| </control> | attribute of the control element to TRUE. | |||
| </floor> | ||||
| </stream> | ||||
| <stream type="video" name="VideoOut" dir="out"> | 4.7.2.2. Moderator | |||
| <control name="Layout" type="enumeration" enable="true" default="0"> | ||||
| <item label="1x1" value="0"/> | ||||
| <item label="2x1" value="1"/> | ||||
| <item label="1x2" value="2"/> | ||||
| <item label="2x2" value="3"/> | ||||
| <item label="3x3" value="4"/> | ||||
| </control> | ||||
| <control name="sourceSelector" type="enumeration" enable="true" default="0" > | ||||
| <item label="Voice_Activated-Switching" value="0"/> | ||||
| <item label="%participants[*]" value="*"/> | ||||
| </control> | ||||
| </stream> | ||||
| </role> | The basic Audio-Video template specifies the role of 'Moderator' to | |||
| </template> | signify a user with advanced privileges by default. The 'Moderator' | |||
| role for this template has the same controls as a 'Participant' with | ||||
| an additional controls for muting audio and stopping video for any | ||||
| participant in a conference instance. Another primary difference | ||||
| between a 'Participant' and a 'Moderator' being that the default | ||||
| value for the 'enable' attribute on the 'mute' and 'pause-video' | ||||
| controls on an output media stream is set to 'true'. See the | ||||
| individual control definitions for the impact of attribute settings. | ||||
| [Editors Note: Sidebar support to be added in next revision] | 4.7.3. Parameters | |||
| 3.8 audio-text Template | 4.7.3.1. max-participants | |||
| 3.8.1 Description | See Section 4.1.3.1 for definition. | |||
| The advance audio-text template enables a conference with audio and | 4.7.3.2. max-audio-streams | |||
| text with some advance controls to the participants of the | ||||
| conference. The controls provided to the participants in this | ||||
| templates are similar to the one defined in advance audio and advance | ||||
| text templates. An additional control called 'close-captioning'is | ||||
| defined for receiving a text stream for the audio mix from the | ||||
| conference. | ||||
| 3.8.2 Roles | See Section 4.1.3.2 for definition. | |||
| **/ same as defined in advance audio and text templates in section | 4.7.3.3. max-video-streams | |||
| 3.2.2 and 3.5.2 **/ | ||||
| 3.8.3 Parameters | See Section 4.3.3.2 for definition. | |||
| **/ same parameter as defined in audio audio and text template. **/ | 4.7.4. Controls | |||
| 3.8.4 Controls | 4.7.4.1. mute | |||
| **/ This templates uses the same controls as defined in audio and | See Section 4.1.4.1 for definition. | |||
| text templates. One new control is defined for this template. **/ | ||||
| 3.8.4.1 close-captioning | 4.7.4.2. pause-video | |||
| The close captioning control enables a participant to receive a text | See Section 4.3.4.1 for definition. | |||
| stream for the audio mix of the conference. This control is useful | ||||
| in case the quality of the audio is not good or for hearing impaired | ||||
| participant. The 'close-captioning' control consists of the | ||||
| following attributes:- | ||||
| name: The control is named 'close-captioning' | 4.7.4.3. gain | |||
| type: boolean'. | See Section 4.1.4.2 for definition. | |||
| enable: The enable attribute specifies if access to the control is | 4.7.5. Control Array | |||
| available to the client. The value is of type 'boolean'. | ||||
| default: The default value for this control is false. | See Section 4.1.5 for information relating to audio Control arrays | |||
| and Section 4.3.5 for information relating to video related Control | ||||
| arrays in this template. | ||||
| 3.8.5 Streams | 4.7.6. Streams | |||
| **/ Same as in advance audio and text templates **/ | The 'Basic Audio-Video Template' consists of two audio streams: | |||
| 3.8.6 XML Definition | 4.7.6.1. AudioIn | |||
| <template name="audio-text"> | See Section 4.1.6.1 for definition. | |||
| <parameter type="integer" name="max-participants" min="1" max="128"/> | ||||
| <parameter type="integer" name="max-audio-streams" min="1" max="128"/> | ||||
| <role name="Participant"> | 4.7.6.2. AudioOut | |||
| <parameter type="integer" name="max-participants" min="1" max="128"/> | ||||
| <parameter type="integer" name="max-audio-input-streams" min="1" max="1"/> | ||||
| <stream type="audio" name="AudioIn" dir="in"> | ||||
| <floor name="Send_audio" floor_id="1" instances="1" enable="true" value="false"> | ||||
| <control type ="boolean" name="mute" enable="true"> | ||||
| <label>Mute-Audio</label> | ||||
| <value>True</value> | ||||
| </control> | ||||
| </floor> | ||||
| </stream> | ||||
| <stream type="text" name="TextIn" dir="in"> | See Section 4.1.6.2 for definition. | |||
| <floor name="Right_to_inject" floor_id="2" instances="1" enable="true" value="false"> | ||||
| <control type ="boolean" name="block_incoming" enable="true"> | ||||
| <label>Block-Incoming-Text</label> | ||||
| <value>True</value> | ||||
| </control> | ||||
| </floor> | ||||
| </stream> | ||||
| <stream type="text" name="TextOut" dir="out"/> | The 'Basic Audio-Video Template' consists of two video streams: | |||
| <stream type="audio" name="AudioOut-ActiveSpeaker" dir="out"> | 4.7.6.3. VideoIn | |||
| <control type="real" name="gain" enable="true"> | ||||
| <label>Volume</label> | ||||
| <value>1.0</value> | ||||
| </control> | ||||
| <control type="boolean" name="close-captioning" enable="false"> | ||||
| <label>Close-Captioning</label> | ||||
| <value>False</value> | ||||
| </control> | ||||
| </stream> | ||||
| <stream type="audio" name="AudioOut-Mix" dir="out"> | See Section 4.3.6.1 for definition. | |||
| <controlArray type="real" name="gain" index="0" enable="true" > | ||||
| <label>Volume</label> | 4.7.6.4. VideoOut | |||
| <value>1.0</value> | ||||
| </controlArray> | See Section 4.3.6.2 for definition. | |||
| <controlArray name="MuteParticipantsfromMix" index="0" type="boolean" enable="true"> | ||||
| <label>MuteParticipant</label> | 4.7.7. Blueprint - XML Example | |||
| <value>False</value> | ||||
| </controlArray> | <template name="basic-audio-video"> | |||
| <control type="boolean" name="close-captioning" enable="false"> | ||||
| <label>Close-Captioning</label> | <parameter type="integer" name="max-participants" value="1" min="1" max="128"/> | |||
| <value>False</value> | <parameter type="integer" name="max-audio-streams" value="1" min="1" max="128"/> | |||
| </control> | <parameter type="integer" name="max-video-streams" value="1" min="1" max="128"/> | |||
| </stream> | ||||
| <role name="Participant"> | ||||
| <parameter type="integer" name="max-participants" value="1" min="1" max="128"/> | ||||
| <stream type="audio" name="AudioIn" dir="in"> | ||||
| <floor name="Send_audio" floor_id="1" instances="1" enable="true" value="false"> | ||||
| <control type ="boolean" name="mute" enable="true"> | ||||
| <label> Mute-Audio </label> | ||||
| <value>True</value> | ||||
| </control> | ||||
| </floor> | ||||
| </stream> | ||||
| <stream type="video" name="VideoIn" dir="in"> | ||||
| <floor name="Send_Video" floor_id="1" instances="1" enable="true" value="false"> | ||||
| <control name ="pause-video" type="boolean" enable="true" > | ||||
| <label>Pause-Video</label> | ||||
| <value>False</value> | ||||
| </control> | ||||
| </floor> | ||||
| </stream> | ||||
| <stream type="audio" name="AudioOut" dir="out"> | ||||
| <control type="real" name="gain" enable="true" > | ||||
| <label>Volume</label> | ||||
| <value>0</value> | ||||
| </control> | ||||
| </stream> | ||||
| <stream type="video" name="VideoOut" dir="out"/> | ||||
| </role> | ||||
| <role name="moderator"> | ||||
| <parameter type="integer" name="max-participants" value="0" min="0" max="128"/> | ||||
| <controlArray > | ||||
| <LogicaStream type="audio" name="MainAudioIn" /> | ||||
| <control type="boolean" name="mute" enable="false"> | ||||
| <label>MuteInputAudio</label> | ||||
| <value>False</value> | ||||
| </control> | ||||
| </controlArray> | ||||
| <controlArray> | ||||
| <LogicalStream type="video" name="MainVideoIn" /> | ||||
| <control type="boolean" name="pause-video" enable="false"> | ||||
| <label>PauseInputVideo</label> | ||||
| <value>False</value> | ||||
| </control> | ||||
| </controlArray> | ||||
| <controlArray> | ||||
| <LogicalStream type="audio" name="MainAudioOut" /> | ||||
| <control name="mute" type="boolean" enable="false"> | ||||
| <label>MuteOutputAudio</label> | ||||
| <value>False</value> | ||||
| </control> | ||||
| </controlArray> | ||||
| <controlArray> | ||||
| <LogicalStream type="video" name="MainVideoOut" /> | ||||
| <control type="boolean" name="pause-video" enable="false"> | ||||
| <label>PauseOutputVideo</label> | ||||
| <value>False</value> | ||||
| </control> | ||||
| </controlArray> | ||||
| <stream type="audio" name="AudioIn" dir="in"> | ||||
| <floor name="Send_audio" floor_id="1" instances="1" enable="true" value="true"> | ||||
| <control type ="boolean" name="mute" enable="true"> | ||||
| <label> Mute-Audio </label> | ||||
| <value>True</value> | ||||
| </control> | ||||
| </floor> | ||||
| </stream> | ||||
| <stream type="video" name="VideoIn" dir="in"> | ||||
| <floor name="Send_video" floor_id="1" instances="1" enable="true" value="true"> | ||||
| <control name ="pause-video" type="boolean" enable="true" > | ||||
| <label>Pause-Video</label> | ||||
| <value>False</value> | ||||
| </control> | ||||
| </floor> | ||||
| </stream> | ||||
| <stream type="audio" name="AudioOut" dir="out"> | ||||
| <control type="real" name="gain" enable="true" > | ||||
| <label>Volume</label> | ||||
| <value>1.0</value> | ||||
| </control> | ||||
| </stream> | ||||
| <stream type="video" name="VideoOut" dir="out"/> | ||||
| </role> | </role> | |||
| <role name="moderator"> | ||||
| <parameter type="integer" name="max-participants" min="0" max="1"/> | ||||
| <parameter type="integer" name="max-audio-input-streams" min="1" max="1"/> | ||||
| <controlArray name="MuteInputAudio" type="enumeration" index="0" enable="true" > | </template> | |||
| <label>MuteInputAudio</label> | ||||
| <value>False</value> | ||||
| </controlArray> | ||||
| <controlArray name="MuteOutputAudio" type="enumeration" index="0" enable="true" > | ||||
| <label>MuteOutputAudio</label> | ||||
| <value>False</value> | ||||
| </controlArray> | ||||
| <controlArray name="StopOutputText" type="boolean" index="0" enable="true" > | 4.7.8. XML Schema Definition | |||
| <label>Stop-Output-Text</label> | ||||
| <value>False</value> | ||||
| </controlArray> | ||||
| <controlArray name="StopInputText" type="boolean" index="0" enable="true" > | ||||
| <label>StopInputText</label> | ||||
| <value>False</value> | ||||
| </controlArray> | ||||
| <stream type="audio" name="AudioIn" dir="in"> | <?xml version="1.0" encoding="UTF-8"?> | |||
| <floor name="Send_audio" floor_id="1" instances="1" enable="true" value="true"> | <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" | |||
| <control type ="boolean" name="mute" enable="true"> | xmlns:role="urn:ietf:params:xml:ns:role-schema"> | |||
| <label>Mute-Audio</label> | ||||
| <value>False</value> | ||||
| </control> | ||||
| </floor> | ||||
| </stream> | ||||
| <stream type="text" name="TextIn" dir="in"> | <import namespace="urn:ietf:params:xml:ns:role-schema" /> | |||
| <floor name="Right_to_inject" floor_id="1" instances="1" enable="true" value="true"> | ||||
| <control type ="boolean" name="block_incoming" enable="true"> | ||||
| <label>Block-Incoming-Text</label> | ||||
| <value>False</value> | ||||
| </control> | ||||
| </floor> | ||||
| </stream> | ||||
| <stream type="text" name="TextOut" dir="out"/> | <xs:element name="basic-audio-video"> | |||
| <xs:complexType> | ||||
| <xs:sequence> | ||||
| <xs:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/> | ||||
| <xs:element ref="role" minOccurs="1" maxOccurs="unbounded"/> | ||||
| </xs:sequence> | ||||
| </xs:complexType> | ||||
| </xs:element> | ||||
| <stream type="audio" name="AudioOut-ActiveSpeaker" dir="out"> | <xs:element name="parameter"> | |||
| <control type="real" name="gain" enable="true"> | <xs:complexType> | |||
| <label>Volume</label> | <xs:attribute name="type" type="parameter-defined" use="required"/> | |||
| <value>1.0</value> | <xs:attribute name="name" type="parameter-name" use="required"/> | |||
| </control> | <xs:attribute name="value" type="parameter-value" use="required"/> | |||
| <xs:attribute name="min" type="xs:positiveInteger" use="optional"/> | ||||
| <xs:attribute name="max" type="xs:positiveInteger" use="optional"/> | ||||
| </xs:complexType> | ||||
| </xs:element> | ||||
| <control type="boolean" name="close-captioning" enable="false"> | <xs:simpleType name="parameter-value"> | |||
| <label>Close-Captioning</label> | <xs:union> | |||
| <value>False</value> | <xs:simpleType> | |||
| </control> | <xs:restriction base="xs:integer"/> | |||
| </stream> | </xs:simpleType> | |||
| <stream type="audio" name="AudioOut-Mix" dir="out"> | <xs:simpleType> | |||
| <controlArray type="real" name="gain" index="0" enable="true" > | <xs:restriction base="xs:real"/> | |||
| <label>Volume</label> | </xs:simpleType> | |||
| <value>1.0</value> | <xs:simpleType> | |||
| </controlArray> | <xs:restriction base="xs:enumeration"/> | |||
| <controlArray name="MuteParticipantsfromMix" index="0" type="boolean" enable="true"> | </xs:simpleType> | |||
| <label>MuteParticipant</label> | </xs:union> | |||
| <value>False</value> | </xs:simpleType> | |||
| </controlArray> | ||||
| <control type="boolean" name="close-captioning" enable="false"> | ||||
| <label>Close-Captioning</label> | ||||
| <value>False</value> | ||||
| </control> | ||||
| </stream> | ||||
| </role> | ||||
| </template> | ||||
| [Editors Note: Sidebar support to be added in next revision] | <xs:simpleType name="parameter-name"> | |||
| <xs:restriction base="xs:string"> | ||||
| <xs:enumeration value="max-participants"/> | ||||
| <xs:enumeration value="max-audio-streams"/> | ||||
| <xs:enumeration value="max-video-streams"/> | ||||
| </xs:restriction> | ||||
| </xs:simpleType> | ||||
| 3.9 Basic Multimedia Template | <xs:simpleType name="parameter-defined"> | |||
| <xs:restriction base="xs:string"> | ||||
| <xs:enumeration value="integer"/> | ||||
| <xs:enumeration value="real"/> | ||||
| <xs:enumeration value="enumeration"/> | ||||
| </xs:restriction> | ||||
| </xs:simpleType> | ||||
| 3.9.1 Description | <xs:element name="role"> | |||
| <xs:complexType> | ||||
| <xs:sequence> | ||||
| <xs:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/> | ||||
| <xs:element ref="controlArray" minOccurs="0" maxOccurs="unbounded"/> | ||||
| <xs:element ref="stream" minOccurs="0" maxOccurs="unbounded"/> | ||||
| </xs:sequence> | ||||
| <xs:attribute name="name" type="rtype" use="required"/> | ||||
| </xs:complexType> | ||||
| </xs:element> | ||||
| [Editors Note: To be added in the next revision] | <xs:simpleType name="rtype"> | |||
| <xs:restriction base="role:role-type"> | ||||
| <xs:enumeration value="Participant"/> | ||||
| <xs:enumeration value="Moderator"/> | ||||
| </xs:restriction> | ||||
| </xs:simpleType> | ||||
| 3.9.2 Roles | <xs:element name="controlArray"> | |||
| <xs:complexType> | ||||
| <xs:sequence> | ||||
| <xs:element ref="LogicalStream" minoccurs="1" maxoccurs="unbounded" /> | ||||
| <xs:element ref="control" minoccurs="1" maxoccurs="1"/> | ||||
| </xs:sequence> | ||||
| </xs:complexType> | ||||
| </xs:element> | ||||
| 3.9.3 Parameters | <xs:element name="stream"> | |||
| <xs:complexType> | ||||
| <xs:sequence> | ||||
| <xs:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/> | ||||
| <xs:element ref="floor" minOccurs="0" maxOccurs="unbounded"/> | ||||
| <xs:element ref="control" minOccurs="0" maxOccurs="unbounded"/> | ||||
| </xs:sequence> | ||||
| <xs:attribute name="type" type="media-type" use="required"/> | ||||
| <xs:attribute name="name" type="xs:string" use="required"/> | ||||
| <xs:attribute name="dir" type="direction-type" use="required"/> | ||||
| <xs:attribute name="stream-id" type="xs:positiveInteger" use="optional"/> | ||||
| </xs:complexType> | ||||
| </xs:element> | ||||
| 3.9.4 Controls | <xs:element name="LogicalStream"> | |||
| <xs:complexType> | ||||
| <xs:attribute name="type" type="media-type" /> | ||||
| <xs:attribute name="name" type="logical-Streamtype" /> | ||||
| <xs:complexType> | ||||
| </xs:element> | ||||
| 3.9.5 Streams | <xs:simpleType name="logical-streamType > | |||
| <xs:restriction base="xs:string"> | ||||
| <xs:enumeration value="AudioIn"/> | ||||
| <xs:enumeration value="AudioOut"/> | ||||
| <xs:enumeration value="VideoIn"/> | ||||
| <xs:enumeration value="VideoOut"/> | ||||
| </xs:simpleType> | ||||
| 3.9.6 XML Definition | <xs:simpleType name="media-type"> | |||
| <xs:restriction base="xs:string"> | ||||
| <xs:enumeration value="audio"/> | ||||
| <xs:enumeration value="video"/> | ||||
| </xs:restriction> | ||||
| </xs:simpleType> | ||||
| 3.10 Advanced Multimedia Template | <xs:simpleType name="direction-type"> | |||
| <xs:restriction base="xs:string"> | ||||
| <xs:enumeration value="in"/> | ||||
| <xs:enumeration value="out"/> | ||||
| </xs:restriction> | ||||
| </xs:simpleType> | ||||
| 3.10.1 Description | <xs:element name="floor"> | |||
| <xs:complexType> | ||||
| <xs:sequence> | ||||
| <xs:element ref="control" minOccurs="1" maxOccurs="unbounded"/> | ||||
| </xs:sequence> | ||||
| <xs:attribute name="name" type="xs:string" use="required"/> | ||||
| <xs:attribute name="floor_id" type="xs:positiveInteger" use="required"/> | ||||
| <xs:attribute name="instances" type="xs:positiveInteger" use="required"/> | ||||
| <xs:attribute name="enable" type="xs:boolean" use="required"/> | ||||
| <xs:attribute name="value" type="xs:boolean" use="required"/> | ||||
| </xs:complexType> | ||||
| </xs:element> | ||||
| [Editors Note: To be added in the next revision] | <xs:element name="control"> | |||
| <xs:complexType> | ||||
| <element name="label" type="xs:string"/> | ||||
| <element name="value" type="control-value"/> | ||||
| </xs:complexType> | ||||
| <xs:attribute name="type" type="control-type" use="required"/> | ||||
| <xs:attribute name="name" type="xs:string" use="required"/> | ||||
| <xs:attribute name="enable" type="xs:boolean" use="required"/> | ||||
| </xs:element> | ||||
| 3.10.2 Roles | <xs:simpleType name="control-value"> | |||
| <xs:union> | ||||
| <xs:simpleType> | ||||
| <xs:restriction base="xs:real"/> | ||||
| </xs:simpleType> | ||||
| <xs:simpleType> | ||||
| <xs:restriction base="xs:boolean"/> | ||||
| </xs:simpleType> | ||||
| </xs:union> | ||||
| </xs:simpleType> | ||||
| 3.10.3 Parameters | <xs:simpleType name="control-type"> | |||
| <xs:restriction base="xs:string"> | ||||
| <xs:enumeration value="real"/> | ||||
| <xs:enumeration value="boolean"/> | ||||
| </xs:restriction> | ||||
| </xs:simpleType> | ||||
| 3.10.4 Controls | </xs:schema> | |||
| 3.10.5 Streams | 4.8. Audio-text Template | |||
| 3.10.6 XML Definition | TODO | |||
| [Editors Note: Sidebar support to be added in next revision] | 4.9. Basic Multimedia Template | |||
| 4. Security Considerations | TODO | |||
| 5. IANA Considerations | 4.10. Advanced Multimedia Template | |||
| 6. Acknowledgements | 5. Security Considerations | |||
| 6. IANA Considerations | ||||
| 7. Acknowledgements | ||||
| Many thanks to the media policy design team members for helpful | Many thanks to the media policy design team members for helpful | |||
| comments including Cullen Jennings, Alan Johnston, Roni Even, Brian | comments including Cullen Jennings, Alan Johnston, Roni Even, Brian | |||
| Rosen and Mark Trayer. Special thanks goes to Alan Johnston for his | Rosen and Mark Trayer. Special thanks goes to Alan Johnston for his | |||
| guidance. | guidance. | |||
| 7. References | 8. References | |||
| 7.1 Normative References | 8.1. Normative References | |||
| [1] Jennings, C., "Media Conference Server Control for XCON", | [1] Barnes, M., "A Framework and Data Model for Centralized | |||
| draft-jennings-xcon-media-control-02 (work in progress), | Conferencing", draft-ietf-xcon-framework-01 (work in progress), | |||
| February 2005. | July 2005. | |||
| 7.2 Informative References | [2] Jennings, C. and B. Rosen, "Media Conference Server Control for | |||
| XCON", draft-jennings-xcon-media-control-03 (work in progress), | ||||
| July 2005. | ||||
| [3] Morgan, D. and O. Novo, "Role Definitions for Centralized | ||||
| Conferencing", draft-morgan-xcon-roles-00 (work in progress), | ||||
| October 2005. | ||||
| [4] Novo, O., "A Common Conference Information Data Model for | ||||
| Centralized Conferencing (XCON)", | ||||
| draft-novo-xcon-common-data-model-00 (work in progress), | ||||
| September 2005. | ||||
| 8.2. Informative References | ||||
| Authors' Addresses | Authors' Addresses | |||
| Chris Boulton | Chris Boulton | |||
| Ubiquity Software Corporation | Ubiquity Software Corporation | |||
| Langstone Park | Building 3 | |||
| Newport, South Wales NP | Wern Fawr Lane | |||
| St Mellons, Cardiff, Wales UK CF3 5EA | ||||
| Email: cboulton@ubiquity.net | Email: cboulton@ubiquity.net | |||
| Umesh Chandra | Umesh Chandra | |||
| Nokia Research Center | Nokia Research Center | |||
| 6000 Connection Drive | 6000 Connection Drive | |||
| Irving, Texas 75063 | Irving, Texas 75063 | |||
| Email: Umesh.Chandra@nokia.com | Email: Umesh.Chandra@nokia.com | |||
| Intellectual Property Statement | Intellectual Property Statement | |||
| The IETF takes no position regarding the validity or scope of any | The IETF takes no position regarding the validity or scope of any | |||
| End of changes. 245 change blocks. | ||||
| 1298 lines changed or deleted | 1126 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||