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