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