FreeSWITCH[编辑]
FreeSWITCH Logo | |
原作者 | Anthony Minessale |
---|---|
开发者 | Many contributors |
开发状态 | Active |
操作系统 | Unix-like、Windows、Sun Solaris、Mac OS X |
平台 | Cross-platform |
语言 | multi-lingual |
类型 | VoIP software, Softswitch |
许可协议 | Mozilla Public License (MPL) |
网站 | FreeSWITCH |
FreeSWITCH 是一个 免费、 开源 的通信软件,可用于创建音、视频以及短消息类产品和应用。 它采用 Mozilla Public License (MPL)授权协议, MPL是一个 开源的软件协议. 它的核心库libfreeswitch可以嵌入其它系统或产品中,也可以做一个单独的应用存在。
历史[编辑]
FreeSWITCH 项目最初于2006年1月在O'Reilly Media's ETEL 会议上发布。[1] 2007年6月,FreeSWITCH 被Truphone 采用[2]。2007年8月, Gaboogie 宣布使用FreeSWITCH作为电话会议平台。[3]
FreeSWITCH的第一个官方的1.0.0版 (Phoenix) 发布于2008年5月26日。[4]2008年7月24日发布了一个小的更新版。[5] 1.2.1版发布于2012年8月. Anthony Minessale announced[6]在ClueCon 2012上宣布了1.2.0版的发布[7],FreeSWITCH 开发团队开始维护稳定版 (1.2版) 以及开发版 (1.5版) 两个分支。目前最新的版本是1.5 Beta版。
设计[编辑]
据其主要开发者Anthony Minessale所说,[8] FreeSWITCH 致力于做一个 软交换,它建立于一个坚实的核心上面,由一个有限状态机驱动。[9] 该项目的目标包括稳定,可伸缩性,以及抽象性。
为了减少复杂性及避免重复发明轮子,FreeSWITCH 使用其它开源免费的软件库来提供必要的功能。典型地有:[10]
- Apache Portable Runtime (APR and APR-Util)
- SQLite – 一个轻量级的SQL引擎
- PCRE – Perl兼容的正则表达式引擎
- Sofia-SIP – 一个开源的 SIP UA 库
- libspeex – Speex DSP 库
- mod_spandsp 支持 T.38 传真
- libSRTP – Secure Real-time Transport ProtocolSRTP的一个开源实现
编译FreeSWITCH时并不是所有这些库都是必要的,只是在某些模块需要用到它们,如Codec模块等。FreeSWITCH是一个模块化结构的程序,模块可以扩展核心的功能,而内部的抽象层则可以避免模块间的相互依赖关系。目标是避免加载一个模块时又依赖其它模块。[来源请求]
特性[编辑]
FreeSWITCH包含大量的模块,如缺省的包括 会议,使用XML-RPC 控制呼叫,Interactive voice response (IVR), TTS/ASR (语音合成和语音识别), Public switched telephone network (PSTN) 接口,可连接模拟和数字中继,VoIP协议包括 SIP,SCCP, H.323, XMPP, GoogleTalk, t.38 等等。[11]
使用FreeSWITCH库开发程序可以使用 C/C++, Python, Perl, Lua,JavaScript, Java 以及 Microsoft .NET 通过Microsoft 的 CLR 或Mono。不管是何种语言,FreeSWITCH都能提供对外的呼叫控制接口以及IVR控制功能,以便于开发人员使用。[12]
呼叫控制接口可以使用Event Socket,它是一个 网络套接字 连接软件和协议。基本上任何语言都可以通过Event Socket与它通信,进而控制呼叫流程。FreeSWITCH也自带了一个 Event Socket 库 (ESL) 以及 "ESL-wrappers",支持Erlang, JavaScript, Lua, Perl, PHP, Python, and Ruby.
编解码支持[编辑]
FreeSWITCH 支持很多的语音编解码:[13]
FreeSWITCH支持的视频编码(需透传):[15]
某些编码只支持透传,这意味着FreeSWITCH对这些媒体不进行任何处理,而把原始压缩的内容直接“透传”到对方。这使得双方都有兼容的编码时可以相互通信,而这些编码可能因为专利等原因不能在FreeSWITCH内部提供。由于使用这些编码里数据无法解码,某些IVR或录音应用就受到限制。
FreeSWITCH也支持硬件编码软件卡,如Sangoma的板卡。[16] 通过硬件实现编解码,可以节约服务器端的CPU,而且通过硬件实现的转码都已经包含正常的许可证,这也解决了上面的透传问题。
操作系统与编译环境支持[编辑]
- AuroraUX (LLVM+Clang/gmake)
- Sun Solaris 10 UNIX (Sun Studio)
- BSD系统(包括FreeBSD 8-10,NetBSD 6,OpenBSD 5) (gmake)
- Mac OS X (make)
- Linux系统(包括Red Hat Enterprise Linux,CentOS,Debian(可以运行于树莓派),Ubuntu等)
- Microsoft Windows (原生支持,有二进制安装程序)
- Pfsense
问题[编辑]
与其它类似的电话软件比较[编辑]
http://en.wikipedia.org/wiki/Comparison_of_VoIP_software
FreeSWITCH 填补了简单的仅仅是路由电话的纯交换软件如 GnuGK 和 SER, 和那些主要用于 PABX 或 IVR的应用如 Asterisk 以及其衍生品之间的空白。FreeSWITCH 可以作为,如一个 PABX,一个 voicemail 系统, 一个 电话会议系统或一个 电话卡系统 – 可以使用任何语言来构建这样的产品。[来源请求]
衍生产品[编辑]
FreeSWITCH 是很多商业的和开源的装在盒子里的PABX的核心组件。某些商业产品是软硬件结合的。
例如 Barracuda Networks CudaTel VOIP PBX 系列以及 Gemeinschaft_(PBX).
参见[编辑]
- 自由软件列表 – 其它相关的软件
References[编辑]
- ^ Beyond Asterisk, The Future of Telephony. What's Next?. O'Reilly Media. 2006-01-25 [2007-10-06].
- ^ Truphone Selects FreeSWITCH and TelcoBridges to Enable VoIP Calls over WiFi on Mobile Phones, 新闻稿. Truphone. June 5, 2007.
- ^ Gaboogie Embraces Open Source For New Mobile Group Calling and Conference Calling Solution. Gaboogie. 2007-08-03 [2007-10-06].
- ^ FreeSWITCH 1.0.0 "Phoenix" Released!.
- ^ FreeSWITCH 1.0.1 "Phoenix" Released!.
- ^ ClueCon 2012 Keynote Address.
- ^ It's Official! FreeSWITCH 1.2 Has Been Released..
- ^ Gallagher, Kathleen. Flipping the FreeSWITCH - Brookfield is home to revolutionary software. Milwaukee Journal Sentinel. October 18, 2009.
- ^ An Interview with the Creator of FreeSWITCH. O'Reilly Media. July 25, 2006.
- ^ A complete list of dependencies can be found in the dependencies page section of the FreeSWITCH documentation.
- ^ Modules. FreeSWITCH Documentation Wiki. 2007-10-08 [2007-10-07].
- ^ Languages for Call Control. FreeSWITCH Documentation Wiki. 2007-10-08 [2007-10-07].
- ^ http://wiki.freeswitch.org/wiki/Codecs
- ^ https://billing.freeswitch.org/cart.php?a=confproduct&i=1
- ^ http://wiki.freeswitch.org/wiki/Codecs
- ^ http://wiki.sangoma.com/sangoma-media-transcoding#sng_freeswitch_usage
- ^ FreeSWITCH Wiki FAQ
外部连接[编辑]
- FreeSWITCH Project Home Page – 包含通用的信息以及该项目本身
- FreeSWITCH Wiki – main source of documentation for FreeSWITCH
- FreeSWITCH-CN中文社区 – 中文社区和文档大本营
- FreeSWITCH-中文百问 – VOIP知识库
- #freeswitch on freenode