SMPP通讯协议.docx

上传人:b****5 文档编号:14800423 上传时间:2023-06-27 格式:DOCX 页数:29 大小:91.31KB
下载 相关 举报
SMPP通讯协议.docx_第1页
第1页 / 共29页
SMPP通讯协议.docx_第2页
第2页 / 共29页
SMPP通讯协议.docx_第3页
第3页 / 共29页
SMPP通讯协议.docx_第4页
第4页 / 共29页
SMPP通讯协议.docx_第5页
第5页 / 共29页
SMPP通讯协议.docx_第6页
第6页 / 共29页
SMPP通讯协议.docx_第7页
第7页 / 共29页
SMPP通讯协议.docx_第8页
第8页 / 共29页
SMPP通讯协议.docx_第9页
第9页 / 共29页
SMPP通讯协议.docx_第10页
第10页 / 共29页
SMPP通讯协议.docx_第11页
第11页 / 共29页
SMPP通讯协议.docx_第12页
第12页 / 共29页
SMPP通讯协议.docx_第13页
第13页 / 共29页
SMPP通讯协议.docx_第14页
第14页 / 共29页
SMPP通讯协议.docx_第15页
第15页 / 共29页
SMPP通讯协议.docx_第16页
第16页 / 共29页
SMPP通讯协议.docx_第17页
第17页 / 共29页
SMPP通讯协议.docx_第18页
第18页 / 共29页
SMPP通讯协议.docx_第19页
第19页 / 共29页
SMPP通讯协议.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

SMPP通讯协议.docx

《SMPP通讯协议.docx》由会员分享,可在线阅读,更多相关《SMPP通讯协议.docx(29页珍藏版)》请在冰点文库上搜索。

SMPP通讯协议.docx

SMPP通讯协议

 SMPP协议

3.1SMPP规范简介

SMPP接口协议最初由ETSI收录在 GSM03.39规范中,描述了短消息中心与短消息实体之间通信交互的协议关系及数据传输格式,本规范对SMPP接口协议的描述主要面向简单的通信交互,制定规范的厂家将其协议版本号定为V3.30;后由SMPP开发者论坛将协议版本向前演进为V3.40,SMPP V3.40协议规范完全兼容GSM 03.39协议标准。

本规范中,所采用的短消息中心设备与短消息股票交易业务处理平台之间的接口采用GSM03.39 V3.30协议规范,如无特殊说明全部以此协议规范为准。

SMPP协议可以以TCP/IP或X.25作为底层通讯承载。

与SMPP协议规范相关的参考资料如下:

1、《GSM03.39(Version5.0.0)》:

Europeandigitalcellulartelecommunicationssystem(Phase2);InterfaceprotocolsfortheconnectionofShortMessageServiceCentres(SMSCs)toShortMessageEntities(SMEs);

2、《GSM03.39(Version6.0.0)》:

Europeandigitalcellulartelecommunicationssystem(Phase2+);InterfaceprotocolsfortheconnectionofShortMessageServiceCentres(SMSCs)toShortMessageEntities(SMEs);

3、《GSM03.40(Version4.8.1):

Europeandigitalcellulartelecommunicationssystem(Phase2);TechnicalrealizationoftheShortMessageServicePointtoPoint》

4、《GSM03.38(Version5.2.0):

Digitalcellulartelecommunicationssystem(Phase2+);Alphabetsandlanguage_specificinformation》

5、《GSM03.47(Version5.0.0):

Digitalcellulartelecommunicationssystem;ExampleprotocolstacksforinterconnectingServiceCenter(SC)andMobile_servicesSwitchingCenter(s)(MSC)》

6、《900/1800MHz数字蜂窝移动通信系统短消息中心设备规范(第一分册点对点短消息业务)》

缩略语

SME短消息实体

SMPP短消息点对点协议

SMSC短消息服务中心

ESME扩展短消息实体

3.2 系统结构、功能概述

通过SMPP,ESME(例如寻呼台、语音邮箱系统、股票交易业务处理平台等)能连接(Bind)或断连(UnBind)短消息中心,提交(Submit)短消息或从短消息中心下发(Deliver)。

此协议包含以下两部分:

*(协议)ESME到SMSC的消息

*(协议)SMSC到扩展ESME的消息

其中用户管理部分只适用于SMSC有用户数据库支持的情况

SMSC和ESME之间的关系如下图所示:

图3-1:

SMSC和ESME连接的短消息系统网络

3.3 消息协议

按短消息信息的流向,可以将ESME与SMSC之间的短消息信息分为两类:

1、从SMSC到ESME的消息;2、从ESME到SMSC的消息。

对于所有请求消息,无论始发于ESME还是SMSC,都必须产生一个响应消息(acknowledge)。

从ESME到SMSC所提交的消息,可能有两种响应:

*SMSC收到消息的响应(ACK)

*如果这条短消息设置了需要状态报告,那么当这条短消息到达目标地之后,SMSC会产生一个状态报告的消息给ESME。

.1SMSC到ESME的消息

以下消息是从SMSC到ESME的消息

命令

描述

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

enquire_link_resp

Enquire_link的响应

generic_nak

表示消息头有错误的响应

.2ESME到SMSC的消息

以下为ESME到SMSC的消息

命令

描述

bind_receiver

短消息实体(ESME/SME)作为服务器与短消息中心(SMSC)建立连接,本连接建立起来后,允许短消息实体接受短消息中心下发的短消。

bind_transmitter

短消息实体(ESME/SME)作为客户端与短消息中心(SMSC)建立连接,本连接建立起来后,允许短消息实体向短消息中心提交短消息。

Unbind

短消息实体(ESME/SME)与短消息中心系统(SMSC)断开会话连接。

submit_sm

ESME提交短消息到SMSC,以便SMSC下发此短消息到指定的移动台。

deliver_sm_resp

deliver_sm的响应。

status表示此次下发是否成功。

Enquire_link

短消息实体向短消息中心发起的连路保持查询请求,以保证通讯链路的畅通。

一般情况下约每5秒发送一次ENQUIRE_LINK消息。

Generic_nak

表示消息头有错误的响应

3.4消息语法

3.4.1语法定义规则

在以下语法说明中,遵从以下规则:

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编码的字符串。

3.4.2消息头语法

字段

长度(字节)

类型

CommandLength

4

Integer

CommandID

4

Integer

Command_status

4

Integer

SequenceNo.

4

Integer

OptionalMessageBody

可变

混合

具体字段描述说明:

●CommandLength:

整个包的长度(包括该字段本身)。

●CommandID:

这个字段表明该条短消息的类型,相当于标识符。

例如ESME_SUB_SM表示此消息为ESME向SMSC提交短消息。

当该标识符表示该条消息是请求消息(request)时,标识符的保留取值范围是0h到FFh。

当该标识符表示该条消息是应答消息(response)时,标识符的保留取值范围是080000000h到0800000FFh。

一般来说,应答消息的类型对应相应的请求消息的类型,所不同的是,应答消息的类型在第31位比特处是置位的。

CommandID命令取值:

CommandID编码

CommandID

描述

CommandID取值

ESME_BNDRCV

bind_receiver

ESME要求以接收者身份连接到SMSC

0X00000001

ESME_BNDRCV_RESP

bind_receiver_resp

bind_receiver的响应

0X80000001

ESME_BNDTRN

bind_transmitter

ESME要求以发送者身份连接到SMSC

0X00000002

ESME_BNDTRN_RESP

bind_transmitrer_resp

bind_transmitter的响应

0X80000002

ESME_UBD

Unbind

ESME要求断开连接到SMSC

0X00000006

ESME_UBD_RESP

Unbind_resp

Unbind的响应

0X80000006

ESME_SUB_SM

Submit_sm

ESME提交短消息到SMSC

0X00000004

ESME_SUB_SM_RESP

Submit_sm_resp

submit_sm的响应

0X80000004

SMSC_DELIVER_SM

Deliver_sm

SMSC下发短消息到ESME

0X00000005

SMSC_DELIVER_SM_RESP

Deliver_sm_resp

deliver_sm的响应

0X80000005

ESME_QRYLINK

Enquire_link

ESME询问与SMSC的连接情况

0X00000015

ESME_QRYLINK_RESP

Enquire_link_resp

enquire_link的响应

0X80000015

ESME_NACK

Nack

表示消息头有错误的响应

0X80000000

●CommandStatus:

此字段表示一个请求消息的成功与失败,如失败,指示引起失败的错误类型等信息。

该字段只用在应答消息中,在请求消息中,该字段必须为NULL。

CommandStatus取值说明:

错误代码

错误值

描述

E_SUCCESS

0X00000000

成功

E_OTHERERR

0X00000001

其他错误

0X00000002–0X0000000F

保留给SMSC厂商定义错误

E_MSGLENERR

0X00000010

消息长度错误

E_CMDLENERR

0X00000011

命令长度错误

E_INVLDCMDID

0X00000012

消息ID无效

E_NORIGHT(0X00000013)

0X00000013

没有执行此命令的权限

0X00000014–0X0000001F

保留

E_INVLDSYSTEMID

0X00000020

无效的SYSTEMID

E_INVLDPASSWORD

0X00000021

无效的密码

E_INVLDSYSTEMTYPE

0X00000022

无效的SYSTEMTYPE

0X00000023–0X0000003F

保留

E_ADDRERR

0X00000040

地址错误

E_MOEXCEED

0X00000041

超过最大提交数

E_MTEXCEED

0X00000042

超过最大下发数

E_INVLDUSER

0X00000043

无效的用户

E_INVLDDATAFMT

0X00000044

无效的数据格式

E_CREATEMSGFAILURE

0X00000045

创建消息失败

E_INVLDMSGID

0X00000046

无效的短消息ID

E_DATABASEFAILURE

0X00000047

数据库失败

E_CANCELMSGFAILURE

0X00000048

取消消息失败

E_MSGSTATEERR

0X00000049

短消息状态错误

E_REPLACEMSGFAILURE

0X0000004A

替换消息失败

E_INVLDRPLADDR

0X0000004B

替换消息源地址错误

0X0000004C–0X0000005F

保留

E_INVLDORGTON

0X00000060

无效的源地址TON

E_INVLDORGNPI

0X00000061

无效的源地址NPI

E_ORGADDRERR

0X00000062

源地址错误

E_INVLDDESTTON

0X00000063

无效的目的地址TON

E_INVLDDESTNPI

0X00000064

无效的目的地址NPI

E_DESTADDRERR

0X00000065

目的地址错误

E_INVLDSCHEDULE

0X00000066

无效的定时时间

E_INVLDEXPIRE

0X00000067

无效的超时时间

E_INVLDESM

0X00000068

无效的ESM_CALSS

E_INVLDUDLEN

0X00000069

无效的UDLEN

E_INVLDPRI

0X0000006A

无效的PRI

E_INVLDRDF

0X0000006B

无效的Registered_delivery_flag

E_INVLDRPF

0X0000006C

无效的Replace_if_present_flag

0X0000006D–0X0000007F

保留

用户管理部分(可选)

E_USERALREADYEXIST

0X00000080

指定用户已经存在

E_CREATEUSERERR

0X00000081

创建用户失败

E_USERIDERR

0X00000082

用户ID错误

E_USERNOTEXIST

0X00000083

指定用户不存在

0X00000084–0X0000008F

保留

0X00000090–0X00000FFF

保留给SMSC厂商定义错误

其他

保留

●SequenceNo.:

此字段表示消息的序列号,它由ESME产生,它是消息和它的应答之间的对应标志,数值在01h到07FFFFFFFh间。

对于每条请求消息,该字段的取值必须保证严格单调递增,当序列号值达到最大值时,返回继续从01h开始。

●OptionalMessageBody:

此字段表示短消息的消息体部分,在移动股票交易应用中承载STK卡应用协议内容。

3.4.3各命令消息体具体格式

1、generic_Nak命令

此命令用于当接收消息头有错误的时候的响应,该响应只能由收到请求方发出。

该命令只有消息头,没有消息体。

2、BIND_RECEIVER命令

在扩展短消息实体和短消息中心之间建立虚连接,接收SMSC转发的短消息。

字段

长度(字节)

类型

System_id

最大16

C_String

Password

最大9

C_String

System_type

最大13

C_String

Interface_version

1

Integer

Addr_ton

1

Integer

Addr_npi

1

Integer

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:

该字段指明编码方案。

如不需要,可设为NULL。

取值说明:

0未知

       1   ISDN或电话号码编码方案(E164/E163),对于任意实体SC,MSC或MS,都有效

2保留

3数据编码方案(X121)

4电报编码方案

5-7保留

8国内编码方案

9私有编码方案

10ERMES编码方案(ETSIDE/PS301-3)

11-15保留

address_range:

该字段用来给短消息指明路由,和将状态报告转发给ESME。

如不需要,可设置为NULL。

3、BIND_RECEIVER_RESP语法

此命令用于对MI_BIND_RECEIVER响应。

字段

大小(字节)

类型

System_id

最大16

C_String

具体参数说明:

system_id:

该字段是系统登录到短消息中心所用的接口号。

4、BIND_TRANSMITTER命令

在扩展短消息实体和短消息中心之间建立虚连接,扩展短消息实体能向SMSC提交短消息。

此命令和BIND_RECEIVER的语法一样,只是在消息头里的Command_id为"bind_transmitter"。

5、BIND_TRANSMITTER_RESP命令

此命令和BIND_RECEIVER_RESP的语法一样,只是在消息头里的Command_id为"bind_transmitter_resp"。

6、UNBIND命令

此命令用于断开ESME和SMSC之间的连接。

此消息只有消息头,没有消息体。

7、UNBIND_RESP命令

此消息只有消息头,没有消息体。

8、SUBMIT_SM命令

此命令用于用于ESME提交短消息到SMSC,以便SMSC把此短消息发给特定ESME。

字段

长度(字节)

类型

service_type

最大6

C_String

source_addr_ton

1

Integer

source_addr_npi

1

Integer

source_addr

最大21

C_DecString

dest_addr_ton

1

Integer

dest_addr_npi

1

Integer

destination_addr

最大21

C_DecString

esm_class

1

Integer

protocolID

1

Integer

priority_flag

1

Integer

schedule_delivery_time

最大17

C_StringTime

validity_period

最大17

C_StringTime

registered_delivery_flag

1

Integer

replace_if_present_flag

1

Integer

data_coding

1

Integer

sm_default_msg_id

1

Integer

sm_length

1

Integer

short_message

最大160

C_String

具体参数说明:

service_type:

保留字段,为将来扩展用。

必须设为NULL。

source_addr_ton:

源地址编码类型,如不需要,可设为NULL。

source_addr_npi:

源地址编码方案,如不需要,可设为NULL。

source_addr:

提交该短消息的SME的地址。

是提交的短消息的

源地址。

如不需要,可设为NULL。

dest_addr_ton:

目的地址编码类型,如不需要,可设为NULL。

dest_addr_npi:

目的地址编码方案,如不需要,可设为NULL。

destination_addr:

短消息的目的地址。

对于移动终止的短消息来说,

它就是目的手机的MSISDN。

如不需要,可设置为

NULL。

esm_class:

该字短为短消息类型。

对submit_sm消息来说,

该字段必须为NULL;对deliver_sm消息来说,该

字段表示这条消息是状态报告。

该字段的具体解

释请参考后面的消息体参数说明。

但对于普通的

SUBMIT_SM命令,此字段设为0。

取值说明:

此字段的说明如下:

Bit

7

6

5

4

3

2

1

0

Flag

Reserved

UDHI

Reserved

Reserved

Reserved

Delivery

Receipt

Reserved

Reserved

其中:

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:

需要

>1:

保留。

replace_if_prese

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2