系統(tǒng)的核心部分,包括中心數(shù)據(jù)庫(kù)、可互備份的實(shí)時(shí)計(jì)費(fèi)服務(wù)器RTBS,以及向外部設(shè)備開(kāi)放的實(shí)時(shí)計(jì)費(fèi)代理(RTBA)。通過(guò)RTBA向外部設(shè)備開(kāi)放實(shí)時(shí)計(jì)費(fèi)的所有功能,RTBA提供了一套完整的功能接口A(yíng)PI,外部設(shè)備只需簡(jiǎn)單地調(diào)用這些函數(shù)就可以實(shí)現(xiàn)各種功能。從外部設(shè)備角度來(lái)看,計(jì)費(fèi)系統(tǒng)的內(nèi)部細(xì)節(jié)是透明的,因此系統(tǒng)可以方便地移植和集成。RTBA的設(shè)計(jì)是本系統(tǒng)的一大特點(diǎn)。外部設(shè)備與RTBA之間是函數(shù)調(diào)用關(guān)系,RTBA與RTBS之間則是在標(biāo)準(zhǔn)TCP/IP上的相互通信,可以是在LAN上,也可以是在WAN上。為了保證整個(gè)計(jì)費(fèi)系統(tǒng)的性能,RTBA與RTBS必須在有QoS保障的網(wǎng)絡(luò)上進(jìn)行通信。
系統(tǒng)中可以采用多個(gè)RTBS,RTBS之間可以互相備份,通過(guò)RTBS的冗余可以明顯提高系統(tǒng)容量,還提高了系統(tǒng)的穩(wěn)定性和可靠性。后臺(tái)數(shù)據(jù)庫(kù)采用Oracle,在RTBS 與數(shù)據(jù)庫(kù)之間,仍然通過(guò)三層架構(gòu),中間層用Microsoft MTS以提高數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)的性能。
系統(tǒng)同時(shí)還提供Keep Alive機(jī)制,GK通過(guò)RTBA與RTBS保持Keep Alive通信,無(wú)論GK異常還是RTBS異常,對(duì)方都能在第一時(shí)間知道。
二、CDR格式
CDR就是呼叫詳細(xì)記錄(Call Detail Record),每個(gè)完整的呼叫都應(yīng)有一個(gè)完整信息的CDR。IP電話(huà)中的CDR信息一般以?xún)煞N形式存放,一種是文件形式,可以是文本文件、二進(jìn)制文件或CSV格式文件;另一種是存放在數(shù)據(jù)庫(kù)中,這也是最常用的形式,IP電話(huà)系統(tǒng)后臺(tái)數(shù)據(jù)庫(kù)都有專(zhuān)門(mén)存放CDR的表。
CDR信息一般由GK收集。記錄CDR有兩個(gè)最主要的目的,一就是作為計(jì)費(fèi)的依據(jù),二就是用于客戶(hù)查詢(xún)審計(jì)。CDR中應(yīng)該記錄哪些信息并沒(méi)有一個(gè)固定的要求,一般不同的IP電話(huà)系統(tǒng)根據(jù)業(yè)務(wù)的側(cè)重點(diǎn)不同會(huì)有不同的CDR格式,同時(shí)客戶(hù)最關(guān)心的一些信息一定要記錄到CDR中。CDR格式是根據(jù)系統(tǒng)的具體業(yè)務(wù)特點(diǎn)和具體的客戶(hù)需求制定的,除了一些必須有的信息字段外,還有一些特殊字段。表1是CDR中每個(gè)字段及其含義。
三、資費(fèi)策略的制定
資費(fèi)策略是對(duì)各種服務(wù)進(jìn)行計(jì)費(fèi)的一套完整方案,表明對(duì)于每種服務(wù)應(yīng)該向誰(shuí)收費(fèi)、怎樣收費(fèi),主要包括正常費(fèi)率的設(shè)置、折扣費(fèi)率的設(shè)置、固定服務(wù)費(fèi)和罰款的設(shè)置。不同的供應(yīng)商根據(jù)所實(shí)現(xiàn)業(yè)務(wù)的不同會(huì)有一套符合自身特色的資費(fèi)策略,但都必須遵守一個(gè)原則,即費(fèi)率的統(tǒng)一,一個(gè)服務(wù)在該資費(fèi)策略下只能計(jì)算出一個(gè)費(fèi)用值,不能出現(xiàn)有歧義的計(jì)費(fèi)方法。
最常見(jiàn)的計(jì)費(fèi)方法有:
(1)按服務(wù)時(shí)長(zhǎng)計(jì)費(fèi),這是使用最廣泛的一種計(jì)費(fèi)方法;
(2)按服務(wù)次數(shù)計(jì)費(fèi);
(3)按數(shù)據(jù)流量計(jì)費(fèi),可能是上行流量、下行流量或總流量;
(4)按帶寬使用情況進(jìn)行計(jì)費(fèi);
(5)按服務(wù)質(zhì)量(QoS)參數(shù)計(jì)費(fèi);
(6)混合計(jì)費(fèi),如結(jié)合帶寬和流量的計(jì)費(fèi)。
目前許多ITSP主要提供PSTN+I(xiàn)P網(wǎng)關(guān)形式的IP電話(huà)業(yè)務(wù),這種情況下費(fèi)用的計(jì)算一般分為兩部分,即PSTN通話(huà)費(fèi)用和IP內(nèi)部服務(wù)費(fèi)用。
數(shù)據(jù)在三段網(wǎng)絡(luò)中傳輸,第一段從用戶(hù)電話(huà)到IP接入網(wǎng)關(guān),接入網(wǎng)關(guān)有接入號(hào),這段費(fèi)用是PSTN的費(fèi)用。第二段從接入網(wǎng)關(guān)到接出網(wǎng)關(guān),語(yǔ)音數(shù)據(jù)通過(guò)IP網(wǎng)絡(luò)傳輸,大IP電話(huà)運(yùn)營(yíng)商一般都通過(guò)專(zhuān)網(wǎng)或?qū)>(xiàn)傳輸,這是IP內(nèi)部服務(wù)的費(fèi)用。第三段從接出網(wǎng)關(guān)到被叫電話(huà),收取的也是PSTN通話(huà)費(fèi)用。第一段費(fèi)用一般由主叫支付,相當(dāng)于市話(huà)費(fèi)用。第二、三段的費(fèi)用就是用戶(hù)支付的IP 電話(huà)費(fèi)用,由運(yùn)營(yíng)商核算綜合成本后給出費(fèi)率計(jì)算得到。這樣的系統(tǒng)絕大多數(shù)都是按通話(huà)時(shí)長(zhǎng)來(lái)計(jì)費(fèi)的。
IP電話(huà)資費(fèi)策略中根據(jù)需要都會(huì)有折扣/優(yōu)惠策略,一般有時(shí)段優(yōu)惠、節(jié)假日優(yōu)惠和總量?jī)?yōu)惠等方式。
資費(fèi)策略管理在VoIP業(yè)務(wù)中是很關(guān)鍵的,靈活的資費(fèi)策略管理不僅有利于服務(wù)供應(yīng)商的運(yùn)營(yíng)和業(yè)務(wù)的擴(kuò)展,也極大地保護(hù)了客戶(hù)的利益。好的資費(fèi)策略管理應(yīng)該支持費(fèi)率的預(yù)定制和費(fèi)率的回溯,支持實(shí)時(shí)費(fèi)率,能夠提供多種費(fèi)率的核算和比較。
VoIP除了基本的PC to PC、PC to Phone、Phone to PC、Phone to Phone四種業(yè)務(wù)模式外,還有收發(fā)Voice Mail、呼叫轉(zhuǎn)移等增值業(yè)務(wù),所以可以把所有業(yè)務(wù)分為兩大類(lèi),一類(lèi)是與PSTN相通的,一類(lèi)是沒(méi)有PSTN費(fèi)用的內(nèi)部業(yè)務(wù)。
資費(fèi)策略中除了上述對(duì)收費(fèi)方法的規(guī)定外,還需要設(shè)置PSTN通話(huà)費(fèi)率和優(yōu)惠策略。
四、計(jì)費(fèi)系統(tǒng)主要業(yè)務(wù)實(shí)現(xiàn)
1. 時(shí)鐘同步
時(shí)鐘同步在分布式應(yīng)用中是很關(guān)鍵的,尤其是在VoIP系統(tǒng)中對(duì)時(shí)間的一致性更為重視,設(shè)備之間時(shí)鐘誤差不能超過(guò)1s。系統(tǒng)中所有設(shè)備都以中心數(shù)據(jù)庫(kù)所在的機(jī)器時(shí)鐘為基準(zhǔn)時(shí)鐘,提供一個(gè)時(shí)鐘同步函數(shù),每隔一段時(shí)間系統(tǒng)中各設(shè)備調(diào)用該函數(shù),對(duì)本地時(shí)鐘進(jìn)行校對(duì)。
2. 登錄/認(rèn)證
在此以一個(gè)終端(Terminal)的登錄為例,介紹本計(jì)費(fèi)系統(tǒng)的認(rèn)證過(guò)程。
(1)終端向指定的頂級(jí) GK發(fā)GRQ(Gatekeeper Request)。頂級(jí) GK給終端回GCF(Gatekeeper Confirm)報(bào)文,給終端分配初級(jí) GK,讓終端向指定的初級(jí)GK注冊(cè)。
(2)在GCF消息中頂級(jí)GK把初級(jí)GK的IP、Port返回給終端。
(3)終端向初級(jí)GK發(fā)RRQ(Registration Request)消息,帶上用戶(hù)ID、用戶(hù)密碼等參數(shù)。
(4)初級(jí)GK調(diào)用RTBA提供的請(qǐng)求認(rèn)證的API函數(shù)。
(5)RTBA向RTBS發(fā)RADIUS的認(rèn)證請(qǐng)求(Access-Request)消息。
(6)RTBS查詢(xún)中心數(shù)據(jù)庫(kù)的用戶(hù)ID—密碼對(duì),如果相同給RTBA返回RADIUS中的Access-Accept消息。
(7)RTBA的API函數(shù)返回認(rèn)證確認(rèn)結(jié)果給初級(jí)GK。
(8)初級(jí)GK得到認(rèn)證通過(guò)的結(jié)果后,向終端發(fā)RCFv(RegistrationConfim)消息,接受用戶(hù)登錄。
如果在第6步中用戶(hù)ID、密碼不符,RTBS向RTBA返回Access-Reject消息。則在接下來(lái)的第7步中API返回認(rèn)證拒絕結(jié)果,并且在第8步中初級(jí)GK向終端發(fā)RRJ(Registration-Reject)消息,拒絕用戶(hù)登錄。
3. 呼叫請(qǐng)求
用戶(hù)得到驗(yàn)證后,就可以進(jìn)行呼叫操作。當(dāng)一個(gè)終端要向另外的終端發(fā)起呼叫時(shí),GK在建立呼叫前要通過(guò)計(jì)費(fèi)系統(tǒng)確認(rèn)該用戶(hù)是否能夠得到發(fā)起這個(gè)呼叫的授權(quán)。呼叫請(qǐng)求過(guò)程和呼叫建立過(guò)程從略。
4. 檢查點(diǎn)
在很多計(jì)費(fèi)系統(tǒng)中,只在服務(wù)開(kāi)始和服務(wù)結(jié)束這兩個(gè)時(shí)間點(diǎn)進(jìn)行計(jì)費(fèi)處理。例如在一個(gè)呼叫開(kāi)始時(shí)通知一下計(jì)費(fèi)服務(wù)器,然后在呼叫結(jié)束時(shí)再通知一下計(jì)費(fèi)服務(wù)器,然后計(jì)費(fèi)服務(wù)器一次性計(jì)算該呼叫的費(fèi)用。這種處理方法比較簡(jiǎn)單,但不可靠,如果呼叫開(kāi)始并進(jìn)行了較長(zhǎng)時(shí)間的通話(huà),而這時(shí)候GK發(fā)生異常,不能通知計(jì)費(fèi)服務(wù)器呼叫結(jié)束,那么計(jì)費(fèi)系統(tǒng)就無(wú)法對(duì)這個(gè)呼叫進(jìn)行計(jì)費(fèi),對(duì)客戶(hù)對(duì)供應(yīng)商都是一種損失。為了避免這種損失,我們?cè)谟?jì)費(fèi)系統(tǒng)中啟用了檢查點(diǎn)(Checkpoint)機(jī)制,即在每個(gè)呼叫過(guò)程中設(shè)置檢查點(diǎn),檢查呼叫情況,檢查系統(tǒng)運(yùn)行情況,并做如下處理:
(1)更新客戶(hù)最新費(fèi)用信息;
(2)寫(xiě)最新?tīng)顟B(tài)的CDR。
通過(guò)Checkpoint機(jī)制可以最大程度地減少損失,利用Keep Alive可以在第一時(shí)間發(fā)現(xiàn)異常,并做相應(yīng)處理。系統(tǒng)中可能出現(xiàn)的異常情況很多,在這里舉兩個(gè)例子,并介紹相應(yīng)的處理方法。
如果GK發(fā)現(xiàn)一個(gè)RTBS異常,由于該RTBS負(fù)責(zé)多路呼叫的計(jì)費(fèi)處理,那么這時(shí)候GK要做的就是將該RTBS上負(fù)責(zé)的所有呼叫遷移到其他RTBS上,而且要避免費(fèi)用的重復(fù)扣除,因?yàn)樵谶^(guò)去的Checkpoint點(diǎn)已經(jīng)扣除了呼叫前一段時(shí)間的費(fèi)用。處理的方法,并不是將最新的呼叫狀態(tài)也遷移過(guò)去,讓RTBS從遷移時(shí)開(kāi)始重新計(jì)費(fèi),而是將呼叫的最原始信息,如呼叫開(kāi)始時(shí)間T0,該用戶(hù)的原始費(fèi)用balance0轉(zhuǎn)移到新的RTBS, RTBS可以計(jì)算出T0到當(dāng)前時(shí)間的費(fèi)用cost1,用原始費(fèi)用balance0減去cost1就得到該客戶(hù)的最新余額,而不管前一個(gè)RTBS對(duì)該呼叫做了多少個(gè)Checkpoint操作。
如果RTBS發(fā)現(xiàn)GK異常,在GK異常時(shí)系統(tǒng)有其他方法將GK所負(fù)責(zé)的呼叫拆除,所有RTBS可以把發(fā)現(xiàn)GK異常的時(shí)間作為呼叫的結(jié)束時(shí)間來(lái)處理,這樣這種異常情況下的處理就顯得簡(jiǎn)單。RTBS計(jì)算出這段時(shí)間的費(fèi)用更新到客戶(hù)賬戶(hù)上,并記錄到目前為止的CDR信息中。
5. 最后一分鐘通知
RTBS實(shí)時(shí)監(jiān)測(cè)每個(gè)呼叫的最大通話(huà)時(shí)間,在通話(huà)費(fèi)用結(jié)束前1min通知GK,要求GK主動(dòng)拆除該呼叫,這是保證客戶(hù)不透支費(fèi)用的關(guān)鍵。在GK得到最后1min通知后會(huì)把這個(gè)信息通知到終端,并在1min后拆除該呼叫。
6. 呼叫結(jié)束處理
呼叫結(jié)束,表示完成一個(gè)服務(wù)。這之后要對(duì)這個(gè)服務(wù)進(jìn)行完整的記錄,同時(shí)計(jì)算該服務(wù)的準(zhǔn)確費(fèi)用。
五、結(jié)束語(yǔ)
本文從Internet計(jì)費(fèi)的基本理論出發(fā),研究了針對(duì)VoIP業(yè)務(wù)的計(jì)費(fèi)系統(tǒng)所應(yīng)具有的功能以及計(jì)費(fèi)系統(tǒng)中的一些關(guān)鍵問(wèn)題,并結(jié)合一個(gè)VoIP系統(tǒng)的模型,著重介紹了一個(gè)實(shí)時(shí)計(jì)費(fèi)系統(tǒng)的實(shí)現(xiàn)方法及其關(guān)鍵業(yè)務(wù)。
中國(guó)多媒體視訊