基于Asterisk的電話會議系統(tǒng)研究與設計
近年來,通信行業(yè)的開源項目不斷涌現(xiàn),打破了傳統(tǒng)電信設備制造商對電信技術的壟斷,為下一代網(wǎng)絡(NGN)的發(fā)展注入了無限活力。 Asterisk是一個由Digium公司發(fā)起的開放源代碼軟件,以通用公共許可證(GNU GPL)的授權方式發(fā)行。Asterisk運行在Linux上,以軟件的方式實現(xiàn)了(專用分組交換機,PBX)的大部分功能,是一個較全面的通信平臺,既支持傳統(tǒng)的模擬電話設備和數(shù)字電話設備,也支持新興的基于網(wǎng)絡的VoIP語音系統(tǒng)。Asterisk在小企業(yè)預算可承受的范圍內(nèi)提供了商業(yè)交換機的功能和可伸縮性。
1 基于Asterisk技術的電話會議系統(tǒng)研究
1.1 Asterisk特點
Asterisk是一款完全用軟件實現(xiàn),可以運行在Linux,BSD,MacOS X等操作系統(tǒng)上的IP分組交換機產(chǎn)品,是世界上最著名的開源VoIP服務器軟件之一,為各國的VoIP愛好者所癡迷。實際上,Asterisk已經(jīng)成為開源項目中語音交換和PBX的標準,而且基于Asterisk的VoIP解決方案也已成為許多中小企業(yè)的首選方案。Asterisk可以使用目前流行的編解碼器和協(xié)議將VoIP電話系統(tǒng)與傳統(tǒng)的公共交換電話系統(tǒng)集成起來,以較低的通話費用,提供較高的語音質(zhì)量。
Asterisk可以連接數(shù)目眾多的接口類型,包括模擬接口、數(shù)字線路,也可以透明地橋接VoIP之間的一些協(xié)議,包括SIP,H.323,IAX,MGCP等協(xié)議。
1.2 Asterisk體系結構
Asterisk體系結構簡單,與傳統(tǒng)電話技術的不同之處在于本質(zhì)上扮演著一個中間件的角色,連接底層不同的電話技術到上層應用,創(chuàng)建了一個部署異構電話技術互通的持久性通信環(huán)境。
Asterisk是基于模塊化設計的,多種模塊都可以在運行中通過動態(tài)模塊加載并初始化,用戶可以根據(jù)實際需要動態(tài)增加相應的模塊。As-terisk提供了四種基本的API函數(shù)集,以便于不同組件的交互,如信道API、Codec轉(zhuǎn)換器API、文件格式API及應用程序API。對于應用程序API允許第三方廠商開發(fā)基于Asterisk的應用程序,本文正是通過這些接口,完成在電話呼叫階段與Asterisk的交互,實現(xiàn)電話會議系統(tǒng)。
1.3 系統(tǒng)開發(fā)環(huán)境
在開發(fā)系統(tǒng)時,由于Asterisk源碼便于在Linux中編譯和運行,相對比較安全,對中小型軟件的研發(fā)中,Linux可成為開發(fā)的首選操作系統(tǒng)。因此本系統(tǒng)選擇Redhat Linux 9.0服務器版,在此基礎上安裝Asterisk軟件包,該設計系統(tǒng)使用Asterisk開源平臺。Asterisk的核心主要由三個包組成:Asterisk主程序(Asterisk)、Zapate電話驅(qū)動(Zaptel)和PRI庫(libpri),還有一些其他軟件,如語音附加包等。要實現(xiàn)電話會議,只需在Asterisk上對zaptel.conf,zapata.conf,sip.conf,extensions.conf和meetme.conf進行配置,就可以通過固定模擬電話、SIP電話完成常規(guī)呼叫和電話會議等功能。開發(fā)語言采用PHP/MySQL/Apache。
2 基于Asterisk技術的電話會議系統(tǒng)設計
2.1 設計方案
該系統(tǒng)是基于Web的電話會議業(yè)務,用戶可以通過軟終端、普通話機、SIP硬終端、手機等參加Web會議。會議管理員通過Web頁面預約會議,并對會議進行實時管理,會議信息通過Web頁面顯示。
Web電話會議系統(tǒng)的功能包括預約會議、創(chuàng)建會議、呼叫成員、會議結束后處理一些計費等一些基本的步驟。當許多用戶并發(fā)開會時,如何保證用戶間的獨立性;大部分API都是異步調(diào)用,如何同步整個邏輯流程;這些都是在此設計中重點考慮的問題。
(1)業(yè)務邏輯與Web服務器的通信。后臺業(yè)務需要接收并處理Web頁面發(fā)來的請求,同時向頁面反饋處理結果。后臺要響應所有頁面Sess-ion發(fā)來的請求,因此這個問題可以分解為兩個問題,一個是通信機制;另一個是頁面Session與后臺會議的對應關系。這個問題涉及到Web電話會議系統(tǒng)的架構,Web Conference業(yè)務是基于Web的業(yè)務,通過Asterisk軟件平臺提供的API/AGI實現(xiàn)。
(2)業(yè)務邏輯對呼叫會話的管理。在開會過程中每個會議都要對應一個會議呼叫會話(CCSession),通過這些呼叫會話向AGI網(wǎng)關發(fā)API調(diào)用請求,接收AGI網(wǎng)關的響應,區(qū)分響應該交給哪個業(yè)務處理,是對什么請求的響應。
(3)業(yè)務邏輯對會議的管理。后臺要并發(fā)處理多個會議,必須把這些會議組織起來。向上要提供會議狀態(tài),向下能夠區(qū)分接收的API響應屬于哪個會議或成員。
2.2 設計思路
經(jīng)過分析可以得出,Web電話會議系統(tǒng)的設計思路是:通過用戶登錄到Web服務器啟動業(yè)務,頁面通過PHPAGI調(diào)用Asterisk Manager API Action實現(xiàn)與Asterisk平臺的交互。Asterisk調(diào)用AGI來訪問數(shù)據(jù)庫讀取相應數(shù)據(jù),并通過撥號方案、Meetme達到會議呼叫、會議管控與會議計費等功能,如圖1所示。
2.3 設計開發(fā)舉例
(1)Extensions.conf:Asterisk的核心配置文件,該配置文件形成PBX的呼叫方案。
電話打進處理:
其中:agi conf_admin.php是根據(jù)用戶輸入信息讀取會議資料屬性;011862556787948是被允許訪問的中國號碼。
Web觸發(fā)電話呼入處理:
(2)Meetme.conf:用于配置MeetMe會議系統(tǒng)。在配置文件中,這里可以定義會議室和進入會議的密碼來建立一個電話會議。
(3)Zaptel.conf:用于配置連接傳統(tǒng)模擬電話硬件接口,建立一個FXS和FXO通道。
(4)Zapata.conf:用于為系統(tǒng)中安裝的電話硬件配置Asterisk接口。通過Zaptel.conf和Zapata.conf對FXS/FXO接口通道進行配置,可以將模擬話機經(jīng)過FXS接口,PSTN經(jīng)過FXO或E1/T1接入到Asterisk服務器,也可以通過SIP協(xié)議,經(jīng)過軟交換實現(xiàn)VoIP的落地。
(5)Sip.conf:用于配置SIP協(xié)議。該文件的開始是一個[general]section,包含通道設置,所有用戶和對端的默認選項。可以對系統(tǒng)注冊的每個用戶設置用戶名、連接類型、認證密碼和指令地點(用于控制電話的權限,以及如何處理此號碼的呼入呼叫)。
通過以上配置文件的設置,即可實現(xiàn)電話會議系統(tǒng)的功能。
另外,Asterisk有開源數(shù)據(jù)庫MySQL和開源編程語言PHP,Perl接口,所有經(jīng)過Asterisk服務器的呼叫詳細記錄(CallDetailRecord)都被記錄在數(shù)據(jù)庫中,如雙方的號碼、ID、通話時間等。根據(jù)產(chǎn)生的呼叫詳細記錄信息,可以監(jiān)控通信流量,進行流量統(tǒng)計和通話計費,而且Asterisk的數(shù)據(jù)庫能和企業(yè)的現(xiàn)有數(shù)據(jù)庫整合到一起。用戶還可以通過PHP語言開發(fā)的Web程序?qū)ySQL進行維護。
3 結語
這里提出的基于SIP協(xié)議的IP電話系統(tǒng)設計具有投資小,成本低,方便實用,可靠性強,安全性好等優(yōu)點。該系統(tǒng)建立在通用的計算機網(wǎng)絡上,可在局域網(wǎng)或Internet上使用,對用戶無特殊要求,另外還可擴展成融文本、視頻會議于一體的網(wǎng)絡交互式多媒體系統(tǒng);由于終端較多地借助了PC資源,所以系統(tǒng)具備了較高的智能性;系統(tǒng)設計規(guī)范,管理模塊集中化,不僅降低了成本,而且更便于系統(tǒng)的操作和維護。由于該系統(tǒng)秉承了TCP/UDP協(xié)議族的簡單性,絕大多數(shù)功能都能通過軟件實現(xiàn),且可進行簡單的改進,因此可以滿足不同的應用和需要。
隨著IP技術的發(fā)展,傳統(tǒng)電信網(wǎng)絡將逐步向IP網(wǎng)絡發(fā)展。NGN是融合多業(yè)務的IP網(wǎng),是電信網(wǎng)絡的發(fā)展方向。Asterisk與Linux等開源項目結合,可以在原有網(wǎng)絡基礎上為企業(yè)提供IP語音解決方案,具有廣闊的應用前景。Asterisk以其獨特的優(yōu)勢獲得越來越多企業(yè)的青睞。開源項目在通信行業(yè)的不斷發(fā)展,會給通信業(yè)注入無限的活力。