Session Description Protocol (SDP)
The Session Description Protocol (SDP) conveys information on media streams in multimedia sessions in order to allow recipients of a session description to participate in the session. It is mainly used in inter-network but it can also describe conferences in other network environments.
Multimedia sessions are defined as a set of media streams existing only for some duration of time. They can be various while the time duration (when the session is active) does not need to be continuous. SDP has two main purposes: Once it is a mean to communicate if the session exists, and it also conveys information for allowing participation in the session.
Terminology for SDP
Conference: | It is related to two or more users who are communicating along with a software |
Session: | It includes the multimedia sender and receiver, and the streaming media |
Session Announcement: | It is a mechanism that makes session description be conveyed to users in a proactive way |
Session Advertisement: | It is similar to Session Announcement |
Session Description: | It is a clear format that conveys adequate information in order to make participation possible in a multimedia session. |
SDP includes:
- Name and purpose of the session
- Time(s) when the session is active
- The media included in the session
- Information in order to receive those media
Some further information can also be included if necessary resources for the participation are limited:
- Information about the bandwidth to be used by the conference
- Contact information for the person responsible for the session
Moreover, SDP is applied for negotiating between endpoints of media type, format, and all associated properties. It can be extended to be able to support new media types and formats.
SDP often used in conjunction with RTP, SIP or as a standalone format that is employed for describing multicast sessions.
Media information
SDP includes the media type (video, audio, etc), the transport protocol (RTP/UDP/IP, etc), and media format (video, MPEG video, etc). In case of IP multicast session the follows are also conveyed: multicast address (destination address of the multicast stream) and transport port (destination port of the multicast stream) for media. For IP unicast sessions remote address for the media and transport port for contact address are also conveyed. They depend on the media and transport protocol defined.
Timing
Sessions can be bounded or unbounded in time and can be active only at specific times. In this way SDP can include the start and stop times that bound the session and for each bound, SDP can convey repeat times. This information is globally consistent.
Private Sessions
With SDP you can create public sessions and private sessions, as well. Private sessions can be created by encrypting the session description. The method of encryption depends on the mechanism that is used for conveying SDP. These private sessions can be used for conveying encryption keys required to decode the media in a conference.
Further Information about a Session
Further information about sessions can be gained from session descriptions. This information then allows to decide if the participation in a session is required or not. SDP can contain further pointers in Universal Resources Identifiers (URIs).
Categorization
SDP supports a categorization mechanism for sessions that can be automated.
Internationalization
The SDP specification recommends to use ISO 10646 character sets in the UTF-8 encoding therefore many languages are allowed to be represented. SDP can also allow other character sets such as ISO 8859-1 to be used when desired.
Session description
A series of attribute/value pairs describes a session in a way that there is one per line. Values can be ASCII string or sequences of types separated by spaces. Optional fields has an "*".
v= (protocol version)
o= (owner/creator 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=* (bandwidth information)
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
m= (media name and transport address)
i=* (media title)
c=* (connection information - optional if included at session-level)
b=* (bandwidth information)
k=* (encryption key)
a=* (zero or more media attribute lines)
An example SDP description is (Figure 1):
s=Test Session
c=IN IP4 142.165.11.2
m=video 51372 RTP/SAVP 31
a=crypto:AES_CM_128_HMAC_SHA1_32
s=Test Session
c=IN IP4 142.165.11.3
m=video 51761 RTP/SAVP 31
a=crypto:AES_CM_128_HMAC_SHA1_32
Related Pages
More information
- Session initiation protocol
- Rfc document list
- User datagram protocol
- Session description protocol
- Real-time transfer protocol
- Rtcp protocol
- H323 protocol