MMS是怎樣煉成的(二)封裝

來源:互聯網
上載者:User

一、
MMS

的封裝(
Encapsulation

)——
MIME

對於使用SMIL
語言描述的MMS
,在通過無線網路發送的時候,我們必須通過某種方式把SMIL
和附屬的內容封裝在一起,一邊能夠以一個unit
(整體)的形式發送出去,以便SMIL
檔案各個部分內容的reference
變得有效。


個解決的辦法就是MIME
(Multipart Internet Mail Extensions
)規範,這個規範的最初作用是在email

plain text
的主體中加入不同的內容。比如說,發送帶有附件的email
,這個時候你就使用了MIME
的規範。MIME
負責把所有的獨立的文本、
映像、聲音、視頻內容以及SMIL
檔案本身捆綁在一起,這個規範稱為MIME Encapsulation Aggregate Documents
,用
於告訴接受的終端這個MMS
的內容是相互相關(related to one another
)並且相互參考的
(referenced to one another
)。

 

1.        MIME

封裝樣本

下面是根據RFC
文檔給出的MIME
的封裝樣本:

Content-Type: multipart/related; boundary="boundary-example";<br /> type="text/html"<br />--boundary-example<br />Content-Type: text/html; charset="US-ASCII"<br />... ... <IMG SRC="fiction1/fiction2" mce_SRC="fiction1/fiction2"> ... ...<br />... ... <IMG SRC="cid:97116092811xyz@foo.bar.net" mce_SRC="http://mce_host/cid:97116092811xyz@foo.bar.net"> ... ...<br />--boundary-example<br />Content-Type: image/gif<br />Content-ID: <97116092511xyz@foo.bar.net><br />Content-Location: fiction1/fiction2<br />--boundary-example<br />Content-Type: image/gif<br />Content-ID: <97116092811xyz@foo.bar.net><br />Content-Location: fiction1/fiction3<br />--boundary-example--

  • Content-type


位於資訊頭部的content-type
用於通知接收的終端訊息的各個不同部分的內容是相互關聯的、並且可能是相互索引的(refer to one another
)。

  • Boundary



Boundary
用於分割各個不同的訊息part
。第一個部分是一個html
類型的訊息,這裡只是取得了相關的部分。第二和第三部分省略了實際的images
映像的實體。


  • Location and ID


在HTML
文本部分我們可以看到,我們可以利用兩種方式來索引訊息內容的不同部分。這兩種不同的方式是 content-ID 
和 content – Location



如果一部分的訊息體想通過content-ID
指向(refer to
)另外一部分的訊息體,可以使用“CID”.



關於MIME
的部分的資訊可以參考附錄中列出的RFC
文檔(RFC2387
和RFC2357
)。

 

2.        

利用
MIME

封裝
MMS

的樣本

下面給出一個利用MIME
封裝MMS
的樣本:

Content-Type: multipart/related;<br />Type="application/smil"; Start="<AAAA>";boundary="----=_Part_24362_271418.1110357304160"<br />------=_Part_24362_271418.1110357304160<br />content-type: text/x-vCalendar;Charset=UTF-8;Name="slide1.vcs"<br />content-id: <slide1.vcs><br />content-location: slide1.vcs<br />Content-Transfer-Encoding: base64<br />QkVHSU46VkNBTEVOREFSDQpWRVJTSU9OOjEuMA0KQkVHSU46VkVWRU5UDQpEVFNUQVJUOjIwMDUw<br />MzA4VDA5MDAwMFoNCkRURU5EOjIwMDUwMzA4VDEwMDAwMFoNClNVTU1BUlk7Q0hBUlNFVD1VVEYt<br />ODtFTkNPRElORz1RVU9URUQtUFJJTlRBQkxFOuaYr+WQpg0KQ0FURUdPUklFUztDSEFSU0VUPVVU<br />Ri04O0VOQ09ESU5HPVFVT1RFRC1QUklOVEFCTEU6QVBQT0lOVE1FTlRTDQpFTkQ6VkVWRU5UDQpF<br />TkQ6VkNBTEVOREFSDQo=<br />------=_Part_24362_271418.1110357304160<br />content-type: application/smil;Charset=UTF-8;Name="20050309163706.smil"<br />content-id: <AAAA><br />Content-Transfer-Encoding: base64<br />PHNtaWw+PGhlYWQ+PGxheW91dD48cm9vdC1sYXlvdXQgd2lkdGg9IjE3NiIgaGVpZ2h0PSIxNzQi<br />Lz48cmVnaW9uIGlkPSJmdWxsIiB3aWR0aD0iMTc2IiBoZWlnaHQ9IjE3NCIgbGVmdD0iMCIgdG9w<br />PSIwIiAvPjwvbGF5b3V0PjwvaGVhZD48Ym9keT48cGFyIGR1cj0iNXMiPjx0ZXh0IHNyYz0ic2xp<br />ZGUxLnZjcyIgcmVnaW9uPSJmdWxsIiAvPjwvcGFyPjwvYm9keT48L3NtaWw+<br />------=_Part_24362_271418.1110357304160--

給出的圖示說明各個部分之間的關係:

3.        

一個完整的
MIME

封裝
MMS

樣本

下表給出了一個完整的MIME
封裝MMS
的樣本:

MIME Object<br />Date: Fri, 14 Dec 2001 15:13:21 -0500 (EST)<br />X-Mms-Expiry: Thu, 20 Dec 2001 21:52:25 -0500 (EST)<br />X-Mms-Delivery-Time: Wed, 19 Dec 2001 21:52:25 -0800 (PST)<br />X-Mms-Priority: Normal<br />X-Mms-Sender-visibility: Show<br />X-Mms-Message-Class: Personal<br />X-Mms-Delivery-report: yes<br />X-Mms-3GPP-MM3-Version: 4.3.0<br />From: mms-email-sample@sample-email.ericsson.com<br />To: +12345@mmc.sample-mms.ericsson.com<br />Subject: Sample SMIL<br />Mime-Version: 1.0<br />Content-Type: multipart/related; boundary="----<br />=_MIME_Boundary_MMS_Reference_Sample_001"<br /> MIME Headers</p><p>"----=_MIME_Boundary_MMS_Reference_Sample_001"<br /> MIME Start boundary</p><p>Content-ID: <index.smil><br />Content-Type: application/smil; charset="US-ASCII"; name=index.smil<br /><smil><br /><head><br /><layout><root-layout/><br /><region id="region1_2" top="0" left="0" height="100%" width="100%"/><br /><region id="region1_1" top="0" left="0" height="100%" width="100%"/><br /></layout><br /></head><br /><body><br /><par dur="2000ms"><br /><text src="Cid:image" mce_src="Cid:image" region="region1_2"/><br /></par><br /><par dur="2000ms"><br /><img src="Cid:txt" mce_src="Cid:txt" region="region1_1" fit="fill"/><br /></par><br /></body><br /></smil><br /> SMIL document</p><p>"----=_MIME_Boundary_MMS_Reference_Sample_001"<br /> MIME boundary</p><p>Content-Type: text/plain; name=mms.txt<br />Content-Transfer-Encoding: 7bit<br />Content-ID: <txt><br />Content-Disposition: attachment; filename=mms.txt<br />This is a sample MMS message, for use as a reference.<br /> Text Document</p><p>"----=_MIME_Boundary_MMS_Reference_Sample_001"<br /> MIME boundary<br />Content-Type: image/gif; name=sample.gif<br />Content-Transfer-Encoding: base64<br />Content-ID: <image><br />Content-Disposition: attachment; filename=sample.gif<br />R0lGODlhZQBQAPcAAOYeAClUpyAtb/XNjlo8RqoUFHSa2ZCKjHiCWrzf/2iQ1J<br />m66Yeq4cXm/6ys<br /><entire encoded image not shown for the sake of brevity><br />kBiJkjiJlFiJlniJmJiJmriJnNiJnviJoBiKogh5AQEAOw==<br /> Image</p><p>"----=_MIME_Boundary_MMS_Reference_Sample_001"<br /> MIME boundary<br />


 

二、 MMS
的MIME
結構

綜述來說,每個MMS
資訊按照MIME
規範的基本結構如所示:



從圖示看出,每個MMS
都是由MMS Header
和MMS Body
組成,MMS Header
根據WAP-209
協議和RFC2387
的規定,由一系列的域組成,下表列出了部分的域(給出的示範的內容表示),其中有些是強制必須實現的(
用黑體表示)

X-Mms-Message-Type<br /> m-send-req</p><p>X-Mms-Transaction-ID<br /> 1234</p><p>X-Mms-MMS-Version<br /> 1.0<br />Date<br /> 星期五, 18 三月 2005 06:43:40 GMT<br />From<br /> mms-editor@toolkit<br />To<br /> 33333333333333</p><p>Cc<br /> 33333333333333</p><p>Bcc</p><p>Subject<br /> test</p><p>X-Mms-Message-Class<br /> Personal</p><p>X-Mms-Expiry<br /> 星期六, 19 三月 2005 06:43:40 GMT<br />X-Mms-Delivery-Time<br /> 星期五, 18 三月 2005 06:43:40 GMT</p><p>X-Mms-Priority<br /> low</p><p>X-Mms-Sender-Visibility<br /> Show</p><p>X-Mms-Delivery-Report<br /> No</p><p>X-Mms-Read-Reply<br /> No</p><p>Content-Type<br /> application/vnd.wap.multipart.related; start="<presentation-part>" type="application/smil"

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.