. .
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 CheckUser_Resp 描述 SMG向计费中心请求对一个手机鉴权 计费中心向SMG返回的一个手机的鉴权结果 表3-1 SMG和计费中心的鉴权消息
3.7 SP与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 Trace 描述 SP用该消息向SMG请求向某一个短消息用户发送短消息 SP用该消息向SMG请求跟踪某一条MT短消息的状态 表3-2 从SP到SMG的命令
.. ..
. .
3.7.1.2从SMG到SP的命令
消息 Deliver Report UserRpt 描述 SMG发送一条短消息到SP SMG用该命令通知SP一条Submit命令所发送的MT当前结果 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之间发送的任何一条命令都带有一个序列号,序列号由命令源产生。
客户端与服务器端通信开始以后,客户端可以向服务器端发送相应的命令,服务器端对收到的命令返回应答。
.. ..
SGIP协议1.3
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)