短消息业务联网协议SGIP.docx

上传人:b****4 文档编号:4235982 上传时间:2022-11-28 格式:DOCX 页数:61 大小:124.91KB
下载 相关 举报
短消息业务联网协议SGIP.docx_第1页
第1页 / 共61页
短消息业务联网协议SGIP.docx_第2页
第2页 / 共61页
短消息业务联网协议SGIP.docx_第3页
第3页 / 共61页
短消息业务联网协议SGIP.docx_第4页
第4页 / 共61页
短消息业务联网协议SGIP.docx_第5页
第5页 / 共61页
点击查看更多>>
下载资源
资源描述

短消息业务联网协议SGIP.docx

《短消息业务联网协议SGIP.docx》由会员分享,可在线阅读,更多相关《短消息业务联网协议SGIP.docx(61页珍藏版)》请在冰豆网上搜索。

短消息业务联网协议SGIP.docx

短消息业务联网协议SGIP

 

中国联合通信公司

短消息网关系统接口协议

(SGIP)

版本1.2

 

中国联合通信公司

二零零一年十月

 

1概述

1.1协议说明

本协议是SMG和SP之间、SMG和GNS之间、以及SMG和SMG之间的接口协议,简称SGIP。

通过应用SGIP协议,SP可以接入到SMG,实现SP应用的一点接入、全网服务;SMG可以通过SGIP协议,实现消息在不同SMG之间的路由和转发。

同时,SMG通过该协议也可以和GNS通信,以实现各SMG和GNS之间路由表的同步功能。

1.2适用范围

本协议适用于各SP厂商和SMG的开发厂商。

1.3参考资料

[1]SMPP3.3

[2]GSM3.40

[3]GSM3.38

[4]HTTP1.0

1.4术语表

本协议用到以下术语:

GNSGatewayNameServer,负责系统路由的管理和同步

MO由手机用户提交的短消息

MT由手机用户接收的短消息

SGIPShortMessageGatewayInterfaceProtocol,本协议所描述的短消息网关接口协议,用于完成在SMG和SP之间、SMG和SMG之间短消息的发送、接收和转发功能,以及SMG和GNS之间路由表的同步功能

SMGShortMessageGateway,联通公司的短消息网关,SMG之间的通讯协议采用SGIP

SMPPShortMessagePeertoPeer,短消息点对点协议,采用3.3版本

SMSCShortMessageServiceCenter,短消息中心

SPServiceProvider,服务提供商

2系统体系结构

SMG是具有短消息转发功能的短消息网关。

全国可以有多个SMG网关,SMG网关之间通过互联网等方式实现网络互联。

每一个SMG同时与多个SMSC以及多个SP连接。

全网具有唯一有效的GNS,GNS负责全局路由表的维护与更新;为了确保路由表存储的安全性,网络中设置主备用GNS,两个GNS要保持一致性。

每一个SMG都和GNS连接。

SMG与SP、SMG与GNS以及SMG与SMG之间的通信协议为SGIP协议。

SMG与SMSC之间的通信统一采用SMPP3.3协议。

图2-1说明了系统的体系结构。

图2-1SMG的体系结构

和SMG平台之间相连的SMSC称作本地SMSC,和异地SMG平台相连的SMSC称作异地SMSC。

和SMG平台之间相连的SP称作本地SP,和异地SMG平台相连的SP称作异地SP。

从本地SMSC向本地SP以及从本地SP向本地SMSC发送的消息直接由SMG转发;从本地SMSC向异地SP以及从本地SP向异地SMSC发送的消息由本地SMG路由到异地SMG后,再由异地SMG转发。

2.1消息从本地SMSC到本地SP

SMG从SMSC接收到短消息,直接发给SP。

比如

SMSC1A—〉SMG1—〉SP1Y

SMSC1B—〉SMG1—〉SP1X

2.2消息从本地SP到本地SMSC

SMG从SP接收短消息,直接发给SMSC。

比如

SP1X—〉SMG1—〉SMSC1A

SP1Y—〉SMG1—〉SMSC1B

2.3消息从本地SMSC到异地SP

SMG从本地SMSC接收短消息,再路由到异地SMG,由异地的SMG发送到目的SP,比如

SMSC1A—〉SMG1—〉SMG2—〉SP2Y

SMSC1B—〉SMG1—〉SMG3—〉SP3X

2.4消息从本地SP到异地SMSC

SMG从本地SP接收短消息,再路由到异地SMG,由异地的SMG发送到目的SMSC,比如

SP1X—〉SMG1—〉SMG2—〉SMSC2A

SP1Y—〉SMG1—〉SMG3—〉SMSC3B

2.5路由选择

当消息在本地SMSC和异地SP,或者在本地SP和异地SMSC之间传输时,发送方必须要获取消息接收方的位置信息。

这部分功能称为路由选择。

对于MO方向的命令(即命令接收方为SP),其路由根据命令中的SP接入号码来选择。

对于MT方向的命令(即接收方为用户手机),其路由根据命令中的付费号码和用户号码来综合判断。

如果付费号码为空,或付费号码为SP接入号码,则根据用户号码来选择路由;否则根据付费号码所代表的手机号码来选择路由(这样做是考虑到了系统计费和用户鉴权的可行性,关于计费和用户鉴权的细节,请参见其它文档)。

由于SMG网关之间采用网状互联,网关之间不可能出现二次前转,因此接收前转消息的网关必须能判断前转的消息目的地址是否是本网关覆盖范围的用户,若不是,必须发送出错信息到前转网关。

3

通信流程

SGIP有两种具体实现方式,一种是采用专用SGIP方式,另一种是采用通用HTTP方式。

SMG和GNS、以及SMG和SMG之间采用专用SGIP方式作为承载协议;而SP和SMG的通信同时支持专用SGIP方式和通用HTTP方式两种承载协议。

3.1专用SGIP方式

采用专用SGIP方式承载时,通信双方互为客户端和服务器端。

当客户端要发送命令时,主动向服务器端建立连接,然后向服务器端发送命令,并接收应答;服务器端从客户端接收命令,返回应答。

连接建立以后,客户端可以连续发送多条命令。

命令发送完并接收到所有应答后,客户端应该主动断开连接。

但是,命令及其应答之间的时间间隔最大不能超过30秒(默认,可配置)(如果命令应答时间超过最大等待时间,则要求客户端重发该条命令,重发机制参见业务联网规范有关内容),且待应答的命令不得超过32条(可以根据线路的质量和服务器的处理能力配置)。

而且,如果服务器端检测出一条连接长时间空闲(默认60秒,可配置),可以主动断开该连接。

如果需要,客户端可以同时向一个服务器端建立多个连接(SMG与单个其他SMG最多不能建立超过15个连接,对与之相连的单个SP的最大连接数视具体情况而定)。

采用专用SGIP承载方式时,SMG和SMG、SP和SMG之间使用的端口号是8801,GNS监听SMG的端口号为8802,SMG监听GNS的端口号为8803,主GNS和备用GNS之间的端口号为8804,SMG之间的测试用端口号为8810。

3.2通用HTTP方式

HTTP承载方式只适用于SP和SMG的通信中。

与SP与SMG之间的专用SGIP承载方式不同的是,该种方式一次连接仅仅传送一条命令,而且连接的认证采用HTTP的URL的授权认证的方式,不需要专门的连接认证的命令,使用的端口号是80。

3.3通信节点编号规则

在整个网关系统中,所有的通信节点(SMG、GNS、SP和SMSC)都有一个唯一的数字编号,不同的SP或SMSC或SMG或GNS编号不能相同,编号由系统管理人员负责分配。

编号规则如下:

SMG的编号规则:

1AAAAX

SMSC的编号规则:

2AAAAX

SP的编号规则:

3AAAAQQQQQ

GNS的编号规则:

4AAAAX

其中, AAAA表示四位长途区号(不足四位的长途区号,左对齐,右补零),X表示1位序号,QQQQQ表示5位企业代码。

3.4序列号的定义

短消息网关系统之中传输的每一条命令都有一个序列号,序列号由命令源节点产生并唯一标记一条命令;也就是说,网关系统中任何两个命令的序列号都不相同。

需要注意的是,一条命令在发送过程中转发的不同副本视为一条命令,使用相同的序列号。

比如,SP1X向SMSC2A发送一条命令,该命令需经过多次转发才能到达SMSC2A,而转发该命令的每一次通信过程中使用的命令的序号均相同,为SP1X与SMG1通信所使用的序列号。

对于MO短消息,例如SMSC1B向SP3X发送一条命令,短消息首先采用SMPP协议发送到SMG1,经过SMG1转发时序列号必须由SMG1重新生成(此时命令源节点为SMG1)。

序列号分成三部分,每部分为一个32位整数,第一部分表示命令源节点的编号,第二部分表示命令产生的日期和时间(网关系统中的任何命令的保存时间都不应该超过一年),格式为十进制的mmddhhmmss,比如11月20日20时32分25秒产生的命令,其第二部分为十进制1120203225;第三部分由0开始,循环进位,直到进位满了之后再清零,重新开始计数。

接收方在返回应答时,应答的序列号必须和相对应的命令的序列号相同。

图3-1命令序列号格式举例

3.5通信的安全性

SP与SMG、SMG与SMG以及SMG与GNS之间采用专用SGIP方式通信时可采用对称加密方式。

SP与SMG之间采用通用HTTP方式时,可采用HTTPS方式加密。

3.6用户鉴权

当一条MT短消息需要处理时,终点SMG必须保证该短消息的付费方有资格享用该服务(比如付费用户不欠费)。

根据短消息服务类型的不同,可以将付费方式分成三类:

被叫方付费、SP付费和第三方付费。

3.6.1被叫方付费

目前的短消息中心都具有对被叫用户鉴权的功能,所以对由被叫方付费的MT短消息,SMG不作鉴权检查,直接转发至SMSC;如果被叫方鉴权失败,SMSC会通过反馈通知SMG。

3.6.2SP付费

当MT短消息是由SP付费时(如SP发送广告),SMG不作鉴权检查。

3.6.3第三方付费

当MT短消息是由第三方付费(如手机用户A通过SP给手机用户B点歌,并由手机用户A付费)时,应该对付费方进行鉴权。

这种情况下,该MT短消息应该从付费方归属地的短消息中心发送,并且由付费方归属地的计费中心完成鉴权操作。

如果计费中心鉴权成功,SMG即将该MT短消息发送至SMSC,否则SMG不再发送该短消息,并根据SP的要求决定是否返回Report命令通知SP发送失败的原因。

SMG和计费中心通过TCP/IP通信实现鉴权功能。

计费中心为服务器端,SMG为客户端。

一次鉴权过程完成对一个手机号码的鉴权。

鉴权步骤如下:

1.SMG和计费中心建立TCP/IP连接;

2.SMG向计费中心发送鉴权命令;

3.SMG从计费中心接收鉴权应答;

4.SMG和计费中心断开连接;

消息

描述

CheckUser

SMG向计费中心请求对一个手机号码鉴权

CheckUser_Resp

计费中心向SMG返回的一个手机号码的鉴权结果

表3-1SMG和计费中心的鉴权消息

3.7SP与SMG的通信

SP和SMG支持两种类型的通信承载方式:

通用HTTP承载方式和通用SGIP承载方式。

3.7.1通用HTTP方式

SP和SMG之间采用通用HTTP方式通信时,SP和SMG互为HTTP的客户端和服务器端。

HTTP服务器端对相关的URL进行保护,HTTP客户端必须采用授权方式访问这些URL。

HTTP的特点决定客户端和服务器端的每一次通信都必须一次完成授权连接、发送请求、接收应答、关闭连接等过程(HTTP承载方式不再需要专门的连接命令)。

对于MO方向的命令(即命令接收方为SP),由SMG通过POST方式提交给SP进行处理,SP将处理结果以及MT方向信息在HTTP应答中返回给SMG;

对于SP主动向用户发送信息的PUSH业务,由SP作为客户端将信息通过POST方式提交给SMG进行处理,SMG在应答中确认信息发送成功与否。

因为HTTP服务器对URL进行了授权保护,所以HTTP客户端必须在每次请求中都带上授权信息。

HTTP客户端的一个请求只能携带一条命令。

SP与SMG之间发送的任何一条命令都带有一个序列号,序列号由命令源产生,任何两条命令的序列号不能重复。

如果HTTP服务器接收到的HTTP请求内容的格式不完整或不正确,HTTP服务器应该返回错误码。

HTTP承载方式支持的HTTP协议为1.0版。

HTTP承载方式使用如下命令:

3.7.1.1从SP到SMG的命令

消息

描述

Submit

SP用该消息向SMG请求向某一个短消息用户发送短消息

Trace

SP用该消息向SMG请求跟踪某一条MT短消息的状态

表3-2从SP到SMG的命令

3.7.1.2从SMG到SP的命令

消息

描述

Deliver

SMG发送一条短消息到SP

Report

SMG用该命令通知SP一条Submit命令所发送的MT当前结果

UserRpt

SMG用该命令报告SP一条手机用户的状态

表3-3从SMG到SP的命令

3.7.2专用SGIP方式

SP和SMG之间的通信由客户端向服务器端发起连接。

连接建立以后,由客户端向服务器端发送命令,服务器端必须对接收到的每一条命令返回一条应答消息。

SP和SMG互为客户端和服务器端。

3.7.2.1通信初始化

客户端有命令要向服务器端发送时,由客户端首先通过Bind命令向服务器端发起连接。

服务器端根据Bind命令之中的登录名和密码,对客户端的合法性进行验证,然后返回一条Bind_Resp应答给客户端。

如果验证通过,则客户端和服务器端的通信开始,否则中断连接。

3.7.2.2通信过程

SP与SMG之间发送的任何一条命令都带有一个序列号,序列号由命令源产生。

客户端与服务器端通信开始以后,客户端可以向服务器端发送相应的命令,服务器端对收到的命令返回应答。

图3-2SP和SMG的通信消息样例(SP为客户端)

图3-3SP和SMG的通信消息样例(SMG为客户端)

命令在SP和SMSC之间的传输是采用类似接力的方式,每条命令和对应的应答仅仅表示该次命令发送的结果是否正确。

比如,SP向某一个手机发送一条短消息,是通过向本地SMG发送一条Submit命令实现的,随后,SP会从SMG接收到一条Submit_Resp应答。

但是,即使应答表示Submit命令已正确接收,也不表示Submit命令内的短消息已经发送到手机上了,而仅仅表示该短消息已经传送到SMG,SMG将会作下一步处理,或者发送给SMSC,或者路由到另外的SMG,最终由目的SMSC发送到手机上。

这中间任何一个环节出现错误,系统会终止信息的继续发送,并且通过向原SP发送Report命令告诉发送出错的原因(如果SP指定要求反馈的话)。

3.7.2.3通信结束

如果客户端认为和服务器端的通信已结束,则客户端应该向服务器端发送Unbind命令,服务器端随后返回Unbind_Resp应答,然后双方断开连接。

3.7.2.4故障处理

发生故障时,SP、SMG以及GNS节点应通过Report命令和其它相关命令的应答相结合返回故障原因;如果MO不成功,该用户所属的SMG还应向用户终端返回友好的应答信息说明不成功原因。

3.7.2.4.1网络故障

客户端与服务器端的通信过程中如果检测到双方连接中断(如网络断线),客户端应该断开连接,然后尝试重新向服务器端建立新的连接;服务器端应该按照接收到Unbind的情况进行处理,断开和客户端的连接。

3.7.2.4.2接收到非法命令或应答

如果服务器端接收到的命令语法错误,比如命令不完整、命令无法识别等,则断开和客户端的连接;客户端应该向服务器端建立新连接继续发送命令。

如果客户端接收到的应答语法错误,比如命令不完整、命令无法识别等,则主动断开和服务器端的连接;服务器端也应该断开和客户端的连接。

如果命令语法正确,但服务器端不处理该命令,比如SP为服务器端时收到Submit命令,则返回相应应答,并在应答中指定错误原因。

如果应答语法正确,但客户端不处理该应答,比如SP为客户端时收到Deliver_Resp应答,则丢弃。

3.7.2.4.3序列号重复

如果命令的序列号和以前接收到的命令的序列号相同,且命令内容也相同,则接收方丢弃该命令;如果序列号相同,但是命令内容并不相同,则命令接收方在应答中返回错误码。

3.7.2.5从SP到SMG的消息

消息

适用方式

描述

Bind

SP为客户端

SP用该消息向SMG发出建立连接的请求

Bind_Resp

SP为服务器

SP对Bind命令的应答

Unbind

SP为客户端

SP用该消息向SMG通知将要断开现有的连接

Unbind_Resp

SP为服务器

SP对Unbind命令的应答

Submit

SP为客户端

SP用该消息向SMG请求发送短消息

Deliver_Resp

SP为服务器端

SP用该消息对从SMG接收到的Deliver命令作出应答

Report_Resp

SP为服务器

SP对从SMG接收到的Report命令作出应答

UserRpt_Resp

SP为服务器

SP对从SMG接收到的UserRpt命令作出应答

Trace

SP为客户端

SP用该消息向SMG请求跟踪某一条MT短消息的状态

表3-4从SP到SMG的消息

长消息:

参见SMPP协议

submit_sm消息包中的esm_class字段(1个字节,8bit),第6bit是1则是长消息,如果是长短信,则用户信息的140个字节的前6个字节是消息头UHDZ,用于拼接长消息。

 

3.7.2.6从SMG到SP的消息

消息

适用方式

描述

Bind

SMG为客户端

SMG用该消息向SP发出建立连接的请求

Bind_Resp

SMG为服务器端

SMG对Bind命令的应答

Unbind

SMG为客户端

SMG用该消息向SP通知将要断开现有的连接

Unbind_Resp

SMG为服务器端

SMG对Unbind命令的应答

Submit_Resp

SMG为服务器端

SMG对Submit命令的应答

Deliver

SMG为客户端

SMG发送一条短消息到SP

Report

SMG为客户端

SMG用该命令通知SP一条Submit命令所发送的MT当前结果

UserRpt

SMG为客户端

SMG用该命令通知SP一条手机用户的状态信息

Trace_Resp

SMG为客户端

SMG对Trace命令的应答

表3-5从SMG到SP的消息

3.8SMG与SMG之间的通信

在网关系统之中,任何两个SMG之间都要建立一对基于TCP/IP的连接,以实现命令的路由。

两个SMG互为客户端和服务器端,客户端向服务器端发送命令,接收应答;服务器端从客户端接收命令,返回应答。

图3-4SMG之间的通信消息样例

3.8.1通信初始化

SMG与SMG通信时,由客户端首先通过Bind命令向服务器端发起连接。

服务器端根据Bind命令之中的登录名和密码,对客户端的合法性进行验证,然后返回一条Bind_Resp应答给客户端。

如果验证通过,则客户端和服务器端的通信开始,否则中断连接。

3.8.2通信过程

两个SMG之间的通信和SP和SMG之间的基于TCP/IP的承载方式的通信方式相同。

3.8.3通信结束

如果客户端认为和服务器端的通信已结束,则客户端应该向服务器端发送Unbind命令,服务器端随后返回Unbind_Resp应答,然后双方断开连接。

3.8.4故障处理

SMG之间的故障处理和SP与SMG之间的故障处理相同。

3.8.5两个SMG之间的消息

消息

描述

Bind

客户端向服务器端请求连接

Bind_Resp

服务器端对接收到的Bind命令的响应

Unbind

客户端向服务器端通知断开当前的连接

Unbind_Resp

服务器端对接收到的Unbind命令的响应

Submit

客户端向服务器端发送一条MT短消息

Submit_Resp

服务器端向从客户端接收到的Submit命令发送的应答消息

Deliver

客户端向服务器端发送一条MO短消息

Deliver_Resp

服务器端向从客户端接收到的Deliver命令发送的应答消息

Report

客户端向服务器端发送一条MT或MO的发送结果

Report_Resp

服务器端向从客户端接收到的Report命令发送应答消息

UserRpt

客户端向服务器端发送一条手机用户的状态信息

UserRpt_Resp

服务器端向从客户端接收到的UserRpt命令发送应答消息

Trace

客户端向服务器端发送请求跟踪某一条MT短消息状态的信息

Trace_Resp

服务器端向从客户端接收到的Trace命令发送应答消息

表3-6SMG之间的消息

3.9SMG与GNS之间的通信

在网关系统之中,任何一个SMG都要和GNS以互为客户端/服务器的方式建立连接来完成路由表的更新和维护。

当SMG对本地的路由表作修改后,需要主动以客户端的身份向GNS建立连接,通知GNS更新路由表;当GNS修改了路由表后,需要主动以客户端的身份向所有的SMG建立连接,通知SMG更新路由表。

3.9.1通信初始化

SMG与GNS通信时,由客户端首先通过Bind命令向服务器端发起连接。

服务器端根据Bind命令之中的登录名和密码,对客户端的合法性进行验证,然后返回一条Bind_Resp应答给客户端。

如果验证通过,则客户端和服务器端的通信开始,否则中断连接。

3.9.2通信过程

客户端和服务器端建立连接以后,客户端向服务器端发送命令,服务器端则返回应答。

3.9.3通信结束

如果客户端认为和服务器端的通信已结束,则客户端应该向服务器端发送Unbind命令,服务器端随后返回Unbind_Resp应答,然后双方断开连接。

3.9.4故障处理

SMG和GNS的故障处理和SP与SMG之间的故障处理相同。

3.9.5从SMG到GNS的消息

消息

适用方式

描述

Bind

SMG为客户端

SMG向GNS端请求连接

Bind_Resp

SMG为服务器端

SMG对Bind命令的应答

Unbind

SMG为客户端

SMG向GNS端通知断开当前的连接

Unbind_Resp

SMG为服务器端

SMG对Unbind命令的应答

AddSP

SMG为客户端

SMG通知GNS添加了一个SP

AddSP_Resp

SMG为服务器端

SMG对AddSP命令的应答

ModifySP

SMG为客户端

SMG通知GNS修改了一个SP

ModifySP_Resp

SMG为服务器端

SMG对ModifySP命令的应答

DeleteSP

SMG为客户端

SMG通知GNS删除了一个SP

DeleteSP_Resp

SMG为服务器端

SMG对DeleteSP命令的应答

AddTeleSeg

SMG为客户端

SMG通知GNS添加了一个号码段

AddTeleSeg_Resp

SMG为服务器端

SMG对AddTeleSeg命令的应答

ModifyTeleSeg

SMG为客户端

SMG通知GNS修改了一个号码段

ModifyTeleSeg_Resp

SMG为服务器端

SMG对ModifyTeleSeg命令的应答

DeleteTeleSeg

SMG为客户端

SMG通知GNS删除了一个号码段

DeleteTeleSeg_Resp

SMG为服务器端

SMG对DeleteTeleSeg命令的应答

QueryRoute

SMG为客户端

SMG向GNS请求一个手机号或接入号码的路由信息,或全部路由表信息

QueryRoute_Resp

SMG为服务器端

SMG对QueryRoute命令的应答

表3-7从SMG到GNS的消息

3.9.6从GNS到SMG的消息

消息

适用方式

描述

Bind

GNS为客户端

GNS向SMG端请求连接

Bind_Resp

GNS为服务器端

GNS对Bind命令的应答

Unbind

GNS为客户端

GNS向SMG端通知断开当前的连接

Unbind_Resp

GNS为服务器端

GNS对Unbind命令的应答

AddSP

GNS为客户端

GNS通知SMG添加了一个SP

AddSP_Resp

GNS为服务器端

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1