Title: Media Control Policy
1Media Control Policy
- Chris Boulton, Umesh Chandra, Roni Even, Cullen
Jennings, Alan Johnston, Brian Rosen, Mark Trayer
2We started with two approaches
- Rohans Flow Graphs approach
- Cullen and Brians Template approach
- We decided to do both
- All conference servers will support templates,
which are predefined - Some may support flow graphs, as a way of
essentially dynamically creating a template
3Team fleshed out the template idea
- New draft includes the template language and
worked out concepts for roles, streams, controls,
etc. - Includes a starter set of template definitions
- This will be excerpted into a separate draft in
the next revision
4Templates
- A template is a description of the
- Roles one can assume
- Streams one can source or sink
- Controls one has over the streams
- Parameters specializing a template for use
- The template describes how one builds a user
interface to control a conference using that
template - Media Policy Control Protocol primarily is
concerned with manipulating the controls defined
by the template - A conference is defined with the template to be
used, which must be supported by the conference
server, and the values of the parameters of that
template - Clients can be built to implement a set of
templates which would have good user interfaces - The template language is defined such that a
client could render a reasonable UI for a
template it did not directly implement. - Open Issue Can templates be derived from another
template.
5Use of templates
- Conference server offers a list of templates it
supports - Convener selects one template and specifies
parameter values - Participants learn the template in use which
determines the UI they offer - Participants and conference server exchange XML
subsets of the template to manipulate controls - Open Issue Transport (assume XCAP)
6Templates
- Defined in an XML form in a public document
- Have an IANA registered name the template is
known by - Have Parameters, which are variables used to
define some flexibility in the templates - Parameter values are fixed before the conference
is instantiated - Fundamentally used to limit the number of
templates required to describe a range of similar
conference capabilities - Define Roles, Streams, Controls, and Lists
7Roles
- Template defines the allowed roles
- CPCP used to define permissions, actually assume
roles, announce role changes, etc. - Roles can define streams (source or sink) and
controls that are only available to participants
currently in the role - Implies that the streams and controls you have
can change dynamically as your role changes - Roles can be defined hierarchically (nested)
- Roles defined within a role inherit all the
streams and controls that are defined in the
enclosing role - Note Current examples dont show this
8Streams
- Define the streams a participant sources or sinks
to the mixer - Defined with a name, a type (audio, video, text)
and a direction (in, out) - Conference package maps SDP (or whatever) to
stream names
9Controls
- UI manipulations of the mixer
- Defined with name, label, type (integer, real,
Boolean, enumeration,), value, enable, etc. - Rendered by the client UI with widgets of some
kind, or automatically calculated. - Template can include a default (initial) value
- Clients can change the value while the conference
is in progress - Clients get notified if the value of a control
they have changes - Server can change the value if necessary
10Floor Control
- Template defines which floors it has support for,
which might be controlled by parameters - Templates describe (in English) how the mix
changes as a result of floor holder changes - Streams and controls may be restricted to only
being available to holders of a particular floor - Open Issues Have not synced up with floor
control team
11Open Issues
- The flow graph work is not yet defined
- Will be a separate draft
- The complete set of templates has not yet been
designed, but this work is started. - How the CPCP mechanisms work with templates (e.g.
how do controls work)
12Proposal
- Let the design team do one more round
13Basic Audio Template
lttemplate name"basic-audio"gt ltrole
name"Participant"gt ltparameter
type"integer" name"max-streams" min"1"
max"128"/gt ltstream type"audio"
name"AudioIn" dir"in"gt ltcontrol
name"mute" default"false" enable"true"/gt
lt/streamgt ltstream type"audio"
name"AudioOut" dir"out"gt ltcontrol
name"mix-type" type"enumeration",
enable"false" default"1"gt ltitem
label"MixMinus" value"1"gt ltitem
label"Active-Speaker" value"2"gt
lt/controlgt ltcontrol name"mute"
type"boolean" enable"false" default"false/gt
ltcontrolArray name"sourceSelector"
label"source" type"enumeration" enable"false"
default"false"gt ltitem
label"participant 1" value"1"/gt ltitem
label"participant 2" value"2"/gt ltitem
label"participant 3" value"3"/gt
.... .... ltitem label"participant n"
value"n"/gt lt/controlArraygt lt/streamgt
lt/rolegt
14Changing the value of a control
ltconference template BasicAudiogt ltrole
nameParticipantgt ltstream nameAudioIngt
ltcontrol namemute valuetrue/gt lt/streamgt
lt/rolegtlt/conferencegt