概述

最近由于项目需求,老版本的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编译安装的更多相关文章

  1. CentOS7编译安装Nginx-1.8.1和编译参数

    CentOS7编译安装Nginx-1.8.1和编译参数 Web服务器Nginx    LNMP是一组众所周知的Web网站服务器架构环境,即由Linux+Nginx+MySQL+PHP(MySQL有时也 ...

  2. centos7 编译安装新版LNMP环境

    centos7 编译安装新版LNMP环境 环境版本如下: 1.系统环境:Centos 7 x86_64 2.NGINX:nginx-1.11.3.tar.gz 3.数据库:mariadb-10.0.2 ...

  3. centos7编译安装MySQL5.7.9

    title: centos7编译安装MySQL5.7.9 date: 2016-05-12 16:20:17 tags: --- Centos7编译安装mysql5.7.9 mysql5.7有更好的性 ...

  4. CentOS7编译安装httpd-2.4.41 php7.3

    CentOS7编译安装httpd-2.4.41 php7.3 安装参考环境: CentOS Linux release 7.5.1804 (Core) 一.安装依赖包 httpd安装的依赖包 # yu ...

  5. Centos7 编译安装PHP7

    Centos7 编译安装PHP7 编译安装的方式可以让组件等设置更加合理,但需要你对PHP的代码及各种配置非常的熟悉,以下为大致的安装流程,大家可以参考 1.下载编译工具 yum groupinsta ...

  6. CentOS7编译安装php7.1配置教程详解

    这篇文章主要介绍CentOS7编译安装php7.1的过程和配置详解,亲测 ,需要的朋友可以参考. 1.首先安装依赖包: yum install libxml2 libxml2-devel openss ...

  7. 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 查看硬 ...

  8. 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 查看硬 ...

  9. 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 查看硬 ...

  10. Centos7编译安装lnmp(nginx1.10 php7.0.2)

    我使用的是阿里云的服务器 Centos7 64位的版本 1. 连接服务器 这个是Xshell5的版本 安装好之后我们开始连接服务器 2. 安装nginx 首先安装nginx的依赖 yum instal ...

随机推荐

  1. 【scikit-learn基础】--『预处理』之 离散化

    数据的预处理是数据分析,或者机器学习训练前的重要步骤.通过数据预处理,可以 提高数据质量,处理数据的缺失值.异常值和重复值等问题,增加数据的准确性和可靠性 整合不同数据,数据的来源和结构可能多种多样, ...

  2. django+drf开发一些个人的标准化

    最近在改造一下个人的开发风格.特分享一下. 子应用我一般放在apps中,每个不同模块的子应用起不同的名字.startapp后自己移动一下,记得修改一下Appconfig中的name即可. 子应用中创建 ...

  3. 基于QT环境下,实现客户端红外采集人体向服务端通信。

    一.本次测试目的 基于QT环境下STM32人体红外检测,实现客户端红外采集到信息向服务端通信. 二.功能 (1).传入音乐,当服务端接收到信息时,打开音乐    (2).在服务端上面显示图片,当接收到 ...

  4. Taurus .Net Core 微服务开源框架:Admin 插件【4-8】 - 配置管理-Mvc【Plugin-Limit 接口访问限制、IP限制、Ack限制】

    前言: 继上篇:Taurus .Net Core 微服务开源框架:Admin 插件[4-7] - 配置管理-Mvc[Plugin-Metric 接口调用次数统计] 本篇继续介绍下一个内容: 1.系统配 ...

  5. MinIO入门

    MinIO 是一种高性能.S3 兼容的对象存储. 官方资料 中国官网 代码仓库 安装和部署MinIO 单节点单硬盘部署MinIO 单节点多硬盘部署MinIO 多节点多硬盘部署 站点复制概述 管理现有的 ...

  6. 8.解决elasticsearch深度分页问题

    前面说到,分页可以使用from和size参数,类似于mysql的分页offset和limit.但是如果数据量比较大时,elasticsearch会对分页做出限制,因为此时会比较消耗性能. 为什么要限制 ...

  7. 2023-09-05:请用go语言编写。一个图像有n个像素点,存储在一个长度为n的数组arr里, 每个像素点的取值范围[0,s]的整数, 请你给图像每个像素点值加上一个整数k(可以是负数), 像素值会

    2023-09-05:请用go语言编写.一个图像有n个像素点,存储在一个长度为n的数组arr里, 每个像素点的取值范围[0,s]的整数, 请你给图像每个像素点值加上一个整数k(可以是负数), 像素值会 ...

  8. nginx 超时

    知识点小记,nginx默认1min超时返回,nginx.conf->http中添加: proxy_read_timeout 600; *600就是10分钟,理论上后台接口不应该这么搞,但实际上项 ...

  9. 第十部分_Shell脚本之函数

    函数 1. 什么是函数? shell中允许将一组命令集合或语句形成一段可用代码,这些代码块称为shell函数 给这段代码起个名字称为函数名,后续可以直接调用该段代码的功能 2. 如何定义函数? 方法1 ...

  10. 华为云推出全自研数据库,GaussDB(openGauss)能否撑起一片天?

    摘要:GaussDB(openGauss) 基于华为云底座,能够快速全球化部署,同时支持用户的本地化部署诉求,跟云上生态工具紧密结合让用户在迁移.开发.运维上省时省心. GaussDB(openGau ...