The Session Description Protocol (SDP) Content Attribute
Extracted elements (15)
The 'content' attribute values are intentionally not restricted to particular media types, to avoid preventing applications from using innovative combinations of a given value with different media types.
The existing 'label' attribute could in principle convey media content information, but its namespace is unrestricted and already used in application-specific ways by existing implementations, making it impossible to reserve portions without conflict. A new 'content' attribute with a defined namespace was therefore introduced.
The 'i' SDP attribute was not reused for this purpose because its values are intended for human users rather than for automated processing by applications.
There is no mechanism to discover whether a peer endpoint understands the 'content' attribute because its values are purely informative at the offer/answer model level. A peer that does not understand the attribute can still establish the media session; the only consequence is that end-user interaction may be required to direct streams appropriately.
A sending application MAY attach one or more 'content' attribute tokens to any media stream it describes in an SDP session description.
An SDP answer MAY contain 'content' attributes even if none were present in the offer, and MAY contain no 'content' attributes even if they were present in the offer. The values of 'content' attributes do not need to match in an offer and an answer.
New values for 'content' attributes registered in the future should consist of a meta description of the contents of a media stream, and should not describe actions to take when handling a stream.
The 'alt' value indicates the media stream is taken from an alternative source (e.g., ambient audio separate from the main sound, or a room view versus the main speaker view). This is analogous to the 'live' role in H.239.
The 'content' attribute is a new SDP media-level attribute defined by this specification. Its ABNF syntax is: content-attribute = "a=content:" mediacnt-tag, where mediacnt-tag = mediacnt *("،" mediacnt) and mediacnt = "slides" / "speaker" / "sl" / "main" / "alt" / mediacnt-ext.
The pre-defined 'content' attribute values are: 'slides' (presentation slides), 'speaker' (image of the speaker), 'sl' (sign language), 'main' (main source media), and 'alt' (alternative source media). All values can be used with any media type.
The 'sl' value indicates the media stream contains sign language, typically a video stream carrying a sign-language translation of an audio stream.
The 'slides' value indicates the media stream includes presentation slides; typical use cases are online seminars and courses. This is analogous to the 'presentation' role in H.239.
IANA created a subregistry for 'content' attribute values under the SDP Parameters registry, with initial values: 'slides', 'speaker', 'sl', 'main', and 'alt'. The registration policy for new values is 'Specification Required'.
An attacker may attempt to add, modify, or remove 'content' attributes from a session description, potentially causing an application to behave in an undesirable way. It is strongly RECOMMENDED that integrity protection (e.g., S/MIME or TLS when carried over SIP) be applied to SDP session descriptions.
The initial set of 'content' attribute values does not contain data that would require confidentiality protection, but S/MIME and TLS can be used to protect confidentiality if needed.