PDU格式详解
发送⽅PDU 格式SMS-SUBMIT-PDU (Mobile Originated)
元素名称长度描述
SCA          Service Center Address    1-12    短消息服务中⼼号码
PDU-Type Protocol Data Unit            1          协议数据单元类型
MR            Message Reference        1          所有成功的短信发送参考数⽬(0..255)
OA            Originator Address            2-12    发送⽅地址(⼿机号码)
DA            Destination Address          2-12    接收⽅地址(⼿机号码)
PID          Protocol Identifer              1        参数显⽰消息中⼼以何种⽅式处理消息内容(⽐如FAX,Voice)
DCS        Data Coding Scheme      1        参数显⽰⽤户数据编码⽅案
SCTS      Service Center Time Stamp 7      消息中⼼收到消息时的时间戳
VP          Validity Period                  0,1,7    参数显⽰消息有效期
UDL        User Data Lenghth          1          ⽤户数据长度
UD          User Data                        0-140    ⽤户数据
前⼏天对接收⽅的数据格式进⾏了分析,现在代码基本上可以处理收到的各种类型短信息。可是发短信给10086时却总是失败,google之,⽹上有遇到类似问题,但貌似没有具体的解决⽅案。
开始时怀疑是⼿机号码类型问题,尝试了没有成功。然后怀疑是字符编码格式问题,尝试了也没有成功。直⾄将PDU的发送⽅格式仔仔细细的看了好⼏遍,最后怀疑是短信中⼼号码处理问题,处理后终于发送成功,倍感欣慰。此章主要仔细介绍发送⽅PDU格式,下章解决发送10086短信失败问题。
⽰例:0011000D91685170873576F40008A7044E2D56FD
号码:150********
内容:中国
下⾯来逐段分析:
1、SCA:00
同接收⽅SCA格式,可见我另外⼀篇⽂章 SMS-DELIVER-PDU (Mobile Terminated)中的 SCA 格式。
当SCA中的Len 被设置为0x00,并不提供后⾯的部分,那么终端设备将读取SIM 中设置的SCA 填充到SMS-PUD中,通
过“AT+CSCA=xxxxx”指令可以设置SIM 卡中存储的SCA 值。此处的Len为0,所以不⽤设置短信中⼼号码。
2、PDU Type:11
有效期格式以整型形式提供(相对的),SMS-SUBMIT
3、MR:00
设为 00 即可
4、DA 接收⽅地址:0D91685170873576F4
DA的格式与OA的格式是⼀样的,同样可见我的⽂章: SMS-DELIVER-PDU (Mobile Terminated) 中
OA 的格式
5、PID协议标识 (Protocol-Identifier):00
对于标准情况下的下 MS-to-SC 短消息传送,只需设置 PID 为 00
unicode文件格式
6、DCS 数据编码⽅案:08
同样可见我的⽂章: SMS-DELIVER-PDU (Mobile Terminated) 中 DCS 的格式
7、VP 信息有效期:A7
此处时间为24⼩时,具体计算⽅法请看最后的附件⽂档。
8、UDL ⽤户数据长度:04
此处显⽰为4个字节,且采⽤的为USC2(16bit),传送双字节字符集格式:
9、UD ⽤户数据:4E2D56FD
由于采⽤的为USC2(16bit),所以实际Unicode编码为:0x4E,0x2D.0x56,0xFD
参考:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。