欢迎使用FreeSWITCH。本文最早写于2009年,最后更新时间是2022年6月4日。
FreeSWITCH的官方网站是www.freeswitch.com,如果你对FreeSWITCH还不是很了解,可以先阅读什么是FreeSWITCH:http://www.freeswitch.org.cn/blog/2009/11/what-is-FreeSWITCH/。
最快的学习FreeSWITCH的方法是使用这个Docker镜像。随着互联网及云原生的发展,Docker已经成了大多数服务端软件事实上的运行方式和标准。只要你的电脑能运行Docker,你就可以运行FreeSWITCH。
如果你不使用上述Docker镜像,你也可以通过以下方式安装和使用FreeSWITCH。
FreeSWITCH最理想的运行平台是64位的Linux。FreeSWITCH核心开发者大部分都使用Debian(目前最新的FreeSWITCH版本支持Debian 10和Debian 11),当然,也有很多人在CentOS、Ubuntu或BSD系列的UNIX上安装FreeSWITCH,但如果你是个FreeSWITCH新手,使用Debian可以少踩好多“坑”。
在Debian上安装FreeSWITCH的方法见:https://freeswitch.org/confluence/display/FREESWITCH/Debian 。如果系统提示你需要一个PAT,可以参考如何创建一个FreeSWITCH PAT:http://www.freeswitch.org.cn/blog/2022/06/FreeSWITCH-PAT/。
如果你使用Windows,可以到files.freeswitch.org下载已编译好的安装包。如果你有Visual Studio的开发环境,也可以下载源代码自己编译。
你也可以下载源代码编译。如果你提交BUG时,官方也只对Git master分支中的代码提供支持。而且,从源代码安装FreeSWITCH,也不需要PAT。
源代码下载地址:https://files.freeswitch.org/freeswitch-releases/ 。
由于 FreeSWITCH 更新非常快,请自己查找最新的版本,如,截止 2022年6月4日,最稳定的发行版是:1.10.7。
如果你会使用Git,也可以从Github代码库下载源代码:
代码语言:javascript复制git clone https://github.com/signalwire/freeswitch.git
安装FreeSWITCH前需要安装一些依赖。在不同的平台上,依赖不同的包,如:
Debian/Ubuntu:
代码语言:javascript复制apt-get -y install build-essential subversion automake autoconf wget libtool libncurses5-dev
CentOS:
代码语言:javascript复制yum install -y subversion autoconf automake libtool gcc-c ncurses-devel make
FreeSWITCH最新的源代码将Sofia-SIP和SpanDSP移出了FreeSWITCH代码仓库,分离到了独立的仓库中,在安装FreeSWITCH之前需要单独安装:
- https://github.com/freeswitch/sofia-sip
- https://github.com/freeswitch/spandsp
最新的mod_verto模块也需要libks,源代码可以从以下地址获取:
- https://github.com/signalwire/libks
你最好参考一下http://www.freeswitch.org.cn/Makefile以确定你的平台上应该安装哪些包。当然,该文件不是永远能保证最新的。
编译安装:
代码语言:javascript复制./bootstrap.sh # 初始化源码环境和工具./configure # 配置,如果将FreeSWITCH装到特定位置,可以使用 --prefix 指定make # 编译make install # 安装
详见:Installation Guide:https://freeswitch.org/confluence/display/FREESWITCH/Installation和FreeSWITCH Explained.:https://freeswitch.org/confluence/display/FREESWITCH/FreeSWITCH Explained
配置:FreeSWITCH 缺省的配置是作为一个Home PBX来运行,你可以先用它来试验各种功能。等熟悉了以后再进行高级的配置与开发。
FreeSWITCH社区:https://freeswitch.org/confluence/display/FREESWITCH/Community成员都很友好,你可以通过邮件列表(英文):http://www.freeswitch.org.cn/blog/2009/11/beginners-guide/lists.freeswitch.org,Slack等获取帮助和交流经验。
Pastebin是一个专供粘贴配置、Debug、Log 等文本信息的地方。提交问题时,先把相关Log、出错信息等贴完后再把对应的链接发到邮件列表或IRC,就可以让别人帮你看一看是哪儿出错了。
如果遇到FreeSWITCH的Bug,可以参照一个FreeSWITCHBug修复手记到Github上给FreeSWITCH提Issue:https://github.com/signalwire/freeswitch/issues。
获取中文帮助信息,可以到RTS.cn上的Github Discussions讨论区讨论,国内用户可以通过本站的相关链接加入知识星球、QQ群、微信群等。为了得到及时有效的帮助,请在发帖前仔细读一下橡皮鸭子问题:http://www.freeswitch.org.cn/2012/09/21/jie-jue-xiang-pi-ya-zi-wen-ti.html
Github讨论区和知识星球里面的网友都很好,如果不是特别必要,请尽量不要往私人邮箱发邮件和在QQ及微信上发起私聊,因为:
- 对方可能正在忙,相反,如果你发到公共列表或群里,更多的网友能看见,就有更多的机会得到帮助。
- 对方可能对你提的问题不专业。相反,如果你发到公共列表或群里,更多的网友能看见,就有更多的机会得到帮助。
- 你这样做可能不是很礼貌。
使用公共讨论区的好处:
公共讨论区的消息是异步的,这意味着,你的问题可能总会有人看到并给你答案。相反,如果你在QQ群中提问一个问题,这时候知道答案的人正好不在,而等他回来的时候你已经下线了。
另外,FreeSWITCH 知乎专栏:https://zhuanlan.zhihu.com/freeswitch上的文章或许对你有用,尤其是这一篇《说说FreeSWITCH社区》:https://zhuanlan.zhihu.com/p/19648543。