In my previous article “
RFC 3261 – Session Initiation Protocol (SIP) Parameters

”, I introduced the purpose of each header in SIP_REGISTER message. So today, I think we can go a step further to talk about Session Description Protocol (SDP). When initiating a VoLTE/VoWiFi call or streaming video, phones and networks need to decide some media-related parameters like transport protocol or address... In order to determine these configurations, we need SDP to help us!

 

It is important to realize that SDP is not used to negotiate media parameters in a session. Instead, one party tells the other party, “Here are all the media types I can support – pick one and use it.”

 

Following is the meaning of each SDP field. Notice! Not every field will present in SDP body. (OPTIONAL items are marked with a "*")

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)

 

Let’s take a look at the following example: a smart phone sends a SIP_INVITE message with SDP body to a network to establish a VoLTE call:

v=0

o=- 1068 1000 IN IP4 1.2.3.4

s=SDP example

c=IN IP4 1.2.3.4

b=AS:41

b=RS:600

b=RR:2000

t=0 0

m=audio 50010 RTP/AVP 99 97 105 96

b=as:41

b=rs:600

b=rr:2000

a=rtpmap:99 AMR-WB/16000/1

a=fmtp:99 mode-change-capability=2;max-red=0

a=rtpmap:97 AMR/8000/1

a=fmtp:97 mode-change-capability=2;max-red=0

a=rtpmap:105 telephone-event/16000

a=fmtp:105 0-15

a=rtpmap:96 telephone-event/8000

a=fmtp:96 0-15

a=curr:qos local none

a=curr:qos remote none

a=des:qos mandatory local sendrecv

a=des:qos optional remote sendrecv

a=sendrecv

a=maxptime:240

a=ptime:20

 

“o” filed shows the information of the originator (in this example, the originator is a smartphone). IN = Internet, IP4 = IPv4, 1.2.3.4 is the IP address of the phone. (The IP address is assigned by the network which the phone registers.)

 

“c” field tells the network that please send Real-time Transport Protocol (RTP) packets to this address for the session.

 

“b” field represents bandwidth information. “b=AS” modifier specifies the bandwidth for RTP packets (bps), “b=RS” and “b=RR” modifiers specify the bandwidth of RTCP report for sender and receiver respectively. (For RS and RR, you can refer RFC 3556 for more details.)

 

“m” is media description. It tells the network that the media type is audio (currently defined media are “audio”, “video”, “text”, “application”, and “message”). The transport port for this media stream is 50010. RTP/AVP: RTP audio/video profile. It means the media is configured for four different formats: 99, 97, 105, and 96. Each format is defined below. (For the predefined AVP and other play formats, refer to Wikipedia: RTP audio video profile)

 ​​​​

arrow
arrow
    文章標籤
    SDP VoLTE SIP
    全站熱搜
    創作者介紹
    創作者 Fone RD 的頭像
    Fone RD

    TM's Blog for 3GPP Spec

    Fone RD 發表在 痞客邦 留言(0) 人氣()