SMPP协议 20160615

来源:互联网 发布:建筑学工作 知乎 编辑:程序博客网 时间:2024/06/08 19:25

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            扩展短消息实体
 
 
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。
      
.1      SMSC到ESME的消息
       以下消息是从SMSC到ESME的消息
      
命令描述bind_receiver_respbind_receiver的响应,status表示连接成功与否bind_transmitter_respbind_transmitter的响应,status表示连接成功与否unbind_respunbind的响应,status表示断开连接成功与否submit_sm_respsubmit_sm的响应,status表明提交短消息是否成功deliver_smSMSC下发短消息到ESMEenquire_link_respEnquire_link的响应generic_nak表示消息头有错误的响应  
 
.2      ESME到SMSC的消息
       以下为ESME到SMSC的消息
 
命令描述bind_receiver短消息实体(ESME/SME)作为服务器与短消息中心(SMSC)建立连接,本连接建立起来后,允许短消息实体接受短消息中心下发的短消。bind_transmitter短消息实体(ESME/SME)作为客户端与短消息中心(SMSC)建立连接,本连接建立起来后,允许短消息实体向短消息中心提交短消息。Unbind短消息实体(ESME/SME)与短消息中心系统(SMSC)断开会话连接。submit_smESME提交短消息到SMSC,以便SMSC下发此短消息到指定的移动台。deliver_sm_respdeliver_sm的响应。status表示此次下发是否成功。Enquire_link短消息实体向短消息中心发起的连路保持查询请求,以保证通讯链路的畅通。一般情况下约每5秒发送一次ENQUIRE_LINK消息。Generic_nak表示消息头有错误的响应
 
 
      
3.4消息语法
3.4.1语法定义规则
       在以下语法说明中,遵从以下规则:
       A.未使用的字段,依据类型必须设置为0或NULL。
       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编码的字符串。
 
3.4.2消息头语法
字段长度(字节)类型Command Length4IntegerCommand ID4IntegerCommand_status4IntegerSequence No.4IntegerOptional Message Body可变混合
 
具体字段描述说明:
l        Command Length:整个包的长度(包括该字段本身)。
l        Command ID      :这个字段表明该条短消息的类型,相当于标识符。例如ESME_SUB_SM表示此消息为ESME向SMSC提交短消息。当该标识符表示该条消息是请求消息(request)时,标识符的保留取值范围是0h到FFh。当该标识符表示该条消息是应答消息(response)时,标识符的保留取值范围是080000000h到0800000FFh。一般来说,应答消息的类型对应相应的请求消息的类型,所不同的是,应答消息的类型在第31位比特处是置位的。
Command ID命令取值:
Command ID 编码Command ID描述Command ID取值ESME_BNDRCVbind_receiverESME要求以接收者身份连接到SMSC0X00000001ESME_BNDRCV_RESPbind_receiver_respbind_receiver的响应0X80000001ESME_BNDTRNbind_transmitterESME要求以发送者身份连接到SMSC0X00000002ESME_BNDTRN_RESPbind_transmitrer_respbind_transmitter的响应0X80000002ESME_UBDUnbindESME要求断开连接到SMSC0X00000006ESME_UBD_RESPUnbind_respUnbind的响应0X80000006ESME_SUB_SMSubmit_smESME提交短消息到SMSC0X00000004ESME_SUB_SM_RESPSubmit_sm_respsubmit_sm的响应0X80000004SMSC_DELIVER_SMDeliver_smSMSC下发短消息到ESME0X00000005SMSC_DELIVER_SM_RESPDeliver_sm_respdeliver_sm的响应0X80000005ESME_QRYLINKEnquire_linkESME询问与SMSC的连接情况0X00000015ESME_QRYLINK_RESPEnquire_link_respenquire_link的响应0X80000015ESME_NACKNack表示消息头有错误的响应0X80000000
 
l        Command Status :此字段表示一个请求消息的成功与失败,如失败,指示引起失败的错误类型等信息。该字段只用在应答消息中,在请求消息中,该字段必须为NULL。
       Command Status取值说明 :
错误代码错误值描述E_SUCCESS0X00000000成功E_OTHERERR0X00000001其他错误0X00000002 – 0X0000000F 保留给SMSC厂商定义错误E_MSGLENERR0X00000010消息长度错误E_CMDLENERR0X00000011命令长度错误E_INVLDCMDID0X00000012消息ID无效E_NORIGHT(0X00000013)0X00000013没有执行此命令的权限0X00000014 – 0X0000001F 保留E_INVLDSYSTEMID0X00000020无效的SYSTEMIDE_INVLDPASSWORD0X00000021无效的密码E_INVLDSYSTEMTYPE0X00000022无效的SYSTEMTYPE0X00000023 – 0X0000003F 保留E_ADDRERR0X00000040地址错误E_MOEXCEED0X00000041超过最大提交数E_MTEXCEED0X00000042超过最大下发数E_INVLDUSER0X00000043无效的用户E_INVLDDATAFMT0X00000044无效的数据格式E_CREATEMSGFAILURE0X00000045创建消息失败E_INVLDMSGID0X00000046无效的短消息IDE_DATABASEFAILURE0X00000047数据库失败E_CANCELMSGFAILURE0X00000048取消消息失败E_MSGSTATEERR0X00000049短消息状态错误E_REPLACEMSGFAILURE0X0000004A替换消息失败E_INVLDRPLADDR0X0000004B替换消息源地址错误0X0000004C – 0X0000005F 保留E_INVLDORGTON0X00000060无效的源地址TONE_INVLDORGNPI0X00000061无效的源地址NPIE_ORGADDRERR0X00000062源地址错误E_INVLDDESTTON0X00000063无效的目的地址TONE_INVLDDESTNPI0X00000064无效的目的地址NPIE_DESTADDRERR0X00000065目的地址错误E_INVLDSCHEDULE0X00000066无效的定时时间E_INVLDEXPIRE0X00000067无效的超时时间E_INVLDESM0X00000068无效的ESM_CALSSE_INVLDUDLEN0X00000069无效的UDLENE_INVLDPRI0X0000006A无效的PRIE_INVLDRDF0X0000006B无效的Registered_delivery_flagE_INVLDRPF0X0000006C无效的Replace_if_present_flag0X0000006D – 0X0000007F 保留用户管理部分(可选)  E_USERALREADYEXIST0X00000080指定用户已经存在E_CREATEUSERERR0X00000081创建用户失败E_USERIDERR0X00000082用户ID错误E_USERNOTEXIST0X00000083指定用户不存在0X00000084 – 0X0000008F 保留0X00000090 – 0X00000FFF 保留给SMSC厂商定义错误其他 保留
l        Sequence No   .:此字段表示消息的序列号,它由ESME产生,它是消息和它的应答之间的对应标志,数值在01h到07FFFFFFFh间。对于每条请求消息,该字段的取值必须保证严格单调递增,当序列号值达到最大值时,返回继续从01h开始。
l        Optional Message Body:此字段表示短消息的消息体部分,在移动股票交易应用中承载STK卡应用协议内容。
 
3.4.3各命令消息体具体格式
1、generic_Nak命令
此命令用于当接收消息头有错误的时候的响应,该响应只能由收到请求方发出。该命令只有消息头,没有消息体。
 
2、BIND_RECEIVER命令
在扩展短消息实体和短消息中心之间建立虚连接,接收SMSC转发的短消息。
字段长度(字节)类型System_id最大 16C_StringPassword最大 9C_StringSystem_type最大 13C_StringInterface_version1IntegerAddr_ton1IntegerAddr_npi1IntegerAddress_range最大 41C_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      私有编码方案
              10     ERMES编码方案(ETSI DE/PS 3 01-3)
              11-15 保留
address_range      :该字段用来给短消息指明路由,和将状态报告转发给ESME。如不需要,可设置为NULL。
3、BIND_RECEIVER_RESP语法
       此命令用于对MI_BIND_RECEIVER响应。
字段大小(字节)类型System_id最大 16C_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最大6C_Stringsource_addr_ton1Integersource_addr_npi1Integersource_addr最大21C_DecStringdest_addr_ton1Integerdest_addr_npi1Integerdestination_addr最大21C_DecStringesm_class1Integerprotocol ID1Integerpriority_flag1Integerschedule_delivery_time最大 17C_StringTimevalidity_period最大 17C_StringTimeregistered_delivery_flag1Integerreplace_if_present_flag1Integerdata_coding1Integersm_default_msg_id1Integersm_length1Integershort_message最大160C_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。
     取值说明   :
             此字段的说明如下:
Bit76543210FlagReservedUDHIReservedReservedReserved
Delivery
Receipt
ReservedReserved
          其中:
            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值从0x01到0x64。详细说明请参
                   考SMPP Applications Guide [9] - Default
                   Short Message。
sm_length      :要发送的短消息数据内容的字节长度。
short_message :该字段表示短消息数据内容。最大可到160字符。
                    只有sm_length中定义的字节长度可用。此字段的数据编码格式由data_coding决定。
9、SUBMIT_SM_RESP命令
字段长度(字节)类型Message_id最大9C_HexString
具体参数说明:
         Message_id             :该字段表示短消息ID,由短消息中心产生,用于
                           以后查询及替换短消息用,或是表明状态报告所
                           对应的源消息。如果没有,该字段必须设为
                           NULL。
 
10、DELIVER_SM命令
此命令由SMSC产生,SMSC通过此命令发送短消息到目的ESME,它也可用于发送DELIVERY RECEIPT消息。语法格式与SUBMIT_SM的语法消息体是相同的,只是在消息头中的Command_id是“deliver_sm"。
字段长度(字节)类型service_type最大6C_Stringsource_addr_ton1Integersource_addr_npi1Integersource_addr最大21C_DecStringdest_addr_ton1Integerdest_addr_npi1Integerdestination_addr最大21C_DecStringesm_class1Integerprotocol ID1Integerpriority_flag1Integerschedule_delivery_time最大 17C_StringTimevalidity_period最大 17C_StringTimeregistered_delivery_flag1Integerreplace_if_present_flag1Integerdata_coding1Integersm_default_msg_id1Integersm_length1Integershort_message最大160C_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。
     取值说明   :
             此字段的说明如下:
Bit76543210FlagReservedUDHIReservedReservedReserved
Delivery
Receipt
ReservedReserved
          其中:
            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值从0x01到0x64。详细说明请参
                   考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命令,表示ESME和SMSC之间的连接正常。此命令只有消息头,没有消息体。
13、ENQUIRE_LINK_RESP命令
此命令只有消息头,没有消息体。
 
3.4.4消息体参数说明
l        address:   地址号码
l        address_range:地址范围  
l        data_coding:数据编码方案, ( 详见GSM 03.40 [1]   9.2.3.10)
例如:
0:缺省编码方案(7位)
      4:英文编码方案(不被手机支持)
      8:UCS2编码方案(比如中文编码)
l        dest_addr_npi:目的地址编码方案,同npi
l        dest_addr_ton:目的地址编码类型,同ton
l        destination_addr: 目的地址,同address
l        esm_class:     短消息类型
此字段的说明如下:
Bit76543210FlagReservedUDHIReservedReservedReserved
Delivery
Receipt
ReservedReserved
其中 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_ID:GSM协议类型(定义详见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值从0x01到0x64。
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            字母号码(按照 GSM TS03.38 7-bit 缺省字母表编码)
      6            缩写号码
      7            保留
l        validity_period:短消息的最后生存期限

 
3.3 SMPP协议流程
 

附录一: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卡的手机提交一加密的短消息到调度中心,DCS为4(表示短消息内容是8-bit数据,是用户自定义的编码方案),短消息的内容由于经过加密,可能成为二进制的数据流,此时短消息中心应将该二进制的数据流完整的送到手机银行业务模块;同样,如果是业务模块向短消息中心提交一加密的短消息,短消息的DCS为4,内容是二进制的数据流,短消息中心应该将该数据流完整的送到手机或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来完成。
 


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=677474

function hide(){showComment();} 
document.write(""); 

 
中国移动(CMPP) 
中国联通(SGIP) 
中国电信(SMGP) 
超文本传输协议(HTTP) 
中国网通(CNGP) 
国际标准(SMPP 协议)

0 0