背景:

**1、**Sofia sip和SpanDSP依赖项已从FreeSWITCH中删除™ 自v1.10.4发布(2020年8月5日)以来

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

在编译安装 freeswitch 时, 找到 modules.conf 文件,找到 mod_signalwire 和mod_av 注释掉,修改如下(注意:有的版本需执行完./bootstrap.sh 或者 rebootstrap.sh 后才会出来):

#applications/mod_signalwire

#applications/mod_av

#applications/mod_verto

本文的安装后续会涉及安装 mod_av 模块(详见文后)。

一、安装操作系统依赖组件

centos(配置yum repo源,然后安装,提示no package的组件暂且不管):

yum install -y subversion autoconf automake libtool gcc-c++ ncurses-devel make libatomic git alsa-lib-devel   bison broadvoice-devel bzip2 curl-devel libdb4-devel e2fsprogs-devel erlang flite-devel g722_1-devel gdbm-devel gnutls-devel ilbc2-devel ldns-devel libcodec2-devel libcurl-devel libedit-devel libidn-devel libjpeg-devel libmemcached-devel libogg-devel libsilk-devel libsndfile-devel libtheora-devel libtiff-devel  libuuid-devel libvorbis-devel libxml2-devel lua-devel lzo-devel mongo-c-driver-devel  net-snmp-devel openssl-devel opus-devel pcre-devel perl perl-ExtUtils-Embed pkgconfig portaudio-devel postgresql-devel python-devel  soundtouch-devel speex-devel sqlite-devel unbound-devel unixODBC-devel wget which yasm zlib-devel libshout-devel libmpg123-devel lame-devel wgetalsa-lib-devel  curl-develdb-devel  gnutls-develilbc-devel   libcurl  libedit-devellibidn-devel   libssl-devellibsilk-devel   libvorbis-devellibxml2-devel lua lua-devel   ncurses-develnet-snmp-devel opus-develpcre  perl-libs  libzrtpcpp-devellibtiff-devel libX11-devel expat-devel   python26-devel   speex speex-develsqlite-devel libdb-develuuid-devel @development-tools libjpeg-turbo-devel libcurl-devel peexdsp-devel portaudio19-devel libldns-devel

ubuntu:

apt-get -y install build-essential subversion automake autoconf wget libtool libncurses5-dev

二、编译安装依赖组件

cd /usr/local/src ,所有安装都在这个目录操作吧

若无外网,提供相关组件离线安装包,可到 百度网盘链接: https://pan.baidu.com/s/1O4zicFgotkJVXNrUQHklLw?pwd=8f5q 提取码: 8f5q 下载。 或阿里云盘无限速下载。

2.1 安装 cmake

yum remove cmake
cd /usr/local/src
wget https://cmake.org/files/v3.14/cmake-3.14.0.tar.gz
tar -zxvf cmake-3.14.0.tar.gz
cd cmake-3.14.0
./configure
make && make install

2.2 安装 libks

cd /usr/local/src/
git clone https://github.com/signalwire/libks.git
cd libks
cmake .
make && make install

如果无法 git clone,下载链接: https://pan.baidu.com/s/1imZjIR9cI96Lqw0VvqZJeQ?pwd=3ann 提取码: 3ann

2.3 安装 signalwire-c

cd /usr/local/src/
git clone https://github.com/signalwire/signalwire-c.git
cd signalwire-c/
cmake .
make && make install
ln -sf /usr/local/lib64/pkgconfig/signalwire_client.pc /usr/lib64/pkgconfig/signalwire_client.pc

2.4 安装 x264

包含 mod_av 子模块(文头已描述,freeswitch对于这个模块可选择安装),建议安装此模块。

cd /usr/local/src/
git clone http://git.videolan.org/git/x264.git
cd x264
## 若不安装 mod_av 采用此命令: ./configure  --prefix=/usr/x264/ --includedir=/usr/local/include --libdir=/usr/local/lib --enable-shared --disable-asm
./configure --disable-asm
make && make install
2.4.1 安装 mod_av 子模块:

安装:x264-libs-0.148-24.20170521gitaaa9aa8.el7.x86_64.rpm、x264-devel-0.148-24.20170521gitaaa9aa8.el7.x86_64.rpm

下载链接: https://pan.baidu.com/s/1ixWtEygZLTNdartGIeezBg?pwd=b5ir 提取码: b5ir

rpm -hiv x264-libs-0.148-24.20170521gitaaa9aa8.el7.x86_64.rpm
rpm -hiv x264-devel-0.148-24.20170521gitaaa9aa8.el7.x86_64.rpm

2.5 安装 libav (含yasm)

cd /usr/local/src/
git clone https://gitee.com/nwaycn/libav.git
cd libavyasm
./configure --enable-pic --enable-shared  --enable-libx264 --enable-gpl --extra-libs="-ldl"
make && make install
cp /usr/local/lib/pkgconfig/libavcodec.pc    /usr/lib64/pkgconfig/
cp /usr/local/lib/pkgconfig/libavdevice.pc   /usr/lib64/pkgconfig/
cp /usr/local/lib/pkgconfig/libavfilter.pc   /usr/lib64/pkgconfig/
cp /usr/local/lib/pkgconfig/libavformat.pc   /usr/lib64/pkgconfig/
cp /usr/local/lib/pkgconfig/libavresample.pc /usr/lib64/pkgconfig/
cp /usr/local/lib/pkgconfig/libavutil.pc     /usr/lib64/pkgconfig/
cp /usr/local/lib/pkgconfig/libswscale.pc    /usr/lib64/pkgconfig/

如果configure时提示 “yasm/nasm not found or too old.”,则安装yasm, 下载:http://www.tortall.net/projects/yasm/releases/ 或者 链接: https://pan.baidu.com/s/1eoxAzQY2xJubgGbDQgJbUg?pwd=utxq 提取码: utxq

tar zxvf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure
make && make install

2.6 安装 libpng

cd /usr/local/src/
git clone https://freeswitch.org/stash/scm/sd/libpng.git
cd libpng
./configure
make && make install
cp /usr/local/lib/pkgconfig/libpng* /usr/lib64/pkgconfig/

2.7 安装opus

cd /usr/local/src/
git clone https://freeswitch.org/stash/scm/sd/opus.git
cd opus
./autogen.sh
./configure --libdir=/home/opp/pjsiprel/lib/
make && make install

2.8 安装 sofia-sip

cd /usr/local/src/
git clone https://github.com/freeswitch/sofia-sip.git
cd sofia-sip
./bootstrap.sh
./configure
make && make install

如果无法 git clone,下载链接: https://pan.baidu.com/s/1gQGkJA_aOHR7ZhRr7mFcaw?pwd=i1v2 提取码: i1v2

2.9 安装 spandsp

cd /usr/local/src/
git clone https://github.com/freeswitch/spandsp.git
cd spandsp
./bootstrap.sh
./configure
make && make install
vi /etc/profile

文末添加一下子内容:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

source /etc/profile

2.10 安装 libopus-devel rpm包

vi /etc/yum.repos.d/linuxtech.repo

添加以下内容:

[linuxtech]
name=LinuxTECH
baseurl=http://pkgrepo.linuxtech.net/el6/release/
enabled=1
gpgcheck=1
gpgkey=http://pkgrepo.linuxtech.net/el6/release/RPM-GPG-KEY-LinuxTECH.NET

yum install libopus-devel

三、编译安装 Freeswitch

找到 module.conf 文件,找到 mod_signalwire 注释掉,修改如下(注意:有的版本需执行完./bootstrap.sh后才会出来):

#applications/mod_signalwire

3.1

cd /usr/local/src/
wget http://files.freeswitch.org/freeswitch-1.10.2.-release.tar.gz #获下载其他版本,见文下描述
tar vzxf freeswitch-1.10.2.-release.tar.gz
cd freeswitch-1.10.2.-release
./rebootstrap.sh #或者 bootstrap.sh,哪个文件存在就哪个
#(如本文背景章节介绍)找到 mod_signalwire 注释掉。
#此处可以先看“3.2章节”,是否启动ESL
vi modules.conf 
./configure
make && make install  #如有依赖报错,缺什么安装什么

所有版本离线下载地址: https://files.freeswitch.org/freeswitch-releases/ 目录,或百度网盘下载freeswitch-1.10.2.-release.tar.gz包:https://pan.baidu.com/s/1iLQOXvQlSHtWAp0BmEfeJQ?pwd=jh47 提取码: jh47

3.2 安装ESL(可选)

建议可安装,第三方程序可用ESL(Event Socket Library)进行远程控制
对应的modules.conf的applications/mod_esl

cd /usr/local/src/freeswitch-???/libs/esl/
make && make install

3.3 创建软连接

ln -sf /usr/local/freeswitch/bin/freeswitch /usr/bin/
ln -sf /usr/local/freeswitch/bin/fs_cli /usr/bin/

3.4 启动

freeswitch -nc #具体命令可参考“四”

四、常用命令

### 后台启动freeswitch服务
freeswitch -nc
freeswitch -nonat -nc #不检查路由穿透行,加上此参数后会启动很快
### 停止
freeswitch -stop 
### 进入控制台
fs_cli
### 帮助
freeswitch -help

运行日志文件在 log 目录

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐