The Session Description Protocol (SDP) is a key protocol in multimedia communication, used to describe and negotiate session parameters for voice, video, and data transmission over IP networks.
What is SDP?
SDP is a text-based protocol used to describe multimedia sessions. It does not transport media itself but provides the necessary information for endpoints to establish and manage media streams effectively.
Key Characteristics of SDP
**Text-based format** for session description.
Used in **VoIP (Voice over IP), WebRTC, RTP, SIP**.
Includes information such as **media type, format, IP addresses, codecs**.
Supports both **unicast and multicast sessions**.
Structure of an SDP Message
An SDP message consists of key-value pairs with a specific structure:
v=0
o=- 123456 654321 IN IP4 192.168.1.10
s=SDP Session
c=IN IP4 203.0.113.1
m=audio 49170 RTP/AVP 0 8 96
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:96 opus/48000/2
Detailed Breakdown of SDP Fields
Each line in an SDP message has a specific meaning:
v= (Version) – Protocol version, always “0”.
o= (Origin) – Session creator’s details (username, session ID, network type, IP address).
s= (Session Name) – Human-readable name of the session.
c= (Connection Info) – Network type and IP address of the session.
m= (Media Description) – Media type, port, transport protocol, codec list.
a= (Attributes) – Additional information such as codec details.
Common Use Cases of SDP
SDP is widely used in modern telecom networks for session negotiation in the following scenarios:
VoIP (Voice over IP): SDP is used with SIP to establish voice calls.
WebRTC (Web Real-Time Communication): SDP helps browsers negotiate video and audio streams.
Streaming Media: Used to describe live streaming sessions in IPTV.
Multiparty Conferencing: Enables real-time voice/video communication in conferencing applications.
Example: SDP in a SIP Call
Below is an example of an SDP message inside a SIP INVITE request:
INVITE sip:user@domain.com SIP/2.0
Via: SIP/2.0/UDP 192.168.1.10:5060
From: “Alice”
To: “Bob”
Call-ID: 12345678
CSeq: 1 INVITE
Content-Type: application/sdp
Content-Length: 200
v=0
o=alice 2890844526 2890844526 IN IP4 192.168.1.10
s=VoIP Call
c=IN IP4 192.168.1.10
t=0 0
m=audio 49170 RTP/AVP 0 8 96
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:96 opus/48000/2
a=sendrecv
How SDP Works in Real-World Applications
In a real-world scenario, SDP is used to establish media sessions by defining key parameters such as:
**Supported Codecs (e.g., G.711, Opus, H.264)**
**Session Transport (e.g., RTP, SRTP for encryption)**
**IP Address and Port for Media Transmission**
**Session Start and End Time**
Conclusion
Session Description Protocol (SDP) is a fundamental component of real-time multimedia communications. Whether in VoIP, WebRTC, or SIP-based applications, SDP ensures that endpoints can successfully negotiate session parameters and establish seamless communication.