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)把下行表中的记录发到运营商特定的端口
分享到:
相关推荐
本项目"短信猫收发例子"提供了针对短信猫串口编程的一个实例,帮助开发者更好地理解和运用短信猫。 首先,我们要理解什么是串口编程。串口通信,也称为串行通信,是指数据以串行方式一位一位地传输。在PC上,串口...
总的来说,阿蒙整理的这份“短信编程的帮助”涵盖了从基础概念到实际操作的全面知识,对于希望掌握这一技能的开发者来说,是一份宝贵的参考资料。通过阅读和实践,开发者可以深入了解短信服务的工作机制,并有能力将...
短信网关模拟程序设计是一项基于网络计算的项目,主要涉及C#编程语言、SGIP协议、Socket编程以及短信服务的模拟。在这个项目中,开发者需要创建一个具备用户界面的程序,该程序能模拟短信发送的过程,尽管其功能相对...
无论使用哪种编程语言,理解这些基础概念和最佳实践都是至关重要的。至于“开发包20100114”,这可能是提供给开发者的一个特定的开发资源包,可能包含了示例代码、文档和其他辅助工具,帮助快速集成短信发送功能。...
在提供的"短信接口.doc"文件中,可能会详细介绍以上提到的一些概念,包括具体的代码示例和API调用步骤。建议详细阅读这份文档,以获取更全面的实施指南和最佳实践。 总的来说,集成短信接口到你的应用可以使你的...
本文将详细探讨“手机短信编程”这一主题,包括基本概念、工作原理以及如何进行实际的编程实现。 手机短信编程主要涉及的是应用程序接口(APIs)和协议,通过这些接口,开发者可以创建能够发送和接收短信的应用程序...
下面是一些Java串口编程的关键知识点: 1. **初始化串口**: 首先,你需要找到可用的串口,这通常通过列举CommPortIdentifier的实例完成。然后,使用`CommPortIdentifier.getPortIdentifier(portName)`获取特定端口...
**C#串口编程是计算机通信领域中的一个重要概念,它涉及到如何使用C#语言与硬件设备,如短信猫,进行数据交互。短信猫是一种能够通过串行接口(通常是COM端口)发送和接收短信的设备,常用于企业或个人的自动化短信...
这个压缩包“Scratch少儿编程项目音效音乐素材-【铃声】音效-短的短信铃声28个.zip”显然包含了用于Scratch项目的音效资源,特别是短信铃声,这对于创建互动游戏或动画来说是十分重要的元素。 在Scratch编程中,...
### 知识点:编程基础之函数与过程抽象 #### 标题和描述解析 标题指出了文档内容是关于...通过这些练习题,编程学习者可以加强对函数与过程抽象概念的理解和应用,为进一步深入学习复杂编程问题和算法打下坚实的基础。
在安卓平台上进行编程时,有时候我们需要访问设备的短信数据,例如为了实现备份、分析或特定功能。这个"安卓编程读取短信结果程序.zip"文件似乎包含了一个示例项目,教你如何使用C#语言来实现这一目标。虽然通常安卓...
短信平台测试是IT行业中一个重要的领域,特别是在移动通信和企业通信解决方案中。短信平台测试主要关注短信服务的稳定性、效率和...对于开发者而言,熟悉这些概念并能有效实施测试,可以提高短信服务的质量和用户体验。
首先,我们来理解一下“短信猫”的概念。短信猫实质上是一个GSM调制解调器,它内置SIM卡插槽,通过USB或串口与电脑连接。通过特定的驱动程序和软件,用户可以控制短信猫进行短信收发,甚至可以实现电话拨号等功能。...
6. **事件驱动编程**:在VB.NET中,事件驱动编程是常见的编程模式,短信猫的接收新短信事件就是其中一例。开发者需要编写事件处理函数来响应短信猫发送的事件,比如当有新短信到达时执行特定操作。 7. **错误处理**...
4. **短信协议**:学习SMS(Short Message Service)协议,包括短信中心号码的概念,以及如何构造和解析短信报文。 5. **第三方库的使用**:alasunsmscon.o可能是一个预编译的对象文件或库,需要学习如何在VB项目中...
短信猫开发源码是针对特定硬件设备——短信猫进行编程,以实现通过串口通信和AT指令发送短信的功能。短信猫是一种将手机通讯能力集成到计算机或其他设备中的硬件模块,通常用于自动化短信发送、接收或者作为物联网...
通过C#语言实现这样的系统,我们可以深入理解.NET框架、网络通信以及数据库交互等核心编程概念。 首先,我们要了解C#作为编程语言的特点。C#是微软公司推出的一种面向对象的编程语言,具有语法简洁、类型安全、性能...
通过"短信营救"这个项目,孩子们不仅能够学习到编程的基本概念,还能锻炼逻辑思维和创新能力。他们将学习如何利用Scratch来创建自己的游戏,同时也能体验到编程带来的成就感。这个项目特别适合初次接触编程的孩子,...
"手机短信 网上发"这一概念,正是这种技术趋势的体现,它为用户提供了更为便捷、高效的通信体验。本文将深入探讨网上发短信的原理、优势以及常见应用。 1. **网上发短信的原理** 网上发短信,也称为网络短信或在线...
在使用这些资料时,首先需要理解C#的基本语法和面向对象编程概念。然后,你需要熟悉AT命令集,因为这是与短信猫进行通信的基础。资料中的源码提供了实际操作的例子,你可以通过阅读和分析代码来学习如何与短信猫进行...