cdma pdu解析终极文档

来源:互联网 发布:斧子演示 mac 编辑:程序博客网 时间:2024/06/05 20:35

0000021002040602448d159e240600fc08100003200010010910461c58d8b266a918

 

00  message type, point to point

 

00                                teleservice id

02                                length

1002                              value

04                                address

06                                length

02448d159e24                             address value

06                                reply option

01                                length

fc                                 value

08                                bearer data

10                                length <hex 16>

0003200010010910461c58d8b266a918 value

Namely , id + length + value

<PS:师父随手教我一个具体例子>

 

CDMA短信PDU包解析

 

SMS Submit Message(发送短信):

TPDU为:0000021002040702C4CC484898580601FC08220003200010010A104F88307C61F106C41004060807311647090801000901000A01C0

所有短信PDU都是以Transport Layer Messages的TPDU包来看

00

MST(消息类型):00表示点对点短信   01表示小区广播短信   02表示短信确认

 

00021002

Teleservice Identifier(电信业务ID):

此字段为固定长度字段包括四个字节

参数ID号1个字节:00参数长度1个字节:02表示后面的Teleservice Identifier占2个字节

Teleservice Identifier:1002(十进制为4098表示CDMA Cellular Messaging Teleservice)

 

040702C4CC48489858

Address Parameters(地址参数字段):

此字段为可变长度

参数ID号1个字节:04表示目的地址(接收方号码) 02表示发起方地址(发送方号码)

参数长度1个字节:07表示后面的数据占7个字节

号码编码模式1bit:0表示使用4bit的未知编码方案的DTMF编码 1表示使用8bit的指定编码方案的8bit编码

号码地址模式1bit:0表示使用ANSI TI.607定义的地址  1表示使用数据网络地址格式

号码类型0或者3个bit:如果号码编码模式为0,此字段忽略

号码编码方案0或者4个bit:如果号码编码模式为0或者号码地址模式为1,此字段忽略

号码个数8bit:指示号码字符个数

号码数字或者字符的编码:4bit或者8bit编码

填充字段0到7bit:保证地址参数字段为整数个字节,填充为0

将02C4CC48489858转化为2进制数据:0000 0010 1100 0100 1100 1100 0100 1000 0100 1000 1001 1000 0101 1000

再按字段组合:0 0 00001011 0001 0011 0011 0001 0010 0001 0010 0010 0110 0001 0110 00

从上面的字段组合可以看出:

号码编码模式取0表示使用4bit编码

号码地址模式取0表示使用ANSI TI.607定义的地址

由于号码编码模式取0没有号码类型和号码编码方案

号码个数为11个

号码为13312122616

填充字段为00

 

 

 

 

 

0601FC

Bearer Reply Option(承载应答选项字段):此字段为固定长度

参数ID号1个字节:固定为06

参数长度1个字节:固定为01表示后面的数据占1个字节

FC二进制:11111100

应答序列号6bit:取值范围为000000~111111

填充字段2bit:保证参数字段为整数个字节,填充为00

 

08220003200010010A104F88307C61F106C41004060807311647090801000901000A01C0

Bearer Data(承载数据字段):此字段为可变长度

参数ID号1个字节:固定为08

参数长度1个字节:22表示后面的数据占34个字节

参数数据字段长度为整数个字节:承载的数据为0003200010010A104F88307C61F106C41004060807311647090801000901000A01C0

自此Transport Layer Messages的PDU包头信息已说明完毕,传输层承载的数据0003200010010A104F88307C61F106C41004060807311647090801000901000A01C0即为Teleservice Layer的PDU包

 

下面对Teleservice Layer的PDU包0003200010010A104F88307C61F106C41004060807311647090801000901000A01C0进行说明:

0003200010

MSI(消息ID):此字段为固定长度字段包括四个字节

参数ID号1个字节:00

参数长度1个字节:03表示后面的数据占3个字节

消息类型字段4bit:0000保留  0001表示接收短信(NW到MS)  0010表示发送短信(MS到NW)  0011表示取消发送(MS到NW)  0100表示接收确认(NW到MS)  0101表示用户确认(双向)  其它取值保留

信息ID字段16bit:相当于W产品短信中的MR字段,取值为0000到FFFF

保留字段4bit:设置为0000

0003200010表示短信为发送短信,信息ID为1

 

010A104F88307C61F106C410

UserData(2011-9-19 20:158此字段为可变长度

参数ID号1个字节:固定为01

参数长度1个字节:0A表示后面的数据占10个字节

信息编码方式字段5bit:00010表示编码方式为7bit的ASCII编码  00100表示编码方式为16bit的Unicode编码即UCS2编码

消息类型字段0或者8bit:只有当信息编码方式取值为00001时才存在此字段

字符个数8bit:指示信息字符个数,此处的例子信息字段有9个ASCII码字符

字符信息字段:为字符在指定的编码方式下的编码值

填充字段0到7bit:保证整个字段为整数个字节,填充0bit

将104F88307C61F106C410转化为2进制数据:0001 0000 0100 1111 1000 1000 0011 0000 0111 1100 0110 0001 1111 0001 0000 0110 1100 0100 0001 0000

再按字段组合:00010 00001001 1111000 1000001 1000001 1111000 1100001 1111000 1000001 1011000 1000001 0000

从上面的额字段组合可看出:

信息编码方式为7bit的ASCII编码

信息字段有9个ASCII码字符

对照ACSII码编码表可知包含的用户数据为:xAAxaxAXA

后面加上四个0bit填充

 

0406080731164709

Validity Period(短信有效期字段):此字段为固定长度

参数ID号1个字节:04表示使用绝对格式  05表示使用相对格式(这里以绝对格式为例)

参数长度1个字节:绝对格式为06表示后面的数据占6个字节  相对格式为01表示后面的数据占1个字节

年1个字节:如果年数小于或者等于1999,该值取年数-1900;如果年数大于或者等于2000,该值取年数-2000。例子中为08表示为2008年

月1个字节:设置为1到12中的值。07表示7月

日1个字节:根据月份进行设置。31表示31日

小时1个字节:16表示16时

分钟1个字节:47表示47分

秒1个字节:09表示9秒

注意:所有的日期和时间字段都包含两个BCD码,例如年字段为93,则应表示为10010011即为16进制的93

 

080100

Priority Indicator(短信优先级字段):此字段为固定长度

参数ID号1个字节:固定为08

参数长度1个字节:固定为01表示后面的数据占1个字节

优先级字段2bit:00表示Normal  01表示Interactive  10表示Urgent  11表示Emergency

保留字段6bit:设置为000000

 

090100

Privacy Indicator(短信密级字段):此字段为固定长度

参数ID号1个字节:固定为09

参数长度1个字节:固定为01表示后面的数据占1个字节

优先级字段2bit:00表示Not restricted  01表示Restricted  10表示Confidential  11表示Secret

留字段6bit:设置为000000

 

0A01C0

Reply Option(应答选项):此字段为固定长度

参数ID号1个字节:固定为0A

参数长度1个字节:固定为01表示后面的数据占1个字节

用户确认请求字段1bit:1表示要求接收方用户手动确认  0表示不要求接收方用户手动确认  (这里的接收确认是点对点短信的一种,相当于W产品中的RP-Ack)

接收确认请求字段1bit:1表示要求网络发送接收确认  0表示不要求网络发送接收确认  (这里的接收确认是点对点短信的一种,相当于W产品中的短信状态报告)

读短信确认请求字段1bit:1表示要求接收方用户发送短信已读确认  0表示不要求用户发送短信已读确认  (这里的接收确认是点对点短信的一种,CDMA协议有相关的规定,W协议中未规定此项功能)

保留字段5bit:设置为00000

 

最后使用AT命令AT^HCMGS=<length>发送PDU短信,这里的<length>为整个TPDU包所占的字节数

 

 

 

 

 

SMS Deliver Message(接收短信):

TPDU为:0000021002020702C4CC4848985806012408220003100010010A104F88307C61F106C41003061104161701270801000901000A01C0

 

00

MST(消息类型):与发送短信一样

 

00021002

Teleservice Identifier(电信业务ID):与发送短信一样

                                   

020702C4CC48489858

Address Parameters(地址参数字段):参考发送短信TPDU的说明,只是参数ID号为02表示为发送方的地址

 

060124

Bearer Reply Option(承载应答选项字段): 各字段的意义与发送短信一样,只是这里的ID设置为36,只在传输层其到消息参考的作用,与后面的Reply Option字段没有必然的联系

 

08220003100010010A104F88307C61F106C41003061104161701270801000901000A01C0

Bearer Data(承载数据字段):与发送短信一样

 

0003100010

MSI(消息ID):参考发送短信TPDU的说明,只是参数消息类型字段为0001表示接收短信(NW到MS)

 

010A104F88307C61F106C410

UserData(用户数据字段):与发送短信一样

 

0306110416170127

Message Center Time Stamp(短信中心时间戳):此字段为固定长度

参数ID号1个字节:固定为03

参数长度1个字节:固定为06表示后面的数据占6个字节

年1个字节:当对年数进行计算时,如果年数在96-99之间包括96和99,则实际年数加上1900;如果年数在00-95之间包括00和95,则实际年数加上2000;即可表示的年数范围为1996-2095。这里的取值为11表示为2011年

月1个字节:设置为1到12中的值。04表示4月

日1个字节:根据月份进行设置。16表示16日

小时1个字节:17表示17时

分钟1个字节:01表示1分

秒1个字节:27表示27秒

注意:所有的日期和时间字段都包含两个BCD码,例如年数为1996,则年数字段为96,则应表示为10010110即为16进制的96

                                            

080100

Priority Indicator(短信优先级字段):与发送短信一样

 

090100

Privacy Indicator(短信密级字段):与发送短信一样

 

0A01C0

Reply Option(应答选项):与发送短信一样

 

注意:接收短信的TPDU包可能不会包含上面所有的字段,这取决于发送短信和网络,按照实际接收的TPDU包进行解析即可

 

 

 

SMS Delivery Acknowledgment(短信状态报告):

TPDU为:

 

00

MST(消息类型):与发送和接收短信一样

 

00021002

Teleservice Identifier(电信业务ID):与发送和接收短信一样

 

020702C4CC48489858

Address Parameters(地址参数字段):与接收短信一样为发送方的地址

 

060116

Bearer Reply Option(承载应答选项字段):各字段的意义与发送和接收短信一样,只是这里的ID设置为22

 

 

Bearer Data(承载数据字段):与发送和接收短信一样

 

0003400010

MSI(消息ID):参考发送短信TPDU的说明,只是参数消息类型字段为0100表示接收确认(NW到MS)

 

 

 

UserData(用户数据字段):与发送短信一样,在小网下如果短信发送成功UserData为The message you sent to 8618988168301 has been delivered successfully

                         

也可以在文本短信模式下发送短信观察网络返回的UserData的信息

 

 

Message Center Time Stamp(短信中心时间戳):与接收短信一样

 

原创粉丝点击