Wap push over sms 实践
author:clapton_xpAThotmailDOTcom 20060323
通过短信进行点对点的WAP PUSH,本质上来说应该是发送一个wap页面(WBXML)到接收方,里面含有一段文字和一个url链接。
在发送端采用PDU模式发送,编码是UCS2。
整个发送的包大部分内容都是固定的,只需要对几个地方根据希望发送的内容进行一下替换即可。
我参考的例子是这样的,只用说明中红色的部分是需要变化的:
0051000BA13108086406F600F5A7850B05040B8423F0000303010129060603AE81EA8DCA02056A0045C6080C033231312e3133362e3135332e33302f776170707573682f70757368496e6465782e6a73703f7075736849643d3035303531313134313630353231000103E8AFB7E782B9E587BBE4BBA5E4B88BE993BEE68EA5E88EB7E58F96E5BDA9E4BFA1E58685E5AEB9000101
00 SMSC 地址信息的长度 00 表示用手机上设置短信中心号码, PDU 串的 “SMSC 址格式 ” 段和 “SMSC 地址 ” 段将省去
51 基本参数 (TP-MTI/VFP) 不要求发送回复
00 消息基准值 (TP-MR)
0B 对方电话的长度
A1 目标地址格式 A1 表示为国内格式
3108086406F6 目标地址,补 ‘F’ 凑成偶数位后奇偶位互换 (因为手机号码是 11 位,需要补一个 F ,再将奇偶位互换,比如 12345678901 需要变成 2143658709F1 )
00 协议标识 (TP-PID) 是普通 GSM 类型,点到点方式
F5 用户信息编码方式 (TP-DCS)
A7 有效期 (TP-VP)
85 用户信息长度 (TP-UDL) (此处是从下面的0B开始所有的字节数/2对应的十六进制数)
0B WAP PUSH 头部的总长度
05040B8423F0 表示接下来是一个 WAP PUSH
00 表示是 Concatenated Short Messages
03 长度
03 reference number
01 表示分成 1 个短信发送
01 当前包的序号
29060603AE81EA8DCA WSP
02 标记位
05 -//WAPFORUM//DTD SI 1.0//EN
6A UTF-8
00 标记开始
45
C6
08
0C href=/"http://
03 字符串开始
3231312e3133362e3135332e33302f776170707573682f70757368496e6465782e6a73703f7075736849643d3035303531313134313630353231 URL (编码过的 URL ,不带 http:// )
00 URL 字符串结束
01 >
03 内容描述字符串开始
E8AFB7E782B9E587BBE4BBA5E4B88BE993BEE68EA5E88EB7E58F96E5BDA9E4BFA1E58685E5AEB9 内容描述字符串 (编码过的文字内容)
00 内容描述字符串结束
01
01
AT指令发送时:
at+cmgf=0
//
设置发送为二进制模式
OK
at+cmgs=93
//
十进制的数字,值为
(
上面生成的一大串的字节数
/2)-1
,还没搞清为啥要减一
> 0051000BA1。。。。。。。(就是那一大串了) Ctrl+Z
+CMGS: 14
OK
发送成功
―――――――――――――――――――――――――――――――
参考资料:
基于短信网关WAP推送的实现
http://www.spforum.net/spyy/Content.asp?iID=24868
AT COMMANDS INTERFACE GUIDE
http://www.sendsms.com.cn 有下载
手机串口发送wap-push的pdu编码类
http://spaces.msn.com/jinji/blog/cns!3843DA5271ADAAD3!131.entry
[小学堂]sms 发送 wap push的方法和格式!
http://www.teeta.com/ttweb/User/icedot/2005-02/13805.html