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、     GSM 03.39(Version 5.0.0)》:European digital cellular telecommunications system(Phase 2);Interface protocols for the connection of Short Message Service Centres(SMSCs)to Short Message Entities(SMEs);

2、     GSM 03.39(Version 6.0.0)》:European digital cellular telecommunications system(Phase 2+);Interface protocols for the connection of Short Message Service Centres(SMSCs)to Short Message Entities(SMEs);

3、     GSM 03.40(Version 4.8.1)European digital cellular telecommunications system(Phase 2);Technical realization of the Short Message Service Point to Point

4、    GSM 03.38(Version 5.2.0)Digital cellular telecommunications system(Phase 2+)Alphabets and language_specific information

5、     GSM 03.47(Version 5.0.0)Digital cellular telecommunications system;Example protocol stacks for interconnecting Service Center(SC) and Mobile_services Switching Center(s)(MSC)   

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

 

缩略语

   SME        短消息实体

   SMPP      短消息点对点协议

   SMSC      短消息服务中心

   ESME      扩展短消息实体

 

 

.2 系统结构、功能概述

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

    此协议包含以下两部分:

       *(协议)ESMESMSC的消息

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

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

    SMSCESME之间的关系如下图所示:

   

 

图3-1:SMSCESME连接的短消息系统网络

.3 消息协议

    按短消息信息的流向,可以将ESME与SMSC之间的短消息信息分为两类:1、从SMSC到ESME的消息;2、从ESME到SMSC的消息。对于所有请求消息,无论始发于ESME还是SMSC,都必须产生一个响应消息(acknowledge)。

    ESMESMSC所提交的消息,可能有两种响应:

       *SMSC收到消息的响应(ACK

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

   

.1      SMSCESME的消息

    以下消息是从SMSCESME的消息

   

命令

描述

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

表示消息头有错误的响应

 

 

 

.2      ESMESMSC的消息

    以下为ESMESMSC的消息

 

命令

描述

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

表示消息头有错误的响应

 

 

   

.4消息语法

..语法定义规则

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

    A.未使用的字段,依据类型必须设置为0NULL

    B.消息由消息头和消息体组成

    C.状态(status)如在命令语法中未加说明     

0:表示成功  

                         0:表示失败

                         <0x80000000:未定义值保留

    D.在类型中,可能用到以下定义

l  integer        :一定字节数所组成的整数,高位在前,低位在后。例如:1字节(BYTE),2字节(WORD )  , 4字节(DWORD)

l  C_String       :以NULL结束的ASCII字符串

l  C_DecString    :以NULL结束的ASCII字符串,它由一系列的10进制字符组成(‘0---9)

l  C_OctetString  :由任意8位字节组成数据流串。

l  C_HexString    :以NULL结束的ASCII字符串,它由一系列的16进制字符组  成(‘0---9’,‘A’(‘a)---F(f))

l  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 (Universal Time Constant) 时间超前或落后的差距(00-48).

+’(p)

时间超前于UTC time.

-’(p)

时间落后于 UTC time.

 

l   C_UnicodeString  Unicode编码的字符串。

 

..消息头语法

字段

长度(字节)

类型

Command Length

4

Integer

Command ID

4

Integer

Command_status

4

Integer

Sequence No.

4

Integer

Optional Message Body

可变

混合

 

具体字段描述说明:

l  Command Length:整个包的长度(包括该字段本身)。

l  Command ID :这个字段表明该条短消息的类型,相当于标识符。例如ESME_SUB_SM表示此消息为ESMESMSC提交短消息。当该标识符表示该条消息是请求消息(request)时,标识符的保留取值范围是0hFFh。当该标识符表示该条消息是应答消息(response)时,标识符的保留取值范围是080000000h0800000FFh。一般来说,应答消息的类型对应相应的请求消息的类型,所不同的是,应答消息的类型在第31位比特处是置位的。

Command ID命令取值:

Command ID 编码

Command ID

描述

Command ID取值

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

 

l  Command Status  :此字段表示一个请求消息的成功与失败,如失败,指示引起失败的错误类型等信息。该字段只用在应答消息中,在请求消息中,该字段必须为NULL

       Command Status取值说明 

错误代码

错误值

描述

E_SUCCESS

0X00000000

成功

E_OTHERERR

0X00000001

其他错误

0X00000002 – 0X0000000F

 

保留给SMSC厂商定义错误

E_MSGLENERR

0X00000010

消息长度错误

E_CMDLENERR

0X00000011

命令长度错误

E_INVLDCMDID

0X00000012

消息ID无效

E_NORIGHT0X00000013

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厂商定义错误

其他

 

保留

l  Sequence No   .:此字段表示消息的序列号,它由ESME产生,它是消息和它的应答之间的对应标志,数值在01h07FFFFFFFh间。对于每条请求消息,该字段的取值必须保证严格单调递增,当序列号值达到最大值时,返回继续从01h开始。

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

 

..各命令消息体具体格式

1generic_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),对于任意实体SCMSCMS,都有效

              2      保留

              3      数据编码方案(X121

              4      电报编码方案

              5-7    保留

              8      国内编码方案

              9      私有编码方案

              10     ERMES编码方案(ETSI DE/PS 3 01-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命令

此命令用于断开ESMESMSC之间的连接。此消息只有消息头,没有消息体。

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

protocol ID

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:表示短消息内容是否有头结构。置位表示有。

            Delivery Receipt:在DELIVER_SM协议中使用,表示此条消息是否是状态报告。

       protocol ID       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_present_flag:该字段表示替换短消息标志。即当提交

                          的短消息的源地址和目的地址相同时,

                          是否替换存在的短消息。

                取值说明:

                        0:不替换

                           1:替换

                       >1:保留。

 data_coding       :该字段表示数据编码方案。

         取值说明 

          0      缺省编码方案(7bit编码)

                4      二进制编码方案(8bit编码)

                8      UCS2编码方案(GB13000

                其他   保留

sm_default_msg_id:该字段表示预定义短消息ID。该ID是短消息中

                   心管理者建立的预定义短消息表的索引。不想

                   发送预定义短消息时,该字段应设为NULL。预

                   定义短消息ID值从0x010x64。详细说明请参

                   SMPP Applications Guide [9] - Default

                   Short Message

sm_length      :要发送的短消息数据内容的字节长度。

short_message  :该字段表示短消息数据内容。最大可到160字符。

                    只有sm_length中定义的字节长度可用。此字段的数据编码格式由data_coding决定。

9、SUBMIT_SM_RESP命令

字段

长度(字节)

类型

Message_id

最大9

C_HexString

具体参数说明:

         Message_id      :该字段表示短消息ID,由短消息中心产生,用于

                           以后查询及替换短消息用,或是表明状态报告所

                           对应的源消息。如果没有,该字段必须设为

                           NULL

 

10、DELIVER_SM命令

此命令由SMSC产生,SMSC通过此命令发送短消息到目的ESME,它也可用于发送DELIVERY RECEIPT消息。语法格式与SUBMIT_SM的语法消息体是相同的,只是在消息头中的Command_id是“deliver_sm"

字段

长度(字节)

类型

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

protocol ID

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:表示短消息内容是否有头结构。置位表示有。

            Delivery Receipt:在DELIVER_SM协议中使用,表示此条消息是否是状态报告。

       protocol ID       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_present_flag:该字段表示替换短消息标志。即当提交

                          的短消息的源地址和目的地址相同时,

                          是否替换存在的短消息。

                取值说明:

                        0:不替换

                           1:替换

                       >1:保留。

 data_coding       :该字段表示数据编码方案。

         取值说明 

          0      缺省编码方案(7bit编码)

                4      二进制编码方案(8bit编码)

                8      UCS2编码方案(GB13000

                其他   保留

sm_default_msg_id:该字段表示预定义短消息ID。该ID是短消息中

                   心管理者建立的预定义短消息表的索引。不想

                   发送预定义短消息时,该字段应设为NULL。预

                   定义短消息ID值从0x010x64。详细说明请参

                   SMPP Applications Guide [9] - Default

                   Short Message

sm_length      :要发送的短消息数据内容的字节长度。

short_message  :该字段表示短消息数据内容。最大可到160字符。

                    只有sm_length中定义的字节长度可用。此字段的数据编码格式由data_coding决定。

 

11、DELIVER_SM_RESP语法

它的语法和SUBMIT_SM_RESP的语法消息体是一样的,只是在消息头中的Command_id是“deliver_sm_resp"

 

12、ENQUIRE_LINK命令

此命令用于ESME确认和SMSC之间的连接。ESME发送一条ENQUIRE_LINK命令,SMSC响应一条ENQUIRE_LINK_ACK命令,表示ESMESMSC之间的连接正常。此命令只有消息头,没有消息体。

13、ENQUIRE_LINK_RESP命令

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

 

..消息体参数说明

l  address  地址号码

l  address_range:地址范围 

l  data_coding:数据编码方案, ( 详见GSM 03.40 [1]   9.2.3.10)

例如:

0:缺省编码方案(7)

   4:英文编码方案(不被手机支持)

   8UCS2编码方案(比如中文编码)

l  dest_addr_npi:目的地址编码方案,同npi

l  dest_addr_ton:目的地址编码类型,同ton

l  destination_addr   目的地址,同address

l  esm_class   短消息类型

此字段的说明如下:

Bit

7

6

5

4

3

2

1

0

Flag

Reserved

UDHI

Reserved

Reserved

Reserved

Delivery

Receipt

Reserved

Reserved

其中 UDHI 表示短消息内容是否有头结构。置位表示有。Delivery Receipt,在DELIVER_SM协议中使用,表示是否是此条消息是否是状态报告。

对于普通的SUBMIT_SM命令,此字段设为0

l     final_date:短消息的生命期终止的实际时间,如果此短消息已从SMSC的等待发送队列中删除,即为删除时间,否则为SMSC当前的时间

l     GSM_code GSM错误码,参见GSM 03.40协议。

l     interface_version:用来描述SMEI协议的版本号

l     Message_id:短消息ID,它由SMSC设置。用于查询以及替换短消息等操作时使用。

l     Command Status:短消息当前的状态

l     npi:地址编码方案,(定义详见GSM03.40[1]  9.1.2.5)

   例如: 1 表示ISDN电话编码计划

l  password 用来登录的密码

l  priority_flag:优先级

   1:高优先级

   0:普通优先级

   >1:保留

l  protocol_IDGSM协议类型(定义详见GSM03.40[1]  9.2.3.9)

l  registered_delivery_flag  注册短消息标志,它表示当此短消息到达最后的目的地后,是否需要   送达状态报告(DELIVERY RECEIPT)。

0:不需要

1:需要

>1:保留

l  replace_if_present_flag:替换标志,当存在的短消息的源地址和目的地址都相同时,是否替换存在的短消息。

0:不替换

1:替换

>1:保留

l  schedule_delivery_time 计划下发短消息的时间

l  service_type:   保留,必须设为NULL

l  short_message   短消息数据内容。在7bit时,是160字符;8bit时,是140字符。

l     sm_default_msg_id   预定义短消息ID,不是预定义短消息时应设为0,预定义短消息ID值从0x010x64

l     sm_length    短消息的数据长度,以字节计算

l     source_addr:源地址编号,同address

l     source_addr_npi 源地址编码方案,同npi

l     source_addr_ton 源地址编码类型,同   ton

l     system_id:接口ID,用来描述虚拟连接的用户名

l     system_type:用来描述用户的类型

l     ton:地址编码类型,(定义详见GSM03.40[1]  9.1.2.5)

   0      未知号码

   1      国际号码

   2      国内号码

   3      网络专用号码

   4      用户号码

   5      字母号码(按照 GSMTS03.38 7-bit 缺省字母表编码)

   6      缩写号码

   7      保留

l  validity_period:短消息的最后生存期限


 

3.3 SMPP协议流程

.1      Bind_Receiver


.2      Bind_Transmiter



 

.3      Submit_SM

 


.4      Deliver_SM



 

.5     
Equire_Link

 

 

.6     
Unbind

 


附录一:SMPP协议中注意的几个问题

 

1、            本规范的各消息的消息头中,对Sequence No字段,采用严格单调递增函数方式((x1,y1,(x2,y2)是二维函数空间任意两个坐标取值;当x2-x1>0时,函数(y2-y1)/( x2-x1)>0)进行计数;当序列号达到最大值时自动返回最小值起继续计数。

2、            BIND_RECEIVER_RESP消息中,system_id字段可以为NULL

3、            在有STK卡的手机提交一加密的短消息到调度中心,DCS4(表示短消息内容是8-bit数据,是用户自定义的编码方案),短消息的内容由于经过加密,可能成为二进制的数据流,此时短消息中心应将该二进制的数据流完整的送到手机银行业务模块;同样,如果是业务模块向短消息中心提交一加密的短消息,短消息的DCS4,内容是二进制的数据流,短消息中心应该将该数据流完整的送到手机或ESME上去。

4、            在本规范 中,short_message字段的类型定义根据《900/1800MHz TDMA数字蜂窝移动通信网短消息中心设备规范书(第一分册点对点短消息业务)》进一步说明:

l  DCS=0时,采用OCTET 7-bit编码方案,short_message字段的类型是C_String,即是以NULL结束的ASCII字符串(文本),最大长度为160个字符;ESME不做编解码工作,由短消息中心进行编解码工作;

l  DCS=4时,是加密数据,二进制的数据流,short_message字段的类型是C_OctetString,即是由任意8位字节组成的数据流串,最大长度为140字节;短消息中心进行透明传输,不做任何编解码工作,编解码工作由SME/ESME来完成;

l  DCS=8时,采用的是UCS2编码方案,short_message字段的类型是C_UnicodeString,即是Unicode编码的字符串,最大长度为70个字符。也就是说,short_message字段中的内容在送往短消息中心前,已经按UCS2编码,短消息中心应支持汉字短消息业务的透明传输,即UCS2的编解码应由SME/ESME来完成。

 

你可能感兴趣的:(SMPP协议)