當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于Asterisk的電話會(huì)議系統(tǒng)研究與設(shè)計(jì)

0 引言
    近年來(lái),通信行業(yè)的開(kāi)源項(xiàng)目不斷涌現(xiàn),打破了傳統(tǒng)電信設(shè)備制造商對(duì)電信技術(shù)的壟斷,為下一代網(wǎng)絡(luò)(NGN)的發(fā)展注入了無(wú)限活力。  Asterisk是一個(gè)由Digium公司發(fā)起的開(kāi)放源代碼軟件,以通用公共許可證(GNU GPL)的授權(quán)方式發(fā)行。Asterisk運(yùn)行在Linux上,以軟件的方式實(shí)現(xiàn)了(專用分組交換機(jī),PBX)的大部分功能,是一個(gè)較全面的通信平臺(tái),既支持傳統(tǒng)的模擬電話設(shè)備和數(shù)字電話設(shè)備,也支持新興的基于網(wǎng)絡(luò)的VoIP語(yǔ)音系統(tǒng)。Asterisk在小企業(yè)預(yù)算可承受的范圍內(nèi)提供了商業(yè)交換機(jī)的功能和可伸縮性。

1 基于Asterisk技術(shù)的電話會(huì)議系統(tǒng)研究
1.1 Asterisk特點(diǎn)

    Asterisk是一款完全用軟件實(shí)現(xiàn),可以運(yùn)行在Linux,BSD,MacOS X等操作系統(tǒng)上的IP分組交換機(jī)產(chǎn)品,是世界上最著名的開(kāi)源VoIP服務(wù)器軟件之一,為各國(guó)的VoIP愛(ài)好者所癡迷。實(shí)際上,Asterisk已經(jīng)成為開(kāi)源項(xiàng)目中語(yǔ)音交換和PBX的標(biāo)準(zhǔn),而且基于Asterisk的VoIP解決方案也已成為許多中小企業(yè)的首選方案。Asterisk可以使用目前流行的編解碼器和協(xié)議將VoIP電話系統(tǒng)與傳統(tǒng)的公共交換電話系統(tǒng)集成起來(lái),以較低的通話費(fèi)用,提供較高的語(yǔ)音質(zhì)量。
    Asterisk可以連接數(shù)目眾多的接口類型,包括模擬接口、數(shù)字線路,也可以透明地橋接VoIP之間的一些協(xié)議,包括SIP,H.323,IAX,MGCP等協(xié)議。
1.2 Asterisk體系結(jié)構(gòu)
    Asterisk體系結(jié)構(gòu)簡(jiǎn)單,與傳統(tǒng)電話技術(shù)的不同之處在于本質(zhì)上扮演著一個(gè)中間件的角色,連接底層不同的電話技術(shù)到上層應(yīng)用,創(chuàng)建了一個(gè)部署異構(gòu)電話技術(shù)互通的持久性通信環(huán)境。
    Asterisk是基于模塊化設(shè)計(jì)的,多種模塊都可以在運(yùn)行中通過(guò)動(dòng)態(tài)模塊加載并初始化,用戶可以根據(jù)實(shí)際需要?jiǎng)討B(tài)增加相應(yīng)的模塊。As-terisk提供了四種基本的API函數(shù)集,以便于不同組件的交互,如信道API、Codec轉(zhuǎn)換器API、文件格式API及應(yīng)用程序API。對(duì)于應(yīng)用程序API允許第三方廠商開(kāi)發(fā)基于Asterisk的應(yīng)用程序,本文正是通過(guò)這些接口,完成在電話呼叫階段與Asterisk的交互,實(shí)現(xiàn)電話會(huì)議系統(tǒng)。
1.3 系統(tǒng)開(kāi)發(fā)環(huán)境
    在開(kāi)發(fā)系統(tǒng)時(shí),由于Asterisk源碼便于在Linux中編譯和運(yùn)行,相對(duì)比較安全,對(duì)中小型軟件的研發(fā)中,Linux可成為開(kāi)發(fā)的首選操作系統(tǒng)。因此本系統(tǒng)選擇Redhat Linux 9.0服務(wù)器版,在此基礎(chǔ)上安裝Asterisk軟件包,該設(shè)計(jì)系統(tǒng)使用Asterisk開(kāi)源平臺(tái)。Asterisk的核心主要由三個(gè)包組成:Asterisk主程序(Asterisk)、Zapate電話驅(qū)動(dòng)(Zaptel)和PRI庫(kù)(libpri),還有一些其他軟件,如語(yǔ)音附加包等。要實(shí)現(xiàn)電話會(huì)議,只需在Asterisk上對(duì)zaptel.conf,zapata.conf,sip.conf,extensions.conf和meetme.conf進(jìn)行配置,就可以通過(guò)固定模擬電話、SIP電話完成常規(guī)呼叫和電話會(huì)議等功能。開(kāi)發(fā)語(yǔ)言采用PHP/MySQL/Apache。

2 基于Asterisk技術(shù)的電話會(huì)議系統(tǒng)設(shè)計(jì)
2.1 設(shè)計(jì)方案

    該系統(tǒng)是基于Web的電話會(huì)議業(yè)務(wù),用戶可以通過(guò)軟終端、普通話機(jī)、SIP硬終端、手機(jī)等參加Web會(huì)議。會(huì)議管理員通過(guò)Web頁(yè)面預(yù)約會(huì)議,并對(duì)會(huì)議進(jìn)行實(shí)時(shí)管理,會(huì)議信息通過(guò)Web頁(yè)面顯示。
    Web電話會(huì)議系統(tǒng)的功能包括預(yù)約會(huì)議、創(chuàng)建會(huì)議、呼叫成員、會(huì)議結(jié)束后處理一些計(jì)費(fèi)等一些基本的步驟。當(dāng)許多用戶并發(fā)開(kāi)會(huì)時(shí),如何保證用戶間的獨(dú)立性;大部分API都是異步調(diào)用,如何同步整個(gè)邏輯流程;這些都是在此設(shè)計(jì)中重點(diǎn)考慮的問(wèn)題。
    (1)業(yè)務(wù)邏輯與Web服務(wù)器的通信。后臺(tái)業(yè)務(wù)需要接收并處理Web頁(yè)面發(fā)來(lái)的請(qǐng)求,同時(shí)向頁(yè)面反饋處理結(jié)果。后臺(tái)要響應(yīng)所有頁(yè)面Sess-ion發(fā)來(lái)的請(qǐng)求,因此這個(gè)問(wèn)題可以分解為兩個(gè)問(wèn)題,一個(gè)是通信機(jī)制;另一個(gè)是頁(yè)面Session與后臺(tái)會(huì)議的對(duì)應(yīng)關(guān)系。這個(gè)問(wèn)題涉及到Web電話會(huì)議系統(tǒng)的架構(gòu),Web Conference業(yè)務(wù)是基于Web的業(yè)務(wù),通過(guò)Asterisk軟件平臺(tái)提供的API/AGI實(shí)現(xiàn)。
    (2)業(yè)務(wù)邏輯對(duì)呼叫會(huì)話的管理。在開(kāi)會(huì)過(guò)程中每個(gè)會(huì)議都要對(duì)應(yīng)一個(gè)會(huì)議呼叫會(huì)話(CCSession),通過(guò)這些呼叫會(huì)話向AGI網(wǎng)關(guān)發(fā)API調(diào)用請(qǐng)求,接收AGI網(wǎng)關(guān)的響應(yīng),區(qū)分響應(yīng)該交給哪個(gè)業(yè)務(wù)處理,是對(duì)什么請(qǐng)求的響應(yīng)。
    (3)業(yè)務(wù)邏輯對(duì)會(huì)議的管理。后臺(tái)要并發(fā)處理多個(gè)會(huì)議,必須把這些會(huì)議組織起來(lái)。向上要提供會(huì)議狀態(tài),向下能夠區(qū)分接收的API響應(yīng)屬于哪個(gè)會(huì)議或成員。
2.2 設(shè)計(jì)思路
    經(jīng)過(guò)分析可以得出,Web電話會(huì)議系統(tǒng)的設(shè)計(jì)思路是:通過(guò)用戶登錄到Web服務(wù)器啟動(dòng)業(yè)務(wù),頁(yè)面通過(guò)PHPAGI調(diào)用Asterisk Manager API Action實(shí)現(xiàn)與Asterisk平臺(tái)的交互。Asterisk調(diào)用AGI來(lái)訪問(wèn)數(shù)據(jù)庫(kù)讀取相應(yīng)數(shù)據(jù),并通過(guò)撥號(hào)方案、Meetme達(dá)到會(huì)議呼叫、會(huì)議管控與會(huì)議計(jì)費(fèi)等功能,如圖1所示。[!--empirenews.page--]


2.3 設(shè)計(jì)開(kāi)發(fā)舉例
    (1)Extensions.conf:Asterisk的核心配置文件,該配置文件形成PBX的呼叫方案。
    電話打進(jìn)處理:
   
其中:agi conf_admin.php是根據(jù)用戶輸入信息讀取會(huì)議資料屬性;011862556787948是被允許訪問(wèn)的中國(guó)號(hào)碼。
    Web觸發(fā)電話呼入處理:
   
    (2)Meetme.conf:用于配置MeetMe會(huì)議系統(tǒng)。在配置文件中,這里可以定義會(huì)議室和進(jìn)入會(huì)議的密碼來(lái)建立一個(gè)電話會(huì)議。
    (3)Zaptel.conf:用于配置連接傳統(tǒng)模擬電話硬件接口,建立一個(gè)FXS和FXO通道。
    (4)Zapata.conf:用于為系統(tǒng)中安裝的電話硬件配置Asterisk接口。通過(guò)Zaptel.conf和Zapata.conf對(duì)FXS/FXO接口通道進(jìn)行配置,可以將模擬話機(jī)經(jīng)過(guò)FXS接口,PSTN經(jīng)過(guò)FXO或E1/T1接入到Asterisk服務(wù)器,也可以通過(guò)SIP協(xié)議,經(jīng)過(guò)軟交換實(shí)現(xiàn)VoIP的落地。
    (5)Sip.conf:用于配置SIP協(xié)議。該文件的開(kāi)始是一個(gè)[general]section,包含通道設(shè)置,所有用戶和對(duì)端的默認(rèn)選項(xiàng)。可以對(duì)系統(tǒng)注冊(cè)的每個(gè)用戶設(shè)置用戶名、連接類型、認(rèn)證密碼和指令地點(diǎn)(用于控制電話的權(quán)限,以及如何處理此號(hào)碼的呼入呼叫)。
    通過(guò)以上配置文件的設(shè)置,即可實(shí)現(xiàn)電話會(huì)議系統(tǒng)的功能。
    另外,Asterisk有開(kāi)源數(shù)據(jù)庫(kù)MySQL和開(kāi)源編程語(yǔ)言PHP,Perl接口,所有經(jīng)過(guò)Asterisk服務(wù)器的呼叫詳細(xì)記錄(CallDetailRecord)都被記錄在數(shù)據(jù)庫(kù)中,如雙方的號(hào)碼、ID、通話時(shí)間等。根據(jù)產(chǎn)生的呼叫詳細(xì)記錄信息,可以監(jiān)控通信流量,進(jìn)行流量統(tǒng)計(jì)和通話計(jì)費(fèi),而且Asterisk的數(shù)據(jù)庫(kù)能和企業(yè)的現(xiàn)有數(shù)據(jù)庫(kù)整合到一起。用戶還可以通過(guò)PHP語(yǔ)言開(kāi)發(fā)的Web程序?qū)ySQL進(jìn)行維護(hù)。

3 結(jié)語(yǔ)
    這里提出的基于SIP協(xié)議的IP電話系統(tǒng)設(shè)計(jì)具有投資小,成本低,方便實(shí)用,可靠性強(qiáng),安全性好等優(yōu)點(diǎn)。該系統(tǒng)建立在通用的計(jì)算機(jī)網(wǎng)絡(luò)上,可在局域網(wǎng)或Internet上使用,對(duì)用戶無(wú)特殊要求,另外還可擴(kuò)展成融文本、視頻會(huì)議于一體的網(wǎng)絡(luò)交互式多媒體系統(tǒng);由于終端較多地借助了PC資源,所以系統(tǒng)具備了較高的智能性;系統(tǒng)設(shè)計(jì)規(guī)范,管理模塊集中化,不僅降低了成本,而且更便于系統(tǒng)的操作和維護(hù)。由于該系統(tǒng)秉承了TCP/UDP協(xié)議族的簡(jiǎn)單性,絕大多數(shù)功能都能通過(guò)軟件實(shí)現(xiàn),且可進(jìn)行簡(jiǎn)單的改進(jìn),因此可以滿足不同的應(yīng)用和需要。
    隨著IP技術(shù)的發(fā)展,傳統(tǒng)電信網(wǎng)絡(luò)將逐步向IP網(wǎng)絡(luò)發(fā)展。NGN是融合多業(yè)務(wù)的IP網(wǎng),是電信網(wǎng)絡(luò)的發(fā)展方向。Asterisk與Linux等開(kāi)源項(xiàng)目結(jié)合,可以在原有網(wǎng)絡(luò)基礎(chǔ)上為企業(yè)提供IP語(yǔ)音解決方案,具有廣闊的應(yīng)用前景。Asterisk以其獨(dú)特的優(yōu)勢(shì)獲得越來(lái)越多企業(yè)的青睞。開(kāi)源項(xiàng)目在通信行業(yè)的不斷發(fā)展,會(huì)給通信業(yè)注入無(wú)限的活力。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉