📄 smppv3.3规范(翻译) ---第二期;.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 + -