金笛工业手机论坛  

返回   金笛工业手机论坛 > 开发者乐园 > 短信开发资料

短信开发资料 短信开发技巧,代码分析

回复
 
LinkBack 主题工具 显示模式
旧 2012-09-02   #1 (permalink)
论坛管理员
 
admin 的头像
 
注册日期: 2009-06-30
帖子: 861
admin 的声望功能已被禁用
默认 WAP协议研究笔记—彩信的传输

WAP协议研究笔记—彩信的传输
分类: 40.Linux嵌入式开发 2006-10-30 22:04 9573人阅读 评论(7) 收藏 举报
WAP协议研究笔记—彩信的传输

转载时请注明出处和作者联系方式:http://blog.csdn.net/absurd
作者联系方式:Li XianJing <xianjimli at hotmail dot com>
更新时间:2006-12-19

我们知道,彩信(MMS)和WAP浏览器是WAP协议的两大主要应用。WAP协议有点复杂,也算是SmartPhone中的核心技术之一吧,它包括WDP/WTP/WSP这一套传输协议,也包括WML/和SMIL这样的内容表示协议。去年花了一点时间去研究它,后来该任务取消了,所以没有搞得太透彻。今年要真正使用了,现在继续研究,主要侧重于它的实现。这里记录一些研究笔记,本文是关于彩信的。

彩信的架构。彩信和其它WAP应用的架构差不多,都要经过WAP Gateway中转。要注意的是彩信并非直接投递给接收方,而是像邮件一样,先发送给一个中间服务器MMS Proxy-Relay。MMS Proxy-Relay暂时保存彩信,然后通过push协议给彩信接收方发送一个通知,彩信接收方收到通知后从MMS Proxy-Relay上获取彩信内容。MMS Client和WAP Gateway之间用WAP传输协议传输,而WAP Gateway和MMS Proxy-Relay之间走传统的TCP/IP协议。

彩信的交互过程。对彩信客户端实现者来说,我们主要关心:彩信发送方与MMS Proxy-Relay之间的交互和彩信接收方和MMS Proxy-Relay之间的交互,这包括下列几个过程。
l 发送过程。这是彩信发送方把彩信发送给MMS Proxy-Relay的过程,MMS Proxy-Relay在收到彩信后会给发送方一个确认消息。


l 通知过程。为了把彩信投递给接收方,MMS Proxy-Relay要通过PUSH协议给接收方发送一条彩信通知消息,这个消息通常是一条特殊短信,里面包含彩信的位置URL。

l 彩信接收。接收方收到彩信通知后,从中取出URL,然后通过标准的HTTP GET请求从MMS Proxy-Relay上获取彩信。


l 彩信回执。当MMS Proxy-Relay成功的通知彩信接收方后,它会给彩信发送方发送一个消息表明彩信投递成功。


l 彩信阅读回执。彩信阅读回执是一条新彩信,它的传递过程和普通彩信没有什么差别,只是不能再有阅读回执。

彩信的PDU。PDU即协议数据单元,对应前面每种消息的消息格式。彩信的PDU和HTTP协议极为类似,当然相对来说要简单多了。它定义了一些常用的消息域,有的消息域是公有的,每种消息都可以使用,有的消息域是专用的,只有特定的消息才能使用。除了常用的消息域外,也可以自定义消息域,自定义消息域以X-打头,但不能以X-Mms-打头。常用的消息域如:
l X-Mms-Message-Type
l X-Mms-Transaction-ID
l X-Mms-MMS-Version
l Date
l From
l To
l Cc
l Bcc
l Subject
l X-Mms-Message-Class
l X-Mms-Expiry
l X-Mms-Delivery-Time
l X-Mms-Priority
l X-Mms-Sender-
l Visibility
l X-Mms-Delivery-Report
l X-Mms-Read-Reply
l Content-Type

PDU的类型有:
l 发送请求。m-send-req
l 发送确认。m-send-conf
l 彩信通知。m-notification-ind
l 通知回应。m-notifyresp-ind
l 获取彩信回应。m-retrieve-conf
l 接收确认。m-acknowledge-ind
l 彩信回执。m-delivery-ind


获取彩信只是一个普通的HTTP GET请求,而没有专门的PDU。

彩信的PDU编码。彩信PDU在语义上与HTTP协议类似,但是其编码方式并不一样,为了充分利用带宽,彩信PDU采用二进制方式编码。其编码规则很简单,预定义的消息域的KEY都有唯一的单字节编码,如:
Key
编码

Bcc
0x01

Cc
0x02

Content-Location
0x03

Content-Type
0x04

Date
0x05

Delivery-Report
0x06

Delivery-Time
0x07

Expiry
0x08

From
0x09

Message-Class
0x0A

Message-ID
0x0B

Message-Type
0x0C

MMS-Version
0x0D

Message-Size
0x0E

Priority
0x0F

Read-Reply
0x10

Report-Allowed
0x11

Response-Status
0x12

Response-Text
0x13

Sender-Visibility
0x14

Status
0x15

Subject
0x16

To
0x17

Transaction-Id
0x18





而消息域的Value部分,如果只有几个固定的可选值,这几个值也用单子节的编码,由于这些值只出现在特定的上下文中,所以无需要全局唯一。

参考资料:
http://www.wapforum.org
http://www.kannel.org
__________________

让世界倾听我们的笛声
admin 当前离线   回复时引用此帖
回复

书签


当前查看此主题的会员: 1 (0 位会员和 1 位游客)
 

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码
Trackbacks are 启用
Pingbacks are 启用
Refbacks are 启用



所有时间均为北京时间。现在的时间是 19:02


Powered by vBulletin® 版本 3.8.3
版权所有 ©2000 - 2024,Jelsoft Enterprises Ltd.