资源描述
中国电信集团公司文件中国电信20081451号关于印发中国电信短消息网关协议规范(V3.1)的通知集团公司各省级分公司,股份公司并转各省级分公司:为更好地适应全业务经营的需要,集团公司组织上海研究院对2005年下发的中国电信短消息网关协议规范(V3.0)(中国电信2005J240号)进行了修订,形成了中国电信短消息网关协议(SMGP)规范(V3.1),现印发你们,请参照执行。中国电信集团公司技术标准Q/CT2069-2008中国电信短消息网关协议(SMGP)规范(V3.1)20081210实施2008J2J0发布中国电信集团公司发布II录I前言III1范用12规范性引用文件13名词术语和缩略语13.1名词术语13. 2缩略语14 SMGP协议概述14.1定义14.2通信方式14. 2.1长连接14.2.2短连接24.3协议应用及涉及的端口号34. 3.1固定网短消息业务34. 3.2移动网短消息业务54. 3.3基于短消息的电子商务业务55 SMGP协议65. 1数据类型65. 1.1基本数据类型65. 1.2可选参数65.2消息结构65. 2.1消息头结构65. 2.2消息体结构66 SMGP扩展协议126. 1SMGP协议扩展计费接I1126. 1.1消息头扩展126. 1.2消息体扩展126.2SMGP协议扩展电子商务接口156. 2.1消息头扩展156. 2.2消息体扩展157参数定义187. 1消息头参数描述187. 2消息体必选参数描述197. 3消息体可选参数描述328基J:SMGP协议的API函数37附录A基于SMGP协议的API函数说明38A.1基本耍求38A.1.1安装38A.1.2例子程序38A.1.3操作系统平台要求38A.2API数据结构说明(以C语言为例)38A.2.1接收短消息的返回数据结构(DeliverResp)38A.2.2获取群发短消息的返回数据结构(SendBatchResp)39A.2.3查询短消息网关的返回数据结构(QueryResp可选)39A.3API函数说明39A.3.1初始化API(InitSMGPAPI)39A.3.2发送单条短消息(SMGPSendSingle)40A.3.3群发短消息(SMGPSendBatch)40A.3.4获取群发短消息的结果(GetSendBatchResp)41A.3.5接收短消息(SMGPDeliver)42A.3.6检查短消息网关是否能够提供服务(MPActiveTest)42A.3.7査询短消息流量(SMGPQuery可选)42A.4配置SMGPAPI42A.5短消息的自动分割功能43A.6错谋代码含义43附录B短消息群发功能的实现45I本规范是依据SMGP协议V3.0的相关内容,结合中国电信C网业务网络SMS的特点进行编写,随着中国电信业务网络SMS的发展完善,还将制定后续的相关规范要求。本规范规定了短消息网关与其它网元Z间进行短消息传输的接II协议。本标准共包含3部分:1、SMGP基本协议;2、SMGP协议扩展计费接II;3、SMGP协议扩展电子商务接II。本文只描述了第1部分SMGP基本协议,第2部分和第3部分同SMGP协议V2.0o本标准由中国电信集团公司提出并归11。本标准起草单位:中国电信股份有限公司上海研究院本标准主要起草人:蒋力施唯佳葛敏顾丽丽周文君王建31范围本协议适用短消息网络上(固定网.移动网)短消息网关与其它网元Z间进行短消息的传输。本协议适用j:短消息网关、相关网元设备开发商及内容提供商。2规范性引用文件卜列文件通过本文的参考而成为本规范的条款。凡是注口期的参考文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用J本文,凡是不注口期的参考文件,其最新版本适用于本文。1 中国电信短消息网关协议(SMGP)30【2】中国电信CDNIA业务网络设备技术规范一短消息业务网关(SMSGW)设备技术规范3名词术语和缩略语3. 1名词术语ESME:外部短消息实体,通常通过SMPP协议接入到短消息中心。SMSC:短消息业务中心,提供短消息的存储、转发等功能。SMGW:短消息业务接入网关,提供短消息与外部网络的互通和短信增值业务的接入等功能。3.2缩略语缩略语英文解释中文解释ESMEExternalShortMessageEntity外部短消息实体SPServiceProvider服务提供商SMSCShortMessageServiceCenter短消息业务中心SMGPShortMessageGatewayProtocol短消息网关协议SMGWShortMessageGateway短消息网关SMPPShortMessagePointtoPointProtocol短消息点到点协议4 SMGP协议概述4. 1定义SMGP协议是SMGW与其它网元设备(除SMC外)进行短消息传输的接II协议。非SMC网元设备向SMGW发送或从SMGW接收短消息,这些非SMC网元设备称为ESNIEo4. 2通信方式SMGW与ESME之间共有两种连接方式:长连接和短连接。所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发链路检测包以维持此连接。短连接是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接,即每次TCP连接只完成一对SMGP消息的发送。4.2.1长连接通信双方以客户服务器方式建立TCP连接,用J:双方信息的和互提交。当信道上没有数据传输时,通信双方应每隔时间C发送链路检测包以维持此连接,当链路检测包发出超过时间T后未收到响应,应立即再发送链路检测包,再连续发送N1次后仍未得到响应则断开此连接。参数C、T、N原则上应可配置,现阶段建议取值为:C=3分钟,T=60秒,N=3o通信双方之间的消息如果不能成功发送,应隔时间R进行重发,再连续发送N1次后仍未发送成功则停发。现阶段建议取值为:R=60秒,N=3o通信双方之间的消息发送后等待T秒后未收到响应,应立即重发,再连续发送N1次后仍未得到响应则停发。现阶段建议取值为:T=60秒,N=3o中国电信短消息网关SMGP接口协议规范(V3.1)1消息采用并发方式发送,加以滑动窗11流鼠控制,窗II人小参数W可配置,现阶段建议为16,即接收方在应答前一次收到的消息最多不超过16条。长连接的操作流程举例如图4.1所示:滑动窗口不大丁图4.1长连接操作流程4.2.2短连接通信双方以客户服务器方式建立TCP连接,应答与请求在同一个连接中完成。系统采中国电信短消息网关SMGP接口协议规范(V3.1)用客户/服务器模式,操作以客户端驱动方式发起连接请求,完成一次操作后关闭此连接。通信双方之间的消息发送后等待T秒后未收到响应,应立即重发,再连续发送N1次后仍未得到响应则停发。现阶段建议取值为:T=60秒,N=3o短连接的操作流程举例如图4.2所示:4.3协议应用及涉及的端口号SMGP协议在中国电信中的应用主耍体现在两类短消息业务上:一类是固定网短消息业务,另一类是移动网短消息业务。4.3.1固定网短消息业务图4.3固定网短消息业务系统结构简图固定网短消息业务系统结构简图如图4.3所示.SMGP协议在固网短消息系统中应用情况如卜:(1) 二级SMGW与SP二级SMGW与SP之间采用SMGP协议进行短消息的传输,端II号为8890,二级SMGW为服务器端,SP为客户端;(2) 二级SMGW与一级SMGW二级SMGW与一级SMGW之间采用SMGP协议进行短消息的传输,端II号为8900,二级SMGW与一级SMGW互为客户/服务器端;二级SMGW与一级SMGWZ间采用SMGP协议扩展计费接I1(参见SMGPV2.0)进行计费信息的传输,端II号为8900,二级SMGW作为服务器端,一级SMGW作为客户端;(3) 一级SMGW与SP一级SMGW与SP之间采用SMGP协议进行短消息的传输,端II号为8890,级SMGW为服务器端,SP为客户端;(4) 二级SMGW和PHS预付费平台二级SMGW与PHS预付费平台2间采用SMGP协议扩展计费接I1(参见SMGP20)进行计费信息的传输,端II号为9100,预付费平台作为服务器端,二级SMGW作为客户端。#中国电信短消息网关SMGP接口协议规范(V3.1)4.3.2移动网短消息业务图4.4移动网短消息业务系统结构简图移动网短消息业务系统结构简图如图4.4所示oSMGP协议在移动网短消息系统中应用情况如下:(1) SMGW与SPSMGW与SPZ间采用SMGP协议进行短消息的传输,端II号为8890,SMGW为服务器端,SP为客户端;(2) SMGW与SMGWSMGW与SMGWZ间采用SMGP协议进行短消息的传输,端II号为8900SMGW与SMGW互为客户/服务器端;4.3.3基于短消息的电子商务业务基J短消息的电子商务业务系统结构简图如图4.5所示oSMGP协议在基短消息的电子商务业务中应用情况如卜:(1)二级短信综合网关与专业SP二级短信综合网关与专业SP之间通过SMGP协议扩展电子商务接I1开展基短消息的电子商务业务,端II号为9001,二级短信综合网关为服务器端,SP为客户端;(2)二级短信综合网关与一级短信综合网关二级短信综合网关与一级短信综合网关之间通过SMGP协议扩展电子商务接门开展基J:短消息的电子商务业务,端II号为9001,二级短信综合网关与一级短信综合网关互为客户/服务器端;5 SMGP协议5.1数据类型5.1.1基本数据类型Integer无符号整数OctetString不强制以0x00结尾的定长字符串。当位数不足时,在不明确注明的情况卜,应左对齐,右补0x00o在明确注明的情况F,以该字段的明确注明为准。5.1.2可选参数可选参数采用TLV(Tag、Length.Value)形式定义,每个可选参数的Tag、LengthsValue的定义见6.3节。字段长度(字节)数据类型说明Tag2Integer字段的标签,用J唯一标识可选参数Length2Integer字段的长度Aalue可变长度可变类型字段内容5.2消息结构项目说明MessageHeader消息头(所有消息公共包头)MessageBody消息体5.2.1消息头结构字段长度(字节)数据类型说明参考PacketLength4Integer数据包长度7.1.1RequestID4Integer请求标识7.1.2SequencelD4Integer消息流水号7.135.2.2消息体结构5.2.2.1登录操作(Login)Logm操作的目的是客户端向服务器端注册作为一个合法客户端身份,若注册成功后即建立了应用层的连接,此后客户端可以与此服务器端进行消息的接收和发送。服务器端以Logm_Resp消息响应客户端的请求。5.2.2.1.1Login字段长度(字节)数据类型说明参考必选ClientID8OctetString客户端用来登录服务器端的用户账号。7.2.1参数Authenticatoi-Client16OctetStiiiig客户端认证码,用来鉴别客户端的合法性。7.2.2LoginMode1Integer客户端用来登录服务器端的登录类型。7.2.3TimeStamp4Integer时间戳7.2.4Clientrsion1Integer客户端支持的协议版本号7.2.55.2.2.1.2LoginResp字段长度(字节)数据类型说明参考必选参数Status4Integer请求返回结果7.2.6AuthenticatorServer16OctetString服务器端返回给客户端的认证码7.2.7SenrerVersion1Integer服务器端支持的最高版本号7.2.85. 2.2.2SP向SMGW提交短消息的操作(Submit)5. 2.2.2.1Submit字段长度(字节)数据类型说明参考必MsgType1Integer短消息类型7.2.9选NeedReport1IntegerSP是否要求返回状态报dt7.2.10Pnority1Integer短消息发送优先级7.2.11参Sen-icelD10OctetStrmg业务代码7.2.12FeeType2OctetStrmg收费类型7.2.13数FeeCode6OctetStrmg资费代码7.2.14FixedFee6OctetStrmg包月费/封顶费7.2.15MsgFomiat1Integer短消息格式7.2.16XalidTime17OctetStrmg短消息有效时间7.2.17AtTime17OctetStiiiig短消息定时发送时间7.2.18SrcTennlD21OctetStiiiig短信息发送方号码7.2.19ChargeTennlD21OctetStiiiig计费用户号码7.2.20DestTennlDCount1Integer短消息接收号码总数7.2.21DestTemilD21*DestTermCountOctetString*短消息接收号码7.2.22MsgLength1Integer短消息长度7.2.23MsgContentMsgLengthOctetStrmg短消息内容7.2.24Resen-e8OctetStiiiig保留7.2.25可选参数字段数据类型说明参考TPpidTLVGSM协议类型7.3.2TPudhiTLVGSM协议类型733LinkIDTLV交易标识7.3.4MsgSrcTLV信息内容的來源7.3.17ChargeUserTypeTLV计费用户类型7.3.5ChargeTermTypeTLV计费用户的号码类型7.3.6ChargeTemiPseudoTLV计费用户的伪码7.3.7DestTennTypeTLV短消息接收方号码的类型7.3.8DestTeniiPseudoTLV短消息接收方的伪码7.3.9PkTotalTLV相同MsgLD的消息总条数7.3.10PkNumberTLV相同MsgID的消息序号7.3.11SubmitMsgTypeTLVSP发送的消息类型7.3.12SPDealResultTLVSP对消息的处理结果7.3.13MSemcelDTLV业务代码(用于移动网业务)7.3.19短信平台支持短信的群发功能,关于短信群发功能的实现请参阅“附录B短消息群发功能的实现”。5.2.2.2.2Submit.Resp字段长度(字节)数据类型说明参考必选参数MsgID10OctetStrmg短消息流水号7.2.26Status4Integer请求返回结果7.2.65.2.2.3SMGW向SP下发短消息的操作(Deliver)5.2.2.3.1Deliver字段长度(字节)数据类型说明参考必MsgID10OctetStiiiig短消息流水号7.2.26IsReport1Integer是否为状态报告7.2.27MsgFomiat1Integer短消息格式7.2.16选参数RecvTime14OctetStiiiig短消息接收时间7.2.28SrcTennlD21OctetStiiiig短消息发送号码7.2.19DestTemilD21OctetStiiiig短消息接收号码7.2.22MsgLength1Integer短消息长度7.2.23MsgContentMsgLengthOctetStiiiig短消息内容7.2.24Reserve8OctetStiiiig保留7.2.25可选参数字段数据类型说明参考TPpidTLVGSM协议类型7.3.2TPudhiTLVGSM协议类型7.33LinkIDTLV交易标识7.3.4SrcTemiTypeTLV短消息发送方的号码类型7.3.14SrcTennPseudoTLV短消息发送方的伪码7.3.15SubmitMsgTypeTLVSP发送的消息类型7.3.12SPDealResultTLVSP对消息的处理结果7.3.135.2.2.3.2DeIiverResp字段长度(字节)数据类型说明参考必选参数MsgID10OctetStiiiig短消息流水号7.2.26Status4Integer请求返回结果7.2.65.2.2.4源SMGW向目的SMGW转发短消息的操作(Forward)5.2.2.4.1Forward字段长度(字节)数据类型1说明参考必MsgID10OctetStiing短消息流水号7.2.26DestSMGWNo6OctetString目的SMGW代码7.2.29选SrcSMGWNo6OctetString源SMGW代码7.2.30SMCNo6OctetStiing短消息中心代码7.2.31参MsgType1Integer短消息类型7.2.9ReportFlag1hiteger状态报告标志7.2.32数Pnority1hiteger短消息发送优先级7.2.11SendcelD10OctetString业务代码7.2.12FeeType2OctetString资费类型7.2.13FeeCode6OctetString资费代码7.2.14FixedFee6OctetString包月费/封顶费7.2.15MsgFoimat1Integer短消息格式7.2.16XalidTime17OctetString有效时间7.2.17AtTime17OctetStiing定时发送时间7.2.18SrcTennlD21OctetString短消息发送用户号码7.2.19DestTemilD21OctetStiing短消息接收用户号码7.2.22ChargeTeniilD21OctetString计费用户号码7.2.20MsgLength1Integer短消息长度7.2.23MsgContentMsgLengthOctetStiing短消息内容7.2.24Reserve8OctetString保留7.2.25可选参数字段数据类型说明参考TPpidTLVGSM协议类型7.3.2TPudhiTLVGSM协议类型7.3.3LinkIDTL交易标识7.3.4ChargeUserTypeTLV计费用户类型735NodesCountTUV经过的网关数量7.3.16MsgSrcTLV信息内容的来源7.3.17ChargeTemiPseudoTL计费用户的伪码7.3.7SrcTennPseudoTLV短消息发送方的伪码7.3.14DestTeniiPseudoTLV短消息接收方的伪码7.3.15SrcTypeTLV传递给SP的源号码的类型7.3.18PkTotalTLV相同MsgID的消息总条数7.3.10PkNumberTLV相同MsgID的消息7.3.11SubmitMsgTypeTUVSP发送的消息类型7.3.12SPDealResultTLVSP对消息的处理结果7.3.13MSeivicelDTLV业务代码(用移动网业务)7.3.195.2.2.4.2Forward_Resp型类据数说必选参数DglMs10tilsast4regte6z7可选参数段字TL7TL5. 2.2.5链路检测操作(Active_Test)本操作仅适用j:通信双方采用长连接通信方式时用j:保持连接。5.2.2.5.1ActiveTest无消息体。5.2.2.5.2ActiveTestResp无消息体。5.2.2.6请求关闭连接的操作(Exit)Exit操作的目的是客户端或服务器端基J某些原因决定拆除当前的应用层连接而发起的操作。此操作完成后客户端与服务器端的应用层连接被释放,此后通信时应由客户端重新发起Login操作。5.2.2.6.1Exit无消息体。5.2.2.6.2Exit_Resp无消息体。5.2.2.7SP向SMGW查询短消息发送状态的操作(Query,可选)5.2.2.7.1Query字段长度(字节)数据类型说明参考必选参数QueiyTime8OctetStimg査询时间7.2.33QueryType1Integer査询类别7.2.34QueryCode10OctetStrmg査询码7.2.355.2.2.7.2QueryResp字段长度(字节)数据类型说明参考必选参数QueiyTune8OctetStiing査询时间7233QueryType1Integer查询类别7.2.34QueiyCode10OctetStiing査询码(业务类型)7.235MTTLMsg4Integer接收短消息总数7.236中国电信短消息网关SNIGP接口协议规范(V3.1)11MT_Tlusr4Integer接收用户总数7.237MT_Scs4Integer成功转发数量7.2.38MTJVT4Integer待转发数量7.2.39MT_FL4Integer转发失败数量7.2.40MO_Scs4Integer成功送达数量7.2.41WIO_WT4Integer待送达数量7.2.42WIO_FL4Integer送达失败数量7.2.43Reverse8OctetStiing保留7.2.256 SMGP扩展协议6.1SMGP协议扩展计费接口SMGP协议扩展计费接II在SMGP协议的基础上扩展了三种操作:(1)Payinent_Request扣款请求(2)Payinent_Afiinn扣款确认(3)Queiy_UserState查询用户状态6.1.1消息头扩展消息头部分主要扩展了请求标识(RequestID),参考7丄2。6.1.2消息体扩展6. 1.2.1扣款请求(Payment_Request)6.1.2.1.1Payment_Request字段长度(字节)数据类型说明参考必PayMsgID20OctetStiiiig短消息流水号7.2.45选PayMsgType2Integer短消息类型,用来表示短消息的消息流向7.2.46参ChargeTennlD21OctetStrmg计费用户号码7.2.20SPCode8OctetStiiiigSP服务代码7.2.58数SrcTennlD21OctetStiiiig短信息发送方号码7.2.19DestTemilD21OctetStrmg短消息接收号码7.2.22SemcelD10OctetStrmg业务代码7.2.12FeeType2OctetStrmg刈计费用户采取的资费类型7.2.13FeeCode6OctetStrmg资费代码,每条短消息的信息费7.2.14FixedFee6OctetStrmg包月费/封顶费7.2.15Pnority1Integer短消息发送优先级7.2.11MsgLength1Integer短消息长度7.2.23AieaCode4OctetStrmg计费用户归属地的区号7.2.44SMGNo6OctetStrmg产生本条消息的SMGW代码7.2.47NxtNwkNd6OctetStrmg下级网元代码7.2.48PreNwkNd6OctetStrmg上级网元代码7.2.67RecvTime14OctetStrmg短消息接收时间7.2.27DoneTime14OctetStrmg短消息处理完成的时间7.2.49CdrType1Integer话单类型。该字段保留7.2.50Reserve8OctetStiiiig保留7.2.28注:(1)Payment_Request指令中,FeeType,FeeCode,FixedFee字段表示信息费的资费,预付费币台应根据FeeType,FeeCode,FixedFee字段对用户进行信息费扣费;(2)预付费平台应根据PayMsgType字段确定短消息的消息流向,如果是MO消息,贝IJ对用户进行通信费扣费。6.1.2.1.2PaymentRequestResp字段长度(字节)数据类型说明参考必选参数ResultNotifyCode1Integer计费确认标识码7.2.51Status4Integer请求返回结呆7.2.66.1.2.2扣款确认(Payment_Affirm)中国电信短消息网关SMGP接口协议规范(31)136.1.2.2.1PaymentAffirm字段长度(字节)数据类型说明参考必选参数PayMsgID20OctetStiiiig短消息流水号7.2.45ReportStatiis1Integer消息状态7.2.52FeeAddr21OctetStiiiig计费用户地址7.2.53Resen-e8OctetStiiiig保留7.2.286.1.2.2.2PaymentAffirmResp字段长度(字节)数据类型说明参考必选参数Status4Integer请求返回结呆7.2.66.1.2.3查询用户状态(Query_UserState)6.1.2.3.1QueryUserState字段长度(字节)数据类型说明参考必选参数QueiyUserAddr21OctetStiiiig査询用户号码7.2.54SMGNo6OctetString产生本条消息的SMGW代码7.2.47Resen-e8OctetStiiiig保留7.2.286.1.2.3.2QueryUserStateResp字段长度(字节)数据类型说明参考UserStatus1OctetString用户状态7.2.55Count4Integer预付费帐户上的余额7.2.56Reserve8OctetString保留7.2.28字段长度(字节)数据类型说明参考必选UserStatus1OctetStiiiig用户状态7.2.55Count4Integer预付费帐户上的余额7.2.56参数Reserve8OctetStiiiig保留7.2.286.2SMGP协议扩展电子商务接口为了实现电子商务实时交易,对SMGP协议的消息体进行了扩展,增加了Traiisaction操作及TranFwd操作,本部分主耍对这两个消息体进行具体定义。6. 2.1消息头扩展SMGP协议扩展电子商务接II在SMGP协议的某础上扩展了请求标识(RequestID),参考7.1.2。&2.2消息体扩展6. 2.2.1交易操作(Transaction)6.2.2.1.1Transaction字段长度(字节)数据类型说明参考必选参数Status4Integer对卜发指令执行的状态报告7.2.6PayMsgID20OctetStiiiig短消息流水号7.2.45MsgType1Integer短消息类型,用来表示短消息的消息流向7.2.9MsgFoiinat1Integer短消息编码格式7.2.16SrcTennlD21OctetStiiiig短信息发送方号码7.2.19DestTennlD21OctetStiiiig短消息接收号码7.2.22SessioiiID20OctetStiiiig由CTSI服务器产生的会话号7.2.57SeivicelD10OctetStiiiig业务代码7.2.12SPCode8OctetStiiiigSP服务代码7.2.58DesMode1Integer加密设置,表示对ReqMsgCont数据域的加密方式7.2.59TeirnlD9Integer终端序列号7.2.60ICCardID15OctetStiiiigIC卡序列号7.2.61KeySenalNo1Integer密钥代码7.2.62IIType1Integer信息交互类型7.2.63MsgLength2Integer短消息长度7.2.23ReqMsgContVarmax254OctetStiiiig请求消息体7.2.65Reserve8OctetStiiiig保留7.2.286.2.2.1.2Transactionresp字段长度(字节)数据类型说明参考必选参数Status4Integer请求返回结果7.2.6PayMsgID20OctetStiiiig短消息流水号7.2.45MsgType1Integer短消息类型,用来表示短消息的消息流向7.2.9NeedReport1Integer是否要求返回状态报告7.2.10FeeType2OctetStrmg刈计费用户采取的资费类型7.2.13FeeCode6OctetStiiiig资费代码,每条短消息的信息费7.2.14FixedFee6OctetStiiiig包月费/封顶费7.2.15MsgFomiat1Integer短消息编码格式7.2.16SrcTennlD21OctetStiiiig短信息发送方号码7.2.19ChargeTennlD21OctetStiiiig计费用户号码7.2.20DestTemilD21OctetStiiiig短消息接收号码7.2.22SessioiiID20OctetStiiiig由CTSI服务器产生的会话号。7.2.57SeivicelD10OctetStiiiig业务代码7.2.12SPCode8OctetStiiiigSP服务代码7.2.58DesMode1Integer加密设置,表示对RspMsgCont数据域的加密方式7.2.59AckDesMode1Integer应答信息的加密模式7.2.59TemilD9Integer终端序列号7.2.60ICCardID15OctetStiiiigIC卡的序列号7.2.61KeySerialNo1Integer密钥代码7.2.62IIType1Integer信息交互类型7.2.63MsgLength2Integer短消息长度7.2.23RspMsgContMsgLengthOctetStiiiig响应消息体7.2.66Resen-e8OctetStiiiig保留7.2.286.2.2.2转发交易(TranFwd)6.2.2.2.1TranFwd字段长度(字节)数据类型说明参考必选参数Status4Integer对卜发指令执行的状态报告7.2.6DestSMGWNo6OctetStrmg目标SMGW代码7.2.29SrcSMGWNo6OctetStrmg源SMGW代码7.230SMCNo6OctetStiiiig发送方短消息中心代码7.2.31PayMsgID20OctetStiiiig短消息流水号7.2.45MsgType1Integer短消息类型,用来表示短消息的消息流向7.2.9MsgFomiat1Integer短消息编码格式7.2.16SrcTennlD21OctetStiiiig短信息发送方号码7.2.19DestTemilD21OctetStiiiig短消息接收号码7.2.22SessioiiID20OctetStiiiig由CTSI服务器产生的会话号。7.2.57SemcelD10OctetStiiiig业务代码7.2.12SPCode8OctetStiiiigSP服务代码7.2.58DesMode1Integer加密设置,表示对ReqMsgCont数据域的加密方式7.2.59TemilD9Integer终端序列号7.2.60ICCardID15OctetStiiiigIC卡的序列号7.2.61KeySenalNo1Integer密钥代码7.2.62IIType1Integer交互信息类型7.2.63MsgLength2Integer短消息长度7.2.23ReqMsgContVarmax254OctetStiiiig请求消息体7.2.65Resen-e8OctetStiiiig保留7.2.286.2.2.2.2TranFwdresp字段长度(字节)数据类型说明参考必选参数Status4Integer请求返回结呆7.2.6DestSMGWNo6OctetStrmg目标SMGW代码7.2.29SrcSMGWNo6OctetStrmg源SMGW代码7.230SMCNo6OctetStiiiig发送方短消息中心代码7.2.31PayMsgID20OctetStiiiig短消息流水号7.2.45MsgType1Integer短消息类型,用来表示短消息的消息流向7.2.9NeedReport1Integer是否要求返回状态报告(0=不要求,1=要求)7.2.10FeeType2OctetStrmg对计费用户采取的资费类型7.2.13FeeCode6OctetStiiiig资费代码,每条短消息的信息费7.2.14FixedFee6OctetStiiiig包月费/封顶费7.2.15MsgFomiat1Integer短消息编码格式7.2.16SrcTennlD21OctetStiiiig短信息发送方号码7.2.19ChargeTemilD21OctetStiiiig计费用户号码7.2.20DestTemilD21OctetStiiiig短消息接收号码7.2.22SessioiiID20OctetStiiiig由CTSI服务器产生的会话号。7.2.57SeivicelD10OctetStiiiig业务代码7.2.12SPCode8OctetStiiiigSP服务代码7.2.58DesMode1Integer加密设置,表示对ReqMsgCont数据域的加密方式7.2.59AckDesMode1Integer应答信息加密模式7.2.59TemilD9Integer终端序列号7.2.60ICCardID15OctetStiiiigIC卡的序列号7.2.61KeySenalNo1Integer密钥代码7.2.62IIType1Integer交互信息类型7.2.63MsgLength2Integer短消息长度7.2.23RspMsgContMsgLengthOctetStiiiig响应消息体7.2.66Reserve8OctetStiiiig保留7.2.287参数定义7.1消息头参数描述7. 1.1PacketLengthSMGP数据包长度,指包头和包体的长度之和。单位是“字节”。7. 1.2RequestId请求标识表示SMGP数据包的类型,请求包的请求标识和应答包的请求标识一一对应。SMGP协议的请求标识定义如卜:请求名称请求标识说明Logm0x00000001客户端登录LogmResp0x80000001客户端登录应答Submit0x00000002提交短消息SubmitResp0x80000002提交短消息应答Deliver0x00000003下发短消息DeliverResp0x80000003下发短消息应答ActiveTest0x00000004链路检测ActiveTestResp0x80000004链路检测应答Fonvaid0x00000005短消息前转ForwardResp0x80000005短消息前转应答Exit0x00000006退出请求ExitResp0x80000006退出应答Queiy0x00000007SP统计查询QueiyResp0x80000007SP统计查询应答QueiyTERoute0x00000008查询TE路由Queiy_TE_Route_Resp0x80000008查询TE路由应答QueiySPRoute0x00000009查询SP路由Query_SP_Route_ReSP0x80000009查询SP路由应答PaymeiitRequestOxOOOOOOOA扣款请求(用预付费系统,参见增值业务计费方案)Payment_Request_RespOxSOOOOOOA扣款请求响应(用预付费系统,参见增值业务计费方案,卜同)PaymentAffirm0X0000000B扣款确认(用预付费系统,参见增值业务计费方案)Paymeiit_Affirm_RespOxSOOOOOOB扣款确认响应(用预付费系统,参见增值业务计费方案)Queiy_UserStateoxoooooooc查询用户状态(用预付费系统,参见增值业务计费方案)Queiy_UserState_RespOxSOOOOOOC查询用户状态响应(用预付费系统,参见增值业务计费方案)GetAllTERoute0X0000000D获取所有终端路由Get_All_TE_Route_RespOxSOOOOOOD获取所有终端路由应答GetAllSPRoute0X0000000E获取所有SP路由Get_All_SP_Route_RespOxSOOOOOOE获取所有SP路由应答其它保留7. 1.3SequeneeIdSMGP消息流水号,用來匹配请求数据包和应答数据包。应答数据包的流水号字段必须与请求包的流水号字段一致。流水号字段由请求包发起方分配,取值范闱为0x00000000-OxFFFFFFFF,顺序累加,步长为b循坏使用。7.2消息体必选参数描述7.2. 1ClientID客户端用來登录服务器端的用户账号。当客户端为SP时,用户帐号为SP服务代码;当客户端为SMGW时,用户帐号为SMGW代码。7. 2.2AuthenticatorCIient客户端认证码,用來鉴别客户端的合法性。其值通过单向MD5hash计算得出,表示如F:AuthenticatorClient=MD5(ClientID+7字节的二进制0(0x00)+Sharedsecret+Timestamp)中国电信短消息网关SNIGP接口协议规范(V3.1)19Sharedsecret由服务器端与客户端事先商定,最长15字节。此处Tunestamp格式为:NBIDDHHMMSS(月口时分秒),经TuneStamp字段值转换成字符串,转换后右対齐,左补0x30得到。例如3月1口0时0分0秒,TimeStamp字段值为0X11F0E540,此处为0301000000。7.2.3LoginMode客户端用來登录服务器端的登录模式。0=发送短消息(sendmode);7.2. =接收短消息(receivemode);7.3. =收发短消息(transmitmode):其它保留。7.2.4TimeStamp时间戳。例如3月1口0时0分0秒,用于MD5计算时为0301000000,此处转换为整型数即为llF0E540o7.2.5ClientVersion客户端支持的协议版本号。高4bit表示主版本号,低4bit表示次版本号。例如0x13,表示协议版本号为1.3。7.2.6Status请求返回结果。响应包用來向请求包返回成功信息或者失败原因。SMGP协议的结果码定义如2代码含义0成功1系统忙2超过最人连接数3-9保留10消息结构错11命令字错12序列号重复13-19保留20IP地址错21认证错22版本太高23-29保留30非法消息类型(MsgType)31非法优先级(Pnority)32非法资费类型(FeeType)33非法资费代码(FeeCode)34非法短消息格式(MsgFonnat)35非法时间格式36非法短消息长度(MsgLength)37有效期已过38非法查询类别(QueryType)39
展开阅读全文