當(dāng)談到開源PBX電話系統(tǒng)時(shí),有兩個(gè)相互競爭的底層交換機(jī)往往會搶走風(fēng)頭,它們是FreeSWITCH和Asterisk。在這篇FreeSWITCH與Asterisk的文章中,我們將概述每個(gè)交換機(jī),并查看一些核心功能以及它們之間的區(qū)別。我們還將回顧一些基于每個(gè)交換機(jī)構(gòu)建的主流的PBX系統(tǒng)。
我公司提供IP PBX各類通信方案應(yīng)用,及各類SIP終端,同行均以廠價(jià)銷售。歡迎咨詢喔!
發(fā)展簡史
Asterisk
Asterisk的誕生是因?yàn)?999年一位名叫MarkSpencer的計(jì)算機(jī)工程師的努力。他的小團(tuán)隊(duì)以LinuxSupportSystems的標(biāo)簽開發(fā)了Asterisk軟件交換機(jī),后來更名為Digium。從那時(shí)起,Asterisk交換機(jī)已經(jīng)適應(yīng)了各種各樣的PBX系統(tǒng),如FreePBX,Elastix和PBXinaFlash。這里值得指出的是,Asterisk本身就是一個(gè)開源的PBX,可以用作獨(dú)立的電話系統(tǒng)。
FreeSWITCH
FreeSWITCH始于一位名叫AnthonyMinessale的知名Asterisk開發(fā)人員決定修復(fù)Asterisk平臺的一些感知問題。這導(dǎo)致了最終被稱為FreeSWITCH的基礎(chǔ)構(gòu)建。該項(xiàng)目于2006年宣布,最終于2007年啟動。FreeSWITCH是一個(gè)真正的開源軟件交換機(jī),使用FreeSWITCH作為其交換核心的兩個(gè)最大的平臺是sipXcom(最初作為sipXecs)和FusionPBX。
底層交換機(jī)設(shè)計(jì)
從本質(zhì)上講,Asterisk在設(shè)計(jì)上是令人難以置信的模塊化,這在查看產(chǎn)品的最終安裝時(shí)有些明顯。這也表明了該系統(tǒng)的基本組成。Asterisk在運(yùn)行時(shí)利用共享資源,包括軟件線程,這可能會導(dǎo)致在高調(diào)用負(fù)載下出現(xiàn)問題。
盡管有一些復(fù)雜的代碼,這些代碼是用多種編程語言編寫的,但Asterisk非常有效,正如在網(wǎng)絡(luò)上漂浮的許多改編作品所看到的那樣。FreeSWITCH有不同的方法,系統(tǒng)是用C語言編寫的,并采用更結(jié)構(gòu)化的方法作為核心程序基礎(chǔ)。進(jìn)程線程在內(nèi)存中一致地執(zhí)行,這與Asterisk設(shè)計(jì)不同,因?yàn)槊總€(gè)通道都維護(hù)自己的線程和內(nèi)存空間。這也可能是FreeSWITCH通常具有比Asterisk更大的RAM要求的原因之一。
FreeSWITCH有一個(gè)非常明確的API,作為幾個(gè)層存在,每個(gè)層都維護(hù)一個(gè)獨(dú)特的角色。另一方面,由于模塊化設(shè)計(jì),Asterisk稍微有點(diǎn)分散(盡管FreeSWITCH實(shí)際上也使用模塊化模型),并且沒有為其線程提供讀/寫鎖定功能。這種設(shè)計(jì)保護(hù)了FreeSWITCHAPI,這與Asterisk不同,Asterisk更開放的設(shè)計(jì)允許額外的實(shí)驗(yàn),但錯(cuò)誤和錯(cuò)誤的機(jī)會可能更高。
Asterisk依靠常規(guī)文本文件進(jìn)行配置,而FreeSWITCH基于XML文件。盡管XML在編輯時(shí)有點(diǎn)痛苦,但其好處體現(xiàn)在自動化方面,這在將多個(gè)任務(wù)組合在一起時(shí)非常有價(jià)值。
硬件和軟件要求
硬件要求很難精確量化,因?yàn)槊總€(gè)系統(tǒng)(即利用底層交換機(jī)的每個(gè)PBX)都有不同的目標(biāo),因此要求可能會有很大差異。但是,我們必須從某個(gè)地方開始,下面的表1是給定PBX的合理最小起點(diǎn),最多有15個(gè)電話分機(jī)和5個(gè)并發(fā)呼叫。
低于所述規(guī)格的規(guī)格可能適用于非常輕的系統(tǒng),但這樣的系統(tǒng)將提供非常有限的功能。最小安裝的建議應(yīng)僅適用于測試機(jī)器,因?yàn)樯a(chǎn)系統(tǒng)應(yīng)始終在峰值負(fù)載條件(理想情況下為50%)之上具有額外的裕量。隨著電話分機(jī)和功能數(shù)量的增加,在處理能力和內(nèi)存方面的整體系統(tǒng)性能也應(yīng)該增加,更不用說帶寬了。
SwitchRequirement
Asterisk
FreeSWITCH
處理器
單核,至少700MHz
單核,至少1GHz
公羊
512兆字節(jié)
1國標(biāo)
存儲
10兆字節(jié)
10兆字節(jié)
操作系統(tǒng)
基于Linux,32位或64位
基于Linux的64位
大多數(shù)AsteriskPBX都非常輕巧,很容易在非?;镜臋C(jī)器上運(yùn)行。在我們的一些測試中,我們使用2000年代初的筆記本電腦來制作PBX指南,并且沒有產(chǎn)生任何重大問題。但是,這僅用于測試目的,而不用于生產(chǎn)環(huán)境。
大多數(shù)FreeSWITCH系統(tǒng)會推薦一個(gè)更現(xiàn)代的系統(tǒng)來按預(yù)期運(yùn)行。較輕的系統(tǒng)可以很好地進(jìn)行測試,但通常基于FreeSWITCH的系統(tǒng)設(shè)計(jì)用于處理更大的負(fù)載,因此具有更高的性能需求和RAM要求。事實(shí)上,大多數(shù)FreeSWITCHPBX都會推薦一個(gè)現(xiàn)代四核處理器,每個(gè)核心運(yùn)行2GHz,至少8GB的RAM和大約80GB的存儲空間,因此系統(tǒng)運(yùn)行毫不費(fèi)力,并且有擴(kuò)展空間。請記住,對于任一平臺,IVR菜單的錄音通話、語音郵件和系統(tǒng)錄音每分鐘的錄制都需要至少1MB的存儲空間,具體取決于采樣率和壓縮。根據(jù)每個(gè)系統(tǒng)所需的記錄量,需要調(diào)整存儲。
同樣值得指出的是,鑒于相同的底層硬件和軟件規(guī)范,F(xiàn)reeSWITCH可以處理比Asterisk多得多的并發(fā)調(diào)用。事實(shí)上,有些人認(rèn)為并發(fā)呼叫增加了四倍,但很難對此給予太多的信任,因?yàn)樗坪鯖]有官方的測試程序,而且大部分測試都是在5年前進(jìn)行的。在這段時(shí)間里,已經(jīng)編寫了很多軟件。可以在此處找到一些用于FreeSWITCH并發(fā)調(diào)用的真實(shí)示例以及硬件和軟件規(guī)范。
基本功能
在基本級別,每個(gè)交換機(jī)都提供大多數(shù)相同的功能。對于任一系統(tǒng),創(chuàng)建擴(kuò)展和網(wǎng)關(guān)都大致相同。每個(gè)系統(tǒng)都可以根據(jù)RAM和核心性能處理底層服務(wù)器可以支持的許多用戶。