PPT Version

advertisement
Media Control Policy
Chris Boulton, Umesh Chandra,
Roni Even, Cullen Jennings,
Alan Johnston, Brian Rosen, Mark
Trayer
We started with two approaches



Rohan’s “Flow Graphs” approach
Cullen and Brian’s “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
Team 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
Templates







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.
Use 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)
Templates



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
Roles

Template defines the allowed roles
–

Roles can define streams (source or sink) and controls
that are only available to participants currently in the
role
–

CPCP used to define permissions, actually assume roles,
announce role changes, etc.
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 don’t show this
Streams



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
Controls







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
Floor 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
Open 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)
Proposal

Let the design team do one more round
Basic Audio Template
<template name="basic-audio">
<role name="Participant">
<parameter type="integer" name="max-streams" min="1" max="128"/>
<stream type="audio" name="AudioIn[]" dir="in">
<control name="mute" default="false" enable="true"/>
</stream>
<stream type="audio" name="AudioOut[]" dir="out">
<control name="mix-type" type="enumeration", enable="false"
default="1">
<item label="MixMinus" value="1">
<item label="Active-Speaker" value="2">
</control>
<control name="mute" type="boolean" enable="false" default="false“/>
<controlArray name="sourceSelector" label="source" type="enumeration"
enable="false" default="false">
<item label="participant 1" value="1"/>
<item label="participant 2" value="2"/>
<item label="participant 3" value="3"/>
.... ....
<item label="participant n" value="n"/>
</controlArray>
</stream>
</role>
Changing the value of a control
<conference template BasicAudio>
<role name=Participant>
<stream name=AudioIn>
<control name=mute value=true/>
</stream>
</role>
</conference>
Download