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的新版本和老版本在配置文件上基本可以通用,使用覆盖安装的模式下,老版本的配置文件不需要特别修改,可直接使用。
空空如常
求真得真
freeswitch-1.10.7 on centos7编译安装的更多相关文章
- CentOS7编译安装Nginx-1.8.1和编译参数
CentOS7编译安装Nginx-1.8.1和编译参数 Web服务器Nginx LNMP是一组众所周知的Web网站服务器架构环境,即由Linux+Nginx+MySQL+PHP(MySQL有时也 ...
- centos7 编译安装新版LNMP环境
centos7 编译安装新版LNMP环境 环境版本如下: 1.系统环境:Centos 7 x86_64 2.NGINX:nginx-1.11.3.tar.gz 3.数据库:mariadb-10.0.2 ...
- centos7编译安装MySQL5.7.9
title: centos7编译安装MySQL5.7.9 date: 2016-05-12 16:20:17 tags: --- Centos7编译安装mysql5.7.9 mysql5.7有更好的性 ...
- CentOS7编译安装httpd-2.4.41 php7.3
CentOS7编译安装httpd-2.4.41 php7.3 安装参考环境: CentOS Linux release 7.5.1804 (Core) 一.安装依赖包 httpd安装的依赖包 # yu ...
- Centos7 编译安装PHP7
Centos7 编译安装PHP7 编译安装的方式可以让组件等设置更加合理,但需要你对PHP的代码及各种配置非常的熟悉,以下为大致的安装流程,大家可以参考 1.下载编译工具 yum groupinsta ...
- CentOS7编译安装php7.1配置教程详解
这篇文章主要介绍CentOS7编译安装php7.1的过程和配置详解,亲测 ,需要的朋友可以参考. 1.首先安装依赖包: yum install libxml2 libxml2-devel openss ...
- Centos7 编译安装 Nginx PHP Mariadb Memcached 扩展 ZendOpcache扩展 (实测 笔记 Centos 7.3 + Mariadb 10.1.20 + Nginx 1.10.2 + PHP 7.1.0 + Laravel 5.3 )
环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7-x86_64-Minimal-1611.iso 安装步骤: 1.准备 1.0 查看硬 ...
- Centos7 编译安装 Nginx Mariadb Asp.net Core2 (实测 笔记 Centos 7.3 + Openssl 1.1.0h + Mariadb 10.3.7 + Nginx 1.14.0 + Asp.net. Core 2 )
环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7-x86_64-Minimal-1611.iso 安装步骤: 1.准备 1.0 查看硬 ...
- Centos7 编译安装 Nginx PHP Mariadb Memcached 扩展 ZendOpcache扩展 (实测 笔记 Centos 7.3 + Openssl 1.1.0e + Mariadb 10.1.22 + Nginx 1.12.0 + PHP 7.1.4 + Laravel 5.4 )
环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7-x86_64-Minimal-1611.iso 安装步骤: 1.准备 1.0 查看硬 ...
- Centos7编译安装lnmp(nginx1.10 php7.0.2)
我使用的是阿里云的服务器 Centos7 64位的版本 1. 连接服务器 这个是Xshell5的版本 安装好之后我们开始连接服务器 2. 安装nginx 首先安装nginx的依赖 yum instal ...
随机推荐
- [USACO2007OPEN S] Catch That Cow S
题目描述 FJ丢失了他的一头牛,他决定追回他的牛.已知FJ和牛在一条直线上,初始位置分别为x和y,假定牛在原地不动.FJ的行走方式很特别:他每一次可以前进一步.后退一步或者直接走到2*x的位置.计算他 ...
- Layui treeTable 使用【数据不显示、子级不显示】
//返回JSON数据类 public class LeaveMessageTreeTable { public LeaveMessageTreeTable() { this.children = ne ...
- Luogu P4524 Ceste 题解
题目链接:\(\texttt{Luogu P4524 Ceste}\) 简化题意 给定一个有 \(n\) 个点 \(m\) 条边的无向图.每条边的边权为一个二元组 \((a, b)\),求以 \(1\ ...
- 文心一言 VS 讯飞星火 VS chatgpt (177)-- 算法导论13.3 6题
六.用go语言,说明如果红黑树的表示中不提供父指针,应当如何有效地实现 RB-INSERT. 文心一言: 红黑树是一种自平衡的二叉搜索树,其中每个节点都包含一个颜色属性(红色或黑色),并且满足以下性质 ...
- 2023-10-11:用go语言,一个数字n,一定要分成k份, 得到的乘积尽量大是多少? 数字n和k,可能非常大,到达10^12规模。 结果可能更大,所以返回结果对1000000007取模。 来自华为
2023-10-11:用go语言,一个数字n,一定要分成k份, 得到的乘积尽量大是多少? 数字n和k,可能非常大,到达10^12规模. 结果可能更大,所以返回结果对1000000007取模. 来自华为 ...
- 文心一言 VS 讯飞星火 VS chatgpt (46)-- 算法导论6.1 4题
四.假设一个最大堆的所有元素都不相同,那么该堆的最小元素应该位于哪里? 文心一言: 最大堆的最小元素位于堆的根结点.由于最大堆的性质,根结点是堆中所有元素的最大值,因此它也是堆中所有元素的最小值. 讯 ...
- .NET Core Swagger Actions require a unique method/path combination for Swagger/OpenAPI 3.0. Use ConflictingActionsResolver as a workaround
遇到的问题 因为新增了一个控制器方法,从而导致在运行Swagger的时候直接报错,异常如下: SwaggerGeneratorException: Conflicting method/path co ...
- C++篇:第十二章_文件及IO_知识点大全
C++篇为本人学C++时所做笔记(特别是疑难杂点),全是硬货,虽然看着枯燥但会让你收益颇丰,可用作学习C++的一大利器 十二.文件及IO 当在输入输出流中使用控制符进行格式控制时,需在程序中加入头文件 ...
- 如何极速极速搭建个人博客?Copy攻城狮用的这一招很优秀!
摘要:在中国功夫中,"天下武功,无坚不摧,唯快不破",在编程的世界里,如何快速搭建一个属于自己的博客呢?那么 Pagic + Vercel 应该是个不错的选择!接下来,由Copy攻 ...
- 一文带你了解EiPaaS和EiPaaS的国际趋势
摘要:EiPaaS (Enterprise Integration Platform as a Service) 是企业级的集成平台和服务. 本文分享自华为云社区<初识EiPaaS和EiPaaS ...