最近开始继续捣鼓sip服务,使用LinPhone开发自定义sip通信通信工具,前面介绍了如何编译LinPhone SDK。现在开始记录freeswitch的安装编译过程。
编译安装环境为:系统CentOS7,使用win10 hyper-v 虚拟机进行系统虚拟。
freeswitch的安装编译过程参考官方介绍:https://freeswitch.org/confluence/display/FREESWITCH/CentOS+7+and+RHEL+7
1. freeswitch的安装与编译
下面开始freeswitch的编译安装,首先需要安装编译环境,安装好centos7系统后,为顺利进行编译,需要提前安装额外的库,如下:(需要提前安装好gcc编译环境)
安装 libav,执行以下命令:
git clone https://freeswitch.org/stash/scm/sd/libav.git
cd libav
CFLAGS="-fPIC" ./configure --enable-pic --enable-shared
make CXXFLAGS="-fPIC"
make install
执行以下命令进行安装freeswitch:
yum install -y https://files.freeswitch.org/repo/yum/centos-release/freeswitch-release-repo-0-1.noarch.rpm epel-release
yum clean dbcache
yum makecache
yum install -y yum-plugin-ovl centos-release-scl rpmdevtools yum-utils git
yum-builddep -y freeswitch #这里可能会提示冲突,根据提示,自行添加参数忽略冲突即可,后续自行安装冲突的软件对应版本,安装对应的spandsp3-devel
yum-builddep -y freeswitch --skip-broken #忽略冲突
yum install spandsp3-devel*
yum install -y devtoolset-7-gcc*
scl enable devtoolset-7 'bash'
cd /usr/local/src
git clone -b v1.10 https://github.com/signalwire/freeswitch.git freeswitch
cd /usr/local/src/freeswitch
./bootstrap.sh -j
./configure --enable-portable-binary --prefix=/usr --localstatedir=/var --sysconfdir=/etc --with-gnu-ld --with-python --with-erlang --with-openssl --enable-core-odbc-support --enable-zrtp
make
make -j install
make -j cd-sounds-install # 音频文件下载比较慢,可手动使用迅雷下载后,复制到当前源码目录后,再次执行安装命令,下载地址:https://files.freeswitch.org/releases/sounds/ ,搜索文件freeswitch-sounds-en-us-callie-16000-1.0.52.tar.gz 下载,包括8000、16000、32000、48000
make -j cd-moh-install #文件下载地址:https://files.freeswitch.org/releases/music/ 下载所需文件 freeswitch-sounds-music-8000-1.0.52.tar.gz 包括 8000、16000、32000、48000
顺利的话,可以正常安装编译freeswitch,安装完成后,运行freeswitch,注意启动时,需要有网络连接,执行如下命令:
/usr/bin/freeswitch
运行freeswitch后,执行指令查看有多少个用户已注册:
sofia status profile internal
如图所示:
freeswitch默认有20个sip用户,从 1000 到 1019,初始密码为 1234,使用LinPhone-desktop客户端连接如下:
确定后,连接到服务器后,会弹窗提示输入密码,密码正确即可注册到sip服务器。
测试通话,服务器呼叫客户端1000,终端运行freeswitch后,执行:
originate user/1000 &echo
进行呼叫终端 1000。如图:
1.1 把freeswitch部署成服务,开机自动启动
新增服务文件:
sudo vim /usr/lib/systemd/system/freeswitch.service
输入以下内容:
[Unit]
Description=freeswitch
After=syslog.target
After=network.target
[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/home/denny
ExecStart=/usr/bin/freeswitch
ExecStop=/usr/bin/freeswitch -stop
Restart=always
[Install]
WantedBy=multi-user.target
保存后,重启系统即可。