2013-08-21 49 views
5

作爲一個非常陌生的開源PBX項目,如AsteriskFreeSWITCH,我正在處理一些信息過載問題。已經閱讀了Wiki上的基本FreeSWITCH文檔,但仍然有幾個問題。由於我對術語不太熟悉,我會嘗試使用近似的近似值。FreeSWITCH最小安裝和模塊選擇

試圖創建FreeSWITCH的小型/簡約版本,需要在相當舊的筆記本電腦(賽揚1GHz,512MB RAM,20GB硬盤,已經運行Debian「Wheezy」)上運行,並將其設置爲6位,端口GSM-SIP/Jabber網關。因此,「小」和「簡約」是指沒有必要的模塊/可選軟件(例如,不需要IVR通知或Skype集成)的模塊/可選軟件,以保持內存佔用最小,並且佔用較少的硬盤空間。

大概的想法是擁有6個針對公共電話網絡的GSM端口(通過「GSM開放式模塊」,類似於chan_dongle),約60個SIP擴展,支持多達6個涉及GSM端口的呼叫,以及約6個SIP -SIP呼叫(集團電話內部),在此設置。我已經讀過,GSMopen模塊的CPU開銷很低,所以我猜這是可能的。

  1. 有人可以證實這是一個現實的目標?
  2. 什麼可能是爲簡約構建選擇的最小模塊集合?
  3. 對於在初始構建期間未選擇的模塊,可以稍後添加嗎?如果是這樣,是否需要我完全重建FreeSWITCH,只需要模塊,或者構建所有東西,但只需要進行配置更改以確保模塊已加載並配置?
  4. 對這種配置中可支持的最大呼叫速率有什麼粗略估計嗎?對於SIP-SIP呼叫?鑑於處理器功能不足,內存小(根據現代標準),我猜測這兩者都應該是瓶頸,但添加內存仍然是可能的(即使成本高昂和困難)。
  5. 我讀過可以使用Lua/Python/Java等創建「鉤子」。但是如果有人共享共享幾個例子 - 所有這些都可以使用這種鉤子,它會使概念更清晰。有人希望使用這些鉤子來編寫像「未接電話記錄」或「無應答重定向」的應用程序嗎?
+0

我在https://github.com/olivecoder/freeswitch-ivr – olivecoder

回答

4

有人可以證實這是一個現實的目標?

是的,這是相當現實的。您需要儘可能少地進行轉碼,因爲這是需要CPU資源的地方。但即使使用1Ghz Celeron,6代碼轉換的會話看起來也很現實。但它需要測試:)

什麼可能是最小的一組模塊選擇爲簡約構建?

剛從默認的模塊列表開始,並添加gsmopen(我沒有使用gsm網關的經驗,無法幫助那部分)。內存佔用非常低,您可能稍後需要其中一些模塊。

對於初始構建期間未選擇的模塊,可以稍後添加嗎?

就我所知,Wiki描述了這個過程。你編輯modules.conf並製作特定的模塊。

有沒有對這種配置可支持的最大呼叫速率有什麼粗略估計?對於SIP-SIP呼叫?鑑於處理器功能不足,內存小(根據現代標準),我猜測這兩者都應該是瓶頸,但添加內存仍然是可能的(即使成本高昂和困難)。

這真的取決於你的撥號方案的複雜性。每個上下文都由許多條件組成,這些條件對通道變量進行正則表達式匹配。所以,你的撥號方案越複雜,你獲得的CPS就越少。但對於6通道網關,我不認爲這是一個問題。 GSM網絡將比你的盒子慢很多:)

我讀過「鉤子」可以使用Lua/Python/Java等創建。但是,如果有人共享共享幾個例子 - 什麼都可能使用這樣的鉤子,它會使概念更清晰。有人希望使用這些鉤子來編寫像「未接電話記錄」或「無應答重定向」的應用程序嗎?

您可以使用FreeSWITCH控制FreeSWITCH行爲的每個方面。甚至有一些例子,當一個外部程序重新實現了完整的撥號方案時(Kazoo就是這樣做的)。

操作最簡單的方式是當你的Lua/JS /的Perl/Python的腳本是從撥號方案中推出:那麼它收到一個「會話」對象,你可以做任何你想要與呼叫:播放聲音,橋接,前進,撥打新電話並將它們連接在一起,等等。 Here in my blog有一個小實例。

然後,您可以構建一個連接到FS套接字的外部應用程序,並監視事件並對活動呼叫執行操作。另外,它可以在相反的方向完成:你運行一個服務器,並且FS通過它的套接字庫連接到它。另外,你可以有一個HTTP服務,它將一些XML配置傳遞給FreeSWITCH,並且它在每次調用時都會請求這些(這將是CPU密集度最高的應用程序)。這樣,您可以從某個內部數據庫提供FS,並構建容錯系統。

我希望這可以幫助:) 如果需要,你也可以在Skype中找到我。

+0

優秀的答案,是的,它確實有幫助。我確實從您的博客中注意到您的Skype和GTalk ID。你非常友善,可以提供幫助。 – jay

1

FreeSWITCH實際上並不需要內存,您可以簡單地使用默認的模塊組(最好使用預先編譯的Debian軟件包)。例如,在我的64位機器上,FreeSWIITH進程只佔用35MB的內存。

[email protected]:~$ uname -a 
Linux vx03 2.6.32-5-xen-amd64 #1 SMP Thu Nov 3 05:42:31 UTC 2011 x86_64 GNU/Linux 
[email protected]:~$ ps -p 11873 v 
    PID TTY  STAT TIME MAJFL TRS DRS RSS %MEM COMMAND 
11873 ?  S<l 10:29  0  0 258136 36852 2.3 /opt/freeswitch/bin/freeswitch -nc -rp -nonat -u freeswitch -g freeswitch 

我將通過您的問題,剩下的以後走到今天

+0

也有一個python IVR的例子,這本書是必讀的。它會使您快速瞭解系統並解答您的問題:http://www.packtpub.com/freeswitch-1-2/book –

+0

謝謝@Stanislav。這非常令人鼓舞。在預編譯的Debian軟件包列表中,我沒有發現mod_gsmopen的提及,這就是我爲什麼要自己構建它的原因。你能證實嗎?此外,Debian顯示Freeswitch約10-12包。不確定所有這些都構成了最小集合。 至於那本書,我看到一個電子書格式的交易,所以我會立即繼續購買它!感謝您的建議。 – icarus74

+0

你說得對,gsmopen模塊沒有打包(還)。但從源頭構建它並沒有什麼大不了的。在你適中的硬件上,編譯可能需要大約半個小時的時間。 –