SMPP协议
- 格式:doc
- 大小:565.50 KB
- 文档页数:23
短消息中心与短消息实体之间接口规范 - 1 - 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 短消息中心与短消息实体之间接口规范 - 2 - 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 - 图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_resp bind_receiver的响应,status表示连接成功与否 bind_transmitter_resp bind_transmitter的响应,status表示连接成功与 短消息中心与短消息实体之间接口规范 - 4 - 否 unbind_resp unbind的响应,status表示断开连接成功与否 submit_sm_resp submit_sm的响应,status表明提交短消息是否成功 deliver_sm SMSC下发短消息到ESME enquire_link_resp Enquire_link的响应 generic_nak 表示消息头有错误的响应
.2 ESME到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语法定义规则 在以下语法说明中,遵从以下规则: 短消息中心与短消息实体之间接口规范 - 5 - 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 (Universal Time Constant) 时间超前或落后的差距(00-48).
‘+’(p) 时间超前于UTC time.
‘-’(p) 时间落后于 UTC time.
C_UnicodeString :Unicode编码的字符串。
3.4.2消息头语法 字段 长度(字节) 类型 短消息中心与短消息实体之间接口规范 - 6 - Command Length 4 Integer Command ID 4 Integer Command_status 4 Integer Sequence No. 4 Integer Optional Message Body 可变 混合
具体字段描述说明: Command Length:整个包的长度(包括该字段本身)。 Command ID :这个字段表明该条短消息的类型,相当于标识符。例如ESME_SUB_SM表示此消息为ESME向SMSC提交短消息。当该标识符表示该条消息是请求消息(request)时,标识符的保留取值范围是0h到FFh。当该标识符表示该条消息是应答消息(response)时,标识符的保留取值范围是080000000h到0800000FFh。一般来说,应答消息的类型对应相应的请求消息的类型,所不同的是,应答消息的类型在第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的连接情况