Internet DRAFT - draft-westerlund-dispatch-stream-selection
draft-westerlund-dispatch-stream-selection
Network Working Group D. Grondal
Internet-Draft B. Burman
Intended status: Standards Track M. Westerlund
Expires: April 26, 2012 Ericsson AB
October 24, 2011
Media Stream Selection (MESS)
draft-westerlund-dispatch-stream-selection-00
Abstract
This document describes how media stream selection can be achieved in
both a conferencing scenario and peer to peer communication. To
allow endpoints to select specific media streams, all available media
in the session must be identifiable and there is a need for messages
than can be securely transported between endpoints and network nodes.
This document also describes a way to distribute the identification
information to all participating endpoints. The necessary messages
can potentially be mapped onto several different encodings, and this
document proposes one mapping that uses an extended version of the
Binary Floor Control Protocol.
Status of this Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on April 26, 2012.
Copyright Notice
Copyright (c) 2011 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
Grondal, et al. Expires April 26, 2012 [Page 1]
Internet-Draft MESS October 2011
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Grondal, et al. Expires April 26, 2012 [Page 2]
Internet-Draft MESS October 2011
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4
1.2. Requirements Language . . . . . . . . . . . . . . . . . . 4
2. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Use Cases for MESS . . . . . . . . . . . . . . . . . . . . . . 5
3.1. Include Media Content . . . . . . . . . . . . . . . . . . 5
3.2. Exclude Media Content . . . . . . . . . . . . . . . . . . 5
3.3. Substitute Media Content . . . . . . . . . . . . . . . . . 5
3.4. Reset Media Content . . . . . . . . . . . . . . . . . . . 6
3.5. Reset All . . . . . . . . . . . . . . . . . . . . . . . . 6
4. Media Information . . . . . . . . . . . . . . . . . . . . . . 6
4.1. Unique Media ID . . . . . . . . . . . . . . . . . . . . . 6
4.2. Distribution of Media Information . . . . . . . . . . . . 7
4.3. Publishing Media Information from Endpoints . . . . . . . 7
4.4. Publishing Media Information from Conference Nodes . . . . 7
4.5. Receiving Media Information . . . . . . . . . . . . . . . 7
4.6. RTP Media Transport . . . . . . . . . . . . . . . . . . . 8
4.7. SDP Media Description . . . . . . . . . . . . . . . . . . 8
4.7.1. Point to Point Communication . . . . . . . . . . . . . 10
4.7.2. Conferencing Scenario . . . . . . . . . . . . . . . . 10
5. MESS Requests . . . . . . . . . . . . . . . . . . . . . . . . 10
5.1. Transport . . . . . . . . . . . . . . . . . . . . . . . . 10
5.2. BFCP Extensions . . . . . . . . . . . . . . . . . . . . . 11
5.2.1. OPERATION . . . . . . . . . . . . . . . . . . . . . . 11
5.2.2. MEDIA-IDENTIFICATION . . . . . . . . . . . . . . . . . 12
5.2.3. CHANNEL-IDENTIFICATION . . . . . . . . . . . . . . . . 13
5.3. Defined Messages . . . . . . . . . . . . . . . . . . . . . 14
5.3.1. MediaSelectionAck . . . . . . . . . . . . . . . . . . 14
5.3.2. Include . . . . . . . . . . . . . . . . . . . . . . . 14
5.3.3. Exclude . . . . . . . . . . . . . . . . . . . . . . . 15
5.3.4. Substitute . . . . . . . . . . . . . . . . . . . . . . 15
5.3.5. Reset . . . . . . . . . . . . . . . . . . . . . . . . 17
5.3.6. Reset All . . . . . . . . . . . . . . . . . . . . . . 17
6. MESS Responses . . . . . . . . . . . . . . . . . . . . . . . . 18
7. RTP Implications . . . . . . . . . . . . . . . . . . . . . . . 18
8. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
8.1. Client joins a conference . . . . . . . . . . . . . . . . 19
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 21
10. Security Considerations . . . . . . . . . . . . . . . . . . . 22
11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 22
12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 22
12.1. Normative References . . . . . . . . . . . . . . . . . . . 22
12.2. Informative References . . . . . . . . . . . . . . . . . . 23
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 23
Grondal, et al. Expires April 26, 2012 [Page 3]
Internet-Draft MESS October 2011
1. Introduction
Multimedia conferencing is becoming more and more important. The
setup up of a multimedia conference is well defined, using for
example SIP and SDP. However, as SIP/SDP is used for session setup
it leaves little or no dynamic control over what media content to
receive from other participants during the session. This document
targets this weakness and describes functionality that grants
receiving endpoints capabilities to dynamically select what
information and media content are received from other participating
clients.
1.1. Terminology
These terms are commonly used throughout the document:
Media Content: Media being sent from one specific media capture
device, such as a microphone for audio media, or video camera for
video media.
Endpoint: An device that handles media that either originates a
number of media content, terminates a number of media content, or
some combination of both. As an example, an RTP Mixer is
considered as an endpoint, while a simple RTP Translator that
simply forwards all input streams is not.
1.2. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119].
2. Motivation
In a communication scenario where one or more endpoints offers more
than one media content, but where a receiving endpoint cannot handle
all simultaneous media content at once, there may be a need for that
endpoint to actively and dynamically during an ongoing conference
select what content to receive. A typical scenario would be a video
conference where some endpoints have multiple cameras capturing
different aspects of a room and a receiving endpoint can only render
one video stream due to e.g. hardware limitations. Today, the only
way to solve this is to have an RTP mixer handle the conference and
let that choose one of the streams based on some criteria. It is up
to the RTP mixer implementation which stream to choose, but a common
criteria is some type of speaker activity.
Grondal, et al. Expires April 26, 2012 [Page 4]
Internet-Draft MESS October 2011
It would be possible to let the receiving endpoints to choose which
media content(s) to receive, given that endpoints publish information
about what media content is available to all other endpoints and if
there would exist a protocol to request specific media content from
other endpoints. This functionality is what Media Stream Selection
(MESS) described in this document targets. It describes how to
generate and distribute media content information in both
conferencing scenarios as well as in point to point sessions. It
also describes how to set up a control channel to send messages
between endpoints and finally defines a set of messages that can be
used to handle media content requests.
3. Use Cases for MESS
This section presents some typical use cases targeted by MESS. The
scenario is an endpoint participating in a conference, receiving
media from a centralized conference node. It is assumed that all
participating endpoints have published information about what media
content they are offering. There are more available media from other
participants in the conference than what the receiving endpoint in
the use case can present simultaneously, and the conference node has
some implemented policy how to select which media to forward.
3.1. Include Media Content
An endpoint selects what content to receive from another endpoint
based on that endpoint's published media content information. An
endpoint can make new decisions about what content to receive
dynamically at any time during the session.
3.2. Exclude Media Content
An endpoint wishes to stop receiving content from another endpoint
e.g. due to low quality or other reasons. The set of excluded media
during a session is subject to change and an endpoint can make new
decisions to exclude content dynamically at any time during the
session.
3.3. Substitute Media Content
An endpoint renders received media and wants to replace the received
media with some other available media content. It can be seen as an
atomic combination of the two use-cases above, first excluding one
media content and effectively replacing it by including another. And
endpoint can make new substitute decisions dynamically at any time
during the session.
Grondal, et al. Expires April 26, 2012 [Page 5]
Internet-Draft MESS October 2011
3.4. Reset Media Content
An endpoint no longer has any specific wish to always include or
always exclude a certain content, but wants to return the decision to
forward streams or not to the conference node. An endpoint can reset
any previously included or excluded stream at any time during the
session. At the beginning of the session, all media streams SHALL
have a state corresponding to being reset and thus be under the
conference node policy control.
3.5. Reset All
An endpoint wishes to remove all previous decisions about included
and excluded media. This method is a shortcut to avoid repeated
reset messages described in Section 3.4.
4. Media Information
To be able to identify the available media content, all different
content must be given a unique media ID. The given ID must also be
distributed to all participating endpoints. The following sections
describe how to generate such IDs and how to distribute them.
The text in SDP Media Description (Section 4.7) describes the
specific case where media description is signaled with SDP [RFC4566],
but other signaling methods MAY be used, in which case the mapping to
SDP-specific lines and attributes do not apply and other mandatory
mappings SHOULD instead be defined in a separate RFC.
The text in Section 4.6 describes the specific case when RTP
[RFC3550] is used for media transport. Other media transports MAY be
used, in which case the mapping to RTP does not apply and other
mandatory mappings SHOULD instead be defined in a separate RFC.
4.1. Unique Media ID
To request specific media content, all involved endpoints need to
agree on how to uniquely identify different content with a unique
media ID.
There is no particular algorithm specified how to generate unique
media IDs, as it will depend on which media transport is used. The
main requirements on such an algorithm are that media IDs are unique
among all communicating endpoints and that all endpoints share the
same definitions on what media streams are identified by what media
IDs.
Grondal, et al. Expires April 26, 2012 [Page 6]
Internet-Draft MESS October 2011
4.2. Distribution of Media Information
Assuming all available media content from all communicating endpoints
are associated with some kind of media ID, those media IDs need to be
distributed to endpoints wishing to actively control what content to
receive. There might also be other interesting per-media related
information that needs distribution, such as e.g. naming or
describing individual media content to aid selection.
4.3. Publishing Media Information from Endpoints
Endpoints wishing to join a session are responsible to send
information about media content they will make available to the other
party or parties. This is done by generating media IDs, or other
sufficiently unique identification that can be used for generation of
media IDs, for all transmitted media content. Depending on the
capabilities of the signaling protocol used, an endpoint can also
have the opportunity to convey other information than the media ID,
such as e.g. describing or naming media content explicitly.
4.4. Publishing Media Information from Conference Nodes
The SIP Event Package for Conference State [RFC4575] defines an XML
schema used for distribution of conference information. The schema
defines elements (among others) for users, endpoints and media. The
defined <media> element contains a media ID attribute. This
attribute SHALL be used to carry generated media IDs. This means
that media ID only needs to be unique within an endpoint context and
referring clients MUST use both user, endpoint information and media
ID to uniquely identify media content. User and endpoint information
are relevant in a scenario covering multiple users and/or endpoints
(e.g. where a middle node is responsible for forwarding requests or
making decisions about media content selection), but may be redundant
for a point to point scenario.
Any description or naming of individual media content published by
endpoints (as described in the previous section) SHOULD be included
in the XML as body of <display-text>, which is another sub element of
<media>. There may exist alternatives to obtain naming and
description information, but it will in general depend on what is
supported by the used media description protocol.
4.5. Receiving Media Information
Reception of media content information is dependent upon in what
context the endpoint exists. In a conferencing scenario, the
distribution of media information is in general different than
distribution of media content information in a point to point
Grondal, et al. Expires April 26, 2012 [Page 7]
Internet-Draft MESS October 2011
session, which must be taken into account when defining use of MESS
with media description protocols.
4.6. RTP Media Transport
When RTP is used for transmission of media content, a single RTP
session can transfer a number of different media content. In such
case every received data packet must carry an identifier, or
something that can be used as identifier, to separate individual
content. Without such an identifier it is simply not possible to
demultiplex incoming packets correctly. Using other protocols for
transmission offers similar problems when multiplexing.
In the case of RTP, SSRC could be used as the sole identifier, but to
avoid changing ID if the SSRC changes (e.g. due to an SSRC collision)
an identifier not dependent on, but related to, SSRC is the best
choice.
RFC 4575 [RFC4575], a sub element of <media> defines an element
<src-id> that MUST be used to carry the SSRC selected for the
corresponding media content. This enables an endpoint to do reverse
look-up of media ID on incoming packets using SSRC, or CSRC in the
case media streams are aggregated by an RTP mixer.
4.7. SDP Media Description
This section applies when SDP media description is used with RTP
Media Transport. Use of MESS with other media transport in SDP MAY
be used, but that is out of scope for this document and SHOULD
instead be described in a separate RFC.
The generated RTP media IDs MUST be included as ssrc attributes
(described in Source-Specific SDP Attributes [RFC5576]).
Assuming a single media in an SDP media block, using an i-line (as
described in SDP [RFC4566]) is sufficient to name an individual media
content. If a media block carries information about multiple SSRCs,
this method is not enough to name all different media content. For
this purpose a new source-specific attribute is proposed (previously
mentioned in draft-lennox-mmusic-sdp-source-selection-02).
a=ssrc:<ssrc> information:<description>
The new, optional, source-specific attribute, with identical syntax
and semantics of <description> as the i-line <session description> in
SDP, except that it is specified per SSRC, provides a textual
description of the media content represented by the SSRC included in
the attribute declaration.
Grondal, et al. Expires April 26, 2012 [Page 8]
Internet-Draft MESS October 2011
In the case of RTP, an intercepting node in the network could be
responsible for generating media descriptions upon reception of the
actual RTP stream. However, such a solution will suffer from the
fact that not all media may be sent to that node at all times. This
would introduce a delay of media description creation until the
intercepting node has received RTP packets from all media sources.
In cases where a Media Gateway and it's controller are separate
entities (see e.g. Media Gateway Control Protocol [RFC3435]), such
as in 3GPP IMS split architecture where MRFP and an MRFC exchange SDP
information, e.g. through H.248 or SIP, the MRFC receives the SIP
INVITE with SDP from participants and therefore also information
about what SSRCs the endpoint intends to use. The MRFP will see
incoming SSRCs in the actual RTP streams, but not before any media
traffic has occurred. The MRFC is also responsible for publishing
the conference XML data [RFC4575], e.g. as a body in SIP NOTIFY to
SUBSCRIBE'd endpoints. In short, the MRFC, or any other node acting
as Conference AS, has the best information for generating and
distributing media IDs and is chosen as the responsible node.
There is no big difference in a call-out conferencing scenario where
a conferencing node calls out to invited participants. The initial
SDP will hold information about the capabilities of the network node
and responding endpoints provide answer SDP's with media description
(including SSRC) of there intended/offered media.
In a distributed conference with several involved Conferencing AS'es,
and also if 3GPP IMS split architecture is not used, the protocol to
transfer media ID and SSRC information between Conferencing AS'es /
MRFC's is out of scope for this document.
A conference node SHOULD try to locate information from endpoints
that name or describe individual media content in the SDP, and
include the information in the body of the per-media <display-text>
tag. The information SHOULD be taken from, in this order if more
preferred information is missing:
1. The value from an "information" SSRC attribute described above
2. The value from an i-line within the media block
3. The value field of a label attribute [RFC4574] within the media
block
4. The value from an i-line at the SDP session level
Other sources of information MAY be used, MAY be more preferred, and
the <display-text> MAY also be empty. The receiving client MAY e.g.
Grondal, et al. Expires April 26, 2012 [Page 9]
Internet-Draft MESS October 2011
use the <display-text> content to amend originating user/endpoint
information presented to the receiving user with the media content
specific information.
4.7.1. Point to Point Communication
In point to point communication, endpoints could publish SSRC
information using SDP in request and response. This is e.g. valid
for the SDP in both the SIP INVITE and the corresponding 200 OK, or
in any provisional responses.
The list of published SSRCs is the list of offered media content
available for request. Also, the SDP can be searched for the
information attribute described in Section 4.4 to extract information
about naming of media content.
4.7.2. Conferencing Scenario
In a conferencing scenario, the media content information is
distributed using an XML body following the schema defined in
Conference package [RFC4575], e.g. carried by a SIP NOTIFY. For use
with SIP and once a client has SUBSCRIBEd for conference information,
it SHOULD be prepared to receive SIP NOTIFYs. If the SIP NOTIFY
carries this type of XML, the receiving endpoint can extract
information about media IDs and media content descriptions by finding
all <media> elements in the received XML. This produces a valid
request list of available media ID's and their corresponding SSRC
values.
5. MESS Requests
To request media streams, a communication channel between the
endpoint and the node in control of the media streams needs to be
setup. This document describes use of SIP/SDP for this purpose, but
other methods MAY be used and SHOULD then be described in a separate
RFC. The basic requirements on the communication channel used for
MESS are to offer reliable transmission and a near real time
response.
5.1. Transport
Binary Floor Control Protocol is described in RFC 4582 [RFC4582].
BFCP is a protocol that is likely to already be supported by
conference-aware nodes and clients. This makes it easy to extend
existing implementations to handle any new defined message. It also
uses a reliable transport. In the context of media stream selection
it is highly related and is thus regarded a feasible choice.
Grondal, et al. Expires April 26, 2012 [Page 10]
Internet-Draft MESS October 2011
All MESS messages defined in this document are extensions to the
existing messages described in BFCP [RFC4582]. This means that they
are not dependent upon any other message and can be implemented
separately from legacy messages.
The legacy floor control functionality of BFCP requires additional
protocols to handle floor creation. That is not needed by MESS and
thus out of scope for this document. A possible way is described in
SDP for BFCP [RFC4583].
5.2. BFCP Extensions
BFCP [RFC4582] defines 13 primitives used in BFCP. To implement MESS
as an extension to BFCP requires this set of primitives to be
extended with two other called "MediaSelection" having a value of 32
and "MediaSelectionAck" having a value of 33. MESS uses the same
common header, referred to as COMMON-HEADER, as defined in BFCP
[RFC4582]. The attributes also follows the same pattern as described
in that RFC, i.e. they are in the format Type-Length-Value.
+-------+----------------------+---------------------------+
| Value | Primitive | Direction |
+-------+----------------------+---------------------------+
| 32 | MediaSelection | FloorParticipant -> FCS |
| 33 | MediaSelectionAck | FCS -> FloorParticipant |
+-------+----------------------+---------------------------+
FCS = Floor Control Server
Media Selection Primitives
Table 1: Media Selection Primitives
In addition to these new primitives, MESS also defines a set of new
attributes.
+------+--------------------------+-------------+
| Type | Attribute | Format |
+------+--------------------------+-------------+
| 32 | OPERATION | Unsigned16 |
| 33 | MEDIA-IDENTIFICATION | Grouped |
| 34 | CHANNEL-IDENTIFICATION | OctetString |
+------+--------------------------+-------------+
Table 2: Media Selection Attributes
5.2.1. OPERATION
The following is the format of the OPERATION attribute.
Grondal, et al. Expires April 26, 2012 [Page 11]
Internet-Draft MESS October 2011
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0 1 0 0 0 0 0|M|0 0 0 0 0 1 0 0| Operation id |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Operation id: This field contains a 16-bit vale that identifies an
operation to be performed. Defined entries in this document is
Include, Exclude, Substitute, Reset, and Reset All.
+-------+------------+
| Value | Operation |
+-------+------------+
| 0 | Include |
| 1 | Exclude |
| 2 | Substitute |
| 3 | Reset |
| 4 | Reset All |
+-------+------------+
Table 3: MESS Operations
5.2.2. MEDIA-IDENTIFICATION
The MEDIA-IDENTIFICATION attribute is a grouped attribute consisting
of a header, referred to as MEDIA-IDENTIFICATION-HEADER with
identification type information followed by a sequence of other
MEDIA-IDENTIFICATION attributes. The following is the format of the
MEDIA-IDENTIFICATION-HEADER
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0 1 0 0 0 0 1|M| Length | ID Type | |
+-------------+-+---------------+---------------+ |
| |
/ Media ID /
/ +--------------------+
| | Padding |
+------------------------------------------+--------------------+
The ID Type field is a 8 bit field describing the type of media id.
Defined types in this document are:
+-------+------------+
| Value | Type |
+-------+------------+
| 0 | User |
| 1 | Endpoint |
| 2 | Media |
+-------+------------+
Grondal, et al. Expires April 26, 2012 [Page 12]
Internet-Draft MESS October 2011
Table 4: MESS Media Identification Types
The following describes the format of the grouped attribute. The
Media ID field will contain different information based on the ID
Type. The Media ID field in MEDIA-IDENTIFICATION attributes of type
"User" is only allowed to hold MEDIA-IDENTIFICATION of type
"Endpoint", and Media ID field in MEDIA-IDENTIFICATION attributes of
type "Endpoint" is only allowed to hold MEDIA-IDENTIFICATION
attributes of type "Media". The Media ID field in MEDIA-
IDENTIFICATION attributes of type "Media" holds the actual media ID
number.
This allows expression of tree-like identifications with attributes
of type User being root node with attributes of Endpoints as leafs
containing only attributes of type "Media". The following expresses
this relationship in ABNF [RFC5234] syntax.
MEDIA-IDENTIFICATION = (USER-SUB-IDENTIFICATION /
ENDPOINT-SUB-IDENTIFICATION /
MEDIA-SUB-IDENTIFICATION)
USER-SUB-IDENTIFICATION = (MEDIA-IDENTIFICATION-HEADER)
[ENDPOINT-SUB-IDENTIFICATION]
ENDPOINT-SUB-IDENTIFICATION = (MEDIA-IDENTIFICATION-HEADER)
[MEDIA-SUB-IDENTIFICATION]
MEDIA-SUB-IDENTIFICATION = (MEDIA-IDENTIFICATION-HEADER)
ABNF for MEDIA-IDENTIFICATION attribute
5.2.3. CHANNEL-IDENTIFICATION
The following is a description of the CHANNEL-IDENTIFICATION
attribute.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0 1 0 0 0 1 0|M| Length | |
+-------------+-+---------------+ |
| |
/ Channel Id /
/ +--------------------+
| | Padding |
+------------------------------------------+--------------------+
This attribute is used to identify a specific channel to/from an
endpoint.
Grondal, et al. Expires April 26, 2012 [Page 13]
Internet-Draft MESS October 2011
5.3. Defined Messages
MESS defines 5 messages used to control what media content to
receive.
Floor participants MAY use the messages in this clause without having
obtained a floor, and floor servers MAY accept the messages from
participants not owning the floor. When floor control is bypassed in
this way, the FLOOR-ID SHALL be ignored by receivers of this message
implementing this RFC, and senders implementing this RFC SHALL set it
to 0.
If a floor chair requires a floor participant to own the floor before
using the messages of this clause, they SHALL both follow regular
BFCP floor control procedures as defined in BFCP [RFC4582]. For
example, a floor participant not allowed to access the floor will
receive a BFCP Error message containing Error Code 5 (Not
authorized).
When a floor control server implementing this RFC sends a BFCP
SUPPORTED-PRIMITIVES attribute, the codes for messages defined in
this clause MUST be included in the Primitives list.
Extension attributes that may be defined in the future are referred
to as EXTENSION-ATTRIBUTE in the ABNF, similarly as was done in
section 5.3. of BFCP [RFC4582].
5.3.1. MediaSelectionAck
All MediaSelectionMessages MUST be replied to with a
MediaSelectionAck. The format of the MediaSelectionAck is as
follows:
MediaSelectionAck = (COMMON-HEADER)
*[EXTENSION-ATTRIBUTE]
The COMMON-HEADER of such a message MUST contain the transaction id
of the acknowledged message.
5.3.2. Include
MESS Include messages are sent as BFCP messages with primitive "Media
Selection" and the OPERATION attribute set to value "Include". Then
follows a list of media identifications representing media streams
that are always to be included from now on. Since there might be
more than one transport channel in between the requesting node and
the receiving node, the message MAY also contain information about
which transport channel to use, a channel ID. In case RTP is used as
transport, this channel ID SHOULD be a combination of SSRC and RTP
Grondal, et al. Expires April 26, 2012 [Page 14]
Internet-Draft MESS October 2011
session identification. If channel ID is missing there are no
restrictions on the used transport and any transport channel MAY be
used to deliver the stream. Other transports are out of scope for
this document but need a similar identification possibility.
Requests to Include an already included media SHALL be ignored. Note
that the message is defined in a way that makes it additive and
identifications for previously included media SHOULD NOT be included
for every new request.
A receiver of an include message MUST respond with a
MediaSelectionAck containing the same transaction id.
Include = (COMMON-HEADER)
1*(FLOOR-ID)
(OPERATION)
1*(MEDIA-IDENTIFICATION)
1*(CHANNEL-IDENTIFICATION)
*[EXTENSION-ATTRIBUTE]
5.3.3. Exclude
MESS Exclude messages are sent as BFCP messages with primitive "Media
Selection" and the OPERATION attribute set to value "Exclude". Then
follows a list of media identifications representing media streams
that are always to be excluded from now on. Requests to Exclude an
already excluded media SHALL be ignored. Note that the message is
defined in a way that makes it additive and identifications for
previously excluded media SHOULD NOT be included for every new
request. The exclude message MAY contain an optional channel ID
limiting the exclude message so that the excluded stream might be
sent using any other transport channel if available. If the channel
ID is missing in the exclude message this means that the exclude
concerns any channel between an endpoint and a sender.
Exclude = (COMMON-HEADER)
1*(FLOOR-ID)
(OPERATION)
1*(MEDIA-IDENTIFICATION)
1*(CHANNEL-IDENTIFICATION)
*[EXTENSION-ATTRIBUTE]
A receiver of an exclude message MUST respond with a
MediaSelectionAck containing the same transaction id.
5.3.4. Substitute
MESS Substitute messages are sent as BFCP messages with primitive
"Media Selection" and the OPERATION attribute set to "Substitute".
Grondal, et al. Expires April 26, 2012 [Page 15]
Internet-Draft MESS October 2011
Then follows a list of pairs of tuples called MEDIA-TUPLE. A MEDIA-
TUPLE contains a MEDIA-IDENTIFICATION and an optional CHANNEL-
IDENTIFICATION.
The following is a formal description of MEDIA-TUPLE.
MEDIA-TUPLE = (MEDIA IDENTIFICATION)
1*(CHANNEL-IDENTIFICATION)
The following is a formal description of the Substitute message.
Substitute = (COMMON-HEADER)
1*(FLOOR-ID)
(OPERATION)
1*(MEDIA-TUPLE MEDIA-TUPLE)
*[EXTENSION-ATTRIBUTE]
In the list of pairs of MEDIA-TUPLEs, the pair MUST be interpret as
follows. The first MEDIA-TUPLE defines the media stream, and
possibly a transport channel, that should be replaced and the second
MEDIA-TUPLE defines the media stream, and optionally a transport
channel, to use as a replacement for the first MEDIA-TUPLE.
Note that the included MEDIA-INDENTIFICATIONs typically need to be of
type USER-SUB-IDENTIFICATION, since they in general do not refer to
media from the same user, but other addressing MAY be sufficient.
Since CHANNEL-IDENTIFICATION is optional and might be missing for any
MEDIA-TUPLE in the above description, such a missing attribute should
be interpreted as follows.
No Channel ID in any tuple: All media occurrences should be replaced
using the already used channels. This is the same as an atomic
version of a message series containing an exclude message and an
include message without CHANNEL-IDENTIFICATION attributes.
Channel ID in the replaced media tuple: Replace the identified media
only on the identified channel. This is the same as an atomic
version of a message series containing an exclude message with a
CHANNEL-IDENTIFICATION attribute and an include message without
CHANNEL-IDENTIFICATION attribute.
Channel Id present in the replacing media tuple: Replace all
occurrences of an identified media with the replacing media stream
using the identified channel. This is the same as an atomic
version of an exclude message without CHANNEL-IDENTIFICATION
attribute followed by an include message with a CHANNEL-
IDENTIFICATION.
Grondal, et al. Expires April 26, 2012 [Page 16]
Internet-Draft MESS October 2011
Channel Id present in both media tuples: Replace the identified
media on the identified channel with the replacing media using the
identified channel. This is the same as an atomic version of an
exclude message followed by an include message, both holding a
CHANNEL-IDENTIFICATION attribute.
A receiver of a substitute message MUST respond with a
MediaSelectionAck containing the same transaction id.
5.3.5. Reset
MESS Reset messages are sent as BFCP messages with primitive "Media
Selection" and the OPERATION attribute set to "Reset". The message
carries a list of MEDIA-IDENTIFICATION to be reset. It does not
matter if the media described by MEDIA-IDENTIFICATION has been
excluded, included or neither of them before. The result at the
floor control is always the same, the media associated with the
received id will no longer be subject to explicit inclusion/
exclusion. Requests to Reset an already reset media SHALL be
ignored.
A receiver of a reset message MUST respond with a MediaSelectionAck
containing the same transaction id.
Reset = (COMMON-HEADER)
1*(FLOOR-ID)
(OPERATION)
1*(MEDIA-IDENTIFICATION)
*[EXTENSION-ATTRIBUTE]
5.3.6. Reset All
MESS Reset All messages are sent as BFCP messages with primitive
"Media Selection" and the OPERATION attribute set to "Reset All". It
has no attributes. The message is equivalent to a MESS Reset message
including MEDIA-IDENTIFICATION attributes of all streams that have
previously been specified in "Include", "Exclude" or as second MEDIA-
IDENTIFICATION attribute in "Substitute", effectively releasing all
existing media streams from being subject to inclusion/exclusion.
This operation can fully reset the inclusion/exclusion state even if
the requesting endpoint has lost track of what restrictions were
previously put.
Reset All = (COMMON-HEADER)
1*(FLOOR-ID)
(OPERATION)
*[EXTENSION-ATTRIBUTE]
Grondal, et al. Expires April 26, 2012 [Page 17]
Internet-Draft MESS October 2011
A receiver of a reset all message MUST respond with a
MediaSelectionAck containing the same transaction id.
6. MESS Responses
This document does define an acknowledge response (Section 5.3.1) as
well as an error message with several different error reasons.
BFCP [RFC4582] defines attributes for error handling. The BFCP Error
message in BFCP section 5.3.13 [RFC4582] SHALL be used also for error
reporting applicable to this RFC.
BFCP [RFC4582] Table 5 defines 9 error codes used in floor control.
This document defines the following additional error codes that MAY
be used in MESS responses:
+--------+-------------------------------------+
| Value | Meaning |
+--------+-------------------------------------+
| 16 | Media does not exist |
| 17 | Endpoint does not exist |
| 18 | Cannot include media |
| 20 | Cannot exclude media |
| 21 | Cannot substitute media |
+--------+-------------------------------------+
Table 5: Media Selection Error Codes
The exact reason for the failure MAY be included as UTF8 encoded text
in the field "Error specific details" of the BFCP ERROR-CODE
attribute. The ERROR-INFO attribute MAY also be used.
7. RTP Implications
RTP is a widely used protocol to transfer media. Usage of MESS when
media transport is handled using RTP might impact how RTCP reports
must be handled when excluding media. In the case where RTP
Translators [RFC5117] exists in between endpoints and if the RTP
Transport Translators are able to adjust their forwarding rules based
on the signalling defined in this document, RTCP reporting may become
inconsistent for excluded media content. How this should be handled
is out of scope for this document. The operations described in MESS
are consistent with the operation of RTP mixers or direct end-point
to end-point topologies.
Grondal, et al. Expires April 26, 2012 [Page 18]
Internet-Draft MESS October 2011
8. Examples
Note that the SDP in the examples below is not complete. Only
relevant parts have been included.
8.1. Client joins a conference
A clients joins a conference by sending an SDP according to the
following:
s=MESS Example Client
m=audio 49200 RTP/AVP 96
a=rtpmap:96 G719/48000/2
a=ssrc:521923924 cname:alice@foo.example.com
a=mid:1
m=video 49300 RTP/AVP 96
a=rtpmap:96 H264/90000
a=ssrc:834753488 cname:alice@foo.example.com
a=ssrc:834753488 information:"Alice cam"
a=label:main video
a=mid:2
a=content:main
m=application 50000 TCP/BFCP *
a=setup:passive
a=connection:new
In this SDP Alice explicitly names her video stream "Alice cam" by
using the new attribute defined in this document. This information
is associated with a specific SSRC.
A conferencing node in the network then sends the following SIP
NOTIFY sample body to subscribed clients.
Grondal, et al. Expires April 26, 2012 [Page 19]
Internet-Draft MESS October 2011
<?xml version="1.0" encoding="UTF-8"?>
<conference-info
xmlns="urn:ietf:params:xml:ns:conference-info"
entity="sips:conf233@example.com"
state="full" version="1">
<!-- OTHER CONFERENCE INFO -->
<users>
<!-- USER -->
<user entity="sip:alice@example.com" state="full">
<display-text>Alice</display-text>
<!-- ENDPOINTS -->
<endpoint
entity="sip:4kfk4j392jsu@example.com;grid=433kj4j3u">
<status>connected</status>
<!-- MORE INFORMATION -->
<!-- MEDIA -->
<media id="1">
<display-text>Alice cam</display-text>
<type>Video</type>
<label>main video</label>
<src-id>834753488</src-id>
<status>sendrecv</status>
</media>
<!- POSSIBLY ADDITIONAL MEDIA -->
</endpoint>
<!-- POSSIBLY ADDITIONAL ENDPOINTS -->
</user>
<!-- ADDITIONAL USERS -->
</users>
<!-- ADDITIONAL ELEMENTS -->
</conference-info>
Any subscribing endpoint that receives this information can now
actively request the "Alice cam" media from sip:alice@example.com to
be explicitly included in received media streams. This is done by
sending an Include message as defined in this document (some fields
not encoded for clarity):
Grondal, et al. Expires April 26, 2012 [Page 20]
Internet-Draft MESS October 2011
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0 0 1|0 0 0 0 0|0 0 1 0 0 0 0 0| Payload Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Conference ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Transaction ID | User ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0 0 0 0 0 1 0|M|0 0 0 0 0 1 0 0| Floor ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0 1 0 0 0 0 0|1|0 0 0 0 0 1 0 0|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0 1 0 0 0 0 1|1|0 0 0 1 0 1 0 1|0 0 0 0 0 0 0 0| |
+-------------+-+---------------+---------------+ |
| |
/ sip:alice@example.com /
/ +--------------------+
| | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0 1 0 0 0 0 1|1| Length |0 0 0 0 0 0 0 1| |
+-------------+-+---------------+---------------+ |
| |
/ sip:4kfk4j392jsu@example.com;grid=433kj4j3u /
/ +--------------------+
| | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0 1 0 0 0 0 1|1| Length |0 0 0 0 0 0 1 1| |
+-------------+-+---------------+---------------+ |
| |
/ 1 /
/ +--------------------+
| | Padding |
+------------------------------------------+--------------------+
|0 1 0 0 0 1 0|1| Length | |
+-------------+-+---------------+ |
| Channel Id +--------------------+
| | Padding |
+------------------------------------------+--------------------+
The receiver of this message MUST send an acknowledgement using the
same transaction ID as soon as possible.
9. IANA Considerations
Following the guidelines in SDP [RFC4566], in SDP Grouping Framework
[RFC5888] and in RTP [RFC3550], the IANA is requested to register:
Grondal, et al. Expires April 26, 2012 [Page 21]
Internet-Draft MESS October 2011
A new source-specific attribute named "information" as defined in
Section 4.3.
Add the following entries to the BFCP [RFC4582] registry:
o Primitives from Table 1
o Attributes from Table 2
o Error Codes from Table 5
Start a new registry for this document with:
o Operations from Table 3
o Media Identification Types from Table 4
10. Security Considerations
When using MESS there is a potential risk of exposing client behavior
to other participants. Consider the case where multiple endpoints
participates in a conference. Also assume that media transport is
done using RTP. If the network between endpoints contains one (or
more) RTP translators and even if MESS communication is strictly
between floor server and floor participant, the RTCP traffic to/from
endpoints could expose information about endpoints excluding other
endpoints. Previously received RTCP traffic replaced with no traffic
could be leaking information about an endpoint excluding other
endpoints.
11. Acknowledgements
Jonanthan Lennox and Henning Schulzrinne for their proposal of a
source-specific information attribute in the expired Internet Draft
draft-lennox-mmusic-sdp-source-selection-02.
12. References
12.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V.
Jacobson, "RTP: A Transport Protocol for Real-Time
Grondal, et al. Expires April 26, 2012 [Page 22]
Internet-Draft MESS October 2011
Applications", STD 64, RFC 3550, July 2003.
[RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
Description Protocol", RFC 4566, July 2006.
[RFC4575] Rosenberg, J., Schulzrinne, H., and O. Levin, "A Session
Initiation Protocol (SIP) Event Package for Conference
State", RFC 4575, August 2006.
[RFC4582] Camarillo, G., Ott, J., and K. Drage, "The Binary Floor
Control Protocol (BFCP)", RFC 4582, November 2006.
[RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax
Specifications: ABNF", STD 68, RFC 5234, January 2008.
[RFC5576] Lennox, J., Ott, J., and T. Schierl, "Source-Specific
Media Attributes in the Session Description Protocol
(SDP)", RFC 5576, June 2009.
12.2. Informative References
[RFC3435] Andreasen, F. and B. Foster, "Media Gateway Control
Protocol (MGCP) Version 1.0", RFC 3435, January 2003.
[RFC4574] Levin, O. and G. Camarillo, "The Session Description
Protocol (SDP) Label Attribute", RFC 4574, August 2006.
[RFC4583] Camarillo, G., "Session Description Protocol (SDP) Format
for Binary Floor Control Protocol (BFCP) Streams",
RFC 4583, November 2006.
[RFC5117] Westerlund, M. and S. Wenger, "RTP Topologies", RFC 5117,
January 2008.
[RFC5888] Camarillo, G. and H. Schulzrinne, "The Session Description
Protocol (SDP) Grouping Framework", RFC 5888, June 2010.
Grondal, et al. Expires April 26, 2012 [Page 23]
Internet-Draft MESS October 2011
Authors' Addresses
Daniel Grondal
Ericsson AB
Farogatan 6
SE - 164 80 Kista,
Sweden
Phone: +46107147505
Fax: +46107175550
Email: daniel.grondal@ericsson.com
URI: www.ericsson.com
Bo Burman
Ericsson AB
Farogatan 6
SE - 164 90 Kista,
Sweden
Phone: +46107141311
Fax: +46107175550
Email: bo.burman@ericsson.com
URI: www.ericsson.com
Magnus Westerlund
Ericsson AB
Farogatan 6
SE- Kista 164 90,
Sweden
Phone: +46107148287
Fax:
Email: magnus.westerlund@ericsson.com
URI: www.ericsson.com
Grondal, et al. Expires April 26, 2012 [Page 24]