Asterisk 与 freeswitch 都是流行的开源软交换服务器, Asterisk 出现的比较早, 大概在 1999 年开始此项目, 应该是最流行的开源软交换服务器, 整个社区上下游都已经很成熟.
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 系列.
5. freeswitch 配置采用 xml,asterisk 采用 Linux 下面通用配置文件格式语法, 而 采用 xml 格式配置文件是 freeswich 使用者抱怨最多的部分, 对于不懂 xml 格式的开发者在刚开始使用时是个折磨.
学习 freeswitch 需要掌握的内容:
c/c++ 编程, socket 编程 ,sip ,sdp,rtp ,tcp/ip 协议, xml, 脚本语言 JavaScript,lua,erlang,perl. 数据库 SQLite,MySQL.
系统编程知识: 多进程线程同步 (临界区, 互斥量, 信号灯, 事件),APR, 模块动态共享机制.
来源: http://www.bubuko.com/infodetail-2969372.html