• 731.98 KB
  • 51页

QCT2069-2008短信息网关协议(SMGP)规范(V3.1)中国电信集团公司技术标准.pdf

  • 51页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'中国电信〔2008〕1451号关于印发中国电信短消息网关协议规范(V3.1)的通知集团公司各省级分公司,股份公司并转各省级分公司:为更好地适应全业务经营的需要,集团公司组织上海研究院对2005年下发的中国电信短消息网关协议规范(V3.0)(中国电信〔2005〕240号)进行了修订,形成了《中国电信短消息网关协议(SMGP)规范(V3.1),现印发你们,请参照执行。二○○八年十二月五日 标准分享网www.bzfxw.com免费下载保密等级:公开发行中国电信集团公司技术标准Q/CT2069-2008中国电信短消息网关协议(SMGP)规范(V3.1)2008-12-10发布2008-12-10实施中国电信集团公司发布 目录目录.....................................................................I前言...................................................................III1范围......................................................................12规范性引用文件.............................................................13名词术语和缩略语...........................................................13.1名词术语.................................................................13.2缩略语...................................................................14SMGP协议概述..............................................................14.1定义.....................................................................14.2通信方式.................................................................14.2.1长连接.................................................................14.2.2短连接.................................................................24.3协议应用及涉及的端口号...................................................34.3.1固定网短消息业务.......................................................34.3.2移动网短消息业务.......................................................54.3.3基于短消息的电子商务业务...............................................55SMGP协议..................................................................65.1数据类型.................................................................65.1.1基本数据类型...........................................................65.1.2可选参数...............................................................65.2消息结构.................................................................65.2.1消息头结构.............................................................65.2.2消息体结构.............................................................66SMGP扩展协议.............................................................126.1SMGP协议扩展计费接口...................................................126.1.1消息头扩展............................................................126.1.2消息体扩展............................................................126.2SMGP协议扩展电子商务接口...............................................156.2.1消息头扩展............................................................156.2.2消息体扩展............................................................157参数定义..................................................................187.1消息头参数描述..........................................................187.2消息体必选参数描述......................................................197.3消息体可选参数描述......................................................328基于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函数说明............................................................39I 标准分享网www.bzfxw.com免费下载A.3.1初始化API(InitSMGPAPI).............................................39A.3.2发送单条短消息(SMGPSendSingle)......................................40A.3.3群发短消息(SMGPSendBatch)...........................................40A.3.4获取群发短消息的结果(GetSendBatchResp)..............................41A.3.5接收短消息(SMGPDeliver).............................................42A.3.6检查短消息网关是否能够提供服务(CMMPActiveTest)......................42A.3.7查询短消息流量(SMGPQuery可选)......................................42A.4配置SMGPAPI...........................................................42A.5短消息的自动分割功能....................................................43A.6错误代码含义............................................................43附录B短消息群发功能的实现..............................................45II 前言本规范是依据SMGP协议V3.0的相关内容,结合中国电信C网业务网络SMS的特点进行编写,随着中国电信业务网络SMS的发展完善,还将制定后续的相关规范要求。本规范规定了短消息网关与其它网元之间进行短消息传输的接口协议。本标准共包含3部分:1、SMGP基本协议;2、SMGP协议扩展计费接口;3、SMGP协议扩展电子商务接口。本文只描述了第1部分SMGP基本协议,第2部分和第3部分同SMGP协议V2.0。本标准由中国电信集团公司提出并归口。本标准起草单位:中国电信股份有限公司上海研究院本标准主要起草人:蒋力施唯佳葛敏顾丽丽周文君王建III 标准分享网www.bzfxw.com免费下载1范围本协议适用于短消息网络上(固定网、移动网)短消息网关与其它网元之间进行短消息的传输。本协议适用于短消息网关、相关网元设备开发商及内容提供商。2规范性引用文件下列文件通过本文的参考而成为本规范的条款。凡是注日期的参考文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本文,凡是不注日期的参考文件,其最新版本适用于本文。【1】中国电信短消息网关协议(SMGP)V3.0【2】中国电信CDMA业务网络设备技术规范-短消息业务网关(SMSGW)设备技术规范3名词术语和缩略语3.1名词术语ESME:外部短消息实体,通常通过SMPP协议接入到短消息中心。SMSC:短消息业务中心,提供短消息的存储、转发等功能。SMGW:短消息业务接入网关,提供短消息与外部网络的互通和短信增值业务的接入等功能。3.2缩略语缩略语英文解释中文解释ESMEExternalShortMessageEntity外部短消息实体SPServiceProvider服务提供商SMSCShortMessageServiceCenter短消息业务中心SMGPShortMessageGatewayProtocol短消息网关协议SMGWShortMessageGateway短消息网关SMPPShortMessagePointtoPointProtocol短消息点到点协议4SMGP协议概述4.1定义SMGP协议是SMGW与其它网元设备(除SMC外)进行短消息传输的接口协议。非SMC网元设备向SMGW发送或从SMGW接收短消息,这些非SMC网元设备称为ESME。4.2通信方式SMGW与ESME之间共有两种连接方式:长连接和短连接。所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发链路检测包以维持此连接。短连接是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接,即每次TCP连接只完成一对SMGP消息的发送。4.2.1长连接通信双方以客户-服务器方式建立TCP连接,用于双方信息的相互提交。当信道上没有数据传输时,通信双方应每隔时间C发送链路检测包以维持此连接,当链路检测包发出超过时间T后未收到响应,应立即再发送链路检测包,再连续发送N-1次后仍未得到响应则断开此连接。参数C、T、N原则上应可配置,现阶段建议取值为:C=3分钟,T=60秒,N=3。通信双方之间的消息如果不能成功发送,应隔时间R进行重发,再连续发送N-1次后仍未发送成功则停发。现阶段建议取值为:R=60秒,N=3。通信双方之间的消息发送后等待T秒后未收到响应,应立即重发,再连续发送N-1次后仍未得到响应则停发。现阶段建议取值为:T=60秒,N=3。中国电信短消息网关SMGP接口协议规范(V3.1)1 消息采用并发方式发送,加以滑动窗口流量控制,窗口大小参数W可配置,现阶段建议为16,即接收方在应答前一次收到的消息最多不超过16条。长连接的操作流程举例如图4.1所示:客户端服务器端建立TCP连接SMGP消息1SMGP消息2对SMGP消息1的响对SMGP消息2的响滑动窗口不大于......链路检测包链路检测包响应链路检测包链路检测包响应......拆除TCP连接图4.1长连接操作流程4.2.2短连接通信双方以客户-服务器方式建立TCP连接,应答与请求在同一个连接中完成。系统采2中国电信短消息网关SMGP接口协议规范(V3.1) 标准分享网www.bzfxw.com免费下载用客户/服务器模式,操作以客户端驱动方式发起连接请求,完成一次操作后关闭此连接。通信双方之间的消息发送后等待T秒后未收到响应,应立即重发,再连续发送N-1次后仍未得到响应则停发。现阶段建议取值为:T=60秒,N=3。短连接的操作流程举例如图4.2所示:客户端建立TCP连接服务器端SMGP消息1对SMGP消息1的响应拆除TCP连接建立TCP连接SMGP消息2对SMGP消息2的响应拆除TCP连接......图4.2短连接操作流程4.3协议应用及涉及的端口号SMGP协议在中国电信中的应用主要体现在两类短消息业务上:一类是固定网短消息业务,另一类是移动网短消息业务。4.3.1固定网短消息业务中国电信短消息网关SMGP接口协议规范(V3.1)3 SMGPSP一级SMGWSMGP及SMGPSMGP及SMGP扩展计费接口扩展计费接口SMGPSP二级二级SMGPSPSMGWSMGWSMGP扩展SMGP扩展计费接口计费接口预付费平SMCSMC预付费台平台固定网固定网(PHS,PSTN)(PHS,PSTN)固定终端固定终端(PHS,”家加e”)(PHS,”家加e”)图4.3固定网短消息业务系统结构简图固定网短消息业务系统结构简图如图4.3所示。SMGP协议在固网短消息系统中应用情况如下:(1)二级SMGW与SP二级SMGW与SP之间采用SMGP协议进行短消息的传输,端口号为8890,二级SMGW为服务器端,SP为客户端;(2)二级SMGW与一级SMGW二级SMGW与一级SMGW之间采用SMGP协议进行短消息的传输,端口号为8900,二级SMGW与一级SMGW互为客户/服务器端;二级SMGW与一级SMGW之间采用SMGP协议扩展计费接口(参见SMGPV2.0)进行计费信息的传输,端口号为8900,二级SMGW作为服务器端,一级SMGW作为客户端;(3)一级SMGW与SP一级SMGW与SP之间采用SMGP协议进行短消息的传输,端口号为8890,一级SMGW为服务器端,SP为客户端;(4)二级SMGW和PHS预付费平台二级SMGW与PHS预付费平台之间采用SMGP协议扩展计费接口(参见SMGPV2.0)进行计费信息的传输,端口号为9100,预付费平台作为服务器端,二级SMGW作为客户端。4中国电信短消息网关SMGP接口协议规范(V3.1) 标准分享网www.bzfxw.com免费下载4.3.2移动网短消息业务SPSPSMGPSMGPSMGWSMGWSMGPSMCSMC移动网移动网移动网终端移动网终端图4.4移动网短消息业务系统结构简图移动网短消息业务系统结构简图如图4.4所示。SMGP协议在移动网短消息系统中应用情况如下:(1)SMGW与SPSMGW与SP之间采用SMGP协议进行短消息的传输,端口号为8890,SMGW为服务器端,SP为客户端;(2)SMGW与SMGWSMGW与SMGW之间采用SMGP协议进行短消息的传输,端口号为8900,SMGW与SMGW互为客户/服务器端;4.3.3基于短消息的电子商务业务SMCSMGP扩展电子CTSI二级短信综商务接口服务器合网关专业SP交易模块信息扩展CTSIFSK接入交易扩展SMPP(业务网关终端服务器模块模块)SMGP扩展电子商务接口AAA交易服务器模块一级短信综合网关图4.5基于短消息的电子商务业务系统结构简图中国电信短消息网关SMGP接口协议规范(V3.1)5 基于短消息的电子商务业务系统结构简图如图4.5所示。SMGP协议在基于短消息的电子商务业务中应用情况如下:(1)二级短信综合网关与专业SP二级短信综合网关与专业SP之间通过SMGP协议扩展电子商务接口开展基于短消息的电子商务业务,端口号为9001,二级短信综合网关为服务器端,SP为客户端;(2)二级短信综合网关与一级短信综合网关二级短信综合网关与一级短信综合网关之间通过SMGP协议扩展电子商务接口开展基于短消息的电子商务业务,端口号为9001,二级短信综合网关与一级短信综合网关互为客户/服务器端;5SMGP协议5.1数据类型5.1.1基本数据类型Integer无符号整数OctetString不强制以0x00结尾的定长字符串。当位数不足时,在不明确注明的情况下,应左对齐,右补0x00。在明确注明的情况下,以该字段的明确注明为准。5.1.2可选参数可选参数采用TLV(Tag、Length、Value)形式定义,每个可选参数的Tag、Length、Value的定义见6.3节。字段长度(字节)数据类型说明Tag2Integer字段的标签,用于唯一标识可选参数Length2Integer字段的长度Value可变长度可变类型字段内容5.2消息结构项目说明MessageHeader消息头(所有消息公共包头)MessageBody消息体5.2.1消息头结构字段长度(字节)数据类型说明参考PacketLength4Integer数据包长度7.1.1RequestID4Integer请求标识7.1.2SequenceID4Integer消息流水号7.1.35.2.2消息体结构5.2.2.1登录操作(Login)Login操作的目的是客户端向服务器端注册作为一个合法客户端身份,若注册成功后即建立了应用层的连接,此后客户端可以与此服务器端进行消息的接收和发送。服务器端以Login_Resp消息响应客户端的请求。5.2.2.1.1Login字段长度(字节)数据类型说明参考必ClientID8OctetString客户端用来登录服务7.2.1选器端的用户账号。6中国电信短消息网关SMGP接口协议规范(V3.1) 标准分享网www.bzfxw.com免费下载参AuthenticatorClie16OctetString客户端认证码,用来鉴7.2.2数nt别客户端的合法性。LoginMode1Integer客户端用来登录服务7.2.3器端的登录类型。TimeStamp4Integer时间戳7.2.4ClientVersion1Integer客户端支持的协议版7.2.5本号5.2.2.1.2Login_Resp字段长度(字节)数据类型说明参考Status4Integer请求返回结果7.2.6必AuthenticatorSer16OctetString服务器端返回给客7.2.7选ver户端的认证码参数ServerVersion1Integer服务器端支持的最7.2.8高版本号5.2.2.2SP向SMGW提交短消息的操作(Submit)5.2.2.2.1Submit字段长度(字节)数据类型说明参考必MsgType1Integer短消息类型7.2.9NeedReport1IntegerSP是否要求返回状态报7.2.10告选Priority1Integer短消息发送优先级7.2.11参ServiceID10OctetString业务代码7.2.12FeeType2OctetString收费类型7.2.13数FeeCode6OctetString资费代码7.2.14FixedFee6OctetString包月费/封顶费7.2.15MsgFormat1Integer短消息格式7.2.16ValidTime17OctetString短消息有效时间7.2.17AtTime17OctetString短消息定时发送时间7.2.18SrcTermID21OctetString短信息发送方号码7.2.19ChargeTermID21OctetString计费用户号码7.2.20DestTermIDCoun1Integer短消息接收号码总数7.2.21t中国电信短消息网关SMGP接口协议规范(V3.1)7 DestTermID21*DestTerOctetString*短消息接收号码7.2.22mCountMsgLength1Integer短消息长度7.2.23MsgContentMsgLengthOctetString短消息内容7.2.24Reserve8OctetString保留7.2.25字段数据类型说明参考TP_pidTLVGSM协议类型7.3.2TP_udhiTLVGSM协议类型7.3.3LinkIDTLV交易标识7.3.4MsgSrcTLV信息内容的来源7.3.17ChargeUserTypeTLV计费用户类型7.3.5ChargeTermTypeTLV计费用户的号码类型7.3.6可ChargeTermPseudoTLV计费用户的伪码7.3.7选DestTermTypeTLV短消息接收方号码的类7.3.8参型数DestTermPseudoTLV短消息接收方的伪码7.3.9PkTotalTLV相同MsgID的消息总条7.3.10数PkNumberTLV相同MsgID的消息序号7.3.11SubmitMsgTypeTLVSP发送的消息类型7.3.12SPDealResultTLVSP对消息的处理结果7.3.13MServiceIDTLV业务代码(用于移动网7.3.19业务)短信平台支持短信的群发功能,关于短信群发功能的实现请参阅“附录B短消息群发功能的实现”。5.2.2.2.2Submit_Resp字段长度(字节)数据类型说明参考必MsgID10OctetString短消息流水号7.2.26选Status4Integer请求返回结果7.2.6参数5.2.2.3SMGW向SP下发短消息的操作(Deliver)5.2.2.3.1Deliver字段长度(字节)数据类型说明参考MsgID10OctetString短消息流水号7.2.26必IsReport1Integer是否为状态报告7.2.27MsgFormat1Integer短消息格式7.2.168中国电信短消息网关SMGP接口协议规范(V3.1) 标准分享网www.bzfxw.com免费下载选RecvTime14OctetString短消息接收时间7.2.28SrcTermID21OctetString短消息发送号码7.2.19参DestTermID21OctetString短消息接收号码7.2.22MsgLength1Integer短消息长度7.2.23数MsgContentMsgLengthOctetString短消息内容7.2.24Reserve8OctetString保留7.2.25字段数据类型说明参考TP_pidTLVGSM协议类型7.3.2TP_udhiTLVGSM协议类型7.3.3可选LinkIDTLV交易标识7.3.4参SrcTermTypeTLV短消息发送方的号码类型7.3.14数SrcTermPseudoTLV短消息发送方的伪码7.3.15SubmitMsgTypeTLVSP发送的消息类型7.3.12SPDealResultTLVSP对消息的处理结果7.3.135.2.2.3.2Deliver_Resp字段长度(字节)数据类型说明参考必MsgID10OctetString短消息流水号7.2.26选Status4Integer请求返回结果7.2.6参数5.2.2.4源SMGW向目的SMGW转发短消息的操作(Forward)5.2.2.4.1Forward字段长度(字节)数据类型说明参考必MsgID10OctetString短消息流水号7.2.26DestSMGWNo6OctetString目的SMGW代码7.2.29选SrcSMGWNo6OctetString源SMGW代码7.2.30SMCNo6OctetString短消息中心代码7.2.31参MsgType1Integer短消息类型7.2.9ReportFlag1Integer状态报告标志7.2.32数Priority1Integer短消息发送优先级7.2.11ServiceID10OctetString业务代码7.2.12FeeType2OctetString资费类型7.2.13FeeCode6OctetString资费代码7.2.14中国电信短消息网关SMGP接口协议规范(V3.1)9 FixedFee6OctetString包月费/封顶费7.2.15MsgFormat1Integer短消息格式7.2.16ValidTime17OctetString有效时间7.2.17AtTime17OctetString定时发送时间7.2.18SrcTermID21OctetString短消息发送用户号7.2.19码DestTermID21OctetString短消息接收用户号7.2.22码ChargeTermID21OctetString计费用户号码7.2.20MsgLength1Integer短消息长度7.2.23MsgContentMsgLengthOctetString短消息内容7.2.24Reserve8OctetString保留7.2.25字段数据类型说明参考TP_pidTLVGSM协议类型7.3.2TP_udhiTLVGSM协议类型7.3.3LinkIDTLV交易标识7.3.4ChargeUserTypeTLV计费用户类型7.3.5NodesCountTLV经过的网关数量7.3.16MsgSrcTLV信息内容的来源7.3.17ChargeTermPseudoTLV计费用户的伪码7.3.7SrcTermPseudoTLV短消息发送方的伪7.3.14可码选DestTermPseudoTLV短消息接收方的伪7.3.15参码数SrcTypeTLV传递给SP的源号码7.3.18的类型PkTotalTLV相同MsgID的消息7.3.10总条数PkNumberTLV相同MsgID的消息7.3.11序号SubmitMsgTypeTLVSP发送的消息类型7.3.12SPDealResultTLVSP对消息的处理结7.3.13果MServiceIDTLV业务代码(用于移动7.3.19网业务)5.2.2.4.2Forward_Resp10中国电信短消息网关SMGP接口协议规范(V3.1) 标准分享网www.bzfxw.com免费下载字段长度(字节)数据类型说明参考必MsgID10OctetStringSMGW产生的短消息流水号7.2.26选Status4Integer请求返回结果7.2.6参数字段数据类型说明参考可选PkTotalTLV相同MsgID的消息总条数7.3.10参数PkNumberTLV相同MsgID的消息序号7.3.115.2.2.5链路检测操作(Active_Test)本操作仅适用于通信双方采用长连接通信方式时用于保持连接。5.2.2.5.1Active_Test无消息体。5.2.2.5.2Active_Test_Resp无消息体。5.2.2.6请求关闭连接的操作(Exit)Exit操作的目的是客户端或服务器端基于某些原因决定拆除当前的应用层连接而发起的操作。此操作完成后客户端与服务器端的应用层连接被释放,此后通信时应由客户端重新发起Login操作。5.2.2.6.1Exit无消息体。5.2.2.6.2Exit_Resp无消息体。5.2.2.7SP向SMGW查询短消息发送状态的操作(Query,可选)5.2.2.7.1Query长度字段数据类型说明参考(字节)QueryTime8OctetString查询时间7.2.33必选QueryType1Integer查询类别7.2.34参数QueryCode10OctetString查询码7.2.355.2.2.7.2Query_Resp长度字段数据类型说明参考(字节)必QueryTime8OctetString查询时间7.2.33选QueryType1Integer查询类别7.2.34参数QueryCode10OctetString查询码(业务类型)7.2.35MT_TLMsg4Integer接收短消息总数7.2.36中国电信短消息网关SMGP接口协议规范(V3.1)11 MT_Tlusr4Integer接收用户总数7.2.37MT_Scs4Integer成功转发数量7.2.38MT_WT4Integer待转发数量7.2.39MT_FL4Integer转发失败数量7.2.40MO_Scs4Integer成功送达数量7.2.41MO_WT4Integer待送达数量7.2.42MO_FL4Integer送达失败数量7.2.43Reverse8OctetString保留7.2.256SMGP扩展协议6.1SMGP协议扩展计费接口SMGP协议扩展计费接口在SMGP协议的基础上扩展了三种操作:(1)Payment_Request扣款请求(2)Payment_Affirm扣款确认(3)Query_UserState查询用户状态6.1.1消息头扩展消息头部分主要扩展了请求标识(RequestID),参考7.1.2。6.1.2消息体扩展6.1.2.1扣款请求(Payment_Request)6.1.2.1.1Payment_Request长度字段数据类型说明参考(字节)必PayMsgID20OctetString短消息流水号7.2.45PayMsgType2Integer短消息类型,用来表示短消息7.2.46的消息流向选ChargeTermID21Octet计费用户号码7.2.20String参SPCode8OctetStringSP服务代码7.2.58数SrcTermID21OctetString短信息发送方号码7.2.19DestTermID21Octet短消息接收号码7.2.22StringServiceID10Octet业务代码7.2.12String12中国电信短消息网关SMGP接口协议规范(V3.1) 标准分享网www.bzfxw.com免费下载FeeType2Octet对计费用户采取的资费类型7.2.13StringFeeCode6Octet资费代码,每条短消息的信息7.2.14String费FixedFee6Octet包月费/封顶费7.2.15StringPriority1Integer短消息发送优先级7.2.11MsgLength1Integer短消息长度7.2.23AreaCode4Octet计费用户归属地的区号7.2.44StringSMGNo6Octet产生本条消息的SMGW代码7.2.47StringNxtNwkNd6Octet下级网元代码7.2.48StringPreNwkNd6Octet上级网元代码7.2.67StringRecvTime14Octet短消息接收时间7.2.27StringDoneTime14Octet短消息处理完成的时间7.2.49StringCdrType1Integer话单类型。该字段保留7.2.50Reserve8OctetString保留7.2.28注:(1)Payment_Request指令中,FeeType,FeeCode,FixedFee字段表示信息费的资费,预付费平台应根据FeeType,FeeCode,FixedFee字段对用户进行信息费扣费;(2)预付费平台应根据PayMsgType字段确定短消息的消息流向,如果是MO消息,则对用户进行通信费扣费。6.1.2.1.2Payment_Request_Resp长度字段数据类型说明参考(字节)必ResultNotifyCode1Integer计费确认标识码7.2.51选Status4Integer请求返回结果7.2.6参数6.1.2.2扣款确认(Payment_Affirm)中国电信短消息网关SMGP接口协议规范(V3.1)13 6.1.2.2.1Payment_Affirm长度字段数据类型说明参考(字节)必PayMsgID20OctetString短消息流水号7.2.45选ReportStatus1Integer消息状态7.2.52参FeeAddr21OctetString计费用户地址7.2.53数Reserve8OctetString保留7.2.286.1.2.2.2Payment_Affirm_Resp长度字段数据类型说明参考(字节)必Status4Integer请求返回结果7.2.6选参数6.1.2.3查询用户状态(Query_UserState)6.1.2.3.1Query_UserState长度字段数据类型说明参考(字节)必QueryUserAddr21OctetString查询用户号码7.2.54选SMGNo6OctetString产生本条消息的SMGW代码7.2.47参Reserve8OctetString保留7.2.28数6.1.2.3.2Query_UserState_Resp长度字段数据类型说明参考(字节)UserStatus1OctetString用户状态7.2.55Count4Integer预付费帐户上的余额7.2.56Reserve8OctetString保留7.2.28长度字段数据类型说明参考(字节)必UserStatus1OctetString用户状态7.2.55选Count4Integer预付费帐户上的余额7.2.5614中国电信短消息网关SMGP接口协议规范(V3.1) 标准分享网www.bzfxw.com免费下载参Reserve8OctetString保留7.2.28数6.2SMGP协议扩展电子商务接口为了实现电子商务实时交易,对SMGP协议的消息体进行了扩展,增加了Transaction操作及TranFwd操作,本部分主要对这两个消息体进行具体定义。6.2.1消息头扩展SMGP协议扩展电子商务接口在SMGP协议的基础上扩展了请求标识(RequestID),参考7.1.2。6.2.2消息体扩展6.2.2.1交易操作(Transaction)6.2.2.1.1Transaction长度字段数据类型说明参考(字节)Status4Integer对下发指令执行的状态报告7.2.6PayMsgID20OctetString短消息流水号7.2.45MsgType1Integer短消息类型,用来表示短消息7.2.9的消息流向MsgFormat1Integer短消息编码格式7.2.16SrcTermID21OctetString短信息发送方号码7.2.19DestTermID21OctetString短消息接收号码7.2.22SessionID20OctetString由CTSI服务器产生的会话号7.2.57必ServiceID10OctetString业务代码7.2.12选SPCode8OctetStringSP服务代码7.2.58参DesMode1Integer加密设置,表示对ReqMsgCont7.2.59数数据域的加密方式TermID9Integer终端序列号7.2.60ICCardID15OctetStringIC卡序列号7.2.61KeySerialNo1Integer密钥代码7.2.62IIType1Integer信息交互类型7.2.63MsgLength2Integer短消息长度7.2.23ReqMsgContVarmaxOctetString请求消息体7.2.65254Reserve8OctetString保留7.2.286.2.2.1.2Transaction_resp长度字段数据类型说明参考(字节)中国电信短消息网关SMGP接口协议规范(V3.1)15 Status4Integer请求返回结果7.2.6PayMsgID20OctetString短消息流水号7.2.45MsgType1Integer短消息类型,用来表示短消息7.2.9的消息流向NeedReport1Integer是否要求返回状态报告7.2.10FeeType2OctetString对计费用户采取的资费类型7.2.13FeeCode6OctetString资费代码,每条短消息的信息7.2.14费FixedFee6OctetString包月费/封顶费7.2.15MsgFormat1Integer短消息编码格式7.2.16SrcTermID21OctetString短信息发送方号码7.2.19ChargeTermID21OctetString计费用户号码7.2.20必DestTermID21OctetString短消息接收号码7.2.22选SessionID20OctetString由CTSI服务器产生的会话号。7.2.57参ServiceID10OctetString业务代码7.2.12数SPCode8OctetStringSP服务代码7.2.58DesMode1Integer加密设置,表示对RspMsgCont7.2.59数据域的加密方式AckDesMode1Integer应答信息的加密模式7.2.59TermID9Integer终端序列号7.2.60ICCardID15OctetStringIC卡的序列号7.2.61KeySerialNo1Integer密钥代码7.2.62IIType1Integer信息交互类型7.2.63MsgLength2Integer短消息长度7.2.23RspMsgContMsgLengtOctetString响应消息体7.2.66hReserve8OctetString保留7.2.286.2.2.2转发交易(TranFwd)6.2.2.2.1TranFwd长度字段数据类型说明参考(字节)必Status4Integer对下发指令执行的状态报告7.2.6选DestSMGWNo6OctetString目标SMGW代码7.2.29参SrcSMGWNo6OctetString源SMGW代码7.2.30数SMCNo6OctetString发送方短消息中心代码7.2.31PayMsgID20OctetString短消息流水号7.2.4516中国电信短消息网关SMGP接口协议规范(V3.1) 标准分享网www.bzfxw.com免费下载MsgType1Integer短消息类型,用来表示短消息7.2.9的消息流向MsgFormat1Integer短消息编码格式7.2.16SrcTermID21OctetString短信息发送方号码7.2.19DestTermID21OctetString短消息接收号码7.2.22SessionID20OctetString由CTSI服务器产生的会话号。7.2.57ServiceID10OctetString业务代码7.2.12SPCode8OctetStringSP服务代码7.2.58DesMode1Integer加密设置,表示对ReqMsgCont7.2.59数据域的加密方式TermID9Integer终端序列号7.2.60ICCardID15OctetStringIC卡的序列号7.2.61KeySerialNo1Integer密钥代码7.2.62IIType1Integer交互信息类型7.2.63MsgLength2Integer短消息长度7.2.23ReqMsgContVarmaxOctetString请求消息体7.2.65254Reserve8OctetString保留7.2.286.2.2.2.2TranFwd_resp长度字段数据类型说明参考(字节)必Status4Integer请求返回结果7.2.6选DestSMGWNo6OctetString目标SMGW代码7.2.29参SrcSMGWNo6OctetString源SMGW代码7.2.30数SMCNo6OctetString发送方短消息中心代码7.2.31PayMsgID20OctetString短消息流水号7.2.45MsgType1Integer短消息类型,用来表示短消息7.2.9的消息流向NeedReport1Integer是否要求返回状态报告(0=不7.2.10要求,1=要求)FeeType2OctetString对计费用户采取的资费类型7.2.13FeeCode6OctetString资费代码,每条短消息的信息7.2.14费FixedFee6OctetString包月费/封顶费7.2.15MsgFormat1Integer短消息编码格式7.2.16中国电信短消息网关SMGP接口协议规范(V3.1)17 SrcTermID21OctetString短信息发送方号码7.2.19ChargeTermID21OctetString计费用户号码7.2.20DestTermID21OctetString短消息接收号码7.2.22SessionID20OctetString由CTSI服务器产生的会话号。7.2.57ServiceID10OctetString业务代码7.2.12SPCode8OctetStringSP服务代码7.2.58DesMode1Integer加密设置,表示对ReqMsgCont7.2.59数据域的加密方式AckDesMode1Integer应答信息加密模式7.2.59TermID9Integer终端序列号7.2.60ICCardID15OctetStringIC卡的序列号7.2.61KeySerialNo1Integer密钥代码7.2.62IIType1Integer交互信息类型7.2.63MsgLength2Integer短消息长度7.2.23RspMsgContMsgLengtOctetString响应消息体7.2.66hReserve8OctetString保留7.2.287参数定义7.1消息头参数描述7.1.1PacketLengthSMGP数据包长度,指包头和包体的长度之和。单位是“字节”。7.1.2RequestId请求标识表示SMGP数据包的类型,请求包的请求标识和应答包的请求标识一一对应。SMGP协议的请求标识定义如下:请求名称请求标识说明Login0x00000001客户端登录Login_Resp0x80000001客户端登录应答Submit0x00000002提交短消息Submit_Resp0x80000002提交短消息应答Deliver0x00000003下发短消息Deliver_Resp0x80000003下发短消息应答Active_Test0x00000004链路检测Active_Test_Resp0x80000004链路检测应答Forward0x00000005短消息前转Forward_Resp0x80000005短消息前转应答Exit0x00000006退出请求18中国电信短消息网关SMGP接口协议规范(V3.1) 标准分享网www.bzfxw.com免费下载Exit_Resp0x80000006退出应答Query0x00000007SP统计查询Query_Resp0x80000007SP统计查询应答Query_TE_Route0x00000008查询TE路由Query_TE_Route_Re0x80000008查询TE路由应答spQuery_SP_Route0x00000009查询SP路由Query_SP_Route_Re0x80000009查询SP路由应答spPayment_Request0x0000000A扣款请求(用于预付费系统,参见增值业务计费方案)Payment_Request_Re0x8000000A扣款请求响应(用于预付费系统,参见增值业务计费sp方案,下同)Payment_Affirm0x0000000B扣款确认(用于预付费系统,参见增值业务计费方案)Payment_Affirm_Res0x8000000B扣款确认响应(用于预付费系统,参见增值业务计费p方案)Query_UserState0x0000000C查询用户状态(用于预付费系统,参见增值业务计费方案)Query_UserState_Res0x8000000C查询用户状态响应(用于预付费系统,参见增值业务p计费方案)Get_All_TE_Route0x0000000D获取所有终端路由Get_All_TE_Route_0x8000000D获取所有终端路由应答RespGet_All_SP_Route0x0000000E获取所有SP路由Get_All_SP_Route_R0x8000000E获取所有SP路由应答esp其它保留7.1.3SequenceIdSMGP消息流水号,用来匹配请求数据包和应答数据包。应答数据包的流水号字段必须与请求包的流水号字段一致。流水号字段由请求包发起方分配,取值范围为0x00000000-0xFFFFFFFF,顺序累加,步长为1,循环使用。7.2消息体必选参数描述7.2.1ClientID客户端用来登录服务器端的用户账号。当客户端为SP时,用户帐号为SP服务代码;当客户端为SMGW时,用户帐号为SMGW代码。7.2.2AuthenticatorClient客户端认证码,用来鉴别客户端的合法性。其值通过单向MD5hash计算得出,表示如下:AuthenticatorClient=MD5(ClientID+7字节的二进制0(0x00)+Sharedsecret+Timestamp)中国电信短消息网关SMGP接口协议规范(V3.1)19 Sharedsecret由服务器端与客户端事先商定,最长15字节。此处Timestamp格式为:MMDDHHMMSS(月日时分秒),经TimeStamp字段值转换成字符串,转换后右对齐,左补0x30得到。例如3月1日0时0分0秒,TimeStamp字段值为0x11F0E540,此处为0301000000。7.2.3LoginMode客户端用来登录服务器端的登录模式。0=发送短消息(sendmode);1=接收短消息(receivemode);2=收发短消息(transmitmode);其它保留。7.2.4TimeStamp时间戳。例如3月1日0时0分0秒,用于MD5计算时为0301000000,此处转换为整型数即为11F0E540。7.2.5ClientVersion客户端支持的协议版本号。高4bit表示主版本号,低4bit表示次版本号。例如0x13,表示协议版本号为1.3。7.2.6Status请求返回结果。响应包用来向请求包返回成功信息或者失败原因。SMGP协议的结果码定义如下:代码含义0成功1系统忙2超过最大连接数3-9保留10消息结构错11命令字错12序列号重复13-19保留20IP地址错21认证错22版本太高23-29保留30非法消息类型(MsgType)31非法优先级(Priority)32非法资费类型(FeeType)33非法资费代码(FeeCode)34非法短消息格式(MsgFormat)35非法时间格式36非法短消息长度(MsgLength)20中国电信短消息网关SMGP接口协议规范(V3.1) 标准分享网www.bzfxw.com免费下载37有效期已过38非法查询类别(QueryType)39路由错误40非法包月费/封顶费(FixedFee)41非法更新类型(UpdateType)42非法路由编号(RouteId)43非法服务代码(ServiceId)44非法有效期(ValidTime)45非法定时发送时间(AtTime)46非法发送用户号码(SrcTermId)47非法接收用户号码(DestTermId)48非法计费用户号码(ChargeTermId)49非法SP服务代码(SPCode)50~55其它用途56非法源网关代码(SrcGatewayID)57非法查询号码(QueryTermID)58没有匹配路由59非法SP类型(SPType)60非法上一条路由编号(LastRouteID)61非法路由类型(RouteType)62非法目标网关代码(DestGatewayID)63非法目标网关IP(DestGatewayIP)64非法目标网关端口(DestGatewayPort)65非法路由号码段(TermRangeID)66非法终端所属省代码(ProvinceCode)67非法用户类型(UserType)68本节点不支持路由更新69非法SP企业代码(SPID)70非法SP接入类型(SPAccessType)71路由信息更新失败72非法时间戳(Time)73非法业务代码(MServiceID)74SP禁止下发时段中国电信短消息网关SMGP接口协议规范(V3.1)21 75SP发送超过日流量76SP帐号过有效期112~116其它用途128-255厂家自定义其它保留7.2.7AuthenticatorServerLogin服务器端返回给客户端的认证码,当客户端认证出错时,此项为空。其值通过单向MD5hash计算得出,表示如下:AuthenticatorServer=MD5(Status+AuthenticatorClient+Sharedsecret)Sharedsecret由服务器端与客户端事先商定,最长15字节AuthenticatorClient为客户端发送给服务器端的Login中的值。参见7.2.2节。7.2.8ServerVersion服务器端支持的最高版本号。高4bit表示主版本号,低4bit表示次版本号。例如0x13,表示协议版本号1.3。7.2.9MsgType短消息类型。对于回执消息该字段无效;对于文本短消息,该字段表示短消息的消息流向:0=MO消息(终端发给SP);6=MT消息(SP发给终端,包括WEB上发送的点对点短消息);7=点对点短消息;其它保留。7.2.10NeedReport是否要求返回状态报告。0=不要求返回状态报告;1=要求返回状态报告;其它保留。7.2.11Priority短消息发送优先级。0=低优先级;1=普通优先级;2=较高优先级;3=高优先级;其它保留。7.2.12ServiceID业务代码,用于固定网业务。对于MO消息或点对点短消息,该字段无效;对于MT消息,该字段表示业务代码,是该条短消息所属的业务类别,由数字、字母和符号组合而成。对于从WEB上发送的点对点短消息,要求业务代码为“PC2P”,其它业务代码由SP自定义。7.2.13FeeType对计费用户采取的收费类型。对于MO消息或点对点短消息,该字段无效。对于MT消息,该字段用法如下:00=免费,此时FixedFee和FeeCode无效;01=按条计信息费,此时FeeCode表示每条费用,FixedFee无效;02=按包月收取信息费,此时FeeCode无效,FixedFee表示包月费用;03=按封顶收取信息费,若按条收费的费用总和达到或超过封顶费后,则按照封顶费用收取信息费;若按条收费的费用总和没有达到封顶费用,则按照每条费用总和收取信息费。22中国电信短消息网关SMGP接口协议规范(V3.1) 标准分享网www.bzfxw.com免费下载FeeCode表示每条费用,FixedFee表示封顶费用。其它保留。7.2.14FeeCode每条短消息费率,单位为“分”。对于MO消息或点对点短消息,该字段无效;对于MT消息,该字段具体使用方法参见7.2.13节。7.2.15FixedFee短消息的包月费/封顶费,单位为“分”。对于MO消息或点对点短消息,该字段无效;对于MT消息,该字段具体使用方法参见7.2.13节。7.2.16MsgFormat短消息内容体的编码格式。0=ASCII编码;3=短消息写卡操作;4=二进制短消息;8=UCS2编码;15=GB18030编码;246(F6)=UIM相关消息UIM相关消息,用于与UIM卡相关的OTA等业务,终端收到该类型消息直接转发给UIM卡,由UIM卡来处理该类型消息;其它保留。对于文字短消息,要求MsgFormat=15。对于回执消息,要求MsgFormat=0。7.2.17ValidTime短消息有效时间,格式遵循SMPP3.3以上版本协议。短消息有效时间在转发过程中保持不变。7.2.18AtTime短消息定时发送时间,格式遵循SMPP3.3以上版本协议。短消息定时发送时间在转发过程中保持不变。7.2.19SrcTermID短消息发送方号码。对于MT消息,SrcTermID格式为“118+SP服务代码+其它(可选)”,例如SP服务代码为1234时,SrcTermID可以为1181234或118123456等。对于MO消息,固定网中SrcTermID格式为“区号+号码(区号前添零)”,例如02087310323,07558780808,移动网中SrcTermID格式为MSISDN号码格式。对于固定网点对点消息,主叫号码为普通终端时,SrcTermID格式为“区号+号码(区号前添零)”;主叫号码为爱因平台时,SrcTermID格式为“10631+区号+号码(区号前添零)”。7.2.20ChargeTermID计费用户号码。ChargeTermID为空时,如果是MT消息,则表示对被叫用户号码计费;如果是MO或点对点消息,则表示对主叫用户号码计费。ChargeTermID为非空时,表示对计费用户号码计费。7.2.21DestTermIDCount短消息接收号码总数(≤100),用于SP实现群发短消息。7.2.22DestTermID短消息接收号码。对于MT消息,DestTermID连续存储DestTermIDCount个号码,每一个接收方号码为21位,固定网中DestTermID格式为“区号+号码(区号前添零)”,移动网中DestTermID格式为MSISDN号码格式,不足21位时应左对齐,右补0x00。对于MO消息,DestTermID格式为“118+SP服务代码+其它(可选)”。对于点对点短消息,DestTermID格式为“区号+号码(区号前添零)”,不足21位时应左对齐,右补0x00。中国电信短消息网关SMGP接口协议规范(V3.1)23 对于固定网点对点消息,被叫号码为普通终端时,SrcTermID格式为“区号+号码(区号前添零)”;被叫号码为爱因平台时,SrcTermID格式为“10631+区号+号码(区号前添零)”。7.2.23MsgLength短消息长度。指MsgContent域的长度,取值大于或等于0。对于MT消息,取值应小于或等于140。7.2.24MsgContent短消息内容。当IsReport=1时,MsgContent中内容为状态报告,其格式遵循7.2.87节描述。7.2.25Reserve保留字段。7.2.26MsgID短消息流水号,用来唯一标识一条短消息。该字段在短消息的转发处理流程中保持唯一。MsgId字段包含以下三部分内容:SMGW代码:3字节(BCD码)编码规则如下:3位区号(不足前添0)+2位设备类别+1位序号区号:所在省长途区号设备类别:SMGW取06序号:所在省的设备编码,例如第一个网关编号为1时间:4字节(BCD码),格式为MMDDHHMM(月日时分)序列号:3字节(BCD码),取值范围为000000~999999,从0开始,顺序累加,步长为1,循环使用。例如某SMGW的代码为010061,在2003年1月16日下午5时0分收到一条短消息,这条短消息的MsgID为:0x01006101161700012345,其中010061表示SMGW代码,01161700表示接收时间,012345表示消息序列号。7.2.27IsReport是否为状态报告。0=不是状态报告;1=是状态报告;其它保留。7.2.28RecvTimeSMGW接收到短消息的时间。格式为YYYYMMDDHHMMSS(年年年年月月日日时时分分秒秒)。7.2.29DestSMGWNo目的SMGW代码,指短消息前转的下一个SMGW代码。7.2.30SrcSMGWNo源SMGW代码,指短消息前转的本SMGW代码。7.2.31SMCNo发送方短消息中心代码。7.2.32ReportFlag状态报告标志。0=是状态报告;1=要求状态报告;2=不要求状态报告;其它保留。7.2.33QueryTime查询时间。格式:YYYYMMDD(年年年年月月日日),精确到日。7.2.34QueryType24中国电信短消息网关SMGP接口协议规范(V3.1) 标准分享网www.bzfxw.com免费下载查询类别。0:总数查询1:按业务代码查询其它保留7.2.35QueryCode查询码(业务类型)。当Query_Type为0时,此项无效;当Query_Type为1时,此项填写业务代码Service_id。7.2.36MT_TLMsg接收短消息总数。7.2.37MT_TLUsr接收用户总数。7.2.38MT_Scs成功转发数量。7.2.39MT_WT待转发数量。7.2.40MT_FL转发失败数量。7.2.41MO_Scs成功送达数量。7.2.42MO_WT待送达数量。7.2.43MO_FL送达失败数量。7.2.44AreaCode终端所属区号或计费用户归属地的区号(前添零),例如020,0755。7.2.45PayMsgID短消息流水号,用来唯一标识一条短消息。PayMsgID字段包含以下三部分内容:SMGW代码:6字节时间:8字节,格式为MMDDHHMM(月日时分)序列号:6字节,取值范围为000000~999999,从0开始,顺序累加,步长为1,循环使用。7.2.46PayMsgType短消息类型,用来表示短消息的消息流向。0=MO消息(终端发给SP);6=MT消息(SP发给终端);其它保留。7.2.47SMGNo产生本条消息的SMGW代码。7.2.48NxtNwkNd下级网元代码。7.2.49DoneTime记录短消息处理完成的时间,格式:yyyymmddhhmmss。7.2.50CdrType话单类型。该字段保留。7.2.51ResultNotifyCode计费确认标识码。0x00:不管短消息发送成功或失败都发送计费确认;0z01:仅当短消息发送失败时发送计费确认;0x02:仅当短消息发送成功时发送计费确认;中国电信短消息网关SMGP接口协议规范(V3.1)25 0x03:不管短消息发送成功或失败都不发送计费确认;其它保留。7.2.52ReportStatus消息状态:0:表示短消息发送失败;1:表示短消息发送成功;其它保留。7.2.53FeeAddr计费用户地址。7.2.54QueryUserAddr查询用户号码。7.2.55UserStatus用户状态:0:正常状态;1:非注册用户:属于预付费用户,但该号码还未被注册2:余额不足;3:帐号不可用:属于预付费用户,但该帐号处于不可用状态,如已冻结等4:非预付费用户;5:预付费平台无连接;6:消息转发超时;7:系统错误;其它保留;7.2.56Count预付费帐户上的余额,单位:人民币(分)。非正常状态时,填为0。7.2.57SessionID由CTSI服务器产生的会话号。对应于一次用户的交易请求,CTSI服务器分配一个唯一的会话号。消息请求与应答包中的会话号应一一对应。Session_ID可以实现象信息的实时刷新,画图等一次用户交易请求,多次信息下发的业务。20位的会话号由三部分组成:CTSI服务器代码:6字节时间:8字节(MMDDHHMM)序列号:6字节7.2.58SPCodeSP服务代码。代码分配方案参见相关文档。7.2.59DesMode/AckDesMode加密模式。内容说明Bit7-bit4MAC校验标志0000:不需要MAC校验0001:需要MAC校验其它:保留Bit3-bit0数据加密标志0000:不加密0001:DES加密0010:3DES加密26中国电信短消息网关SMGP接口协议规范(V3.1) 标准分享网www.bzfxw.com免费下载0011:RSA加密其它:保留本数据域主要表示对数据域的加密设置,设明文数据为P,加密算法为E,密钥为K。当MAC校验标志为不需要MAC校验,而数据加密标志为不需要加密时,数据域的内容为P。当MAC校验标志为不需要MAC校验,而数据加密标志为需要加密时,数据域的内容为E(P,K)。当MAC校验标志为需要MAC校验,而数据加密标志为不需要加密时,数据域的内容为(P+MAC)。当MAC校验标志为需要MAC校验,而数据加密标志为需要加密时,数据域的内容为D(P+MAC,KEY)。注:1.采用DES算法加密,建议密钥长度为56bit。2.采用3DES算法加密,建议密钥长度为112bit。设明文数据为P,密文数据为C,加密算法为E,解密算法为D,密钥为K,K=K1+K2,K1、K2均为56bit。则C=EK1[DK2[EK1[P]]],即先使用密钥K1对明文P加密,得到密文P",再使用密钥K2对P"解密,得到密文P"",然后再使用密钥K1对P""加密,得到最终的密文C。7.2.60TermID终端序列号。终端序列号的长度为9字节,由五个部分组成,终端序列号=厂家代码+类型+生产年月+版本号+序列号字段长度数据类型说明(字节)厂家代码1Integer由中国电信集团统一编制类型1Integer0x01:标准型0x02:增强型其它:保留生产年月3Integer用BCD编码方式,高位的2字节表示年,低位的1字节表示月。如2019年11月的值为0x201911版本号1Integer厂家自定义序列号3Integer厂家自定义如果平台不知道终端的序列号,此域可以为NULL。7.2.61ICCardIDIC卡序列号。字段长度数据类型说明(字节)地区号3OctetString用3位区号表示发卡地区,如果不足3位则前面补0类型2OctetString1位字母+1位数字组成,由中国电信集团统一编制,表示IC卡的类型,如“A0”表示“家家e业务电子商务卡”。中国电信短消息网关SMGP接口协议规范(V3.1)27 序列号8OctetString厂家自定义厂家代码2OctetString由中国电信集团统一编制7.2.62KeySerialNo密钥代码。内容说明Bit7-bit3表示密钥的组号,一个内容提供商可以提供多种业务,每种业务可以有不同的密钥,因此,对应一个内容提供商,最多可存储15组密钥Bit2-bit0用于标示密钥的类型,每一组密钥可以由不同种类的密钥组成,序号就是用来标志不同种类的密钥:001:交易密钥010:传输密钥011:内容提供商的公钥100:终端的私钥(在终端需进行RSA算法解密,以及使用数字签名时有用,目前为保留)其它:保留注:无密钥传输或加密操作时,该字节填为全0。7.2.63IIType交互信息类型。代码含义0x00密钥的传输0x01菜单交互0x02文本信息输出0x03图形信息输出0x04信息下载类服务0x05信息上传类服务0x0e快捷方式0x0f系统操作其它保留7.2.64ICode交互码。根据不同的交互信息类型,具有不同的交互码。交互信息内容对应的交互码说明密钥的传输0x00密钥的下传0x01密钥的上传菜单交互0x01菜单询问或单项询问方式0x02确认询问28中国电信短消息网关SMGP接口协议规范(V3.1) 标准分享网www.bzfxw.com免费下载0x03多项选择0x04非选择性数据输入0x05多项非选择性数据输入文本信息输出0x00表示用户按[确认]键返回0x01表示用户按[确认]键返回或持续5秒后CPE自动返回0x02CPE不需要返回响应信息0x03表示用户按[退出]键、[取消]键退出业务,按[确认]键请求或某指定时间自动请求新信息。图形信息输出0x01清屏命令0x02作图定位命令0x03画点命令0x04画线命令0x05画矩形图命令0x06画K线图0x07画模式图0x08画顺序点0x09画椭圆0x0A画多边形0x0B屏幕信息输出0x0C非选择性数据输入0x0D信息动态刷新指令信息下载0x02普通短消息下载0x03订阅及点播信息下载0x04MEMORY数据下载0x05IC卡数据下载0x06常用语下载0x07特色铃声下载0x08话费帐单0x09话费详单0x0A软件升级0x0B图形及动画下载0x0C密钥下载中国电信短消息网关SMGP接口协议规范(V3.1)29 F0~FF厂家自定义信息上传0x02普通短消息上传0x03订阅及点播信息上传0x04MEMORY数据上传0x05IC卡数据上传0x06常用语0x07特色铃声上传0x08话费帐单0x09话费详单0x0A终端软件0x0B图形及动画0x0C密钥上传F0~FF厂家自定义系统操作0x00结束动态菜单,返回主菜单0x01返回动态菜单入口0x02用户退出交互式菜单0x03用户进入交互式菜单0x04退出当前交互,进入其它交互菜单快捷键0x00买入(证券)0x01卖出(证券)0x02撤单(证券)0x03~0x09证券交易厂家自定义0x90返回主菜单0x91返回上一级菜单0x92保留0x93支付其它保留7.2.65ReqMsgContReqMsgCont的具体数据格式参见《电子商务规范》11.9节。7.2.66RspMsgContRspMsgCont具体数据格式参见《电子商务规范》11.8节。7.2.67PreNwkNd上级网元代码,如果上级网元为SP,则本字段为空。7.2.68状态报告格式注:“状态报告格式”采用SMPPV3.4中的规定,即“id:IIIIIIIIIIsub:SSSdlvrd:DDDSubmitdate:YYMMDDhhmmdonedate:YYMMDDhhmmstat:DDDDDDDerr:EText:……”。30中国电信短消息网关SMGP接口协议规范(V3.1) 标准分享网www.bzfxw.com免费下载长度字段数据类型说明(字节)Id10OctetString状态报告对应原短消息的MsgIDsub3OctetString取缺省值001Dlvrd3OctetString取缺省值001Submit_date10OctetString短消息提交时间(格式:年年月月日日时时分分,例如010331200000)done_date10OctetString短消息下发时间(格式:年年月月日日时时分分,例如010331200000)Stat7OctetString短消息的最终状态(参见第7.2.87.1节短消息状态表)Err3OctetString参见第7.2.87.2节错误代码表Txt20OctetString前3个字节,表示短消息长度(用ASCII码表示),后17个字节表示短消息的内容(保证内容不出现乱码)7.2.68.1短消息状态表状态名状态值(字符串)说明DELIVEREDDELIVRD短消息转发成功EXPIREDEXPIRED短消息超过有效期DELETEDDELETED短消息已经被删除UNDELIVERABLEUNDELIV短消息是不可转发的ACCEPTEDACCEPTD短消息已经被最终用户接收(为保持与SMPP兼容,保留)UNKNOWNUNKNOWN未知短消息状态REJECTEDREJECTD短消息被拒绝(为保持与SMPP兼容,保留)7.2.68.2Err错误代码表状态值(字符串)说明对应状态000成功DELIVRD001用户不能通信EXPIRED002用户忙EXPIRED003终端无此部件号UNDELIV004非法用户UNDELIV005用户在黑名单内UNDELIV006系统错误UNDELIV中国电信短消息网关SMGP接口协议规范(V3.1)31 007用户内存满EXPIRED008非信息终端UNDELIV009数据错误UNDELIV010数据丢失UNDELIV999未知错误UNKNOWN7.3消息体可选参数描述7.3.1可选参数标签定义标签名称标签值TP_pid0x0001TP_udhi0x0002LinkID0x0003ChargeUserType0x0004ChargeTermType0x0005ChargeTermPseudo0x0006DestTermType0x0007DestTermPseudo0x0008PkTotal0x0009PkNumber0x000ASubmitMsgType0x000BSPDealReslt0x000CSrcTermType0x000DSrcTermPseudo0x000ENodesCount0x000FMsgSrc0x0010SrcType0x0011MServiceID0x00127.3.2TP_pid长度字段数据类型说明(字节)Tag2IntegerTP_pid标签值Length2IntegerValue部分的长度Value1IntegerGSM协议类型。详细解释请参考GSM03.40中的9.2.3.9。7.3.3TP_udhi长度字段数据类型说明(字节)32中国电信短消息网关SMGP接口协议规范(V3.1) 标准分享网www.bzfxw.com免费下载Tag2IntegerTP_udhi标签值Length2IntegerValue部分的长度Value1IntegerGSM协议类型。详细解释请参考GSM03.40中的9.2.3.23,仅使用1位,右对齐。7.3.4LinkID长度字段数据类型说明(字节)Tag2IntegerLinkID标签值Length2IntegerValue部分的长度Value20OctetString交易标识,用于唯一标识一次交易7.3.5ChargeUserType长度字段数据类型说明(字节)Tag2IntegerChargeUserType标签值Length2IntegerValue部分的长度Value1Integer计费用户类型。0=对短消息接收方计费;1=对短消息发送方计费;2=对SP计费;3=表示本字段无效,对谁计费参见ChargeTermID或ChargeTermPseudo字段。7.3.6ChargeTermType长度字段数据类型说明(字节)Tag2IntegerChargeTermType标签值Length2IntegerValue部分的长度Value1Integer计费用户的号码类型。0=真实号码;1=伪码;其它保留。7.3.7ChargeTermPseudo长度字段数据类型说明(字节)Tag2IntegerChargeTermPseudo标签值Length2IntegerValue部分的长度中国电信短消息网关SMGP接口协议规范(V3.1)33 ValueLengthOctetString计费用户的伪码7.3.8DestTermType长度字段数据类型说明(字节)Tag2IntegerDestTermType标签值Length2IntegerValue部分的长度Value1Integer短消息接收方的号码类型。0=真实号码;1=伪码;其它保留。7.3.9DestTermPseudo长度字段数据类型说明(字节)Tag2IntegerDestTermPseudo标签值Length2IntegerValue部分的长度ValueLengthOctetString短消息接收方的伪码,当有多个接收方伪码时,要求每个接收方伪码的长度一样。7.3.10PkTotal长度字段数据类型说明(字节)Tag2IntegerPkTotal标签值Length2IntegerValue部分的长度Value1Integer相同Msg_Id的消息总条数。7.3.11PkNumber长度字段数据类型说明(字节)Tag2IntegerPkNumber标签值Length2IntegerValue部分的长度Value1Integer相同Msg_Id的消息序号,从1开始。7.3.12SubmitMsgType长度字段数据类型说明(字节)Tag2IntegerSubmitMsgType标签值Length2IntegerValue部分的长度34中国电信短消息网关SMGP接口协议规范(V3.1) 标准分享网www.bzfxw.com免费下载Value1IntegerSP发送的消息类型。0=普通短消息;1=WEB方式订阅通知消息;2=WEB方式取消订阅通知消息;3=终端方式订阅通知消息;4=终端方式取消订阅通知消息;5=包月扣费通知消息;其它保留。7.3.13SPDealResult长度字段数据类型说明(字节)Tag2IntegerSPDealResult标签值Length2IntegerValue部分的长度Value1IntegerSP对消息的处理结果0=订阅/取消订阅/扣费成功;1=订阅/取消订阅/扣费失败;其它保留。该字段在SubmitMsgType为0时无效。7.3.14SrcTermType长度字段数据类型说明(字节)Tag2IntegerSrcTermType标签值Length2IntegerValue部分的长度Value1Integer短消息发送方的号码类型。0=真实号码;1=伪码;其它保留。7.3.15SrcTermPseudo长度字段数据类型说明(字节)Tag2IntegerSrcTermPseudo标签值Length2IntegerValue部分的长度ValueLengthOctetString短消息发送方的伪码7.3.16NodesCount中国电信短消息网关SMGP接口协议规范(V3.1)35 长度字段数据类型说明(字节)Tag2IntegerNodesCount标签值Length2IntegerValue部分的长度Value1Integer经过的网关数量。该字段的初始值为1。7.3.17MsgSrc长度字段数据类型说明(字节)Tag2IntegerMsgSrc标签值Length2IntegerValue部分的长度Value8OctetString信息内容的来源。在固定网短消息业务中,MsgSrc填写SP的服务代码。在移动网短消息业务中,MsgSrc填写SP的企业代码。7.3.18SrcType长度字段数据类型说明(字节)Tag2IntegerSrcType标签值Length2IntegerValue部分的长度Value1Integer传递给SP的源号码的类型。0=真实号码;1=伪码;其它保留。7.3.19MServiceID长度字段数据类型说明(字节)Tag2IntegerMServiceID标签值Length2IntegerValue部分的长度Value21OctetString业务代码。用于移动网业务。要求填写产品ID(Productid,PID)。Serviceid和Productid是包含关系,一个Serviceid可以有多个Productid,电信仅向CP/SP开放Productid,Serviceid用于内部管理使用,Serviceid不开放给CP/SP使用。目前SMGW和CP/SP的SMGP接口只有Serviceid字段而没有productid字段,为继承以前版本,要求CP/SP在和引擎接口的Serviceid字段里填写Productid内容,引擎透传此内容到ISMAP接口的PID字段里,ISMP获取到的是Productid内容。36中国电信短消息网关SMGP接口协议规范(V3.1) 标准分享网www.bzfxw.com免费下载8基于SMGP协议的API函数详见附录A。中国电信短消息网关SMGP接口协议规范(V3.1)37 附录A基于SMGP协议的API函数说明(规范性附录)A.1基本要求A.1.1安装网关需要提供API软件包,解压到指定目录下后可以修改配置文件,配置参数至少包括SPId(SP编号)、SPShareKey(SP密码)、ClientIP(客户主机的IP地址)和ServerIP(短消息网关地址)。A.1.2例子程序网关至少应该提供以下例程,供SP调试使用,分别为:(1)Connect(参数),检查是否能够成功登录短消息网关;(2)TestAPI(参数),检查是否能够成功连接短消息网关。(3)SetKey(参数),修改SP密码。(4)SendSM(参数)尝试发送短消息。(5)RecvSM(参数)尝试接收短消息等。(6)RecvSMReport(参数),尝试接收短消息状态报告。A.1.3操作系统平台要求网关提供的API软件包至少要求支持以下操作系统平台:(1)FreeBSD3.x,4.2(2)Solaris5.6,5.7,5.8(包含x86)(3)Linux(Redhat和Slack等主流产品)(4)WindowsNT/2000等网关提供的API软件包至少要求支持以下编程语言:(1)C/C++(2)JAVAA.2API数据结构说明(以C语言为例)A.2.1接收短消息的返回数据结构(DeliverResp)(1)用途保存SMGPDeliver函数返回的短消息内容。(2)字段说明字段名数据类型说明SMsgIDChar(21)短消息标识NMsgFormatInt短消息格式(参照短消息格式代码表)。网关不做判定,透明传输。SSrcTermIDChar(22)短消息发送用户号码NIsReportInt是否为状态报告。代码含义:非状态报告(0);状态报告(1)NMsgLenInt消息长度sMsgContentChar(253)消息内容sDestTermIDChar(22)SP的接入代码sRecvTimechar(15)短消息接收时间(格式:yyyymmddhhmiss,例如20010301200000)sReservedChar(9)保留38中国电信短消息网关SMGP接口协议规范(V3.1) 标准分享网www.bzfxw.com免费下载A.2.2获取群发短消息的返回数据结构(SendBatchResp)(1)用途使用SMGPSendBatch群发短消息后,每条短消息的“消息标识”和“错误代码”保存在文件里。SMGPAPI提供GetSendBatchResp函数获取每一条短消息返回信息,保存在SendBatchResp中。(2)字段说明字段名数据类型说明sMsgIDChar(21)短消息标识nErrorCodeInt错误代码(参照错误代码表)sPhoneNoChar(22)发送号码A.2.3查询短消息网关的返回数据结构(QueryResp可选)(1)用途保存SMGPQuery函数返回的查询结果。(2)字段说明字段名数据类型说明nMT_TLMsgInt接收短消息总数nMT_TLusrInt接收用户总数nMT_ScsInt成功转发数量nMT_WTInt待转发数量nMT_FLInt转发失败数量nMO_ScsInt成功送达数量nMO_WTInt待送达数量nMO_FLInt送达失败数量A.3API函数说明A.3.1初始化API(InitSMGPAPI)(1)作用初始化SMGPAPI,应用程序只需要调用一次此函数。(2)参数参数名数据类型说明SiniFileChar(100)SMGPAPI配置文件名,缺省值是:”../config/smgpc.ini”。如果应用程序的执行目录不在smgpapi/bin下,就需要通过绝对或相对路径指定sINIFile。例如:InitSMGPAPI(“/opt/smgpapi/config/smgpc.ini”)(3)返回0=成功中国电信短消息网关SMGP接口协议规范(V3.1)39 1=失败A.3.2发送单条短消息(SMGPSendSingle)(1)作用向短消息网关发送1条短消息到1个终端用户。短消息长度最长为200,SMGPAPI在发送时自动建立ConnectionPool,采用长连接或者短连接发送短消息。当Cache的connection中断时,API能够自动重新连接短消息网关。如果应用程序采用多线程发送短消息,多个线程共享同一个ConnectionPool。在发送过程中,如果因为通信原因导致发送失败,API能够自动重新发送,重试的次数在配置文件设置。(2)参数参数名数据类型说明nNeedReportInt是否要求返回状态报告(0=不要求,1=要求)nMsgLevelInt信息级别(0-9,0=最低优先级)sServiceIDChar(11)业务代码nMsgFormatInt短消息格式(参照短消息格式表)。网关不做判定,透明传输。sFeeTypeChar(3)资费类别sFeeCodeChar(7)资费代码(以分为单位)sFixedfeeChar(7)包月费/封顶费(以分为单位)sValidTimeChar(18)存活有效期,格式遵循SMPP3.3协议sAtTimeChar(18)定时发送时间,格式遵循SMPP3.3协议sSrcTermIdChar(22)发送号码sChargeTermIDChar(22)计费号码sDestTermIDChar(22)短消息接收号码nMsgLenInt短消息长度sMsgContentChar(*)短消息内容(nMsgLen=0时表示存放短消息的文件名)sMsgIDChar(11)返回的短消息标识nErrorCodeInt*错误代码(参照错误代码表)。sMsgTypeChar(2)短消息类型sReservedChar(9)保留(3)返回0=成功1=失败A.3.3群发短消息(SMGPSendBatch)(1)作用向短消息网关发送1条短消息到多个终端用户。短消息长度最长为200,此函数使用文件传递短消息内容。SMGPAPI在发送时自动建立ConnectionPool,采用长连接或者短连接40中国电信短消息网关SMGP接口协议规范(V3.1) 标准分享网www.bzfxw.com免费下载发送短消息。当Cache的connection中断时,API能够自动重新连接短消息网关。如果应用程序采用多线程发送短消息,多个线程共享同一个ConnectionPool。在发送过程中,如果因为通信原因导致发送失败,API能够自动重新发送,重试的次数在配置文件设置。(2)参数参数名数据类型说明nNeedReportInt是否要求返回状态报告(0=不要求,1=要求)nMsgLevelInt优先级别,(0-9,0表示最低优先级)sServiceIDChar(11)业务代码nMsgFormatInt短消息格式(参照短消息格式表)。网关不做判定,透明传输。sFeeTypeChar(3)资费类别sFeeCodeChar(7)资费代码(以分为单位)sFixedfeeChar(7)包月费/封顶费(以分为单位)sValidTimeChar(18)存活有效期,格式遵循SMPP3.3协议sAtTimeChar(18)定时发送时间,格式遵循SMPP3.3协议sSrcTermIDChar(22)短消息发送用户号码(当为SP代码时须在前面加118)sChargeTermIDChar(22)计费号码(若为空,则对被叫计费)sDestTermIDFileChar(100)保存所有目的号码的文件名nMsgLenInt消息长度sMsgContentChar(*)短消息内容(nMsgLen=0时表示存放短消息的文件名)sMsgIDFileChar(100)保存所有短消息的返回MsgID和ErrorCode的文件名sMsgTypeChar(2)短消息类型sReservedChar(9)保留(3)返回0=成功1=失败A.3.4获取群发短消息的结果(GetSendBatchResp)(1)作用从文件里读取群发的某一个短消息的标识、发送结果和发送号码。(2)参数参数名数据类型说明sMsgIDFileChar(100)保存所有短消息的返回MsgID和ErrorCode的文件名nPosInt短消息位置,从0开始pSendBatchRespSendBatch用于保存结果的SendBatchResp结构指针Resp*(3)返回中国电信短消息网关SMGP接口协议规范(V3.1)41 0=成功1=失败A.3.5接收短消息(SMGPDeliver)(1)作用连接短消息网关,等待接收属于本SP的短消息。(2)参数参数名数据类型说明nTimeoutInt*等待时间,单位:秒。0表示永远等待。pDeliverRespDeliverRe保存短消息的DeliverResp结构指针sp*(3)返回0=成功1=失败A.3.6检查短消息网关是否能够提供服务(CMMPActiveTest)(1)作用检查短消息网关是否能够提供服务。(2)参数参数名数据类型说明nErrorCodeInt错误代码(参照错误代码表)。(3)返回0=成功1=失败A.3.7查询短消息流量(SMGPQuery可选)(1)作用向短消息网关查询某天的短消息流量。(2)参数参数名数据类型说明sDateChar(10)查询日期,格式:yyyymmddnQueryTypeInt查询类型,0=总数查询;1=按业务代码查询1sServiceIDChar(11)查询码(业务类型)pQueryRespQueryResp*保存查询结果的QueryResp结构指针(3)返回0=成功1=失败A.4配置SMGPAPI配置文件在smgpapi/config/smgpc.ini,以下是配置项的说明:名称说明SPIdSP编号,必须与License的一致。SPShareKeySP的密码,如果填写不正确会导致应用程序不能通过SMGP用42中国电信短消息网关SMGP接口协议规范(V3.1) 标准分享网www.bzfxw.com免费下载户认证。WithPrevPage第1个以后的分割短消息的前置说明文字,可以为空。例如(第2个分割短消息):(2/3)(continue)xxxxxx“(continue)”是前置说明文字WithNextPage分割短消息的后置说明文字,可以为空,最后一个短消息不带后置说明文字。例如(第1个分割短消息):(1/3)xxxxxx(tobecontinued)“(tobecontinued)”是前置说明文字PageSpaceAsciiAscII短消息的最大长度PageSpaceGB中文短消息的最大长度PageSpaceBinary二进制短消息的最大长度WithPageIndex在分割短消息时是否附加页号,0=否,1=是。MaxPage最大分割页数,最大是99页。ClientIP客户主机的IP地址,必须填写接入Internet的公网地址。如果主机是通过Gateway接入Internet,就填写Gateway地址。如果客户主机的IP地址填写错误会导致应用程序不能通过SMGP用户认证。ServerIP短消息网关的IP地址ServerPort短消息网关的端口SubmitRetry发送短消息自动重试次数(1表示只发送1次,不重新发送)RequestTimeout发送请求超时时间,单位:秒A.5短消息的自动分割功能SMGPSendSingle和SMGPSendBatch提供自动分割短消息的功能,分割的效果由smgpc.ini的配置控制。当参数nMsgFormat等于0或15时,API就提供分割短消息功能。API扫描短消息的内容,把短消息分段,根据每一段的短消息内容设置nMsgFormat。如果某一段短消息含有中文,就把那一段短消息的发送格式设为15,取PageSpaceGB为最大长度;如果不含中文,就把那一段短消息的发送格式设为0,取PageSpaceAscii为最大长度。这样,可以充分利用短消息的最大发送长度,减少分割数量。如果WithPrevPage或者PageSpaceGB含有汉字,所有分割短消息的发送格式都设为15。当参数nMsgFormat等于4时,API根据PageSpaceBinary配置分割短消息。当参数nMsgFormat等于0并且长度小于PageSpaceGB,API扫描短消息内容是否含有中文。如果发现中文,就自动把发送格式变为15。A.6错误代码含义编号含义0成功1保留2保留中国电信短消息网关SMGP接口协议规范(V3.1)43 3消息格式错4非法短消息长度(MsgLength)5非法资费代码(FeeCode)6保留7非法业务代码(ServiceId)8系统忙9保留10非法SP编号11非法信息格式(MsgFormat)12非法资费类别(FeeType)13非法存活有效期(ValidTime)14非法定时发送时间(AtTime)15非法计费号码(ChargeTermId)16非法目标号码(DestTermId)17不能打开目标号码文件(DestTermIdFile)18不能打开短消息内容文件(MsgFile)19保留20连接短消息网关失败21认证错22保留23发送队列满24保留25命令字错26序列号错27保留28保留29版本号不匹配30非法消息类型(MsgType)31非法优先级(Priority)32保留33保留34保留35非法时间格式36保留44中国电信短消息网关SMGP接口协议规范(V3.1) 标准分享网www.bzfxw.com免费下载37保留38非法查询类型(QueryType)39路由错误40非法包月/封顶费(FixedFee)41保留42保留43保留44保留45保留46非法发送用户号码(SrcTermId)47保留48保留99系统错误其它保留附录B短消息群发功能的实现(规范性附录)MT短信的群发功能的实现:SMGW接收到来自SP的SMGP_Submit消息后,判断是否为群发的MT短信。如果是群发的MT短信(假设群发目的号码数为n),则将该消息拆包为n条SMGP_Forward消息发送给其它网关或SMPP_Submit消息发给SMC,其中计费规则(对谁计费和计费多少)与单条MT短信的计费规则相同。返回给SP的SMGP_Submit_Resp消息中的Msg_ID则暗示一个范围,即Msg_ID~Msg_ID+(n-1)分别对应n个目的终端用户的信息标识,那么在返回的状态报告中可以依据Msg_ID~Msg_ID+(n-1)范围内的数字匹配出群发短信中的每一个短信发送请求。需要注意的是,Msg_ID~Msg_ID+(n-1)范围内的信息标识不能被随后的其它SMGP_Submit_Resp消息使用。在Msg_ID中的“序列号”如下定义:“序列号:000000~999999,顺序增加,步长为1,循环使用。”,那么在Msg_Id~Msg_Id+(n-1)范围中仍然依据此规则,如果其中“序列号”到达最大值,则从0开始循环使用。增加此短信群发功能,实际上等同于SP把以前分为n次发送的短信合并到一条消息中,但是SP仍然应该把此一条消息当作n条短信提交请求,并相应记录n条话单,SP拿n条话单与电信公司进行对帐和结算。接入SMGW对SP下发的短信的流量具有限制功能,对SP流量的统计对短信群发来说,应该计算为n条短信。中国电信短消息网关SMGP接口协议规范(V3.1)45 抄送:股份公司并转北京、上海、广州研究院。公司内部:集团公司市场部、网络发展部、监管事务部、国际部、政企客户事业部、家庭客户事业部、个人客户事业部、网络运行维护事业部。拟文部门:技术部会签部门:家庭客户事业部、个人客户事业部。中国电信集团公司综合部2008年12月5日印发'