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