短消息代理CMPP20 SMProxy使用说明书Word格式文档下载.docx
- 文档编号:20484423
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:21
- 大小:159.41KB
短消息代理CMPP20 SMProxy使用说明书Word格式文档下载.docx
《短消息代理CMPP20 SMProxy使用说明书Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《短消息代理CMPP20 SMProxy使用说明书Word格式文档下载.docx(21页珍藏版)》请在冰豆网上搜索。
【函数功能】
向ISMG发送CMPP消息,阻塞直到收到响应或超时。
【函数原型】
CMPPMessagesend(CMPPMessagemessage);
【参数说明】
[IN]message-发送的CMPP消息,包括
(1)CMPPSubmitMessage提交短信
(2)CMPPQueryMessage发送短信状态查询
(3)CMPPCancelMessage删除短信
【处理】
调用这个接口方法,向ISMG发送Submit/Query/Cancel等命令消息。
如果发送消息超时或通信异常则抛出异常,需要调用者捕获处理。
【返回值】
发送CMPPSubmitMessage,返回CMPPSubmitRepMessage;
发送CMPPCancelMessage,返回CMPPCancelRepMessage;
发送CMPPQueryMessage,返回CMPPQueryRepMessage;
2close
向ISMG发送终止连接CMPP消息,调用之后连接将永久不可用。
Voidclose();
【参数说明】无
调用这个接口方法,SMProxy向ISMG发送CMPPTerminateMessage消息
【返回值】无
3getConnState
获取通讯连接的状态方法。
1StringgetConnState();
调用这个接口方法,获取TCP连接状态的描述。
【返回值】
当前错误描述,若连接正常则返回null。
2封装接口方法的SMProxy的抽象类
SMProxy在com.huawei.SMProxy的包中,封装了Send、close、getConnState方法。
SMProxy是一个抽象类,需要被继承使用。
SMProxy抽象类的框架如下:
publicclassSMProxy
{
publicSMProxy(Argsargs)
{
//完成初始化和向ISMG登录等工作
}
publicSMProxy(Mapargs)
//完成初始化和向ISMG登录等工作
/**
*发送消息,阻塞直到收到响应或超时。
*返回为收到的消息
*@exceptionPException超时或通信异常。
*/
publicCMPPMessagesend(CMPPMessagemessage)
//发送消息
*连接终止的处理,由API使用者实现
*SMC连接终止后,需要执行动作的接口
publicvoidonTerminate()
*对收到消息的处理。
由API使用者实现。
*@parammsg从短消息中心来的消息。
*@return应该回的响应,由API使用者生成。
publicCMPPMessageonDeliver(CMPPDeliverMessagemsg)
*终止连接。
调用之后连接将永久不可用。
publicvoidclose()
*提供给业务层调用的获取连接状态的方法
publicStringgetConnState()
//返回连接状态的描述
}
3使用SMProxy抽象类
可以直接使用SMProxy类提供的Send、close和getConnState方法
但是如果SP有接收ISMG下发的短信的要求或ISMG断开连接的时候要求得到事件通知的时候,就必须声明一个新的类继承SMProxy,重载实现onDeliver()和onTerminate()。
使用例子如下:
//定义MySMProxy所在的包是com.huawei.SMProxy
packagecom.huawei.SMProxy;
importm.cmpp.message.*;
importcom.huawei.insa2.util.Args;
publicclassMySMProxyextendsSMProxy
publicMySMProxy(Argsargs)
//调用父类的构造函数,完成初始化和登录ISMG的功能,不能省略
super(args);
}
//添加收到短消息中心下发消息的处理代码
。
。
//实际上是返回响应消息,一定要有
returnsuper.onDeliver(msg);
publicvoidOnTerminate()
//可以添加ISMG和SMProxy断开连接的处理代码
实际使用SMProxy封装的send、close和getConnState的接口方法的时候,只需要生成MySMProxy的对象,然后调用MySMProxy的send、close和getConnState方法即可。
4配置参数使用说明
SMProxy需要的配置参数如下表
参数名称
参数例值
参数描述
host
10.76.148.147
ISMG主机地址的IP地址
port
7890
ISMG主机开发的端口号
heartbeat-interval
10
心跳信息发送间隔时间
(单位:
秒)
reconnect-interval
连接中断时重连间隔时间(单位:
heartbeat-noresponseout
5
需要重连时,连续发出心跳而没有接收到响应的个数(单位:
个)
transaction-timeout
操作超时时间(单位:
source-addr
d86138
SP向ISMG申请的ID(最大为六位字符)
version
1
双方协商的版本号(大于0,小于256)
shared-secret
pass
由中国移动与ICP事先商定,SP向ISMG申请的ID所对应的密码
debug
true
true表示属于调试状态,所有的消息被打印输出到屏幕,false表示不属于调试状态,所有的消息不被输出
配置文件可以采用我们提供的XML格式,也可以采用其他格式,只要构造的时候能通过Map类型或Arg类型的参数传入指定的参数就可以了。
例如可以用java的property文件保存参数,或将配置和ICP的应用程序配置放在一起。
下面是以XML格式定义的配置文件
SMProxy.xml是在SMProxy.jpx的工程目录下,是使用XML写的配置文件,具体内容如下
其中以"
<
!
--"
开头的语句是注释部分
?
xmlversion="
1.0"
encoding="
GB2312"
>
--SMProxy配置文件-->
config>
<
--与ISMG(InternetShortMessageGateway)建立连接所需参数-->
ismg>
<
--ISMG主机地址-->
host>
10.76.148.147<
/host>
--ISMG主机端口号-->
port>
7890<
/port>
--心跳信息发送间隔时间(单位:
秒)-->
heartbeat-interval>
10<
/heartbeat-interval>
--连接中断时重连间隔时间(单位:
秒)-->
reconnect-interval>
/reconnect-interval>
--需要重连时,连续发出心跳而没有接收到响应的个数(单位:
个)-->
heartbeat-noresponseout>
5<
/heartbeat-noresponseout>
--操作超时时间(单位:
transaction-timeout>
/transaction-timeout>
--SP…ID(最大为六位字符)-->
source-addr>
d86138<
/source-addr>
--双方协商的版本号(大于0,小于256)-->
version>
0<
/version>
--shared-secret由中国移动与ICP事先商定-->
shared-secret>
/shared-secret>
--是否属于调试状态,true表示属于调试状态,所有的消息被打印输出到屏幕,false表示不属于调试状态,所有的消息不被输出-->
debug>
true<
/debug>
/ismg>
/config>
使用的时候可以根据实际情况配置
ISMG主机地址
ISMG主机端口号
心跳信息发送间隔时间(单位:
个)<
shared-secret由中国移动与ICP事先商定,SP向ISMG申请的ID所对应的密码
举例说明:
如果ISMG的IP地址为10.76.148.168,则只需要修改
为<
10.76.148.168<
即可,同样可以根据实际情况修改其他的配置项。
5使用SMProxy收发短信
5.1直接使用SMProxy发送短信
当不需要接收ISMG下发的短信和不需要获得ISMG的断连通知的时候,可以直接使用SMProxy类方法发送/查询/删除短信和退出ISMG
具体使用方法如下
生成SMProxy的实例
(a)Argsargs=newCfg("
SMProxy.xml"
).getArgs("
ismg"
);
(b)args.set("
source-addr"
loginName);
(c)args.set("
shared-secret"
loginPass);
(d)SMProxyproxy=newSMProxy(args);
注释:
(a)类Cfg在com.huawei.insa2.util的包中,主要负责基于XML格式的配置文件读写类,使用Cfg类解析SMProxy.xml配置文件,Cfg的构造函数的原形如下
publicCfg(Stringurl),其中参数url表示解析的配置文件。
通过调用Cfg对象的getArgs方法获得Args对象。
(b,c)根据配置文件解析生成Args对象,SP还可以修改其中的配置项,b和c就是修改配置参数中的SP登录ISMG的ID和密码,同样也可以修改其他的配置项。
(d)生成SMProxy对象proxy
调用proxy.send(CMPPMessagemsg)完成发送/删除/查询短信。
调用proxy.close()与ISMG断开连接。
调用proxy.getConnState()获得和ISMG的TCP连接的状态描述。
具体使用情况请参看5.2
5.2使用SMProxy收发短信
当需要接收ISMG下发的短信或在ISMG下发断连命令的时候需要得到事件通知的情况需要做如下处理
1:
首先需要声明MySMProxy类,并且从com.huawei.SMProxy包中的SMProxy类继承,根据实际情况处理。
如果SP有接收短信的要求在MySMProxy的类中重载实现SMProxy的onDeliver方法,在MySMProxy类中增加
publicCMPPMessageonDeliver(CMPPDeliverMessagemsg)
//添加收到短消息中心下发消息的处理代码
//实际上是返回响应消息,一定要有
returnsuper.onDeliver(msg);
如果SP需要在ISMG向SMProxy下发断开连接后收到类似于事件的通知,则需要重载SMProxy的onTerminate方法,需要在MySMProxy类中增加
publicvoidOnTerminate()
2:
生成MySMProxy的实例
(d)MySMProxymyProxy=newMySMProxy(args);
(d)生成MySMProxy对象myProxy
3:
使用MySMProxy对象发送短消息
向ISMG下发短信
CMPPSubmitMessagesubmitMsg=
newCMPPSubmitMessage(
intpk_Total,
intpk_Number,
intregistered_Delivery,
intmsg_Level,
Stringservice_Id,
intfee_UserType,
Stringfee_Terminal_Id,
inttp_Pid,
inttp_Udhi,
intmsg_Fmt,
Stringmsg_Src,
Stringfee_Type,
Stringfee_Code,
Datevalid_Time,
Dateat_Time,
Stringsrc_Terminal_Id,
String[]dest_Terminal_Id,
byte[]msg_Content,
Stringreserve
)
调用MySMProxy对象myProxy的send方法发送,
CMPPSubmitRepMessagerepMsg=myProxy.send(submitMsg);
/**
*创建一个发送短信消息,传入消息的各字段的值,并对各参数值进行判断,不符合要求则抛出异常
*按要求把输入的参数转换为一个byte类型的数组
*1@pk_Total相同msg_Id消息总条数
*2@pk_Number相同msg_Id的消息序号
*3@registered_Delivery是否要求返回状态报告
*4@msg_Level信息级别
*5@service_Id业务类型
*6@fee_UserType计费用户类型字段
*7@fee_Terminal_Id被计费用户的号码
*8@tp_PidGSM协议类型
*9@tp_UdhiGSM协议类型
*10@msg_Fmt消息格式
*11@msg_Src消息内容来源
*12@fee_Type资费类别
*13@fee_Code资费代码(以分为单位)
*14@valid_Time存活有效期
*15@at_Time定时发送时间
*16@src_Terminal_Id源终端MSISDN号码
*17@dest_Terminal_Id接收业务的MSISDN号码
*18@msg_Content消息内容
*19@reserve保留
这些消息与CMPP1.2.1文档中的CMPP_Submit消息的格式相对应。
repMsg提交submit的响应消息,是ISMG返回给SP的消息。
4:
使用MySMProxy对象发送删除短信
CMPPCancelMessagecancelMsg=newCMPPCancelMessage(byte[]msg_Id)
CMPPCancelRepMessagerepMsg=myProxy.send(cancelMsg);
msg_Id信息标识,CMPP1.2.1文档中的CMPP_Cancel消息的格式相对应。
repMsg提交cancel的响应消息,是ISMG返回给SP的消息。
5:
使用MySMProxy对象发送查询短信
CMPPQueryMessagequeryMsg=
newCMPPQueryMessage(
D
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 短消息代理CMPP20 SMProxy使用说明书 短消息 代理 CMPP20 SMProxy 使用 说明书