freeswitch-1.10.7 on centos7编译安装

 

 

概述

最近由于项目需求,老版本的fs已经不适用,特此升级了freeswitch的版本,使用当前最新的1.10.7版本编译安装。

环境

centos:CentOS  release 7.0 (Final)或以上版本

freeswitch:v1.10.7

GCC:4.8.5

yum源

目前,最新的freeswitch文档中,要使用yum下载安装包,要求必须使用“SignalWire Personal Access Tokens (PAT)”,也就是signalwire网站的个人TOKEN。

首先,在网站“signalwire.com”注册账号并登录。

然后,进入“https://id.signalwire.com/personal_access_tokens”,生成TOKEN,后面设置yum源会用到。

另外,signalwire一直提示我要创建一个space,但是我一直没有创建成功。

 

使用刚刚在signalwire网站生成的用户名和TOKEN替换下面命令中的“user”和“TOKEN”,并执行。

echo "user" > /etc/yum/vars/signalwireusername

echo "TOKEN" > /etc/yum/vars/signalwiretoken

sudo yum install https://user:TOKEN@freeswitch.signalwire.com/repo/yum/centos-release/freeswitch-release-repo-0-1.noarch.rpm

sudo yum install epel-release

 

执行成功之后,可以在repolist看到freeswitch和epel源。

sudo yum repolist

*epel/x86_64          Extra Packages for Enterprise Linux 7 - x86_64                  13,756

freeswitch            FreeSWITCH Packages for Enterprise Linux 7 - x86_64              1,192

freeswitch-debuginfo  FreeSWITCH Packages for Enterprise Linux 7 - x86_64 - Debug      1,192

freeswitch-source     FreeSWITCH Packages for Enterprise Linux 7 - x86_64 - Source     1,192

 

成功后,我们就可以直接通过yum安装freeswitch和相关的依赖库。

sudo yum search freeswitch

scl工具

scl工具是用来管理gcc版本的工具集,使用scl可以方便随意的切换当前的gcc版本,具体详情这里不展开,只为了满足fs基本的编译依赖需求。

centos7默认的gcc版本是4.8.5,编译fs1.10是没有问题的。

但是在执行“yum-builddep -y freeswitch“的时候对devtoolset-9的库有依赖要求,而devtoolset-9库需要使用scl的源来安装和管理。

#安装scl工具集,必选安装。

sudo yum install -y centos-release-scl centos-release-scl-rh

sudo yum install -y scl-utils scl-utils-build

sudo yum repolist && yum clean all && yum makecache

#从scl源中安装devtoolset,可选安装

sudo yum search devtoolset-9-gcc

sudo yum install -y devtoolset-9-gcc*

#切换gcc版本,可选操作

scl enable devtoolset-9 'bash'

# 查看从 SCL 中安装的包

scl --list

#通过bash环境来设定,仅对特定用户启用,用户启动终端自动切换gcc版本,可选操作

vi  ~/.bash_profile

# 添加如下

source scl_source enable devtoolset-9

libav库

libav库的编译安装是可选的。

如果需要fs的mod_av模块,就要首先编译安装libav库。

使用ffmpeg库无法正常编译安装mod_av,过程较蛋疼。

编译安装libav库,要首先安装libx264库,否则mod_av库的编译还是会报错。

#编译安装libx264

wget -c http://files.freeswitch.org/downloads/libs/libx264.tar.bz2

tar -jxvf libx264.tar.bz2

cd libx264

./configure --enable-static --enable-shared --prefix=/usr

make

sudo make install

sudo cp /usr/lib/pkgconfig/x264.pc /usr/lib64/pkgconfig/

sudo cp /usr/lib/libx264.so /usr/lib64/

sudo cp /usr/lib/libx264.a /usr/lib64/

 

#编译安装libav

wget -c http://files.freeswitch.org/downloads/libs/libav-12.tar.bz2 

tar -jxvf libav-12.tar.bz2

cd libav

./configure --enable-pic --enable-shared  --enable-libx264 --enable-gpl --extra-libs="-ldl" --extra-cflags=-I/usr/include --extra-ldflags=-L/usr/lib64

make

sudo make install

sudo cp /usr/local/lib/pkgconfig/libavcodec.pc /usr/local/lib/pkgconfig/libavdevice.pc /usr/local/lib/pkgconfig/libavfilter.pc /usr/local/lib/pkgconfig/libavformat.pc /usr/local/lib/pkgconfig/libavresample.pc /usr/local/lib/pkgconfig/libavutil.pc /usr/local/lib/pkgconfig/libswscale.pc /usr/lib64/pkgconfig/

sudo ldconfig

依赖库

通过yum源安装的依赖库。

fs1.10版本使用spandsp3版本,编译过程中和spandsp有冲突,需要先卸载spandsp库。

sudo yum remove spandsp-devel

自动安装fs依赖库。

sudo yum install -y yum-utils

sudo yum-builddep -y freeswitch --skip-broken

sudo yum install yum-plugin-ovl rpmdevtools yum-utils git centos-release-scl centos-release-scl-rh

sudo yum install sofia-sip-devel spandsp3-devel libks signalwire-client-c erlang python-devel  postgresql-devel

编译安装

开始编译fs源代码。

git clone -b v1.10.7 https://github.com/signalwire/freeswitch.git freeswitch-1.10.7

cd freeswitch-1.10.7

chmod 777 * -R

./bootstrap.sh -j

./configure

make

sudo make install

sudo make -j cd-sounds-install

sudo make -j cd-moh-install

不安装sounds的情况下,某些默认放音会放音失败。

配置

FS或SBC的初始配置方案见后续文档。

总结

freeswitch的最新版本对于编译安装流程做了优化处理,编译流程更加简单方便。

freeswitch的新版本和老版本在配置文件上基本可以通用,使用覆盖安装的模式下,老版本的配置文件不需要特别修改,可直接使用。

 

空空如常

求真得真

posted @ 2022-10-26 17:35  求真得真  阅读(811)  评论(1编辑  收藏  举报