SDP stands for Session Description Protocol. It is defined in IETF RFC 4566.
SDP is used by WebRTC to negotiate the session’s parameters. Since there is no signaling in WebRTC, the SDP created and used by WebRTC is assumed to be communicated by the application and not by WebRTC itself.
What SDP contains
An SDP message describes a multimedia session and includes:
- Session metadata: Session name, timing, originator
- Media descriptions (m= lines): Each audio/video track gets its own media line in Unified Plan
- Codec information: Which codecs are supported and their parameters
- ICE candidates: Connection candidates for NAT traversal
- Security parameters: DTLS fingerprints for encryption setup
- SSRC identifiers: Stream identification information
- Bandwidth limits: Maximum bitrate constraints
- Simulcast configuration: When sending multiple encodings
The offer/answer model
WebRTC uses SDP in an offer/answer exchange defined by JSEP:
- The caller creates an SDP offer describing what it wants to send and receive
- The callee responds with an SDP answer indicating what it accepts
- Both sides configure their media engines based on the negotiated parameters
SDP munging
SDP munging (modifying SDP before passing it to the WebRTC engine) has been a common practice but is being deprecated by Chrome. Developers are encouraged to use the transceiver API instead.
There is considerable criticism of SDP’s complexity and verbosity, which motivated the ORTC initiative as an alternative approach.


