中國聯(lián)通彩信業(yè)務(wù)管理平臺SP開發(fā)規(guī)范v2.0-修訂稿2.doc
下載文檔
上傳人:職z****i
編號:1326897
2025-03-04
38頁
860KB
1、中國聯(lián)通公司企業(yè)標(biāo)準(zhǔn)QB/CU 0192006中國聯(lián)通數(shù)字蜂窩移動通信網(wǎng)多媒體消息業(yè)務(wù)(MMS)CP/SP業(yè)務(wù)開發(fā)規(guī)范China Unicom Digital Cellular Mobile Communication Network CP/SP Service Development Specification for Multimedia MessageService(V2.0)中國聯(lián)通公司發(fā)布目次 前言. II 1 范圍 (1) 2 規(guī)范性引用文件 (1) 3 縮略語 (1) 4 CP/SP業(yè)務(wù)開發(fā)方法 (2) 4.1 彩信業(yè)務(wù)下行接口 (2) 4.2 彩信狀態(tài)報告上行接口 (8) 4.2、3 定制關(guān)系實時同步接口 (11) 4.4 定制關(guān)系FTP同步接口 (14) 4.5 點(diǎn)播上行接口 (18) 附錄A (21) 附錄B (22) 前言 本規(guī)范規(guī)定了中國聯(lián)通多媒體消息業(yè)務(wù)的CP/SP業(yè)務(wù)開發(fā)方法,為CP/SP開發(fā)多媒體消息業(yè)務(wù)增值應(yīng)用并將自己的內(nèi)容與服務(wù)接入MMSMP提供開發(fā)依據(jù)。 本規(guī)范附錄A為API開發(fā)文檔,附錄B為中國聯(lián)通彩信業(yè)務(wù)管理平臺介紹文檔。 本規(guī)范版本為V2.0。 本規(guī)范主要起草單位: 本標(biāo)準(zhǔn)主要起草人: 本規(guī)范的修改和解釋權(quán)屬中國聯(lián)通公司產(chǎn)品創(chuàng)新部。 中國聯(lián)通多媒體消息業(yè)務(wù)(MMS)CP/SP業(yè)務(wù)開發(fā)規(guī)范 1 范圍 本規(guī)范適用于CP/SP開發(fā)多媒體消息業(yè)務(wù)應(yīng)用并3、與彩信業(yè)務(wù)管理平臺進(jìn)行對接,以保證各CP/SP通過標(biāo)準(zhǔn)的MM7等協(xié)議接口將自己的內(nèi)容與服務(wù)接入彩信業(yè)務(wù)管理平臺。 2 規(guī)范性引用文件 下列文件中的條款通過本標(biāo)準(zhǔn)的引用而成為本標(biāo)準(zhǔn)的條款。凡是注日期的引用文件,其隨后所有的修改單(不包括勘誤的內(nèi)容)或修訂版均不適用于本標(biāo)準(zhǔn),然而,鼓勵根據(jù)本標(biāo)準(zhǔn)達(dá)成協(xié)議的各方研究是否可使用這些文件的最新版本。凡是不注日期的引用文件,其最新版本適用于本標(biāo)準(zhǔn)。 1中國聯(lián)通數(shù)字蜂窩移動通信網(wǎng)多媒體消息業(yè)務(wù)(MMS)規(guī)范(V1.0) 2中國聯(lián)通數(shù)字蜂窩移動通信網(wǎng)多媒體消息業(yè)務(wù)(MMS)設(shè)備規(guī)范(V1.0) 3中國聯(lián)通數(shù)字蜂窩移動通信網(wǎng)多媒體消息業(yè)務(wù)(MMS)規(guī)范(V1.04、) 3 縮略語 4 CP/SP業(yè)務(wù)開發(fā)方法 4.1 彩信業(yè)務(wù)下行接口 4.1.1 接口描述 增值服務(wù)提供商(SP)下行彩信必須按照中國聯(lián)通多媒體消息業(yè)務(wù)相關(guān)規(guī)范來實現(xiàn)彩信業(yè)務(wù)下發(fā)和返回消息的處理。 增值服務(wù)提供商(SP)通過發(fā)送MM7_submit.REQ消息,將一個多媒體消息(MM)提交給MMSMP。可以將消息發(fā)往一個或多個用戶或發(fā)往一個分發(fā)表。如果MMSMP接受提交,則MMSMP必須發(fā)送帶一個“成功”狀態(tài)的MM7_submit.RES給SP。這并不意味著該多媒體消息(MM)已真正傳送至目的地,它只是表明請求已接受。 4.1.2 流程圖 4.1.3 接口規(guī)范 溫馨推薦您可前往百度文庫小程序享5、受更優(yōu)閱讀體驗 不去了立即體驗表4.1.3.1:MM7_submit.REQ中的信息單元 表4.1.3.2:MM7_submit.RES中的信息單元 4.1.4 代碼樣例 下面給出的是使用vassdk_soap.jar開發(fā)簡單的CP/SP端程序的樣例:package com.cmcc.mm7.SP.demo; / import from mms import com.cmcc.mm7.SP.pdu.*; import com.cmcc.mm7.SP.message.*; import com.cmcc.mm7.SP.service.*; import com.cmcc.mm7.SP.commo6、n.*; import com.cmcc.mm7.SP.conf.*; / import from jdk import java.util.*; import java.io.*; public class MainTest extends MM7Receiver HashMap transIDMap = new HashMap(); public MainTest(MM7Config config) super.setConfig(config); /* * 處理Deliver消息,由子類實現(xiàn) * * param request * return MM7SPRes */ public MM7、7SPRes doDeliver(MM7DeliverReq request) / 打印請求消息 System.out.println(NormalReceiverTest DeliverReq:); System.out.println(request.toString(); / 構(gòu)造響應(yīng)消息 MM7DeliverRes deliverRes = new MM7DeliverRes(); deliverRes.setServiceCode(service code 000); deliverRes.setStatus(1000); deliverRes.setStatusText(statu8、stext); / 這個TransactionID保證MMSC能成功處理響應(yīng)消息 deliverRes.setTransactionId(request.getTransactionId(); return deliverRes; /* * 處理DeliveryReport消息,由子類實現(xiàn) * * param request * return MM7SPRes */ public MM7SPRes doDeliveryReport(MM7DeliveryReportReq request) / 打印請求消息 System.out.println(NormalReceiverTest Deliv9、eryReport:); System.out.println(request.toString(); /根據(jù)transID判斷 if (transIDMap.containsKey(request.getTransactionId() System.out.println(Get Deliver.Req message, TransactionID: + request.getTransactionId(); / 構(gòu)造響應(yīng)消息 MM7DeliveryReportRes deliveryReportRes = new MM7DeliveryReportRes(); deliveryReport10、Res.setStatus(1000); deliveryReportRes.setStatusText(delivery report text); / 這個TransactionID保證MMSC能成功處理響應(yīng)消息 deliveryReportRes.setTransactionId(request.getTransactionId(); /將消息從MAP中刪除 transIDMap.remove(request.getTransactionId(); return deliveryReportRes; else System.out.println(Get error Deliver.Re11、q message, TransactionID: + request.getTransactionId(); MM7SPErrorRes errorRes = new MM7SPErrorRes(3001, Error Deliver.Req message); return errorRes; /* * 處理ReadReply消息,由子類實現(xiàn) * * param reqeust * return MM7SPRes */ public MM7SPRes doReadReply(MM7ReadReplyReq request) / 打印請求消息 System.out.println(Norma12、lReceiverTest ReadReply:); System.out.println(request.toString(); / 構(gòu)造響應(yīng)消息 MM7ReadReplyRes readReplyRes = new MM7ReadReplyRes(); readReplyRes.setStatus(1000); readReplyRes.setStatusText(status text.); / 這個TransactionID保證MMSC能成功處理響應(yīng)消息 readReplyRes.setTransactionId(request.getTransactionId(); return r13、eadReplyRes; public void main(String args) /初始化配置參數(shù) MM7Config mm7Config = new MM7Config( F:V100R00101.CI1.5 Codevasapimm7Config.xml); /啟動一個接收線程 MainTest receiver = new MainTest(mm7Config); receiver.setReceiver(receiver); receiver.start(); MM7Sender sender = new MM7Sender(mm7Config); /創(chuàng)建MM7Sender對象 /14、 可以根據(jù)需要增加一個循環(huán),自動發(fā)送 MM7SubmitReq req = new MM7SubmitReq(); /構(gòu)造消息 req.setSPID(111111); req.setVASID(2222); req.setSender(2222333); / VASID + ServiceCode req.addTo(61234567); req.setServiceCode(333); req.setLinkID(9999); req.setMessageClass(Personal); req.setDate(new Date(); req.setExpiry(10000000); re15、q.setDeliveryReport(true); req.setReadReply(true); req.setPriority( (byte) 0); req.setReplyDeadline(new Date(); req.setSubject(This is submitReq); req.setAdaptations(true); req.setChargedParty(MMConstants.ChargedParty.SENDER); req.setDistributionIndicator(true); / 先構(gòu)造一個媒體容器 MMContent mainContent = n16、ew MMContent(); mainContent.setContentType(MMConstants.ContentType.MULTIPART_RELATED); mainContent.setContentID(aaaaaa); req.setContent(mainContent); / 構(gòu)造一個媒體,此處添加的只是一個文本串 MMContent mmc = new MMContent(); mmc.setData(new String(wwwwwwwww).getBytes(); /添加內(nèi)容體 mmc.setContentType(text/plain); /設(shè)置內(nèi)容體格式 m17、mc.setContentID(aaID); mainContent.addSubContent(mmc); /將創(chuàng)建好的內(nèi)容添加到消息 /將消息以TransID為主鍵保存,接收線程接收到遞送報告時,再將該消息從map中刪除。 transIDMap.put(req.getTransactionId(), req); MM7Message rsp = sender.send(req); if (rsp.getStatus() != MMConstants.RequestStatus.SUCCESS) /發(fā)送失敗處理 4.2 彩信狀態(tài)報告上行接口 4.2.1 接口描述 本接口實現(xiàn)了MMSMP將消息18、傳送給SP進(jìn)行處理的情況。MMSMP通過將MM作為 MM7_deliver.REQ的有效負(fù)荷,將消息傳送給SP。這些消息可能發(fā)自MMS用戶代理、外部應(yīng)用程序或外部MMSE。傳送的東西可能包括一個SP用于關(guān)聯(lián)消息響應(yīng)的請求標(biāo)識。SP應(yīng)響應(yīng)MM7_deliver.RES 消息,表明已成功接收并將處理該消息。 4.2.2 流程圖 4.2.3 接口規(guī)范 表4.2.3.1:MM7_delivery_report.REQ中的信息單元 表4.2.3.2:MM7_delivery_report.RES中的信息單元 4.2.4 代碼示例 public MM7SPRes doDeliveryReport(MM7D19、eliveryReportReq request) logger.info(request.getRecipient()=+request.getRecipient(); String phone = request.getRecipient(); String str_phone = phone; if (phone.startsWith(+86) str_phone = phone.substring(3); else if (phone.startsWith(86) str_phone = phone.substring(2); MO_ReportMessage mtReport = n20、ew MO_ReportMessage(); mtReport.setCorrelator(request.getMessageID()+str_phone); mtReport.setStatus(+request.getMMStatus(); mtReport.setSourceType(SourceValue.ISAG); logger.info(request); MM7DeliveryReportRes mm7DeliveryReportRes = new MM7DeliveryReportRes(); mm7DeliveryReportRes.setStatusCode(MMCon21、stants.RequestStatus.SUCCESS); mm7DeliveryReportRes.setTransactionID(request.getTransactionID(); return (MM7SPRes) mm7DeliveryReportRes; 4.3 定制關(guān)系實時同步接口 4.3.1 接口描述 用戶訂購關(guān)系發(fā)生變化時以及用戶點(diǎn)播SP業(yè)務(wù)時,MMSMP通過此接口實時通知SP。 批開、批退時不采用此接口通知SP,通過FTP訂購關(guān)系同步接口通知SP。 通知失敗時,根據(jù)配置,MMSMP可進(jìn)行重試,重試失敗則記錄日志,之后通過FTP訂購關(guān)系同步接口進(jìn)行補(bǔ)償。 目前MMSMP22、采用webservice方式實時通知SP 4.3.2 流程圖 4.3.3 接口規(guī)范 4.3.3.1 訂購關(guān)系通知SP請求(OrderRelationUpdateNotifyReq) 4.3.3.2 訂購關(guān)系通知SP 響應(yīng)(OrderRelationUpdateNotifyRsp ) 4.3.4 參考WSDL 目前與MMSMP 接口規(guī)范為VAC0214版 VAC 0214版 4.4 定制關(guān)系FTP 同步接口 4.4.1 接口描述 該接口用于MMSMP 與SP 每天稽核增量訂購關(guān)系。包括批量定購和退訂。 MMSMP 將每天增量文件放到MMSMP 為SP 提供的文件服務(wù)器的目錄下。雙方通過文件傳輸實23、現(xiàn)接口。文件服務(wù)器上設(shè)定具有對相應(yīng)目錄存取權(quán)限的用戶。MMSMP 為SP 分配具有讀寫文件權(quán)限的用戶和密碼。 系統(tǒng)于每天凌晨1:00進(jìn)行稽核文件資料同步。資料同步周期應(yīng)具有根據(jù)最新規(guī)定進(jìn)行可調(diào)的能力。 文件采用GBK 編碼格式, 文件體不定長,文件體各屬性間使用t 分隔,在生成記錄時若相應(yīng)的屬性值為空,直接用分隔符隔開,分隔符之間無其他符號。 文件體中一行作為一條記錄,各條記錄之間用換行符n作為分隔并在文件中連續(xù)書寫。 文件頭定長,各屬性間無分隔符。 文件的維護(hù)由MMSMP負(fù)責(zé)。 4.4.2 文件規(guī)范 文件目錄 /VAC/SubscribeInfo/ 文件命名: SubscribeInfo+S24、PID+yyyyMMddHHmm+xxx+nnnn.txt SPID 八位,不足八位,左補(bǔ)零 文件產(chǎn)生的時間(12位yyyyMMddHHmm精確到年月日時分) xxx為省分代碼。 nnnn 是4位序列號,每天從“0001”開始,到達(dá)”9999”后又從“0001”開始。 4.4.3 接口規(guī)范 4.4.3.1 請求文件頭(定長) 4.4.3.2 文件體 4.4.4 代碼示例 OrderRelation or = new OrderRelation(); / or 定制關(guān)系保存的對象 or.recordSequenceId = strs0.trim(); or.userIdType= Integer25、.parseInt(.equals(strs1.trim() ? 0 : strs1.trim(); or.userId= strs2.trim(); or.serviceType= strs3.trim(); or.spId= strs4.trim(); or.productId= strs5.trim(); or.updateType= Integer.parseInt(.equals(strs6.trim() ? 0 : strs6.trim(); or.updateTime= strs7.trim(); or.updateDesc= strs8.trim(); or.linkId= s26、trs9.trim(); or.content= strs10.trim(); or.effectiveDate= strs11.trim(); or.expireDate= strs12.trim(); or.time_stamp= strs13.trim(); or.encodeStr= strs14.trim(); 4.5 點(diǎn)播上行接口 4.5.1 接口描述 此接口MMSMP向SP發(fā)送點(diǎn)播的通知,協(xié)議遵循短消息業(yè)務(wù)聯(lián)網(wǎng)SGIP協(xié)議1.2版,并基于專用SGIP的消息定義進(jìn)行傳輸。MMSMP會在消息體將Linkid,用戶點(diǎn)播字,上行的接入號碼和用戶號碼等信息發(fā)送給SP,SP通過產(chǎn)品的點(diǎn)播指令27、字的模糊規(guī)則,查詢出產(chǎn)品ID,并執(zhí)行下行點(diǎn)播操作。 4.5.2 流程圖 4.5.3 協(xié)議方式 采用專用SGIP方式承載時,通信雙方互為客戶端和服務(wù)器端。當(dāng)客戶端要發(fā)送命令時,主動向服務(wù)器端建立連接,然后向服務(wù)器端發(fā)送命令,并接收應(yīng)答;服務(wù)器端從客戶端接收命令,返回應(yīng)答。連接建立以后,客戶端可以連續(xù)發(fā)送多條命令。命令發(fā)送完并接收到所有應(yīng)答后,客戶端應(yīng)該主動斷開連接。但是,命令及其應(yīng)答之間的時間間隔最大不能超過30秒(默認(rèn),可配置)(如果命令應(yīng)答時間超過最大等待時間,則要求客戶端重發(fā)該條命令,重發(fā)機(jī)制參見業(yè)務(wù)聯(lián)網(wǎng)規(guī)范有關(guān)內(nèi)容),且待應(yīng)答的命令不得超過32條(可以根據(jù)線路的質(zhì)量和服務(wù)器的處理能力配置28、)。而且,如果服務(wù)器端檢測出一條連接長時間空閑(默認(rèn)60秒,可配置),可以主動斷開該連接。如果需要,客戶端可以同時向一個服務(wù)器端建立多個連接(SMG與單個其他SMG最多不能建立超過15個連接,對與之相連的單個SP的最大連接數(shù)視具體情況而定)。采用專用SGIP承載方式時,SMG和SMG、SP和SMG之間使用的端口號是8801,GNS監(jiān)聽SMG的端口號為8802,SMG監(jiān)聽GNS的端口號為8803,主GNS和備用GNS之間的端口號為8804,SMG之間的測試用端口號為8810。 4.5.4 接口規(guī)范 4.5.4.1 Deliver命令的請求內(nèi)容 4.5.4.2 Deliver命令的應(yīng)答內(nèi)容 4.529、.5 示例代碼 public class SmsSender extends SGIPSMSProxy public SGIP_Command onDeliver(final SGIP_Deliver msg) logger.info(receive Message: +msg); logger.info(receive Message seq: +msg.getSeqno_1()+/+msg.getSeqno_2()+/+msg.getSeqno_3(); try new Thread(new Runnable() public void run() ProcessRecvDeliverMsg(msg); /處理接受信息 ).start(); catch(Exception e) logger.info(onDeliver error.); return super.onDeliver(msg); /return null; 附錄 A MM7API開發(fā)文檔 API開發(fā)文檔.zip 彩信業(yè)務(wù)管理平臺介紹文檔
CAD圖紙
上傳時間:2023-12-21
28份
運(yùn)營管理
上傳時間:2022-06-28
6份
地產(chǎn)商業(yè)
上傳時間:2022-04-29
23份
培訓(xùn)課件
上傳時間:2021-01-20
81份
管理運(yùn)營
上傳時間:2024-12-17
7份