FreeSWITCH

FreeSWITCH是一个自由开源软交换。它采用Mozilla Public License(MPL)授权协议,MPL是一个开源的软件协议。它的核心库libfreeswitch可以嵌入其它系统或产品中,也可以做一个单独的应用存在。

FreeSWITCH
FreeSWITCH Logo
原作者Anthony Minessale
開發者Many contributors
当前版本
  • 1.10.11 (2023年12月22日;穩定版本)[1]
源代码库
操作系统Unix-likeWindowsSun SolarisMac OS X
平台Cross-platform
语言multi-lingual
类型VoIP software, Softswitch
许可协议Mozilla Public License (MPL)
网站FreeSWITCH

历史

FreeSWITCH项目最初于2006年1月在O'Reilly Media's ETEL会议上发布。[2] 2007年6月,FreeSWITCH 被Truphone 采用[3]。2007年8月, Gaboogie 宣布使用FreeSWITCH作为电话会议平台。[4]

FreeSWITCH的第一个官方的1.0.0版(Phoenix)发布于2008年5月26日。[5]2008年7月24日发布了一个小的更新版。[6] 1.2.1版发布于2012年8月. Anthony Minessale announced[7]在ClueCon 2012上宣布了1.2.0版的发布[8].2021年10月25号发表1.10.7版本。

设计

据其主要开发者Anthony Minessale所说,[9] FreeSWITCH 致力于做一个 软交换,它建立于一个坚实的核心上面,由一个有限状态机驱动。[10] 该项目的目标包括稳定,可伸缩性,以及抽象性

为了减少复杂性及避免重复发明轮子,FreeSWITCH 使用其它开源免费的函式库来提供必要的功能。典型的有:[11]

编译FreeSWITCH时并不是所有这些库都是必要的,只是在某些模块需要用到它们,如Codec模块等。FreeSWITCH是一个模块化结构的程序,模块可以扩展核心的功能,而内部的抽象层则可以避免模块间的相互依赖关系。目标是避免加载一个模块时又依赖其它模块。

特性

FreeSWITCH包含大量的模块,如缺省的包括视频会议,使用XML-RPC 控制呼叫,Interactive voice response (IVR), TTS/ASR (语音合成和语音识别), Public switched telephone network (PSTN) 接口,可连接模拟和数字中继,VoIP 协议包括 SIPSCCP, H.323, XMPP, GoogleTalk, t.38 等等。[12]

使用FreeSWITCH库开发程序可以使用 C/C++, PythonPerlLuaJavaScriptJava 以及 Microsoft .NET 通过Microsoft 的 CLR 或Mono。不管是何种语言,FreeSWITCH都能提供对外的呼叫控制接口以及IVR控制功能,以便于开发人员使用。[13]

呼叫控制接口可以使用Event Socket,它是一个 网络套接字 连接软件和协议。基本上任何语言都可以通过Event Socket与它通信,进而控制呼叫流程。FreeSWITCH也自带了一个 Event Socket 库 (ESL) 以及 "ESL-wrappers",支持 Erlang, JavaScript, Lua, Perl, PHP, Python, and Ruby.

编解码支持

FreeSWITCH支持很多的语音编解码:[14]

  • PCMU – G.711 µ-law
  • PCMA – G.711 A-law
  • G.722
  • G.722.1
  • G.722.1c
  • G.726
  • G.726 with AAL2 packing
  • G.729 (默认透传模式,转码可以在FreeSWITCH官网购买许可,每通道10美金,或使用Sangoma转码卡)[15]
  • GSM
  • CELT
  • iLBC
  • DVI4 (IMA ADPCM)
  • BroadVoice
  • SILK
  • Speex
  • CODEC2
  • Siren
  • LPC-10
  • G.723.1 (默认透传模式,转码可以使用Sangoma转码卡)
  • AMR (默认透传模式,转码可以使用Sangoma转码卡-仅限AMR-NB)
  • iSAC
  • Opus(测试阶段)

FreeSWITCH支持的视频编码(1.7版支持视频转码):[16]

某些编码只支持透传,这意味着FreeSWITCH对这些媒体不进行任何处理,而把原始压缩的内容直接“透传”到对方。这使得双方都有兼容的编码时可以相互通信,而这些编码可能因为专利等原因不能在FreeSWITCH内部提供。由于使用这些编码里数据无法解码,某些IVR或录音应用就受到限制。

FreeSWITCH也支持硬件编码软件卡,如Sangoma的板卡。[17] 通过硬件实现编解码,可以节约服务器端的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

问题

  • BRI 支持需要基于Sangoma硬件板卡[18]

与其它类似的电话软件比较

http://en.wikipedia.org/wiki/Comparison_of_VoIP_software(页面存档备份,存于)

FreeSWITCH 填补了简单的仅仅是路由电话的纯交换软件如 GnuGKSER, 和那些主要用于 PABXIVR的应用如 Asterisk 以及其衍生品之间的空白。FreeSWITCH 可以作为,如一个 PABX,一个 voicemail 系统, 一个 电话会议系统或一个 电话卡系统 – 可以使用任何语言来构建这样的产品。

衍生产品

FreeSWITCH 是很多商业的和开源的装在盒子里的PABX的核心组件。某些商业产品是软硬件结合的。

例如 Barracuda Networks CudaTel VOIP PBX 系列以及 Gemeinschaft_(PBX).

参见

  • 自由软件列表 – 其它相关的软件


参考资料

  1. . 2023年12月22日 [2024年1月19日].
  2. . O'Reilly Media. 2006-01-25 [2007-10-06]. (原始内容存档于2007-12-27).
  3. (新闻稿). Truphone. June 5, 2007 [2013-06-22]. (原始内容存档于2012-09-18).
  4. . Gaboogie. 2007-08-03 [2007-10-06]. (原始内容存档于2008-09-08).
  5. . [2013-06-22]. (原始内容存档于2008-08-10).
  6. . [2013-06-22]. (原始内容存档于2008-08-19).
  7. . [2013-06-22]. (原始内容存档于2012-06-08).
  8. . [2013-06-22]. (原始内容存档于2012-09-20).
  9. Gallagher, Kathleen. . Milwaukee Journal Sentinel. October 18, 2009 [2013年6月22日]. (原始内容存档于2009年10月22日).
  10. . O'Reilly Media. July 25, 2006 [2013-06-22]. (原始内容存档于2012-02-17).
  11. A complete list of dependencies can be found in the dependencies page 页面存档备份,存于 section of the FreeSWITCH documentation.
  12. . FreeSWITCH Documentation Wiki. 2007-10-08 [2007-10-07]. (原始内容存档于2007-10-19).
  13. . FreeSWITCH Documentation Wiki. 2007-10-08 [2007-10-07]. (原始内容存档于2007-10-06).
  14. . [2017-07-20]. (原始内容存档于2019-02-16).
  15. https://billing.freeswitch.org/cart.php?a=confproduct&i=1%5B%5D
  16. . [2013-06-22]. (原始内容存档于2013-06-30).
  17. . [2013-06-22]. (原始内容存档于2013-07-05).
  18. . [2013-06-22]. (原始内容存档于2013-06-20).

外部链接

Template:Instant messaging

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.