术语一览

ISMG(Intenet Short Message Gateway):互联网短信网关

DSMP(Data Service Manage Platform):数据业务管理平台

SMPP(Short Message Peer to Peer):短消息点对点协议

CMPP(China Mobile Peer to Peer):中国移动点对点协议

SMSC(Short Message Service Center):短消息中心

GNS(Gateway Name Server):网关名称服务器

SP(Service Provider):业务提供者

SP_Id:SP的企业代码:网络中SP地址和身份的标识、地址翻译、计费、结算等均以企业代码为依据。

SP_Code:SP的服务代码:服务代码是在使用短信方式的上行类业务中,提供给用户使用的服务提供商代码。

Service_Id:SP的业务类型,数字、字母和符号的组合,由SP自定。

网络结构

ISMG是SP和SMSC的中介,ISMG一方面接收SP发送给用户的信息和提交给短信中心,另一方面,用户点播SP业务的信息由网关发给SP。

为了减轻短信中心的信令负荷,互联网短信网关还应根据路由原则将SP提交的信息转发到相应的互联网短信网关。互联网短信网关通过向汇接网关(GNS)查询的方式获得网关间的转发路由信息。

短信协议

短信其实也是通过网络传输的,短信协议(gsm)和我们HTTP很相似,是基于TCP/IP的协议,短信协议也包含信息头和信息体。PDU代表一条短信的整个数据,也叫一个包。一个完整的PDU就是这个样子:

UDL(Length of UD): 表示一个PDU数据的所占用的字节长度

UDH(User Data Header): 数据头

UD(User Data): 数据体

IE(Information Element): 表示一个UDH单元,一个IE包含一个IEI以及一个IED数据

IED(IE Data): 包含一个IE的内容

IEL(Length of IE): 表示一个IED所占用的字节长度

IEI(IE Identifier): 表示一个IE具体代表的是什么含义

UDHL(Length 0f UDH): 表示整个UDH所占用的字节长度

一条短信长度是有限制的,一般来说是140个字节,因为汉字一般使用UCS2编码,UCS2一个字符占用2个字节,所以一条短信用UCS2编码的短信,如果超过70个字符,是需要拆分成多条短信的。IED有3个值分别是refNr,totalNumberOfSms,seqNr,长文本就是通过这个IE来识别多个短信是否是同一个短信的。refNr: 如果值相同的,则标识为同一条短信totalNumberOfSms: 由多少条短信拼接seqNr: 拼接短信的顺序

DCS(Data Coding Scheme): 表示应该以什么方式处理UD的数据。一个DCS主要包含2个信息,UD编码方式(Character Set),以及短信类别(Message Class)编码方式有4种(GSM 7 bit,ISO 8859-1,UCS2,reserved)短信类别有4种(Class 0,Class 1,Class 2,Class 3)

CMPP

CMPP是基于短信协议扩展的。主要提供短信发送(MO)和短信接收(MT)

MO:用户归属地的短信中心会将短信转发给负责连接该短信中心的短信网关,由短信网关根据服务代码和业务代码判别将请求转发给相应的SP;若该SP为该短信网关负责连接的SP,则短信网关直接转发;若该SP非其负责连接的SP,需向汇接网关查询路由,查询到路由后再将请求转发给负责的短信网关,由该负责的短信网关转发给该SP。

MT:短信网关根据接收用户手机号码判断其归属地短信中心,若该短信中心由本短信网关负责连接,则直接将业务数据发送给短信中心;否则向汇接网关查询路由,根据路由查询结果将业务数据发送给负责连接的短信网关,再由该短信网关发给归属地短信中心,继而发送给用户。

CMPP由TCP/IP作为底层承载

CMPP2.0为例,CMPP协议中定义了多种消息类型,主要包括连接消息(Connect Message)、提交消息(Submit Message)、送达消息(Deliver Message)、终端消息(Terminate Message)、心跳消息(Active Test Message)

Submit Message以及Deliver Message,两个消息是和我们短彩信内容相关的。CMPP协议也有信息头和信息体,

信息头里包含两个信息command_id和sequece_id。信息体里包含的信息:msg_id, pk_total, pk_number, registered_delivery, msg_level, service_id, fee_user_type, fee_terminal_id, tp_pid, tp_udhi, msg_fmt, msg_src, fee_type, fee_code, val_id_time, at_time, src_id, dest_terminal_id, msg_length, msg_content, reserve。

我们来看一下和我们短彩信内容有关的:pk_total, pk_number, tp_pid, tp_udhi, msg_fmt, msg_length, msg_content,其中,msg_content看名称就知道是我们的消息内容了,也就是我们PDU的内容。

短信网关

短信网关(ISMG)的建设可以为SP与短消息中心(SMSC)之间数据交换提供一条安全、快捷的通道,以便手机用户采用短信方式与SP双向通信,接收SP提供的信息服务,同时完成相应计费采集、业务管理、网络管理等功能。在短信网关参与的模式下,短信网关作为专业化的信息分配及管理者实现SP与SMSC之间的交互。

  • SMPP代理系统遵循SMPP 3.3版本协议与GSM网中短消息中心连接,实现高效、可靠的数据传输。该系统支持流量控制功能,能够根据SMSC的业务量进行发送流量控制。
  • 通信代理系统实现与SP等内容供应商的连接和协议互通。它基于TCP/IP协议基础之上,利用CMPP协议与SP之间建立一条安全、高效的传输通道。该系统支持流量控制功能,能够根据本身的业务量进行接收流量控制。
  • 防火墙作为短信网关的重要功能组成部分,其功能是对短信网关内部其它相关模块进行保护,实现针对内外访问的包过滤和代理。
  • 短消息网关处理系统完成网关的业务处理,包括:向汇接网关进行路由查询,在本地建立短信网关ID、用户手机号码、SP ID及其IP地址对应表的缓存,建立用户手机号码段与SMSC(短信中心)地址的对应表,完成对数据分发功能的支持、计费原始话单的提供及处理等。
  • 短信网关计费系统提供短信网关的原始话单记录(CDR)。
  • 业务管理系统包括业务管理和网管监控功能。业务管理主要完成对业务的统计报告、生成报表、运营者对用户数据的添加、修改、删除等;网管监控主要完成对网关系统的监控、查询、操作和维护的管理。

参考文献

互联网短信网关(ISMG)通信原理 - 面对开源的世界.. - BlogJava

CMPP接口协议V3.0.0

白话CMPP、SGIP_iven_wong的博客-CSDN博客

白话短信协议_iven_wong的博客-CSDN博客

记录有关移动短信知识相关推荐

  1. 【日常记录】接入短信发送功能,为实现完整的注册功能做准备

    接入阿里短信发送接口: 1.直接去阿里云[云市场]搜索[短信]随便选一个试用测试就行 打开后有相应的api说明 调用地址以及请求参数,可以自己去postman调试或者使用自带的[调试工具:去调试]. ...

  2. 移远EC20 Opencpu方案调试记录 - 打电话 发短信 接收短信 定位(郑州新正圆)

    microcom -s 115200 /dev/smd8   4G模块   Ctrl+x 退出 microcom -s 115200 /dev/smd7   GPS   Ctrl+x 退出 ATD13 ...

  3. 网络短信知识: 上行与下行,短信特服号,短信收发过程,短信通道

    这两天,在WAP开发中,调试短信定制业务与发短信的接口. 在网上找了点资料,觉得有助于了解一些概念: 上行(MO)&下行(MT)     从手机发起一个的过程叫上行(MO),到手机结束的过程叫 ...

  4. Java调用WebService接口实现发送手机短信验证码功能,java 手机验证码,WebService接口调用...

    近来由于项目需要,需要用到手机短信验证码的功能,其中最主要的是用到了第三方提供的短信平台接口WebService客户端接口,下面我把我在项目中用到的记录一下,以便给大家提供个思路,由于本人的文采有限, ...

  5. Java调用WebService接口实现发送手机短信验证码功能

    为什么80%的码农都做不了架构师?>>>    一.样式示例: 二.前台的注册页面的代码:reg.jsp <%@ page language="java" ...

  6. 短信发送:webservice调用第三方接口发送短信

    1 原博客地址:http://blog.csdn.net/sxdtzhaoxinguo/article/details/34437591 2 demo地址:http://download.csdn.n ...

  7. 注册app短信验证平台_怎样挑选网站验证码短信平台?

    短信验证码对于一个网站来说,已经是管理用户和保障网站安全的重要手段了.短信验证码在网站中负责注册登录.修改密码/找回密码.支付转账.账户异常行为.敏感操作(修改账号信息,修改重要设置,修改手机号码)等 ...

  8. Android监听消息(二)——电话及短信监听

    学更好的别人, 做更好的自己. --<微卡智享> 本文长度为2747字,预计阅读6分钟 前言 前面一篇<Android监听消息(一)--应用消息捕获>我们使用Notificat ...

  9. 国际短信平台短信路由搭建后台软件定制-移讯云短信系统

    国际短信平台短信路由搭建后台软件定制-移讯云短信系统 什么是短信路由 短信路由是指当短信发送时,不通的关键字内容,不同的地区进行线路分流.实现压缩成本速度和质量保证. 新的客户端客户登录后发送短信时可 ...

最新文章

  1. 【深度学习理论】(2) 卷积神经网络
  2. 使用谷歌jquery库文件的理由
  3. iOS开发UI 篇—CAlayer层的属性
  4. html完整性检测,html - 什么是完整性和crossorigin属性?
  5. java、sqlserver复习
  6. html++标签页+界面,CSS+DIV实现多标签页面。
  7. 为什么自动挡的挡位顺序都是P、R、N、D?
  8. 华为 5G 遭受致命一击!
  9. java 弹出另存为_java如何实现 io流传输过来的文件,提示另存为弹出窗口?
  10. java整人代码大全_整人代码vbs大全分享
  11. PDFLIB C++修改及使用说明
  12. Code33 整数转罗马数字
  13. 【Python 邮件合并 pandas mailmerge】
  14. Windows7 基本常见问题及解决方案之汇总
  15. 什么是SEO,为什么要做SEO?
  16. 华师大计算机科学与技术考研科目,2020华东师范大学计算机与软件工程考研初试科目、参考书目、招生人数汇总...
  17. 迷你世界滑动方块机器人怎么做_迷你世界可移动机器人详细教程和存档
  18. NEC Programming Contest 2021(AtCoder Beginner Contest 229) B - Hard Calculation
  19. 成都工控开发:太简单了!串口触摸屏开发HMI的全流程介绍
  20. 微信小程序wxml和wxss样式

热门文章

  1. 创建glance镜像报错HTTP503
  2. 据说一个人的标准体重应该是其身高(单位:厘米)减去100、再乘以0.9所得到的公斤数。已知市斤的数值是公斤数值的两倍。现给定某人身高,请你计算其标准体重应该是多少?(顺便也悄悄给自己算一下吧……)
  3. 幻立方解法之4阶,5阶,7阶
  4. linux卸载phpstudy_centos
  5. 科猫网项目总结(基于SSM框架)
  6. ElasticSearch之搜索词提示Sug
  7. 亚麻/苹果/脸书/谷歌/微软面试图鉴
  8. 物联网案例(三):工业物联网中故障预警与风险管理的规范性分析
  9. Apache Hudi调研小记
  10. vue引入echarts中国地图 Cannot read properties of undefined (reading ‘echarts‘) at eval (webpack-inter