通信系统集成

细说FreeSwitch与Asterisk软交换系统

Asterisk 与freeswitch都是流行的开源软交换服务器,Asterisk出现的比较早,大概在1999年开始此项目,应该是最流行的开源软交换服务器,整个社区上下游都已经很成熟。freeswitch 算是后起之秀,2005年才开始,但性能和稳定性都明显优于Asterisk,但由于出现的 晚,导致其功能的多样性及与其他系统的集成难度高于asterisk。自从FreeSWITCH在安东尼老兄开发出一个版本后,可能就不断有人在问Asterisk OR FreeSWITCH?
voip通信图
FreeSWITCH是一个电话的软交换解决方案,包括一个软电话和软交换机用以提供语音和聊天的产品驱动。FreeSWITCH 可以用作交换机引擎、PBX、多媒体网关以及多媒体服务器等。FreeSWITCH的是一个跨平台的开源电话交换平台,具有很强的伸缩性。旨在为音频、视频、文字或任何其他形式的媒体,提供路由和互连通信协议。它创建于2006年,填补了许多商业解决方案的的空白。FreeSWITCH的也提供了一个稳定的电话平台,许多广泛使用的免费电话就是在使用它开发的。
FreeSWITCH
Asterisk是一个开放源代码的软件VoIP PBX系统,它是一个运行在Linux环境下的纯软件实施方案。Asterisk是一种功能非常齐全的应用程序,提供了许多电信功能,能够把你的x86机 器变成你自己的交换机,还能够当作一台企业级的商用交换机。
      
一、适者生存,在两个系统并存的近十年间,由于发展路线和目标不一样。同时由于支持对外连接方式的差异以及历史的不同。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    
       不管是Asterisk和FreeSWITCH还是其它一些Voip产品,给众购网彩票的生活都带了变化,最典型的就是IMS系统,而且由于互联网产业的发展,传统电话语音服务的逐年递减,而全球的运营商也都为了减少2M线路高昴的成本,使用了越来越多的VoIP线路。如何面对未来,才是全球通信业从业者关心的问题,而不是Asterisk或FreeSWITCH这样的工具,该使用谁!在通信行业越来越萧条,或者说通信由原来的纯语音沟通变得更多样化的时候,再回过头来看,Asterisk和FreeSwitch这两个开源的sip b2bua系统间,在未来的语音通信中,即使脱离PSTN这一块,在实时通信中,还是会有一席之地的。
 
       最近在弄语音的实时采集和识别时,就有人不断地问Asterisk能做到吗?改代码肯定都会做到,但是现有的机制中,Asterisk要实时实现还是有些困难的,不是吗?因为FreeSwitch的媒体旁路输出(Media bug)等机制,它在实时进行语音转发时,语音媒体数据的实时采集才更有效。可参考:模拟一个简单的智能客服系统。在未来的人工智能交互时,文字有非常多的im协议来支撑,而语音交互,认为当前的sip协议模型还是会持续使用下去,因为人的声音沟通的需求不会消失,远距离的语音电信号传输更是会一直持续下去。那么这和FreeSwitch及Asterisk有什么关系呢?一直到现在Asterisk的产品体系在呼叫中心,特别是小型呼叫中心中占据了非常大的份量,前几天还听到一个笑话,有公司直接装了一套开源的freepbx到一台小型机器上,去按分机数等卖给终端客户,而客户认为这种模式还是要比纯软件的的东西要好得多,但是该公司在客户的一些需求时,无能为力。在这里,还是要看好FreeSwitch些,因为它的用户相对专业,从而让技术人员对它进行大并发还有媒体旁路输出(Media bug)中实现更大用户的功能和性能方面改造。
  在客户使用情况来看,FreeSwitch的用户是有自己相当的研发人员,花大量的费用的企业使用的多一些,其中就包括了最近纷纷扬扬的“全球最大呼叫中心”拥有者一携程。而用户数上,Asterisk系列的用户则是N多倍以FreeSwitch,因为Asterisk的整个生态圈,虽不健康(比如克隆卡、屡屡的侵权),但它的生态是完整的;而FreeSwitch则生态太过于单一,只有软件技术的输出。
    在实现PSTN的对接上,Asterisk一般由于工具的丰富,配置更容易些;而FreeSwitch的配置则要复杂不少,但这种情况也在不断地改进,       老生常谈,又要回性能上来,Asterisk也在不断地改进,但由于篇头提到的原因,全球的传统通信在不断萎缩,Asterisk重构的可能性也基本不大,所以这块还是FreeSwitch占优,
        在云通信平台的方面,Asterisk以前有个Elastix 4.0号称为多租户(Multi domains)平台,没有尝试过,但据说基本不好用,随后由3CX收购Elastix后,一切烟消云散了,然后再没有哪个Asterisk系列出相关版本做多租户的相关的。而FreeSwitch则在早先1.x版本中一直有无界面的多租户的版本,随后由2600HZ.com和Fusionpbx两家实现过相应的简易的多租户的管理GUI,那么在这块来说,FreeSwitch稍胜一筹。但是Asterisk实在对硬件资源消耗得很少,所以也有企业,直接采用Opensips挂前边,无数套Asterisk作为业务处理模块的模式实现多租户,的确也可曲线救国。          
         总之,在通信行业中,开源产品干倒了传统的商业产品,虽有些夸张,但是传统的商业产品不断在缩减是不争的事实,而Asterisk和FreeSwitch作为两大块产品体系,总有一款是属于或大或小的你们公司。
下面为Asterisk与freeswitch比较。
1:Asterisk是针对百人左右的小型系统,相同的硬件配置下单系统并发也就几百路(不同版本性能有一定差异,大概在 200-400之间),而根据国外爱好者测试freeswitch 可达到2000-3000路sip通道(媒体流并发),
2:Asterisk用动态链表来管理每个打开的通道,这样在多线程中非常难于管理(需要频繁的锁定和解锁)。而freeswitch每个呼叫通道都会用一个线程来管理呼叫状态,大大减少了死锁发生的几率,freeswitch核心代码高度抽象,尽量将复杂代码集中化。
3:Asterisk用DUNDi协议设计分布式系统,Fs使用外部数据库实现分布系统,做得更好,甚至可以一台服务器通过数据库注册到另一台服务器上。
4:freeswitch 支持夸平台,linux, unix, windows 等,asterisk基本只支持 linux, bsd系列。
5. freeswitch配置采用xml,asterisk采用linux下面通用配置文件格式语法,而 采用xml格式配置文件是freeswich使用者抱怨最多的部分,对于不懂xml格式的开发者在刚开始使用时是个折磨。
 
详细再一次了解 细说FreeSwitch与Asterisk软交换系统