為了讓用戶能夠快速了解基本的FreePBX技術(shù)架構(gòu),本系列我們主要介紹FreePBX核心的底層架構(gòu)和相關(guān)的安裝部署工具:
1. 媒體服務(wù)器Asterisk,F(xiàn)reePBX的基本底層是基于Asterisk來實(shí)現(xiàn)的,Asterisk是目前世界上最受歡迎的開源軟交換平臺(tái)和開源企業(yè)通信IPPBX底層核心層。Asterisk本身完全實(shí)現(xiàn)了企業(yè)通信接口的所有支持,包括PSTN,SIP,IMS 等第三方的接口,例如Skype 等等。Asterisk同時(shí)負(fù)責(zé)企業(yè)通信的媒體處理,包括基本的呼叫功能,隊(duì)列功能,錄音功能,語音郵箱功能,企業(yè)IVR,振鈴組等等功能。
2. Web 服務(wù)器,F(xiàn)reePBX本身是一個(gè)基于Asterisk軟交換的管理界面系統(tǒng),所以需要一個(gè)web 服務(wù)器來實(shí)現(xiàn)界面配置和管理。FreePBX 所支持的web 服務(wù)器是Apache web 服務(wù)器。
3. 數(shù)據(jù)庫,為了管理企業(yè)通信的數(shù)據(jù),保存必要的配置數(shù)據(jù),我們也需要一個(gè)數(shù)據(jù)庫來保存數(shù)據(jù)。目前,F(xiàn)reePBX使用的是MySQL 開源數(shù)據(jù)庫來實(shí)現(xiàn)對(duì)系統(tǒng)數(shù)據(jù)的保存管理。
4. 開發(fā)工具:有了數(shù)據(jù)庫和web 服務(wù)器,當(dāng)然需要開發(fā)工具和開發(fā)語言來支持整個(gè)系統(tǒng)的開發(fā)。界面管理使用的是PHP語言,此語言的易用性和學(xué)習(xí)成本比較低,這也是很多開源項(xiàng)目使用PHP來做開發(fā)語言的主要原因。
當(dāng)然,F(xiàn)reePBX 底層的交互語言或者需要底層通信的語言最早使用的是Perl語言,最近的版本使用了Python。通過Python的來實(shí)現(xiàn)對(duì)FreePBX framework 進(jìn)行后臺(tái)管理,相當(dāng)方便。
另外,在FreePBX-11 開始使用了bootstrap 前端框架來實(shí)現(xiàn)界面的重新設(shè)計(jì),完全支持了PC端和其他設(shè)備對(duì)界面的靈活訪問,使得管理界面更加人性化更加友好。
5. 安裝部署,FreePBX安裝部署的方式非常靈活,充分考慮了企業(yè)用戶的使用場景。
首先,它可以支持云服務(wù)器的安裝方式,包括著名的阿里云和亞馬遜云都可以通過源代碼的方式進(jìn)行安裝,同時(shí)也支持了Docker的安裝方式,使得安裝部署變得更加靈活。
其次,用戶也可以下載ISO光盤在本地通過虛擬機(jī)安裝或者物理機(jī)例如一些硬件服務(wù)器進(jìn)行安裝配置。當(dāng)然目前市場上很多的mini 電腦和樹莓派不斷出現(xiàn),價(jià)格和性能都得到了很大的提升,用戶可以通過源代碼安裝或者直接拷貝鏡像的方式實(shí)現(xiàn)這些mini電腦的安裝,支持簡單用戶場景。
最后,所有部署方式都需要用戶根據(jù)自己的使用場景和業(yè)務(wù)需求來考慮自己的系統(tǒng)環(huán)境資源,例如存儲(chǔ)介質(zhì),帶寬,網(wǎng)卡等因素。