中国移动MM7 API用户手册(四)

2.7递送报告

报告是接收方(终端)对接收到消息的处理方式信息。递送报告指MMSC在获取这个报告后把这个信息发送给发送方(SP)。接收方对消息的处理可能是接收或者拒绝等。处理流程如下:

l         SP发送消息(通过MMSC)给终端,并且要求递送报告;

l         终端接收到消息后做相应处理(接收或拒绝);

l         MMSC把终端对消息的处理信息(递送报告)发送给SP

3.安装方法

    这里主要介绍一下如何将MM7 API运用到VASP自己开发的程序中以及在配置文件中需要注意修改的地方。

3.1 MM7 API的使用

VASPJava开发自己程序时,只要将中国移动集团公司提供的mm7api.jarlib下的所有的Jar文件加入到classpath中即可。

3.2配置文件的设置

    配置文件mm7Config.xml需要根据SP情况进行修改。

 

<?xml version="1.0"?>

<vasp:MM7Config xmlns:vasp="http://mms.chinamobile.com/mm7ConfigSchema">

       <AuthenticationMode>1</AuthenticationMode>

       <UserName>zxme</UserName>

       <Password>zxme</Password>

       <MaxMessageSize>100000000</MaxMessageSize>

       <LogPath>c:\vas_log</LogPath>

       <logLevel>1</logLevel>

       <LogNum>100</LogNum>

       <LogInterval>120</LogInterval>

       <LogSize>200</LogSize>

       <Charset>UTF-8</Charset>

       <MmscID>1</MmscID>

       <mmscURL> /mm7</mmscURL>

       <mmscIP>192.120.231.180</mmscIP>   

       <UseSSL>true</UseSSL>

       <ListenIP>192.120.231.228</ListenIP>

       <ListenPort>80</ListenPort>

       <BackLog>50</BackLog>

       <TimeOut>10000</TimeOut>

       <ReSendCount>5</ReSendCount>   

</vasp:MM7Config>

 

一些地方需要进行修改,下面一一说明:

<AuthenticationMode>1</AuthenticationMode>

表示VASP作为服务端接收消息时是否进行鉴权或进行什么样的鉴权,0表示不鉴权,1表示进行基本鉴权,2表示进行摘要鉴权。

<UserName>zxme</UserName>

<Password>zxme</Password>

表示彩信中心对VASP进行鉴权时的用户名和密码,同时也是VASP对接入的彩信中心进行鉴权时用户名和密码,是双向的,要VASPMMSC双方进行约定。

<LogPath>c:\vas_log</LogPath>

表示日志存放的路径,在Windows操作系统下和Linux下是不一样的,要注意进行修改。

<MmscID>1</MmscID>

表示MMSC网关的序号,需要从MMSC处得到。

<mmscURL> /mm7</mmscURL>

<mmscIP>192.120.231.180</mmscIP>  

分别表示MMSC网关的URL地址和IP(或主机名),也需要MMSC处得到。这里也可以填成ip:port。例如:192.120.231.180:8080,不填端口号使用默认端口号80

<ListenIP>192.120.231.228</ListenIP>

<ListenPort>80</ListenPort>

表示当VASP用应用程序方式进行接收消息时的监听地址和端口号。

以上为这个配置文件中主要需要注意修改的地方,当然其他的内容也可以进行修改,如<logLevel>1</logLevel>可以根据需要进行修改,0表示不产生日志;1表示产生错误日志3表示产生信息日志6表示产生完整信息日志。

 

<TimeOut>10000</TimeOut>

表示设置发送的超时时间,到发送超过这个时间,则自动进行重新发送。

<ReSendCount>5</ReSendCount>

表示设置重发的次数,建议在10次以下,一般用35次即可。

4.开发方法

这里主要介绍从SP接收MMSC发过来的DeliverReq开始,到SP发送SubmitReqMMSC的整个流程,SP所需要做的工作。

4.1  VASP接收传送请求(上行业务)

VASP接收可以有两种方式:

l         如果SP的增值应用是一个普通应用程序,可以使用方式1,即接收代理会自动打开一个监听端口,启动一个监听线程来接收来自MMSC的多媒体消息;

l         如果SP的增值应用是一个Web应用,则可以使用方式2,即接收代理作为一个Servlet运行,并自动处理从HttpRequest中搜索数据,并解码成多媒体消息。

 

4.1.1 方式1:普通应用程序中的用法

 

public class MyReceiver extends MM7Receiver

{

    //定义一个MM7DeliverReq,以便得到MMSC发过来的Deliver消息。(必备

    public static MM7DeliverReq deliverReq = new MM7DeliverReq();

    //Main方法

       public static void main(String[] args)

       {

//初始化VASP

MM7Config mm7Config = new MM7Config(“./config/mm7Config.xml”);

//设置ConnConfig.xml文件的路径

mm7Config.setConnConfigName(“./config/ConnConfig.xml”);  //必备

//构造MyReceiver

MyReciever receiver = new MyReceiver();

myReceiver.setConfig(mm7Config);   //必备

//创建MM7消息发送接口

MM7Sender mm7Sender = new MM7Sender(mm7Config);

//启动接收器

receiver.start();

       }

       public MM7VASPRes doDeliver(MM7DeliverReq request)

       {

        /*接收从MMSC发过来的传送消息,以便取出其中的部分值构造提交消息或得到一些有用

信息,如MMSC的标识符等*/

        deliverReq = request;

        System.out.println(“收到手机”+request.getSender()

+“提交的消息,标题为:”+request.getSubject());

        System.out.println("MMSC的标识符为:"+request. GetMMSRelayServerID()) ;

        //SP需要进行一些处理例如构建MM7DeliverRes消息设置ServiceCodeStatusCode

MM7DeliverRes mm7DeliverRes = new MM7DeliverRes();

mm7DeliverRes.setServiceCode("服务代码"); //设置ServiceCode可选

mm7DeliverRes.setStatusCode(MMConstants.RequestStatus.SUCCESS) ;/*设置请求完成状

必备以便表明SP已经接收到传送消息。一般设1000。*/

        mm7DeliverRes.setStatusText("所用状态文本说明");  /*设置所用状态的文本说明,

应限定请求状态,可选*/

        //返回给MM7 API,以便API将MM7DeliverRes返回给MMSC。

return(MM7VASPRes)mm7DeliverRes;

    }

}

 

posted @ 2011-04-22 18:51  永不放弃-Jack wu  阅读(610)  评论(0编辑  收藏  举报