中国电信企业标准CTCT/TSNRC1CTMP开发-SMGPV3.0.3CTMP开发-中国电信短消息网关协议(SMGP)2009-04发布2009-04实施中国电信集团公司CTMP开发-短消息网关协议SNRC1CTMP开发-SMGPV3.0.3-1-目录1适用范围............................................................................................................................22引用标准............................................................................................................................33缩略语................................................................................................................................44SMGP协议概述................................................................................................................54.1定义................................................................................................................................................54.2通信方式........................................................................................................................................54.3协议应用及涉及的端口号............................................................................................................75SMGP协议........................................................................................................................75.1数据类型........................................................................................................................................75.2消息结构........................................................................................................................................86参数定义..........................................................................................................................136.1消息头参数描述..........................................................................................................................136.2消息体必选参数描述..................................................................................................................146.3消息体可选参数描述..................................................................................................................25短消息网关协议SNRC1SMGPV3.0.3-1-前言本标准规定了企业信使平台与企业用户进行短消息传输的接口协议。本标准是在SMGP协议V3.0.3的基础上,基于企业信使平台需求进行修订而成。CTMP开发-短消息网关协议SNRC1CTMP开发-SMGPV3.0.3-2-1适用范围本协议适用于企业信使平台、企业用户设备开发商及内容提供商。CTMP开发-短消息网关协议SNRC1CTMP开发-SMGPV3.0.3-3-2引用标准下列文件通过本文的参考而成为本规范的条款。凡是注日期的参考文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本文,凡是不注日期的参考文件,其最新版本适用于本文。【1】ShortMessagePeertoPeerProtocolSpecification【2】中国电信CDMA短消息网关设备规范v1.0.1【3】中国电信CDMA短消息网关测试规范v1.0.1【4】中国电信综合业务管理平台ISMP接口规范_RC1.0.1_-SS接口CTMP开发-短消息网关协议SNRC1CTMP开发-SMGPV3.0.3-4-3缩略语缩略语英文全名中文全名CTMPChinaTelecomMessagePlatform企业信使平台SPServiceProvider服务提供商SMGPShortMessageGatewayProtocol短消息网关协议SMPPShortMessagePointtoPointProtocol短消息点到点协议CTMP开发-短消息网关协议SNRC1CTMP开发-SMGPV3.0.3-5-4SMGP协议概述4.1定义SMGP协议是CTMP与CP进行短消息传输的接口协议。4.2通信方式所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发链路检测包以维持此连接。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。消息采用并发方式发送,加以滑动窗口流量控制,窗口大小参数W可配置,现阶段建议为16,即接收方在应答前一次收到的消息最多不超过16条。长连接的操作流程举例如图1所示:CTMP开发-短消息网关协议SNRC1CTMP开发-SMGPV3.0.3-6-......建立TCP连接滑动窗口不大于WWSMGP消息1客户端服务器端SMGP消息2对SMGP消息1的响应对SMGP消息2的响应链路检测包链路检测包响应建立TCP连接链路检测包链路检测包响应拆除TCP连接......建立TCP连接图4.1长连接操作流程CTMP开发-短消息网关协议SNRC1CTMP开发-SMGPV3.0.3-7-4.2.2单连接一个SP帐号同时只能有一个SMGP连接连到CTMP平台,该连接为双工模式,既可以发送Submit,也可以接收SubmitResp和Deliver消息。4.3协议应用及涉及的端口号89005SMGP协议5.1数据类型5.1.1基本数据类型Integer无符号整数OctetString不强制以0x00结尾的定长字符串。当位数不足时,在不明确注明的情况下,应左对齐,右补0x00。在明确注明的情况下,以该字段的明确注明为准。5.1.2可选参数可选参数采用TLV(Tag、Length、Value)形式定义,每个可选参数的Tag、Length、Value的定义见6.3节。字段长度(字节)数据类型说明Tag2Integer字段的标签,用于唯一标识可选参数Length2Integer字段的长度CTMP开发-短消息网关协议SNRC1CTMP开发-SMGPV3.0.3-8-Value可变长度可变类型字段内容5.2消息结构项目说明MessageHeader消息头(所有消息公共包头)MessageBody消息体5.2.1消息头结构字段长度(字节)数据类型说明参考PacketLength4Integer数据包长度6.1.1RequestID4Integer请求标识6.1.2SequenceID4Integer消息流水号6.1.35.2.2消息体结构5.2.2.1登录操作(Login)Login操作的目的是客户端向服务器端注册作为一个合法客户端身份,若注册成功后即建立了应用层的连接,此后客户端可以与此服务器端进行消息的接收和发送。服务器端以Login_Resp消息响应客户端的请求。5.2.2.1.1Login字段长度(字节)数据类型说明参考必选参数ClientID8OctetString客户端用来登录服务器端的用户账号。6.2.1AuthenticatorClient16OctetString客户端认证码,用来鉴别客户端的合法性。6.2.2LoginMode1Integer客户端用来登录服务器端的登录类型。6.2.3TimeStamp4Integer时间戳6.2.4ClientVersion1Integer客户端支持的协议版本号6.2.5CTMP开发-短消息网关协议SNRC1CTMP开发-SMGPV3.0.3-9-5.2.2.1.2Login_Resp字段长度(字节)数据类型说明参考必选参数Status4Integer请求返回结果6.2.6AuthenticatorServer16OctetString服务器端返回给客户端的认证码6.2.7ServerVersion1Integer服务器端支持的最高版本号6.2.85.2.2.2SP向CTMP提交短消息的操作(Submit)5.2.2.2.1Submit字段长度(字节)数据类型说明参考必选参数MsgType1Integer短消息类型6.2.9NeedReport1IntegerSP是否要求返回状态报告6.2.10Priority1Integer短消息发送优先级6.2.11ServiceID10OctetString业务代码6.2.12FeeType2OctetString收费类型6.2.13FeeCode6OctetString资费代码6.2.14FixedFee6OctetString包月费/封顶费6.2.15MsgFormat1Integer短消息格式6.2.16ValidTime17OctetString短消息有效时间6.2.17AtTime17OctetString短消息定时发送时间6.2.18SrcTermID21OctetString短信息发送方号码6.2.19ChargeTermID21OctetString计费用户号码6.2.20DestTermIDCount1Integer短消息接收号码总数6.2.21CTMP开发-短消息网关协议SNRC1CTM