FAQ    

 

 

What is SDP ?

SDP (Session Description Protocol) is a format for describing multimedia communication sessions for the purposes of session announcement, session invitation, and other forms of multimedia session initiation. Defined in RFC 4566, SDP itself does not deliver media or initiate a session but is used in conjunction with other protocols such as SIP (Session Initiation Protocol) in IMS or WebRTC for establishing real-time multimedia sessions over the Internet.

SDP provides a standardized way to describe the parameters of multimedia sessions, facilitating the negotiation and establishment of media streams between participants in a networked environment.

Key Aspects of SDP:

SDP plays a crucial role in multimedia communications by providing a standardized way to describe session parameters. Below are some of its key aspects, each with further details:

  • Purpose: SDP is used to convey information about media streams in multimedia sessions to allow the recipients of a session description to participate in the session. This includes information such as the type of media (audio, video, etc.), the codecs being used, the IP addresses and ports to be used, and any other details necessary for establishing and participating in the session.
    • Defines what media types (audio, video, text, etc.) will be used in the session.
    • Specifies the transport addresses (IP and port) for each media stream.
    • Lists supported codecs and formats for each media type.
    • Can include session attributes such as bandwidth, encryption, and directionality (sendonly, recvonly, etc.).
  • Format: SDP is a simple text-based format, consisting of a series of lines of text of the form <type>=<value>. Each line starts with a single character that defines the type of the line, followed by an equals sign (=) and the value for that type.
    • Common line types include v= (version), o= (origin), s= (session name), c= (connection info), t= (timing), m= (media), and a= (attributes).
    • Easy to parse and generate due to its line-oriented structure.
    • Extensible to support new media types and attributes as needed.
  • Usage in SIP: In the context of SIP signaling, SDP is commonly used within the payload of SIP messages (such as INVITE or 200 OK) to describe the media aspects of the call or session being established. This allows the communicating parties to negotiate and agree upon the media types, formats, and transport addresses to be used.
    • SDP payload is included in SIP requests and responses to negotiate session parameters.
    • Enables dynamic negotiation of codecs and media formats between endpoints.
    • Helps establish compatible media streams for successful communication.
    • Supports session modifications (e.g., adding/removing media streams) during ongoing calls.

Example of SDP Usage:

In a SIP INVITE message initiating a VoIP call, the body of the message may contain an SDP payload that looks something like this:

v=0
o=jdoe 2890844526 2890842807 IN IP4 10.47.16.5
s=SDP Seminar
i=A Seminar on the session description protocol
c=IN IP4 224.2.17.12/127
t=2873397496 2873404696
a=recvonly
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
  • v=: Protocol Version.
  • o=: Originator and session identifier.
  • s=: Session name.
  • i=: Session information (optional).
  • c=: Connection information—typically the IP address.
  • t=: Timing (start and stop times).
  • a=: Zero or more session attribute lines.
  • m=: Media description, specifying the media type, port, and protocol.
  • a=rtpmap=: Describes the media format for the RTP/AVP (Audio Video Profile).

Significance:

SDP's significance lies in its ability to enable seamless multimedia communication by providing a standardized way to describe session parameters. Below are key areas where SDP makes a substantial impact, each with further details:

  • Interoperability: SDP supports a wide range of applications, codecs, and media types, making it a flexible tool for establishing multimedia sessions across different platforms and networks.
    • Allows devices from different vendors to communicate using agreed-upon session parameters.
    • Facilitates integration between legacy systems and modern multimedia applications.
    • Supports cross-platform communication (e.g., between mobile, desktop, and web clients).
  • Simplicity and Extensibility: Its simple, text-based format makes it easy to parse and generate by different devices and applications, while also being extensible to support new types of media and features.
    • Reduces complexity for developers implementing multimedia protocols.
    • Enables quick adaptation to new media types and session attributes.
    • Supports custom extensions for specialized use cases without breaking compatibility.
  • Widespread Adoption: SDP is widely used in Internet telephony, conferencing applications, and streaming media services, underscoring its importance in modern multimedia communication.
    • Forms the backbone of session negotiation in SIP-based VoIP and video conferencing.
    • Used in WebRTC for browser-based real-time communications.
    • Adopted by major streaming platforms and unified communications solutions.

Further Readings