[摘要]IP電話(Voice Over IP,VoIP)以其廣闊的前景,先進(jìn)的技術(shù)和廉價的費用逐漸成為人們生產(chǎn)和生活中新的主流語音通信方式。本文主要在局域網(wǎng)環(huán)境下對企業(yè)級VoIP的控管設(shè)計思路以及實施方案進(jìn)行了詳細(xì)討論,提出了可行的VoIP網(wǎng)絡(luò)體系結(jié)構(gòu)并實現(xiàn)了原型系統(tǒng)。該系統(tǒng)針對實際問題,對VoIP有效地實現(xiàn)了會話檢測、話音監(jiān)聽、語音插入、錄音、話音干擾及阻斷等功能,可以滿足企業(yè)級VoIP控管工作的需要。
[關(guān)鍵詞]VoIP 網(wǎng)絡(luò)控管 網(wǎng)絡(luò)流量 MOS DTW
引言
本文主要在局域網(wǎng)環(huán)境下針對企業(yè)級VoIP的控管設(shè)計思路以及實施方案進(jìn)行了詳細(xì)討論,提出了可行的VoIP網(wǎng)絡(luò)體系結(jié)構(gòu)并實現(xiàn)了原型系統(tǒng)。實踐表明該控管系統(tǒng)可以較好地滿足企業(yè)級VoIP控管工作的需要。
一、VoIP協(xié)議解析
協(xié)議分析是進(jìn)行一切控管操作的前提。目前,VoIP主要是基于兩大協(xié)議,一是ITU-T的H 323協(xié)議,另一個是IETF提供的SIP協(xié)議。H323由呼叫控制、媒體編碼、管理控制、網(wǎng)絡(luò)安全和會議通信等等一系列協(xié)議組成,不但包括IP應(yīng)用,而且還包括IP視頻和數(shù)據(jù)應(yīng)用以及多媒體會議應(yīng)用,同時也兼顧了目前存在的PTSN,而SIP則著眼于廣域Internet上的電話應(yīng)用,因而采用了廣為使用的客戶-服務(wù)器模型,由于并未考慮與現(xiàn)存PTSN的兼容等問題,SIP要更為簡單一些。因此,盡管二者提供相似的功能,但應(yīng)用領(lǐng)域各有側(cè)重。在我國,目前主要選擇H.323為VoIP體制的基礎(chǔ),采用H 248作為網(wǎng)關(guān)設(shè)備標(biāo)準(zhǔn),因此,本文主要針對H.323進(jìn)行研究。在傳輸過程中,語音先后被封裝成RTP包、UDP包、IP包,然后經(jīng)由物理層進(jìn)行傳遞。
1.H.323和SIP的分析與比較
盡管H.323和SIP完成相似的功能,但二者還是存在一些重要的差別。
(1)協(xié)議復(fù)雜性
從復(fù)雜性來講,H.323要遠(yuǎn)勝于SIP。H.323是個相當(dāng)復(fù)雜的協(xié)議,定義了數(shù)百個元素,而SIP僅有37個頭信息:H.323用基于ASN.1的二進(jìn)制來表征其消息,并采用壓縮編碼規(guī)則(Packed Encoding Rules),這就需要特殊的編譯器進(jìn)行編譯,而相比之下,基于HTTP的SiP是利用文本來表征其信息,這使其可以很簡便的生成和編譯,同時也在糾錨、重用性方面表現(xiàn)優(yōu)異:而另一方面,H.323也利用了幾種不同的組件模型,并且為很多任務(wù)提供了多種選擇的解決方案,這也進(jìn)一步增加了H.323的復(fù)雜程度。當(dāng)然,H.323之所以復(fù)雜主要是考慮到了與傳統(tǒng)PTSN網(wǎng)絡(luò)的兼容以及提供一種對未來的多媒體通信適用的網(wǎng)絡(luò)協(xié)議。
(2)協(xié)議可擴(kuò)展性
由于SIP是基于HTTP和SMTP的協(xié)議,因此它具有一套豐富的規(guī)則集以支持可擴(kuò)展性,允許用戶定義自己的特征,只需將特征名進(jìn)行注冊后,便可進(jìn)行更加個性化的服務(wù)。而H.323則通過提供非標(biāo)準(zhǔn)參數(shù)域來提供擴(kuò)展性,但是其限制要遠(yuǎn)多于SIP。另外,在視頻與語音編碼、第三方呼叫控制機(jī)制方面,SIP也比H.323具有更好的擴(kuò)展性。
(3)協(xié)議可縮放性
H.323最初是被設(shè)計為用于簡單局域網(wǎng),盡管在最新的版本中作了改進(jìn),但仍然在域數(shù)量及多域搜索等方面弱于SIP,而其運行在TCP上的特性相比于SIP對于TCP和UDP的全面支持也具有更多的局限性。
2.RTP協(xié)議解析
實時傳輸協(xié)議(Real-time Transport Protocol,RTP)是為支持實時業(yè)務(wù)而設(shè)計的。實時業(yè)務(wù)是指業(yè)務(wù)的發(fā)送和接受必須在很短的時間內(nèi)完成。兩種典型的實時業(yè)務(wù)即音頻會話和獨立視頻幀。因此,RTP是VoIP在網(wǎng)絡(luò)傳輸中的真實載體。
RTP實際包含兩個協(xié)議,RTP協(xié)議和RTCP協(xié)議(實時傳輸控制協(xié)議)。RTP協(xié)議用于傳送實時數(shù)據(jù),采用“集成處理”和“應(yīng)用成幀”的思想。前者是指RTP一般由應(yīng)用層綜合處理,而不作為單獨的協(xié)議層使用:后者指RTP只規(guī)定所有應(yīng)用都需要的公共功能,而不追求全面和完備,允許具體應(yīng)用根據(jù)實際需要修改或增加頭部信息以滿足特定需求,一個標(biāo)準(zhǔn)的RTP分組頭部組成如圖2所示。
在這個頭部結(jié)構(gòu)中,凈荷類型(PT)、序號、時段都對數(shù)據(jù)包的發(fā)送和接收起著重要作用。其中凈荷類型定義了RTP封裝數(shù)據(jù)的格式。序號則可供接收方檢測分組丟失和恢復(fù)分組順序。
二、VoIP控管系統(tǒng)設(shè)計
1.VoIP控管系統(tǒng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)設(shè)計
VoIP控管系統(tǒng)需要實現(xiàn)對企業(yè)級VoIP網(wǎng)絡(luò)的管理,即整個控管系統(tǒng)應(yīng)搭建在企業(yè)內(nèi)部局域網(wǎng)或廣域網(wǎng)的基礎(chǔ)上。在需要完成的任務(wù)中,VoIP協(xié)議分析是其它一切話音分析的前提,因此控管系統(tǒng)需要一臺或多臺專門的監(jiān)測機(jī)完成VoIP話音協(xié)議分析的任務(wù),在完成協(xié)議分析任務(wù)后,監(jiān)測機(jī)應(yīng)將分析結(jié)果匯總至系統(tǒng)的管理者,由管理者決定如何進(jìn)行下一步的操作并統(tǒng)一調(diào)配資源,因此,系統(tǒng)中需要一臺負(fù)責(zé)任務(wù)匯總、控管決策任務(wù)的管理機(jī),系統(tǒng)管理者通過管理機(jī)得到目前VoIP網(wǎng)絡(luò)的反饋信息,并通過管理機(jī)向整個系統(tǒng)中的其它設(shè)備發(fā)出指令,完成話音分析任務(wù):由于單個機(jī)器很難完成整個VoIP網(wǎng)絡(luò)的話音分析任務(wù),系統(tǒng)中還必須加入多臺語音機(jī),專門從事說話人識別或關(guān)鍵詞檢出的任務(wù),所有語音機(jī)在管理機(jī)統(tǒng)一的調(diào)度下工作,并將識別結(jié)果返回給管理機(jī),而后系統(tǒng)管理者利用管理機(jī)的反饋信息決定采取何種控管措施,并通過監(jiān)測機(jī)干預(yù)網(wǎng)絡(luò)運行。綜上所述,VoIP控管系統(tǒng)應(yīng)該具有如圖3所示的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。
局域網(wǎng)連接部分為進(jìn)行正常VoIP通話的各種設(shè)備,在使用H.323作為VoIP協(xié)議的前提下,這些設(shè)備可包括計算機(jī)、固定電話、移動電話和智能手機(jī)等。交換機(jī)以上部分為控管部分,包括管理機(jī),語音機(jī)和監(jiān)測機(jī)。同時系統(tǒng)利用數(shù)據(jù)庫存出各種信息及操作的結(jié)果,以備查詢。
2.VoIP控管系統(tǒng)數(shù)據(jù)流設(shè)計
據(jù)上述分析,可得出的系統(tǒng)數(shù)據(jù)流圖,其中數(shù)據(jù)由監(jiān)控機(jī)在VoIP網(wǎng)絡(luò)捕獲,經(jīng)分析后傳送給管理機(jī),管理機(jī)將其分配給某臺語音機(jī)執(zhí)行說話人識別和關(guān)鍵詞檢出任務(wù),而后將結(jié)果返回至管理機(jī),最后由管理機(jī)決定如何對會話進(jìn)行管理并經(jīng)由監(jiān)測機(jī)予以實施。
3.管理機(jī)任務(wù)處理流程設(shè)計
管理機(jī)在接到監(jiān)測機(jī)的報告后對會話分析任務(wù)作統(tǒng)一調(diào)配,可能出現(xiàn)的任務(wù)包括監(jiān)聽任務(wù)(包括本地監(jiān)聽和異地監(jiān)聽),錄音任務(wù)(開始錄音/停止錄音),語音插入、話音干擾以及語音阻斷等。當(dāng)用戶通過管理機(jī)界面下達(dá)任務(wù)后,任務(wù)被寫入一個稱為命令列表的緩;中區(qū)中。管理機(jī)通過循環(huán)讀取該緩沖區(qū)的方式獲得并執(zhí)行任務(wù)。
三、控管系統(tǒng)功能模塊設(shè)計
1.RTP數(shù)據(jù)包處理
網(wǎng)絡(luò)語音包的傳輸是通過RTP/RTCP來進(jìn)行的,通常被封裝成RTP包形式的語音信息運行在UDP協(xié)議之上,從而完成傳輸層的功能。因此,VOIP的檢測實際上是對包含在UDP包中的RTP頭信息進(jìn)行檢測和分析的過程。通過利用集線器的雜收模式或交換機(jī)的高級控管功能,我們可以在不影響正常會話的前提下將一部分UDP數(shù)據(jù)包過濾出來,層層剝離包頭數(shù)據(jù)。首先從UDP包頭中取出源端口號、目的端口號、校驗和等數(shù)據(jù),而后去掉UDP包頭,再從RTP分組頭部中取出版本號、包序號、時段、凈荷類型(7bit)和同步源標(biāo)識(32bit)等字段這是生成偽裝數(shù)據(jù)包的重要信息。
在接收并分析了RTP數(shù)據(jù)包后,系統(tǒng)即可根據(jù)接收到的數(shù)據(jù)情況生成具有相同格式的RTP數(shù)據(jù)包,而后層層封裝,以UDP包的形式插入會話中,從而實現(xiàn)了插入、干擾和阻斷等操作功能。需要指出的是,在插入語音的時候,系統(tǒng)是利用一段語音重復(fù)進(jìn)行插入工作,為了得到插入語音的次數(shù)從而度量插入強(qiáng)度,把語音起始段的第一個RTP分組頭部的標(biāo)志位(M)置1,通過監(jiān)測該字段即可獲得插入語音的邊界。生成時段的RTP時鐘速率與編碼方式及所含聲道數(shù)無關(guān),等于每秒的取樣周期數(shù)。對于N聲道編碼,每個取樣周期生成N個樣值。屬于同一取樣時刻的多個聲道采樣值被置于同一分組中,不同聲道采樣的交織由編碼方式?jīng)Q定。
在電話系統(tǒng)中,話音采樣頻率均取8000Hz,這是所有話音編碼方法的基本假設(shè)。本系統(tǒng)遵從該假設(shè)并取缺省的分組間隔,其時長為20~30ms。對于數(shù)據(jù)本身的封裝來說,有多種低比特率編碼方法,如G.728、G.729和G.723.1等。但是語音編碼會造成網(wǎng)絡(luò)語音質(zhì)量的下降,其中G.729和G.723.1對語音質(zhì)量的影響較大。系統(tǒng)可以對多種格式進(jìn)行編碼,其根據(jù)是原會話的編碼格式,主要兼顧了如下幾類編碼格式
2.VOIP監(jiān)聽模塊
監(jiān)聽功能分為本地監(jiān)聽和異地監(jiān)聽。允許用戶在管理機(jī)或語音機(jī)對正在進(jìn)行通話的VoIP會話進(jìn)行監(jiān)聽。當(dāng)系統(tǒng)成功地對會話進(jìn)行解析后,管理機(jī)將向用戶顯示所有監(jiān)測范圍內(nèi)的會話。如果此時進(jìn)行的是本地監(jiān)聽,則直接由管理機(jī)啟動監(jiān)聽線程,如果是異地監(jiān)聽,則管理機(jī)須向語音機(jī)發(fā)送通信報文,遠(yuǎn)程啟動語音機(jī)的監(jiān)聽線程,即可在該語音機(jī)處進(jìn)行監(jiān)聽。監(jiān)聽模塊函數(shù)定義如下:
函數(shù)定義:void Listen Voice(CQueueBuf*onebuf,CQueueBuf*twobuf,Int*flag)
參數(shù)說明:
onebuf 傳送緩沖區(qū)類指針,用于輸入VoIP正向語音流。
onebuf:傳送緩沖區(qū)類指針,用于輸入VoIP反向語音流。
flag 停止標(biāo)志指針。
其中QueueBuf是通用的緩沖區(qū)類型,用于存放監(jiān)聽、錄音等數(shù)據(jù)。
3.VoIP錄音模塊
錄音模塊的作用在于存儲會話內(nèi)容。該功能對于特殊的場合擁有重要意義,如電話會議等。通常,該模塊與回訪功能配合使用。即在監(jiān)測到會話后,用戶可開啟錄音功能,該功能在管理機(jī)實現(xiàn),管理機(jī)將會話內(nèi)容以dat文件的形式存儲于本地路徑下。當(dāng)用戶查看會話的日志文件時,可自由選擇監(jiān)聽回放。該模塊可為用戶提供一種額外的信息保存方式。錄音模塊函數(shù)定義如下
函數(shù)定義:void RecordVoice(cQueueBuf*onebuf,CQueueBuf*twobuf,int *flag,int VoIPID)
參數(shù)說明:
onebuf:傳送緩沖區(qū)類指針,用于輸入VOIP正向語音流(主叫到被叫)。
onebuf:傳送緩沖區(qū)類指針,用于輸入VOIP反向語音流(被叫到主叫)。
flag停止標(biāo)志指針。
VOIPID VOIP唯一標(biāo)識號,本函數(shù)通過這一參數(shù)決定錄音文件名。
4.VOIP語音插入
語音插入的主要功能是在監(jiān)聽的會話中插入第三方語音,通過此功能向用戶提供某種信息或服務(wù)。根據(jù)實際需求的分析,語音插入可分為兩種,第一種為自動插入,即系統(tǒng)處于自動控管狀態(tài)時,如果經(jīng)由消息機(jī)制發(fā)現(xiàn)某關(guān)鍵詞或說話人出現(xiàn)在會話中,則自行插入語音以給用戶以提示。另一種方式為手動插入,即在人工干預(yù)下,對發(fā)現(xiàn)的特定會話實行特定的語音插入功能。系統(tǒng)為用戶提供了多種可供插入的pcm文件,對應(yīng)于不同的凈荷類型。當(dāng)用戶決定插入后,系統(tǒng)根據(jù)分析出來的會話凈荷類型,選擇相應(yīng)語音進(jìn)行插入。其實現(xiàn)原理是基于靜音檢測的過程,系統(tǒng)不斷檢測會話中是否有靜音出現(xiàn),當(dāng)出現(xiàn)靜音,系統(tǒng)便向會話發(fā)送數(shù)據(jù)包,將事先準(zhǔn)備好的語音插入到會話當(dāng)中去。
四、結(jié)論
本文在局域網(wǎng)的環(huán)境下,研究了企業(yè)級VOIP控管的需求、規(guī)則,并以此為依據(jù)搭建了適合企業(yè)級VOIP使用的控管系統(tǒng)實驗平臺。在此基礎(chǔ)上中,針對VOIP控管有關(guān)的問題進(jìn)行了詳細(xì)研究,最后給出了控管系統(tǒng)監(jiān)控、錄音等模塊的實現(xiàn)模型。今后可對網(wǎng)絡(luò)應(yīng)用環(huán)境進(jìn)行適當(dāng)擴(kuò)展,在保證VoIP控管系統(tǒng)功能的前提下,進(jìn)一步提高頑健性(Robustness),拓展系統(tǒng)的應(yīng)用范圍。