版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
文章工具推薦給朋友?―打印文章文章工具推薦給朋友?―打印文章作者:StefanoGioia,TomaszRadziszewski瀏覽次數(shù):急1399本文關(guān)鍵字:sip,WebLogicCommunicationsPlatform,WebLogicServer,BEAWorkshop,BridgeWaterSystems,WebLogicCommunicationsPlatform,計(jì)費(fèi),交易,控制,電信摘要計(jì)費(fèi)對(duì)于任何服務(wù)提供商而言都是必不可少的功能,電信運(yùn)營(yíng)商也不例外。因此,任何網(wǎng)絡(luò)都需要包含一組節(jié)點(diǎn)來專門實(shí)現(xiàn)這一任務(wù)。計(jì)費(fèi)可以通過預(yù)付費(fèi)(Prepaid)和后付費(fèi)(Postpaid)這兩種方式實(shí)現(xiàn)。雖然預(yù)付費(fèi)解決方案正在日趨盛行,不過后付費(fèi)的解決方案仍然具有廣泛的普及程度。因此,任何面向商業(yè)應(yīng)用的電信網(wǎng)絡(luò)都必須同時(shí)實(shí)現(xiàn)這兩種方案。此外,隨著以IT為基礎(chǔ)的服務(wù)領(lǐng)域突飛猛進(jìn),電話通信之外的服務(wù)也如雨后春筍般涌出并不斷發(fā)展演進(jìn)。視頻電話、無(wú)線接入和隨需應(yīng)變視頻都是典型的例子。所有這些服務(wù)都需要找到一種計(jì)費(fèi)方式。本文將探討如何使用各種IMS架構(gòu)來實(shí)現(xiàn)計(jì)費(fèi)功能。文章還將描述如何使用BEAWebLogicSIPServer和Diameter協(xié)議實(shí)現(xiàn)這些架構(gòu)。IMS計(jì)費(fèi)架構(gòu)IP多媒體子系統(tǒng)(IPMultimediaSubsystem,IMS)網(wǎng)絡(luò)使用的是3GPP所定義的架構(gòu)。圖1顯示了這一架構(gòu)中的計(jì)費(fèi)功能。1.IMS計(jì)費(fèi)架構(gòu)(單擊圖片查看大圖)圖1中的元素可以實(shí)現(xiàn)預(yù)付費(fèi)和后付費(fèi)這兩種計(jì)費(fèi)功能。這兩種看上去類似的模式實(shí)際上從網(wǎng)絡(luò)視角來說是不同的。其中最大的差異是:當(dāng)用戶想要使用預(yù)付費(fèi)服務(wù)時(shí),網(wǎng)絡(luò)會(huì)根據(jù)用戶的當(dāng)前賬戶余額確定是否應(yīng)該允許該操作。預(yù)付費(fèi)系統(tǒng)具有以下幾個(gè)要點(diǎn):?在使用各服務(wù)之前,必須獲得計(jì)費(fèi)系統(tǒng)的許可(我們稱之為交易準(zhǔn)許[creditauthorization])o?要決定是否應(yīng)該許可該服務(wù),計(jì)費(fèi)系統(tǒng)必須能夠?qū)崟r(shí)獲取用戶賬戶余額的信息。在后付費(fèi)系統(tǒng)中,通常通過收集服務(wù)使用情況的數(shù)據(jù)并于月底處理(成批處理)這些數(shù)據(jù)來實(shí)現(xiàn)這一目的。不過在預(yù)付費(fèi)系統(tǒng)中卻不能采用這種方法。在預(yù)付費(fèi)系統(tǒng)中,使用任何服務(wù)都必須立即扣除賬戶的交易金額。?計(jì)費(fèi)系統(tǒng)未在適當(dāng)?shù)臅r(shí)間內(nèi)響應(yīng)時(shí),必須使用一種高效的方式來處理這種情況;不能讓用戶無(wú)限制地等待。?用戶必須能夠查詢賬戶的余額。由于預(yù)付費(fèi)系統(tǒng)要求能夠?qū)崟r(shí)更新賬號(hào)的信息,因此這種方式也被稱作在線計(jì)費(fèi)。后付費(fèi)的方式則被稱作離線計(jì)費(fèi)。離線計(jì)費(fèi)離線計(jì)費(fèi)的框架如圖2所示。圖2.離線計(jì)費(fèi)架構(gòu)(單擊圖片查看大圖)該架構(gòu)由以下這些節(jié)點(diǎn)組成:計(jì)費(fèi)觸發(fā)函數(shù)(ChargingTriggerFunction,CTF) 服務(wù)元素(ServiceElement)的組成部分,負(fù)責(zé)監(jiān)控服務(wù)使用并以此為依據(jù)生成計(jì)費(fèi)事件。計(jì)費(fèi)數(shù)據(jù)函數(shù)(ChargingDataFunction,CDF) 根據(jù)從CTF接收到的事件生成計(jì)費(fèi)數(shù)據(jù)記錄(ChargingDataRecord,CDR),并將它們傳遞給CGF。計(jì)費(fèi)網(wǎng)關(guān)函數(shù)(ChargingGatewayFunction,CGF) 負(fù)責(zé)將CDR持久存儲(chǔ)到數(shù)據(jù)庫(kù)以及一些預(yù)處理和錯(cuò)誤檢查;它還負(fù)責(zé)從許多CDF收集CDR并將其發(fā)送給賬單系統(tǒng)。?賬單系統(tǒng)(BillingSystem) 處理CDR并創(chuàng)建一些最終輸出信息,比如可使用這些信息為用戶開發(fā)票。在這個(gè)架構(gòu)中,BEAWebLogicSIPServer連同CFT的角色是服務(wù)元素。在線計(jì)費(fèi)圖3顯示了在線計(jì)費(fèi)架構(gòu)中所使用的節(jié)點(diǎn)。圖3.在線計(jì)費(fèi)架構(gòu)(單擊圖片查看大圖)以下是這些節(jié)點(diǎn)的描述:計(jì)費(fèi)觸發(fā)函數(shù)(ChargingTriggerFunction,CTF) 與離線計(jì)費(fèi)架構(gòu)中所使用的CTF類似,不過此處的CTF需要在用戶賬戶余額不足時(shí)中斷服務(wù)。在線計(jì)費(fèi)系統(tǒng)(OnlineChargingSystem,OCS) 實(shí)現(xiàn)在線計(jì)費(fèi)函數(shù)(OnlineChargingFunction,OCF),它需要依賴以下這些函數(shù):賬戶余額管理函數(shù)(AccountBalanceManagementFunction,ABMF) 存儲(chǔ)和更新用戶賬戶的存款信息。?估價(jià)函數(shù)(RatingFunction,RF) 根據(jù)網(wǎng)絡(luò)運(yùn)營(yíng)商所定義的價(jià)目表確定使用服務(wù)的費(fèi)用。在這個(gè)架構(gòu)中,BEAWebLogicSIPServer連同CTF的角色是服務(wù)元素(ServiceElement)oIMS計(jì)費(fèi)信息關(guān)聯(lián)如今出現(xiàn)了許多不同的架構(gòu)和網(wǎng)絡(luò);為各個(gè)網(wǎng)絡(luò)實(shí)體(如SIPProxy)提供正確的計(jì)費(fèi)元素地址是一種明確的需求。3GPP定義了兩種類型的計(jì)費(fèi)元素,即CDF和OCS。因此,擁有這些元素的多個(gè)實(shí)例是可行的。識(shí)別這些元素的方法是在SIP消息中添加一個(gè)頭部用于傳遞地址。SIP信令中傳送的離線和在線函數(shù)地址被編碼到P-Charging-Function-Addresses中。P-Charging-Function-Addresses頭部含有CCF和ECF參數(shù)。此處是頭部的一個(gè)示例:P-Charging-Function-Addresses:ccf=;ecf=識(shí)別和關(guān)聯(lián)計(jì)費(fèi)信息也是有必要的。IMS計(jì)費(fèi)標(biāo)識(shí)符(IMSChargingIdentifier,ICID)可以解決這個(gè)問題。ICID在同一會(huì)話或事務(wù)的IMS元素之間共享。ICID參數(shù)存儲(chǔ)在SIP消息的P-Charging-Vector頭部中,以在網(wǎng)絡(luò)上傳輸。這個(gè)頭部是由P-CSCF插入的,并且包含以下參數(shù)(按規(guī)格描述):IMS計(jì)費(fèi)標(biāo)識(shí)符(IMSChargingIdentifier,ICID)——必需。?訪問網(wǎng)絡(luò)計(jì)費(fèi)標(biāo)識(shí)符——用于使用IBM計(jì)費(fèi)數(shù)據(jù)關(guān)聯(lián)訪問網(wǎng)絡(luò)計(jì)費(fèi)數(shù)據(jù)。InterOperatorIdentifier(IOI) 識(shí)別會(huì)話或事務(wù)中的發(fā)信(orig-ioi)網(wǎng)絡(luò)和收信網(wǎng)絡(luò)(term-ioi)。該參數(shù)由S-CSCF插入,當(dāng)請(qǐng)求離開網(wǎng)絡(luò)時(shí)會(huì)被P-CSCF移除。此處是P-Charging-Vector頭部的一個(gè)示例:P-Charging-Vector:icid-value=〃655Ayet773+7389088787e〃;orig-ioi=參考模型離線和在線計(jì)費(fèi)程序都可以分為兩種截然不同的類型:即基于事件的計(jì)費(fèi)(Event-basedCharging)和基于會(huì)話的計(jì)費(fèi)(Session-basedCharging)o?基于會(huì)話的計(jì)費(fèi)一一需要在整個(gè)服務(wù)中維持會(huì)話的情況下使用這種方式。通常,賬單系統(tǒng)中至少有兩個(gè)請(qǐng)求:?發(fā)起請(qǐng)求(InitialRequest) 用于發(fā)起計(jì)費(fèi)活動(dòng)。該請(qǐng)求包含與用戶使用的會(huì)話相關(guān)的數(shù)據(jù)。?中間請(qǐng)求(IntermediaryRequest) 用于更新當(dāng)前會(huì)話(比如說,在某個(gè)語(yǔ)音呼叫中添加一個(gè)視頻)。當(dāng)然,這個(gè)請(qǐng)求是可選的。?最終請(qǐng)求(FinalRequest) 用于關(guān)閉一個(gè)會(huì)話。?基于事件的計(jì)費(fèi) 用于在某個(gè)特定的事件(比如,充當(dāng)RedirectServer的SIPAS事件)之后發(fā)起一次性賬單活動(dòng)。在離線計(jì)費(fèi)的例子中,請(qǐng)求是通過Rf協(xié)議傳輸?shù)摹6诰€計(jì)費(fèi)系統(tǒng)使用的是Ro協(xié)議。這兩種協(xié)議都基于Diameter。這兩者之間存在一些差異,其中之一是對(duì)與計(jì)費(fèi)會(huì)話相關(guān)的會(huì)話狀態(tài)的維護(hù)。在事件模型中,由于只需處理單個(gè)應(yīng)用程序的事件,因此沒有必要維護(hù)會(huì)話。RFC3588中對(duì)會(huì)話的定義是“一系列致力于某個(gè)特定活動(dòng)的相關(guān)事件”。離線計(jì)費(fèi):Rf接口CTF和CDF之間的事件和會(huì)話的離線計(jì)費(fèi)的執(zhí)行使用了3GPPTS32.240中所定義的Rf引用點(diǎn)。Rf接口用于非實(shí)時(shí)的操作,在這些操作中用戶所使用的單元不會(huì)計(jì)入賬戶。WebLogicSIPServer負(fù)責(zé)從CTF向CDF發(fā)送Diameter請(qǐng)求來實(shí)現(xiàn)這點(diǎn)。
這些消息用于向CCF報(bào)告賬戶信息,跟隨在DIAMETER方法后面(一個(gè)請(qǐng)求,一個(gè)應(yīng)答):計(jì)費(fèi)請(qǐng)求(AccountingRequest,ACR)計(jì)費(fèi)應(yīng)答(AccountingAnswer,ACA)根據(jù)之前公開的一個(gè)模型,基于會(huì)話的計(jì)費(fèi)中的Accounting-Record-TypeAVP可以含有以下這些值:START_RECORD,用于啟動(dòng)計(jì)費(fèi)會(huì)話,通常當(dāng)應(yīng)用程序接收到確認(rèn)初始SIPINVITE的SIP200OK消息時(shí)。INTERIM_RECORD,用于更新會(huì)話,比如,當(dāng)前SIP對(duì)話中的SIPRE-INVITE和/或UPDATE的例子。STOP_RECORD,用于停止賬號(hào)計(jì)費(fèi)會(huì)話,比如,當(dāng)應(yīng)用程序接收到一個(gè)SIPBYE消息時(shí)。在基于會(huì)話的計(jì)費(fèi)系統(tǒng)中,WebLogicSIPServer會(huì)自動(dòng)將DiameterSession鏈接到當(dāng)前活動(dòng)的呼叫狀態(tài)。這表示Call-id編碼在DiameterSessionId中。l.wHh浙)U/TjlATJACAjfSTOPj-MR^lKTERUlh—At*.R?iP>anp4riNwi-wvfiArvmHcl.wHh浙)U/TjlATJACAjfSTOPj-MR^lKTERUlh—At*.R?iP>anp4riNwi-wvfiArvmHcliwrwidIWTfc^AI-)由#神?出向圖4.離線計(jì)費(fèi):基于會(huì)話的模型(單擊圖片查看大圖)對(duì)于一次性計(jì)費(fèi)事件,Event-Type的值為EVENT_RECORD。
RiWri好<wRiWri好<w圖5.離線計(jì)費(fèi):基于事件的模型(單擊圖片查看大圖)在線計(jì)費(fèi):Ro接口在線計(jì)費(fèi)的目的是將計(jì)費(fèi)信息提供給OCS,從而能夠在許可使用網(wǎng)絡(luò)資源之前執(zhí)行存款控制。為此,預(yù)付費(fèi)的訂閱者必須存在于OCS中,資源使用要根據(jù)這情況記入賬單。因此,所有的活動(dòng)(包括訪問被請(qǐng)求的資源使用、確定貨幣數(shù)額或其他單位的數(shù)額,以及將這些數(shù)額從訂閱者的賬戶中扣除)必須發(fā)生在使用資源之前,或至少是在使用資源的過程一一即使用資源時(shí)必須處于在線狀態(tài)。根據(jù)情況的不同,資源使用結(jié)束時(shí)必須執(zhí)行最終評(píng)估。因此:必須區(qū)分以下兩種情〉兄:直接付款(DirectDebiting)——在這種情況下,交易單位會(huì)在單個(gè)事務(wù)中直接從用戶賬戶中扣除。單位保留(UnitReservation)在這種情)兄下,OCS會(huì)將交易單位保留在用戶賬戶中,這主要是因?yàn)镺CS不知道所提供的服務(wù)需要多少單位。服務(wù)終止之后,已用存款金額會(huì)從用戶賬戶中扣除,并用最后任何保留和未使用的單位會(huì)釋放并添加到用戶賬戶中去。根據(jù)以上分類,OCS會(huì)識(shí)別以下三種場(chǎng)景:即時(shí)事件計(jì)費(fèi)(ImmediateEventCharging,IEC)(基于事件的計(jì)費(fèi))具有單位保留的事件計(jì)費(fèi)(EventChargingwithUnitReservation,ECUR)(基于事件的計(jì)費(fèi))具有單位保留的會(huì)話計(jì)費(fèi)(SessionChargingwithUnitReservation,SCUR)(基于會(huì)話的計(jì)費(fèi))
基于事件的計(jì)費(fèi)的發(fā)生可以保留或不保留訂閱者的賬戶,并且可以將其識(shí)別為具有單位保留的事件計(jì)費(fèi)(ECUR)或即時(shí)事件計(jì)費(fèi)(IEC)。CC-Request-Type將具有一個(gè)EVENTREQUEST值。圖6顯示了相關(guān)的IEC呼叫流。圖6.在線計(jì)費(fèi):事件模型(IEC)(單擊圖片查看大圖)圖7顯示了與ECUR相關(guān)的呼叫流。圖7.事件計(jì)費(fèi)模型(ECUR)(單擊圖片查看大圖)對(duì)于具有單位保留的會(huì)話計(jì)費(fèi)(SCRU),需要大量的詢問,而且直接付款(DirectDebiting)情況下的WebLogicSIPServer(或者SIP-AS之類的普通網(wǎng)絡(luò)元素)的行為如下所示:提供服務(wù)之前,必須向OCS發(fā)送一個(gè)請(qǐng)求。接收到準(zhǔn)許的肯定應(yīng)答之后,WebLogicSIPServer能夠最后支持這個(gè)服務(wù)。作為任何其他的Diameter請(qǐng)求,存款控制請(qǐng)求被Command-Code字段識(shí)別;在本例中,代碼設(shè)置為272。CC-Request-TypeAVP用于識(shí)別請(qǐng)求的類型,并且必須出現(xiàn)在所有的CCR消息中。根據(jù)RFC4006,CC-Request-Type具有以下這些值:INITIAL_REQUEST——用于啟動(dòng)一個(gè)會(huì)話,觸發(fā)SIP方法有INVITE(SCUR)、NOTIFY(ECUR)、MESSAGE(ECUR)、REGISTER(ECUR)、SUBSCRIBE(ECUR)、REFER(ECUR)和PUBLISH(ECUR)。UPDATEREQUEST——用于為已有會(huì)話更新信息。通常,當(dāng)SIP200OK消息對(duì)SIPINVITE、RE-INVITE或UPDATE確認(rèn)時(shí),或者當(dāng)保留配額到期時(shí),有效時(shí)間觸發(fā)或其他事件觸發(fā)時(shí)使用。TERMINATIONREQUEST——用于終止一個(gè)會(huì)話,當(dāng)我們接收到SIP最終應(yīng)答(4xx,5xx,6xx),異常中止SIP會(huì)話和SIPBYE時(shí)使用。EVENTREQUEST——無(wú)需維護(hù)會(huì)話時(shí)使用。如圖8所示。圖8.基于會(huì)話的模型(SCUR)(單擊圖片查看大圖)示例IMS場(chǎng)景圖9和圖10所顯示的IMS網(wǎng)絡(luò)就是一個(gè)在線計(jì)費(fèi)場(chǎng)景的示例。當(dāng)用戶A發(fā)起呼叫時(shí),用戶的電話會(huì)向P-CSCF發(fā)送一個(gè)SIPINVITE請(qǐng)求。P-CSCF是運(yùn)營(yíng)商網(wǎng)絡(luò)的入口點(diǎn)。它將INVITE消息轉(zhuǎn)發(fā)到分配給用戶的S-CSCF。網(wǎng)絡(luò)假定P-CSCF知道S-CSCF的地址,因?yàn)樵撔畔⒃谟脩糇?cè)(圖中未顯示出來)時(shí)就從HSS中檢索出來了。然后,S-CSCF檢測(cè)到這個(gè)呼叫要求在線計(jì)費(fèi)并將INVITE轉(zhuǎn)發(fā)給IMS-GWF(IMS網(wǎng)關(guān)函數(shù))。圖9.IMS示例場(chǎng)景:呼叫設(shè)置(單擊圖片查看大圖)可以將IMS-GWF看作一種特殊的SIP應(yīng)用服務(wù)器,其作用是提供與OCS的通信。接收到INVITE消息后,IMS-GWF會(huì)向OCS發(fā)送一個(gè)類型INITIAL的CCR,從而為呼叫保留一些存款。OCS使用CCA作為應(yīng)答,其中含有結(jié)果代碼DIAMETER_SUCCESS,指示呼叫是允許的。CCA還含有關(guān)于準(zhǔn)許“服務(wù)單位”數(shù)量的信息。比如,這些單位可以是呼叫持續(xù)時(shí)間的秒數(shù)。接收到CCA后,IMS-GWF將之前接收到的INVITE消息轉(zhuǎn)發(fā)回給CSCF,然后CSCF再將其傳遞給網(wǎng)絡(luò)的被叫方(I-CSCF,S-CSCF,P-CSCF,用戶B的電話)。IMS-GWF還通過設(shè)置計(jì)時(shí)器來監(jiān)控準(zhǔn)許單位的使用情況。然后,用戶B的電話開始響鈴并使用180Ringing消息應(yīng)答INVITE。考慮到簡(jiǎn)單性,這個(gè)圖中并未包含這個(gè)應(yīng)答,以及任何100Trying應(yīng)答消息。當(dāng)被叫方應(yīng)答電話時(shí),將會(huì)發(fā)送200OK消息。這個(gè)OK消息通過各種不同的網(wǎng)絡(luò)元素到達(dá)用戶A的電話,如下圖所示。然后,A話機(jī)將ACK轉(zhuǎn)發(fā)到B端。這樣一個(gè)呼叫就建立起來了。圖10.IMS示例場(chǎng)景:呼叫終止(單擊圖片查看大圖)當(dāng)所有準(zhǔn)許單位都被使用后(也就是IMS-GWF中的計(jì)時(shí)器到期),將發(fā)送一個(gè)CCR保留這些單位的另一部分。這次的請(qǐng)求類型是UPDATEoOCS發(fā)送含有結(jié)果代碼DIAMETER_SUCCESS的CCA,以許可呼叫繼續(xù)。如果準(zhǔn)許單位是用戶賬戶上最后可用的存款,則OCS應(yīng)答會(huì)含有Final-Unit-IndicationAVP。這表示使用完當(dāng)前準(zhǔn)許的單位之后,呼叫會(huì)斷開連接(或者采用另一種特殊的動(dòng)作)。但是,在本例中沒有出現(xiàn)這個(gè)AVP。在這之后,用戶A決定關(guān)閉呼叫并發(fā)送BYE。BYE將通過P-和S-CSCF轉(zhuǎn)發(fā)給網(wǎng)絡(luò)的呼叫方和IMS-GWF,IMS-GWF會(huì)發(fā)送類型TERMINATION的CCR給計(jì)費(fèi)系統(tǒng)。這個(gè)CCR中包含與使用過的“服務(wù)單位”有關(guān)的信息(在本例中為呼叫持續(xù)時(shí)間)。OCS使用CCA作為應(yīng)答并釋放與該會(huì)話相關(guān)的內(nèi)部資源(比如說內(nèi)存、計(jì)時(shí)器)。用戶B的電話使用200OK消息應(yīng)答B(yǎng)YE,該消息將傳回呼叫方。最后呼叫關(guān)閉。如何在WebLogicSIPServer中實(shí)現(xiàn)這些功能BEAWebLogicSIPServer含有一個(gè)簡(jiǎn)單的支持Diameter協(xié)議的API,包括DiameterBaseAccounting和DiameterCredit-Control應(yīng)用程序。本節(jié)介紹如何配置和使用Diameter功能。配置要使用Diameter功能,需要對(duì)WebLogic域進(jìn)行適當(dāng)?shù)呐渲?。配置過程由以下幾個(gè)步驟組成:?jiǎn)⒂肈iameter自定義資源。?為Diameter創(chuàng)建一個(gè)網(wǎng)絡(luò)通道。?配置Diameter節(jié)點(diǎn)和應(yīng)用程序。BEA文檔頁(yè)面的參考資料部分詳述了這些步驟。初始化部署好的應(yīng)用程序使用DiameterRf或Ro功能之前,需要分別獲取RfApplication或RoApplication對(duì)象。這可以通過以下代碼實(shí)現(xiàn),假定使用的是SIP或HTTPservlet類:ServletContextsc=getServletConfig().getServletContext();Nodenode=(Node)sc.getAttribute(〃com.bea.wcp.diameter.Node〃);if(node==null)(thrownewServletException(〃Can'tgetNode.Checkdiameter.xml");}RfApplicationrfApp=(RfApplication)node.getApplication(Charging.RF_APPLICATION_ID);if(rfApp==null)(thrownewServletException(〃Can'tgetRfApplication.Checkdiameter.xml");}RoApplicationroApp=(RoApplication)node.getApplication(Charging.RO_APPLICATION_ID);if(roApp==null)(thrownewServletException(〃Can'tgetRoApplication.Checkdiameter.xml");}會(huì)話處理Diameter有一個(gè)會(huì)話的概念°RFC3588中對(duì)會(huì)話的正式定義是“一系列致力于某個(gè)特定活動(dòng)的相關(guān)事件”。實(shí)際上,會(huì)話使用ACR(START)或CCR(INITIAL)表示開始,并以ACA(STOP)或CCA(TERMINATION)表示結(jié)束。在一次性事件的例子中,會(huì)話只包含請(qǐng)求和應(yīng)答。所有消息都屬于一個(gè)與Session-IdAVP公共值相關(guān)的會(huì)話。在WebLogicSIPServerAPI中,Diameter會(huì)話是與com.bea.wcp.diameter.Session對(duì)象映射在一起的。Session類處理Session-IdAVP。Rf和Ro接口有兩個(gè)特殊的子類,即RfSession和RoSession。這兩個(gè)類只處理特定于Diameter計(jì)費(fèi)的請(qǐng)求和應(yīng)答。可以使用Rf/RoApplication創(chuàng)建會(huì)話對(duì)象:RfApplicationrfApp=...RfSessionrfSes=rfApp.createSession();RoApplicationroApp=...RoSessionroSes=roApp.createSession();此外,DIAMETER會(huì)話是可序列化的,您可以將其作為屬性存儲(chǔ)于SipApplicationSession中,反之亦然。WebLogicSipServer會(huì)自動(dòng)將會(huì)話鏈接到活動(dòng)的呼叫狀態(tài)。接收到消息之后,容器將自動(dòng)檢索呼叫狀態(tài),并找出Diameter會(huì)話。創(chuàng)建Rf請(qǐng)求創(chuàng)建Rf請(qǐng)求相當(dāng)簡(jiǎn)單。讓我們從一個(gè)基于會(huì)話的請(qǐng)求入手。如前所述,獲得RfApplication和RfSession之后,我們使用RfSession對(duì)象創(chuàng)建一個(gè)新Accounting-Request。由于這是第一個(gè)請(qǐng)求,requestType將以值的形式出現(xiàn):ACRacr=session.createACR(RecordType.START);創(chuàng)建Event請(qǐng)求的代碼為:ACRacr=session.createACR(RecordType.INTERIM);創(chuàng)建一個(gè)新Accounting-Request時(shí),將會(huì)自動(dòng)填充以下AVP:屬性Session-Id 自動(dòng)生成Origin-Host 根據(jù)diameter.xml中的節(jié)點(diǎn)設(shè)置Origin-Realm 根據(jù)diameter.xml中的節(jié)點(diǎn)設(shè)置Acct-Application-Id3,表示DiameterBaseAccountingn. . TT RfApplication中cdf.host參數(shù)的值,設(shè)置在Destination-Hostdiameter.xml中n [RfApplication中cdf.realm參數(shù)的值,設(shè)置在Destination-Realmdiameter.xml中可以通過調(diào)用addAvp方法添加其他AVP:Acr.addAvp(Attribute.EVENT_TIMESTAMP,newInteger(timestamp));創(chuàng)建Ro請(qǐng)求對(duì)Ro接口的請(qǐng)求(比如說Credit-Control-Requests)的創(chuàng)建方式非常類似于創(chuàng)建Accounting-Requests的方式。以下這個(gè)示例可以說明一切:CCRccr=roSes.createCCR(RequestType.INITIAL);注意,CreditControl的請(qǐng)求類型與賬戶的記錄類型有所不同 比如,START和INITIALO事件請(qǐng)求可直接通過RoApplication創(chuàng)建,而不需要明確地創(chuàng)建一個(gè)會(huì)話:CCReventCcr=roApp.createEventCCR();在兩種情況下,WebLogicSIPServer都會(huì)自動(dòng)設(shè)置以下表格中的AVP。屬性 值Session-Id 根據(jù)diameter.xml中的節(jié)點(diǎn)設(shè)置Origin-Realm 根據(jù)diameter.xml中的節(jié)點(diǎn)設(shè)置Auth-Application-Id4,表示DiameterCredit-Controln "RoApplication中ocs.host參數(shù)的值,設(shè)置在Destination-Hostdiameter.xml中n ?1RoApplication中ocs.realm參數(shù)的值,設(shè)置在Destination-Realmdiameter.xml中bd+t由createCCR()的參數(shù)指示;對(duì)于createEventCCR()其值CC-Request-Type為EVENT_REQUEST(4)CC-Request-Number 會(huì)話每創(chuàng)建一個(gè)CCR該數(shù)字就自增1可以使用與前面相同的方法添加其他AVP。DiameterBase屬,性是Attribute類中的靜態(tài)字段。此外,與計(jì)費(fèi)相關(guān)的屬性可以在Charging類和CreditControl類中找到。WebLogicSIPServer并未限制用戶使用這些預(yù)先定義的屬性。可以使用Attribute.define()方法之一來創(chuàng)建新屬性。Attribute類包含為所有基本屬性預(yù)先定義的常量。以下示例展示了如何添加一個(gè)AVP:publicstaticfinalAttributeSUBSCRIPTION_ID_TYPE=Attribute.define(666,"Subscription-Id-Type",Type.INTEGER);添加一個(gè)已經(jīng)由用戶或容器定義過的AVP時(shí),WebLogicSipServer會(huì)拋出一個(gè)異常。添加完所有必要的AVP后,我們最后還要發(fā)送CCR??梢允褂靡韵聝煞N方法完成這一操作:ccr.send();//-or-CCAanswer=(CCA)ccr.sendAndWait();第二種方法會(huì)發(fā)送CCR并阻塞執(zhí)行,直到接收到應(yīng)答或發(fā)生超時(shí)。接收應(yīng)答WebLogicSIPServerDiameterAPI中有兩種接收應(yīng)答的方法。第一種是異步方式,以Request.sendAndWait()方法為基礎(chǔ)。這個(gè)方法會(huì)發(fā)送請(qǐng)求并阻塞呼叫線程直到接收到應(yīng)答或請(qǐng)求超時(shí)。它會(huì)返回接收到的應(yīng)答。發(fā)送請(qǐng)求的異步方式適用于阻塞線程不會(huì)造成問題的應(yīng)用程序。第二種方法是異步分離發(fā)送動(dòng)作和接收動(dòng)作。請(qǐng)求是通過調(diào)用Request.send()發(fā)送的。這個(gè)方法會(huì)立刻返回。接收到應(yīng)答時(shí),該方法會(huì)調(diào)用其rcvMessage()方法通知監(jiān)聽程序。這個(gè)監(jiān)聽程序必須要實(shí)現(xiàn)SessionListener接口,而且必須要在接收到應(yīng)答之前建立在會(huì)話中。以下示例演示了這種方法://ThisisalistenerclassclassMyListenerimplementsSessionListener(publicvoidrcvMessage(Messagemessage)(System.out.println("Receivedamessage:"+message);if(message.getCommand().equals(CreditControl.CCA))(System.out.println("ThemessageisaCredit-Control-Answer");}}}//Thiscodeisinsidesomeother(orthesame)class,inamethod//responsibleforsendingtherequest//CreatesessionandlistenerRoSessionroSes=roApp.createSession();MyListenermyListener=newMyListener();//SetthelisteneronthesessionroSes.setListener(myListener);//NowcreateandsendarequestCCRccr=roSes.createCCR(RequestType.INITIAL);ccr.addAvp(...);ccr.send();//send()returnsimmediately.Answerwillbereceivedin//myListener.rcvMessage()帶有監(jiān)聽程序的實(shí)現(xiàn)還可以允許我們接收當(dāng)前會(huì)話內(nèi)的服務(wù)器所發(fā)送的請(qǐng)求(比如說,當(dāng)服務(wù)器決定馬上關(guān)閉會(huì)話時(shí)所發(fā)送的Abort-Session-Request)。請(qǐng)求和應(yīng)答都以同樣的方式傳遞給監(jiān)聽程序的rcvMessage()方法。由應(yīng)用程序負(fù)責(zé)為請(qǐng)求和應(yīng)答提供不同的行為。錯(cuò)誤和超時(shí)處理在設(shè)定時(shí)間內(nèi)未收到請(qǐng)求的應(yīng)答時(shí),WebLogicSIPServer會(huì)自動(dòng)檢測(cè)超時(shí)條件。diameter.xml中配置了超時(shí)的默認(rèn)值。還可以使用帶參數(shù)的send(...)或sendAndWait(...)為各個(gè)請(qǐng)求分別指定超時(shí)的時(shí)間。WebLogicSIPServer通過創(chuàng)建一個(gè)帶有結(jié)果代碼DIAMETER_UNABLE_TO_DELIVER的響應(yīng)來處理超時(shí)。實(shí)際上,并不會(huì)在網(wǎng)絡(luò)上發(fā)送響應(yīng),但是會(huì)將其傳遞給發(fā)送請(qǐng)求的應(yīng)用程序。這種處理超時(shí)的方法類似于SIP中所使用的方法。同樣,WebLogicSIPServer可拋出以下兩種異常:?協(xié)議錯(cuò)誤時(shí)會(huì)拋出MessageException異常,比如說無(wú)效的消息格式?AVP無(wú)效和/或丟失時(shí)會(huì)拋出AvpException異常調(diào)試應(yīng)用程序WebLogicSIPServer中的日志記錄工具可用于跟蹤傳入和傳出消息。您可以使用控制臺(tái)配置消息調(diào)試。此外,也可以通過在腳本文件(類Unix的機(jī)器中為sh文件,Windows平臺(tái)中則為cmd)中的-Ddiameter.Debug=true選項(xiàng)來設(shè)置消息調(diào)試。調(diào)試消息將直接發(fā)送給控制臺(tái)。除了在WLSS中設(shè)置調(diào)試之外,使用網(wǎng)絡(luò)嗅探程序也是大有幫助。這種類型的程序可以顯示在網(wǎng)絡(luò)中傳輸?shù)膱?bào)文。Wireshark(原來稱作Ethereal)可能是最受歡迎的嗅探程序,它是一款免費(fèi)軟件。示例應(yīng)用程序Ro和Rf接口的示例應(yīng)用程序可以從此處下載。這個(gè)應(yīng)用程序?yàn)橐粋€(gè)SIP會(huì)話提供了DiameterRo/Rf計(jì)費(fèi)功能。接收到一個(gè)INVITE時(shí)請(qǐng)求,應(yīng)用程序會(huì)通過發(fā)送一個(gè)類型INITIAL的CCR來啟動(dòng)會(huì)話。然后,用完所有準(zhǔn)許的存款后,應(yīng)用程序會(huì)通過發(fā)送UPDATECCR來請(qǐng)求新的存款。接收到BYE消息時(shí),應(yīng)用程序會(huì)通過發(fā)送TERMINATIONCCR來關(guān)閉計(jì)費(fèi)會(huì)話。在存款用完的情況下,應(yīng)用程序也會(huì)關(guān)閉會(huì)話。如果CCA中接收到一個(gè)Final-Unit-IndicationAVP,并且所有準(zhǔn)許額度都已用完,則應(yīng)用程序會(huì)通過發(fā)送BYE消息來斷開SIP會(huì)話。應(yīng)用程序還會(huì)發(fā)送一個(gè)TERMINATIONCCR來關(guān)閉Diameter會(huì)話。BEA模擬程序和Rf接口BEAWebLogicSipServer提供了一種簡(jiǎn)單的測(cè)試方法,可以使用一個(gè)Rf接口的獨(dú)立的模擬程序測(cè)試自己的應(yīng)用程序。模擬程序可以作為獨(dú)立的應(yīng)用程序運(yùn)行,模擬程序的離線計(jì)費(fèi)接口為com.bea.wcp.diameter.charging.RfSimulator。此外,BEA還提供了一個(gè)HSS模擬程序用于存儲(chǔ)與服務(wù)相關(guān)的數(shù)據(jù),可以使用相同的方式運(yùn)行該模擬程序。注意,這個(gè)模擬程序是用于測(cè)試目的的,并且只支持RepositoryData和PSI。HSS模擬程序?yàn)閏om.bea.wcp.diameter.sh.HSSSimulator。這兩種模擬的命令行選項(xiàng)如下所示:.-r,-real節(jié)點(diǎn)實(shí)際名稱.-h,-host主機(jī)身份.-a,-address節(jié)點(diǎn)監(jiān)聽地址.-p,-port節(jié)點(diǎn)監(jiān)聽端口.-d,-debug啟用調(diào)試.-m,-mdebug啟用消息調(diào)試以下示例演示了如何運(yùn)行一個(gè)獨(dú)立的BEARf模擬程序:javacom.bea.wcp.diameter.util.Launcher-appscom.bea.wcp.diameter.charging.RfSimulator-r-hsimulator-p3900-d-m我們也可以運(yùn)行多個(gè)模擬程序,比如使用以下腳本運(yùn)行HSS模擬程序:javacom.bea.wcp.diameter.util.Launcher-appscom.bea.wcp.diameter.charging.RfSimulator,com.bea.wcp.diameter.sh.HssSimulator-hsimulator-r-p3900-d-m記住要先運(yùn)行\(zhòng)sipserver30\server\bin\directory目錄下的setWLSEnv腳本。業(yè)已證實(shí)的互操作性EricpolTelecom已成功將其運(yùn)行于BEAWLSS3.0之上的IMS預(yù)付費(fèi)解決方案(IMSPrepaidSolution)與AmdocsIMS計(jì)費(fèi)解決方案(AmdocsIMSChargingSolution)集成在一起。IMS預(yù)付費(fèi)解決方案通過其各組件的集成和相互協(xié)作提供了一種具有豐富特性的、兼容IMS的、可互操作的、電信級(jí)的解決方案。在這種集成場(chǎng)景中,IMS預(yù)付費(fèi)解決方案通過Rf和Ro接口與AmdocsIMS計(jì)費(fèi)解決方案相互通信。其網(wǎng)絡(luò)結(jié)構(gòu)如下所示:圖11.BEA-Ericpol-AmdocsIOT的網(wǎng)絡(luò)架構(gòu)(單擊圖片查看大圖)BEA-EricpolIMSPrepaid和AmdocsCharging之間的互操作性測(cè)試(interoperabilitytesting,IOT)包含以下兩個(gè)階段:離線和在線計(jì)費(fèi)。各個(gè)場(chǎng)景的消息流包含在本文結(jié)尾的附加文件中。IOT已經(jīng)證實(shí)WebLogicSIPServer中的Diameter實(shí)現(xiàn)符合協(xié)議規(guī)范。它還顯示對(duì)JavaAPI的完全編程控制使得Diameter實(shí)現(xiàn)極具靈活性。在PoC過程中需要進(jìn)行幾次小更改。這些更改的實(shí)現(xiàn)快速而簡(jiǎn)單。IOT中所使用的AmdocsIMS計(jì)費(fèi)解決方案基于Amdocs在線計(jì)費(fèi)(AmdocsOnlineCharging)系統(tǒng)。與3GPP標(biāo)準(zhǔn)一致,這種在線計(jì)費(fèi)功能通過Diameter接口與核心IMS網(wǎng)絡(luò)進(jìn)行交互(在線計(jì)費(fèi)系統(tǒng)接口的Diameter引用點(diǎn))。此外,AmdocsIMS計(jì)費(fèi)解決方案中的兩種關(guān)鍵組件是AmdocsRating和AmdocsBalanceManagero要與IMS呼叫會(huì)話控制函數(shù)進(jìn)行交互(以實(shí)現(xiàn)離線計(jì)費(fèi)),針對(duì)IMS的3GPP標(biāo)準(zhǔn)定義了以下兩個(gè)組件:計(jì)費(fèi)數(shù)據(jù)函數(shù)(chargingdatafunction,CDF)和計(jì)費(fèi)網(wǎng)關(guān)函數(shù)(charginggatewayfunction,CGF)。這些函數(shù)可以構(gòu)造、關(guān)聯(lián)和格式化與計(jì)費(fèi)事件相關(guān)的信息,并將這些信息傳遞給賬單系統(tǒng)°AmdocsServiceMediationManager是AmdocsIMS計(jì)費(fèi)解決方案的一部分,它經(jīng)過改進(jìn)后符合3GPP標(biāo)準(zhǔn)并且其本身可以提供CDF和CGF功能。如今,服務(wù)提供商開始爭(zhēng)先實(shí)現(xiàn)IMS架構(gòu)并提供越來越多的復(fù)雜服務(wù),與此同時(shí),他們也不得不開始面對(duì)各種問題:如收益率、定價(jià)、資本回報(bào)率和服務(wù)質(zhì)量等等。Amdocs使用了一套橫向的、統(tǒng)一的、模塊化的IMS就緒計(jì)費(fèi)產(chǎn)品,實(shí)現(xiàn)了一種完善的IMS計(jì)費(fèi)方式,并且很好地解決了上述問題。如Ericpol和BEA的IOT測(cè)試所示,Amdocs計(jì)費(fèi)解決方案具有以下優(yōu)點(diǎn):?正確地將任何業(yè)務(wù)線實(shí)時(shí)地聚合在一起?復(fù)雜IMS服務(wù)和產(chǎn)品快速投放市場(chǎng)?靈活地提供創(chuàng)新和多合一的服務(wù)?聚合調(diào)解(Convergedmediation)?嚴(yán)格遵從IMS標(biāo)準(zhǔn)下載?下載Chargi計(jì)費(fèi)示例 使用Ro和Rf接口構(gòu)建示例計(jì)費(fèi)應(yīng)用程序的源代碼演示。Ericpol和Amdocs之間的用例 IOT中使用的示例用例。結(jié)束語(yǔ)已經(jīng)證實(shí),Diameter成功克服了RADIUS的局限。它如今已成為IMS標(biāo)準(zhǔn)的一部分?;贗P和電話技術(shù)的新服務(wù)的開發(fā)現(xiàn)正在迅速發(fā)展,每一項(xiàng)服務(wù)都需要計(jì)費(fèi)功能。因此,基于Diameter計(jì)費(fèi)的普及指日可待。通過閱讀本文,您應(yīng)該了解了Ro和Rf接口的基本概念,并知道如何使用BEAWebLogicSIPServer處理它們?,F(xiàn)在,您已經(jīng)可以借助所學(xué)的知識(shí)著手開發(fā)自己的應(yīng)用程序致謝作者感謝RafiKretchmer,Amdocs的RevenueManagementProduct&SolutionsMarketing部門的產(chǎn)品營(yíng)銷總監(jiān)。Rafi負(fù)責(zé)為Amdocs的產(chǎn)品收益管理制訂IMS業(yè)務(wù)戰(zhàn)略,包括行業(yè)領(lǐng)先的AmdocsBilling產(chǎn)品組合。參考資料WLSS3.0Doc——官方WebLogicSipServer3.0文檔WLSS3.0Doc Diameter配置WLSS3.0Doc——配置和使用Rf應(yīng)用程序WLSS3.0Doc——配置和使用Ro應(yīng)用程序WL
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年AI的雙重價(jià)值:助力氣候正向效應(yīng)與推動(dòng)能源轉(zhuǎn)型報(bào)告-
- 山東省濟(jì)南市名校聯(lián)考2025-2026學(xué)年高一上學(xué)期1月階段性檢測(cè)英語(yǔ)試卷(含答案無(wú)聽力原文及音頻)
- 2025年陽(yáng)江職業(yè)技術(shù)學(xué)院馬克思主義基本原理概論期末考試模擬題及答案解析(必刷)
- 2024年盱眙縣招教考試備考題庫(kù)含答案解析(奪冠)
- 2025年晉寧縣招教考試備考題庫(kù)帶答案解析(必刷)
- 2025年雄縣招教考試備考題庫(kù)帶答案解析
- 2024年西安航空職工大學(xué)馬克思主義基本原理概論期末考試題及答案解析(必刷)
- 2025年青縣招教考試備考題庫(kù)附答案解析
- 2024年西南科技大學(xué)城市學(xué)院馬克思主義基本原理概論期末考試題含答案解析(必刷)
- 2024年麻陽(yáng)苗族自治縣招教考試備考題庫(kù)及答案解析(奪冠)
- 2026山西離柳焦煤集團(tuán)有限公司專業(yè)技術(shù)人員招聘柳林縣凌志售電有限公司專業(yè)技術(shù)人員4人備考考試題庫(kù)及答案解析
- 2025年護(hù)理“三基”理論考試題附答案
- 建筑物消防設(shè)施遠(yuǎn)程監(jiān)控合同
- 2025年考愛情的測(cè)試題及答案
- 范可尼綜合征診療指南(2025年版)
- 2026年中國(guó)化工經(jīng)濟(jì)技術(shù)發(fā)展中心招聘?jìng)淇碱}庫(kù)及一套參考答案詳解
- 機(jī)房網(wǎng)絡(luò)改造施工方案
- HAD101-04-2025 核動(dòng)力廠廠址評(píng)價(jià)中的外部人為事件
- 中藥熱奄包在呼吸系統(tǒng)疾病中的應(yīng)用研究
- HACCP計(jì)劃年度評(píng)審報(bào)告
- 項(xiàng)目1 變壓器的運(yùn)行與應(yīng)用《電機(jī)與電氣控制技術(shù)》教學(xué)課件
評(píng)論
0/150
提交評(píng)論