SDP代表會(huì)話描述協(xié)議。它用于描述參與者通過(guò)網(wǎng)絡(luò)理解的格式的多媒體會(huì)話。根據(jù)該描述,一方?jīng)Q定是否加入會(huì)議或者何時(shí)或如何加入會(huì)議。
會(huì)議的所有者通過(guò)發(fā)送包含會(huì)話描述的多播消息在網(wǎng)絡(luò)上廣告它。所有者的名稱,會(huì)話的名稱,編碼,時(shí)間等。根據(jù)這些信息,廣告的接收者做出關(guān)于參與會(huì)話的決定。
SDP通常包含在通常稱為SIP的會(huì)話發(fā)起協(xié)議的主體部分中。
SDP在RFC 2327中定義。SDP消息由一系列稱為字段的行組成,其名稱由單個(gè)小寫字母縮寫,并且以所需順序來(lái)簡(jiǎn)化解析。
SDP的目的是在多媒體會(huì)話中傳達(dá)關(guān)于媒體流的信息,以幫助參與者加入或收集特定會(huì)話的信息。
SDP是一個(gè)短結(jié)構(gòu)化文本描述。
它傳達(dá)會(huì)話的名稱和目的,媒體,協(xié)議,編解碼格式,定時(shí)和傳輸信息。
臨時(shí)參與者檢查這些信息并決定是否加入會(huì)話,以及如果它決定如何以及何時(shí)加入會(huì)話。
格式具有< type>形式的條目。 =< value>,其中< type> 定義唯一會(huì)話參數(shù),并且< value> 提供該參數(shù)的特定值。
SDP消息的一般形式是 -
x = parameter1參數(shù)2 ...參數(shù)N
行以單個(gè)小寫字母開頭,例如x。字母和=之間從不存在任何空格,每個(gè)參數(shù)之間只有一個(gè)空格。每個(gè)字段都有一定數(shù)量的參數(shù)。
會(huì)話描述(*表示可選)
v =字段包含SDP版本號(hào)。因?yàn)镾DP的當(dāng)前版本是0,所以有效的SDP消息將始終以v = 0開始。
o =字段包含有關(guān)會(huì)話發(fā)起者和會(huì)話標(biāo)識(shí)符的信息。此字段用于唯一標(biāo)識(shí)會(huì)話。
該字段包含 -
o =< username>< session-id>< version>< network-type>< address-type>
用戶名參數(shù)包含發(fā)起方的登錄名或主機(jī)。
session-id 參數(shù)是用于確保唯一性的網(wǎng)絡(luò)時(shí)間協(xié)議(NTP)時(shí)間戳或隨機(jī)數(shù)。
版本是一個(gè)數(shù)字字段,對(duì)于會(huì)話的每個(gè)更改都會(huì)增加,也建議為NTP時(shí)間戳。
對(duì)于Internet,網(wǎng)絡(luò)類型始終為IN。address-type參數(shù)為IPv4或IPv6地址的IP4或IP6(點(diǎn)分十進(jìn)制形式或完全限定的主機(jī)名)。
s =字段包含會(huì)話的名稱。 它可以包含任何非零數(shù)字的字符。可選的i =字段包含有關(guān)會(huì)話的信息。它可以包含任意數(shù)量的字符。
可選的u =字段包含具有關(guān)于會(huì)話的更多信息的統(tǒng)一資源指示符(URI)
可選的e =字段包含會(huì)話主機(jī)的電子郵件地址。可選的p =字段包含電話號(hào)碼。
c =字段包含有關(guān)介質(zhì)連接的信息。
該字段包含 -
c =< network-type>< address-type>< connection-address>
對(duì)于Internet, network-type 參數(shù)定義為IN。
地址類型定義為IPv4地址的IP4和IPv6地址的IP6。
connection-address 是將發(fā)送媒體數(shù)據(jù)包的IP地址或主機(jī),可以是多播或單播。
如果組播,則connection-address字段包含 -
connection-address = base-multicast-address / ttl / number-of-addresses
其中 ttl 是生存時(shí)間值,并且地址數(shù)量指示從基本多播地址開始包括多少個(gè)連續(xù)的多播地址。
可選b =字段包含有關(guān)所需帶寬的信息。 它的形式 -
b = modifier:bandwidth - value
t =字段包含會(huì)話的開始時(shí)間和停止時(shí)間。
t =開始時(shí)間停止時(shí)間
可選的r =字段包含有關(guān)可以在NTP或天( d 小>),小時(shí)( h 小>)或分鐘( > m )。
可選的 z =字段包含有關(guān)時(shí)區(qū)偏移的信息。如果發(fā)生的會(huì)話跨越從夏令時(shí)到標(biāo)準(zhǔn)時(shí)間的更改,則使用此字段,反之亦然。
可選的 m =字段包含有關(guān)媒體會(huì)話類型的信息。 該字段包含 -
m =媒體端口傳輸格式列表
媒體參數(shù)是音頻,視頻,文本,應(yīng)用程序,消息,圖像或控件。port參數(shù)包含端口號(hào)。
傳輸參數(shù)包含使用的傳輸協(xié)議或RTP配置文件。
格式列表包含有關(guān)介質(zhì)的更多信息。通常,它包含在RTP音頻視頻簡(jiǎn)檔中定義的媒體有效載荷類型。
Example: m = audio 49430 RTP/AVP 0 6 8 99
這三個(gè)編解碼器之一可以用于音頻媒體會(huì)話。如果意圖是建立三個(gè)音頻通道,則將使用三個(gè)單獨(dú)的媒體字段。
可選的a =字段包含前面的媒體會(huì)話的屬性。 此字段可用于擴(kuò)展SDP以提供有關(guān)介質(zhì)的更多信息。 如果SDP用戶沒(méi)有完全理解,則可以忽略屬性字段。 媒體字段中列出的每個(gè)媒體有效內(nèi)容類型可以有一個(gè)或多個(gè)屬性字段。
SDP中的屬性可以是
會(huì)話級(jí)別意味著該屬性在SDP中的第一個(gè)媒體行之前列出。 如果是這種情況,該屬性將應(yīng)用于其下的所有媒體行。
媒體級(jí)別表示它在媒體行之后列出。 在這種情況下,屬性僅適用于該特定媒體流。
SDP可以包括會(huì)話級(jí)和媒體級(jí)屬性。 如果相同的屬性同時(shí)出現(xiàn),則媒體級(jí)屬性將覆蓋該特定媒體流的會(huì)話級(jí)屬性。 請(qǐng)注意,連接數(shù)據(jù)字段也可以是會(huì)話級(jí)或媒體級(jí)。
下面給出一個(gè)示例會(huì)話描述,取自RFC 2327 -
v = 0 o = mhandley2890844526 2890842807 IN IP4 126.16.64.4 s = SDP Seminar i = A Seminar on the session description protocol u = http://www.cs.ucl.ac.uk/staff/M.Handley/sdp.03.ps e = mjh@isi.edu(Mark Handley) c = IN IP4 224.2.17.12/127 t = 2873397496 2873404696 a = recvonly m = audio 49170 RTP/AVP 0 m = video 51372 RTP/AVP 31 m = application 32416udp wb a = orient:portrait
更多建議: