分类: IT业界
2013-04-07 11:13:55
原文地址:基于WSP/WTP的MMS传输(2)——MMS的传输模型 作者:duanqz
首先要确认的一点是,一条彩信最终是通过PDU 的形式传递给彩信服务中心的,如图三所示。
MMS PDU 包括MM 体和MMS HEADER ,完整的MMS 信息被包含在MMS PDU 之中,采用多媒体邮件扩展MIME 方式打包。一个MMS PDU 被称为MMS 请求或MMS 响应,下面的M-Send.req 、M-Notification.ind 都是指的MMS PDU。MMS Header 包含接收方号码或email 地址、主题、发送者信息等控制信息。在基于WAP 的传输方式中,MMS PDU 被封装在WSP PDU 之中,作为WSP 的消息体传输。WSP PDU 的内容类型(Content type )必须被指定为application/vnd.wap.mms-message ,用以指明客户端应该进行的处理操作,它可以将多媒体部分的内容与显示控制部分的内容封装成为一个消息体。WSP PDU 最后被封装在WTP PDU 中,作为WTP 的数据部分发送到WAP 网关,这里要注意,前面说过,MMS 客户端通过WAP Gateway 和彩信服务中心交互的,所以,最后的WTP PDU 是发给WAP Gateway 而不是彩信服务中心。
对彩信客户端实现者来说,我们主要关心:彩信发送方与MMS Proxy-Relay 之间的交互和彩信接收方和MMS Proxy-Relay 之间的交互,这包括下列几个过程。下面的示例图中,如无特别说明,MMS Client 指彩信的发送方,MMS Proxy-Relay 指彩信服务中心,MM Message Recipient 指彩信的接收方。
发送过程
彩信发送方把包括彩信内容的M-Send.req 包通过标准的WSP/HTTP POST 请求发送给MMS Proxy-Relay ,M-Send.req 作为POST 方法的消息体。POST PDU 的HEADER 中包括支持MMS 客服端的彩信服务中心地址(移动的是 )。MMS Proxy-Relay 在收到MMS 后会给发送方一个M-Send.conf 的确认消息包。彩信服务中心在把接收通知发送给接收方以后,彩信服务中心会给发送方一个M-Delivery.ind 回执包。关于这些包的格式和编码,我会在后面详细的说明。
图4 mms 的发送过程
通知
为了把彩信投递给接收方,MMS Proxy-Relay 要通过PUSH 协议给接收方发送一条彩信通知消息(M-Notification.ind ),这个消息通常是一条特殊短信,以WDP 编码的方式通过短息服务中心发给接收方,里面包含彩信的所在位置URL 和其它的一些信息(如彩信有效期等)。接收方接到通知短信后通过GPRS 给彩信中心一个响应(M-NotifyResp.ind ),这个响应里面有一个状态标志(X-Mms-Status ),指明是立即接收还是延迟接收该彩信。这个响应是在接收方接收该彩信之前给还是接收后给,取决于是立即接收还是延迟接收。
图5 MMS 通知发送过程
接收彩信
接收方从彩信通知中取出URL ,然后通过标准的WSP/HTTP GET 请求从MMS Proxy-Relay 上获取彩信。请求成功的话,服务器会给接收方一个包含该彩信内容的响应包(M-retrieve.conf )。接收方再给彩信服务中心一个确认接收信息。如果接收方是在彩信通知到达后立即接收该彩信,则M-NotifyResp.ind 是在MMS Proxy-Relay 给出M-retrieve.conf 响应后由接收方发给 MMS Proxy-Relay 的,立即接收过程如图6 所示。
图6 彩信的立即接收过程
图7 表示的是延迟接收过程
图7 彩信的延迟接收过程
彩信回执
当MMS Proxy-Relay 成功的通知彩信接收方后,它会给彩信发送方发送一个消息表明彩信投递成功。
图8 彩信回执的发送
彩信阅读回执
彩信阅读回执是一条新彩信,它的传递过程和普通彩信没有什么差别,只是不能再有阅读回执。彩信的整个传输过程如图9 所示
图9 彩信的传输过程
上面所说的只是基本的操作,另外还支持的操作有转发(Forward Request )、阅读报告(Read Reports)、删除、消息盒子(MMBox )操作等等,具体情况可以参照OMA 的多媒体消息服务客户传输说明标准文档OMA-TS-MMS-CTR-V1_2-20031215-C.pdf 或WAP-206-MMSCTR-20020115-a.pdf ,前一个文档可以到官方网站 免费下载。后一个可以到 上免费下载。