前言
- 环境:
- 系统版本:debian 11 x86_64
- FreeSWITCH版本:1.10.6
安装步骤
- 安装依赖(安装之前最好换apt软件源为国内的)
apt install -y gnupg2 wget autoconf lsb-release libtool libtool-bin libtiff-dev uuid-dev pkg-config openssl libssl-dev sqlite3 libsqlite3-dev libcurl4-openssl-dev libspeexdsp-dev libldns-dev libedit-dev yasm nasm ffmpeg libswscale-dev libavformat-dev lua5.4 liblua5.4-dev libopus-dev libpq-dev libmariadb-dev unixodbc unixodbc-dev libsndfile1-dev
- 下载FreeSWITCH源码包
git clone https://github.com/signalwire/freeswitch.git -bv1.10 freeswitch cd freeswitch ./bootstrap.sh -j
- 编译安装spandsp
git clone https://github.com/freeswitch/spandsp.git cd spandsp ./bootstrap.sh -j ./configure make make install ldconfig
- 编译安装sofia-sip
git clone https://github.com/freeswitch/sofia-sip.git cd sofia-sip ./bootstrap.sh -j ./configure make make install ldconfig
- 编译安装FreeSWITCH
# 预编译 ./configure --prefix=/usr/local/freeswitch # 编译。如果是多核处理器,比如4核,可以用make -j4,能加快编译速度 # 编译时可以编辑modules.conf,取消编译mod_signalwire、mod_opus make make install
- 启动
# 启动服务端 /usr/local/freeswitch/bin/freeswitch -nosql -nonat -nc # 如果有ipv6相关报错,需要删掉/usr/local/freeswitch/etc/freeswitch/sip_profiles目录下名字带ipv6的目录和文件 # 进入控制台 /usr/local/freeswitch/bin/fs_cli
创建软链接
ln -s /usr/local/freeswitch/bin/freeswitch /usr/local/bin/ ln -s /usr/local/freeswitch/bin/fs_cli /usr/local/bin/
FreeSWITCH连接MySQL
mysql版本:5.7
从版本1.10.0开始,FreeSWITCH通过
mod_mariadb
原生支持MySQL
- 编译时修改module.conf.xml,取消mod_mariadb的注释
- 编辑
autoload_configs/pre_load_modules.conf
,注释掉mod_pgsql
,取消mod_mariadb
的注释
<configuration name="pre_load_modules.conf" description="Modules"> <modules> <!-- Databases --> <load module="mod_mariadb"/> <!-- <load module="mod_pgsql"/> --> </modules> </configuration>
- 编辑
autoload_configs/switch.conf.xml
,添加下面一行内容。注意修改IP、端口、数据库名、用户名、用户密码。如果有postgresql相关的配置信息,需要注释掉。
<param name="core-db-dsn" value="mariadb://Server=192.168.0.10;Port=3307;Database=freeswitch;Uid=root;Pwd=123456;" />
- 编辑sip_profile,添加下面内容,注意修改IP、端口、数据库名、用户名、用户密码。
<param name="core-db-dsn" value="mariadb://Server=192.168.0.10;Port=3307;Database=freeswitch;Uid=root;Pwd=123456;" />
- 测试启动:
/usr/local/freeswitch/bin/freeswitch -nonat # 启动时会自动创建数据表 # 一些报错如"Specified key was too long; max key length is 3072 bytes"、"Duplicate key name"可忽略
- 使用软电话如MicroSIP注册,查看数据表
registrations
中有没有注册信息,有的话说明FreeSWITCH已连接MySQL - 在FreeSWITCH控制台执行
shutdown
关闭FreeSWITCH,重新启动
/usr/local/freeswitch/bin/freeswitch -nonat -nosql -nc