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