1. 程式人生 > >會話描述協議-SDP協議介紹

會話描述協議-SDP協議介紹

    SDP會話描述協議,是描述流媒體初始化引數的格式,由IETF作為RFC 4566頒佈,為會話通知、會話邀請和其它形式的多媒體會話初始化等目的提供了多媒體會話描述。會話目錄用於協助多媒體會議的通告,併為會話參與者傳送相關設定資訊。 SDP 即用於將這種資訊傳輸到接收端。 SDP 完全是一種會話描述格式它不屬於傳輸協議,它只使用不同的適當傳輸協議,可以用於包括會話通知協議 (SAP)、會話初始協議(SIP)、實時流協議 (RTSP)、 MIME 擴充套件協議的電子郵件以及超文字傳輸協議 (HTTP)等等。SDP 的設計宗旨是通用性,它可以應用於大範圍的網路環境和應用程式,不僅僅侷限於組播會話目錄。


流媒體傳輸過程中看到或聽到的內容,SDP包通常包括以下資訊:

(1)會話資訊

        · 會話名和目的

        · 會話活動時間

        由於參與會話的資源是受限制的,因此包括以下附加資訊是非常有用的

        · 會話使用的頻寬資訊

        · 會話負責人的聯絡資訊


(2)媒體資訊

        · 媒體型別,例如視訊和音訊

        · 傳輸協議,例如RTP/UDP/IP和H.320。

        · 多播地址和媒體傳輸埠(IP多播會話)

        · 用於聯絡地址的媒體和傳輸埠的遠端地址(IP單播會話)


    SDP描述通常由許多文字行組成,其文字行格式為<型別>=<值>,<型別>是一個字母,<值>是結構化的文字串,格式依<型別>而定,如: SDP格式(帶*為可選):
        Session description
          v=   (protocol version) //該行指示協議的版本
          o=   (owner/creator and session identifier)

          例如: o=hybase 2890844526 2890842807 IN IP4 126.16.64.4   //o行中包含與會話所有者有關的引數(

             1:第一個引數表明會話發起者的名稱,該引數可不填寫,如填寫和SIP訊息中,from訊息頭的內容一致;

             2:第二個引數為主叫方的會話識別符號;

            3:第三個引數為主叫方會話的版本,會話資料有改變時,版本號遞增;

            4:第四個引數定義了網路型別,IN表示Internet網路型別,目前僅定義該網路型別;

            5:第五個引數為地址型別,目前支援IPV4和IPV6兩種地址型別;

            6:第六個引數為地址:表明會話發起者的IP地址,該地址為信令面的IP地址,信令PDP啟用時為手機分配。)


          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)

         例如: m=audio 3458  RTP/AVP  0   96   97   // m行又稱媒體行,描述了傳送方所支援的媒體型別等資訊(

          1: 第一個引數為媒體名稱:表明支援音訊型別。

          2: 第二個引數為埠號,表明UE在本地埠為3458上傳送音訊流。

          3: 第三個引數為傳輸協議,一般為RTP/AVP協議;

          4:第四~第七引數為所支援的四種淨荷型別編號)


         m=video 3400 RTP/AVP 98  99 //m行又稱媒體行,描述了傳送方所支援的媒體型別等資訊
         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)