一:#安装基础依赖包
yum install mock
useradd -s /sbin/nologin mockbuild
rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/epel/7/SRPMS/Packages/e/epel-release-7-12.src.rpm
yum install -y make expat-devel git gcc-c++ autoconf automake libtool wget python-devel ncurses-devel zlib-devel
libjpeg-devel openssl-devel e2fsprogs-devel sqlite-devel libcurl-devel pcre-devel
speex-devel ldns-devel libedit-devel libxml2-devel libdb4* libidn-devel
unbound-devel libuuid-devel lua-devel libsndfile-devel yasm-devel libtiff-devel
readline-devel unixODBC unixODBC-devel mysql-connector-odbc spandsp-devel
echo “/usr/local/lib” >> /etc/ld.so.conf
ldconfig
二:#安装lua类库
mkdir -p /opt/fs_src
cd /opt/fs_src
wget http://www.lua.org/ftp/lua-5.3.5.tar.gz
tar xzvf lua-5.3.5.tar.gz
cd lua-5.3.5
make linux
make install
ln -sf /usr/local/bin/lua /usr/bin
ln -sf /usr/local/bin/luac /usr/bin
三:#安装nasm类库
cd /opt/fs_src
wget https://www.nasm.us/pub/nasm/releasebuilds/2.14/nasm-2.14.tar.gz
tar xzvf nasm-2.14.tar.gz
cd nasm-2.14
./configure
make
make install
四:#安装png类库
cd /opt/fs_src
wget https://downloads.sourceforge.net/libpng/libpng-1.6.35.tar.xz
tar xJvf libpng-1.6.35.tar.xz
cd libpng-1.6.35
./configure
make
make install
/bin/cp /usr/local/lib/pkgconfig/libpng* /usr/lib64/pkgconfig/
六:#安装opus类库
cd /opt/fs_src
wget https://archive.mozilla.org/pub/opus/opus-1.3.tar.gz
tar xzvf opus-1.3.tar.gz
cd opus-1.3
./configure
make
make install
/bin/cp /usr/local/lib/pkgconfig/opus* /usr/lib64/pkgconfig/
七:#安装freeswitch
cd /opt/fs_src
wget http://files.freeswitch.org/freeswitch-releases/freeswitch-1.8.7.tar.xz
tar xJvf freeswitch-1.8.7.tar.xz
cd freeswitch-1.8.7
perl -i -pe ‘s/^applications/mod_signalwire/#applications/mod_signalwire/g’ modules.conf
perl -i -pe ‘s/^codecs/mod_opus/#codecs/mod_opus/g’ modules.conf
./configure --prefix=/opt/fs --with-openssl --enable-optimization --disable-libvpx
make
make install
#make sounds-install
#make moh-install
make samples
ln -sf /opt/fs/bin/freeswitch /usr/bin
ln -sf /opt/fs/bin/fs_cli /usr/bin
rm -rf /opt/fs/etc/freeswitch/sip_profiles/ipv6
perl -i -pe ‘s/"::"/“127.0.0.1”/g’ /opt/fs/etc/freeswitch/autoload_configs/event_socket.conf.xml
perl -i -pe ‘s/OPUS,G722,PCMU,PCMA,VP8"/OPUS,G722,PCMU,PCMA,VP8,H264"/g’ /opt/fs/etc/freeswitch/vars.xml
#perl -i -pe ‘s/
/"/g’ /opt/fs/etc/freeswitch/autoload_configs/modules.conf.xml
ldconfig #重置lib或者重启设备
#设置服务器启动后服务同步启动
chmod +x /etc/rc.local
echo “/opt/fs/bin/freeswitch -nonat -nc” >> /etc/rc.local
禁止防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
禁止SELinux
setenforce 0
sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/’ /etc/selinux/config
优化系统
cat > /etc/security/limits.conf << EOF
- soft nofile 65536
- hard nofile 65536
- soft nproc 65536
- hard nproc 65536
EOF
sed -i ‘/ulimit/d’ /etc/profile
cat >> /etc/profile << EOF
ulimit -c unlimited
ulimit -d unlimited
ulimit -f unlimited
ulimit -n 819200
ulimit -v unlimited
ulimit -s 81920
ulimit -l unlimited
EOF
cat > /etc/sysctl.conf << EOF
net.core.wmem_max=25696000
net.core.rmem_max=25696000
net.core.rmem_default=131071
net.core.wmem_default=131071
net.ipv4.udp_mem=63744 84992 257488
net.ipv4.ip_forward=1
EOF