作为像Asterisk和FreeSWITCH这样的开源PBX项目的新手,我正在努力应对一些信息过载。已经阅读了Wiki上的基本FreeSWITCH文档,但仍然很少有问题。因为我对这个术语不太熟悉,所以我会尝试使用近似值。
试图创建一个小型/极简式的FreeSWITCH,需要在一台相当老的笔记本上运行(Celeron 1 1GHz,512 as,20 GSM,已经在运行Debian "Wheezy"),并将其设置为一个6端口的GSM-SIP/Jabber网关。所以,所谓“小”和“极简”,我指的是一个没有模块/可选的软件--不是绝对必要的软件(例如,不需要IVR公告,或者Skype集成)--以保持最小的内存占用,并且占用较少的硬盘不动产。
粗略的想法是有6个GSM端口(通过‘GSM开放模块’,类似于chan_dongle)的公共电话网络,和大约60个SIP扩展,并支持多达6个涉及GSM端口的呼叫,以及大约6个similar (intra )。我已经读到GSMopen模块的CPU开销非常低,所以我猜测这是可能的。
发布于 2013-08-21 13:36:20
有人能确认这是一个现实的目标吗?
是的,这是相当现实的。您需要尽可能少地进行转码,因为这是需要CPU资源的地方。但即使使用1 1Ghz,6次代码转换似乎也相当现实。但它需要测试:)
为极简式构建选择的最小模块集可能是什么?
只需从默认的模块列表开始,并添加gsmopen (我没有gsm网关的经验,无法帮助这部分)。内存占用非常低,稍后您可能需要其中的一些模块。
对于在初始构建过程中没有选择的模块,可以在以后添加这些模块吗?
据我所知,Wiki描述了这个过程。您编辑modules.conf并创建特定模块。
对于在这种配置中可以支持的最大呼叫速率有任何粗略的估计吗?为了SIP-SIP呼叫?考虑到处理器功率不足和内存不足(按照现代标准),我猜想这两者都将成为瓶颈,但添加RAM仍然是可能的(即使代价高昂且困难)。
这真的取决于你的拨号计划的复杂性。每个上下文由许多条件组成,这些条件对通道变量进行regexp匹配。所以,你的拨号计划越复杂,你得到的CPS就越少。但是对于一个6通道的网关,我不认为这是个问题。GSM网络将比你的盒子慢得多:)
我读过可以使用Lua/Python/Java等创建“钩子”。然而,如果有人分享了使用这样的钩子什么是可能的例子很少,这将使概念更加清晰。人们能否希望使用这些钩子来编写一个应用程序,比如“漏掉的呼叫日志”或“无答案的重定向”?
您可以使用FreeSWITCH控制FreeSWITCH行为的各个方面。当完全的拨号计划被外部程序重新实现时,甚至有一些例子(Kazoo这样做)。
最简单的操作模式是当您的Lua/JS/Perl/Python脚本从拨号计划中启动时:然后它接收一个“会话”对象,您可以对调用做任何您想做的事情:播放声音、桥接、向前、发出新的调用并将它们连接在一起等等。在我的博客里,有一个小的实际例子。
然后,您可以构建一个外部应用程序,该应用程序连接到FS套接字,监视事件并对活动调用执行操作。
另外,它可以在相反的方向完成:运行服务器,FS使用它的套接字库连接到它。
此外,您还可以拥有一个HTTP,它向FreeSWITCH提供部分XML配置,并在每次调用时请求这些配置(这将是最密集的CPU应用程序)。这样,您就可以从内部数据库中输入FS,并构建容错系统.
我希望这会有所帮助:)如果需要的话,你也可以在skype上找到我。
发布于 2013-08-21 10:55:02
FreeSWITCH并不真正需要内存,您可以从默认的模块集开始(最好是使用预构建的Debian包)。例如,在我的64位计算机上,FreeSWIITH进程只占用35 my的内存。
freeswitch@vx03:~$ uname -a
Linux vx03 2.6.32-5-xen-amd64 #1 SMP Thu Nov 3 05:42:31 UTC 2011 x86_64 GNU/Linux
freeswitch@vx03:~$ 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今天晚些时候,我将讨论你的其余问题。
https://stackoverflow.com/questions/18349802
复制相似问题