??? 關(guān)鍵詞:通道組, 網(wǎng)關(guān), H.323協(xié)議, 有限狀態(tài)機(jī)?
1 引言
??? 在傳統(tǒng)的電信業(yè)務(wù)中,語音的交換是基于時(shí)隙的電路交換,其主要問題在于:(1) 通信過程中用戶對(duì)線路的獨(dú)占所造成的通信資源的浪費(fèi);(2) 電路交換的體系結(jié)構(gòu)不便實(shí)現(xiàn)業(yè)務(wù)的綜合。隨著通信技術(shù)的迅速發(fā)展,語音、數(shù)據(jù)和視頻融合于基于包交換的IP(Internet Phone)網(wǎng)絡(luò)是目前通信技術(shù)的發(fā)展方向,其重要的技術(shù)特征是統(tǒng)計(jì)時(shí)分復(fù)用〔1〕。因此,研究將傳統(tǒng)電信的語音業(yè)務(wù)融合于IP網(wǎng)絡(luò)的技術(shù)是目前的開發(fā)熱點(diǎn)。由于在現(xiàn)有的電信語音業(yè)務(wù)中,企業(yè)和集團(tuán)的用戶占有很大比例,故,開發(fā)針對(duì)企業(yè)和集團(tuán)這樣一類大客戶的語音業(yè)務(wù)接入IP網(wǎng)絡(luò)的方案具有特別重要的現(xiàn)實(shí)意義。
??? 目前,企業(yè)和集團(tuán)大客戶的語音通信采用兩種方案。一,通過PBX(Private Branch Exchange,用戶交換機(jī))接入到傳統(tǒng)的PSTN(Public Switching Telephone Network,公用交換電話網(wǎng))網(wǎng)實(shí)現(xiàn)語音通信;二,在PBX上加一個(gè)VoIP(Voice Over IP)網(wǎng)關(guān)將話音業(yè)務(wù)接入到IP網(wǎng),即,所謂的IP-PBX方案〔2〕,如圖1所示。
??? 盡管上述IP-PBX解決方案解決了語音到IP網(wǎng)的接入,但是,這種實(shí)現(xiàn)方案需要用戶配備PBX。PBX價(jià)格昂貴,對(duì)企業(yè)而言并不經(jīng)濟(jì)。為此,本文提出了使用Channel Bank來代替PBX,與數(shù)字VoIP網(wǎng)關(guān)相結(jié)合,組成IPCB的解決方案。該方案的主要特點(diǎn)在于,很方便地實(shí)現(xiàn)大客戶語音到IP網(wǎng)絡(luò)的接入,同時(shí),將大客戶內(nèi)部的語音交換移植到IP語音網(wǎng)關(guān)上,通過軟交換來完成。
2 IPCB的基本功能
??? IPCB是要實(shí)現(xiàn)大客戶的語音業(yè)務(wù)到IP網(wǎng)的接入,通過IP網(wǎng)絡(luò)與遠(yuǎn)端的用戶進(jìn)行語音通信。因此,IPCB應(yīng)具有下列基本功能:
??? (1) 完成用戶側(cè)和網(wǎng)絡(luò)側(cè)的呼叫建立和釋放。?
??? (2) 同時(shí)完成96路語音編碼(ITU?T的G系列協(xié)議,G.711,G.723,G.729)、RTP(Routing Table Protocol)打包解包、回聲消除、靜音檢測,并提供收端緩存等語音功能。
??? (3) 用戶側(cè)通過通道組(Channel Bank)轉(zhuǎn)換而來的數(shù)字中繼信令,完成與網(wǎng)絡(luò)側(cè)Q.931或H.245信令之間的轉(zhuǎn)換。?
??? (4) 在通話開始時(shí)采集計(jì)費(fèi)信息,并在通話結(jié)束時(shí)經(jīng)過網(wǎng)守向計(jì)費(fèi)/認(rèn)證中心發(fā)送計(jì)費(fèi)信息。?
??? (5) 自動(dòng)識(shí)別語音和傳真業(yè)務(wù),傳真符合T.38協(xié)議。?
??? (6) 為用戶提供交互式語音提示IVR(Interactive Voice Register)。?
??? (7) 支持產(chǎn)生與檢測DTMF(Double Tone Multiple Frequency,雙音多頻),用于遠(yuǎn)端電話用戶的第2次撥號(hào)。?
??? (8) IP網(wǎng)關(guān)支持卡號(hào)用戶和主叫號(hào)用戶的使用。?
??? 由于Channel Bank沒有交換模塊,因此,IPCB除了要完成上述用戶側(cè)與IP網(wǎng)絡(luò)側(cè)之間的信令和協(xié)議的轉(zhuǎn)換、用戶與遠(yuǎn)端通信媒體流的傳輸外,還應(yīng)具有實(shí)現(xiàn)Channel Bank上各個(gè)通道之間的語音交換的功能。?
3 IPCB的結(jié)構(gòu)
??? IPCB由Channel Bank和VoIP語音網(wǎng)關(guān)兩部分組成,它的結(jié)構(gòu)如圖2所示。IPCB的一端通過VoIP語音網(wǎng)關(guān)的以太接口連接到外部的IP網(wǎng),另一端通過Channel Bank的用戶電路模塊接24部普通電話(S口)或接交換機(jī)的24條模擬用戶線(O口)。在IPCB內(nèi)部,Channel Bank和VoIP網(wǎng)關(guān)之間通過T1中繼線相連。
??? VoIP網(wǎng)關(guān)的底層為語音板卡和以太網(wǎng)卡,中層為操作系統(tǒng)和H.323協(xié)議棧,上層為應(yīng)用程序。語音板卡采用的是Audiocodes公司的TP240,最多可提供四個(gè)T1/E1中繼接口,可以同時(shí)處理96/128路語音的編/解碼,語音的RTP打、解包及Channel Bank上各個(gè)通道的狀態(tài)檢測和信號(hào)提取。語音的RTP/RTCP(Routing Table Protocol /Realtime Transport Control Protocol,路由表協(xié)議/實(shí)時(shí)傳輸控制協(xié)議)流可以通過板卡上的以太網(wǎng)接口傳輸。IP網(wǎng)絡(luò)側(cè)的信令則通過VoIP網(wǎng)關(guān)上的以太網(wǎng)卡傳輸。
??? Channel Bank是一個(gè)通道組,由用戶電路模塊和數(shù)字中繼模塊組成,可以提供24路語音的接入和一個(gè)T1中繼接口。用戶電路模塊可完成饋電、過壓保護(hù)、振鈴、監(jiān)測、混合電路、測試和編/解碼等項(xiàng)功能。數(shù)字中繼模塊則將收到的數(shù)字信號(hào)送到T1中繼相應(yīng)的時(shí)隙上,T1中繼的24個(gè)時(shí)隙與Channel Bank的24個(gè)語音通道一一對(duì)應(yīng)。
4 系統(tǒng)設(shè)計(jì)的基本原理?
??? 在IPCB系統(tǒng)中,語音的編/解碼、媒體流的打/解包是通過VoIP網(wǎng)關(guān)上的硬件語音板卡來完成的,而用戶模擬語音與數(shù)字語音之間的轉(zhuǎn)換,以及模擬信令與數(shù)字中繼信令之間的轉(zhuǎn)換是由Channel Bank來完成的。因此,系統(tǒng)設(shè)計(jì)主要集中在軟件的開發(fā)上,下面介紹系統(tǒng)軟件模塊劃分、呼叫及交換實(shí)現(xiàn)的基本原理。
4.1 IPCB網(wǎng)關(guān)的模塊劃分?
??? IPCB的語音網(wǎng)關(guān)模塊可劃分為五個(gè)部分,即:PSTN呼叫處理,H.323呼叫處理,網(wǎng)關(guān)用戶界面管理,公共定時(shí)服務(wù)器和網(wǎng)管代理。其結(jié)構(gòu)如圖3所示。
??? PSTN呼叫處理模塊:利用板卡TP240提供的API(Application Program Interface,應(yīng)用程序接口)函數(shù)來完成信令的提取,DTMF收號(hào),交互式語音(IVR)提示,語音通道的管理,呼叫流程的控制以及信令之間的轉(zhuǎn)換等功能。?
??? H.323呼叫處理模塊: 利用H.323協(xié)議棧提供的API函數(shù)來完成H.323的RAS(Remote AccessService,遠(yuǎn)程接入服務(wù))消息、Q.931消息和H.245消息的傳送,進(jìn)行呼叫流程的控制以及H.323消息到適配信令的轉(zhuǎn)換。
??? 定時(shí)器模塊:為整個(gè)網(wǎng)關(guān)應(yīng)用程序提供定時(shí)。當(dāng)上述模塊之一需要開始一個(gè)新的定時(shí)時(shí),就可以通過發(fā)送消息的形式來向模塊請(qǐng)求。當(dāng)定時(shí)時(shí)間到達(dá)時(shí),定時(shí)器會(huì)向請(qǐng)求定時(shí)的模塊發(fā)送定時(shí)響應(yīng)消息。
??? 網(wǎng)關(guān)用戶界面管理:完成網(wǎng)關(guān)系統(tǒng)初始化,向其它模塊發(fā)送人機(jī)管理界面命令,接收顯示網(wǎng)關(guān)狀態(tài)、告警消息和故障檢測結(jié)果,實(shí)現(xiàn)與PSTN的呼叫處理以及H.323呼叫處理模塊的交互通信。
4.2 信令的轉(zhuǎn)換?
??? IPCB的VoIP語音網(wǎng)關(guān)與Channel Bank之間采用的是PSTN數(shù)字中繼信令,與IP網(wǎng)絡(luò)之間采用的是H.323信令。網(wǎng)關(guān)必須對(duì)這兩種信令進(jìn)行轉(zhuǎn)換??紤]到系統(tǒng)的可擴(kuò)展性,在PSTN網(wǎng)的信令和IP網(wǎng)的信令之間構(gòu)造一組中間適配信令,如圖4所示。
??? 這樣,網(wǎng)關(guān)兩側(cè)網(wǎng)絡(luò)的協(xié)議信令都向中間適配信令轉(zhuǎn)換,通過中間適配信令實(shí)現(xiàn)兩個(gè)網(wǎng)絡(luò)協(xié)議信令的轉(zhuǎn)換。這種將兩個(gè)網(wǎng)絡(luò)的協(xié)議信令都向一個(gè)中間適配信令轉(zhuǎn)換的好處是隔離了一側(cè)網(wǎng)絡(luò)新增信令協(xié)議所引起的變化直接對(duì)另一側(cè)網(wǎng)絡(luò)協(xié)議的影響,以便網(wǎng)絡(luò)引入新的信令協(xié)議,使系統(tǒng)具有良好的可擴(kuò)展性。為了保證這種設(shè)計(jì)的有效性,在設(shè)計(jì)初期應(yīng)仔細(xì)地構(gòu)建中間適配信令集,以確保多協(xié)議引入時(shí),中間適配信令的完備性。在上述的網(wǎng)關(guān)模塊劃分中,PSTN呼叫處理模塊和H.323呼叫處理模塊的主要功能之一,就是分別完成PSTN的協(xié)議信令和H.323協(xié)議信令到中間適配信令之間的轉(zhuǎn)換。
4.3 呼叫處理?
4.3.1 呼叫的處理方式?
??? IP電話呼叫處理的過程是一個(gè)典型的在有限狀態(tài)之間進(jìn)行狀態(tài)變遷的過程。呼叫處理可根據(jù)輸入的呼叫信令消息和當(dāng)前狀態(tài),完成相應(yīng)的呼叫信令處理,確定變遷到達(dá)的新狀態(tài)。因此,對(duì)于一個(gè)具體的呼叫,可以采用有限狀態(tài)機(jī)(Finite State Machine,FSM)的方法來進(jìn)行過程的描述和處理。
??? 另一方面,在VoIP網(wǎng)關(guān)中會(huì)同時(shí)存在多個(gè)呼叫。呼叫處理必須考慮對(duì)并發(fā)呼叫的實(shí)時(shí)處理。鑒于傳統(tǒng)的多進(jìn)程處理并發(fā)事件的方式所存在的問題(呼叫越多,進(jìn)程切換的開銷越大,內(nèi)存資源占用越多),在IPCB的網(wǎng)關(guān)中采用單呼叫進(jìn)程實(shí)現(xiàn)多呼叫的并發(fā)處理。
??? 單進(jìn)程處理多呼叫并發(fā)事件的設(shè)計(jì)方法是:當(dāng)一個(gè)呼叫產(chǎn)生時(shí),進(jìn)程生成一個(gè)記錄該呼叫的呼叫控制塊,稱為CCB(Call Control Block)。呼叫控制塊記錄了該呼叫的主叫號(hào)碼、被叫號(hào)碼和當(dāng)前的狀態(tài)等信息。因此,多個(gè)呼叫就產(chǎn)生了與之對(duì)應(yīng)的多個(gè)呼叫控制塊,進(jìn)而組成一個(gè)呼叫控制表。當(dāng)一個(gè)呼叫的信令到達(dá)時(shí),呼叫處理進(jìn)程基于主叫號(hào)碼和被叫號(hào)碼查尋呼叫控制表,從表中讀取該呼叫對(duì)應(yīng)的呼叫控制塊,然后,根據(jù)輸入的呼叫信令和當(dāng)前狀態(tài),完成相應(yīng)的呼叫信令處理,確定將要轉(zhuǎn)移的新狀態(tài),并遷移到該狀態(tài)。最后,用遷移的新狀態(tài)更新該呼叫控制塊的內(nèi)容。
??? VoIP網(wǎng)關(guān)對(duì)CCB的管理是動(dòng)態(tài)完成的。當(dāng)呼叫開始時(shí),CCB被創(chuàng)建,呼叫終止時(shí),CCB被撤消。
??? 若當(dāng)前狀態(tài)下接收到一個(gè)不希望到達(dá)的呼叫信令,則可視作該呼叫過程發(fā)生故障,此時(shí),可退出呼叫處理過程。
4.3.2 IPCB的語音交換控制?
??? Channel Bank上的用戶與遠(yuǎn)端的用戶進(jìn)行語音通信可分為三種情況:一是,Channel Bank上的用戶作為主叫,呼叫遠(yuǎn)端的用戶;其二是,主/被叫都是Channel Bank上的用戶;三是,IP網(wǎng)絡(luò)側(cè)遠(yuǎn)端的用戶作為主叫,呼叫Channel Bank上的用戶。
??? 為了實(shí)現(xiàn)對(duì)上述語音交換的控制,在VoIP電話網(wǎng)關(guān)上,對(duì)Channel Bank上每一個(gè)通道時(shí)隙指配一個(gè)特定邏輯電話號(hào)碼,建立一張中繼時(shí)隙通道號(hào)與對(duì)應(yīng)的邏輯電話號(hào)碼的映射表。當(dāng)VoIP網(wǎng)關(guān)收到來自Channel Bank上的用戶呼叫時(shí),網(wǎng)關(guān)首先通過該呼叫所處的時(shí)隙通道號(hào)碼,查詢映射表,獲取主叫用戶的邏輯電話號(hào)碼,然后,經(jīng)過網(wǎng)守向認(rèn)證計(jì)費(fèi)中心認(rèn)證該邏輯電話號(hào)碼的合法性和呼叫權(quán)限,在認(rèn)證鑒權(quán)通過后,從呼叫的消息中讀取被叫的電話號(hào)碼,搜索時(shí)隙通道與邏輯電話映射表。結(jié)果有下面兩種情況:
??? (1)如果被叫電話號(hào)碼與映射表中的某個(gè)邏輯電話號(hào)碼相匹配,則表明是一個(gè)Channel Bank內(nèi)部的兩個(gè)電話的通信,就從表中讀取該邏輯電話號(hào)碼對(duì)應(yīng)的中繼號(hào)和中繼時(shí)隙通道號(hào)。在獲得了主叫和被叫在數(shù)字中繼上對(duì)應(yīng)的中繼和物理時(shí)隙通道后,通過包交換技術(shù)將語音包交換到對(duì)應(yīng)的物理通道上,從而實(shí)現(xiàn)內(nèi)部各用戶的語音交換。
??? (2)如果被叫電話號(hào)碼未能與映射表中所有的邏輯電話號(hào)碼相匹配,則表明是一個(gè)到IP網(wǎng)絡(luò)側(cè)的遠(yuǎn)端呼叫。網(wǎng)關(guān)向網(wǎng)守請(qǐng)求地址解析,獲取遠(yuǎn)端網(wǎng)關(guān)或H.323終端的信令I(lǐng)P地址。然后,發(fā)起快速呼叫連接,同時(shí)告訴對(duì)端本地的媒體流的IP地址和將要用于本呼叫的接收媒體流的邏輯通道號(hào)。在收到遠(yuǎn)端返回的呼叫進(jìn)行(Call Proceeding)或提醒消息(Alerting)后,從中讀取對(duì)端的用于媒體流傳送的IP地址和將用于本次呼叫接收媒體流的邏輯通道號(hào)。在遠(yuǎn)端的被叫用戶摘機(jī)后,在相應(yīng)媒體流IP地址和對(duì)應(yīng)的邏輯通道上實(shí)現(xiàn)語音交換。
??? 如果IPCB收到一個(gè)來自IP網(wǎng)絡(luò)側(cè)的呼叫連接請(qǐng)求,則表明是遠(yuǎn)端用戶呼叫Channel Bank上的用戶,于是,VoIP網(wǎng)關(guān)將分別讀取被叫電話號(hào)碼、對(duì)端用于媒體流通信的IP地址和接收本次通話媒體流的邏輯通道號(hào)。然后,查尋中繼時(shí)隙通道號(hào)與邏輯電話號(hào)碼的映射表,獲取該邏輯電話號(hào)碼對(duì)應(yīng)的中繼號(hào)和物理時(shí)隙通道號(hào),檢測該被叫用戶的忙閑狀態(tài)。如果該用戶空閑,則向網(wǎng)絡(luò)側(cè)的遠(yuǎn)端用戶發(fā)回響應(yīng)消息,告訴遠(yuǎn)端,本網(wǎng)關(guān)用于媒體流通信的IP地址和用于接收對(duì)端媒體流的邏輯通道號(hào),在用戶摘機(jī)后實(shí)現(xiàn)媒體流的交換。
4.3.3 呼叫的接入和接出控制?
??? 一個(gè)具有商業(yè)實(shí)用價(jià)值的IP電話系統(tǒng)必須能對(duì)呼叫的接入和接出進(jìn)行控制,并且在通話結(jié)束之后,能將通話的時(shí)長通過網(wǎng)守告訴計(jì)費(fèi)系統(tǒng),從而實(shí)現(xiàn)對(duì)通話的控制和費(fèi)用的結(jié)算。
??? 當(dāng)Channel Bank上的用戶發(fā)起呼叫時(shí),網(wǎng)關(guān)通過呼叫所處的通道號(hào)來獲取它的邏輯電話號(hào)碼,然后經(jīng)網(wǎng)守到數(shù)據(jù)庫對(duì)主叫用戶的身份及其撥打權(quán)限進(jìn)行認(rèn)證。如果主叫為合法用戶時(shí),查詢被叫地是否在用戶允許撥打的權(quán)限范圍內(nèi),確定是否為其接續(xù)。
??? 當(dāng)遠(yuǎn)端的呼叫到來時(shí),網(wǎng)關(guān)要到網(wǎng)守對(duì)主叫網(wǎng)關(guān)的合法性進(jìn)行認(rèn)證。如果認(rèn)證通過,網(wǎng)關(guān)通過查詢地址映射表來[FL(2K2]判斷被叫是否為本Channel Bank 上的用戶。如果不是,則釋放呼叫,否則,返回該號(hào)碼所對(duì)應(yīng)的時(shí)隙通道號(hào)。網(wǎng)關(guān)查詢?cè)撏ǖ赖臓顟B(tài),若被叫空閑,接續(xù)此次呼叫,否則,拒絕該呼叫。上述控制流程如圖5所示。
5 IPCB的實(shí)現(xiàn)結(jié)果
??? IPCB的硬件設(shè)備如圖6所示。在Channel Bank的24個(gè)端口中任選兩個(gè)和電話相連。選用其中一部電話作為主叫,如果被叫也是Channel Bank上的用戶,則會(huì)聽到Channel Bank上的另一部電話振鈴,摘機(jī)后,就可以進(jìn)行正常的語音通信,語音編碼方式選用G.711。同樣,Channel Bank上的電話也可以和遠(yuǎn)端的電話進(jìn)行通信,語音編碼方式選用G.723。IPCB可以為用戶提供語音交互,對(duì)于卡號(hào)用戶,IPCB還支持密碼修改、話費(fèi)查詢等業(yè)務(wù)。?
??? 目前已經(jīng)將IPCB 網(wǎng)關(guān)放到一個(gè)已投入正常使用的IP電話系統(tǒng)中進(jìn)行了實(shí)現(xiàn)并通過了測試。在測試中,呼叫接通率在90%以上,采用MFR2信令時(shí),平均呼叫建立時(shí)間小于5s,端到端的時(shí)延在200ms-300ms之間??梢钥闯?,IPCB工作正常、性能穩(wěn)定。
6 結(jié)束語
??? 本文提出了一種基于Channel Bank和VoIP語音網(wǎng)關(guān)的大客戶語音接入IP網(wǎng)絡(luò)的IPCB方案,對(duì)IPCB的體系結(jié)構(gòu)、基本功能和設(shè)計(jì)原理進(jìn)行了系統(tǒng)的論述,并在此基礎(chǔ)上進(jìn)行了實(shí)際的開發(fā)。該方案的主要特點(diǎn)在于:(1) 能很好地實(shí)現(xiàn)大客戶語音業(yè)務(wù)到IP網(wǎng)的接入;(2) 大客戶內(nèi)部的語音通信通過軟交換來實(shí)現(xiàn),從而去掉了對(duì)具有交換模塊的PBX的需求;(3)系統(tǒng)的擴(kuò)容可以通過多個(gè)Channel Bank的簡單堆疊來實(shí)現(xiàn);(4) 采用硬件進(jìn)行數(shù)據(jù)的壓縮和解壓,處理更加高速有效。實(shí)際運(yùn)行結(jié)果表明,該方案切實(shí)可行。因此,基于Channel Bank和IP語音網(wǎng)關(guān)構(gòu)成IPCB的體系結(jié)構(gòu),為大客戶的話音業(yè)務(wù)接入到IP網(wǎng)提供了一種新的解決方案。
參考文獻(xiàn)?
1 葉華,謝瑋,梁勇,崔進(jìn)水. IP電話/傳真技術(shù). 北京:人民郵電出版社, 2000
2 李魯湘,宋健. VoIP的新熱點(diǎn)—IPPBX. 通訊世界, 2000(10)
3 ITU-T Recommendation H.323. Audiovisual and Mul-timedia Systems.1996
評(píng)論