Transcript SDP
SDP
Session Description Protocol (SDP)
an application-layer protocol intended to describe
multimedia sessions
a text-based protocol
when describing a session the caller and callee
indicate their respective "receive" capabilities,
media formats and receive address/port
capability exchange can be performed
during session set-up or
during the session itself (while the session is in
progress)
9.1 SDP message contents
9.2 SDP message format
9.3 Selected SDP lines
9.1 SDP message contents
An SDP message contains three levels of information
Session-level description
includes the session identifier and other session
level parameters, such as the IP address, subject,
contact info about the session and/or creator
Timing description
start and stop times, repeat times, one or more
media-level descriptions
Media type and format
transport protocol and port number, other medialevel parameters
The three levels of information must appear in the
order described above
The SDP message is a collection of SDP lines
9.1.1 Session description
9.1.2 Time description
9.1.3 Media description
9.1.1 Session description
Table 9.1 lists all the session-level description lines
and indicates their mandate and the letter used as the
line name
9.1.2 Time description
Table 9.2 lists all the time-level description lines and
indicates their mandate and the letter used as the line
name
9.1.3 Media description
Table 9.3 lists all the media-level description lines and
indicates their mandate and the letter used as the line
name
9.2 SDP message format
The SDP syntax is very strict and all lines follow the
same format
Every SDP line has the format
<character>=<value>
value=parameter1 parameter2 . . . parameterN
Each SDP line ends with a carriage return line feed
(CRLF) and each line has a defined number of
parameters
9.3 Selected SDP lines
9.3.1 Protocol version line
9.3.2 Connection information line
9.3.3 Media line
9.3.4 Attribute line
9.3.5 The rtpmap attribute
9.3.1 Protocol version line
The SDP protocol version is 0 and, therefore, the v-line
in an SDP message must always be set to 0
v=0
9.3.2 Connection information line
The c-line must be either present at the session level or
media level
It must be present at the media level if it is not present
at the session level
If it is present at both levels, then media-level
connection information overrides session-level
information
c=<network type> <address type> <network address>
The c-line has three parameters
network type
the only currently defined network type is the
Internet
the value appears as "IN"
address type
there are two address types, IP4 or IP6
network address
this parameter identifies the IP address or
domain name where media are received
9.3.3 Media line
The m-line carries information about the media,
including transport information
The syntax is as follows
m=<media> <port> <transport> <format-list>
The m-line has four parameters
Media
the type of media (e.g., audio, video, game)
Port
contains the port number where these media can
be received
Transport
the transport protocol to use, either the User
Datagram Protocol (UDP) or Real-time
Transport Protocol Audio and Video Profile
(RTP/AVP)
Format-list
contains more information about the media,
usually payload types defined in RTP/AVPs
If the transport is RTP/AVP, then the port number for
the RTP Control Protocol (RTCP) = RTP port + 1
RTCP is assumed to be sent whenever RTP is carrying
the media
The RTP port number must always be an even number
and, therefore, the RTCP port is an odd number
9.3.4 Attribute line
The a-line defines the attributes of the media
Attributes can be session-level attributes, media-level
attributes or both
Attribute interpretation depends on the media tool
being invoked
Syntax
a=<attribute field> [" : "<attribute value>]
attribute field
contains the name of the attribute.
attribute value
optional, if present is separated from the attribute
field by a colon
Table 9.4 shows a list of the most commonly used
attributes
9.3.5 The rtpmap attribute
For RTP-transported media, SDP can be used to bind a
media-encoding codec to the media's RTP payload type
this is done using a payload-type number
Payload types
static payload types
the payload-type number is sufficient for the
binding
the payload-type number is carried in the formatlist parameter of the media line
dynamic payload types
the payload-type number is not sufficient and
additional encoding information is needed
this is achieved using the rtpmap attribute
Syntax of the rtpmap attribute
a=rtpmap: <payload type> <encoding name>/<clock rate>[/<encoding parameters>]
payload type
carries the payload-type number as indicated in
the m-line
encoding name
the codec name
clock rate
bits per second
encoding parameters
media-specific parameters, including the number
of channels, but not codec-specific parameters