必备插件

apt install -y git autoconf automake libtool  libffi-dev openssl libssl-dev build-essential
apt-get install -y sudo autoconf automake  pkg-config curl git wget cmake lsb-release
apt-get install -y    libcrypto++ build-essential  gcc g++ 
apt-get install -y libcurl4 libcurl4-openssl-dev libtool libtool-bin  libssl-dev  libtiff-dev libtheora-dev libopus-dev  libvorbis-dev 

apt install -y libopus0 libopus-dev sqlite3 libzdb-dev  libsqlite3-dev libpcre++-dev libpcre2-dev libpcre3-dev libspeex-dev libspeexdsp-dev libspeexdsp1 speex 
ldnsutils libldns-dev libldns3 libedit-dev libavformat58 libavformat-dev libswscale5 libswscale-dev

必备插件安装


#安装
wget https://files.freeswitch.org/downloads/libs/libyuv-0.0.1280.tar.gz
tar -xvf libyuv-0.0.1280.tar.gz
cd libyuv-0.0.1280
make && make install 
cd ..
mkdir -p /usr/lib64/pkgconfig/
cp  /usr/lib/pkgconfig/libyuv.pc /usr/lib64/pkgconfig/

#安装
wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar -xvf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure
make && make install
cd ..

#安装
wget https://files.freeswitch.org/downloads/libs/libvpx-1.4.0.tar.gz 
tar -xvf libvpx-1.4.0.tar.gz
cd libvpx-1.4.0
./configure
./configure --enable-pic --enable-static  --enable-shared --as=yasm --target=generic-gnu
make && make install
cp /usr/local/lib/pkgconfig/vpx.pc /usr/lib64/pkgconfig/
cd ..
make clean && ./configure && make
报错安装 apt search libvpx
apt install -y libvpx6 libvpx-dev libvpx-doc

#安装
wget https://files.freeswitch.org/downloads/libs/libsndfile-1.0.16.tar.gz
tar -xvf libsndfile-1.0.16.tar.gz
cd libsndfile-1.0.16
./configure 
make && make install 
cp /usr/local/lib/pkgconfig/sndfile.pc /usr/lib64/pkgconfig
cd ..

#安装
wget https://files.freeswitch.org/downloads/libs/spandsp-3.0.0-6ec23e5a7e.tar.gz
tar -xvf spandsp-3.0.0-6ec23e5a7e.tar.gz
cd spandsp
./bootstrap.sh -j
./configure 
make && make install
cd ..
#安装github,只需要安装一个
cd /usr/src/
git clone https://github.com/freeswitch/spandsp.git
cd spandsp-master
./bootstrap.sh -j
./configure
make
make install
ldconfig
cd ..

#安装
cd /usr/src/freeswitch
git clone https://github.com/freeswitch/sofia-sip.git
wget https://files.freeswitch.org/downloads/libs/sofia-sip/sofia-sip-1.13.5-afa7ebb814.tar.gz
tar -xvf sofia-sip-1.13.5-afa7ebb814.tar.gz
cd sofia-sip
./bootstrap.sh -j
./configure
make
make install
ldconfig


#安装
https://libav.org/releases/libav-12.3.tar.gz
wget https://files.freeswitch.org/downloads/libs/libav-12.tar.bz2
tar -xvf libav-12.tar.bz2
cd libav
./bootstrap.sh -j
./configure
make
make install
cp /usr/local/lib/pkgconfig/libavformat.pc /usr/lib64/pkgconfig
cp /usr/local/lib/pkgconfig/libswscale.pc /usr/lib64/pkgconfig
ldconfig
#或者
apt search libavformat 
apt search libswscale 
apt install -y libavformat58 libavformat-dev libswscale5 libswscale-dev


apt search opus

安装freeswitch&启动

cd /usr/local/src/
git clone https://github.com/signalwire/freeswitch.git -bv1.6 freeswitch
cd /usr/local/src/freeswitch
chmod -R +x /usr/local/src/freeswitch
./bootstrap.sh -j
./configure 
make
make install
make clean && make && make install 

./freeswitch -nc

安装opus_devel编译错误解决,相关的问题

vi /usr/local/src/freeswitch/src/mod/applications/mod_av/Makefile
vi /usr/local/src/freeswitch/src/mod/formats/mod_sndfile/Makefile
vim freeswitch/src/mod/codecs/mod_opus/Makefile中注释掉896 和 897
#install: error 
#all: error

错误处理

错误:ctx错误处理 openssl版本太高
https://www.lmlphp.com/user/205759/article/item/4324153/
You are using OpenSSL 1.1.0 but you need to use OpenSSL 1.0.2
安装openssl1.0.2 代替1.1的版
http://www.javashuo.com/article/p-vwapkose-ds.html
wget  https://ftp.openssl.org/source/old/1.0.2/openssl-1.0.2g.tar.gz
     或者https://ftp.openssl.org/source/old/1.0.2/openssl-1.0.2u.tar.gz
tar -xvf openssl-1.0.2g.tar.gz 
cd openssl-1.0.2g
./config shared zlib
make depend
make install
删除现有的版本
mv /usr/bin/openssl /tmp/
mv /tmp/openssl /tmp/openssl1
mv /usr/include/openssl/ /tmp/
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/include/openssl/ /usr/include/openssl

echo "/usr/local/ssl/lib" >> /etc/ld.so.conf 
ldconfig -v | grep openssl
查看版本信息
openssl version



错误:OPENSSL_ALGORITHM_DEFINES no longer supported
https://blog.csdn.net/qq_38781075/article/details/113774738 
原因:由于同时安装了openssl 1.1和openssl 1.0 版本,相冲突
解决方法(修改不使用的版本的头文件名字,达到找到对的opensslconf.h文件的目的)
mv /usr/include/x86_64-linux-gnu/openssl/opensslconf.h /usr/include/x86_64-linux-gnu/openssl/opensslconf.h.bak


错误:src/switch_core_sqldb.c: In function ‘switch_cache_db_status’:
src/switch_core_sqldb.c:3781:4: error: ‘strncpy’ specified bound depends on the length of the source argument [-Werror=stringop-overflow=]
 3781 |    strncpy(cleankey_str, dbh->name, strlen(dbh->name));
      |    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//strncpy(cleankey_str, dbh->name, strlen(dbh->name));
 strncpy(cleankey_str, dbh->name, strlen(dbh->name)-1);

1.6.20需要改变函数名
strncpy( ret, my_search, strlen(my_search) );
strcpy( ret, my_search );