短消息SMPP开发接口概要- -

短消息SMPP开发接口概要- -

                                        

短消息SMPP开发接口概要- -

                                      

 

短消息SMPP开发接口概要
 SMPP是一种通用的短信接口协议,本文摘录了能实现短信基本功能的内容。


前言

短消息中心(SMSC)可以与各种扩展短消息实体(ESME)配合工作,从而为移动用户提供丰富多采的功能。

 

符号和缩略语

ESME Agent
  External Short Message Entity Agent 扩展短消息实体代理
 
ESME
  External Short Message Entity 扩展短消息实体
 
PLMN
  Public Land Mobile Network 公共陆地移动网
 
SMSC
  Short Message Service Center 短消息中心
 
SMPP
  Short Message Peer to Peer 短消息点对点协议
 
SS
  Secretary System 秘书台
 
AS
  Auto System 自动台
 

SMSC指短消息中心。

ESME在本规范中指的是通过本规范规定的协议与SMSC通信,请求特定的短消息服务的功能实体。

SS指人工话务接入并受理短消息服务请求的系统。

AS指利用交互式语音技术受理短消息服务请求的系统。

SS(秘书台)和AS(自动台)是典型的ESME。

SMSC和ESME之间的传输网络可以是基于X.25, 或TCP/IP。

 

ESME到SMSC的消息

ESME到SMSC的消息,如:提交、查询、删除短消息等请求,ESME必须以TRANSMITTER类型连接到SMSC。

图4描述了一个典型的TRANSMITTER类型的请求应答的示例。TRANSMITTER类型的ESME是以BIND_TRANCESMITTER连接到SMSC的ESME,此类型的ESME向SMSC发起提交短消息,查询短消息状态,删除短消息等请求,SMSC返回请求的应答。

ESME和SMSC之间的请求应答消息可以是阻塞方式也可以是异步方式的。所以ESME可能在SMSC没有应答的情况下,发起多个请求到SMSC。


SMSC应该按照收到的请求顺序,给EMSE回响应。但是ESME必须能够处理没有按顺序的响应。

 

 

SMSC到ESME的消息

SMSC到ESME的消息,如:SMSC转发短消息到ESME,ESME必须以RECEIVER类型连接到SMSC。

图5描述了一个典型的RECEIVER类型的ESME和SMSC之间的消息序列的示例。RECEIVER类型的ESME是以BIND_RECEIVER连接到SMSC的ESME,SMSC向此类ESME转发短消息,ESME向SMSC回应答。

ESME和SMSC之间的请求应答消息可以是阻塞方式也可以是异步方式的。所以SMSC可能在ESME没有回应答的情况下,发送发起多个deliver_sm请求到ESME。


ESME应该按照收到的请求顺序,给SMSC返回响应。但是SMSC必须能够处理没有按顺序回的响应。

 

 

消息流

本规范中规定的所有协议,不管是从ESME到SMSC,还是从SMSC到ESME的消息,接收到请求的一方,都必须给请求方回一个应答消息(acknowledge)。

 

消息语法

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

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

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

C.状态(Command_status)的定义如表3所示。


状态定义

错误代码
 描述
 
E_SUCCESS(0X00000000)
 成功
 
E_OTHERERR(0X00000001)
 其他错误
 
0X00000002 – 0X0000000F
 保留给SMSC厂商定义错误
 
E_MSGLENERR(0X00000010)
 消息长度错误
 
E_CMDLENERR(0X00000011)
 命令长度错误
 
E_INVLDCMDID(0X00000012)
 消息ID无效
 
E_NORIGHT(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(0X000000)
 无效的目的地址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厂商定义错误
 
其他
 保留
 

 

类型定义

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

(2)C_String:以NULL结束的ASCII字符串。

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

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

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

(6)C_UnicodeString:以NULL结束的Unicode编码的字符串。

(7)C_StringTime:表示时间的字符串,它为以下格式。“YYMMDDhhmmsstnnp , 长度定为17个字节或1个字节,最后一个字节值必须为NULL,1个字节表示 使用缺省的时间定义(由短消息中心实现时具体设置),17个字节的具体格式 如下:

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.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值