Asterisk & FreeSwitch

Asterisk

Asterisk是一个开源的PBX,Ast的模块化架构使得它可以支持sip,h323,iax,dahdi等接口,所以是目前功能最为齐全的PBX平台,而内部处理机制限制了它在高并发量环境的应用。

FreeSwitch

FreeSWITCH则是一个开源的软交换机,包括一个软电话和软交换机用以提供语音和聊天的产品驱动。FreeSWITCH 可以用作交换机引擎、PBX、多媒体网关以及多媒体服务器等。

FreeSWITCH 支持多种通讯技术标准,包括 SIP, H.323, IAX2 以及 GoogleTalk ,可以方便的与其他开源的PBX系统进行对接,例如 sipX, OpenPBX, Bayonne, YATE 或者 Asterisk.

FreeSWITCH 支持许多高级的 SIP 特性,例如 presence/BLF/SLA 、TCP TLS 和 sRTP,它还可以用来作为类似于 SBC (Session Border Controller) 的透明代理。

Asterisk出现的比较早,大概在1999年开始此项目,应该是最流行PBX,整个社区上下游都已经很成熟。

freeswitch 算是后起之秀,2005年才开始,但性能和稳定性都明显优于Asterisk,但由于出现的 晚,导致其功能的多样性及与其他系统的集成难度高于asterisk.

下面为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系列。

  1. freeswitch配置采用xml,asterisk采用linux下面通用配置文件格式语法,而 采用xml格式配置文件是freeswich使用者抱怨最多的部分,对于不懂xml格式的开发者在刚开始使用时是个折磨。

学习freeswitch需要掌握的内容:

c/c++编程, socket编程 ,sip ,sdp,rtp ,tcp/ip 协议,XML,脚本语言JavaScript,lua,erlang,perl。数据库sqlite,MySQL。

系统编程知识:多进程线程同步(临界区,互斥量,信号灯,事件),APR,模块动态共享机制。

谁的SIP软交换呼叫中心终端摄像头正在公网裸奔

http://cc.ctiforum.com/jishu/hujiao/wenzhai/559262.html

由于考虑安全性、维护性、可用性目前使用的是以下这个付费软交换

VOS软交换系统

VOS3000™是针对入门级VoIP运营业务所研发出的支撑系统,在原系统提供费率设定、套餐管理、账户管理、终端管理、网关管理、数据查询、卡类管理、号码管理、系统管理的基础上,增加了DTMF发送、信令跟踪、界面快捷方式、语音管理等针对VoIP业务运营需求的功能。软交换运营支撑系统采用高性能SIP/H323 协议互转核心,性能最高可达 2,000 线并发能力。系统经过严格测试,可提供高效、稳定、可靠的运营服务。