MMS消息格式及封裝

轉自: http://www.iteye.com/topic/618885

在以上業務模型的介紹中,通訊流程中的主體是用於承載業務數據的PDUs(Protocol Data Units),本節將關注這些數據單元的基本機構、內容組成、封裝編碼等幾個方面。MMS PDU的內容類型(content-type)必須被指定爲 application/vnd.-wap.mms-message ,用於被客戶端準確識別。

基本結構

MMS PDU由消息頭(Header)和消息體(Body)組成。Header具體描述了PDU的特定信息,Body是消息的具體內容(Body體是可選的)。大多數MMS PDU只含有Header域,用於建立和維持通信,Body體只用在M-Send.req 和 M-Retrieve.conf 兩個數據包中。下圖是MMS PDU基本結構的示意圖:


消息頭(Header)由一系列的域組成,包括PDU類型,接受方,發送方,發送時間等等。Header域中的項分爲可選項和必選項,並且在編碼MM頭域時,X-Mms-Message-Type,X-Mms-Transaction-ID 和X-Mms-MMS-Version必須位於MM頭的最開始,而且要嚴格按照所列順序,Content-Type頭域必須在MMS頭域的最後,其後爲消息體,其它域的順序可以隨意安排。

消息體Body是多個不同類型的多媒體對象組成的,每個對象佔據一個部分——Part(參見RFC2387標準),根據各個部分是否有序,消息的組裝方式分爲:

  • .application/vnd.wap.multipart.mixed:所有的消息內容混合在一起,沒有時間上的順序,終端同一時間一次就把所有的消息內容顯示出來。
  • .application/vnd.wap.multipart.related:消息內容的各部分之間有一定的關係,該關係可能是顯示時間上的先後,或者顯示位置的不同,等等。這使得消息能夠像“幻燈片”一樣的顯示。

消息體的內容組成

 

在application/vnd.wap.multipart.mixed類型的PDU中,僅包含有組成MM的所有多媒體內容,而在application/vnd.wap.multipart.related類型的PDU中還會包括Presentation——即消息內容的顯示控制部分,該部分使用SMIL標記語言編寫,用來描述MM中各部分的播放次序,顯示/播放時間,結束時間以及在屏幕中顯示位置,等控制信息

通常,Presentation部分是消息體的第一個part,若不是則必須使用start字段指出其所在位置,Presentation部分並不會被顯示出來,而僅僅是讓終端根據它獲取一些控制信息,這些信息決定了其它內容的顯示大小、先後順序、位置等

 

最後採用MIME標準(Multipurpose Internet Mail Extensions-多用途互聯網郵件擴展)將完整的MM(包括:SMIL文本、圖像、聲音、視頻等各個獨立部分)打包封裝在一起,併發送。MIME標準定義在RFC2045RFC2046RFC2047RFC2048RFC2049等多個RFC標準之中。

 

MM的二進制編碼封裝

大多數情況下,MM都基於WAP協議進行傳輸,它將MMS PDU被封裝在WSP/PDU之中 作爲WSP的消息體進行傳輸,並採用WAP/WSP協議作爲傳輸內容的二進制編碼(binary encoding)機制,進行消息的封裝(Encapsulation)。

在OMA-TS-MMS-ENC-V1_3-20080128-C.pdf文檔所在規範中,詳細定義了每個PDU所涉及的Header域和值,以及爲它們分配的二進制碼的一一對應關係。採用此二進制編碼規範,節約了無線領域的帶寬資源,並最優化其在空中傳播的數據量。

具體對應關係請參閱相關文檔。


發佈了28 篇原創文章 · 獲贊 2 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章