Asterisk与freeswitch都是流行的开源软交换服务器,Asterisk出现的比较早,大概在1999年开始此项目,应该是最流行的开源软交换服务器,整个社区上下游都已经很成熟。freeswitch算是后起之秀,2005年才开始,但性能和稳定性都明显优于Asterisk,但由于出现的晚,导致其功能的多样性及与其他系统的集成难度高于asterisk。自从FreeSWITCH在安东尼老兄开发出一个版本后,可能就不断有人在问AsteriskORFreeSWITCH?

FreeSWITCH是一个电话的软交换解决方案,包括一个软电话和软交换机用以提供语音和聊天的产品驱动。FreeSWITCH可以用作交换机引擎、PBX、多媒体网关以及多媒体服务器等。FreeSWITCH的是一个跨平台的开源电话交换平台,具有很强的伸缩性。旨在为音频、视频、文字或任何其他形式的媒体,提供路由和互连通信协议。它创建于2006年,填补了许多商业解决方案的的空白。FreeSWITCH的也提供了一个稳定的电话平台,许多广泛使用的免费电话就是在使用它开发的。
Asterisk是一个开放源代码的软件VoIPPBX系统,它是一个运行在Linux环境下的纯软件实施方案。Asterisk是一种功能非常齐全的应用程序,提供了许多电信功能,能够把你的x86机器变成你自己的交换机,还能够当作一台企业级的商用交换机。
1. 发展简史
Asterisk
Asterisk的开始是因为1999年一位名叫马克·斯宾塞的计算机工程师的努力。他的小团队以Linux支持系统的标签开发了Asterisk软件交换机,后来更名为Digim。从那时起,Asterisk交换机已被改编成各种PBX系统,如闪存中的免费PBX,弹性磁盘和PBX。这里值得指出的是,Asterisk本身就是一个开源的PBX,可以用作独立的电话系统。
FreeSWITCH
FreeSWITCH始于一位名为安东尼·米泽尔的知名Asterisk开发人员决定修复Asterisk平台的一些感知问题。这导致了最终被称为自由开关的从头开始的构建。该项目于2006年宣布,最终于2007年启动。自由交换机是一个真正的开源软件交换机,使用自由交换机作为其交换核心的两个最大的平台是sipXcom(最初是sipxecs)和FusionPBX。
2. 底层交换机设计
从本质上讲,Asterisk在设计上是令人难以置信的模块化的,这在查看产品的最终安装时有些明显。这也表明了该系统的基本构成。Asterisk在运行时利用共享资源,包括软件线程,这可能会导致在负载过重的情况下出现问题。
尽管有一些复杂的代码,这些代码是用多种编程语言编写的,但Asterisk非常有效,正如在网络上浮动的许多改编作品中看到的那样。FreeSWITCH有不同的方法,系统是用C语言编写的,并且对核心程序基础采取了更结构化的方法。进程线程在内存中一致地执行,这与Asterisk设计不同,因为每个通道都维护自己的线程和内存空间。这也可能是自由开关通常具有比Asterisk更大的RAM需求的原因之一。
自由开关有一个非常明确的API,作为几个层存在,每个层都保持一个独特的角色。另一方面,由于模块化设计,Asterisk稍微有点零碎(尽管FreeSWITCH实际上也使用模块化模型),并且没有为其线程提供读/写锁定功能。这种设计保护了FreeSWITCHAPI,这与Asterisk不同,Asterisk更开放的设计允许额外的实验,但错误和错误的机会可能更高。
Asterisk依赖于常规文本文件进行配置,而自由开关则基于XML文件。尽管XML在编辑时有点痛苦,但其好处体现在自动化方面,这在将多个任务组合在一起时非常有价值。
3. 硬件和软件要求
硬件要求很难精确量化,因为每个系统(即利用底层交换机的每个PBX)都有它试图实现的不同目标,因此要求可能会有很大差异。但是,我们必须从某个地方开始,下表1是给定PBX的合理最小起点,最多有15个电话分机和5个并发呼叫。
低于所述规格的规格可能适用于非常轻的系统,但这样的系统将提供非常有限的功能。最小安装的建议应仅适用于测试计算机,因为生产系统在峰值负载条件之上应始终具有额外的裕量(理想情况下为50%)。随着电话分机和功能数量的增加,您的整体系统性能在处理能力和内存方面也应该如此,更不用说带宽了。
低于所述规格的规格可能适用于非常轻的系统,但这样的系统将提供非常有限的功能。最小安装的建议应仅适用于测试计算机,因为生产系统在峰值负载条件之上应始终具有额外的裕量(理想情况下为50%)。随着电话分机和功能数量的增加,您的整体系统性能在处理能力和内存方面也应该如此,更不用说带宽了。
最多15个电话分机的最低要求
SwitchRequirement | Asterisk | FreeSWITCH |
---|---|---|
Processor | SingleCore,atleast700MHz | SingleCore,atleast1GHz |
RAM | 512MB | 1GB |
Storage | 10GB | 10GB |
OperatingSystem | Linuxbased,32or64bit | Linuxbased,64bit |
4. 基本功能
在基本级别,每个交换机都提供大多数相同的功能。对于这两个系统,创建扩展和网关大致相同。根据RAM和核心性能,每个系统都可以处理底层服务器可以支持的任意数量的用户。
两者都旨在最大限度地利用SIP在网络上的设备以及其他端点(如移动网络,其他VoIP系统和公共交换电话网络(PSTN))之间进行呼叫。Asterisk还提供了一个特定的接口,用于通过称为IAX的特定协议连接到其他Asterisk系统。FreeSWITCH利用不同的集群机制,这不仅增强了实现的强大功能,还可以为某些配置提供冗余。
现代电话功能是所有Asterisk和自由开关系统所固有的。语音信箱,通话录音和IVR菜单往往可用于市场上任何FreeSWITCH或基于Asterisk的交换机。通常提供门户,以便管理员,超级管理员和用户可以使用安全的浏览器登录来管理其特定功能集。
5. 高级功能
也许任何FreeSWITCH系统最显着的功能之一是能够提供多租户(多客户)功能。虽然可以在功能强大的Asterisk系统上托管多个租户,但通常它是一个建立在Asterisk之上的昂贵专有系统(尽管Elasix最近发布了其软件的开源多租户版本)。FreeSWITCH本机提供了为不同域或子域上的多个租户提供服务的功能,这些租户将以隔离的方式运行,确保租户无法通过分机呼叫呼叫另一个租户。这两个系统都可以与使用相同平台的其他安装进行通信。Asterisk可以有效地与其他系统进行通信,无论是使用相同的确切平台还是同一底层平台的不同变体(即Asterisk)。但是,FreeSWITCH具有强大的互连功能,允许群集中的单个系统填充多个角色。与Windows服务器环境非常相似,将每个角色安装到单个服务器可能是一种糟糕的做法,至少对于较大的PBX安装而言。FreeSWITCH允许集群中的每个系统履行特定的职责,而Asterisk在核心级别上是一成不变的。
Asterisk和自由交换机系统能够提供更高级的通信功能,如聊天(即时消息),视频通话和会议。大多数Asterisk系统不支持没有附加组件的IM功能(通常是OpenFire,尽管还有其他附加组件可用)。在某些情况下,此模块需要付费,但某些系统(如Elastix)在激活后免费提供OpenFire。自由交换机只需要激活XMPP服务并正确配置允许使用此功能的设备。
电话会议是两个交换机的标准功能,很难确定明确的赢家。Asterisk的设计适用于电话拨入式(与我见面)会议,自由交换机也是如此。自由开关是可配置的,这样一个独特的系统就可以将此任务作为唯一的功能来处理。当把这个负担放在一个“包罗万象”的FreeSWITCH系统上时,资源就得到了很好的管理,适合一台供电的机器。然而,当唯一的FreeSWITCH系统专用于会议时,这为更大的语音会议场景打开了大门,例如在企业层面,成百上千的人需要参加公司范围的电话会议。
网络上的部署差异很大。Asterisk有相当多的不同端点管理模块(例如IP电话和软电话),通常需要大约100美元左右的小额财务投资,这使您可以访问市场上各种流行电话的配置软件。FreeSWITCH系统在配置电话的平台中内置了多个配置文件,但是与Asterisk可用的配置文件相比,它有些缺乏,并且通常仅支持来自主流供应商(如思科和Polycom)的最流行的IP电话型号。但是,值得指出的是,在自动配置方面,FreeSWITCH正在迅速赶上。
通过网关将任一交换机连接到外部世界通常很简单。自由交换机和Asterisk系统都有一些用于网关配置的示例模板。由于Asterisk是一个更成熟的系统,大多数SIP提供商都有明确的文档将其系统连接到Asterisk网关,对于FreeSWITCH来说就不那么清楚了。如果您遇到问题,值得快速致电您的SIP提供商,这可能会节省大量的调试时间。
6. 基于FreeSWITCH和Asterisk的流行软件PBX
在表2中,我们列出了当今市场上许多流行的开源软件PBX,并说明了它们的底层交换机,换句话说,无论是基于Asterisk还是基于FreeSWITCH的交换机。这些系统都可以免费下载和使用,尽管您受GPL许可证的约束,因此,如果您要对底层软件进行设计更改,请记住这一点。
Asterisk与自由交换机的高级视图
更多区别
一、适者生存,在两个系统并存的近十年间,由于发展路线和目标不一样。同时由于支持对外连接方式的差异以及历史的不同。FreePBX和ElasTix等老牌的Asterisk第三方GUI产品对Asterisk的发展起到了非常大的作用,从而带动Asterisk在用户量上非常的大,也带动了基于Asterisk的硬件厂商比较多。而FreeSWITCH的目标相对宏大,而一般的GUI又无法去发挥FreeSWITCH的优势,所以FreeSWITCH的用户相对而言是较为专业的一些人群,但专业的人群毕竟是少数,再加上历史发展的原因,基于FreeSWITCH的硬件厂商非常少。当然,FreeSWITCH直接硬件厂商少也不算太大的事,毕竟现在有非常多的网关、SIP中继等可用,所以FreeSWITCH的硬件支持倒也问题不大。在两者并行发展的这些年中,总有人会比来比去,没有必要,存在就是道理,有人用它,自然有相对应的道理,没必要一定要分个高下,适合你自己的才是最好的!
二、在具体的需求中,Asterisk和FreeSWITCH的适用范围不一样。Asterisk早期版本的单核处理模式,让其对系统的资源需求并不大,除非存在转码等,否则其所占用的资源特别少,故而很多的小盒子等装上Asterisk就可以简单用起来。而FreeSWITCH的高性能和大并发等是以消耗系统资源来实现的。指望一个小内存,cpu低性能的盒子去使用FreeSWITCH实现一些应用,一般来说,就是把一个身材高大的大人,让他穿一件小朋友的衣服,然后要让他用力去工作,衣服受不了啊!那么在这里,如果一个企业只有十来个人,没有多的研发能力或IT能力,让他们去用一个FreeSWITCH的系统,不是强人所难吗?按需所配才是合适的。
国外主流的的Asterisk和基于免费交换机的PBX系统
PBX | Asterisk | FreeSWITCH |
---|---|---|
FreePBX | ✔ | ✖ |
Elastix | ✔ | ✖ |
PBXinaFlash(PIAF) | ✔ | ✖ |
SipXcom | ✖ | ✔ |
SipXecs | ✖ | ✔ |
FusionPBX | ✖ |
✔ |
7. Asterisk与自由开关的摘要
为了总结我们上面的分析,表3提供了每个开关突出位置的高级视图。Asterisk与自由交换机的高级视图
功能 | Asterisk | FreeSWITCH |
---|---|---|
在处理和内存功能方面占用服务器小。 | ✔ | ✖ |
寿命和支持机制。访问论坛,文档,网关配置,快速错误修复等。 | ✔ | ✖ |
用于自动配置的终端设备模板的大型数据库(即IP电话和软电话)。 | ✔ | ✖ |
功能丰富的平台,具有高级功能,如通话录音,会议,聊天。 | ✔ | ✔ |
多租户平台,其中每个租户(客户)都是隔离的。 | ✖ | ✔ |
在给定相同的底层硬件的情况下,增强了最大化并发呼叫的功能。 | ✖ | ✔ |
群集功能,用于在每次安装时拆分功能(例如,一个安装处理会议)。 | ✖ | ✔ |
更多区别
一、适者生存,在两个系统并存的近十年间,由于发展路线和目标不一样。同时由于支持对外连接方式的差异以及历史的不同。FreePBX和ElasTix等老牌的Asterisk第三方GUI产品对Asterisk的发展起到了非常大的作用,从而带动Asterisk在用户量上非常的大,也带动了基于Asterisk的硬件厂商比较多。而FreeSWITCH的目标相对宏大,而一般的GUI又无法去发挥FreeSWITCH的优势,所以FreeSWITCH的用户相对而言是较为专业的一些人群,但专业的人群毕竟是少数,再加上历史发展的原因,基于FreeSWITCH的硬件厂商非常少。当然,FreeSWITCH直接硬件厂商少也不算太大的事,毕竟现在有非常多的网关、SIP中继等可用,所以FreeSWITCH的硬件支持倒也问题不大。在两者并行发展的这些年中,总有人会比来比去,没有必要,存在就是道理,有人用它,自然有相对应的道理,没必要一定要分个高下,适合你自己的才是最好的!
二、在具体的需求中,Asterisk和FreeSWITCH的适用范围不一样。Asterisk早期版本的单核处理模式,让其对系统的资源需求并不大,除非存在转码等,否则其所占用的资源特别少,故而很多的小盒子等装上Asterisk就可以简单用起来。而FreeSWITCH的高性能和大并发等是以消耗系统资源来实现的。指望一个小内存,cpu低性能的盒子去使用FreeSWITCH实现一些应用,一般来说,就是把一个身材高大的大人,让他穿一件小朋友的衣服,然后要让他用力去工作,衣服受不了啊!那么在这里,如果一个企业只有十来个人,没有多的研发能力或IT能力,让他们去用一个FreeSWITCH的系统,不是强人所难吗?按需所配才是合适的。
三、它们的产品定位和功能定位有差别。Asterisk出现的历史较早,而且由于其早期和第三方产品的结合比较多,而且它的产品定位,我的理解就是比较纯粹的IPPBX,故而功能和性能的需求不需要太多,只要满足一般的PBX需求即可,所以一般的企业用户,如果拥有IT人员,可以勉强装上,简单配置就可以用起来。而FreeSWITCH则不然,它定位于B2BUA,它的复杂性和功能性的需求要大于Asterisk,故而在太多的应用中,如果要配置使用FreeSWITCH反而是默认的XML配置最方便、实用。
四、两者不是完全对立的!就象美国的民主党和共和党一样,在对立中有合作,在合作中有竞争,在竞争中又有合作。所以没必要说我只喜欢Asterisk、我只喜欢FreeSWITCH,在自己可用和适用的环境中用它们、用好它们才是最主要的。
四、两者不是完全对立的!就象美国的民主党和共和党一样,在对立中有合作,在合作中有竞争,在竞争中又有合作。所以没必要说我只喜欢Asterisk、我只喜欢FreeSWITCH,在自己可用和适用的环境中用它们、用好它们才是最主要的。

不管是Asterisk和FreeSWITCH还是其它一些Voip产品,给我们的生活都带了变化,最典型的就是IMS系统,而且由于互联网产业的发展,传统电话语音服务的逐年递减,而全球的运营商也都为了减少2M线路高昴的成本,使用了越来越多的VoIP线路。如何面对未来,才是全球通信业从业者关心的问题,而不是Asterisk或FreeSWITCH这样的工具,该使用谁!在通信行业越来越萧条,或者说通信由原来的纯语音沟通变得更多样化的时候,再回过头来看,Asterisk和FreeSwitch这两个开源的sipb2bua系统间,在未来的语音通信中,即使脱离PSTN这一块,在实时通信中,还是会有一席之地的。