SMPP协议V34中文简明版Word格式文档下载.docx
- 文档编号:16309280
- 上传时间:2022-11-22
- 格式:DOCX
- 页数:26
- 大小:381.66KB
SMPP协议V34中文简明版Word格式文档下载.docx
《SMPP协议V34中文简明版Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《SMPP协议V34中文简明版Word格式文档下载.docx(26页珍藏版)》请在冰豆网上搜索。
SMSC可以下发短消息到ESME。
3消息协议
●所有的消息,不管是从ESME到SMSC,还是从SMSC到ESME的消息,消息都是交互的,都必须产生一个响应(acknowledge)。
●从ESME到SMSC所提交的消息,可能有两种响应:
*SMSC收到消息的响应(ACK)
*如果这条短消息设置了需要状态报告,那么当这条短消息到达目标地之后,SMSC会产生一个状态报告的消息给ESME。
4ESME到SMSC的消息
ESME到SMSC的消息,如:
提交、查询、删除短消息等请求,ESME必须以TRANSMITTER类型连接到SMSC。
图4描述了一个典型的TRANSMITTER类型的请求应答的示例。
TRANSMITTER类型的ESME是以BIND_TRANCESMITTER连接到SMSC的ESME,此类型的ESME向SMSC发起提交短消息,查询短消息状态,删除短消息等请求,SMSC返回请求的应答。
ESME和SMSC之间的请求应答消息可以是同步方式也可以是异步方式的。
所以ESME可能在SMSC没有应答的情况下,发起多个请求到SMSC。
SMSC应该按照收到的请求顺序,给EMSE回响应。
但是ESME必须能够处理没有按顺序的响应。
图4:
TRANSMITTER类型的EMSE和SMSC的消息序列示例
表1:
命令
描述
bind_receiver
ESME要求以接收者身份连接到SMSC
bind_transmitter
ESME要求以发送者身份连接到SMSC
Unbind
ESME要求断开连接到SMSC
submit_sm
ESME提交短消息到SMSC,以便SMSC下发此短消息到指定的移动台。
deliver_sm_resp
deliver_sm的响应。
query_sm
ESME查询以前所提交的短消息的状态
cancel_sm
ESME要求取消以前所提交的某条短消息
replace_sm
ESME要求替换以前所提交的某条短消息
enquire_link
询问与SMSC的连接情况
generic_nak
表示消息头有错误的响应
5SMSC到ESME的消息
SMSC到ESME的消息,如:
SMSC转发短消息到ESME,ESME必须以RECEIVER类型连接到SMSC。
图5描述了一个典型的RECEIVER类型的ESME和SMSC之间的消息序列的示例。
RECEIVER类型的ESME是以BIND_RECEIVER连接到SMSC的ESME,SMSC向此类ESME转发短消息,ESME向SMSC回应答。
ESME和SMSC之间的请求应答消息可以是阻塞方式也可以是异步方式的。
所以SMSC可能在ESME没有回应答的情况下,发送发起多个deliver_sm请求到ESME。
ESME应该按照收到的请求顺序,给SMSC返回响应。
但是SMSC必须能够处理没有按顺序回的响应。
图5:
RECEIVER类型的EMSE和SMSC的消息序列示例
表2:
命令
bind_receiver_resp
bind_receiver的响应,status表示连接成功与否
bind_transmitter_resp
bind_transmitter的响应,status表示连接成功与否
unbind_resp
unbind的响应,status表示断开连接成功与否
submit_sm_resp
submit_sm的响应,status表明提交短消息是否成功
deliver_sm
SMSC下发短消息到ESME
query_sm_resp
query_sm的响应,status表明此次询问是否成功,其它内容返回查询到的短消息信息
cancel_sm_resp
cancel_sm的响应。
Status表明取消短消息是否成功
replace_sm_resp
replace_sm的响应,status表明此次替换是否成功
enquire_link_resp
Enquire_link的响应
询问与ESME的连接情况
6消息语法
在以下语法说明中,遵从以下规则:
A.未使用的字段,依据类型必须设置为0或NULL。
B.消息由消息头和消息体组成
C.状态(status)如在命令语法中未加说明
0:
表示成功
非0:
表示失败
<
0x80000000:
未定义值保留
D.在类型中,可能用到以下定义
●integer:
一定字节数所组成的整数,高位在前,低位在后。
例如:
1字节(BYTE),2字节(WORD),4字节(DWORD)。
●C_String:
以NULL结束的ASCII字符串
●C_DecString:
以NULL结束的ASCII字符串,它由一系列的10进制字符组成(‘0’---‘9’)。
●C_OctetString:
由任意8位字节组成数据流串。
●C_HexString:
以NULL结束的ASCII字符串,它由一系列的16进制字符组成(‘0’---‘9’,‘A’(‘a’)---‘F’(‘f’))
●C_StringTime:
表示时间的字符串,它为以下格式“YYMMDDhhmmsstnnp"
,格式如下
YY'
年份的最后2位(00-99)
MM
月份(01-12)
DD
日(01-31)
Hh
小时(00-23)
Mm
分(00-59)
Ss
秒(00-59)
T
十分之一秒(0-9)
Nn
与UTC(UniversalTimeConstant)时间超前或落后的差距(00-48).
‘+’(p)
时间超前于UTCtime.
‘-’(p)
时间落后于UTCtime.
●C_UnicodeString:
Unicode编码的字符串。
6.1消息头语法
字段
长度(字节)
类型
CommandLength
4
Integer
CommandID
Command_status
integer
SequenceNo.
OptionalMessageBody
可变
混合
具体字段描述说明:
CommandLength:
整个包的长度(包括该字段本身)。
CommandID:
这个字段表明该条短消息的类型,相当于标识符。
例如
ESME_SUB_SM表示此消息为ESME向SMSC提交短
消息。
当该标识符表示该条消息是请求消息(request)
时,标识符的保留取值范围是0h到FFh。
当该标识符表
示该条消息是应答消息(response)时,标识符的保留
取值范围是080000000h到0800000FFh。
一般来说,
应答消息的类型对应相应的请求消息的类型,所不同的
是,应答消息的类型在第31位比特处是置位的。
取值说明:
CommandID编码
ESME_BNDRCV
0x00000001
ESME_BNDRCV_RESP
bind_receiver的响应
0x80000001
ESME_BNDTRN
0x00000002
ESME_BNDTRN_RESP
bind_transmitrer_resp
0x80000002
bind_transmitter的响应
ESME_UBD
0x00000006
ESME_UBD_RESP
0x80000006
Unbind的响应
ESME_SUB_SM
0x00000004
ESME提交短消息到SMSC
ESME_SUB_SM_RESP
0x80000004
submit_sm的响应
SMSC_DELIVER_SM
0x00000005
SMSC_DELIVER_SM_RESP
0x80000005
deliver_sm的响应
ESME_QRYLINK
0x00000015
ESME询问与SMSC的连接情况
ESME_QRYLINK_RESP
0x80000015
enquire_link的响应
ESME_NACK
Nack0x80000000
CommandStatus:
此字段表示一个请求消息的成功与失败,如失败,指
示引起失败的错误类型等信息。
该字段只用在应答消
息中,在请求消息中,该字段必须为NULL。
错误码
ESME_ROK
消息发送成功
ESME_RINVMSGLEN
无效的消息长度
ESME_RINVCMDLEN
无效的命令长度
ESME_RINVCMDID
无效的CommandID
ESME_RINVBNDSTS
无效的连接状态
ESME_RALYBND
已经处于连接状态
ESME_RINVPRTFLG
无效的优先级标志
ESME_RINVREGDLVFLG
无效的注册短消息标志
ESME_RSYSERR
短消息中心系统错误
ESME_RINVPAR
参数无效
ESME_RINVSRCADR
源地址无效
ESME_RINVDSTADR
目的地址无效
ESME_RINVMSGID
无效的message-id
ESME_RINVPASWD
无效的密码
ESME_RINVPASWDLEN
密码长度错误
ESME_RINVSYSIDSRV
无效的接口ID
ESME_RCNTCANMSG
不能删除短消息
ESME_RINVDATFMT
无效的日期格式
ESME_RCNTREPMSG
不能替换短消息
ESME_RMSGQFUL
目前队列中有太多的短消息
ESME_RSERNOTSUP
服务不支持
ESME_RINVREPADDR
尝试替换时地址不匹配
ESME_RUNKNOWNERR
未知错误
SequenceNo.:
此字段表示消息的序列号,它由ESME产生,它是消息和
它的应答之间的对应标志,数值在01h到07FFFFFFFh
间。
对于每条请求消息,该字段必须保证严格单调的递增。
OptionalMessageBody:
此字段表示短消息的消息体部分,具体定义见1.1。
6.1.1generic_Nak命令
此命令用于当接收消息头有错误的时候的响应,该响应只能由收到请求方发出。
6.1.1.1generic_Nak语法
该命令只有消息头,没有消息体。
6.2消息体语法
6.2.1BIND_RECEIVER命令
在扩展短消息实体和短消息中心之间建立虚连接,接收SMSC转发的短消息。
6.2.1.1BIND_RECEIVER语法
system_id
最大16
C_String
Password
最大9
system_type
最大13
interface_version
1
addr_ton
addr_npi
address_range
最大41
C_DecString
具体字段描述说明:
system_id:
该字段是系统登录到短消息中心所用的接口号。
Password:
该字段是系统登录到短消息中心所用的密码。
system_type:
该字段标明登录的接口类型。
interface_version:
该字段标明登录的接口版本号。
addr_ton:
该字段指明编码类型。
如不需要,可设为NULL。
取值说明:
0未知,当用户或网络不含关于编码方案的较早信息
1国际号码,
2国内号码,不能包含地区和退出数字
3网络特殊号码
4用户号码
5字符数字
6缩写号码
7保留
addr_npi:
该字段指明编码方案。
取值说明:
0未知
1ISDN或电话号码编码方案(E164/E163),对于任意实体SC,MSC或MS,都有效
2保留
3数据编码方案(X121)
4电报编码方案
5-7保留
8国内编码方案
9私有编码方案
10ERMES编码方案(ETSIDE/PS301-3)
11-15保留
address_range:
该字段用来给短消息指明路由,和将状态报告转
发给ESME。
如不需要,可设置为NULL。
6.2.1.2BIND_RECEIVER_RESP语法
此命令用于对MI_BIND_RECEIVER响应。
大小(字节)
具体参数说明:
system_id:
6.2.2BIND_TRANSMITTER命令
在扩展短消息实体和短消息中心之间建立虚连接,扩展短消息实体能向SMSC提交短消息。
6.2.2.1BIND_TRANSMITTER语法
此命令和BIND_RECEIVER的语法一样,只是在消息头里的Command_id为"
bind_transmitter"
。
6.2.2.2BIND_TRANSMITTER_RESP语法
此命令和BIND_RECEIVER_RESP的语法一样,只是在消息头里的Command_id为"
bind_transmitter_resp"
6.2.3UNBIND命令
此命令用于断开ESME和SMSC之间的连接。
6.2.3.1UNBIND语法
此消息只有消息头,没有消息体。
6.2.3.2UNBIND_RESP语法
6.2.4SUBMIT_SM命令
此命令用于用于ESME提交短消息到SMSC,以便SMSC把此短消息发给特定ESME。
6.2.4.1SUBMIT_SM语法
service_type
6
source_addr_ton
source_addr_npi
source_addr
最大21
dest_addr_ton
dest_addr_npi
destination_addr
esm_class
protocolID
priority_flag
schedule_delivery_time
最大17
C_StringTime
validity_period
registered_delivery_flag
replace_if_present_flag
data_coding
sm_default_msg_id
sm_length
short_message
最大160
可变
具体参数说明:
service_type:
保留字段,为将来扩展用。
必须设为NULL。
source_addr_ton:
源地址编码类型,如不需要,可设为NULL。
source_addr_npi:
源地址编码方案,如不需要,可设为NULL。
source_addr:
提交该短消息的SME的地址。
是提交的短消息的
源地址。
dest_addr_ton:
目的地址编码类型,如不需要,可设为NULL。
dest_addr_npi:
目的地址编码方案,如不需要,可设为NULL。
destination_addr:
短消息的目的地址。
对于移动终止的短消息来说,
它就是目的手机的MSISDN。
如不需要,可设置为
NULL。
esm_class:
该字短为短消息类型。
对submit_sm消息来说,
该字段必须为NULL;
对deliver_sm消息来说,该
字段表示这条消息是状态报告。
该字段的具体解
释请参考后面的消息体参数说明。
但对于普通的
SUBMIT_SM命令,此字段设为0。
此字段的说明如下:
Bit
7
5
3
2
Flag
Reserved
UDHI
Delivery
Receipt
其中:
UDHI:
表示短消息内容是否有头结构。
置位表示有。
DeliveryReceipt:
在DELIVER_SM协议中使用,表示
此条消息是否是状态报告。
protocolID:
GSM协议类型。
详细是解释请参考GSM03.40中的
9.2.3.9。
priority_flag:
短消息的优先级。
当设置了短消息为高优先级,
短消息中心会将该短消息移到同一目的地址的消
息队列的前端,优先进行发送。
0:
普通优先级(缺省值)
1:
高优先级
>
1:
保留。
schedule_delivery_time:
该字段表示计划下发该短消息的时间。
时间格式请参考前面定义的C_StringTime
的格式.如不需要,可设置为NULL。
validity_period:
该字段表示短消息的最后生存期限。
时间格式请
参考前面定义的C_StringTime的格式.如不需要,
可设置为NULL。
registered_delivery_flag:
该字段是注册短消息标志,它表示当
短消息到达最后的目的地后,是否需
要状态报告。
取值说明:
0:
不需要
1:
需要
>
replace_if_present_fla
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SMPP 协议 V34 中文 简明