FreeSWITCH新手指南

欢迎使用FreeSWITCH。本文最早写于2009年,最后更新时间是2022年6月4日。

FreeSWITCH的官方网站是www.freeswitch.com,如果你对FreeSWITCH还不是很了解,可以先阅读什么是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

如果你使用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代码库下载源代码:

git clone https://github.com/signalwire/freeswitch.git

或使用国内镜象:

git clone https://gitee.com/mirrors/FreeSWITCH

安装FreeSWITCH前需要安装一些依赖。在不同的平台上,依赖不同的包,如:

Debian/Ubuntu:

apt-get -y install build-essential subversion automake autoconf wget libtool libncurses5-dev

CentOS:

yum install -y subversion autoconf automake libtool gcc-c++ ncurses-devel make

FreeSWITCH最新的源代码将Sofia-SIP和SpanDSP移出了FreeSWITCH代码仓库,分离到了独立的仓库中,在安装FreeSWITCH之前需要单独安装:

最新的mod_verto模块也需要libks,源代码可以从以下地址获取:

你最好参考一下 http://www.freeswitch.org.cn/Makefile 以确定你的平台上应该安装哪些包。当然,该文件不是永远能保证最新的。

编译安装:

./bootstrap.sh # 初始化源码环境和工具
./configure    # 配置,如果将FreeSWITCH装到特定位置,可以使用 --prefix 指定
make           # 编译
make install   # 安装

详见:Installation GuideFreeSWITCH Explained.

在这里可以找到FreeSWITCH中文语音包

配置:FreeSWITCH 缺省的配置是作为一个Home PBX来运行,你可以先用它来试验各种功能。等熟悉了以后再进行高级的配置与开发。

FreeSWITCH社区成员都很友好,你可以通过邮件列表(英文),Slack等获取帮助和交流经验。

Pastebin是一个专供粘贴配置、Debug、Log 等文本信息的地方。提交问题时,先把相关Log、出错信息等贴完后再把对应的链接发到邮件列表或IRC,就可以让别人帮你看一看是哪儿出错了。

如果遇到FreeSWITCH的Bug,可以参照一个FreeSWITCHBug修复手记到Github上给FreeSWITCH提Issue

获取中文帮助信息,可以到RTS.cn上的Github Discussions讨论区讨论,国内用户可以通过本站的相关链接加入知识星球、QQ群、微信群等。为了得到及时有效的帮助,请在发帖前仔细读一下橡皮鸭解题法

Github讨论区和知识星球里面的网友都很好,如果不是特别必要,请尽量不要往私人邮箱发邮件和在QQ及微信上发起私聊,因为:

  • 对方可能正在忙,相反,如果你发到公共列表或群里,更多的网友能看见,就有更多的机会得到帮助。
  • 对方可能对你提的问题不专业。相反,如果你发到公共列表或群里,更多的网友能看见,就有更多的机会得到帮助。
  • 你这样做可能不是很礼貌。

使用公共讨论区的好处:

公共讨论区的消息是异步的,这意味着,你的问题可能总会有人看到并给你答案。相反,如果你在QQ群中提问一个问题,这时候知道答案的人正好不在,而等他回来的时候你已经下线了。

我们有一个包含中英文在内的多语言的awesome-freeswitch项目,里面登记了各种资料和链接。你也可以在这里提交你认为Awesome的资源。

另外,FreeSWITCH 知乎专栏上的文章或许对你有用,尤其是这一篇《说说FreeSWITCH社区》。

还没有关注「FreeSWITCH-CN」微信公共账号的,请尽快关注,里面会不定期地发布关于FreeSWITCH的知识以及最新动态。

如果你还有问题又想深入学习FreeSWITCH,《FreeSWITCH 权威指南》这本书应该很适合你。

如果你需要一个图形图面,以及一个商业解决方案,看看XSwitch