SDP協議簡述

SDP協議概述

簡介

SDP 完全是一種會話描述格式, 它不屬於傳輸協議.

它使用不同的適當的傳輸協議,包括會話通知協議(SAP)、會話初始協議(SIP)、 實時流協議(RTSP)、MIME 擴展協議的電子郵件以及超文本傳輸協議(HTTP)。

SDP協議是也是基於文本的協議,這樣就能保證協議的可擴展性比較強, 這樣就使其具有廣泛的應用範圍。SDP 不支持會話內容或媒體編碼的協商, 所以在流媒體中只用來描述媒體信息。媒體協商這一塊要用RTSP來實現.

SDP協議格式

SDP描述由許多文本行組成,文本行的格式爲<類型>=<值>,<類型>是一個字母,<值>是結構化的文本串,其格式依<類型>而定。

<type>=<value>[CRLF]

sdp的格式:


v=<version>
o=<username> <session id> <version> <network type> <address type> <address>
s=<session name>
i=<session description>
u=<URI>
e=<email address>
p=<phone number>
c=<network type> <address type> <connection address>
b=<modifier>:<bandwidth-value>
t=<start time> <stop time>
r=<repeat interval> <active duration> <list of offsets from start-time>
z=<adjustment time> <offset> <adjustment time> <offset> ....
k=<method>
k=<method>:<encryption key>
a=<attribute>
a=<attribute>:<value>
m=<media> <port> <transport> <fmt list>
v = (協議版本)
o = (所有者/創建者和會話標識符)
s = (會話名稱)
i = * (會話信息)
u = * (URI 描述)
e = * (Email 地址)
p = * (電話號碼)
c = * (連接信息)
b = * (帶寬信息)
z = * (時間區域調整)
k = * (加密密鑰)
a = * (0 個或多個會話屬性行)
時間描述:
t = (會話活動時間)
r = * (0或多次重複次數)
媒體描述:
m = (媒體名稱和傳輸地址)
i = * (媒體標題)
c = * (連接信息 — 如果包含在會話層則該字段可選)
b = * (帶寬信息)
k = * (加密密鑰)
a = * (0 個或多個媒體屬性行)

SDP協議舉例說明

SDP(Session Description Protocol)是一個用來描述多媒體會話的應用層控制協議,它是一個基於文本的協議,用於會話建立過程中的媒體類型和編碼方案的協商等。

消息正文格式:

v=0 //該行指示協議的版本

o=mhandley 2890844526 2890842807 IN IP4 126.16.64.4 //o行中包含與會話所有者有關的參數

  • 第一個參數表明會話發起者的名稱,該參數可不填寫,如填寫和SIP消息中,from消息頭的內容一致。
  • 第二個參數爲主叫方的會話標識符。
  • 第三個參數爲主叫方會話的版本,會話數據有改變時,版本號遞增。
  • 第四個參數定義了網絡類型,IN表示Internet網絡類型,目前僅定義該網絡類型。
  • 第五個參數爲地址類型,目前支持IPV4和IPV6兩種地址類型。
  • 第六個參數爲地址:表明會話發起者的IP地址,該地址爲信令面的IP地址,信令PDP激活時爲手機分配。

s=SDP Seminar //表明本次會話的標題,或會話的名稱

i=A Seminar on the session description protocol //會話的描述

u=http://www.cs.ucl.ac.uk/staff/M.Handley/sdp.03.ps //會話的URI,通過該地址可以查閱到會話的更多內容

[email protected] (Mark Handley) //會話責任人的EMIAL地址

c=IN IP4 224.2.17.12/127 //C行包含爲多媒體會話而建立的連接的信息,其中指出了真正的媒體流使用的IP地址

  • 第一個參數爲網絡類型,目前僅定義INTERNET網絡類型。用“IN”表示。
  • 第二個參數爲地址類型,目前支持兩種地址類型:IPV4和IPV6。
  • 第三個參數爲地址,該地址爲多媒體流使用的IP地址。

t=2873397496 2873404696 //表示會話的開始時間和結束時間

  • 第一個參數表明會話的開始時間,數字表明從1900年1月1日00:00以來所經過的秒數。
  • 第二個參數表明會話的結束時間,數字表明從1900年1月1日00:00以來所經過的秒數。

m=audio 3458 RTP/AVP 0 96 97 // m行又稱媒體行,描述了發送方所支持的媒體類型等信息

  • 第一個參數爲媒體名稱:表明支持音頻類型。
  • 第二個參數爲端口號,表明UE在本地端口爲3458上發送音頻流。
  • 第三個參數爲傳輸協議,一般爲RTP/AVP協議。
  • 第四~七參數爲所支持的四種淨荷類型編號

a=rtpmap:0 PCMU //a行爲媒體的屬性行,以屬性的名稱:屬性值的方式表示。
a=rtpmap:96 G726-32/8000
a=rtpmap:97 AMR-WB

格式爲:a=rtpmap:<淨荷類型><編碼名稱> * 淨荷類型0固定分配給了PCMU, * 淨荷類型96對應的編碼方案爲G.726,爲動態分配的。 * 淨荷類型97對應的編碼方式爲自適應多速率寬帶編碼(AMR-WB),爲動態分配的。

m=video 3400 RTP/AVP 98 99 //m行又稱媒體行,描述了發送方所支持的媒體類型等信息

  • 第一個參數爲媒體名稱:表明支持視頻類型。
  • 第二個參數爲端口號,表明UE在本地端口爲3400上發送視頻流。
  • 第三個參數爲傳輸協議,一般爲RTP/AVP協議。
  • 四、五參數給出了兩種淨荷類型編號

a=rtpmap:98 MPV
a=rtpmap:99 H.261

格式爲:a=rtpmap:<淨荷類型><編碼名稱> * 淨荷類型98對應的編碼方案爲MPV,爲動態分配的。 * 淨荷類型97對應的編碼方式爲H.261,爲動態分配的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章