< 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/