【FreeSwitch开发实践】centos7下编译安装freeswitch及常见编译问题的解决

编程之家收集整理的这篇文章主要介绍了【FreeSwitch开发实践】centos7下编译安装freeswitch及常见编译问题的解决编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

freswitch在centos7下编译总体上还是不难的,但一些看似很难实则很容易甚至不需要解决的问题往往会”欺负“一些初学者(比如说本人);本文主要介绍centos7下freeswitch的编译过程,和常见的编译中问题及解决方法。freeswitch的依赖非常多,如果不安装依赖就开始编译freeswitch,那就遇到更多的问题,安装依赖之后,可以解决90%以上的问题。.......................................,下方主要介绍关于【FreeSwitch开发实践】centos7下编译安装freeswitch及常见编译问题的解决的全文内容,希望对你有所帮助。


前言

freswitch在centos7下编译总体上还是不难的,但一些看似很难实则很容易甚至不需要解决问题往往会”欺负“一些初学者(比如说本人);本文主要介绍centos 7下freeswitch的编译过程,和常见的编译中问题解决方法



一、环境

centos 7.6
freeswitch 1.10.7


二、安装依赖

freeswitch的依赖非常多,如果不安装依赖就开始编译freeswitch,那就遇到更多的问题安装依赖之后,可以解决90%以上的问题

安装依赖命令如下:

yum install -y https://files.freeswitch.org/repo/yum/centos-release/freeswitch-release-repo-0-1.noarch.rpm epel-release 

yum install -y yum-utils --enablerepo=extras 

yum install -y yum-plugin-ovl centos-release-scl rpmdevtools yum-utils git wget vim devtoolset-7-gcc* devtoolset-7 libtiff-devel cmake3 libatomic unixODBC unixODBC-devel.x86_64 postgresql-libs postgresql-devel libpqxx-devel

yum install -y gcc-c++ @R_301_6843@conf automake libtool ncurses-devel zlib-devel libjpeg-devel openssl-devel e2fsprogs-devel sqlite-devel libcurl-devel pcre-devel speex-devel ldns-devel libedit-devel libxml2-devel libyuv-devel libvpx-devel libvpx2* libdb4* libIDn-devel unbound-devel libuuID-devel lua-devel libsndfile-devel yasm-devel


三、下载源码

freeswitch下载地址https://github.com/signalwire/freeswitch.git
另外有两个比较重新的库需要手动安装,分别是spandsp和sofia-sip

下载命令:

cd /data
git clone -b v1.10.7 https://github.com/signalwire/freeswitch
cd /data/freeswitch
git clone https://github.com/freeswitch/spandsp.git
git clone https://github.com/freeswitch/sofia-sip.git


四、编译

1. 编译必需库

首先,要先编译spandspsofia-sip, 否则freeswitch在configure阶段会报错

#编译spandsp
cd /data/freeswitch/spandsp
./bootstrap.sh
./configure
make
make install

#编译sofia-sip
cd /data/freeswitch/sofia-sip
./bootstrap.sh
./configure
make
make install

#添加库的路径系统
export PKG_CONfig_PATH=/usr/local/lib/pkgconfig:${PKG_CONfig_PATH} 
ldconfig

2. 修改module.conf

下面则是安装freeswitch, 由于freeswitch支持动态编译和动态加载,一些不需要的模块可以不编译,如:mod_signalwire、mod_av,修改方法

找到module.conf文件,找到mod_signalwire和mod_av注释掉,修改如下:

#applications/mod_signalwire
#applications/mod_av

3. 编译freeswitch

有了前两步的准备,编译freeswitch基本就不会遇到问题了,命令如下:

cd /data/freeswitch
./bootstrap.sh
./configure --enable-portable-binary --prefix=/usr/local/freeswitch --with-gnu-ld --with-python --with-openssl --enable-core-odbc-support --enable-zrtp
make
make install

五、验证

freeswitch安装完成之后,下一步就是启动freeswitch并验证可用性了。

首先

1. 启动freeswitch

cd /usr/local/freeswitch/bin
./freeswitch -nonat

启动成功:

在这里插入图片描述

2. 验证必要端口是否启动

检查5060、5066、8021等端口是否启动(还有其他端口,但现在只需要看这几个端口就可以证明freeswitch启动正常了)。

netstat -anp |grep freeswitch

在这里插入图片描述

另外,可以软电话注册到freeswitch验证,这里不再赘述。

六、常见编译问题

首先,谨记的是先安装依赖,可以解决90%以上的编译问题

1.checking for spandsp >= 3.0… configure: error: no usable spandsp; please install spandsp3 devel package or equivalent

在这里插入图片描述


这个问题是缺少依赖库spandsp,安装方法参见本文步骤《 四、编译->2. 修改module.conf》


2.checking for sofia-sip-ua >= 1.13.6… configure: error: no usable sofia-sip; please install sofia-sip-ua devel package or equivalent

在这里插入图片描述


这个是由于缺少依赖库sofia-sip安装方法参见本文步骤《 四、编译->2. 修改module.conf》


3. *** You must install signalwire-clIEnt-c to build mod_signalwire. Stop.

在这里插入图片描述


报错的是mod_signalwire, 这个模块怎么看也是不需要的,注释掉它,注释方法在本文步骤《四、编译-> 1.编译必需库》


4. **** You must install libavformat-dev and libswscale-dev to build mod_av. Stop.

在这里插入图片描述


由于项目没有用到mod_av模块,选择注释掉,注释方法在本文步骤《四、编译-> 1.编译必需库》

总结

本文介绍freeswitch在centos 7下的编译过程,和一些常见的编译问题及其解决办法。如果觉得有帮助,可以关注一下博主~

总结

以上是编程之家为你收集整理的【FreeSwitch开发实践】centos7下编译安装freeswitch及常见编译问题的解决全部内容,希望文章能够帮你解决【FreeSwitch开发实践】centos7下编译安装freeswitch及常见编译问题的解决所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

CentOS文章

VirtualBox安装CentOS v6.5并挂载数据盘
centos6.6安装firefox和flash-plugin插件
CentOS下OpenSSL的安装和使用
CentOS6下安装Java jdk1.7.0_10
CentOS下KVM虚拟机的创建与管理
CentOS7安装phpMyAdmin
CentOS7 yum 安装git
CentOS架设VPN服务器
微信公众号搜索 “ 程序精选 ” ,选择关注!
微信公众号搜 "程序精选"关注