版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
...wd......wd......wd...北京移動(dòng)MM7API用戶手冊(cè)版本:V1.0.0中國(guó)移動(dòng)集團(tuán)北京分公司修改記錄文件編號(hào)版本號(hào)擬制人/修改人擬制/修改日期更改理由主要更改內(nèi)容〔寫(xiě)要點(diǎn)即可〕V1.0程廣衛(wèi)2006-12-26修改、整理目錄TOC\o"1-4"\h\z1.概述52.概念52.1企業(yè)代碼52.2服務(wù)代碼62.3業(yè)務(wù)代碼62.3.1上行業(yè)務(wù)的業(yè)務(wù)代碼標(biāo)準(zhǔn)62.3.2下行業(yè)務(wù)的業(yè)務(wù)代碼標(biāo)準(zhǔn)82.4操作指令碼102.5下行業(yè)務(wù)112.6上行業(yè)務(wù)112.7遞送報(bào)告113.安裝方法113.1MM7API的使用113.2配置文件的設(shè)置114.開(kāi)發(fā)方法134.1VASP接收傳送請(qǐng)求〔上行業(yè)務(wù)〕134.1.1方式1:普通應(yīng)用程序中的用法134.1.2方式2:Web應(yīng)用程序中的用法144.2發(fā)送多媒體消息的過(guò)程〔下行業(yè)務(wù)〕154.2.1準(zhǔn)備154.2.2創(chuàng)立待發(fā)送消息164.2.2.1創(chuàng)立提交增值業(yè)務(wù)的多媒體消息〔MM7SubmitReq〕164.2.2.2創(chuàng)立取消多媒體消息〔MM7CancelReq〕184.2.2.3創(chuàng)立替換多媒體消息〔MM7ReplaceReq〕184.2.3創(chuàng)立消息內(nèi)容體194.2.4發(fā)送多媒體消息204.2.5發(fā)送MM7SubmitReq消息到移動(dòng)終端實(shí)例204.3VASP接收傳送消息以及發(fā)送提交消息實(shí)例214.4VASP接收狀態(tài)報(bào)告〔上行業(yè)務(wù)〕244.4.1方式1:普通應(yīng)用程序中的用法244.4.2方式2:Web應(yīng)用程序中的用法254.5VASP接收讀后回復(fù)報(bào)告〔上行業(yè)務(wù)〕264.5.1方式1:普通應(yīng)用程序中的用法264.5.2方式2:Web應(yīng)用程序中的用法274.6發(fā)送取消消息〔下行業(yè)務(wù)〕274.7發(fā)送替換消息〔下行業(yè)務(wù)〕285.開(kāi)發(fā)過(guò)程中需用的一些Status解釋295.1關(guān)于VASP接收到消息后設(shè)置返回響應(yīng)〔Res〕的狀態(tài)碼及狀態(tài)報(bào)告的解釋295.2關(guān)于VASP收到DeliverReq中MMStatus的解釋305.3關(guān)于VASP收到ReadReplyReq中ReadStatus的解釋306.獲取MM7API版本信息的方法307.MM7API返回StatusCode說(shuō)明301.概述該文檔說(shuō)明了企業(yè)如何使用北京移動(dòng)企業(yè)彩信平臺(tái)的的MM7API程序與彩信網(wǎng)關(guān)進(jìn)展對(duì)接,實(shí)現(xiàn)MM7接口的通訊,開(kāi)發(fā)增值業(yè)務(wù)應(yīng)用。該MM7API是使用純Java開(kāi)發(fā)的,使用的JDK的版本為JDK1.4.0。所以使用該API進(jìn)展開(kāi)發(fā)時(shí),要求使用的JDK版本必須是JDK1.4.0以上版本。該API所使用的通訊承載協(xié)議是/1.1??s略詞:MM:MultimediaMessage〔多媒體消息〕MMS:MultimediaMessageService〔多媒體消息服務(wù)〕MMSC:MultimediaMessageServiceCenter〔多媒體消息服務(wù)中心〕VAS:ValueAddedService〔增值業(yè)務(wù)〕SP:ServiceProvider〔業(yè)務(wù)提供商〕:HypertextTransferProtocol〔超文本傳輸協(xié)議〕2.概念2.1企業(yè)代碼企業(yè)代碼是企業(yè)身份的標(biāo)識(shí),網(wǎng)絡(luò)中管理、計(jì)費(fèi)、結(jié)算等均以企業(yè)代碼為依據(jù)。企業(yè)代碼的數(shù)據(jù)需要在EDSMP系統(tǒng)中進(jìn)展配置。在與彩信網(wǎng)關(guān)通訊時(shí),企業(yè)代碼設(shè)置成等同與服務(wù)代碼。2.2服務(wù)代碼服務(wù)代碼是:用戶使用彩信的發(fā)送、上傳等上行類業(yè)務(wù)時(shí),需要輸入的接收方號(hào)碼;或企業(yè)在根據(jù)用戶的點(diǎn)播請(qǐng)求在向用戶發(fā)送、下載等下行類業(yè)務(wù)時(shí),用戶終端中顯示的發(fā)送方的號(hào)碼。服務(wù)代碼的數(shù)據(jù)需要在MMSC上進(jìn)展配置,用于路由的查找和狀態(tài)報(bào)告的返回。服務(wù)代碼以數(shù)字表示。全國(guó)業(yè)務(wù)的服務(wù)代碼長(zhǎng)度為8位,本地業(yè)務(wù)服務(wù)代碼長(zhǎng)度為9位,以“0〞開(kāi)頭的9位數(shù)字。2.3業(yè)務(wù)代碼業(yè)務(wù)代碼表示業(yè)務(wù)類別,業(yè)務(wù)代碼的數(shù)據(jù)需要在EDSMP系統(tǒng)中進(jìn)展配置。在與彩信網(wǎng)關(guān)通訊時(shí),業(yè)務(wù)代碼設(shè)置成等同與服務(wù)代碼。2.4下行業(yè)務(wù)由企業(yè)主動(dòng)發(fā)起的業(yè)務(wù)。這里主要指企業(yè)向彩信網(wǎng)關(guān)發(fā)起的業(yè)務(wù)。2.5上行業(yè)務(wù)企業(yè)被動(dòng)接收的業(yè)務(wù)。這里主要指從彩信網(wǎng)關(guān)那里接收業(yè)務(wù)。2.6遞送報(bào)告報(bào)告是接收方〔終端〕對(duì)接收到消息的處理方式信息。遞送報(bào)告指彩信網(wǎng)關(guān)在獲取這個(gè)報(bào)告后把這個(gè)信息發(fā)送給發(fā)送方〔企業(yè)〕。接收方對(duì)消息的處理可能是接收或者拒絕等。處理流程如下:企業(yè)發(fā)送消息〔通過(guò)彩信網(wǎng)關(guān)〕給終端,并且要求遞送報(bào)告;終端接收到消息后做相應(yīng)處理〔接收或拒絕〕;彩信網(wǎng)關(guān)把終端對(duì)消息的處理信息〔遞送報(bào)告〕發(fā)送給企業(yè)。2.7應(yīng)用標(biāo)識(shí)應(yīng)用標(biāo)識(shí)〔對(duì)應(yīng)消息體MessageClass字段〕,用于標(biāo)識(shí)彩信應(yīng)用類型,或者第三方彩信軟件開(kāi)發(fā)商的軟件標(biāo)識(shí),該標(biāo)識(shí)需經(jīng)過(guò)彩信網(wǎng)關(guān)認(rèn)證,并為企業(yè)分配一個(gè)或者多個(gè)合法標(biāo)識(shí)。3.安裝方法這里主要介紹一下如何將MM7API運(yùn)用到VASP自己開(kāi)發(fā)的程序中以及在配置文件中需要注意修改的地方。3.1MM7API的使用在企業(yè)用Java開(kāi)發(fā)自己程序時(shí),只要將北京移動(dòng)公司提供的mm7api.jar和lib下的所有的Jar文件參加到classpath中即可。3.2配置文件的設(shè)置配置文件mm7Config.xml需要根據(jù)企業(yè)情況進(jìn)展修改。<?xmlversion="1.0"?><vasp:MM7Configxmlns:vasp="://mms.chinamobile/mm7ConfigSchema"> <AuthenticationMode>1</AuthenticationMode> <UserName>admin</UserName> <Password>admin</Password> <MaxMessageSize>100000</MaxMessageSize> <LogPath>c:\vas_log</LogPath> <logLevel>1</logLevel> <LogNum>100</LogNum> <LogInterval>120</LogInterval> <LogSize>200</LogSize> <Charset>GB2312</Charset> <MmscID>1</MmscID> <mmscURL>/VAS/</mmscURL> <mmscIP>221.130.46.238</mmscIP> <UseSSL>true</UseSSL> <ListenIP>192.120.231.228</ListenIP> <ListenPort>80</ListenPort> <BackLog>50</BackLog> <TimeOut>10000</TimeOut> <ReSendCount>5</ReSendCount> </vasp:MM7Config>一些地方需要進(jìn)展修改,下面一一說(shuō)明:<AuthenticationMode>0</AuthenticationMode>表示通訊雙方收發(fā)消息時(shí)是否進(jìn)展鑒權(quán)或進(jìn)展什么樣的鑒權(quán),0表示不鑒權(quán),1表示進(jìn)展基本鑒權(quán)。<UserName>admin</UserName><Password>admin</Password>表示彩信網(wǎng)關(guān)對(duì)企業(yè)進(jìn)展鑒權(quán)時(shí)的用戶名和密碼,同時(shí)也是企業(yè)對(duì)接入的彩信中心進(jìn)展鑒權(quán)時(shí)用戶名和密碼,是雙向的,要企業(yè)和彩信網(wǎng)關(guān)雙方進(jìn)展約定。對(duì)于同一個(gè)企業(yè)不同的彩信發(fā)送帳戶可分別配置,亦可在程序中動(dòng)態(tài)指定。<LogPath>c:\vas_log</LogPath>表示日志存放的路徑,在Windows操作系統(tǒng)下和Linux下是不一樣的,要注意進(jìn)展修改。<mmscURL>/VAS/</mmscURL><mmscIP>221.130.46.238</mmscIP> 分別表示MMSC網(wǎng)關(guān)的URL地址和IP〔或主機(jī)名〕,也需要彩信網(wǎng)關(guān)處得到。這里也可以填成ip:port。例如:192.120.231.180:8080,不填端口號(hào)使用默認(rèn)端口號(hào)80。<ListenIP>192.120.231.228</ListenIP><ListenPort>80</ListenPort>表示當(dāng)企業(yè)用應(yīng)用程序方式進(jìn)展接收消息時(shí)的監(jiān)聽(tīng)地址和端口號(hào)。以上為這個(gè)配置文件中主要需要注意修改的地方,當(dāng)然其他的內(nèi)容也可以進(jìn)展修改,如<logLevel>1</logLevel>可以根據(jù)需要進(jìn)展修改,0表示不產(chǎn)生日志;1表示產(chǎn)生錯(cuò)誤日志;3表示產(chǎn)生信息日志;6表示產(chǎn)生完整信息日志。<TimeOut>90000</TimeOut>表示設(shè)置發(fā)送的超時(shí)時(shí)間,假設(shè)發(fā)送超過(guò)這個(gè)時(shí)間,則自動(dòng)進(jìn)展重新發(fā)送。<ReSendCount>2</ReSendCount>表示設(shè)置重發(fā)的次數(shù),建議在3次以下,一般用2次即可。4.開(kāi)發(fā)方法這里主要介紹從企業(yè)接收彩信網(wǎng)關(guān)發(fā)過(guò)來(lái)的DeliverReq開(kāi)場(chǎng),到企業(yè)發(fā)送SubmitReq到彩信網(wǎng)關(guān)的整個(gè)流程,企業(yè)所需要做的工作。4.1企業(yè)接收傳送請(qǐng)求〔上行業(yè)務(wù)〕企業(yè)接收可以有兩種方式:如果企業(yè)的增值應(yīng)用是一個(gè)普通應(yīng)用程序,可以使用方式1,即接收代理會(huì)自動(dòng)翻開(kāi)一個(gè)監(jiān)聽(tīng)端口,啟動(dòng)一個(gè)監(jiān)聽(tīng)線程來(lái)接收來(lái)自彩信網(wǎng)關(guān)的多媒體消息;如果企業(yè)的增值應(yīng)用是一個(gè)Web應(yīng)用,則可以使用方式2,即接收代理作為一個(gè)Servlet運(yùn)行,并自動(dòng)處理從Request中搜索數(shù)據(jù),并解碼成多媒體消息。4.1.1方式1:普通應(yīng)用程序中的用法publicclassMyReceiverextendsMM7Receiver{ //定義一個(gè)MM7DeliverReq,以便得到彩信網(wǎng)關(guān)發(fā)過(guò)來(lái)的Deliver消息?!脖貍洹硃ublicstaticMM7DeliverReqdeliverReq=newMM7DeliverReq();//Main方法 publicstaticvoidmain(String[]args) {//初始化VASPMM7Configmm7Config=newMM7Config(“./config/mm7Config.xml〞);//設(shè)置ConnConfig.xml文件的路徑mm7Config.setConnConfigName(“./config/ConnConfig.xml〞);//必備//構(gòu)造MyReceiverMyRecieverreceiver=newMyReceiver();myReceiver.setConfig(mm7Config);//必備//創(chuàng)立MM7消息發(fā)送接口MM7Sendermm7Sender=newMM7Sender(mm7Config);//啟動(dòng)接收器receiver.start();for(;;); }publicMM7VASPResdoDeliver(MM7DeliverReqrequest) { /*接收從彩信網(wǎng)關(guān)發(fā)過(guò)來(lái)的傳送消息,以便取出其中的局部值構(gòu)造提交消息或得到一些有用信息,如彩信網(wǎng)關(guān)的標(biāo)識(shí)符等*/deliverReq=request;System.out.println(“收到手機(jī)〞+request.getSender()+“提交的消息,標(biāo)題為:〞+request.getSubject());System.out.println("MMSC的標(biāo)識(shí)符為:"+request.GetMMSRelayServerID()); //SP需要進(jìn)展一些處理,例如構(gòu)建MM7DeliverRes消息,設(shè)置ServiceCode或StatusCodeMM7DeliverResmm7DeliverRes=newMM7DeliverRes();mm7DeliverRes.setServiceCode("服務(wù)代碼");//設(shè)置ServiceCode,可選mm7DeliverRes.setStatusCode(MMConstants.RequestStatus.SUCCESS);/*設(shè)置請(qǐng)求完成狀態(tài),必備,以便說(shuō)明SP已經(jīng)接收到傳送消息。一般設(shè)1000。*/mm7DeliverRes.setStatusText("所用狀態(tài)文本說(shuō)明");/*設(shè)置所用狀態(tài)的文本說(shuō)明,應(yīng)限定請(qǐng)求狀態(tài),可選*/ //返回給MM7API,以便API將MM7DeliverRes返回給MMSC。return(MM7VASPRes)mm7DeliverRes; }}4.1.2方式2:Web應(yīng)用程序中的用法publicclassMyReceiverextendsMM7RecieveServlet{ publicMM7VASPResdoDeliver(MM7DeliverReqrequest) { System.out.println(“收到手機(jī)〞+request.getSender()+“提交的消息,標(biāo)題為:〞+request.getSubject());System.out.println("MMSC的標(biāo)識(shí)符為:"+request.GetMMSRelayServerID()); //SP需要進(jìn)展一些處理,例如構(gòu)建MM7DeliverRes消息,設(shè)置ServiceCode或StatusCodeMM7DeliverResmm7DeliverRes=newMM7DeliverRes();mm7DeliverRes.setServiceCode("服務(wù)代碼");//設(shè)置ServiceCode,可選mm7DeliverRes.setStatusCode(MMConstants.RequestStatus.SUCCESS);/*設(shè)置請(qǐng)求完成狀態(tài),必備,以便說(shuō)明SP已經(jīng)接收到傳送消息。一般設(shè)1000。*/mm7DeliverRes.setStatusText("所用狀態(tài)文本說(shuō)明");/*設(shè)置所用狀態(tài)的文本說(shuō)明,應(yīng)限定請(qǐng)求狀態(tài),可選*///返回給MM7API,以便API將MM7DeliverRes返回給MMSC。return(MM7VASPRes)mm7DeliverRes; }}4.2發(fā)送多媒體消息的過(guò)程〔下行業(yè)務(wù)〕發(fā)送多媒體消息的過(guò)程就是使用MM7API組織消息,并通過(guò)MM7Sender發(fā)送給彩信網(wǎng)關(guān)的過(guò)程。主要步驟如下:4.2.1準(zhǔn)備1.初始化VASP初始化VASP使用的是MM7Config類,該類定義了有關(guān)本VASP和對(duì)應(yīng)的MMSC的配置信息。系統(tǒng)在初始化時(shí),必須對(duì)該對(duì)象進(jìn)展定義,它將用于通信類的控制。MM7Config=newMM7Config("./config/mm7Config.xml");其中mm7Config.xml為配置文件,其格式如下:<?xmlversion="1.0"?><vasp:MM7Configxmlns:vasp="://mms.chinamobile/mm7ConfigSchema"><!--鑒權(quán)方式,1為基本鑒權(quán),2為摘要鑒權(quán),0為不使用鑒權(quán)--> <AuthenticationMode>0</AuthenticationMode><!--設(shè)置用戶名,必須為被授權(quán)的用戶〔4位〕--> <UserName>1111</UserName><!--設(shè)置VASP的密碼〔6位〕--> <Password>11mm7Config111111</Password> <!—設(shè)置允許的最大消息的大小〔以字節(jié)為單位〕,目前最大支持128K--> <MaxMessageSize>100000</MaxMessageSize> <!--設(shè)置日志路徑--> <LogPath>c:\vas_log</LogPath> <!--設(shè)置日志級(jí)別,8個(gè)級(jí)別(0)Nolog〔1〕Severe,〔2〕Warning,〔3〕Info,〔4〕Config,〔5〕Fine,〔6〕Finer,(7)Finest--> <logLevel>1</logLevel> <!--設(shè)置指定用于對(duì)消息編碼的字符集〔缺省值為UTF-8〕--> <Charset>GB2312</Charset> <!--MMSC網(wǎng)關(guān)的URL地址--> <mmscURL>/VAS/</mmscURL> <!--MMSC網(wǎng)關(guān)的IP或主機(jī)名列表--> <mmscIP>221.130.46.238</mmscIP><!—MMSC網(wǎng)關(guān)的序號(hào)<MmscID>910010</MmscID> <!--是否啟用SSL加密,false:不加密,true:SSL加密--><UseSSL>true</UseSSL><!--應(yīng)用程序方式的監(jiān)聽(tīng)I(yíng)P地址--> <ListenIP>102.102.102.102</ListenIP> <!--應(yīng)用程序方式的監(jiān)聽(tīng)端口--> <ListenPort>80</ListenPort> <!--日志文件的最大產(chǎn)生數(shù)量,單位為個(gè),缺省值為100,取值范圍為:1至9999。--><LogNum>100</LogNum><!--日志記錄的產(chǎn)生時(shí)間間隔,單位為分,缺省值為60,取值范圍為:1至1440--> <LogInterval>10</LogInterval><!--日志文件大小的最大限制,單位為K,缺省值為500K,最大值為10000K。--> <LogSize>1000</LogSize></vasp:MM7Config>為了便于企業(yè)多用戶使用,可以在創(chuàng)立mm7Config對(duì)象之后重置用戶名和密碼。MM7Config.setUseName(“yourAccount〞)MM7Config.setPassword(“yourPassword〞);2.創(chuàng)立MM7消息發(fā)送接口:創(chuàng)立發(fā)送接口使用的是MM7Sender類,其中已經(jīng)封裝了和彩信網(wǎng)關(guān)連接的通訊機(jī)制,使用時(shí)只要?jiǎng)?chuàng)立它的一個(gè)帶MM7Config參數(shù)的實(shí)例即可。MM7Sendermm7Sender=newMM7Sender(mm7Config);多線程發(fā)送時(shí)需要為每個(gè)線程創(chuàng)立單獨(dú)的MM7Sender。4.2.2創(chuàng)立待發(fā)送消息創(chuàng)立待發(fā)送消息使用的類均是由MM7Message繼承得到的。主要有MM7SubmitReq、MM7CancelReq、MM7ReplaceReq等類,具體設(shè)置方法將分別進(jìn)展介紹。4.2.2.1創(chuàng)立提交增值業(yè)務(wù)的多媒體消息〔MM7SubmitReq〕1.創(chuàng)立消息對(duì)象MM7SubmitReqsubmitReq=newMM7SubmitReq();2.設(shè)置消息屬性submitReq.setTransactionID("關(guān)聯(lián)標(biāo)識(shí)");/*設(shè)置MM7_submit.REQ/MM7_submit.RES對(duì)的標(biāo)識(shí),必備*/submitReq.setVASPID("企業(yè)代碼");//設(shè)置企業(yè)代碼,值為企業(yè)服務(wù)代碼,必備submitReq.setVASID("服務(wù)代碼");//設(shè)置服務(wù)代碼,即特服號(hào),必備submitReq.setServiceCode("業(yè)務(wù)代碼");//設(shè)置業(yè)務(wù)代碼,值為企業(yè)服務(wù)代碼,必備submitReq.setSenderAddress("MM始發(fā)方的地址");設(shè)置MM始發(fā)方的地址〔填寫(xiě)企業(yè)的服務(wù)代碼,或者填寫(xiě)讓用戶回復(fù)的長(zhǎng)號(hào)碼,長(zhǎng)號(hào)碼構(gòu)成:企業(yè)的服務(wù)代碼+自定義業(yè)務(wù)代碼〕,必備submitReq.setChargedPartyID(“付費(fèi)方手機(jī)號(hào)碼〞);//設(shè)置付費(fèi)方的手機(jī)號(hào)碼,必備submitReq.setTo("接收方地址");//設(shè)置接收方MM的地址submitReq.addTo("單個(gè)承受方地址");//增加單個(gè)承受方地址submitReq.setCc("抄送方地址");//設(shè)置抄送方MM的地址submitReq.addCc("單個(gè)抄送方地址");//增加單個(gè)抄送方地址submitReq.setBcc("密送方地址");//設(shè)置密送方MM的地址submitReq.addBcc("單個(gè)密送方地址");//增加單個(gè)密送方地址注:在設(shè)置或增加To,Cc和Bcc時(shí),至少需要設(shè)置其中一個(gè),只有一個(gè)接收者時(shí)必須是To,這些地址可能存在多個(gè)地址或使用指示使用分發(fā)表的別名??梢詷?biāo)記僅供參考的地址。submitReq.setLinkedID("鏈接標(biāo)識(shí)");/*設(shè)置鏈接標(biāo)識(shí),標(biāo)識(shí)傳送至VASP的上一個(gè)有效消息的對(duì)應(yīng)關(guān)系;可選*/submitReq.setMessageClass("MM的應(yīng)用標(biāo)識(shí)");/*設(shè)置MM的類別,參考應(yīng)用標(biāo)識(shí),必選*/submitReq.setTimeStamp("提交MM的日期和時(shí)間");/*提交MM的時(shí)間和日期〔時(shí)間戳〕,格式如2004-02-09T10:21:07,可選*/submitReq.setExpiryDate("指定超時(shí)時(shí)間");/*設(shè)置MM指定的超時(shí)時(shí)間〔絕對(duì)或相對(duì)時(shí)間〕,可選*/submitReq.setEarliestDeliveryTime("最早理想時(shí)間");/*設(shè)置將MM傳送給接收方的最早理想時(shí)間(絕對(duì)或相對(duì)時(shí)間),如果該時(shí)間晚于當(dāng)前時(shí)間5分鐘之后,彩信網(wǎng)關(guān)將在該時(shí)間將彩信轉(zhuǎn)發(fā),可選*/submitReq.setDeliveryReport("發(fā)送報(bào)告的請(qǐng)求");/*設(shè)置是否需要發(fā)送報(bào)告的請(qǐng)求〔boolean值〕,可選*/submitReq.setReadReply("需要讀取報(bào)告的請(qǐng)求");/*設(shè)置通過(guò)請(qǐng)求傳送一個(gè)讀取報(bào)告進(jìn)展確認(rèn),可選*/submitReq.setPriority("消息的優(yōu)先級(jí)");/*消息的優(yōu)先級(jí)〔重要性〕〔0=最低優(yōu)先級(jí),1=正常,2=緊急〕,byte類型的值,可選*/submitReq.setSubject("多媒體消息的標(biāo)題");/*設(shè)置多媒體消息的標(biāo)題,所有消息的主題會(huì)被增加企業(yè)簡(jiǎn)稱前綴,格式為:“[來(lái)自企業(yè)簡(jiǎn)稱]〞,可選*/submitReq.setAllowAdaptations("VASP是否允許修改內(nèi)容");/*設(shè)置VASP是否允許修改內(nèi)容〔boolean值,默認(rèn)為真〕,可選*/submitReq.setChargedParty("VASP所提交MM的付費(fèi)方");/*設(shè)置VASP所提交MM的付費(fèi)方,例如,發(fā)送方、接收方、發(fā)送方和接收方或兩方均不付費(fèi),可選,0:Sender、1:Recipients、2:Both、3:Neither、4:ThirdParty*/submitReq.setContent("多媒體消息的內(nèi)容");/*設(shè)置多媒體消息的內(nèi)容,可選,注意當(dāng)要設(shè)置時(shí),一定要設(shè)置其ContentType。*/4.2.3創(chuàng)立消息內(nèi)容體每個(gè)消息內(nèi)容體就是一個(gè)MMContent實(shí)例,可以添加多個(gè)消息內(nèi)容體,但是所有消息內(nèi)容體大小之和不能超過(guò)彩信網(wǎng)關(guān)允許大小〔目前最大支持128K〕。MMContentcontent=newMMContent();/**設(shè)置附件的類型,假設(shè)不包含SMIL格式的文件,則設(shè)置類型為MMConstants.ContentType.MULTIPART_MIXED,假設(shè)包含SMIL格式的文件,則設(shè)置類型為MMConstants.ContentType.MULTIPART_RELATED*/4.2.3.1混和消息體content.setContentType(MMConstants.ContentType.MULTIPART_MIXED);/**添加類型為Gif的附件一*/MMContentsub1=MMContent.createFromFile("f:\\yellow.gif");sub1.setContentID("1.gif");//可以不設(shè)/**設(shè)置子附件的類型,有兩種設(shè)置方式:一種是在setContentType里面填寫(xiě)MMConstants.ContentType里面定義的常量,另一種是在setContentType里面填寫(xiě)一個(gè)String的類型,如text/plain等。*/sub1.setContentType(MMConstants.ContentType.GIF);//一定要設(shè)置content.addSubContent(sub1);/**添加類型為T(mén)xt的附件二*/MMContentsub2=MMContent.createFromString("ThisisaTest2!");sub2.setContentType(MMConstants.ContentType.TEXT);//一定要設(shè)置sub2.setContentID("2.txt");content.addSubContent(sub2);/**將附件進(jìn)展設(shè)置,設(shè)需發(fā)送消息為MM7SubmitReq*/submitReq.setContent(content);4.2.3.2動(dòng)畫(huà)消息體MMContentcontent=newMMContent();content.setContentType(MMConstants.ContentType.MULTIPART_RELATED);////第一個(gè)必須是SMIL附件,SMIL文件格式參考《MM消息的組裝方式.pdf》MMContentpresention=MMContent.createFromFile("c:/cmcc/bmcc.smil");presention.setContentType("application/smil;charset=utf-8;name=presentation.smil;");presention.setContentID("presentation.smil");presention.setCharset("GB2312");content.addSubContent(presention);//增加其他子附件,注意:在SMIL文件中出現(xiàn)的幀中用到的附件都必須在后續(xù)代碼中參加,ContentID必須和SMIL中名字完全一致〔區(qū)分大小寫(xiě)〕?!?.content.addSubContent(….);4.2.4發(fā)送多媒體消息調(diào)用MM7Sender的send方法發(fā)送多媒體消息,返回MM7RSRes類型的消息。舉例,發(fā)送MM7SubmitReq類型的消息:MM7RSResres=mm7Sender.send(submitReq);//其它消息與此類似4.2.5發(fā)送MM7SubmitReq消息到移動(dòng)終端實(shí)例packagecomcc.mm7.vasp.conf;importcomcc.mm7.vasp.message.*;importcomcc.mm7.vasp.service.MM7Sender;importcomcc.mm7.vaspmon.*;importjava.io.*;publicclassVaspSendTest{publicstaticvoidmain(String[]args){MM7Configmm7Config=newMM7Config("./config/mm7Config.xml"); mm7Config.setConnConfigName("./config/ConnConfig.xml");mm7Config.setUserName("admin"); mm7Config.setPassword("admin");MM7Sendermm7Sender=newMM7Sender(mm7Config);MM7SubmitReqsubmit=newMM7SubmitReq();StringCorpID="62019451";submit.setTransactionID("11111111");submit.addTo();submit.setVASID(CorpID);submit.setVASPID(CorpID);submit.setServiceCode(CorpID);submit.setSenderAddress(CorpID+〞0001〞);submit.setSubject("測(cè)試");MMContentcontent=newMMContent();content.setContentType(MMConstants.ContentType.MULTIPART_MIXED);MMContentsub1=MMContent.createFromFile("f:\\yellow.gif");sub1.setContentID("1.gif");sub1.setContentType(MMConstants.ContentType.GIF);content.addSubContent(sub1); MMContentsub2=MMContent.createFromString("ThisisaTest2!"); sub2.setContentID("2.txt");sub2.setContentType(MMConstants.ContentType.TEXT); content.addSubContent(sub2);submit.setContent(content);MM7RSResres=mm7Sender.send(submit);System.out.println("res.statuscode="+res.getStatusCode()+";res.statusText="+res.getStatusText());}}4.3VASP接收傳送消息以及發(fā)送提交消息實(shí)例舉一個(gè)實(shí)例說(shuō)明VASP構(gòu)建MM7SubmitReq,發(fā)送給MMSC,并得到返回消息,通過(guò)StatusCode判斷,本次發(fā)送是否成功,假設(shè)成功,得到MessageID,以便以后用于匹配狀態(tài)報(bào)告。publicclassMyReceiverextendsMM7Receiver{ //定義一個(gè)MM7DeliverReq,以便得到MMSC發(fā)過(guò)來(lái)的Deliver消息?!脖貍洹硃ublicstaticMM7DeliverReqdeliverReq=newMM7DeliverReq();//Main方法 publicstaticvoidmain(String[]args) { //初始化VASPMM7Configmm7Config=newMM7Config(“../config/mm7Config.xml〞);MM7Configmm7SendConfig=newMM7Config(“../config/mm7Config.xml〞);//設(shè)置ConnConfig.xml文件的路徑mm7Config.setConnConfigName(“../config/ConnConfig.xml〞);//必備mm7SendConfig.setConnConfigName(“../config/ConnConfig.xml〞);//構(gòu)造MyReceiverMyRecieverreceiver=newMyReceiver();receiver.setConfig(mm7Config);//必備//創(chuàng)立MM7消息發(fā)送接口MM7Sendermm7Sender=newMM7Sender(mm7SendConfig);//啟動(dòng)接收器receiver.start();mm7Config.setUserName("admin");mm7Config.setPassword("admin");//接收MM7DeliverReq完畢,開(kāi)場(chǎng)構(gòu)造MM7SubmitReq//有兩種可能,一種是MM7SubmitReq完全由SP構(gòu)造,另一種是SP用接收到的//MM7DeliverReq的局部?jī)?nèi)容進(jìn)展填充。MM7SubmitReqsubmitReq=newMM7SubmitReq();submitReq.setVASPID("企業(yè)代碼");//必備submitReq.setVASID("企業(yè)服務(wù)代碼");//必備submitReq.setServiceCode("企業(yè)代碼");//必備submitReq.setSenderAddress("MM始發(fā)方的地址");/*必備,假設(shè)想從MM7DeliverReq中獲得,則應(yīng)按下面的方式設(shè): submitReq.setSenderAddress(deliverReq.getSender());*/submitReq.setTo("接收方地址");/*假設(shè)想從MM7DeliverReq中獲得,則應(yīng)按下面的方式設(shè): submitReq.setTo(deliverReq.getTo());*/submitReq.addTo("單個(gè)承受方地址");//增加單個(gè)承受方地址submitReq.setCc("抄送方地址");/*假設(shè)想從MM7DeliverReq中獲得,則應(yīng)按下面的方式設(shè): submitReq.setCc(deliverReq.getCc());*/ submitReq.addCc("單個(gè)抄送方地址");//增加單個(gè)抄送方地址submitReq.setBcc("密送方地址");/*假設(shè)想從MM7DeliverReq中獲得,則應(yīng)按下面的方式設(shè):submitReq.setBcc(deliverReq.getBcc());*/submitReq.addBcc("單個(gè)密送方地址");//增加單個(gè)密送方地址submitReq.setLinkedID("鏈接標(biāo)識(shí)");/*可選,假設(shè)想從MM7DeliverReq中獲得,則應(yīng)按下面的方式設(shè):submitReq.setLinkedID(deliverReq.getLinkedID());*/submitReq.setMessageClass("MM的應(yīng)用標(biāo)識(shí)");/*必選*/submitReq.setTimeStamp("提交MM的日期和時(shí)間");/*格式如2004-02-09T10:21:07,可選*/submitReq.setExpiryDate("指定超時(shí)時(shí)間");/*可選*/submitReq.setEarliestDeliveryTime("最早理想時(shí)間");/*可選*/submitReq.setDeliveryReport("發(fā)送報(bào)告的請(qǐng)求");/*boolean值,可選*/submitReq.setReadReply("需要讀取報(bào)告的請(qǐng)求");/*可選*/submitReq.setReplyCharging("應(yīng)答計(jì)費(fèi)的請(qǐng)求");/*boolean值,可選*/submitReq.setReplyDeadline("提交應(yīng)答的最遲時(shí)間");/*可選*/submitReq.setReplyChargingSize("應(yīng)答MM的最大大小");/*可選*/submitReq.setPriority("消息的優(yōu)先級(jí)");/*0=最低優(yōu)先級(jí),1=正常,2=緊急,byte類型的值,可選,假設(shè)想從MM7DeliverReq中獲得,則應(yīng)按下面的方式設(shè):submitReq.setPriority(deliverReq.getPriority());*/submitReq.setSubject("多媒體消息的標(biāo)題");/*可選,假設(shè)想從MM7DeliverReq中獲得,則應(yīng)按下面的方式設(shè):SubmitReq.setSubject(deliverReq.getSubject());*/submitReq.setAllowAdaptations("VASP是否允許修改內(nèi)容");//boolean值,默認(rèn)為真,可選submitReq.setChargedParty("VASP所提交MM的付費(fèi)方");/*可選*/submitReq.setChargedPartyID("chargedPartyID");/*必備*/submitReq.setDistributionIndicator("是否可重新分發(fā)");/*boolean值,true為可以,false為不可以,可選*///開(kāi)場(chǎng)創(chuàng)立多媒體消息的內(nèi)容/*每個(gè)消息內(nèi)容體就是一個(gè)MMContent實(shí)例,可以添加多個(gè)消息內(nèi)容體,但是所有消息內(nèi)容體大小之和不能超過(guò)MMSC允許大小〔目前最大支持128K〕。*/MMContentcontent=newMMContent();content.setContentType(MMConstants.ContentType.MULTIPART_RELATED);/**添加類型為Gif的附件一*/MMContentsub1=MMContent.createFromFile("f:\\yellow.gif");sub1.setContentID("1.gif");//可以不設(shè)sub1.setContentType(MMConstants.ContentType.GIF);/*可以不設(shè),但這個(gè)不設(shè)的話,ContentID必須設(shè)*/content.addSubContent(sub1);/**添加類型為T(mén)xt的附件二*/MMContentsub2=MMContent.createFromString("ThisisaTest2!");sub2.setContentID("2.txt");sub2.setContentType(MMConstants.ContentType.TEXT);content.addSubContent(sub2);/**將附件進(jìn)展設(shè)置*/submitReq.setContent("多媒體消息的內(nèi)容");/*可選,也可以從MM7DeliverReq中獲得多媒體消息的內(nèi)容,submitReq.setContent(deliverReq.getContent());*//*發(fā)送MM7SubmitReq消息,正確返回MM7SubmitRes消息,錯(cuò)誤返回MM7RSError消息,其它消息與此類似*/MM7RSResres=mm7Sender.send(submitReq); /*可以根據(jù)StatusCode來(lái)判斷本次發(fā)送是否成功,假設(shè)成功能得到MessageID等信息。StatusCode可能得到的值,具體可見(jiàn)本文中的請(qǐng)求狀態(tài)碼說(shuō)明。*/ if(resinstanceofMM7SubmitRes){ MM7SubmitRessubmitRes=(MM7SubmitRes)res; System.out.println(“StatusCode=〞+submitRes.getStatusCode()); System.out.println(“StatusText=〞+submitRes.getStatusText()); System.out.println(“MessageID=〞+submitRes.getMessageID()); } }publicMM7VASPResdoDeliver(MM7DeliverReqrequest) { /*接收從MMSC發(fā)過(guò)來(lái)的傳送消息,以便取出其中的局部值構(gòu)造提交消息或得到一些有用信息,如MMSC的標(biāo)識(shí)符等*/deliverReq=request;System.out.println(“收到手機(jī)〞+request.getSender()+“提交的消息,標(biāo)題為:〞+request.getSubject());System.out.println("MMSC的標(biāo)識(shí)符為:"+request.GetMMSRelayServerID()); //SP需要進(jìn)展一些處理,例如構(gòu)建MM7DeliverRes消息,設(shè)置ServiceCode或StatusCodeMM7DeliverResmm7DeliverRes=newMM7DeliverRes();mm7DeliverRes.setServiceCode("服務(wù)代碼");//可選mm7DeliverRes.setStatusCode(MMConstants.RequestStatus.SUCCESS);/*必備,以便說(shuō)明SP已經(jīng)接收到傳送消息。成功可設(shè)1000。*/mm7DeliverRes.setStatusText("所用狀態(tài)文本說(shuō)明");/*可選*/ //返回給MM7API,以便API將MM7DeliverRes返回給MMSC。return(MM7VASPRes)mm7DeliverRes; }}4.4VASP接收狀態(tài)報(bào)告〔上行業(yè)務(wù)〕當(dāng)VASP在發(fā)送MM7SubmitReq給MMSC時(shí)設(shè)置需要發(fā)送狀態(tài)報(bào)告的請(qǐng)求為true時(shí),MMSC在收到MM7SubmitReq后,會(huì)發(fā)送狀態(tài)報(bào)告給VASP,此時(shí)VASP可以進(jìn)展接收。接收方式和接收傳送消息一樣,也有兩種方式:4.4.1方式1:普通應(yīng)用程序中的用法publicclassMyReceiverextendsMM7Receiver{publicMM7DeliveryReportReqdeliveryReportReq;//Main方法 publicstaticvoidmain(String[]args) { //初始化VASPMM7Configmm7Config=newMM7Config(“./config/mm7Config.xml〞);//設(shè)置ConnConfig.xml文件的路徑mm7Config.setConnConfigName(“../config/ConnConfig.xml〞);//必備//構(gòu)造MyReceiverMyRecieverreceiver=newMyReceiver();receiver.setConfig(mm7Config);//必備//啟動(dòng)接收器receiver.start();for(;;); }publicMM7VASPResdoDeliveryReport(MM7DeliveryReportReqrequest) {/*接收從MMSC發(fā)過(guò)來(lái)的狀態(tài)報(bào)告,以便得到一些有用信息,如MMSC的標(biāo)識(shí)符等*/ deliveryReportReq=request;System.out.println(“收到發(fā)送方〞+request.getSender()+“提交的消息,其MessageID為:〞+request.getMessageID());System.out.println("MMSC的標(biāo)識(shí)符為:"+request.getMMSRelayServerID()); //SP需要進(jìn)展一些處理,例如構(gòu)建MM7DeliveryReportRes消息,返回給MM7APIMM7DeliveryReportResmm7DeliveryReportRes=newMM7DeliveryReportRes();mm7DeliveryR
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 宿舍衛(wèi)生共同管理制度
- 衛(wèi)生院衛(wèi)生整改報(bào)告制度
- 運(yùn)營(yíng)資料管理制度
- 食堂衛(wèi)生監(jiān)督考核制度
- 農(nóng)村集體合作社財(cái)務(wù)制度
- 運(yùn)營(yíng)組長(zhǎng)薪酬管理制度
- 鄉(xiāng)鎮(zhèn)中心校財(cái)務(wù)制度
- 衛(wèi)生院消毒管理規(guī)章制度
- 足療行業(yè)衛(wèi)生管理制度
- 重癥醫(yī)學(xué)科衛(wèi)生制度
- 電池回收廠房建設(shè)方案(3篇)
- 保函管理辦法公司
- 幼兒游戲評(píng)價(jià)的可視化研究
- 果樹(shù)賠賞協(xié)議書(shū)
- 基底節(jié)出血的護(hù)理查房
- 2025年廣東省中考物理試題卷(含答案)
- 金華東陽(yáng)市國(guó)有企業(yè)招聘A類工作人員筆試真題2024
- 2025年6月29日貴州省政府辦公廳遴選筆試真題及答案解析
- 2025年湖南省中考數(shù)學(xué)真題試卷及答案解析
- DB32/T 3518-2019西蘭花速凍技術(shù)規(guī)程
- 急救中心工作匯報(bào)
評(píng)論
0/150
提交評(píng)論