rfc-4583

Session Description Protocol (SDP) Format for Binary Floor Control Protocol (BFCP) Streams

G. Camarillo
date2006-11 streamIETF areaart wgmmusic statusPROPOSED STANDARD pages12 canonicalhttps://www.rfc-editor.org/rfc/rfc4583 doi10.17487/RFC4583 errataview
This document specifies how to describe Binary Floor Control Protocol (BFCP) streams in Session Description Protocol (SDP) descriptions. User agents using the offer/answer model to establish BFCP streams use this format in their offers and answers. [STANDARDS-TRACK]

obsoleted by

Extracted elements (21)

design-rationale §1

BFCP is described as a media stream using an SDP 'm' line in the offer/answer model, rather than defining a separate out-of-band signaling mechanism, allowing reuse of existing offer/answer infrastructure for connection establishment.

realtime

design-rationale §4

If 'floorctrl' is not used in an offer/answer exchange, by default the offerer acts as a floor control client and the answerer acts as a floor control server. This default avoids requiring 'floorctrl' in simple client-server scenarios.

realtime

interoperability-note §8

BFCP clients and floor control servers follow the rules in RFC 4572 regarding certificate choice and presentation for TLS connections established via the offer/answer model. SIP with S/MIME provides the initial integrity-protected channel for exchanging self-signed certificates.

realtime, tls, sip, pkix

normative-requirement §8 MUST

Endpoints MUST support the 'fingerprint' attribute and SHOULD include it in their session descriptions. Unless a 'fingerprint' attribute is included, the TLS certificate MUST be directly signed by or validated via a path to the other party's trust anchors.

realtime, tls, pkix

normative-requirement §7 MUST

Endpoints that use the offer/answer model to establish BFCP connections MUST support the 'setup' and 'connection' attributes (from RFC 4145) for TCP connection management.

realtime, tcp

normative-requirement §4 MUST

If an 'm' line in an offer contains a 'floorctrl' attribute, the answerer MUST include one in the corresponding 'm' line in the answer, choosing a role consistent with the offerer's stated roles (per Table 1).

realtime

normative-requirement §3 SHOULD

The fmt list of BFCP 'm' lines SHOULD contain a single '*' character, as the format list is otherwise ignored for BFCP.

realtime

normative-requirement §3 MUST

The media field in the SDP 'm' line for a BFCP stream MUST have a value of 'application'.

realtime, security

normative-requirement §7 SHOULD

When the existing TCP connection is reset, the client SHOULD generate an offer towards the floor control server to reestablish the connection. If a TCP connection times out, the entity that detected the timeout SHOULD generate an offer to reestablish.

realtime, tcp

normative-requirement §8 MUST

When TLS is used, once the underlying TCP connection is established, the answerer acts as the TLS server regardless of its role (passive or active) in the TCP establishment procedure.

realtime, tls, tcp

protocol-element §5

The 'confid' and 'userid' SDP media-level attributes are defined to carry a conference ID and user ID respectively, provided by the floor control server. ABNF: confid-attribute = 'a=confid:' conference-id; userid-attribute = 'a=userid:' user-id, where each is a token (integer representation).

realtime

protocol-element §4

The 'floorctrl' SDP media-level attribute is defined to perform floor control server determination. Its ABNF is: floor-control-attribute = 'a=floorctrl:' role *(SP role), where role = 'c-only' / 's-only' / 'c-s'.

realtime

protocol-element §6

The 'floorid' SDP media-level attribute associates a floor identifier with one or more media streams. ABNF: floor-id-attribute = 'a=floorid:' token [' mstrm:' token *(SP token)], where the floor ID token is the integer Floor ID used in BFCP and media stream tokens are SDP label attribute pointers.

realtime

protocol-element §3

Two new SDP transport protocol values are defined: TCP/BFCP (BFCP directly over TCP) and TCP/TLS/BFCP (BFCP over TLS over TCP). The fmt list for BFCP 'm' lines SHOULD contain a single '*' character.

realtime, tls, tcp

registry §11.3

IANA registered the SDP media-level attribute 'confid' (Conference Identifier) under the SDP Parameters registry. Carries the integer representation of a Conference ID as a token.

registry, realtime

registry §11.2

IANA registered the SDP media-level attribute 'floorctrl' (Floor Control) under the SDP Parameters registry. Allowed values: 1*("c-only" / "s-only" / "c-s"). Not subject to charset.

registry, realtime

registry §11.5

IANA registered the SDP media-level attribute 'floorid' (Floor Identifier) under the SDP Parameters registry. Associates a floor with one or more media streams; allowed values are tokens.

registry, realtime

registry §11.4

IANA registered the SDP media-level attribute 'userid' (User Identifier) under the SDP Parameters registry. Carries the integer representation of a User ID as a token.

registry, realtime

registry §11.1

IANA registered two new values for the SDP 'proto' field under the SDP Parameters registry: TCP/BFCP and TCP/TLS/BFCP, both referencing RFC 4583.

registry, realtime

security-consideration §10

BFCP assumes an initial integrity-protected channel is used to exchange self-signed certificates between a client and floor control server. For SDP carried in SIP, S/MIME is the natural choice for this channel, enabling TLS-based mutual authentication for the BFCP connection.

security, realtime, tls, sip

wire-format §3

The SDP 'm' line for BFCP uses media='application', a TCP port (or 9 for the initiating side), transport='TCP/BFCP' or 'TCP/TLS/BFCP', and fmt='*'. A port of zero indicates rejection of the media stream.

realtime, tcp