Session Description Protocol
Encyclopedia
The Session Description Protocol (SDP) is a format for describing streaming media
initialization parameters. The IETF published the original specification as an IETF Proposed Standard
in April 1998, and subsequently published a revised specification as an IETF Proposed Standard as RFC 4566 in July 2006.
SDP is intended for describing multimedia
communication sessions for the purposes of session announcement, session invitation, and parameter negotiation. SDP does not deliver media itself but is used for negotiation between end points of media type, format, and all associated properties. The set of properties and parameters are often called a session profile. SDP is designed to be extensible to support new media types and formats.
SDP started off as a component of the Session Announcement Protocol
(SAP), but found other uses in conjunction with Real-time Transport Protocol
(RTP), Real-time Streaming Protocol (RTSP), Session Initiation Protocol
(SIP) and even as a standalone format for describing multicast
sessions.
/line feed sequence. Implementations are allowed to relax this to omit the carriage return and supply only the line feed. The form of each field is as follows.
Where
-significant character and
encoding.session information and session name values are subject to the encoding specified in any charset attribute of the section. Whitespace is not allowed immediately to either side of the
Within an SDP message there are three main sections, detailing the session, timing, and media descriptions. Each message may contain multiple timing and media descriptions. Names are only unique within the associated syntactic construct, i.e. within the session, time, or media.
Optional values are specified with
Session description
v= (protocol version)
o= (originator and session identifier)
s= (session name)
i=* (session information)
u=* (URI of description)
e=* (email address)
p=* (phone number)
c=* (connection information—not required if included in all media)
b=* (zero or more bandwidth information lines)
One or more time descriptions ("t=" and "r=" lines; see below)
z=* (time zone adjustments)
k=* (encryption key)
a=* (zero or more session attribute lines)
Zero or more media descriptions
Time description
t= (time the session is active)
r=* (zero or more repeat times)
Media description, if present
m= (media name and transport address)
i=* (media title)
c=* (connection information—optional if included at
session level)
b=* (zero or more bandwidth information lines)
k=* (encryption key)
a=* (zero or more media attribute lines)
Attributes take two forms:
format (the number of seconds since 1900). If the stop time is 0 then the session is "unbounded." If the start time is also zero then the session is considered "permanent." Unbounded and permanent sessions are discouraged but not prohibited.
Intervals can be represented with Network Time Protocol
times or in typed time: a value and time units (days ('d'), hours ('h'), minutes ('m') and seconds ('s')) sequence.
Thus an hour meeting from 10am on 1 August 2010, with a single repeat time a week later at the same time can be represented as:
t=3487140000 3487143600
r=604800 3600 0
Or using typed time:
t=3487140000 3487143600
r=7d 3600 0
Streaming media
Streaming media is multimedia that is constantly received by and presented to an end-user while being delivered by a streaming provider.The term "presented" is used in this article in a general sense that includes audio or video playback. The name refers to the delivery method of the medium rather...
initialization parameters. The IETF published the original specification as an IETF Proposed Standard
Internet standard
In computer network engineering, an Internet Standard is a normative specification of a technology or methodology applicable to the Internet. Internet Standards are created and published by the Internet Engineering Task Force .-Overview:...
in April 1998, and subsequently published a revised specification as an IETF Proposed Standard as RFC 4566 in July 2006.
SDP is intended for describing multimedia
Multimedia
Multimedia is media and content that uses a combination of different content forms. The term can be used as a noun or as an adjective describing a medium as having multiple content forms. The term is used in contrast to media which use only rudimentary computer display such as text-only, or...
communication sessions for the purposes of session announcement, session invitation, and parameter negotiation. SDP does not deliver media itself but is used for negotiation between end points of media type, format, and all associated properties. The set of properties and parameters are often called a session profile. SDP is designed to be extensible to support new media types and formats.
SDP started off as a component of the Session Announcement Protocol
Session Announcement Protocol
Session Announcement Protocol is a protocol for broadcasting multicast session information.A SAP listening application can listen to the SAP multicast IP address and construct a guide of all advertised multicast sessions...
(SAP), but found other uses in conjunction with Real-time Transport Protocol
Real-time Transport Protocol
The Real-time Transport Protocol defines a standardized packet format for delivering audio and video over IP networks. RTP is used extensively in communication and entertainment systems that involve streaming media, such as telephony, video teleconference applications, television services and...
(RTP), Real-time Streaming Protocol (RTSP), Session Initiation Protocol
Session Initiation Protocol
The Session Initiation Protocol is an IETF-defined signaling protocol widely used for controlling communication sessions such as voice and video calls over Internet Protocol . The protocol can be used for creating, modifying and terminating two-party or multiparty sessions...
(SIP) and even as a standalone format for describing multicast
Multicast
In computer networking, multicast is the delivery of a message or information to a group of destination computers simultaneously in a single transmission from the source creating copies automatically in other network elements, such as routers, only when the topology of the network requires...
sessions.
Session description
A session is described by a series of fields, one per line.Each line is separated from the next by a carriage returnCarriage return
Carriage return, often shortened to return, refers to a control character or mechanism used to start a new line of text.Originally, the term "carriage return" referred to a mechanism or lever on a typewriter...
/line feed sequence. Implementations are allowed to relax this to omit the carriage return and supply only the line feed. The form of each field is as follows.
=
Where
is a single caseLetter case
In orthography and typography, letter case is the distinction between the larger majuscule and smaller minuscule letters...
-significant character and
value
is structured text whose format depends upon attribute type. Values are typically a UTF-8UTF-8
UTF-8 is a multibyte character encoding for Unicode. Like UTF-16 and UTF-32, UTF-8 can represent every character in the Unicode character set. Unlike them, it is backward-compatible with ASCII and avoids the complications of endianness and byte order marks...
encoding.session information and session name values are subject to the encoding specified in any charset attribute of the section. Whitespace is not allowed immediately to either side of the
=
.Within an SDP message there are three main sections, detailing the session, timing, and media descriptions. Each message may contain multiple timing and media descriptions. Names are only unique within the associated syntactic construct, i.e. within the session, time, or media.
Optional values are specified with
=*
and each field must appear in the order shown below.Session description
v= (protocol version)
o= (originator and session identifier)
s= (session name)
i=* (session information)
u=* (URI of description)
e=* (email address)
p=* (phone number)
c=* (connection information—not required if included in all media)
b=* (zero or more bandwidth information lines)
One or more time descriptions ("t=" and "r=" lines; see below)
z=* (time zone adjustments)
k=* (encryption key)
a=* (zero or more session attribute lines)
Zero or more media descriptions
Time description
t= (time the session is active)
r=* (zero or more repeat times)
Media description, if present
m= (media name and transport address)
i=* (media title)
c=* (connection information—optional if included at
session level)
b=* (zero or more bandwidth information lines)
k=* (encryption key)
a=* (zero or more media attribute lines)
Attributes
SDP uses attributes to extend the core protocol. Attributes can appear within the Session or Media sections and are scoped accordingly as session-level or media-level. New attributes are added to the standard occasionally through registration with IANA.Attributes take two forms:
- A property form:
a=
conveys a property of the session. - A value form:
a=
provides a named parameter.:
Time Formats
Absolute times are represented in Network Time ProtocolNetwork Time Protocol
The Network Time Protocol is a protocol and software implementation for synchronizing the clocks of computer systems over packet-switched, variable-latency data networks. Originally designed by David L...
format (the number of seconds since 1900). If the stop time is 0 then the session is "unbounded." If the start time is also zero then the session is considered "permanent." Unbounded and permanent sessions are discouraged but not prohibited.
Intervals can be represented with Network Time Protocol
Network Time Protocol
The Network Time Protocol is a protocol and software implementation for synchronizing the clocks of computer systems over packet-switched, variable-latency data networks. Originally designed by David L...
times or in typed time: a value and time units (days ('d'), hours ('h'), minutes ('m') and seconds ('s')) sequence.
Thus an hour meeting from 10am on 1 August 2010, with a single repeat time a week later at the same time can be represented as:
t=3487140000 3487143600
r=604800 3600 0
Or using typed time:
t=3487140000 3487143600
r=7d 3600 0