首頁>>>技術(shù)>>>計(jì)費(fèi)  計(jì)費(fèi)產(chǎn)品

VoIP系統(tǒng)實(shí)時(shí)計(jì)費(fèi)功能研究及實(shí)現(xiàn)

南京理工大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系 孫亞民 2004/12/14

一、計(jì)費(fèi)系統(tǒng)框架結(jié)構(gòu)

  VoIP計(jì)費(fèi)系統(tǒng)的設(shè)計(jì)遵循Internet實(shí)時(shí)計(jì)費(fèi)的設(shè)計(jì)原則,具有實(shí)時(shí)性、穩(wěn)定性、可靠性、可移植性、可擴(kuò)展性等特性,功能的設(shè)計(jì)既考慮了Internet計(jì)費(fèi)系統(tǒng)的基本功能,又考慮了用戶的需求及VoIP系統(tǒng)的業(yè)務(wù)特點(diǎn)。

  系統(tǒng)的核心部分,包括中心數(shù)據(jù)庫、可互備份的實(shí)時(shí)計(jì)費(fèi)服務(wù)器RTBS,以及向外部設(shè)備開放的實(shí)時(shí)計(jì)費(fèi)代理(RTBA)。通過RTBA向外部設(shè)備開放實(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上。為了保證整個(gè)計(jì)費(fèi)系統(tǒng)的性能,RTBA與RTBS必須在有QoS保障的網(wǎng)絡(luò)上進(jìn)行通信。

  系統(tǒng)中可以采用多個(gè)RTBS,RTBS之間可以互相備份,通過RTBS的冗余可以明顯提高系統(tǒng)容量,還提高了系統(tǒng)的穩(wěn)定性和可靠性。后臺數(shù)據(jù)庫采用Oracle,在RTBS 與數(shù)據(jù)庫之間,仍然通過三層架構(gòu),中間層用Microsoft MTS以提高數(shù)據(jù)庫訪問的性能。

  系統(tǒng)同時(shí)還提供Keep Alive機(jī)制,GK通過RTBA與RTBS保持Keep Alive通信,無論GK異常還是RTBS異常,對方都能在第一時(shí)間知道。

二、CDR格式

  CDR就是呼叫詳細(xì)記錄(Call Detail Record),每個(gè)完整的呼叫都應(yīng)有一個(gè)完整信息的CDR。IP電話中的CDR信息一般以兩種形式存放,一種是文件形式,可以是文本文件、二進(jìn)制文件或CSV格式文件;另一種是存放在數(shù)據(jù)庫中,這也是最常用的形式,IP電話系統(tǒng)后臺數(shù)據(jù)庫都有專門存放CDR的表。

  CDR信息一般由GK收集。記錄CDR有兩個(gè)最主要的目的,一就是作為計(jì)費(fèi)的依據(jù),二就是用于客戶查詢審計(jì)。CDR中應(yīng)該記錄哪些信息并沒有一個(gè)固定的要求,一般不同的IP電話系統(tǒng)根據(jù)業(yè)務(wù)的側(cè)重點(diǎn)不同會有不同的CDR格式,同時(shí)客戶最關(guān)心的一些信息一定要記錄到CDR中。CDR格式是根據(jù)系統(tǒng)的具體業(yè)務(wù)特點(diǎn)和具體的客戶需求制定的,除了一些必須有的信息字段外,還有一些特殊字段。表1是CDR中每個(gè)字段及其含義。

三、資費(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)策略,但都必須遵守一個(gè)原則,即費(fèi)率的統(tǒng)一,一個(gè)服務(wù)在該資費(fèi)策略下只能計(jì)算出一個(gè)費(fèi)用值,不能出現(xiàn)有歧義的計(jì)費(fèi)方法。

  最常見的計(jì)費(fèi)方法有:

 。1)按服務(wù)時(shí)長計(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ù)都是按通話時(shí)長來計(jì)費(fèi)的。

  IP電話資費(fèi)策略中根據(jù)需要都會有折扣/優(yōu)惠策略,一般有時(shí)段優(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í)時(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. 時(shí)鐘同步

  時(shí)鐘同步在分布式應(yīng)用中是很關(guān)鍵的,尤其是在VoIP系統(tǒng)中對時(shí)間的一致性更為重視,設(shè)備之間時(shí)鐘誤差不能超過1s。系統(tǒng)中所有設(shè)備都以中心數(shù)據(jù)庫所在的機(jī)器時(shí)鐘為基準(zhǔn)時(shí)鐘,提供一個(gè)時(shí)鐘同步函數(shù),每隔一段時(shí)間系統(tǒng)中各設(shè)備調(diào)用該函數(shù),對本地時(shí)鐘進(jìn)行校對。

  2. 登錄/認(rèn)證

  在此以一個(gè)終端(Terminal)的登錄為例,介紹本計(jì)費(fèi)系統(tǒng)的認(rèn)證過程。

  (1)終端向指定的頂級 GK發(fā)GRQ(Gatekeeper Request)。頂級 GK給終端回GCF(Gatekeeper Confirm)報(bào)文,給終端分配初級 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)一個(gè)終端要向另外的終端發(fā)起呼叫時(shí),GK在建立呼叫前要通過計(jì)費(fèi)系統(tǒng)確認(rèn)該用戶是否能夠得到發(fā)起這個(gè)呼叫的授權(quán)。呼叫請求過程和呼叫建立過程從略。

  4. 檢查點(diǎn)

  在很多計(jì)費(fèi)系統(tǒng)中,只在服務(wù)開始和服務(wù)結(jié)束這兩個(gè)時(shí)間點(diǎn)進(jìn)行計(jì)費(fèi)處理。例如在一個(gè)呼叫開始時(shí)通知一下計(jì)費(fèi)服務(wù)器,然后在呼叫結(jié)束時(shí)再通知一下計(jì)費(fèi)服務(wù)器,然后計(jì)費(fèi)服務(wù)器一次性計(jì)算該呼叫的費(fèi)用。這種處理方法比較簡單,但不可靠,如果呼叫開始并進(jìn)行了較長時(shí)間的通話,而這時(shí)候GK發(fā)生異常,不能通知計(jì)費(fèi)服務(wù)器呼叫結(jié)束,那么計(jì)費(fèi)系統(tǒng)就無法對這個(gè)呼叫進(jìn)行計(jì)費(fèi),對客戶對供應(yīng)商都是一種損失。為了避免這種損失,我們在計(jì)費(fèi)系統(tǒng)中啟用了檢查點(diǎn)(Checkpoint)機(jī)制,即在每個(gè)呼叫過程中設(shè)置檢查點(diǎn),檢查呼叫情況,檢查系統(tǒng)運(yùn)行情況,并做如下處理:

  (1)更新客戶最新費(fèi)用信息;

 。2)寫最新狀態(tài)的CDR。

  通過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)樵谶^去的Checkpoint點(diǎn)已經(jīng)扣除了呼叫前一段時(shí)間的費(fèi)用。處理的方法,并不是將最新的呼叫狀態(tài)也遷移過去,讓RTBS從遷移時(shí)開始重新計(jì)費(fèi),而是將呼叫的最原始信息,如呼叫開始時(shí)間T0,該用戶的原始費(fèi)用balance0轉(zhuǎn)移到新的RTBS, RTBS可以計(jì)算出T0到當(dāng)前時(shí)間的費(fèi)用cost1,用原始費(fèi)用balance0減去cost1就得到該客戶的最新余額,而不管前一個(gè)RTBS對該呼叫做了多少個(gè)Checkpoint操作。

  如果RTBS發(fā)現(xiàn)GK異常,在GK異常時(shí)系統(tǒng)有其他方法將GK所負(fù)責(zé)的呼叫拆除,所有RTBS可以把發(fā)現(xiàn)GK異常的時(shí)間作為呼叫的結(jié)束時(shí)間來處理,這樣這種異常情況下的處理就顯得簡單。RTBS計(jì)算出這段時(shí)間的費(fèi)用更新到客戶賬戶上,并記錄到目前為止的CDR信息中。

  5. 最后一分鐘通知

  RTBS實(shí)時(shí)監(jiān)測每個(gè)呼叫的最大通話時(shí)間,在通話費(fèi)用結(jié)束前1min通知GK,要求GK主動拆除該呼叫,這是保證客戶不透支費(fèi)用的關(guān)鍵。在GK得到最后1min通知后會把這個(gè)信息通知到終端,并在1min后拆除該呼叫。

  6. 呼叫結(jié)束處理

  呼叫結(jié)束,表示完成一個(gè)服務(wù)。這之后要對這個(gè)服務(wù)進(jìn)行完整的記錄,同時(shí)計(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é)合一個(gè)VoIP系統(tǒng)的模型,著重介紹了一個(gè)實(shí)時(shí)計(jì)費(fèi)系統(tǒng)的實(shí)現(xiàn)方法及其關(guān)鍵業(yè)務(wù)。

中國多媒體視訊



相關(guān)鏈接:
電信計(jì)費(fèi)僵局 2004-12-10
南京探索智能小區(qū)認(rèn)證計(jì)費(fèi)管理解決方案 2004-12-08
大唐高鴻計(jì)費(fèi)管理平臺OSS3000 2004-12-01
南京探索軟件校園寬帶認(rèn)證計(jì)費(fèi)管理解決方案 2004-12-01
電信該如何運(yùn)營寬帶校園網(wǎng) 2004-11-22

分類信息:     文摘   技術(shù)_計(jì)費(fèi)_文摘