PDU解析

2024-03-30 20:48
文章标签 解析 pdu

本文主要是介绍PDU解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

A.收到PDU                SMS-DELIVER Mobile Terminated

 

收到DELIVER-PDU格式

SCA

PDU TYPE

OA  

PID    

DCS       

SCTS    

UDL     

UD      

服务中心号码

 

原地址

协议表示

编码标准

服务中心时间戳

用户数据长度

用户数据

 

手机显示的内容为

0751后共有35个汉字字符,这些字需要72个字节的UD

 0751

 浙江联通欢迎您来到杭州。客户服务热线1001。地址:杭州市延安路501

SIM卡中存储的PDU编码为

 0891683110300605F02404815017000810805031648523486D596D5F8054901A6B228FCE60A867655230676D5DDE30025BA26237670D52A170ED7EBF0031003000300031300257305740FF1A676D5DDE5E025EF65B898DEF00350030003153F7

 

具体分析如下

0891683110300605F02404815017000810805031648523486D596D5F8054901A6B228FCE60A867655230676D5DDE30025BA26237670D52A170ED7EBF0031003000300031300257305740FF1A676D5DDE5E025EF65B898DEF00350030003153F7

 

1. SCA服务中心号 : 08 91 683110300605F0

08

91

683110300605F0

Length (长度)

Tosca(服务中心类型)

Address(地址)

SCA(服务中心号码)

       长度:

              08SCA区去除08外后面的字节数,单位是字节。如上91683110300605F0,共

              8字节。但是,当长度值为00时,后面SCA区将只有00,后面的号码类型和地址

              都不存在,发送短消息时从SIM卡读出SCA号码,此号码要用atcsca=×××

              设定。

       Tosca

              服务中心号发类型。91为国际形,80为国内形号码。

       Address

              地址每个字节先用底位4bit,后用47bit

              如果号码个数为奇数个,最后一个字节的47bit全部设置为1

              FxH。如号码1234567,变化好以后就是“21 43 65 F7”。

 

2PDU type 24

 

BIT

7

6

5

4

3

2

1

0

参数

RP

UDHI

SRI

-

-

MMS

MTI

MTI

 


3. OA短消息原发手机地址

 

04

81

5017

Length (长度)

Tosca(地址类型)

Address(地址)

DA(目标地址)

2――12字节

       Length:为地址数字个数。

       Toda:地址类型。91为国际型,81为国内型。

       Address:地址编码方法与SCA相同。一个字节先用低4bit。奇数个号码最后一位高四位设为F

 

4. PID协议标志 00

       是短消息传输层作为高层协议参考,或者是远程设备协同工作的标志。需要服务商支持。但是00是所有服务商都支持的。建议采用00H即可。

 

5. DCS数据编码方法 08

       表示数据编码方法和消息类别。一般为00H默认7位编码,等级号0UCS2编码0等级为08H,可以传输中文。

7

6

5

4

3

2

1

0

编码组

保留

X

X

X

       具体如下

 

编码组bit74

Bit30

00xx

 

 

 

 

 

 

 

 

 

 

 

 

 

Bit50文本未压缩;1GSM标准压缩

Bit40表示bit10是保留,没有消息列别;1表示有。

Bit1  Bit0   消息类别

0     0      Class0

0     1      Class1

1     0      Class2

1     1      Class3

 

Bit3   Bit2   字母表

0      0     默认字母表

0      1     8bit数据

1      0     UCS2编码

1      1     保留

       其余情况,暂不讨论。

Class0 :短消息直接显示到用户终端

Class1 :短消息存储在SIM卡上

Class2 :短消息必须存储在SIM卡上,禁止直接传输到终端

Class3 :短消息存储在用户设备上。

 

 

6. SCTS服务中心时间戳  10805031648523

       告诉目标用户短消息到达时间。为7个字节表示。

Year

Month

Day

Hour

Minute

Second

Time Zone

10

40

32

21

94

83

23

       表示:01423124938秒,时区表示本地时间和格林尼治标准时间差。

 

7. UDL用户数据长度 48 (即长度为71个字节的UD

1)如果用户默认7位编码。

A)如果没有用户数据头,此数字表示7bit的字符个数。

              B)如果有用户数据头,此数字表示包括用户数据头在内的7bit数据

       2)如果用8位编码表示用户数据区的字节数。有数据头信息,包括在内。

              如果为UCS2编码,则是用户数据区的字节数。

 

8. 用户数据(72个字节)

6D596D5F8054901A6B22

8FCE60A867655230676D

5DDE30025BA26237670D

52A170ED7EBF00310030

00300031300257305740

FF1A676D5DDE5E025EF6

5B898DEF003500300031

53F7

浙江联通欢迎您来到杭州。客户服务热线1001。地址:杭州市延安路501

596D  5F6C ……..

 

 

B.发送PDU                SMS-SUBMIT Mobile Originated

 

发送SUBMITPDU格式

SCA    

PDU-type          

MR    

DA    

PID   

DCS  

VP    

UDL     

UD    

服务中心号码

1字节

1

2-12

1

1

服务中心时间戳

用户数据长度

用户数据

 

PDU编码

0891683110300605F011000B813100923933F80000A802414243

 

具体分析如下

0891683110300605F011000B813100923933F80000A802414243

―――――――――――――――――――――

08Length

91Tosca

683110300605F0Address

―――――――以上为服务中心号码―――――  2-12字节

11F0PDU第一字节)   1字节

--------------------------------------------------------------

0BLength

81Toda

3119169083F8Address

---------------DA目标地址--------------------------------           2-12字节

00PID  ――――――――协议表示

00DSC ――――――――数据编码标准

A8VP ――――――――允许时间

06UDL ――――――――用户数据长度         ----以上4项均为1字节

――――――――――――――――――――――――――――――――

C9363C3CA603 : UD  用户数据             0-140字节

 

1. CSA服务中心号码:0891683110300605F0

       *见收到PDU格式中服务中心号码

 

2. PDU type 11

       发送的PDU,典型为11H

BIT

7

6

5

4

3

2

1

0

参数

RP   

UDHI   

SRR  

VPF   

VPF   

RD   

MTI   

MTI   

MTI  2bit

       消息类型。0001发。其余值参考SMS with the M20文档P.22

MMS 1bit

       短消息服务中心是否有更多短消息等待移动台。1有,0无。默认为1

SRI  1bit

       状态报告表示。0用户数据没有头信息,1有。一般为0

RP  1bit

       是否有恢复路径的表示。1有,0没有。一般为0

VPF  2bit

       重复信元丢弃。0通知服务中心碰到同源、同目的地、同样的MR的短消息接受。

                              1抛弃,此时将在短消息提交报告中返回一个适当的FCS值。

SRR  2bit

       状态报告要求。

 

3. MR短消息参考:00

       1个字节。表示移动台向短消息服务中心提交的短消息序号,从0255

一般移动模块会自动改动,所以默认为00

 

4. DA目的手机地址:0B813100923933F8

       短消息目的地址,参考OA

 

5. PID协议标志:00

       是短消息传输层作为高层协议参考,或者是远程设备协同工作的标志。需要服务商支持。但是00是所有服务商都支持的。建议采用00H即可。

 

6. DCS数据编码方法:00

       表示数据编码方法和消息类别。一般为00H默认7位编码,等级号0UCS2编码0等级为08H,可以传输中文。

7

6

5

4

3

2

1

0

编码组

保留

X

X

X

       具体如下

 

编码组bit74

Bit30

00xx

 

 

 

 

 

 

 

 

 

 

 

 

 

Bit50文本未压缩;1GSM标准压缩

Bit40表示bit10是保留,没有消息列别;1表示有。

Bit1  Bit0   消息类别

0     0      Class0

0     1      Class1

1     0      Class2

1     1      Class3

 

Bit3   Bit2   字母表

0      0     默认字母表

0      1     8bit数据

1      0     UCS2编码

1      1     保留

       其余情况,暂不讨论。

Class0 :短消息直接显示到用户终端

Class1 :短消息存储在SIM卡上

Class2 :短消息必须存储在SIM卡上,禁止直接传输到终端

Class3 :短消息存储在用户设备上。

 

7. VP合法时间:A8

       表示短消息服务中心在接到短消息后,在没有发到目标机前可以保证短消息存在的时间。其格式在F0中的VPF中设定,一般是相对值10B

VP

相对合法时间

00----8F

VP1*5

90----A7

12小时+(VP143*30

A8----C4

VP166*1

C5----FF

VP192*1

       如果是绝对时间,即VPF11B,则VP区和SCTS相同。

 

8 UDL用户数据长度:02

       参考发送PDU格式中UDL

 

9. UD用户数据长度 414243

   参考发送PDU格式中UD

 

举例:

发送:发送内容为Impct 的短消息到科汇西安办事处的FAE的手机上,手机号为13002993338,该手机的电信营运商为中国联通。则应发送如下内容

       0891683110801505F011000B813100923933F80000A806C9363C3CA603

 

具体解释如下:

0891683110801505F0 CSA

11 PDU

00 MR

0B813100923933F8 DA

00

00 DCS

A8 VP

06 UDL

C9363C3CA603 UD

 

PDU长度为20atcmgs的参数length

 

AT+CMGS=20

> 0891683110801505F011000B813100923933F80000A806C9363C3CA603->

+CMGS:67

 

OK

 

注:在输入完短消息内容后“->”为输入一个CtrlZ,作为操作的结束符。

 

*以上操作举例在超级终端完成。

这篇关于PDU解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/862540

相关文章

Java中Redisson 的原理深度解析

《Java中Redisson的原理深度解析》Redisson是一个高性能的Redis客户端,它通过将Redis数据结构映射为Java对象和分布式对象,实现了在Java应用中方便地使用Redis,本文... 目录前言一、核心设计理念二、核心架构与通信层1. 基于 Netty 的异步非阻塞通信2. 编解码器三、

Java HashMap的底层实现原理深度解析

《JavaHashMap的底层实现原理深度解析》HashMap基于数组+链表+红黑树结构,通过哈希算法和扩容机制优化性能,负载因子与树化阈值平衡效率,是Java开发必备的高效数据结构,本文给大家介绍... 目录一、概述:HashMap的宏观结构二、核心数据结构解析1. 数组(桶数组)2. 链表节点(Node

Java 虚拟线程的创建与使用深度解析

《Java虚拟线程的创建与使用深度解析》虚拟线程是Java19中以预览特性形式引入,Java21起正式发布的轻量级线程,本文给大家介绍Java虚拟线程的创建与使用,感兴趣的朋友一起看看吧... 目录一、虚拟线程简介1.1 什么是虚拟线程?1.2 为什么需要虚拟线程?二、虚拟线程与平台线程对比代码对比示例:三

一文解析C#中的StringSplitOptions枚举

《一文解析C#中的StringSplitOptions枚举》StringSplitOptions是C#中的一个枚举类型,用于控制string.Split()方法分割字符串时的行为,核心作用是处理分割后... 目录C#的StringSplitOptions枚举1.StringSplitOptions枚举的常用

Python函数作用域与闭包举例深度解析

《Python函数作用域与闭包举例深度解析》Python函数的作用域规则和闭包是编程中的关键概念,它们决定了变量的访问和生命周期,:本文主要介绍Python函数作用域与闭包的相关资料,文中通过代码... 目录1. 基础作用域访问示例1:访问全局变量示例2:访问外层函数变量2. 闭包基础示例3:简单闭包示例4

MyBatis延迟加载与多级缓存全解析

《MyBatis延迟加载与多级缓存全解析》文章介绍MyBatis的延迟加载与多级缓存机制,延迟加载按需加载关联数据提升性能,一级缓存会话级默认开启,二级缓存工厂级支持跨会话共享,增删改操作会清空对应缓... 目录MyBATis延迟加载策略一对多示例一对多示例MyBatis框架的缓存一级缓存二级缓存MyBat

前端缓存策略的自解方案全解析

《前端缓存策略的自解方案全解析》缓存从来都是前端的一个痛点,很多前端搞不清楚缓存到底是何物,:本文主要介绍前端缓存的自解方案,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、为什么“清缓存”成了技术圈的梗二、先给缓存“把个脉”:浏览器到底缓存了谁?三、设计思路:把“发版”做成“自愈”四、代码

Java集合之Iterator迭代器实现代码解析

《Java集合之Iterator迭代器实现代码解析》迭代器Iterator是Java集合框架中的一个核心接口,位于java.util包下,它定义了一种标准的元素访问机制,为各种集合类型提供了一种统一的... 目录一、什么是Iterator二、Iterator的核心方法三、基本使用示例四、Iterator的工

Java JDK Validation 注解解析与使用方法验证

《JavaJDKValidation注解解析与使用方法验证》JakartaValidation提供了一种声明式、标准化的方式来验证Java对象,与框架无关,可以方便地集成到各种Java应用中,... 目录核心概念1. 主要注解基本约束注解其他常用注解2. 核心接口使用方法1. 基本使用添加依赖 (Maven

Java中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例解析

《Java中的分布式系统开发基于Zookeeper与Dubbo的应用案例解析》本文将通过实际案例,带你走进基于Zookeeper与Dubbo的分布式系统开发,本文通过实例代码给大家介绍的非常详... 目录Java 中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例一、分布式系统中的挑战二