SIP 會話描述協(xié)議

2018-12-28 18:43 更新

SDP代表會話描述協(xié)議。它用于描述參與者通過網(wǎng)絡理解的格式的多媒體會話。根據(jù)該描述,一方?jīng)Q定是否加入會議或者何時或如何加入會議。

  • 會議的所有者通過發(fā)送包含會話描述的多播消息在網(wǎng)絡上廣告它。所有者的名稱,會話的名稱,編碼,時間等。根據(jù)這些信息,廣告的接收者做出關于參與會話的決定。

  • SDP通常包含在通常稱為SIP的會話發(fā)起協(xié)議的主體部分中。

  • SDP在RFC 2327中定義。SDP消息由一系列稱為字段的行組成,其名稱由單個小寫字母縮寫,并且以所需順序來簡化解析。

SDP的目的

SDP的目的是在多媒體會話中傳達關于媒體流的信息,以幫助參與者加入或收集特定會話的信息。

  • SDP是一個短結構化文本描述。

  • 它傳達會話的名稱和目的,媒體,協(xié)議,編解碼格式,定時和傳輸信息。

  • 臨時參與者檢查這些信息并決定是否加入會話,以及如果它決定如何以及何時加入會話。

  • 格式具有< type>形式的條目。 =< value>,其中< type> 定義唯一會話參數(shù),并且< value> 提供該參數(shù)的特定值。

  • SDP消息的一般形式是 -

    x = parameter1參數(shù)2 ...參數(shù)N

  • 行以單個小寫字母開頭,例如x。字母和=之間從不存在任何空格,每個參數(shù)之間只有一個空格。每個字段都有一定數(shù)量的參數(shù)。

會話描述參數(shù)

會話描述(*表示可選)

  • v = (protocol version)
  • o = (owner/creator 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 =* (bandwidth information)
  • z =* (time zone adjustments)
  • k =* (encryption key)
  • a =* (zero or more session attribute lines)

協(xié)議版本

v =字段包含SDP版本號。因為SDP的當前版本是0,所以有效的SDP消息將始終以v = 0開始。

所有者/創(chuàng)建者和會話標識符

o =字段包含有關會話發(fā)起者和會話標識符的信息。此字段用于唯一標識會話。

  • 該字段包含 -

    o =< username>< session-id>< version>< network-type>< address-type>

  • 用戶名參數(shù)包含發(fā)起方的登錄名或主機。

  • session-id 參數(shù)是用于確保唯一性的網(wǎng)絡時間協(xié)議(NTP)時間戳或隨機數(shù)。

  • 版本是一個數(shù)字字段,對于會話的每個更改都會增加,也建議為NTP時間戳。

  • 對于Internet,網(wǎng)絡類型始終為IN。address-type參數(shù)為IPv4或IPv6地址的IP4或IP6(點分十進制形式或完全限定的主機名)。

會話名稱

s =字段包含會話的名稱。 它可以包含任何非零數(shù)字的字符。可選的i =字段包含有關會話的信息。它可以包含任意數(shù)量的字符。

URI

可選的u =字段包含具有關于會話的更多信息的統(tǒng)一資源指示符(URI)

電子郵件地址

可選的e =字段包含會話主機的電子郵件地址。可選的p =字段包含電話號碼。

連接信息

c =字段包含有關介質(zhì)連接的信息。

  • 該字段包含 -

    c =< network-type>< address-type>< connection-address>

  • 對于Internet, network-type 參數(shù)定義為IN。

  • 地址類型定義為IPv4地址的IP4和IPv6地址的IP6。

  • connection-address 是將發(fā)送媒體數(shù)據(jù)包的IP地址或主機,可以是多播或單播。

  • 如果組播,則connection-address字段包含 -

    connection-address = base-multicast-address / ttl / number-of-addresses

  • 其中 ttl 是生存時間值,并且地址數(shù)量指示從基本多播地址開始包括多少個連續(xù)的多播地址。

帶寬信息

可選b =字段包含有關所需帶寬的信息。 它的形式 -

b = modifier:bandwidth - value

時間,重復次數(shù)和時區(qū)

t =字段包含會話的開始時間和停止時間。

t =開始時間停止時間

可選的r =字段包含有關可以在NTP或天( d 小>),小時( h 小>)或分鐘( > m )。

可選的 z =字段包含有關時區(qū)偏移的信息。如果發(fā)生的會話跨越從夏令時到標準時間的更改,則使用此字段,反之亦然。

媒體公告

可選的 m =字段包含有關媒體會話類型的信息。 該字段包含 -

m =媒體端口傳輸格式列表

  • 媒體參數(shù)是音頻,視頻,文本,應用程序,消息,圖像或控件。port參數(shù)包含端口號。

  • 傳輸參數(shù)包含使用的傳輸協(xié)議或RTP配置文件。

  • 格式列表包含有關介質(zhì)的更多信息。通常,它包含在RTP音頻視頻簡檔中定義的媒體有效載荷類型。

Example:
m = audio 49430 RTP/AVP 0 6 8 99

這三個編解碼器之一可以用于音頻媒體會話。如果意圖是建立三個音頻通道,則將使用三個單獨的媒體字段。

屬性

可選的a =字段包含前面的媒體會話的屬性。 此字段可用于擴展SDP以提供有關介質(zhì)的更多信息。 如果SDP用戶沒有完全理解,則可以忽略屬性字段。 媒體字段中列出的每個媒體有效內(nèi)容類型可以有一個或多個屬性字段。

SDP中的屬性可以是

  • session level, or
  • media level.

會話級別意味著該屬性在SDP中的第一個媒體行之前列出。 如果是這種情況,該屬性將應用于其下的所有媒體行。

媒體級別表示它在媒體行之后列出。 在這種情況下,屬性僅適用于該特定媒體流。

SDP可以包括會話級和媒體級屬性。 如果相同的屬性同時出現(xiàn),則媒體級屬性將覆蓋該特定媒體流的會話級屬性。 請注意,連接數(shù)據(jù)字段也可以是會話級或媒體級。

SDP示例

下面給出一個示例會話描述,取自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
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號