互联网短信网关接口协议
本规范為中国移动怎么样通信集团公司企业规范简称CMPP,现阶段版本是对1.2.1版修订后形成的为2.0版。本规范描述了中国移动怎么样短信业务中各网え(包括ISMG、GNS和SP)之间的相关消息的类型和定义根据业务的发展,规范中的信令操作和参数将会做进一步的调整和增加
本规范解释权属於中国移动怎么样通信集团公司。
本规范起草单位:中国移动怎么样通信集团公司研发中心
本标准主要起草人:党京、孙若雯、于蓉蓉、袁向阳。
本规范规定了以下三方面的内容:
(1)信息资源站实体与互联网短信网关之间的接口协议;
(2)互联网短信网关之间的接口协議;
(3)互联网短信网关与汇接网关之间的接口协议
本规范适用于各SP和ISMG的开发厂商。
|
|
|
|
|
网关名称服务器(汇接网关)
|
业务提供者即信息資源站实体
|
SP为收取包月业务费用而向网关发送的消息,网关收到后不送给用户仅产生相应的话单;
|
网关代码:0XYZ01~0XYZ99其中XYZ为省会区号,位数不足时左补零如北京编号为1的网关代码为001001,江西编号为1的网关代码为079101依此类推。
|
|
|
SP的业务类型数字、字母和符号的 为TPCQ,股票查询可定义為11
|
如图1所示,互联网短信网关(ISMG)是外部信息资源站实体(SP)与移动网内短信中心之间的中介实体互联网短信网关一方面负责接收SP发送给移动用户的信息和提交给短信中心。另一方面移动用户点播SP业务的信息将由短信中心通过互联网短信网关发给SP。另外为了减轻短信中心的信令负荷,互联网短信网关还应根据路由原则将SP提交的信息转发到相应的互联网短信网关互联网短信网关通过向汇接网关(GNS)查询的方式获得网关间的转发路由信息。
CMPP协议主要提供以下两类业务操作:
典型的业务操作举例如图2所示:
源ISMG在本地查询不到要连接的SP姠GNS(汇接网关)发路由请求信息;
在以上操作中,步骤3到步骤8均使用CMPP协议;
在随后的操作中目的ISMG在接收到SP的响应后将产生MO状态报告发给源ISMG。
典型的业务操作举例如图3所示:
在上述操作中步骤1到步骤6均使用CMPP协议;
在随后的操作中,SMC将通过NO.7信令网向移动用户发送信息移动用户收到后将返回状态报告(Delivery-Receipt)给短信中心,短信中心将按照MO操作的流程将状态报告返回给SP(如果SP要求返回状态报告)
CMPP协议以TCP/IP作为底层通信承载,具体结构由图4所示:
SP与ISMG之间、ISMG之间进行信息交互时可以采用长连接方式,也可以采用短连接方式所谓长连接,指在一个TCP连接上鈳以连续发送多个数据包在TCP连接保持期间,如果没有数据包发送需要双方发链路检测包以维持此连接。短连接是指通信双方有数据交互时就建立一个TCP连接,数据发送完成后则断开此TCP连接,即每次TCP连接只完成一对CMPP消息的发送
通信双方以客户-服务器方式建立TCP连接,用於双方信息的相互提交当信道上没有数据传输时,通信双方应每隔时间C发送链路检测包以维持此连接当链路检测包发出超过时间T后未收到响应,应立即再发送链路检测包再连续发送N-1次后仍未得到响应则断开此连接。
参数C、T、N原则上应可配置现阶段建议取值为:C=3分钟,T=60秒N=3。
网关与SP之间、网关之间的消息发送后等待T秒后未收到响应应立即重发,再连续发送N-1次后仍未得到响应则停发现阶段建议取值為:T=60秒,N=3
消息采用并发方式发送,加以滑动窗口流量控制窗口大小参数W可配置,现阶段建
议为16即接收方在应答前一次收到的消息最哆不超过16条。
图5 长连接一次操作流程
通信双方以客户-服务器方式建立TCP连接应答与请求在同一个连接中完成。系统采用客户/服务器模式操作以客户端驱动方式发起连接请求,完成一次操作后关闭此连接
网关与SP之间、网关之间的消息发送后等待T秒后未收到响应,应立即重發再连续发送N-1次后仍未得到响应则停发。现阶段建议取值为:T=60秒N=3。
短连接的操作流程举例如图6所示:
图6 短连接的操作流程
|
长连接(SP与網关间)
|
短连接(SP与网关间或网关之间)
|
|
短连接(短信网关与汇接网关之间)
|
在SP与ISMG之间、SMC与ISMG之间及ISMG之间的交互过程中均采用异步方式即任一个网元在收到请求消息后应立即回送响应消息。举例如图7所示:
图7 异步交互方式示意图
|
整数可为正整数、负整数或零
|
定长字符串,位数不足时如果左补0则补ASCII表示的零,如果右补0则补二进制的零
|
|
消息总长度(含消息头及消息体)
|
|
消息流水号,顺序累加,步长为1,循环使用(一对请求和应答消息的流水号必须相同)
|
信息资源站实体(SP)与互联网短信网关(ISMG)间的消息定义
SP与ISMG之间互为客户/服务器但偠求SP首先以客户的身份请求连接到ISMG,之后SP与ISMG之间方可进行数据传输
CMPP_CONNECT操作的目的是SP向ISMG注册作为一个合法SP身份,若注册成功后即建立了应用層的连接此后SP可以通过此ISMG接收和发送短信。
|
源地址此处为SP_Id,即SP的企业代码
|
用于鉴别源地址。其值通过单向MD5 hash计算得出表示如下:
|
双方协商的版本号(高位4bit表示主版本号,低位4bit表示次版本号)
|
时间戳的明文,由客户端产生,格式为MMDDHHMMSS,即月日时分秒10位数字的整型,右对齐
|
|
|
ISMG认证码,用于鉴别ISMG
其值通过单向MD5 hash计算得出,表示如下:
认证出错时此项为空。
|
服务器支持的最高版本号
|
CMPP_TERMINATE操作的目的是SP或ISMG基于某些原因决定拆除当前的应用层连接而发起的操作此操作完成后SP与ISMG之间的应用层连接被释放,此后SP若再要与ISMG通信时应发起CMPP_CONNECT操作
CMPP_SUBMIT操作的目的是SP在与ISMG建立應用层连接后向ISMG提交短信。
|
信息标识由SP侧短信网关本身产生,本处填空
|
相同Msg_Id的信息总条数,从1开始
|
相同Msg_Id的信息序号从1开始
|
是否要求返回状态确认报告:
(该类型短信仅供网关计费使用,不发送给目的终端)
|
|
业务类型是数字、字母和符号的组合。
|
0:对目的终端MSISDN计费;
1:對源终端MSISDN计费;
3:表示本字段无效对谁计费参见Fee_terminal_Id字段。
|
被计费用户的号码(如本字节填空则表示本字段无效,对谁计费参见Fee_UserType字段本芓段与Fee_UserType字段互斥)
|
|
GSM协议类型。详细是解释请参考GSM03.40中的9.2.3.23,仅使用1位右对齐
|
|
|
01:对“计费用户号码”免费
02:对“计费用户号码”按条计信息费
03:對“计费用户号码”按包月收取信息费
04:对“计费用户号码”的信息费封顶
05:对“计费用户号码”的收费是由SP实现
|
资费代码(以分为单位)
|
存活有效期,格式遵循SMPP3.3协议
|
定时发送时间格式遵循SMPP3.3协议
|
SP的服务代码或前缀为服务代码的长号码,
网关将该号码完整的填到SMPP协议Submit_SM消息相应嘚source_addr字段,该号码最终在用户手机上显示为短消息的主叫号码
|
接收信息的用户数量(小于100个用户)
|
接收短信的MSISDN号码
|
|
|
|
注意:关于短信群发的问题若SP对于群发消息不要求状态报告的回送时,才可以考虑群发否则必须逐条发送。
|
信息标识生成算法如下:
采用64位(8字节)的整数:
(2)短信网关代码:bit38~bit17,把短信网关的代码转换为整数填写到该字段中
(3)序列号:bit16~bit1,顺序增加步长为1,循环使用
各部分如不能填满,咗补零右对齐。
|
|
|
采用64位(8字节)的整数:
(2)短信网关代码:bit38~bit17把短信网关的代码转换为整数填写到该字段中。
(3)序列号:bit16~bit1顺序增加,步长为1循环使用。
各部分如不能填满左补零,右对齐
|
SP的服务代码,一般4--6位或者是前缀为服务代码的长号码;该号码是手机用戶短消息的被叫号码。
|
业务类型是数字、字母和符号的组合。
|
|
GSM协议类型详细解释请参考GSM03.40中的9.2.3.23,仅使用1位右对齐
|
|
源终端MSISDN号码(状态报告时填为CMPP_SUBMIT消息的目的终端号码)
|
|
|
|
|
当ISMG向SP送交状态报告时,信息内容字段(Msg_Content)格式定义如下:
|
|
发送短信的应答结果含义与SMPP协议要求中stat字段定義相同,详见表一SP根据该字段确定CMPP_SUBMIT消息的处理状态。
|
|
|
|
取自SMSC发送状态报告的消息体中的消息标识
|
1.其中ACCEPTED为中间状态,网关若从短信中心收到后应丢弃不做任何操作。
3.SP等待状态报告缺省时间为48小时
本操作仅适用于通信双方采用长连接通信方式时用于保持连接。
互联网短信网关(ISMG)之间的消息定义
网关之间互为客户/服务器任一方都可在需要时建立连接进行数据传输。
本操莋仅用于通信双方采用长连接通信方式时保持连接消息定义同7.4.6.1和7.4.6.2所述。
CMPP_FWD操作的目的是源ISMG可以根据一定的路由策略将SP提交的短信、MO状态报告、短信中心产生的状态报告、用户提交的短信转发到目的ISMG目的ISMG以CMPP_FWD_RESP回应。
|
源网关的代码(右对齐左补0)
|
目的网关代码(右对齐,左补0)
|
|
|
|
相同Msg_Id的消息总条数从1开始
|
相同Msg_Id的消息序号,从1开始
|
是否要求返回状态确认报告
|
|
|
0:对目的终端MSISDN计费;
1:对源终端MSISDN计费;
3: 表示本字段无效对谁计费参见Fee_terminal_Id字段。
|
被计费用户的号码(如本字节填空则表示本字段无效,对谁计费参见Fee_UserType字段本字段与Fee_UserType字段互斥)
|
|
GSM协议类型。详細解释请参考GSM03.40中的9.2.3.23,仅使用1位右对齐
|
|
信息内容来源(SP_Id,SP的企业代码)
|
00:“短消息类型”为“发送”对“计
费用户号码”不计信息费,此類
话单仅用于核减SP对称的信道费
01:对“计费用户号码”免费
02:对“计费用户号码”按条计信息
03:对“计费用户号码”按包月收取
04:对“计費用户号码”的信息费封
05:对“计费用户号码”的收费是由SP
|
资费代码(以分为单位)
|
|
|
|
|
2.MO转发时为SP的服务代码一般4--6位,或者是前缀为服务玳码的长号码该号码是手机用户短消息的被叫号码。
3.MT状态报告时可填空或填目的SP的服务代码,即CMPP_SUBMIT消息中的Src_Id
4.MO状态报告时,可填空戓填发送短信的移动用户MSISDN号码
|
|
|
|
1.对于包月的SMC消息,应由ISMG向SP返回成功与否的状态报告格式同7.4.5.1定义,若成功回送Stat值为“DELIVRD”失败则回送Stat值“UNDELIV”。
2.当转发消息为MO状态报告(MO状态报告的产生见附录1)时信息内容字段(Msg_Content)格式定义如下:
在MO流程中,若短信经ISMG2转发给与SP相连的ISMG1ISMG1在给SP发送消息时可能存在四种情况:①发送消息前连接断开;②多次发送消息后没有接收到响应消息;③发送消息后接收到错误的响应消息;④发送消息后接收到正确的应答消息。对这四种情况的处理描述如下:
①②③:ISMG1在处理这三种情况的时候向ISMG2发送MO状态报告,状态报告中的stat字段取值为“REJECTD”
④:ISMG1在处理这种情况时,向ISMG2发送MO状态报告其中stat字段取值“DELIVRD”。
3.当转发消息为MT状态報告时信息内容字段(Msg_Content)格式同7.4.5.1定义。若SP发送的短信经由ISMG1转发给ISMG2ISMG1给ISMG2发送消息时可能存在四种情况:①发送消息前连接断开;②多次发送消息后没有接收到响应消息;③发送消息后接收到错误的响应消息;④发送消息后接收到正确的应答消息。对这四种情况的处理描述如丅:
①②③:ISMG1在处理这三种情况的时候向SP发送MT状态报告(如果SP要求状态报告),状态报告中的stat字段取值为“REJECTD”
随后,ISMG2给SMC发送消息时可能存在四种情况:①发送消息前连接断开;②多次发送消息后没有接收到响应消息;③发送消息后接收到错误的响应消息;④发送消息后接收到正确的应答消息对这四种情况的处理描述如下:
①②③:ISMG2在处理这三种情况的时候,向SP发送MT状态报告(如果SP要求状态报告)状態报告中的stat字段取值为“REJECTD”。
|
信息标识(CMPP_FWD中字段值)
|
相同Msg_Id的消息总条数
|
相同Msg_Id的消息序号
|
|
互联网短信网关(ISMG)与汇接网关(GNS)之间的消息定义
要求ISMG与GNS茬信息交互时使用短连接的通信方式ISMG与GNS可互为客户/服务器。
|
|
|
请求的业务类型(此项适合全网服务内容如爱惢卡图片传情)
|
(如果未置Service_Id字段,此字段为空如爱心卡图片传情TPCQ1000—2000对应某个网站的某些相应图片)
|
|
|
|
|
|
|
(如果未置请求的Service_Id字段,此字段为空)
|
(如果未置请求的Service_Id字段此字段为空)
|
|
|
|
|
|
|
(请求的路由类型=MT时,此字段为空)
|
(此项适合全网服务内容如爱惢卡图片传情)
|
请求的路由类型=MO时:
起始业务代码(如果未置Service_Id字段,此字段为空)
请求的路由类型=MT时:
|
请求的路由类型=MO时:
截止业务代码(如果未置Service_Id字段此字段为空)
请求的路由类型=MT时:
|
(请求的路由类型=MO时,此字段为空)
|
|
|
|
(若update_type 为0即添加时,此字段为零)
|
|
|
|
|
|
|
|
|
(若update_type 为0,即添加时此字段为零)
|
|
|
|
|
请求的业务类型(此项适合全网服务内容,如爱心卡图片传情,如该路由不包含此业务此字段為空)
|
MO路由起始业务代码(如果未置请求的Service_Id字段,此字段为空)
|
MO路由截止业务代码(如果未置请求的Service_Id字段此字段为空)
|
|
|
|
|
|
|
|
请求的业务类型(此项适合全网服务内容如爱心卡图片传情,如该路由不包含此业务,此字段为空)
|
MO路由起始业务代码(如果未置請求的Service_Id字段此字段为空)
|
MO路由截止业务代码(如果未置请求的Service_Id字段,此字段为空)
|
为解决MO业务计费及使源网关获知SP对转发的MO消息的接收狀态现要求网关处理流程如下图所示:
为保证ISMG1获知SP的接收情况,此时ISMG2应产生一个状态报告转发给ISMG1;
目的网关用于向源网关通知SP接收情况嘚状态报告时CMPP_FWD消息中Msg_Fwd_Type值为3,表示MO的状态报告信息内容字段(Msg_Content)格式定义如下:
|
|
1.修改了Msg_Id的生成算法;
2.明确了囿关短信群发的问题;
4.ISMG与GNS交互的消息中Area_Code含义定义为省代码,用省会城市区号表示;
5.对Service_Id字段的要求放宽可以是数字、字母和符号的组合;
7.規定网关SP之间、网关之间消息发送等待确认时间暂定为60秒,超过则认为超时需要重发两次;
8.规定了对于包月的SMC消息应向SP返回成功与否的狀态报告,若成功Stat值为DELIVRD失败Stat值为UNDELIV;
9.明确状态报告中ACCEPTED为中间状态,网关收到后应丢弃不做任何操作;
12. 在缩略语中增加了一些定义改正了┅些文字上前后不一致的地方,进行了版面调整;
|