《smpp协议中文版》由会员分享,可在线阅读,更多相关《smpp协议中文版(15页珍藏版)》请在金锄头文库上搜索。
1、SMPP3.3 协议1 接口协议简介此协议描述短消息中心和扩展短消息实体(即手机银行业务模块)之间的协议数据传输格式。此协议运行在底层通讯协议(例如TCP/IP,X.25)上。参考资料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);GSM 03.40Ve
2、rsion 4.8.1 :European digital cellular telecommunications system(Phase 2); Technical realization of the Short Message Service Point to PointGSM 03.38(Version 5.2.0):Digital cellular telecommunications system(Phase 2+);Alphabets and language_specific informationGSM 03.47(Version 5.0.0):Digital cellul
3、ar telecommunications system; Example protocol stacks for interconnecting Service Center(SC) and Mobile_services Switching Center(s)(MSC)1.1 缩略语SME 短消息实体SMPP 短消息点对点协议SMSC 短消息服务中心ESME 扩展短消息实体SMEI 短消息扩展接口(协议)2 功能概述通过SMEI,ESME (例如寻呼台,语音邮箱系统)能连接(BIND)或断连Comment z1: 图未加(UNBIND)短消息中心,提交(SUBMIT)短消息。此协议包含以下
4、两部分:*(协议)ESME到SMSC的消息*(协议)SMSC到扩展ESME的消息其中用户管理部分只适用于SMSC有用户数据库支持的情况SMSC和ESME之间的关系如下图所示:SMSC和ESME 连接的短消息系统网络ESME到SMSC 的消息ESME能提交短消息到SMSC,也可以查询以前所提交的短消息的状态等信息。SMSC到ESME 的消息SMSC可以下发短消息到ESME。3 消息协议所有的消息,不管是从ESME到SMSC,还是从SMSC 到ESME 的消息,都必须产生一个响应(acknowledge)。从ESME到SMSC所提交的消息,可能有两种响应:*SMSC收到消息的响应(ACK)*如果这
5、条短消息设置了需要状态报告,那么当这条短消息到达目标地之后,SMSC会产生一个状态报告的消息给ESME。4 SMSC到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下发短消息到
6、ESMEenquire_link_resp Enquire_link的响应generic_nak 表示消息头有错误的响应5 ESME到 SMSC的消息以下为ESME到SMSC的消息命令 描述bind_receiver ESME要求以接收者身份连接到SMSCbind_transmitter ESME要求以发送者身份连接到SMSCunbind ESME要求断开连接到 SMSCsubmit_sm ESME提交短消息到 SMSC,以便SMSC下发此短消息到指定的移动台。deliver_sm_resp deliver_sm的响应。 status表示此次下发是否成功。enquire_link 询问与SMS
7、C的连接情况generic_nak 表示消息头有错误的响应6 消息语法在以下语法说明中,遵从以下规则:A.未使用的字段,依据类型必须设置为0或NULL。B.消息由消息头和消息体组成C.状态(status)如在命令语法中未加说明 0:表示成功非0:表示失败1:保留。schedule_delivery_time:该字段表示计划下发该短消息的时间。时间格式请参考前面定义的C_StringTime的格式. 如不需要,可设置为NULL。validity_period:该字段表示短消息的最后生存期限。时间格式请参考前面定义的C_StringTime的格式.如不需要,可设置为NULL。registered_
8、delivery_flag:该字段是注册短消息标志,它表示当短消息到达最后的目的地后,是否需要状态报告。取值说明:0:不需要1:需要1:保留。replace_if_present_flag:该字段表示替换短消息标志。即当提交的短消息的源地址和目的地址相同时,是否替换存在的短消息。取值说明:0:不替换1:替换1:保留。data_coding:该字段表示数据编码方案。取值说明 :0 缺省编码方案(7位)4 英文编码方案(不被手机支持)8 UCS2编码方案其他 保留sm_default_msg_id:该字段表示预定义短消息ID。该ID是短消息中 心管理者建立的预定义短消息表的索引。不想发送预定义短消
9、息时,该字段应设为NULL。预定义短消息ID值从0x01到0x64。详细说明请参考SMPP Applications Guide 9 - Default Short Message。sm_length :要发送的短消息数据内容的字节长度。short_message :该字段表示短消息数据内容。最大可到160字符。只有sm_length中定义的字节长度可用。6.2.4.2 SUBMIT_SM_RESP语法字段 长度(字节) 类型Message_id 最大9 C_HexString具体参数说明:Message_id :该字段表示短消息ID,由短消息中心产生,用于以后查询及替换短消息用,或是表明状态
10、报告所对应的源消息。如果没有,该字段必须设为NULL。6.2.5 DELIVER_SM命令此命令由SMSC产生,SMSC通过此命令发送短消息到目的ESME,它也可用于发送DELIVERY RECEIPT消息。6.2.5.1 DELIVER_SM语法它的语法和SUBMIT_SM的语法消息体是相同的,只是在消息头中的Command_id是“deliver_sm。6.2.5.2 DELIVER_SM_RESP语法它的语法和SUBMIT_SM_RESP 的语法消息体是一样的,只是在消息头中的Command_id是“deliver_sm_resp。L6.2.6 ENQUIRE_LINK命令此命令用于ES
11、ME 确认和SMSC之间的连接。ESME发送一条ENQUIRE_LINK命令,SMSC响应一条ENQUIRE_LINK_ACK命令,表示ESME和SMSC 之间的连接正常。6.2.6.1 ENQUIRE_LINK语法此命令只有消息头,没有消息体。6.2.6.2 ENQUIRE_LINK_RESP语法此命令只有消息头,没有消息体。6.3 消息体参数说明address: 地址号码address_range:地址范围data_coding:数据编码方案, ( 详见GSM 03.40 1 9.2.3.10)例如:0:缺省编码方案(7 位)4:英文编码方案 (不被手机支持)8:UCS2编码方案(比如中文
12、编码 )dest_addr_npi:目的地址编码方案,同npidest_addr_ton:目的地址编码类型,同tondestination_addr: 目的地址,同addressesm_class: 短消息类型此字段的说明如下:Bit 7 6 5 4 3 2 1 0Flag Reserved UDHI Reserved Reserved Reserved DeliveryReceiptReserved Reserved其中 UDHI 表示短消息内容是否有头结构。置位表示有。 Delivery Receipt,在DELIVER_SM协议中使用,表示是否是此条消息是否是状态报告。对于普通的SUBM
13、IT_SM命令,此字段设为0。final_date:短消息的生命期终止的实际时间,如果此短消息已从SMSC的等待发送队列中删除,即为删除时间,否则为SMSC当前的时间GSM_code: GSM错误码,参见 GSM 03.40协议。interface_version:用来描述SMEI协议的版本号Message_id:短消息ID,它由SMSC设置。用于查询以及替换短消息等操作时使用。Command Status:短消息当前的状态npi:地址编码方案,(定义详见GSM03.401 9.1.2.5)例如: 1 表示ISDN 电话编码计划password: 用来登录的密码priority_flag:优先
14、级1:高优先级0:普通优先级1:保留protocol_ID:GSM协议类型(定义详见GSM03.401 9.2.3.9)registered_delivery_flag: 注册短消息标志,它表示当此短消息到达最后的目的地后,是否需要 送达状态报告(DELIVERY RECEIPT)。0:不需要1:需要1:保留replace_if_present_flag:替换标志,当存在的短消息的源地址和目的地址都相同时,是否替换存在的短消息。0:不替换1:替换1:保留schedule_delivery_time: 计划下发短消息的时间service_type:: 保留,必须设为NULLshort_messa
15、ge: 短消息数据内容。在7bit时,是160字符;在8bit时,是140 字符。sm_default_msg_id: 预定义短消息ID,不是预定义短消息时应设为0,预定义短消息ID值从0x01到0x64 。sm_length: 短消息的数据长度,以字节计算source_addr:源地址编号,同addresssource_addr_npi: 源地址编码方案,同npisource_addr_ton: 源地址编码类型,同 tonsystem_id:接口ID,用来描述虚拟连接的用户名system_type:用来描述用户的类型ton:地址编码类型,(定义详见 GSM03.401 9.1.2.5)0 未
16、知号码1 国际号码2 国内号码3 网络专用号码4 用户号码5 字母号码(按照 GSMTS03.38 7-bit 缺省字母表编码)6 缩写号码7 保留validity_period:短消息的最后生存期限1 关于提交短消息的地址的规定从计费的角度考虑,可将向短消息中心提交的短消息分为四类(这些消息包括手机向短消息中心提交的短消息和银行业务模块向短消息中心提交的短消息):A类:手机银行用户向短消息中心提交的短消息B类:银行业务模块向短消息中心提交的用户交易成功消息C类:银行业务模块向短消息中心提交的用户交易不成功消息D类:银行业务模块给手机用户主动发起的短消息,如广告等为了方便短消息中心对这四类短消息进行分拣,有必要对这四类短消息的源、目的地址进行统一规定。当手机用户向短消息中心提交短消息时,目的地址规定如下: 银行类别 短消息目的地址 短消息类别中国银行 210 A类短消息中国工商银行 220 A类