freeSwitch部署教程
部署 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:
- 修改配置文件
freeswitch/conf/autoload_configs/db.conf.xml
。
安装数据库模块:
make mod_mysql-install
9. 持续优化
- 配置 NAT 和防火墙穿透。
- 增加并发容量时,调整线程池和内存分配。
- 使用负载均衡和集群提升可靠性。