各运行商通讯协议总结

本文来自http://blog.youkuaiyun.com/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 中消息标志字段

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值