freeSwitch部署教程

freeSwitch部署教程
Photo by Ingmar H / Unsplash

部署 FreeSWITCH 的步骤如下:


1. 准备工作

环境需求

  • 操作系统:推荐 Linux,支持 Ubuntu、Debian、CentOS。
  • 硬件要求:至少 1 核 CPU、1GB RAM、20GB 存储空间(具体需求根据并发量增加)。

更新系统

在部署前,更新系统以确保安装的依赖是最新的:

sudo apt update && sudo apt upgrade -y

安装必要工具

sudo apt install -y git build-essential subversion \
autoconf automake libtool libncurses5-dev g++ \
curl wget lsof unzip memcached

2. 下载 FreeSWITCH 源代码

克隆仓库

使用 Git 从官方仓库下载源码:

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

切换到稳定分支

选择稳定分支(例如 v1.10):

git checkout v1.10

3. 安装依赖

安装 FreeSWITCH 所需依赖

运行以下命令自动安装所需的依赖包:

sudo ./build/debian/bootstrap.sh -j

安装特定模块依赖

根据需要安装其他模块的依赖(例如 WebRTC、mod_opus):

sudo apt install -y libopus-dev libavformat-dev libavcodec-dev

4. 编译和安装

编译源码

./configure
make

安装 FreeSWITCH

sudo make install

安装默认配置文件

sudo make samples

安装音频文件

sudo make sounds-install

5. 启动 FreeSWITCH

运行服务

sudo freeswitch

后台运行

sudo systemctl enable freeswitch
sudo systemctl start freeswitch

6. 测试和配置

测试 FreeSWITCH

通过 fs_cli 进入 FreeSWITCH 控制台:

sudo fs_cli

可以输入以下命令验证是否运行正常:

status

默认配置文件

FreeSWITCH 的默认配置文件位于 /etc/freeswitch

  • sip_profiles:SIP 配置文件。
  • dialplan:拨号规则。
  • vars.xml:全局变量。

修改配置

根据需要编辑配置文件:

sudo nano /etc/freeswitch/vars.xml

然后重新加载配置:

reloadxml

7. 开放防火墙端口

根据 SIP 协议,确保以下端口开放:

  • UDP: 5060-5061(SIP 信令)。
  • UDP: 16384-32768(RTP 媒体流)。 配置防火墙规则:
sudo ufw allow 5060:5061/udp
sudo ufw allow 16384:32768/udp
sudo ufw reload

8. 可选配置

启用 WebRTC 支持

安装 WebRTC 所需模块并配置:

sudo apt install -y libssl-dev
make mod_v8-install

集成数据库

FreeSWITCH 默认使用 SQLite,可以切换到 MySQL 或 PostgreSQL:

  1. 修改配置文件 freeswitch/conf/autoload_configs/db.conf.xml

安装数据库模块:

make mod_mysql-install

9. 持续优化

  • 配置 NAT 和防火墙穿透。
  • 增加并发容量时,调整线程池和内存分配。
  • 使用负载均衡和集群提升可靠性。