当前位置: 首页 > news >正文

各运行商通讯协议总结

本文来自http://blog.csdn.net/lijun84 ,引用必须注明出处!


<!-- [if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning/> <w:DrawingGridVerticalSpacing>7.8 pt</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:Compatibility> <w:SpaceForUL/> <w:BalanceSingleByteDoubleByteWidth/> <w:DoNotLeaveBackslashAlone/> <w:ULTrailSpace/> <w:DoNotExpandShiftReturn/> <w:AdjustLineHeightInTable/> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:UseFELayout/> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!-- [if !mso]> < classid="clsid:38481807-CA0E-42D2-BF39-B33AF135CC4D" id=ieooui> </object> <style> st1\:*{behavior:url(#ieooui) } </style> <![endif]--><!-- [if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman";} </style> <![endif]-->

各运行商通讯协议总结

本人以前在公司为了工作方便,对各运营商的通讯协议(联通 SGIP 、移动 CMPP 、电信 SMGP 、网通 CNGP 、短消息中心与网关间协议 SMPP )进行整理,见《各运行商通讯协议整理》,现总结如下:

一、 由于 SMPP 不存在计费信息,所以我们的下行计费短消息必须通过四大运营商通讯协议下发给各运营商网关,可以暂时不用考虑 SMPPSGIP 的转换 ;

二、 由于四大运营商通讯协议的命令 id 、错误代码、其他各命令等存在差异,所以决定 1919 通讯程序采用如下方法来实现与四大运营商网关的通讯:

1、 分别通过四大运营商各自的协议与它们的网关进行通讯(包括登陆、 submitdeliverreport 及它们的响应消息);

2、 SGIP 的消息直接处理,但是需要保存 submit 的消息头中的序列号字段,用于与 report 中的消息标志字段对应 ;

3、 CMPPSMGPCNGP 的登陆消息直接处理;

4、 CMPPSMGPCNGPsubmitdeliverreport 消息执行协议转换 ;

5、 CMPPSMGPCNGPSubmit_RespDeliver_Resp 直接处理,但是需要保存消息标志字段,用于与 report 中的消息标志字段对应 ;

6、 业务程序生成 SGIPSubmit 消息,转换成其他三大运营商的 Submit 消息发给网关;

7、 把其他三大运营商的 Deliver 消息转换成 SGIPDeliver 消息,交给业务程序处理,并且需要保存消息标志字段,用于发送 Deliver_Resp

8、 把其他三大运营商的 Report 消息转换成 SGIPReport 消息,交给业务程序处理,并且需要保存消息标志字段,用于与 Submit_Resp 中的消息标志字段对应 ;

三、 消息头的区别:

1、 SGIP 的序列号长度为 12 ,其他各协议序列号长度为 4

2、 SGIPsubmit 的消息头中的序列号字段需要保存,用于对应 reportSubmitSequenceNumber 字段;

3、 CNGPSubmit_Resp 的消息头中的命令状态字段定义了发送成功标志,长度为 4

4、 CNGPDeliver_Resp 的消息头中的命令状态字段定义了接收成功标志,长度为 4

5、 消息头由 1919 平台直接处理;

四、 Submit 消息的区别

1、 CMPPSMGPCNGP 中的 FeeType 字段,可以根据 SGIP 中的 FeeType 转换得到;

2、 CMPPSMGPCNGP 中的状态报告标志字段,可以根据 SGIP 中的 ReportFlag 转换得到;

3、 CNGP 不存在 linkid 字段;

4、 CMPPMsg_IdPk_totalPk_numberDest_teminal_type 字段,由 1919 平台处理;

5、 CMPPCNGP 都有计费用户类型字段,可以根据 SGIPChargeNumber 来填写;

6、 CMPPDest_teminal_type ,默认为 0 ,真实号码;

7、 SMGPFixedFee 字段,可以根据 SGIP 的计费类型字段来填写;

8、 CNGPProtocol_ID 字段,由 1919 平台处理;

五、 Submit_Resp 消息的区别

1、 SGIPCMPPSMGP 三个协议有发送成功标志字段,其中 SGIP 的长度为 1CMPPSMGP 的长度为 4

2、 CMPPSMGPCNGP 有长度为 81010 的信息标志,它由网关生成,需要保存,用于与 report 消息中的消息标志对应;

六、 Deliver 消息的区别

1、 CNGP 不存在 linkid 字段;

2、 CMPPSMGPCNGP 都存在消息标志字段,需要保存,用于 Deliver_resp 的发送;

3、 CMPPSMGPCNGP 都存在状态报告标志字段,用来判断此消息是否为状态报告消息;

4、 CNGPProtocol_ID 字段,可以忽略;

七、 Deliver_Resp 消息的区别

1、 SGIPCMPPSMGP 三个协议有接收成功标志字段,其中 SGIP 的长度为 1CMPPSMGP 的长度为 4

2、 CMPPSMGPCNGP 有长度分别为 81010 的消息标志字段,它由网关生成,从 Delive 消息中取出来,需要保存,用于 Deliver_Resp 发送;

八、 Report 消息的区别

1、 CMPPSMGPCNGP 的状态报告都包含在 deliver 的短消息内容字段中;

2、 SGIP 的消息标志对应 submit 消息头的序列号字段 , CMPPSMGPCNGP 的消息标志对应 submit_resp 中消息标志字段

相关文章:

  • Lua顺序 执行顺序
  • 从起步到影响世界:漫谈韩国网游发展史
  • 数据结构之停车场
  • 偏好简单可爱 社交游戏女会员达70%
  • streams 日差管理及监控
  • 暴雪:星际2仍在审批 筹划中国电竞联赛
  • awk之随机函数rand()和srand()
  • python-socket
  • 传中青宝挖角乐港热血核心团队建新公司
  • java---Unicode-字符转换器
  • 无语:SEGA开发尿尿游戏 仅供男性专用
  • 什么是元数据(Metadata)?
  • jQuery-1.9.1源码分析系列(八) 属性操作
  • nginx 安装
  • 多级BOM
  • [Vue CLI 3] 配置解析之 css.extract
  • [译] React v16.8: 含有Hooks的版本
  • 【剑指offer】让抽象问题具体化
  • CSS 三角实现
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • Docker下部署自己的LNMP工作环境
  • ES6简单总结(搭配简单的讲解和小案例)
  • Javascript基础之Array数组API
  • java第三方包学习之lombok
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • Swift 中的尾递归和蹦床
  • ViewService——一种保证客户端与服务端同步的方法
  • 技术发展面试
  • 简单数学运算程序(不定期更新)
  • 聊聊flink的BlobWriter
  • 算法-图和图算法
  • 微信开源mars源码分析1—上层samples分析
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • ​iOS安全加固方法及实现
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • #在 README.md 中生成项目目录结构
  • (C语言)fread与fwrite详解
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (一)基于IDEA的JAVA基础1
  • (原)Matlab的svmtrain和svmclassify
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (转)拼包函数及网络封包的异常处理(含代码)
  • (转)视频码率,帧率和分辨率的联系与区别
  • .NET 8.0 发布到 IIS
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .NET Core引入性能分析引导优化
  • .Net mvc总结