Session Description Protocol

From Wikipedia, the free encyclopedia
Jump to: navigation, search

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,[1] and subsequently published a revised specification as an IETF Proposed Standard as RFC 4566 in July 2006.[2]

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.

Contents

[edit] Session description

A session is described by a series of fields, one per line.[note 1] The form of each field is as follows.

<character>=<value>

Where <character> is a single case-significant character and value is structured text whose format depends upon attribute type. Values are typically a UTF-8 encoding.[note 2] Whitespace is not allowed immediately to either side of the =.[3]

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.[4]

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)

[edit] 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.[5] Attributes take two forms:

  • A property form: a=<flag> conveys a property of the session.
  • A value form: a=<attribute>:<value> provides a named parameter.

[edit] Time Formats

Absolute times are represented in Network Time Protocol 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

[edit] Notes

  1. ^ Each line is separated from the next by a carriage return/line feed sequence. Implementations are allowed to relax this to omit the carriage return and supply only the line feed.
  2. ^ session information and session name values are subject to the encoding specified in any charset attribute of the section.

[edit] References

  1. ^ Handley, Mark; Van Jacobson (1998-04). "SDP: Session Description Protocol (RFC 2327)". IETF. http://tools.ietf.org/html/rfc2327. Retrieved 2008-04-19. 
  2. ^ Handley, Mark; Van Jacobson, Colin Perkins (2006-07). "SDP: Session Description Protocol (RFC 4566)". IETF. http://tools.ietf.org/html/rfc4566. Retrieved 2008-04-19. 
  3. ^ RFC 4566 Section 5
  4. ^ An In-Depth Overview of SDP
  5. ^ Internet Assigned Numbers Authority SDP site

[edit] External links

Personal tools
Namespaces
Variants
Actions
Navigation
Interaction
Toolbox
Print/export
Languages