SMS编码及解码规范(1)

2024-02-24 18:18
文章标签 编码 解码 规范 sms

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

随着移动通信的迅速发展,用串口接收手机短消息也在很多场合得到应用,那么在串口应用程序中,如何编程实现GSM手机发送和接收短消息?如何利用SMS进行数据通信?
  首先,我们要对由ESTI制定的SMS规范有所了解。与我人讨论的短消息收发有关的规范主要包括GSM03.38、GSM03.40和GSM07.05,前两者着重描述SMS的技术实现(含编码规范方式),后者则规定了SMS的DTE-DCE接口标准(AT命令集)。
   一共有三种方式来发送和接收SMS信息:Block Mode,Text Mode和PDU Mode。Block Mode 已是昔日黄花,目前很少用了。Text Mode是纯文本方式,可使用不同的字符集,主要用于欧美地区,从技术上说也可用于发送中文短消息,但国内手机基本上不支持。PDU Mode被所有手机 支持,可以使用任何字符集,这也是手机默认的编码方式。Text Mode比较简单,而且不适合做自定义数据传输,这里就不讨论了。下面介绍一的内容,是在PDU Mode下发送和接收短消息的实现方法。
   PDU串表面是一串ASCII码,由0-9、A-F这些数字和字母组成。它们是8位字节的十六进制数,或者BCD码十进制数。PDU串不仅 包含可显示 的消息本身,还包含很多其他信息,如SMS服务中习号码、目标号码、回复号码、编码方式和服务时间等。发送和接收的PDU串,结构是不完全相同的。下面用 两个实例说明PDU串的结构和编排方式。
例1 发送:SMSC号码是+8613800250500,对方号码是13851872468,消息消息内容是“Hello!”,从手发出的PDU串可以是:
 08 91 68 31 08 20 05 05 F0 11 00 0D 91 68 31 58 81 27 64 F8 00 00 00 06 C8 32 9B FD GE 01
对照规范,以上数据信息的含义见表1
          表1 PDU串数据信息说明

 

分段

含义

说明

08

SMSC地址信息的长度

共8个8位字节(包括91)

91

SMSC地址格式(TON/NPI)

用国际格式号码(在前面加“+”

68 31 08 20 05 05 FD

SMSC地址

8613800250500,补”F”凑成偶数个

11

基本参数(TP-MTI/VFP)

发送,TP-VP用相对格式

00

消息基准值(TP-MR)

0

0D

目标地址数字个数

共13个十进制数

91

SMSC地址格式(TON/NPI)

用国际格式号码(在前面加“+”

68 31 58 81 27 64 F8

目标地址(TP-DA)

8613851872468,补”F”凑成偶数个

00

协议标识(TP-TID)

是普通GSM类型,点到点方式

00

用户信息编码方式(TP-DCS)

7-bit编码

00

有效期(TP-VP)

5分钟

06

用户信息长度(TP-UDL)

实际长度6个字节

C8 32 9B FD 0E 01

用户信息(TP-UD)

“Hello”

这篇关于SMS编码及解码规范(1)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

完整的申请邓白氏编码的流程(手把手教你申请邓白氏编码

完整的申请邓白氏编码的流程(手把手教你申请邓白氏编码)  标签: 编码邓白氏编码申请流程苹果开发者账号申请 2016-07-08 16:13  2274人阅读  评论(2)  收藏  举报   分类: 技术  苹果开发  邓白氏编码申请 版权声明:本文为博主原创文章,未经博主允许不得转载。     申请公司的苹果开发者账号和企业级的苹

MySQL命名规范(自用)

MtySQL命名规范 基本通用规范 1.【推荐】关键字必须大写 所有关键字必须大写,如:INSERT、UPDATE、DELETE、SELECT及其子句,IF……ELSE、CASE、DECLARE等 2.【强制】字段和建表必须写备注 COMMENT写备注 3.【强制】字母数字下划线 采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线’‘组成,命名简

java编程规范之java注释规范

代码要是没有注释,对读者来说就是一堆乱七八糟的字母,为了提高代码的可读性和可维护性,必须对代码进行必要的注释,这里小编整理了一下java注释规范。 (一)技巧    1:注释当前行快捷方式:ctrl+/    2:/* */  选上要注释的代码 ctrl+Shift+/ (二)在哪些地方加注释?    1:每个源文件开头都应有一组注释,包含代码的作者,时间;    2:当编写的代码较长

编程精粹—— Microsoft 编写优质无错 C 程序秘诀 07:编码中的假象

这是一本老书,作者 Steve Maguire 在微软工作期间写了这本书,英文版于 1993 年发布。2013 年推出了 20 周年纪念第二版。我们看到的标题是中译版名字,英文版的名字是《Writing Clean Code ─── Microsoft’s Techniques for Developing》,这本书主要讨论如何编写健壮、高质量的代码。作者在书中分享了许多实际编程的技巧和经验,旨在

【规范】测试分析规范(Word原件)

1. 测试分析的目的和意义 2. 测试分析的现状 3. 软件测试分析 4. 阶段总结 5. 制定软件测试分析报告步骤

数据库设计概述-数据库设计内容、数据库设计方法(基于E-R模型的规范设计方法)

一、引言 如何利用关系数据库理论设计一个满足应用系统需求的数据库 二、数据库设计内容 1、数据库设计是基于应用系统需求分析中对数据的需求,解决数据的抽象、数据的表达和数据的存储结构等问题 2、其目标是设计出一个满足应用要求、简洁、高效、规范合理的数据库 3、最终得到能在DBMS中存储的数据库的逻辑结构和物理结构 三、数据库设计方法 1.根据经验进行直观设计 (1)缺乏科学理论和工程

jsp和Servlet中的响应(response)编码

<span style="font-size:18px;">  常见字符编码:iso-8859-1(不支持中文)、gb2312、gbk、gb18030(系统默认编码,中国的国标码)、utf-8(万国码,支持全世界的编码,所以我们使用这个)1. 响应编码* 当使用response.getWriter()来向客户端发送字符数据时,如果在之前没有设置编码,那么默认使用iso,因为iso不支持中文

编码表概述和常见编码表

l 编码表 • 由字符及其对应的数值组成的一张表 l 常见编码表 • ASCII/Unicode 字符集 • ISO-8859-1 • GB2312/GBK/GB18030 • BIG5 • UTF-8 计算机只能识别二进制数据,早期由来是电信号。 为了方便应用计算机,让它可以识别各个国家的文字。 就将各个国家的文字用

字符串到字节数组和字节数组到字符串的转换(编码和解码问题)

/*  * String(byte[] bytes, String charsetName):通过指定的字符集解码字节数组  * byte[] getBytes(String charsetName):使用指定的字符集合把字符串编码为字节数组  *  * 编码:把看得懂的变成看不懂的  * String -- byte[]  *  * 解码:把看不懂的变成看得懂的

java字符串在内存和文件中编码的不同——如何理解进制(二进制)与编码(UTF-8)的关系

不管是在内存中,还是文件中,还是网络传输中,计算机运算和存储的都只能是二进制。 内码是程序内部使用的字符编码,特别是某种语言实现其char或String类型在内存里用的内部编码;外码是程序与外部交互时外部使用的字符编码。 “外部”相对“内部”而言;不是char或String在内存里用的内部编码的地方都可以认为是“外部”。例如,外部可以是序列化之后的char或String,或者外部的文件、命令