SMPP协议解析

来源:互联网 发布:赵丽蓉老师知乎 编辑:程序博客网 时间:2024/06/05 02:33

SMPP 协议是一个开放式的工业标准协议为信息中心和短消息系统应用端在短信数据传输时提供灵活的数据通信接口规范信息中心有短消息中心SMSC GSM 非结构化补充服务数据服务器USSD 等类型短消息系统应用端包括WAP 代理服务器EMAIL 网关和其它一些信息网关等。

           SMPP支持以下双向信息传送功能:

                     1. 通过SMSC,从ESME外发消息到单个/多个目的地址
                     2. 通过SMSC,ESME能够接收来自其他SME(如移动台)消息;
                     3. 查询存储在SMSC中的短消息状态;
                     4. 删除或替换存储在SMSC中的一条短消息;
                     5. 发送一条注册短消息;
                     6. 列出短消息发送的时间和日期;
                     7. 选择消息模式,如数据报,存储和转发;
                     8. 设置短消息发送的优先级
                     9. 定义短消息的数据代码类型;
                     10. 设置短消息的有效期
                     11. 对每条短消息设置服务类型,例如语音提示等。

          SMPP会话描述
                      在SMSC和ESME之间的SMPP会话由ESME首先发起,建立同SMSC的网络连接,然后发送SMPP连接请求,开始SMPP会话。期望提交和接收消息的ESME要求建立两种网络连接(TCP/IP或X.25)和两种SMPP会话层(转发端和接收端)。在协议规范里,ESME也可以选择在单一网络连接上建立SMPP收发会话层。
                      在SMPP会话是,ESME可以向SMSC发起一系列请求,从SMSC收到响应的响应。反之亦然。

          SMPP协议是一个应用层协议,不提供传输功能。因此,底层网络连接将提供点对点的可靠数据传输。这些传输包括加密包,窗口,流量控制和错误处理等。下图显示了ESME和SMSC之间的运行情况。

                          

           ESME到SMSC的消息

                      1. submit_sm——向SMSC提交短消息数据

                      2. data_sm——向SMSC传输数据

                      3. query_sm——向SMSC查询以前提交的消息状态

                      4. cancel_sm——取消以前提交的短消息发送

                      5. replace_sm——替换以前提交的短消息

             SMSCESME的应答消息

                      1. submit_sm_resp

                      2. data_sm_resp

                      3. query_sm_resp

                      4. cancel_sm_resp

                      5. replace_sm_resp

              消息模式

                      1. 存储和转发模式,一般情况下,短消息在发送之前是被存放在SMSC的数据库中。这样短消息能够被安全的保存直到SMSC尝试转发成功。这种消息模式就被称为“存储和转发”

                      2. 数据报消息模式,借鉴了在其他诸如UDP数据报包裹传输等通信协议的数据报经验,集中于大信息量发送。他的缺点是缺乏安全存储,也没有存储和转发模式的尝试转发保证。在数据报消息模式中,消息发起者并不接收任何形式的发送状态回应。

                      3. 事务处理消息模式,允许ESME消息发起者在SMPP响应PDU中接收发送应答(以显示短消息是否被成功发送到移动终端)

              消息类型

  除了正常短消息外,submit_sm,deliver_sm或data_sm操作命令在ESME和SMSC之间也能传输一些特别消息。这些消息类型在上面的SMPP命令中定义在esm_class参数里。

                      下面是SMPP中支持的消息类型。
                               SMSC Delivery Receipt:SMSC在侦测到存储在其中的某一条注册消息的最后状态后,将会发送一条接收信息给消息的发起者。
                               Intermediate Notification:一个中间提示对移动终端消息发送者来说,是SMSC可以向ESME发送的特别消息形式。它提供一次消息发送尝试的中间状态报告。
                              SME Delivery Acknowledgement:SME发送应答并不是指短消息发送到SME的提示,而是来自用户已经阅读短消息的指示。
                              SME Manual/User Acknowledgement:针对请求消息的回复信息。
                              Conversation Abort:并不是在所有网络类型支持。 

              ESME建立连接模式

ESME转发端(BIND_TRANSMITTER):作为转发端的ESME可以向SMSC发送短消息,接收SMSC的应答消息。此时ESME不能接收其他SME(例如移动基站)发送的原始消息。
ESME接收端(BIND_RECEIVER):作为接收端的ESME可以接收SMSC发送的短消息,并返回相应的应答消息。
ESME收发端(BIND_TRANSCEIVER):作为收发端的ESME可以通过一个SMPP对话向SMSC发送短消息和接收短消息。

0 0
原创粉丝点击