中国电信短消息网关协议(SMGP协议)(v1.3)

更新时间:2024-11-07 02:33:31 阅读: 评论:0


2022年7月30日发
(作者:老婆和别人睡觉)

中国电信集团公司企业标准

CT/T1-2001

基于固定电话网的信息终端及综合信息系统技术规范

第七分册短消息网关(SMGP)协议V1.3

2002-04-30发布2002-04-30实施

中国电信集团公司发布

基于固定电话网的信息终端及综合信息系统技术规范第七分册

目录

前言........................................................................................................................2

1适用范围.................................................................................................................3

2引用标准.................................................................................................................3

3缩略语.....................................................................................................................3

4SMGP概述............................................................................................................3

4.1.

4.2.

4.3.

SMGP功能...................................................................................................................3

SMGP定义...................................................................................................................3

SMGP通信流程...........................................................................................................4

5SMGP数据包定义................................................................................................6

5.1.

5.2.

5.3.

数据包结构...................................................................................................................6

请求标识说明...............................................................................................................6

包体结构.......................................................................................................................7

6编码说明...............................................................................................................15

6.1.

6.2.

6.3.

6.4.

6.5.

短消息格式代码表.....................................................................................................15

收费类型代码表.........................................................................................................15

短消息状态表.............................................................................................................16

Err错误代码表...........................................................................................................16

Status错误代码表......................................................................................................17

7基于SMGP协议的API函数............................................................................17

附录A基于SMGP协议的API函数说明...........................................................18

(提示的附录)...............................................................................................................18

A.1基本要求..............................................................................................................................19

A.2API数据结构说明(以C语言为例)..............................................................................19

A.3API函数说明.......................................................................................................................21

A3.7查询短消息流量(SMGPQuery可选).........................................................................25

A.4配置SMGPAPI...................................................................................................................25

A.5短信的自动分割功能..........................................................................................................26

A.6错误代码含义......................................................................................................................27

第1页

基于固定电话网的信息终端及综合信息系统技术规范第七分册

前言

本标准介绍综合信息系统短消息网关和内容提供商(CP)之间、短消息网关

和短消息网关之间的通信协议。本协议简称SMGP(ShortMessageGateway

Protocol)。

本标准起草单位:中国电信集团公司、中国电信集团公司上海研发中心

本标准主要起草人:

特别感谢:亚信科技中国有限公司在本协议制订过程中的大力支持和帮助。

第2页

基于固定电话网的信息终端及综合信息系统技术规范第七分册

1适用范围

本协议适用于短消息网关开发商和短消息内容提供商。

2引用标准

SMPP(ShortMessagePeertoPeerProtocolSpecification)v3.3

3缩略语

见总册

4SMGP概述

功能

SMGP协议是内容提供商与短消息网关,以及短消息网关与短消息网关之

间的通信协议。SMGP可以实现以下功能:

(1)内容提供商向综合信息系统短消息用户发送短消息,例如邮件通知、天

气预报等。

(2)综合信息系统短消息用户向内容提供商点播信息,例如股票查询、航班

信息等。

(3)内容提供商以某个短消息用户的身份向综合信息系统短消息用户发送

传情信息,例如图片传情、音乐传情等。

(4)综合信息系统短消息用户发送的短消息通过短消息网关前转发送给异

地的短消息用户。

定义

SMGP协议是一个基于数据包的交互式协议,底层通过TCP/IP协议传递数据。

每个数据包都包含请求标识,代表数据包的用途。内容提供商与短消息网关或者

短消息网关与短消息网关之间采用Client/Server方式交互信息,客户端向服务

器端发送一个请求包,服务器端向客户端返回回应包。

第3页

基于固定电话网的信息终端及综合信息系统技术规范第七分册

客户端发送的所有请求包都包含一个唯一的序列号,服务器端返回的回应

包也带有相应的序列号,以便客户识别这是哪一个请求的回应。

客户端和服务器端之间可以采用长连接或者短连接的方式通信。如果采用

短连接,客户端必须以发送者、接收者或收发者的身份登录到服务器,通信完毕

后断开连接。如果采用长连接,一旦认证通过建立连接,客户端与服务器端可以

随时通信,在一定时间内两者之间没有发送合法的请求包,连接就中断。

通信流程

网关与CP之间通信连接采用端口号8890,网关与网关通信连接采用端口

号8900。

登录模式

在SMGP协议的一个会话中客户端可以采用三种登录方式与服务器端相

连:发送模式(sendmode)、接收模式(receivemode)和收发模式(transmitmode)。

在发送模式中客户端只能发送短消息、在接收模式中客户端只能接收短消息、在

收发模式中客户端既可以发送也可以接收短消息。三种模式均可以采用长连接与

短连接两种连接方式的一种,根据实际情况选择。

发送短消息

CP以发送者或者是收发者身份登录后,就可以发送短消息。CP可以不等

待上一个短消息发送回应包,就发送下一个短消息。

第4页

基于固定电话网的信息终端及综合信息系统技术规范第七分册

CPSMGW

login(send/transmitmode)

login_resp

submit(1)

submit(2)

submit_resp(1)

submit_resp(2)

exit

exit_resp

接收短消息

CP以接收者或者是收发者身份登录后,短消息网关就向CP发送短消息,

短消息网关可以不等待上一个短消息回应包,就发送下一个短消息。

CPSMGW

login(receive/transmitmode)

login_resp

deliver(1)

deliver(2)

deliver_resp(1)

deliver_resp(2)

exit

exit_resp

转发短消息

短消息网关需要把异地MT/MO短消息转发到相应的短消息网关,在转发

短消息之前短消息网关需要通过对方网关认证。

第5页

基于固定电话网的信息终端及综合信息系统技术规范第七分册

CPSMGW

login(send/receive/transmitmode)_

login_resp

forward(1)

forward(2)

forward_resp(1)

forward_resp(2)

exit

exit_resp

5SMGP数据包定义

SMGP基本数据类型定义如下表所示:

Integer

Octet

String

无符号整数

定长字符串。位数不足时,如果左补‘0’则补

ASCII表示的‘0’,如果右补‘0’则补二进制表示的

‘0’

5.1.数据包结构

SMGP数据包分为包头和包体两部分,包头的结构如下:

字段

PacketLength

RequestID

SequenceID

长度(字节)数据类型

4

4

4

Integer

Integer

Integer

说明

数据包长度(包头和包体的长度之

和。单位:字节)

请求标识

序列号(由客户端分配,循环递增)

5.2.请求标识说明

请求标识(RequestID)标识数据包的类型,请求包的请求标识和回应包的

第6页

基于固定电话网的信息终端及综合信息系统技术规范第七分册

请求标识一一对应。

请求名称

login

login_resp

submit

submit_resp

deliver

deliver_resp

active_test

请求标识说明

0x00000001

CP或SMGW登录请求

0x80000001

CP或SMGW登录回应

0x00000002

CP发送短消息请求

0x80000002

CP发送短消息回应

0x00000003

SMGW向CP发送短消息请求

0x80000003

SMGW向CP发送短消息回应

0x00000004

测试通信链路是否正常请求(由客户端发起,

CP和SMGW可以通过定时发送此请求来维持

连接)

0x80000004

测试通信链路是否正常回应

0x00000005

SMGW转发MT/MO短消息请求

0x80000005

SMGW转发MT/MO短消息回应

0x00000006

退出请求

0x80000006

退出回应

0x00000007

CP统计查询请求

0x80000007

CP统计查询回应

0x00000008

MT路由更新请求

0x80000008

MT路由更新回应

0x00000009

MO路由更新请求

0x80000009

MO路由更新回应

active_test_resp

forward

forward_reCP

exit

exit_resp

query

query_resp

mt_route_update

mt_route_update_r

esp

mo_route_update

mo_route_update_

resp

5.3.包体结构

字段

ClientID

长度

8

数据类型

Octet

String

说明

CP编号或者SMGW编号

编号规则参见总册第6节

第7页

基于固定电话网的信息终端及综合信息系统技术规范第七分册

AuthenticatorC

lient

16Octet

String

客户端密码

用于鉴别客户端的接入请求。其值通过

单向MD5hash计算得出,表示如下:

AuthenticatorClient=MD5

(ClientID+7字节的0+shared

secret+timestamp)

Sharedsecret由服务器端与客户端事

先商定,timestamp格式为:

MMDDHHMMSS,即月日时分秒,10位。

登录类型(0=发送短消息,1=接收短消

息,2=收发短消息,其他保留)

时间戳的明文,由客户端产生,格式为

MMDDHHMMSS,即月日时分秒,10位数字

的整型,右对齐

客户端支持的版本号(高位4bit表示主

版本号,低位4bit表示次版本号)

LoginMode

TimeStamp

1

4

Integer

Integer

Version1integer

_resp

字段长度(字节)数据类型

4Integer

Octet

String

说明

login请求返回结果

(参见错误代码表)

服务器端认证码,当客户端认证出错

时,此项为空

其值通过单向MD5hash计算得出,表

示如下:

AuthenticatorServer=MD5

(Status+AuthenticatorClient

+sharedsecret)

Sharedsecret由服务器端与客户端事

先商定,AuthenticatorClient为客户

端发送给服务器端的上一条消息login

中的值。

服务器支持的最高版本号

Status

Authenticator16

Server

+Version1Integer

第8页

基于固定电话网的信息终端及综合信息系统技术规范第七分册

字段

SubType

长度(字数据类说明

节)型

1integer

短消息子类型(0=取消订阅,1=

订阅请求,2=点播,3=订阅,其

他保留)

是否要求返回状态报告(0=不要求,

=要求)

发送优先级(从0到9)

业务类型

收费类型(参见收费类型代码表)

资费代码(单位为分)

短消息格式(参见短消息格式代码

表)

有效时间,格式遵循SMPP3.3协议

定时发送时间,格式遵循SMPP3.3

协议

短消息发送用户号码

计费用户号码

短消息接收号码总数(≤100)

短消息接收号码(连续存储

DestTermIDCount个号码)

短消息长度

短消息内容

保留

eedReport

Priority

ServiceID

FeeType

FeeCode

MsgFormat

ValidTime

AtTime

SrcTermID

ChargeTermID

DestTermIDCount

DestTermID

1

1

10

2

6

1

17

17

21

21

1

21*

DestTerm

Count

1

≤252

8

integer

Integer

Octet

String

Octet

String

Octet

String

Octet

String

Octet

String

Octet

String

Octet

String

Octet

String

Integer

Octet

String

Integer

Octet

String

Octet

String

MsgLength

MsgContent

Reserve

_resp

字段长度(字节)数据类型说明

第9页

基于固定电话网的信息终端及综合信息系统技术规范第七分册

MsgID10Octet

String

网关产生的短消息流水号,由三部分组

成:

网关代码:3字节(BCD码)

时间:4字节(BCD码)

序列号:3字节(BCD码)

Status

4Integer

Submit请求返回结果(参见错误代码

表)

r

字段

MsgID

长度(字数据类说明

节)型

1Integer

网关产生的短消息流水号,由三部

分组成:

网关代码:3字节(BCD码)

时间:4字节(BCD码)

序列号:3字节(BCD码)

IsReport

MsgFormat

RecvTime

1

1

14

Integer

Integer

Octet

String

Octet

String

Octet

String

Integer

Octet

String

Octet

String

是否状态报告(0=不是,1=是)

短消息格式(参见短消息格式代码

表)

短消息接收时间(格式:

yyyymmddhhmiss,例如

20)

短消息发送号码

短消息接收号码

短消息长度

短消息内容

保留

SrcTermID

DestTermID

MsgLength

MsgContent

Reserve

21

21

1

≤252

8

r_resp

第10页

基于固定电话网的信息终端及综合信息系统技术规范第七分册

字段

MsgID

长度(长度)

1

数据类型

Integer

说明

网关产生的短消息流水号,由三部分组

成:

网关代码:3字节(BCD码)

时间:4字节(BCD码)

序列号:3字节(BCD码)

Status

4integer

Deliver请求返回结果(参见错误代码

表)

_test

没有包体

_test_resp

没有包体

d

字段

MsgID

长度(长数据类说明

度)型

10Octet

String

网关产生的短消息流水号,由三部

分组成:

网关代码:3字节(BCD码)

时间:4字节(BCD码)

序列号:3字节(BCD码)

DestSMGWo

SrcSMGWo

SMCo

SMType

6

6

6

1

Octet

String

Octet

String

Octet

String

Integer

目标网关代码

源网关代码

短消息中心代码

短消息类型(0=MT,1=MO,2=异

地点到点短消息,3=异网点到点短

消息,其他保留)

第11页

基于固定电话网的信息终端及综合信息系统技术规范第七分册

SubType1integer

短消息子类型(0=取消订阅,1=

订阅请求,2=点播,3=订阅,其

他保留)

当SMType=0时,表示是否要求返

回状态报告(0=不要求,1=要求)

当SMType=1时,表示是否状态报

告(0=不是,1=是)

ReportFlag1Integer

Priority

ServiceID

FeeType

FeeCode

MsgFormat

ValidTime

AtTime

SrcTermID

DestTermID

ChargeTermID

MsgLength

MsgContent

Reserve

1

10

2

6

1

17

17

21

21

21

1

≤252

8

Integer

Octet

String

Octet

String

Octet

String

Integer

Octet

String

Octet

String

Octet

String

Octet

String

Octet

String

Integer

Octet

String

Octet

String

发送优先级(从0到9)

业务类型

资费类型(参见收费类型代码表)

资费代码(单位为分)

短消息格式(参见短消息格式代码

表)

有效时间,格式遵循SMPP3.3协议

定时发送时间,格式遵循SMPP3.3

协议

短消息发送用户号码

短消息接收用户号码

计费用户号码

短消息长度

短消息内容

保留

d_resp

字段

MsgID

长度(长度)

10

数据类型

Octet

String

说明

网关产生的短消息流水号

第12页

基于固定电话网的信息终端及综合信息系统技术规范第七分册

Status

4Integer

Forward请求返回结果(参见错误代码

表)

没有包体

_resp

没有包体

(保留)

字段名

Time

Query_Type

字节数

8

1

属性描述

OctetString

查询时间(格式:yyyymmdd,精确到

日)

Integer

查询类别

0:总数查询

1:按业务代码查询

其他保留

OctetString

查询码1(业务类型)Query_Code10

_resp

字段名

Time

Query_Type

(保留)

属性描述

OctetString

查询时间(格式:yyyymmdd,精

确到日)

Integer

查询类别

0:总数查询

1:按业务代码查询

其他保留

OctetString

查询码(业务类型)

Integer

接收短消息总数

Integer

接收用户总数

Integer

成功转发数量

Integer

待转发数量

Integer

转发失败数量

Integer

成功送达数量

Integer

待送达数量

字节数

8

1

Query_Code

MT_TLMsg

MT_Tlusr

MT_Scs

MT_WT

MT_FL

MO_Scs

MO_WT

1

10

4

4

4

4

4

4

4

当Query_Type为0时,此项无效;当Query_Type为1时,此项填写业务代码Service_id.

第13页

基于固定电话网的信息终端及综合信息系统技术规范第七分册

MO_FL

Reverse

4

8

Integer

送达失败数量

OctetString

保留

_route_update(保留)

字段名

UpdateType

RouteId

SrcGatewayId

SrcGatewayIP

SrcGatewayPort

StartTermId

EndTermId

AreaCode

字节数

1

4

6

15

2

6

6

4

属性

Integer

Integer

OctetString

OctetString

Integer

OctetString

OctetString

OctetString

描述

0-添加;1-删除;2-更新

其他保留

路由编号(若update_type为“添加”,

则此字段为零)

源网关代码

源网关IP地址

源网关IP端口

MT路由起始号码段

MT路由截止号码段

终端所属区号

_route_update_resp(保留)

字段名

Status

字节数

1

属性

Integer

描述

参见错误代码表

_route_update(保留)

字段名

UpdateType

RouteId

SrcGatewayId

SrcGatewayIP

SrcGatewayPort

SrcTermID

字节数

1

4

6

15

2

21

属性

Integer

描述

0-添加;1-删除;2-更新

其他保留

Integer

路由编号(若update_type为“添加”,

则此字段为零)

OctetString

源网关代码

OctetString

源网关IP地址

Integer

源网关IP端口

OctetString

CP代码

_route_update_resp(保留)

字段名

Status

第14页

字节数

1

属性

Integer

描述

参见错误代码表

基于固定电话网的信息终端及综合信息系统技术规范第七分册

5.3.19.状态报告格式

字段

id

Submit_date

done_date

Stat

Err

长度

10

14

14

7

3

数据类型

Octet

String

Octet

String

Octet

String

Octet

String

Octet

String

说明

状态报告对应原短消息的MsgID

短消息提交时间(格式:

yyyymmddhhmiss,例如)

短消息下发时间(格式:

yyyymmddhhmiss,例如)

短消息状态(参见短消息状态表)

参见错误代码表

6编码说明

6.1.短消息格式代码表

代码

0

3

4

8

15

含义

ASCII编码

短消息写卡操作

二进制短消息

UCS2编码

6.2.收费类型代码表

代码

00

01

02

03

其他

含义

免费

按条收费

包月

封顶

保留

第15页

基于固定电话网的信息终端及综合信息系统技术规范第七分册

6.3.短消息状态表

状态名

DELIVERED

EXPIRED

DELETED

UDELIVERABLE

ACCEPTED

UKOW

REJECTED

状态值(字符串)

DELIVRD

EXPIRED

DELETED

UDELIV

ACCEPTD

UKOW

REJECTD

说明

短消息转发成功

短消息超过有效期

短消息已经被删除

短消息是不可转发的

短消息已经被最终用户接收

(为保持与SMPP兼容,保留)

未知短消息状态

短消息被拒绝

(为保持与SMPP兼容,保留)

错误代码表

状态值

(字符串)

000

001

002

003

004

005

006

007

008

009

010

说明

成功

用户不能通信

用户忙

终端无此部件号

非法用户

用户在黑名单内

系统错误

用户内存满

非信息终端

数据错误

数据丢失

对应状态

DELIVRD

EXPIRED

EXPIRED

UDELIV

UDELIV

UDELIV

UDELIV

EXPIRED

UDELIV

UDELIV

UDELIV

command_status

对应值

ESME_ROK

ESME_RUSRABS

ET

ESME_RUSRUS

Y

ESME_ROPART

ESME_RUSRIV

ALID

ESME_RBLACK

LIST

ESME_RSYSERR

OR

ESME_RMEMCA

P

ESME_PROTOC

OLERROR

ESME_DATAERR

OR

ESME_DATAMIS

SIG

Command_st

atus代码

0x00000001

0x00000400

0x00000401

0x00000402

0x00000403

0x00000404

0x00000405

0x00000406

0x00000407

0x00000408

0x00000409

注:err错误代码的定义对应了SMPP协议包头中command_status字段的相

应状态值。

第16页

基于固定电话网的信息终端及综合信息系统技术规范第七分册

错误代码表

代码

0

1

2

3-9

10

11

12

13-19

20

21

22

23-29

30

31

32

33

34

35

36

37

38

39

40-127

128-255

含义

成功

系统忙

超过最大连接数

保留

消息结构错

命令字错

序列号重复

保留

IP地址错

认证错

版本太高

保留

非法消息类型(SMType)

非法优先级(Priority)

非法资费类型(FeeType)

非法资费代码(FeeCode)

非法短消息格式(MsgFormat)

非法时间格式

非法短消息长度(MsgLength)

有效期已过

非法查询类别(QueryType)

路由错误

保留

厂家自定义

7基于SMGP协议的API函数

详见附录A。

第17页

基于固定电话网的信息终端及综合信息系统技术规范第七分册

附录A基于SMGP协议的API函数说明

(提示的附录)

第18页

基于固定电话网的信息终端及综合信息系统技术规范第七分册

A.1基本要求

A.1.1安装

网关需要提供API软件包,解压到指定目录下后可以修改配置文件,配置

参数至少包括IcpId(ICP编号)、IcpShareKey(ICP密码)、ClientIP(客户主机

的IP地址)和ServerIP(短信网关地址)。

A.1.2例子程序

网关至少应该提供以下例程,供ICP调试使用,分别为:

Connect(参数),检查是否能够成功登录短消息网关;

TestAPI(参数),检查是否能够成功连接短信网关。

SetKey(参数),修改ICP密码。

SendSM(参数)尝试。

RecvSM(参数)尝试接收短信等。

RecvSMReport(参数),尝试接收短消息状态报告。

A.1.3操作系统平台要求

网关提供的API软件包至少要求支持以下操作系统平台:

FreeBSD3.x,4.2

Solaris5.6,5.7,5.8(包含x86)

Linux(Redhat和Slack等主流产品)

WindowsT/2000等

网关提供的API软件包至少要求支持以下编程语言:

C/C++

JAVA

A.2API数据结构说明(以C语言为例)

A.2.1接收短信的返回数据结构(DeliverResp)

第19页

基于固定电话网的信息终端及综合信息系统技术规范第七分册

用途

保存SMGPDeliver函数返回的短信内容。

字段说明

字段名

sMsgID

nMsgFormat

sSrcTermID

nIsReport

nMsgLen

sMsgContent

sDestTermID

sRecvTime

数据类型

Char(11)

Int

Char(22)

Int

Int

Char(201)

char(21)

char(15)

说明

短消息标识

短消息格式(参照短消息格式代码表)。网

关不做判定,透明传输。

短消息发送用户号码

是否为应答信息。代码含义:非应答信息(0);

应答信息(1)

消息长度

消息内容

CP的接入代码

短消息接收时间(格式:yyyymmddhhmiss,

例如20)

A.2.2获取发短信的返回数据结构(SendBatchResp)

用途

使用SMGPSendBatch发短信后,每条短信的“消息标识”和“错误代码”

保存在文件里。SMGPAPI提供GetSendBatchResp函数获取每一条短信返回信

息,保存在SendBatchResp中。

字段说明

字段名

sMsgID

nErrorCode

sPhoneo

数据类型

Char(11)

Int

Char(22)

说明

短消息标识

错误代码(参照错误代码表)

发送号码

A.2.3查询短消息网关的返回数据结构(QueryResp可选)

用途

第20页

基于固定电话网的信息终端及综合信息系统技术规范第七分册

保存SMGPQuery函数返回的查询结果。

字段说明

字段名

nMT_TLMsg

nMT_TLusr

nMT_Scs

nMT_WT

nMT_FL

nMO_Scs

nMO_WT

nMO_FL

数据类型

Int

Int

Int

Int

Int

Int

Int

Int

说明

接收短消息总数

接收用户总数

成功转发数量

待转发数量

转发失败数量

成功送达数量

待送达数量

送达失败数量

A.3API函数说明

A.3.1初始化API(InitSMGPAPI)

作用

初始化SMGPAPI,应用程序只需要调用一次此函数。

参数

参数名

SiniFile

数据类型说明

,缺省值

Char(100)

SMGPAPI配置文件名

是:”../config/”。

如果应用程序的执行目录不在smgpapi/bin下,就

需要通过绝对或相对路径指定sIIFile。

例如:

InitSMGPAPI(“/opt/smgpapi/config/”)

返回

0=成功

1=失败

A.3.2发送单条短信(SMGPSendSingle)

第21页

基于固定电话网的信息终端及综合信息系统技术规范第七分册

作用

向短消息网关发送1条短消息到1个终端用户。短消息长度最长为200,

SMGPAPI在发送时自动建立ConnectionPool,采用长连接或者短连接发送短消

息。当Cache的connection中断时,API能够自动重新连接短消息网关。如果应

用程序采用多线程发送短消息,多个线程共享同一个ConnectionPool。在发送过

程中,如果因为通信原因导致发送失败,API能够自动重新发送,重试的次数在

配置文件设置。

参数

参数名

needReport

nMsgLevel

sServiceID

nMsgFormat

sFeeType

sFeeCode

sValidTime

sAtTime

sChargeTermI

D

sDestTermID

nMsgLen

sMsgContent

sMsgID

nErrorCode

返回

0=成功

1=失败

数据类型

Int

Int

Char(11)

Int

Char(3)

Char(7)

Char(18)

Char(18)

Char(22)

Char(22)

Int

Char(*)?

Char(11)

Int

说明

是否要求返回状态报告(0=不要求,1=要求)

信息级别(0-9,0=最低优先级)

业务类型

短消息格式(参照短消息格式表)。网关不做判定,透

明传输。

资费类别

资费代码(以分为单位)

存活有效期,格式遵循SMPP3.3协议

定时发送时间,格式遵循SMPP3.3协议

计费号码

短消息接收号码

短消息长度

短消息内容(nMsgLen=0时表示存放短消息的文件

名)

返回的短消息标识

错误代码(参照错误代码表)。

第22页

基于固定电话网的信息终端及综合信息系统技术规范第七分册

A.3.3发短信(SMGPSendBatch)

作用

向短消息网关发送1条短消息到多个手机用户。短消息长度最长为200,此

函数使用文件传递短消息内容。SMGPAPI在发送时自动建立ConnectionPool,

采用长连接或者短连接发送短消息。当Cache的connection中断时,API能够自

动重新连接短消息网关。如果应用程序采用多线程发送短消息,多个线程共享同

一个ConnectionPool。在发送过程中,如果因为通信原因导致发送失败,API能

够自动重新发送,重试的次数在配置文件设置。

参数

参数名

needReport

nMsgLevel

sServiceID

nMsgFormat

sFeeType

sFeeCode

sValidTime

sAtTime

sSrcTermID

sChargeTermID

数据类型

int

int

Char(11)

Int

Char(3)

Char(7)

Char(18)

Char(18)

Char(22)

Char(22)

说明

是否要求返回状态报告(0=不要求,1=要求)

信息级别。(0=最低优先级,1=正常,2=紧急,

3=十分紧急)

业务类型

短消息格式(参照短消息格式表)。网关不做判

定,透明传输。

资费类别

资费代码(以分为单位)

存活有效期,格式遵循SMPP3.3协议

定时发送时间,格式遵循SMPP3.3协议

短消息发送用户号码(当为CP代码时须在前面加

118)

计费号码(若为空,则对被叫计费)

sDestTermIDFileChar(100)

保存所有目的号码的文件名

nMsgLen

sMsgContent

sMsgIDFile

sSubType

Int

Char(*)

消息长度

短消息内容(nMsgLen=0时表示存放短消息的文

件名)

Char(100)

保存所有短消息的返回MsgID和ErrorCode的文

件名

Char(2)

短消息子类型

第23页

基于固定电话网的信息终端及综合信息系统技术规范第七分册

返回

0=成功

1=失败

A.3.4获取发短信的结果(GetSendBatchResp)

作用

从文件里读取发的某一个短信的标识、发送结果和发送号码。

参数

参数名

sMsgIDFile

nPos

pSendBatchRe

sp

数据类型说明

Char(100)

保存所有短消息的返回MsgID和ErrorCode的文件

Int

短消息位置,从0开始

SendBatch

用于保存结果的SendBatchResp结构指针

Resp*

返回

0=成功

1=失败

A.3.5接收短信(SMGPDeliver)

作用

连接短信网关,等待接收属于本ICP的短信。

参数

参数名

nTimeout

pDeliverResp

数据类型

int

DeliverRe

sp*

说明

等待时间,单位:秒。0表示永远等待。

保存短消息的DeliverResp结构指针

返回

0=成功

1=失败

第24页

基于固定电话网的信息终端及综合信息系统技术规范第七分册

A.3.6检查短信网关是否能够提供服务(CMMPActiveTest)

作用

检查短信网关是否能够提供服务。

参数

参数名

nErrorCode

数据类型

Int

说明

错误代码(参照错误代码表)。

返回

0=成功

1=失败

A3.7查询短消息流量(SMGPQuery可选)

作用

向短消息网关查询某天的短消息流量。

参数

参数名

sDate

nQueryType

sServiceID

pQueryResp

数据类型

Char(10)

Int

Char(11)

QueryResp*

说明

查询日期,格式:yyyymmdd

查询类型,0=总数查询;1=按业务代码查询

查询码2(业务类型)

保存查询结果的QueryResp结构指针

返回

0=成功

1=失败

A.4配置SMGPAPI

配置文件在smgpapi/config/,以下是配置项的说明:

名称

CPId

第25页

说明

CP编号。

基于固定电话网的信息终端及综合信息系统技术规范第七分册

CPShareKey

CP密码。

WithPrevPage第1个以后的分割短消息的前置说明文字,可以为空。

例如(第2个分割短消息):(2/3)(continue)xxxxxx

“(continue)”是前置说明

AscII短消息的最大长度

文字WithextPage分

割短消息的后置说明文

字,可以为空,最后一

个短消息不带后置说明

文字。

例如(第1个分割短消

息):(1/3)xxxxxx(tobe

continued)

“(tobecontinued)”是后

置说明文字

PageSpaceAscii

PageSpaceGB

PageSpaceBinary

WithPageIndex

MaxPage

ClientIP

中文短消息的最大长度

二进制短消息的最大长度

在分割短消息时是否附加页号,0=否,1=是。

最大分割页数,最大是99页。

客户主机的IP地址,必须填写接入Internet的公网地址。

如果主机是通过Gateway接入Internet,就填写Gateway

地址。如果客户主机的IP地址填写错误会导致应用程

序不能通过SMGP用户认证。

短消息网关的IP地址

短消息网关的端口

发送短消息自动重试次数(1表示只发送1次,不重新

发送)

发送请求超时时间,单位:秒

ServerIP

ServerPort

SubmitRetry

RequestTimeout

A.5短信的自动分割功能

SMGPSendSingle和SMGPSendBatch提供自动分割短消息的功能,分割的

效果由的配置控制。

当参数nMsgFormat等于0或15时,API就提供分割短消息功能。API扫

描短消息的内容,把短消息分段,根据每一段的短消息内容设置nMsgFormat。

第26页

基于固定电话网的信息终端及综合信息系统技术规范第七分册

如果某一段短消息含有中文,就把那一段短消息的发送格式设为15,取

PageSpaceGB为最大长度;如果不含中文,就把那一段短消息的发送格式设为0,

取PageSpaceAscii为最大长度。这样,可以充分利用短消息的最大发送长度,减

少分割数量。如果WithPrevPage或者PageSpaceGB含有汉字,所有分割短消息

的发送格式都设为15。

当参数nMsgFormat等于4时,API根据PageSpaceBinary配置分割短消息。

当参数nMsgFormat等于0并且长度小于PageSpaceGB,API扫描短消息内

容是否含有中文。如果发现中文,就自动把发送格式变为15。

A.6错误代码含义

编号

4

5

6

7

8

10

11

12

13

14

15

16

17

18

19

20

21

22

23

含义

非法短信长度

非法资费代码(FeeCode)

短信长度超长

非法业务类型(ServiceId)

短信发送速度太快

非法ICP编号

非法信息格式(MsgFormat)

非法自费类别(FeeType)

非法存活有效期(ValidTime)

非法定时发送时间(AtTime)

非法计费号码(ChargeTermId)

非法目标号码(DestTermId)

不能打开目标号码文件(DestTermIdFile)

不能打开短信内容文件(MsgFile)

非法短信(MsgContent)

连接短信网关失败

登录失败

接收结果数据包失败

发送队列满

第27页

基于固定电话网的信息终端及综合信息系统技术规范第七分册

24

99

其他

超出系统限制

系统错误

保留

第28页


本文发布于:2022-07-30 22:10:12,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/falv/fa/82/48042.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 站长QQ:55-9-10-26