SMPP协议相关

一、SMPP协议支持的通讯标准
1.GSM
2.CDMA
3.TDMA
4.iDEN

二、简介
1.SMPP是基于SMSC(短消息中心)与ESME(短消息实体)之间的请求和响应协议数据单元的交换,每一个SMPP操作都由一个请求PDU和相应的一个响应PDU组成,并或且这种交换是在TCP/IPx.25网络连接之上的。    SMPP是基于SMSC与ESME之间的请求和响应协议数据单元的交换,每一个SMPP操作都由一个请求PDU和相应的一个响应PDU组成,并且这种交换是在TCP/IP或x.25网络连接之上的。
2.任何SMPP操作都包含请求PDU(Request Protocol Data Unit)和与之对应的回应PDU(Response Protocol Data Unit),只有协议数据单元,alter-notification例外,它没有应答。
3.SMPP把ESMEs分类为Transmitter/Receiver/Transceiver三种交互方式,分别对应仅提交短消息/仅接收短消息/提交和接收短消息三种形态。
4.SMPP会话有5种状态:OPEN / BOUND_TX / BOUND_RX / BOUND_TRX / CLOSED
OPEN: 连上网络和即将连接SMSC,已经建立但是还没有发送连接请求。
BOUND-TX:连上网络的ESME作为ESME转发端请求连接,并从授权连接请求的SMSC接收响应。
BOUND_RX:连上网络的ESME作为ESME接收端请求连接,并从授权连接请求的SMSC接收响应。
BOUND_TRX:连上网络的ESME作为ESME收发端请求连接,并从授权连接请求的SMSC接收响应。
CLOSED:ESME从SMSC断连和关闭网络连接。

三、SMPP PDU格式:
由PDU头和PDU体组成。
1.PDU头:由命令长度(4字节)、命令标识、命令状态、序列号组成,每个部分都是4个字节。
2.消息体:包括必选参数和可选参数。

四、命令:
1.BIND:向SMSC注册一个ESME实例。并通过网络请求SMPP对话,接收或发送消息。command_id字段分别为bind_transmitter,bind_transceiver,bind_receiver。
2.OUTBIND:使用该命令让ESME向其发送bind_receiver请求。
3.UNBIND:注销一个已知和SMSC注册的ESME实例,并告知SMSC此ESME不再使用该网络连接与其发送或接收消息。没有消息体。
4.GENERIC_NACK 当SMPP PDU的消息头无效时,会产生一个通用的拒绝应答,即generic_nack应答命令。以下情况会产生generick_nack,command_length 无效和无法识别的command_id。只包含消息头。
5.SUBMIT_SM:提交短消息到短消息中心。消息体中必要参数中的几个主要参数。
source_addr_ton:源地址编码类型,可以为NULL。
source_addr_npi:源地址编码方案,可以为NULL。
source_addr:提交短信的SME的地址。是提交的短消息的源地址。可以为NULL。
dest_addr_ton:目的地址编码类型,可以为NULL。
dest_addr_npi:目的地址编码方案,可以为NULL。
Destination_addr:短消息的目的地址。对于移动终止的短消息来说,它就是目的手机的MSISDN。
esm_class:指定信息模式和信息类型。
protocol_id:协议指示和网络标识区。
priority_flag:指示短消息的优先级。
schedule_delivery_time:表示计划下发该短消息的时间,如立即发送,设为NULL。
validity_period:表示短消息的最后生存期限。如果需要SMSC默认有效期,设置为NULL。
registered_delivery:标识SMSC是否要状态报告或SME是否要确认标识。
replace_if_present_flag:该字段表示替换现存短消息标志。
data_coding:该字段表示短消息用户数据编码方案。、
sm_default_msg_id:该字段表示预定义短消息ID。
sm_length:要发送的短消息数据内容的字节长度。
short_message:最大可到254字节的短消息用户数据。
6.SUBMIT_SM_RESP:消息体中只含有message_id。
7.SUBMIT_MULTI:用来提交SMPP信息传输给多个接收者,或一个和多个分布列表,不支持事务处理消息模式。
8.SUBMIT_MULTI_RESP:SUBMIT_MULTI的回应。
9.DELIVER_SM:SMSC发到ESME的消息。使用这个命令,SMSC可以路由一个短消息到ESME用于下发。
通知类型包括:SMSC状态报告,SME转发确认,SME 人工/用户端的用户数据包含在deliver_sm中的short_message字段内,中介通知。
10.DELIVERY_SM_RESP:DELIVERY_SM的回应消息。
11.DATA_SM:用于SMSC和ESME之间传输数据。可能同时用于ESME和SMSC。可以用来传输如下通知:
SMSC状态会送,SME状态确认,SME 人工/用户端的用户数据包含在deliver_sm中的short_message字段内,中介通知。
12.DATA_SM_RESP:DATA_SM的回应信息。
其他:QUERY_SM,QUERY_SM_RESP,CANCEL_SM,CANCEL_SM_RESP,REPLACE_SM,REPLACE_SM_RESP,ENQUIER_LINK(通讯链路的检测),ENQUIRE_LINK_RESP,ALERT_NOTIFICATION。、
五、SMPP参数说明
1.消息头参数:
a.command_length:SMPP消息的字节长度。
b.command_id:SMPP PDU消息类型。
c.command_status:SMPP请求的成功或失败。仅仅与SMPP消息应答有关。在SMPP请求中应该置为NULL。
d.sequence_number:PDU消息序列号。
2.消息体:
1.必选项:
a.system_id:连接时识别ESME或SMSC。
b.password:SMSC用来鉴定正在相连的ESME的身份。
c.system_type:用来对与SMSC正在连接的ESME的类型进行分类。如VMS、OTA。
b.interface_version:显示SMPP协议的版本号。
六、消息状态:
1.ENROUTE:消息正在传输。
2.DELIVERED:消息已送达。
3.EXPIRED:消息超时。
4.DELETED:消息被删除。
5.UNDELIVERABLE:消息不可送达。
6.ACCEPTED:消息已接收。
7.UNKNOWN:消息状态无效。
8.REJECTED:消息被拒绝。
七、状态报告的格式
1.id:10位 消息ID 初次提交时由SMSC分配给短消息。
2.sub:3为 原始提交的消息数。它仅仅与原始消息提交给分配表时有关。如果必须的话,用0填充开头。
3.dlvrd:3为 下发的短消息数。仅仅与原始消息提交给分配表有关。
4.submit_date 10位 短消息提交的时间和日期。
  
在网络和交换子系统NSS中有两个非常重要的数据库:HLR和VLR。HLR:归属位置寄存器,保存与用户的当前位置相关的信息,从而建立对等动态的呼叫。VLR:位置来访寄存器,它与一个或多个MSC相连,负责为用户临时注册数据,它存储的位置比HLR中的要精确一些。
VRL总是与MSC集成在一起。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值