当VASP发送MM7SubmitReq消息给MMSC成功后,VASP可以发送取消消息,以取消之前所发送给MMSC的消息。具体构建取消消息见4.2.2.2。
package com.cmcc.mm7.vasp.conf;
import com.cmcc.mm7.vasp.message.*;
import com.cmcc.mm7.vasp.service.MM7Sender;
import com.cmcc.mm7.vasp.common.*;
import java.io.*;
public class VaspSendTest {
public static void main(String[] args) {
MM7Config mm7Config = new MM7Config("../config/mm7Config.xml");
//设置ConnConfig.xml文件的路径
mm7Config.setConnConfigName(“../config/ConnConfig.xml”);
MM7Sender mm7Sender = new MM7Sender(mm7Config);
MM7CancelReq cancelReq = new MM7CancelReq();
cancel.setTransactionID("关联标识");
//从MM7SubmitRes中获得MessageID
cancelReq.setMesageID(“待取消的消息的标识符”);
MM7RSRes res = mm7Sender.send(cancelReq);
System.out.println("res.statuscode=" + res.getStatusCode() +
";res.statusText=" + res.getStatusText());
}
}
当VASP发送MM7SubmitReq消息给MMSC成功后,VASP可以发送替换消息,以替换之前所发送给MMSC的消息。具体构建替换消息见4.2.2.3。
package com.cmcc.mm7.vasp.conf;
import com.cmcc.mm7.vasp.message.*;
import com.cmcc.mm7.vasp.service.MM7Sender;
import com.cmcc.mm7.vasp.common.*;
import java.io.*;
public class VaspSendTest {
public static void main(String[] args) {
MM7Config mm7Config = new MM7Config("./config/mm7Config.xml");
//设置ConnConfig.xml文件的路径
mm7Config.setConnConfigName(“./config/ConnConfig.xml”);
MM7Sender mm7Sender = new MM7Sender(mm7Config);
MM7ReplaceReqreplace = new MM7ReplaceReq();
replace.setTransactionID("关联标识");
//从MM7SubmitRes中获得MessageID
replace.setMessageID("被当前消息所替换的消息的标识符");
//创建消息内容体
MMContent content = new MMContent();
content.setContentType(MMConstants.ContentType.MULTIPART_MIXED);
MMContent sub1 = MMContent.createFromString("This is a test11");
sub1.setContentID("1.txt");
content.addSubContent(sub1);
MMContent sub2 = MMContent.createFromString("This is a Test22");
sub2.setContentID("2.txt");
content.addSubContent(sub2);
replace.setContent(content);
MM7RSRes res = mm7Sender.send(replace);
System.out.println("res.statuscode=" + res.getStatusCode() +
";res.statusText=" + res.getStatusText());
}
}
当VASP收到MMSC发送过来的DeliverReq、DeliverReportReq、ReadReplyReq时,可以经过判断后,返回给MMSC一个状态码和状态描述,可以返回的StatusCode和StatusText分别如下:
1000 :成功;
1001 :部分成功;
2000 :客户机错误;
2001 :操作受限;
2002 :地址错误;
2003 :找不到地址;
2004 :多媒体内容被拒绝;
2005 :找不到消息ID;
2006 :找不到链接ID;
2007 :消息格式破坏;
3000 :服务器错误;
3001 :不可接受;
3002 :消息被拒绝;
3003 :不支持多个地址;
4000 :一般服务错误;
4001 :标识不正确;
4002 :版本不支持;
4003 :操作不支持;
4004 :验证错误;
4005 :服务错误;
4006 :无法提供服务;
4007 :服务被拒绝;
5.2关于VASP收到DeliverReq中MMStatus的解释
VASP收到DeliverReq消息后,其中有个MMStatus字段值,是个byte型,因此说明一下具体数字所表示的含义:
0:过期;
1:接收;
2:系统拒绝;
3:用户拒绝;
4:未知;
5:转发;
VASP收到ReadReplyReq消息后,其中有个ReadStatus字段值,是个byte型,因此说明一下具体数字所表示的含义:
0:已读取;
1:未读被删;
2:未知;
VASP要想获得自己当前使用的API的版本号,首先在环境变量中设置mm7api.jar包存放的路径,然后点击开始菜单的运行,输入cmd进入Dos窗口,敲命令:
E:\> java com.cmcc.mm7.vasp.common.RetriveApiVersion回车
可以看到打印信息如下:
当前使用的MM7 API的版本为:V1.5.1_20040512
-100:系统错误;
-101:超时发送失败;
-102:接收失败;
-103:I/O错误;
-104:Socket不通;
-105:待发送的消息为空;
-106:发送消息不正确;
-107:接收消息为空;
-108:Bad Request;
-109:XML解析错误;