1、 手机 SMS PDU 格式参考手册 开发者指南 SMS with the SMS PDU-mode 翻译整理: 犬犬(心帆) E-Mail: 最终修定日期: -10-18 SMS with the SMS PDU-mode. 1 编者序... 3 版本变动历史... 4 1、绪论... 5 2、缩写词... 6 3、设置指令... 7 3.1 服务中心号码 (+CSCA) 7 3.2 选择消息服务 (+CSMS) 7 3.3 选择消息格式 (+CMGF) 8 4、SMS文本模式... 9 5、SMS P
2、DU模式... 9 5.1 发送方SMS-Submit (Mobile Originated) 9 5.1.1 向SIM卡存放区写入一条SMS (+CMGW) 9 5.1.2 发送SIM卡存放区中一条SMS (+CMSS) 10 5.1.3 直接从终端设置发送SMS (+CMGS) 11 5.2 接收方 SMS-DELIVER (Mobile Terminated) 12 5.2.1 列取消息 (+CMGL) 12 5.2.2 读取消息 (+CMGR) 12 5.2.3 删除消息 (+CMGD) 13 6、SMS PDU 基础组成元素... 13
3、 6.1 发送方PDU格式SMS-SUBMIT-PDU (Mobile Originated) 14 6.2 接收方PDU格式 SMS-DELIVER-PDU (Mobile Terminated) 14 6.3 SCA 短消息服务中心地址格式... 15 6.4 PDU Type(第一个八位位组)... 16 6.5 MR 信息参考 (Message Reference) 17 6.6 DA/OA 接收方地址和发送方地址... 17 6.7 PID 协议标识 (Protocol-Identifier) 18 6.8 DCS 数据编码方案 (DataCoding-Scheme)
4、 18 6.9 VP 信息使用期(Validity Period)... 19 6.10 SCTS 服务中心时间戳(Service Center TimeStamp)... 19 6.11 UDL 用户数据长度 (User-Data-Length (Amount of Characters)) 19 7、常见 AT 指令... 20 8、PDU操作实例... 20 8.1 准备工作... 20 8.2 连接手机... 21 8.3 发送PDU SMS. 21 9、SMS 编码方案和编程实现... 24 附... 26 Message service error 26 e
5、rror codes: 26 默认字符表... 28 编者序 前些天QQ上 Delphi群里有些人做手机SMS相关项目,我就把本本中全部资料全部传给了她,可她还是有好些不明白地方,可能是我文档不是太清楚,以致误人子弟了吧!狂汗中!-_-||| 这个文章是出于-08,那时我正在山东做项目,也是相关手机SMS通信方面,因为手上只有英文资料,而组中组员需要汉字资料,所以有了它了。 再次打开这个文档,手触键盘时不禁感慨万千! -07-08,我由南京去山东,正值学生放暑假,这一天竟只买到了一张站票去河南商丘!1566次沪开郑,16车,22:30时,这一天,这一时,上天将我推到了一个女孩身边。
6、当第一眼遇着她那眼睛时,我凝滞了,就如很久未见好友,忽然间相逢,感觉是那么得亲切而没有隔阂,那时我从心底最深处笑了。:”) 这一夜我站到了清晨,终是斗胆地和她要了E-Mail,好怕怕,因为假如不这么子话,我知我是一定会后悔。其它已不敢再多问什么,最少我已知道了她是从苏州上车,应该是在苏州上学了。:-) 到了山东后,给她去了好些Mail,可一封全部没有回复,一切全部消失了。上天既然将我推到她面前,为何又如此快地收回呢?好后悔当初为何不再问她姓名,她电话,或是她学校…… 8-20号,项目文档整理完成。 23号,最终回到了南京,辞去工作,休息一天后,我于25号到了苏州,一个陌生城市,一丝丝兴
7、奋,一丝丝沉忧…… …… 十月六号这一天,上天竟是如此地厚爱我,竟让我找到了她…… …… 十二个月了,我们相识了很多,现在我,心情已平静,她在努力着她学业,我奋斗着我工作,我们间会有真正地交集吗?我不知道…… 随缘吧 随缘而来 随缘而去 多年后,最少我们会说:我不后悔,因为我们曾经努力过,也曾快乐着…… 犬犬 -10-19 0:56:40 于苏州 版本变动历史 -08-20 第一版 -10-18 修订第二版 修正6.6 DA/OA 接收方地址和发送方地址 协议格式翻译错误
8、 增加AT指令介绍 增加8、PDU操作实例 1、绪论 SMS提供了在GSM移动站台(MS)和一个短消息实体(SME)之间经过服务中心(SC)传送短消息方法。SC提供了在MS和SME之间消息传送相互联络和转播功效。 SMS采取存放转发模式,短消息被发送出去以后,不是直接地发送给接收方,而是先存放在SMS(短消息服务中心),然后再由SMC将其转发给接收方。假如接收方当初关机或不在服务区内,SMC会自动保留该短消息,排队并尝试再次发送给接收方。 点到点短消息服务包含两个基础服务: Þ SM MT(点到点短消息移
9、动接收) Þ SM MO(点到点短消息移动发送) 经过 SM MT 或 SM MO 方法传送文本消息包含 140 个八位位组(最大 160 个拉丁字母字符、70个双字节字符)。 本文仅仅给出了简单地部分AT指令及SMS PDU模式描述。更多具体资料,请参看下列标准: GSM 03.04 GSM 03.38 GSM 03.41 GSM 07.05 GSM 07.07 2、缩写词 缩写 全称 说明 MS Mobile-Station 移动站台 负责系统交换管理,控制来自或发往其它电话或数据系统通信 SME Short-Message-
10、Entity 短消息实体 负责接收和发送短消息。能够在固话系统、移动基站或其它服务中心内 SMSC Short Message Service Center 短消息服务中心 负责在移动基站和SME之间中继、存放或转发短消息 PDUs Protocol Data Units 协议数据单元 PDU Type Protocol Data Unit Type 协议数据单元类型 MR Message Reference 消息参考 OA Originator Adress 发送方地址 DA Destination Adress 接收方地址 PID Protoc
11、ol Identifier 协议标识 DCS Data Coding Scheme 数据编码方案 SCTS Service Center Time Stamp 服务中心时间戳 VP Validity Period 消息使用期 UDL User Data Length 用户数据长度 UD User Data 用户数据 RP Reply Path 应答路径 UDHI User Data Header Indicator 用户数据头标识 SRI Status Report Indication 状态汇报指示 SRR Status Report R
12、equest 请示状态汇报 VPF Validity Period Format 使用期格式 MMS More Messages to Send 有更多信息需要发送 RD Reject Duplicate 拒绝复本 MTI Message Type Indicator 消息类型指示 ME Mobile Equipment 移动设备 TE Terminal Equipment 终端设备 SIM Subscriber Identity Modul SC Service-Center 服务中心 SCA Service Center Addre
13、ss 服务中心地址 SM MT Short Message Mobile Terminated Point-to-Point 点到点短消息移动接收 SM MO Short Message Mobile Originaed Point-to-Point 点到点短消息移动发送 3、设置指令 3.1 服务中心号码 (+CSCA) 服务中心(SC)负责转播和存放转发SME和MS之间短消息。假如MS支持SMS-MO(短消息服务移动发送),为了使用SMS,必需在MS中设置SMSC(短消息服务中心,SCA)。 使用指令 “AT+CSCA?” 能够查看存放在SIM卡中目前服务
14、中心地址。
使用AT指令 “AT+CSCA=
15、
16、>
选择消息服务
响应
+ CSMS: 17、动设备支持服务选项
参数:
参数
值
描述
18、AT+CMGF= 19、令”AT+CMGF=0”切换到协议数据模式,以后全部SMS输入和显示将以PDU格式实施。
5.1 发送方SMS-Submit (Mobile Originated)
SMS-SUBMIT意思就是GSM-Molbile传送一条SMS到服务中心。
5.1.1 向SIM卡存放区写入一条SMS (+CMGW)
实施指令”AT+CMGW”用于存放一条消息在SIM卡存放区中。命令返回消息被存放索引号。
句法:
输入
实施
注释
AT+CMGW= 20、MGW: 21、O SENT”
已存放已发送消息
4 “ALL”
全部消息(仅适适用于 +CMGL命令)
注:
*) 符号”>”是移动终端设置返回而产生
**) 22、CSMS 23、CMGS)
这个指令用于从一个终端向网络中发送消息(SMS-SUBMIT),而不会在SIM卡中保留所发送SMS消息。
假如消息传送成功,消息参考值 24、应
+CMGS: 25、 (+CMGL)
句法:
输入
实施
注释
AT+CMGL= 26、
定义值:
0 “REC UNREAD”
已接收未读消息(比如新消息)
1 “REC READ”
已接收已读消息
2 “STO UNSENT”
已存放未发送消息
3 “STO SENT”
已存放已发送消息
4 “ALL”
全部类型消息
5.2.2 读取消息 (+CMGR)
句法:
输入
实施
注释
AT+CMGR= 27、认值为0)
在文本模式下该值为字符型(默认值为”REC UNREAD”)
指示内存中消息状态
定义值
0 “REC UNREAD”
已接收未读消息(比如新消息)
1 “REC READ”
已接收已读消息
2 “STO UNSENT”
已存放未发送消息
3 “STO SENT”
已存放已发送消息
28、是和用于提交PDU不一样!
Þ在内存(SIM)中最少有最终一个空闲空间,以确保能接收到新SMS!
5.2.3 删除消息 (+CMGD)
句法:
输入
实施
注释
AT+CMGD= 29、1
协议数据单元类型
MR
Message Reference
1
全部成功SMS-SUBMIT参考数目(0..255)
OA
Originator Adress
2-12
发送方SME地址
DA
Destination Adress
2-12
接收方SME地址
PID
Protocol Identifier
1
参数显示SMSC以何种方法处理SM (比如FAX,、Voice等)
DCS
Data Coding Scheme
1
参数表示用户数据(UD)采取什么编码方案
SCTS
Service Center Time Stamp
7
参数 30、表示SMSC接收到消息时时间戳
VP
Validity Period
0,1,7
参数表示消息在SMSC中不再有效时长
UDL
User Data Length
1
用户数据段长度
UD
User Data
0-140
SM数据
6.1 发送方PDU格式SMS-SUBMIT-PDU (Mobile Originated)
SCA
PDUType
MR
DA
PID
DCS
VP
UDL
UD
1-12
1
1
2-12
1
1
0,1,7
1
0-140
示例:
向发送一条SMS,消息内容为:“Test”
00 31、31000D909F80000A704D4F29C0E
向发送一条SMS,消息内容为:“测试”
0031000B8F80008A7046D4B8BD5
SCA
PDUType
MR
DA
PID
DCS
VP
UDL
UD
1-12
1
1
2-12
1
1
0,1,7
1
0-140
00
31
00
0D909F8
00
00
A7
04
D4F29C0E
00
31
00
0B8F8
00
18
A7
04
6D4B8BD5
6.2 接收方PDU格式 SMS-DELIVER-PDU (Mobile 32、 Terminated)
SCA
PDUType
OA
PID
DCS
SCTS
UDL
UD
1-12
1
2-12
1
1
7
1
0-140
示例:
从接收到一条SMS,消息内容为:“Test”
F0240D909FD4F29C0E
从接收到一条SMS,消息内容为:“测试”
F0240D909FD4B8BD5
SCA
PDUType
OA
PID
DCS
SCTS
UDL
UD
1-12
1
2-12
1
1
7
1
0-140
08905F0
24
0D909F8
00
0 33、0
400
04
D4F29C0E
08905F0
24
0D909F8
00
08
400
04
6D4B8BD5
6.3 SCA 短消息服务中心地址格式
服务中心地址包含三个部分:
SCA组成:1-12个八位位组
例:F0
1 Octet
0-1 Octet
0-10 Octets
Len
Type
Addr
SCA长度
SCA类型
SCA地址
08
91
F0
Len:短消息中心地址长度。指(91)+(68 31 08 20 05 05 F0)八位位组数目。假如Len被设置为00&h,并不提供后面部分,那么终端设备将读取SIM中 34、设置SCA填充到SMS-PUD中,经过“AT+CSCA=xxxxx”指令能够设置SIM卡中存放SCA值。
Type:短消息中心地址类型,是国际号码还是中国号码(81&h表示中国,91&h表示国际)。91&h是TON/NPI遵守International/E.164标准,指在号码前需加‘+’号;另外还有其它数值,但91&h最常见。
例:91 &h = 1001 0001 &b
Bit No.
7
6
5
4
3
2
1
0
1
数据类型
号码判别
第7位永远置为1
35、 数值类型(Type of Number):
000—未知,001—国际(以 + 开始地址),010—中国,111—留作扩展;
号码判别(Numbering plan identification):
0000—未知,0001—ISDN/电话号码(E.164/E.163),1111—留作扩展;
Add:依据ISDN编号方法短消息中心地址。
示例:
服务中心号码
PDU格式编码
+86
08 91 86 31 08 20 05 05 F0
07 81 31 08 50 21 05 F0
123456
04 81 21 43 65
注: 36、
指令AT+CMGW和AT+CMGS参数 37、S=19 38、 发送方:SMS-SUBMIT
例:31&h = 0011 0001&b
Bit No.
7
6
5
4
3
2
1
0
RP
UDHI
SRR
VPF
RD
MTI
0
0
1
1
0
0
0
1
接收方:SMS-DELIVER
例:04&h = 0000 0100&b
Bit No.
7
6
5
4
3
2
1
0
RP
UDHI
SRI
MMS
MTI
0
0
0
0
0
1
0
0
RP: 39、 应答路径(Reply Paht),
0 – 未设置;
1 – 设置
UDHI: 用户数据头标识(User Data Header Indicator),
0 – 用户数据(UD)部分不包含头信息;
1 – 用户数据(UD)开始部分包含用户头信息
SRR: 请求状态汇报(Status Report Request),
0 – 不需要汇报;
1 – 需要汇报
SRI: 状态汇报指示(Status Report Indication),此值仅被短消息服务中心(SMSC)设置
40、 0 – 状态汇报将不会返回给短消息实体(SME)
1 – 状态汇报将返回给短消息实体(SME)
VPF: 使用期格式(Validity Period Format),
00 – VP 段没有提供(长度为 0 ),
01 – 保留,
10 – VP 段以整型形式提供(相正确),
11 – VP 段以8位组二分之一(semi-octet)形式提供(绝正确)
41、
RD: 拒绝复本(Reject Duplicate),
0 – 通知 短消息服务中心(SMSC)接收一个SMS-SUBMIT,即使该消息是先前已提交过,并还存在于SMSC中未发送出去。MS反复条件是:消息参考(MR)、接收方地址(DA)及发送方地址(OA)相同
1 – 通知 SMSC 拒绝一个反复 SMS
MMS: 有更多信息需要发送(More Messages to Send),此值仅被 SMSC 设置
0 – 在 42、SMSC 中有更多信息等候 MS
1 – 在 SMSC 中没有更多信息等候 MS
MTI: 信息类型指示(Message Type Indicator)
00 – SMS-DELIVER(SMSCèMS)
00 – SMS-DELIVER REPORT(MS è SMSC)
当手机接收到 SMS-DELIVER 时自动产生
01 – SMS-SUBMIT(MS è SMSC)
43、 01 – SMS- SUBMIT REPORT(SMSC è MS)
10 – SMS-STATUS REPORT (SMSC è MS)
10 – SMS-COMMAND(MS è SMSC)
11 – 保留
注:(粗体代表手机支持类型,并不是全部 PDU 类型均被服务中心支持)
注意:
PDUType是PDU第一个八位位组,而并不是服务中心号码后第一个字节!
6.5 MR 信息参考 (Message 44、Reference)
设为 00 即可
6.6 DA/OA 接收方地址和发送方地址
OA和DA格式是一样,以下所表示:
DA组成:2-12个八位位组
例:0D909F8
1 Octet
0-1 Octet
0-10 Octets
Len
Type
Addr
长度
类型
地址
0D
91
F8
Len:地址长度。指86 长度。这和SCA中定义不一样!
Type:短消息中心地址类型,是国际号码还是中国号码(81&h表示中国,91&h表示国际)。
Add:依据ISDN编号方法短消息中心地址。
示例:
电话号码
PDU格式编码
+86
0 45、D 91 86 31 58 71 42 09 F8
0B 81 31 58 71 42 09 F8
345 *)
0F A1 01 06 15 62 88 21 43 F5
123456
06 81 21 43 65
*) 小灵通号码
6.7 PID 协议标识 (Protocol-Identifier)
对于标准情况下下 MS-to-SC 短消息传送,只需设置 PID 为 00
6.8 DCS 数据编码方案 (DataCoding-Scheme)
Bit No.
7
6
5
4
3
2
1
0
描述
示例:
0
0
46、0
0
0
0
0
0
= 00&h 7 bit 数据编码 默认字符集
1
1
1
1
0
1
1
0
= F6&h 8 bit 数据编码 Class 1
0
0
0
0
1
0
0
0
= 08&h USC2(16bit)双字节字符集
Bit No.7和Bit No.6:
通常设置为 00;
Bit No.5:
0 – 文本未压缩,1 – 文本用GSM标准压缩算法压缩;
Bit No.4:
0 – 表示 Bit No.1、Bit No.0 为保留位,不含信息类型信息,
47、 1 – 表示 Bit No.1、Bit No.0 含有信息类型信息;
Bit No.3和Bit No.2:
00 – 默认字母表,每个字符占用 7 比特位,此时最大能够传送 160 字符
01 – 8bit,此时最大只能传送 140 个字符
10 – USC2(16bit), 传送双字节字符集
11 – 预留;
Bit No.1和Bit No.0:
00 – Class 0,短消息直接显示在屏幕上
01 – Class 1,
10 – Class 2(SIM卡特定信息),
11 – Class 3。
示例 48、
DSC
字符集
信息 Class
00
default (7-bit)
No Class
F0
default (7-bit)
Class 0 (immediate display)
F1
default (7-bit)
Class 1 (Mobile Equipment- specific)
F2
default (7-bit)
Class 2 (SIM specific message)
F3
default (7-bit)
Class 3 (Class3 Terminate Equipment- specific)
F4
8-bit
Clas 49、s 0 (immediate display)
F5
8-bit
Class 1 (Mobile Equipment- specific)
F6
8-bit
Class 2 (SIM specific message)
F7
8-bit
Class 3 (Class3 Terminate Equipment- specific)
08
16-bit
No Class
18
16-bit
Class 0 (immediate display)
6.9 VP 信息使用期(Validity Period)
第一个情况(相正确): VPF = 1 50、0 VP = AA H (四天)
第二种情况(绝正确): VPF = 11
年
月
日
时
分
秒
时区
30
80
02
90
54
33
20
表示 03-08-20 09:45:33
VP 段以整型或半个8位组(semi-octet)形式提供。
第一个情况,VP为一个8位组,给定使用期长度,
从 SMS-SUBMIT 被 SMSC 接收开始计算。
第二种情况,VP为七个8位组,给定使用期终止绝对时间。
在第一个情况下,使用期表示格式以下所表示:
VP






