SMGP 3 0协议 多问多答
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
内容列表 | |
---|---|
|
SMGP 3.0协议有哪些变化 |
---|
SMGP 3.0增加了对TLV字段的支持。其中有很多字段关系到业务部分。
回页首
|
哪些TLV字段必须支持? |
Submit和Deliver包中TLV字段必须支持,其中SubmitMsgType,SPDealResult和LinkID三个TLV字段必须支持。否则无法通过业务测试。
回页首
|
什么是TLV字段? |
TLV字段是Token/Length/Value的缩写。详细解释可以参考SMPP协议。 意识是头2个字节是Token标记。再接2个字节是该参数的长度。Value部分为Length * 8octet。
回页首
|
如何测试正向点播业务? |
点播业务是电信测试人员发送"db"到UMS2系统。UMS2系统接收到SMGPDeliver后,将解析后的deliver数据插入到数据库中。回复点播测试的SQL(MS SQL Server)如下: --Check message content. IF @msg_content = 'db' OR @msg_content = 'DB' BEGIN --Reply automatically. INSERT INTO CMPP_SUBMIT (service_id,fee_type,fee_code,registered_delivery,dest_terminal_id,fee_terminal_type,fee_terminal_id,msg_content,link_id) VALUES ('1009','00','000000',0x01,@src_terminal_id,3,@src_terminal_id,convert(varbinary(255),'点播' + @src_terminal_id),@link_id); RETURN END 注意: 1.其中registered_delivery的高四位代表SubmitMsgType = 0(普通信息)。低四位为1表示需要收条。 2.下发的时候需要携带linkID。linkID = @linkID 3. 计费模式采用第三方计费模式。fee_terminal_type = 3,fee_terminal_id = @src_terminal_id 4. service_id是点播业务代码,fee_type,fee_code已经意义不大。
回页首
|
如何测试正向定制业务? |
电信测试人员会发送定制代码到系统。例如:定制指令是DZ,业务代码是STP100009,手机号码是02022222222。那么UMS2系统会收到SMGPDeliver消息,其总消息内容将是: DG[空格]STP100009[空格][空格]02022222222[冒号]DZ 注意: 1.DG指令和业务代码之间是一个空格;业务代码和手机号码之间是两个空格。 2.手机号码和指令之间是一个冒号。 回复该消息的SQL(MS SQL Server)如下: IF RIGHT(@msg_content,2) = 'DZ' INSERT INTO CMPP_SUBMIT RETURN 注意:
回页首
|
如何测试正向退定业务? |
正向退定的时候,电信测试人员会发送“qx”上行。这个时候UMS2系统会接收到SMGPDeliver,其中内容是“00000”。 下行应答信息如下: IF @msg_content = '00000' BEGIN --Reply automatically. INSERT INTO CMPP_SUBMIT (service_id,fee_type,fee_code,registered_delivery,dest_terminal_id,fee_terminal_type,fee_terminal_id,msg_content,link_id) VALUES ('SPT100009','03','000100',0xf0,@src_terminal_id,3,@src_terminal_id,convert(varbinary(255),'QX SPT100009 ' + @src_terminal_id),@link_id); RETURN
回页首
|
如何测试反向点播业务? |
测试反向点播业务是SP主动发送请求给网关。格式必须如下: 1. service_id是点播业务代码。 2. registered_delivery的高4位必须为d,不需要收条。所以registered_delivery = 0xd0 3. 目标地址和计费地址为接收手机号码。 4. msg_content必须使用如下格式: DG[空格]1009[空格][空格][手机号码] 5. SPDealResult缺省为0。 INSERT INTO CMPP_SUBMIT 如果反向点播成功后,UMS2会接收到网关发送的SMGPDeliver数据包,其中会带有link_id。然后利用这个link_id给用户下发相关普通信息。注意:普通消息的registered_delivery的高4位必须是0。下发的SQL语句如下: INSERT INTO CMPP_SUBMIT
回页首
|
如何测试反向定制业务? |
测试反向定制业务的流程和测试反向点播的流程基本一致,仅仅是使用的指令有所差别。
这里给出发送反向定制的例子。 INSERT INTO CMPP_SUBMIT 再得到了网关反馈的link_id(在SMGPDeliver数据包内)以后,下发普通信息。
回页首
|
如何测试反向退定业务? |
测试反向退定业务是SP主动发送反向推定指令。发送的SQL如下:
INSERT INTO CMPP_SUBMIT 注意:
回页首
|
SMGP协议错误代码表 |
0 成功 1 系统忙 2 超过最大连接数 3-9 保留 10 消息结构错 11 命令字错 12 序列号重复 13-19 保留 20 IP地址错 21 认证错 22 版本太高 23-29 保留 30 非法消息类型(MsgType) 31 非法优先级(Priority) 32 非法资费类型(FeeType) 33 非法资费代码(FeeCode) 34 非法短消息格式(MsgFormat) 35 非法时间格式 36 非法短消息长度(MsgLength) 37 有效期已过 38 非法查询类别(QueryType) 39 路由错误 40 非法包月费/封顶费(FixedFee) 41 非法更新类型(UpdateType) 42 非法路由编号(RouteId) 43 非法服务代码(ServiceId) 44 非法有效期(ValidTime) 45 非法定时发送时间(AtTime) 46 非法发送用户号码(SrcTermId) 47 非法接收用户号码(DestTermId) 48 非法计费用户号码(ChargeTermId) 49 非法CP 代码 50 非预付费用户 51 余额不足 52 非注册用户 53 非注册CP 54 账号不可用 55 扣费失败 56-127 保留 128-254 厂家自定义 255 未知错误
回页首
|
SMPP协议错误代码表 |
1、由ESME提交到短消息中心时,短消息中心回复的错误代码表: #define smppEsmeROK_M 0 /* no error code given */ #define smppEsmeRInvMsgLen_M 1 /* Invalid Message Length */ #define smppEsmeRInvCmdLen_M 2 /* Invalid Command Length */ #define smppEsmeRInvCmdId_M 3 /* Invalid Command ID */ #define smppEsmeRInvBndSts_M 4 /* Invalid bind status */ #define smppEsmeRAlyBnd_M 5 /* Bind attempted when already bound */ #define smppEsmeRInvPrtFlg_M 6 /* Invalid priority flag */ #define smppEsmeRInvRegDlvFlg_M 7 /* Invalid registered-delivery flag */ #define smppEsmeRSysErr_M 8 /* SMSC system error */ #define smppEsmeRInvPar_M 9 /* Invalid parameter */ #define smppEsmeRInvSrcAdr_M 10 /* Invalid source address */ #define smppEsmeRInvDstAdr_M 11 /* Invalid destination address */ #define smppEsmeRInvMsgId_M 12 /* Invalid message-id */ #define smppEsmeRInvPaswd_M 13 /* Invalid password */ #define smppEsmeRInvPaswdLen_M 14 /* Invalid password length */ #define smppEsmeRInvSysIDSrv_M 15 /* Invalid System-ID */ #define smppEsmeRCntCanMsg_M 16 /* Cannot cancel a message */ #define smppEsmeRInvDatFmt_M 17 /* Invalid date format */ #define smppEsmeRCntRepMsg_M 18 /* Cannot replace a message */ #define smppEsmeRMsgQFul_M 19 /* Too many message in queue, at present */ #define smppEsmeRSerNotSup_M 20 /* Service not supported */ #define smppEsmeRInvRepAddr_M 22 /* Address Mismatch in Replacement attempt */ /* the following is added by shenm. at 99/11/16 */ #define smppEsmeRInvAreaCode_M 50 /* Invalid area code of ESME */ /*为固定电话增加*/ #define smppEsmeAuthFail_M 60 /*Authentication fail*/ #define smppEsmeDestUseBusy_M 61 /*destinantion user busy*/ #define smppEsmeMemCap_M 62 /*话机内存满*/ #define smppEsmeRInvGwMsgId_M 63 /*无效的网关msgid*/ #define smppEsmeInstMsgIdFail_M 64 /*插入网关msgid失败*/ #define smppEsmeRUnknownErr_M 0xFF /* Unknown Error */
回页首
|
短消息中心下发给CTSI时,CTSI回复给短消息中心的错误代码表 |
// new error code lide add 2002.05.08 #define smppCtsiUserAbsent 0x0400 #define smppCtsiUserBusy 0x0401 #define smppCtsiNoPart 0x0402 #define smppCtsiUserInvalid 0x0403 #define smppCtsiBlackList 0x0404 #define smppCtsiSysError 0x0405 #define smppCtsiMemCap 0x0406 #define smppCtsiProtocolError 0x0407 #define smppCtsiDataError 0x0408 #define smppCtsiDataMissing 0x0409 #define smppGateWayUserBusy 0x0410
回页首
|
短消息中心收条处理 |
(1) 短消息中心在给ESME代理机deliver回执短消息时把esm_class置为xx0001xx,表示为回执短消息。ESME代理机向短消息中心submit回执短消息时,把submit的esm_class字段置为xx0010xx,表示为回执短消息。 (2) 回执短消息的信息包含在短消息消息包的字段short_message中,其格式如下: 字段 长度 数据类型 说明 短信状态表: 错误代码表
回页首
|
ISMAP错误代码(返回给SP为 12××××) |
类别 结果码 描述 Success 0 Success 成功 Protocol error协议相关错误 General error通用错误 1 Length of PDU is invalid(greater than 30K or less than zero)消息长度非法 2 Failed to decode the PDU(lack of fields or field type invalid)消息解码错误 6 Service enabler has not binded yet业务系统链接未建立 7 Timeout while waiting for the response message等待应答超时 8 Timeout while waiting for the confirmation message等待确认消息超时 Field error or others字段及其他相关错误 100 Field value is invalid(not expected or error)字段值无效 101 Source device type is out of range源设备类型无效 105 Timestamp field is in a bad format时间戳字段格式错误 506 Database error(Database connection broken, SQL syntax invalid)数据库错误 Subscriber related error用户相关错误 Subscriber related error用户相关错误 1001 The subscriber does not exist用户不存在
回页首
|
正向业务测试用全部SQL(For Sql Server) |
DROP TRIGGER cmpp_dispatcher GO CREATE TRIGGER cmpp_dispatcher DECLARE @registered_delivery INT --Select parameter from inserted message. --Only process normal message. --Check message content. IF RIGHT(@msg_content,2) = 'DZ' INSERT INTO CMPP_SUBMIT RETURN IF @msg_content = '00000' RETURN RETURN
回页首
|
如何从SMGP 3.0平台实施2.0平台客户的反向退定! |
一般来说,反向退订需要一个LinkID,而2.0平台中是没有的。在3.0中无LinkID直接退定,会返回错误。 但是SP在导入电信管理平台前,需要提供一份需要导入的定购关系文件。然后用这个文件中自定义的LINKID下发反向取消。就可以解决这个问题。
回页首
|
湖北省电信错误代码表 |
505 系统错误 506 数据库错误,没找到记录或其他错误 1001 用户不存在 1002 用户为停机状态 1003 用户欠费 1004 用户被列入黑名单 1005 用户状态异常 2000 Sp不存在 2001 Sp状态异常 2100 业务不存在 2101 业务状态异常 1100 业务对此用户不开放 2200 不能下发帮助消息 3103 没有对应的计费信息 1201 定购关系不存在 9999 透传(高信用度sp) 801 更新消费累计失败 802 获得区号失败 803 读取系统参数失败 804 获取指令类型失败 805 临时定购关系不存在 806 SLP执行存储过程失败 807 错误的指令解析 808 点播关系不存在 809 点播上下行不一致 810 超过允许下发点播次数或超时 811 计费分析错误 812 流程参数不正确 813 超过定购下发次数(02.01) |
给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
SMGP 3 0协议 多问多答相关推荐
- SMGP 3.0协议(多问多答)
内容列表 SMGP 3.0协议有哪些变化 哪些TLV字段必须支持? 什么是TLV字段? 如何测试正向点播业务? 如何测试正向定制业务? 如何测试正向退定业务? 如何测试反向点播业务? 如何测试反向定制 ...
- 一问一答知晓三方协议
一问一答知晓三方协议 智联招聘 日期: 2011-10-17 http://article.zhaopin.com/pub/view/194763-25558/一问一答知晓三方协议.html ...
- 转:WCF基础知识问与答
WCF基础知识问与答 学习WCF已有近两年的时间,其间又翻译了Juval的大作<Programming WCF Services>,我仍然觉得WCF还有更多的内容值得探索与挖掘.学得越多, ...
- Cocos论坛九问九答
今天周未,Shawn将之前在Cocos论坛中回答的问题,整理了部分继续我的分享之路! 1. 既然有这么流畅的Cocos界面,为什么应用使用它来做H5界面 问:既然有这么流畅的Cocos界面.为什么应用 ...
- 【你问我答】你与Java大牛的距离,只差这24个问题
点击上方"公众号"可以订阅哦 上周我们做了第一期"你问我答"活动,没想到有那么多读者进行了提问,受宠若惊. 问题比较多也比较杂,王锐老师很认真地给出了一些答案, ...
- PCIe 每日一问一答
以下转载自[毅力挑战]PCIe 每日一问一答(2022.03 归档)-阿里云开发者社区 一位有毅力的大神 2022.03.01 - PCIe Retimer 是什么? 随着 PCIe 的迭代,传输速率 ...
- SMGP3.0协议的概念知识
该项目主页在https://code.google.com/archive/p/smgp/,可以使用VPN进去看看,该项目是开源的,根据SMGP3.0协议写的API,我们要用的话直接调用就好了,这里主 ...
- 8问8答,一篇文章读懂空间音效
近日,第一届网易集团创新奖评选落下帷幕,网易智企"逼近人耳极限-音频通话"项目从众多参赛作品中脱颖而出,荣获"0-1创新奖"三等奖. 此次获奖的项目诞生于网易智 ...
- mysql数据库索引页号为什么从3开始_MySQL数据库快问快答
原标题:MySQL数据库快问快答 前言 今天楼主给大家列一下关于数据库几个常见问题的要点,如果大家对其中的问题感兴趣,可以自行扩展研究. 1. UNION ALL 与 UNION 的区别 UNION和 ...
最新文章
- 通过源代码研究ASP.NET MVC中的Controller和View(二)
- InfoPath表单每增加一个表单产生一个自动增加ID序号
- 百斗度输入法linux,斗字输入法安卓版-斗字输入法app下载-最火软件站
- IOS开发基础之手势解锁项目案例
- Qt之QAbstractItemView视图项拖拽(二)
- xpath定位中详解id 、starts-with、contains、text()和last() 的
- vmware ethx的修改
- 人生值得珍藏的80句话
- java ajax_Ajax Java示例
- Apache DolphinScheduler 3.0.0 正式版发布!
- 现在企业常用考勤软件
- c百分号输出格式汇总
- 邮政挂号信终于可以网上查询了
- 安卓实现饿了么点餐界面效果(京东类别左右列表联动)
- 域名过期了,但是备案信息还是我的,网站被人举报涉黄怎么办?
- Python爬虫进阶(十):实战,Scrapy爬取贴吧
- 小米会成为三星没落的因素吗?
- 中国互联网20周年谈----GITC 2014
- 数据结构的学习_4.2 矩阵的压缩存储(对称矩阵)
- 串口---串口通信数据位长度对传输数据的影响