短信编程的一些概念

SPIP:Short Message Gateway Interface Protocol, 本协议所描述的短消息网关接口协议, 用于完成在SMG和SP之间、SMG和SMG之间短消息的发送、接收和转发功能,以及SMG和GNS之间路由表的同步功能。
 SGIP有两种具体实现方式, 一种是采用专用SGIP方式, 另一种是采用通用HTTP方式. SMG和GNS、以及SMG和SMG之间采用专用SGIP方式作为承载协议;而SP和SMG的通信同时支持专用SGIP方式和通用HTTP方式两种承载协议

 

GNS:Gateway Name Server, 负责系统路由的管理和同步。
 

SMSC和SP:和SMG平台之间互连的SMSC称作本地SMSC, 和异地SMG平台相连的SMSC称作异地SMSC.和SMG平台之间相连的SP称作本地SP, 和异地SMG平台相连的SP称作异地SP
 从本地SMSC向本地SP以及从本地SP向本地SMSC发送的消息直接由SMG转发; 从本地SMSC向异地SP以及从本地SP向异地SMSC发送的消息由本地SMG路由到异地SMG后, 再由异地SMG转发.

路由选择:当消息在本地SMSC和异地SP, 或者在本地SP和异地SMSC之间传输时,发送方必须要获取消息接受方的位置消息. 这部分功能称为路由选择.

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

MT:对于MT方向的命令(即接受方为用户手机), 其路由根据命令中的付费号码和用户号码来综合判断. 如果付费号码为空, 或付费号码为SP接入号码, 则根据用户号码来选择路由; 否则根据付费号码所代表的手机号码来选择路由(这样做是考虑到了系统计费和用户鉴权的可行性)

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

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

 SMG的编号规则:1AAAAX            SMSC的编号规则:2AAAAX             SP的编号规则:3AAAAQQQQQ

 GNS的编号规则:4AAAAX            其中,AAAA表示四位长途区号(不足四位的长途区号,左对齐,右补零),X表示1位序号,QQQQQ表示5位企业代码
 
用户鉴权:当一条MT短消息需要处理时,终点SMG必须保证该短消息的付费方有资格享用该服务(比如付费用户不欠费)。 根据短消息服务类型的不同,可以将付费方式分成三类:被叫方付费、SP付费和第三方付费。

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

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

第三方付费:当MT短消息是由第三方付费(如手机用户A通过SP给手机用户B点歌,并由手机用户A付费)时,应该对付费方进行鉴权。这种情况下,该MT短消息应该从付费方归属地的短消息中心发送,并且由付费方归属地的计费中心完成鉴权操作。如果计费中心鉴权成功,SMG即将该MT短消息发送至SMSC,否则SMG不再发送该短消息,并根据SP的要求决定是否返回Report命令通知SP发送失败的原因。

SP和SMG通用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版.

从SP到SMG的命令:Submit : SP用该消息向SMG请求向某一个短消息用户发送短消息.Trace : SP用该消息向SMG请求跟踪某一条MT短消息的状态
从SMG到SP的命令:Deliver : SMG发送一条短消息到SP.Report : SMG用该命令通知SP一条Submit命令所发送的MT当前结果.UserRpt : SMG用该命令报告SP一条手机用户的状态
 
SP和SMG之间专用SGIP方式:SP和SMG之间的通信由客户端向服务器端发起连接. 连接建立以后,由客户端向服务器端发送命令,服务器端必须对接收到的每一条命令返回一条应答消息. SP和SMG互为客户端和服务器端.

通信初始化:客户端有命令要向服务器发送时,由客户端首先通过Bind命令向服务器端发起连接. 服务器端根据Bind命令之中的登录名和密码,对客户端的合法性进行验证,然后返回一条Bind_Resp应答给客户端. 如果验证通过,则客户端和服务器端的通信开始,否则中断连接.

通信过程:SP与SMG之间发送的任何一条命令都带有一个序列号, 序列号由命令源产生.客户端与服务器端通信开始以后,客户端可以向服务器端发送相应的命令,服务器端对收到的命令返回应答.
 
通信结束:如果客户端认为和服务器端的通信已结束,则客户端应该向服务器端发送Unbind命令,服务器端随后返回Unbind_Resp应答,然后双方断开连接.
 
故障处理:发生故障时,SP、SMG以及GNS节点应通过Report命令和其它相关命令的应答相结合返回故障原因;如果MO不成功,该用户所属的SMG还应向用户终端返回友好的应答信息说明不成功原因。

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

接收到非法命令或应答:如果服务器端接收到的命令语法错误,比如命令不完整、命令无法识别等,则断开和客户端的连接;客户端应该向服务器端建立新连接继续发送命令
 如果客户端收到的应答语法错误,比如命令不完整、命令无法识别等,则主动断开和服务器端的连接;服务器端也应该断开和客户端的连接。
 如果命令语法正确,但服务器端不处理该命令,比如SP为服务器端时收到Submit命令,则返回响应应答,并在应答中指定错误原因。
  如果应答语法正确,但客户端不处理该应答,比如SP为客户端时收到Deliver_Resp应答,则丢弃。

SMGP:服务提供商使用SMGP接入短信网关,向中国电信的短信用户发送短信,以及接受短信用户发送的短信. 短信网关使用SMGP相互转发短信.
 网关通信协议是短信服务提供商与短信网关,以及短信网关与短信网关之间的通信协议.SMGP可以实现以下功能: 1)服务提供商向中国电信短信用户发送push短信, 例如邮件通知、天气预报等;2)中国电信短信用户向服务提供商点播信息,例如查询股票信息,航班信息.   3)服务提供商以某个短信用户的身份向中国电信用户发送传情短信,例如图片传情,音乐传情等.
 网关通信协议是一个基于数据包的交互式协议,通过TCP/IP传递数据. 每个数据包请求标式,代表数据包的用途. 服务提供商与短信网关或者短信网关与短信网关之间采用客户-服务器的方式交互信息,客户向服务器发送一个请求包, 服务器向客户返回回应包
 客户发送的所有请求包都包含一个唯一的序列号,服务器返回的回应包也带有相应的序列号, 以便客户识别这是哪一个请求的回应.
       客户和服务器之间采用长连接,如果在一定时间内客户和服务器之间没有发送合法的请求包, 连接就中断.
 
SMG与SMG之间的通信:在网关系统之中,任何两个SMG之间都要建立一对基于TCP/IP的连接,以实现命令的路由。两个SMG互为客户端和服务器端,客户端向服务器端发送命令,接收应答;服务器端从客户端接收命令,返回应答。

SMG与GNS之间的通信:在网关系统之中,任何一个SMG都要和GNS以互为客户端/服务器的方式建立连接来完成路由表的更新和维护。当SMG对本地的路由表作修改后,需要主动以客户端的身份向GNS建立连接,通知GNS更新路由表;当GNS修改了路由表后,需要主动以客户端的身份向所有的SMG建立连接,通知SMG更新路由表。

增值业务平台:增值业务平台需要数据库、短信和WEB三类服务器,根据业务承载量,三类服务可以安装在一套或多套服务器上:1)数据库服务器,数据库服务器用于保存配置、上行、下行、业务表等信息,一般采用Microsoft SQL Server、Oracle等大型数据库管理系统;2)WEB服务器,系统管理界面采用B/S三层结构,通过 WEB服务完成业务管理;3)短信服务器,短信服务器完成与短消息网关间通信,运行各种短信增值业务。
 

4个运营商通讯程序:主要的功能类:1)底层通信类封装SOCKET API,完成SOCKET层的绑定、连接、控制、发送、接受、关闭连接等基本功能;2)应用包类(4个运营商的协议要求);3)服务器类:接收上行并通过指令分配到相关业务表中;4)把下行表中的记录发到运营商特定的端口

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值