TOC

短信的原理

  • Short Message, 短信
  • SMS, Short Message Service, 短信服务
  • MO, Mobile Originate, 发短信
  • MT, Mobile Terminate, 收短信
Terminal 终端
SMC      短信中心
SMS GW   短信网关

重要协议

编码方案

  • 7bit ASCII
  • 8bit ASCII
  • UCS2 (早期的 Unicode 方案,2 Bytes 表示一个字)

长度

受协议限制,短信内容最大 140 字节,所以:

采用 8bit 编码的话,最长 140 字符。
采用 7bit 编码的话,最长 160 字符(正好)。
采用 UCS2 编码的话,最长 70 字符。

如果涉及长短信切割,根据通行的拓展协议,需要采用头三个字节存储相关信息。

采用 8bit 编码的话,每段最长 137 字符。
采用 7bit 编码的话,每段最长 156 字符(最后剩余 4 bits 空着)。
采用 UCS2 编码的话,每段最长 67 字符。

长短信分割

参考 GSM 03.40 9.2.3.24 TP-User Data (TP-UD) 部分,一般有两种方案:

\x05        剩余协议头长度
\x00        短信标识 GSM 03.40
\x03        剩余短信标识长度
随机字节(1 字节)
总包数
包序号(1 开始)

还有一种没有怎么见过的方案,就是采用两个字节做随机标识,然后头三字节改成 \x06\x08\x04

第二字节叫做 The Information Element Identifier(信息元素标识符),上面的 \x00\x08 分别标识 1 字节,2 字节随机标识方案。其他值可以参考文档。