freeswitch源码分析(一文看懂开源软交换系统Asterisk与FreeSWITCH)
freeswitch源码分析(一文看懂开源软交换系统Asterisk与FreeSWITCH)Asterisk与FreeSWITCH的比较FreeSWITCHAsteriskFreeSWITCHAsterisk与FreeSWITCH的官方定义
一文看懂开源软交换系统Asterisk与FreeSWITCH
“通俗来说,Asterisk与FreeSWITCH ,一个像银行卡和线上支付,一个像数字货币。”
共同点:Asterisk 与FreeSWITCH都是流行的开源软交换服务器
Asterisk与FreeSWITCH出现时间
- Asterisk出现的比较早,大概在1999年开始出现此项目,应该是最流行的开源软交换服务器,整个社区上下游都已经很成熟。
Asterisk
- FreeSWITCH 算是后起之秀,2005年才开始,但性能和稳定性都明显优于Asterisk,但由于出现的晚,导致其功能的多样性及与其他系统的集成难度高于Asterisk。
FreeSWITCH
Asterisk与FreeSWITCH的官方定义
- Asterisk是开源SIP IPPBX软交换平台。世界上最受欢迎最大的开源SIP IPPBX软交换平台。
- FreeSWITCH是一个开源的VoIP软交换项目,官方对它的定义是——世界上第一个跨平台的、伸缩性极好的、免费的、多协议的电话软交换平台(The World's First Cross-Platform Scalable FREE Multi-Protocol Soft Switch)。
FreeSWITCH
Asterisk与FreeSWITCH的比较
- Asterisk是针对百人左右的小型系统,相同的硬件配置下单系统并发也就几百路(不同版本性能有一定差异,大概在 200-400之间),而根据国外爱好者测试FreeSWITCH 可达到2000-3000路sip通道(媒体流并发),
- Asterisk用动态链表来管理每个打开的通道,这样在多线程中非常难于管理。因为需要频繁的锁定和解锁。
- Asterisk用DUNDi协议设计分布式系统,Fs使用外部数据库实现分布系统,做得更好,甚至可以一台服务器通过数据库注册到另一台服务器上。
- FreeSWITCH每个呼叫通道都会用一个线程来管理呼叫状态,大大减少了死锁发生的几率,FreeSWITCH核心代码高度抽象,尽量将复杂代码集中化。
- FreeSWITCH 支持跨平台,linux Unix windows 等,Asterisk基本只支持 linux, BSD系列。
- FreeSWITCH配置采用xml,Asterisk采用linux下面通用配置文件格式语法,而 采用xml格式配置文件是freeswich使用者抱怨最多的部分,对于不懂xml格式的开发者在刚开始使用时是个折磨。
学习Asterisk需要掌握的内容
学习Asterisk需要掌握的内容
学习FreeSWITCH需要掌握的内容
学习FreeSWITCH需要掌握的内容
Asterisk的业务功能和部署环境要求
Asterisk的业务功能和部署环境要求
- 是一个将近20年的开源通信平台软件项目
- 使用的C语言开发 ,也使用其他脚本语言
- 运行在 Linux (或者其他的 Unix 类型)
- 支持商业电话系统
- 连接许多不同的通信协议
- 支持多种 VoIP 电话,例如 PSTN 和POTS(FXO/FXS/E1/SS7/R2)
- 支持 SIP 协议,大部分VoIP协议, 包括WebRTC等
- 支持了各种界面管理系统,FreePBX是其官方的界面管理系统,具备完善的IPPBX功能支持。
- 是一个开发工具,可以通过Asterisk实现企业通信的多种解决方案
- 一个 IP PBX 支持许多强大的功能和应用程序,可以实现本地物理机安装,虚拟机安装,云部署
- VoIP 网关
- 会议系统
- 电话录音系统
- 呼叫中心等其他系统,物流网接入,智能机器人,智能IVR系统
FreeSWITCH的主要特点
FreeSWITCH的主要特点
FreeSWITCH的主要特点
- 跨平台,可以运行于Windows,Max OSX,Linux,BSD及Solaris等诸多32/64位平台。
- 可伸缩性,可以从一个简单的软电话客户端到运营商拥挤的软交换设备几乎无所不能。
- 免费,使用MPL 1.1协议授权,任何人都可以免费的使用并获取源代码,可以修改,发布,出售自己的应用
- 支持多种通信协议(SIP,H323,Skype,Google Talk),可以与各种开源的PBX系统通信也可以与各种商业交换系统互通。
- 可以做一个简单的交换引擎,一个PBX,一个媒体网关或媒体支持IVR的服务器,或运营商的IMS网络中担任CSCF或Application Server等。
- 支持宽带及窄带语音编码,电话会议可以同时支持8,12,16,24,32及48kHz的语音。
FreeSWITCH的主要功能
FreeSWITCH的主要功能
FreeSWITCH的主要功能
- 在线计费、预付费功能
- 电话路由服务器
- 语音转码服务器
- 支持资源优先权和QoS的服务器
- 多点会议服务器
- IVR、语音通知服务器
- VoiceMail服务器
- PBX应用和软交换
- 应用层网关
- 防火墙/NAT穿越应用
- 私有服务器
- 第三方呼叫控制应用
- 业务生成环境运行时引擎
- 会话边界控制器
- IMS中的S-CSCF/P-CSCF/I-CSCF
- SIP网间互联网关
- SBC及安全网关
- 传真服务器、T.30到T.38网关