⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 smppv3.3规范(翻译) ---第二期;.txt

📁 C&C++论坛精华
💻 TXT
字号:
作者:退退
email: jasmine@2911.net
日期:7/31/2001 6:22:13 PM
3. 接口规范
SMSC和ESME间的接口可以是基于X.25网的,也可以是TCP/IP的.对于特定实现的细节请参考SMPP应用指南[1].

无视底层网络类型的SMSC和ESME间的接口将是客户-服务器模式,也就是说,SMSC扮演服务器角色而ESME扮演客户角色.在本文档的剩余部分,"客户"指系统初始化一个连接而"服务器"指系统为一个连接服务.

注意这份文档确定了接口在网络层.然而事实是,这个接口也可能会在传输层实现.

4. 协议消息
所有发出的消息,或者从ESME到SMSC,或者从SMSC到ESME,都将立即产生相应.
就向刚才提到的,一条消息从ESME提交到了SMSC最多能产生两条响应.它们是:
    一个应用程序级的"resp"
    SMSC处理完消息后将返回一个状态报告.    

图4.1描绘了这些消息可能的递送顺序(基于X.25或TCP/IP实现的例子).Figure 4.1 Sample Message Sequence
        
        ESME                          SMSC
        |                        |
        |        submit_sm (1)            |
        |---------------------------------------------->|    
        |                        |
        |        submit_sm_resp(1)        |
        |<----------------------------------------------|
        |                        |
        |        deliver_sm(1)            |
        |<----------------------------------------------|
        |                        |
        |        deliver_sm_resp (1)        |
        |---------------------------------------------->|
        |                        |
        |        submit_sm (2)            |
        |---------------------------------------------->|
        |                        |
        |        submit_sm_resp(2)        |
        |<----------------------------------------------|
        |                        |
                
                图4.1 消息顺序样例
想获得ESME/SMSC协议消息顺序的更多详情,请参考SMPP应用指南[1]

5. 基本应用
本章主要讲述ESME和SMSC之间基本的交换机制.有关网络的具体实现,比如X.25或TCP/IP,请看SMPP应用指南[1].

5.1 SMSC通信的初始化
ESME通过实现特定的机制(见SMPP应用指南[1])建立与SMSC的通信.

连接需要两个虚拟连接.一个用于ESME系统中消息的产生,以及它的响应消息.(比如,submit_sm, query_sm, cancel_sm,等等);另一个将用于SMSC中消息的产生和它们的响应(比如: delivery_sm);

一旦一个"虚拟连接"被建立,ESME的两个进程都将发送一个请求,或者是绑定发送(Bind-Transmitter)的,或者是绑定接受(Bind-Reciver)的.假如是绑定发送的请求被发送出去,SMSC的进程将接收产生于ESME系统的消息;如果是绑定接收的请求被发送,SMSC上的进程将把消息给ESME.在同一个的"虚拟连接"上,响应总是根据相应的请求信息被返回.

关于上述描述见下图说明:

        -----------------------------------------------------------
        | -----------------------    ------------------------- |
        | |            |       |            | |
        | |            | ESME  |            | |
        | |    |        |       |            | |
        | |_____|_______________|       |_______________________| |<----|
        |_______|_________________________________________________|    |
            |                            |
            |                            |
          (虚拟连接)|    -------------------------            |(虚拟连接)
            |    |            |            |
            |------>|  通讯供应商            |_______________________|
                |   比如:X.25, TCP/IP   |
        ----------------|            |<---------------
        |        |_______________________|        |
        |                            |
        |    -----------------    -------------------    |
        |------>| SMSC应用程序    |    |  SMSC应用程序   |-----
        ________|(绑定发送)    |    |  (绑定接收)      |<-----
        |    |_______________|    |_________________|    |
        |                            |
        |                            |
        |    -----------------------------------------    |
        |    |                    |    |
        ------>    |          SMSC内核        |_______|
            |                    |
            |_______________________________________|

                图5.1 ESME/SMSC通信

5.2 与SMSC间的稳固状态通信

一旦连接被建立,授权"绑定"请求被应答,更多的请求/响应消息可以被交换.响应是针对某个请求而发送的.

5.3 停止与SMSC的通信
在任何时间,ESME或SMSC需要终止与对方的通信,它都将在合适的"虚拟连接"上发出"unbind"请求.这将使得接收系统有序地中断通信.两种虚拟连接的unbind请求都应该在虚拟连接关闭前被接收系统应答,

5.4 错误处理和重发
接收系统必须确保所收数据类型的合法,并且检查消息体各字段的值是否恰当并且合法.如果消息类型或者字段的值不正确,将返回错误代码.本规范的7.1章将有关于错误状态码的完整列表.

不论错误是由于底层通信网络产生的,还是由主机用于发送的应用程序产生的,重发消息的任务都是属于发送者的.发信方应该设置好重发的次数以及当重发次数用完后连接应该关闭.ESME应该尝试重新连接.重新连接的方法与启动协议一样.

消息头中的序列号应该由ESME生成.这个号码应该随着每一个新生成的事务递增.这个字段被接收系统保存并随着应答消息一同返回.这样可以允许事务的映射和检测重复的消息.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -