本文主要介绍短信相关的一些概念和基础知识,旨在帮助用户对短信有一个基本的认知和了解。
短信的概念
短信是指用户通过手机或其他终端设备发送或者接收的文字或者数字信息,是Short Message Service的简称。一般长度最大为140个英文或数字字符、70个中文字符。
短信主要通过蜂窝无线网络进行传输,一般情况下短信不需要互联网连接即可发送,其通过基站将信息传递到短信中心。短信中心将收到的短信转发到接收设备附近的基站。最后基站将信息发送到接收设备。从上可以看出短信主要依靠蜂窝无线网络,不依赖互联网。
短信数据流向框架如下图。
数据流向说明:
发送端编辑短信,通过无线信号将消息内容发送到基站。
基站收到消息内容经过一系列网元处理将其转发到运营商短信服务中心。
运营商短信服务中心经过一系列网元处理将数据转发到接收端附近的基站。
接收端附近的基站将短信内容发送到接收端。
短信编码方式
编码方式主要为以下三种。
短信的分类
短信可以分为TEXT短信,PDU短信和块短信。TEXT简单易实现,但在某些场景中并不能满足需求。PDU短信,实现比较复杂,需要转码,但基本能满足绝大部分场景需求 。块短信已经很少用,QuecPython目前不支持此种模式,以下不再介绍此模式。
TEXT 短信:QuecPython接口发送TEXT短信不需要将TEXT短信内容再进行拆解组合进行发送,只需直接写入发送内容即可,短信内容超过140个字节,QuecPython模组将自动将其转为长短信分为多条短信进行发送。
在实际发送短信时,键入的数据均为ASCII码,而ASCII码是8比特位字符数据,GSM编码是7比特位字符数据,GSM编码将ASCII码中的一些控制字符表示成了有实际意义的字符数据。在TEXT模式下,GSM编码数据需要保证7比特位的数据数值和ASCII码表中的数值完全一致,才可通过TEXT方式发送短信数据,否则将导致接收端和发送端数据不一致。
PDU 短信:QuecPython接口发送PDU短信不再需要将短信内容转成PDU码,底层已完成字段转码,只需直接写入发送内容即可,短信内容超过140个字节,QuecPython模组将自动将其转为长短信分为多条短信进行发送。
PDU(Protocol Data Uint,协议数据单元)模式,需将短信内容转换成PDU数据才能进行发送。QuecPython接口已进行了封装,在实际的使用过程中,只需将短信内容直接写入。当调用接口时会自动将短信内容转换成PDU码进行发送,并自动添加短信头部设置。
短信功能应用案例
短信功能的详细API介绍可前往短信功能 - QuecPython查看。
如果你想追求更极致的短信功能开发,请参考我们QuecPython的开源方案