设置环境变量
app_ROOT=/home/hcicloud/freeswitch
depsDir=$app_ROOT/freeswitch_deps
上传安装包
freeswitch-1.6.20_deps.zip
freeswitch-1.6.20.tar.gz
检查依赖
检查依赖是否完整,不完整则安装。如果存在更高版本或者相同版本则跳过
rpm -qa | grep -i ncurses-base
rpm -ivh ncurses-base-5.7-4.20090207.el6.x86_64.rpm
**/sbin/ldconfig: /usr/lib64/libcurl.so 不是符号连接**
rpm -qa | grep -i ncurses-libs
rpm -ivh --force ncurses-libs-5.7-4.20090207.el6.x86_64.rpm
rpm -qa | grep -i ncurses-devel
rpm -ivh ncurses-devel-5.7-4.20090207.el6.x86_64.rpm
rpm -qa | grep -i libedit-devel
rpm -ivh libedit-devel-2.11-4.20080712cvs.1.el6.x86_64.rpm
**安装zlib-devel时会出现zlib的版本高于zlib-devel的版本,可以是用yum命令在线安装或者更新zlib-devel的安装版本**
rpm -qa | grep -i zlib-devel
rpm -ivh zlib-devel-1.2.3-29.el6.x86_64.rpm
**安装libjpeg-turbo-devel时,可能服务器系统自带旧版本1.2.1-1,无法删除,新版本也无法安装,可以yum命令在线安装**
rpm -qa | grep -i libjpeg-turbo-devel
rpm -ivh libjpeg-turbo-devel-1.2.1-.el6_5.x86_64.rpm
rpm -qa | grep -i lua-devel
rpm -i lua-devel-5.1.4-4.1.el6.x86_64.rpm
解压&安装依赖
unzip freeswitch-1.6.20_deps.zip > /dev/null
cd freeswitch_deps
安装yasm
tar zxvf $depsDir/yasm-1.3.0.tar.gz -C /usr/local/src && cd /usr/local/src/yasm-1.3.0
./configure && make && make install
安装sqlite-autoconf
tar zxvf $depsDir/sqlite-autoconf-3220000.tar.gz -C /usr/local/src && cd /usr/local/src/sqlite-autoconf-3220000
./configure && make && make install
安装autoconf
tar zxvf $depsDir/autoconf-2.69.tar.gz -C /usr/local/src/ && cd /usr/local/src/autoconf-2.69
./configure && make && make install
安装automake
tar zxvf $depsDir/automake-1.13.tar.gz -C /usr/local/src/ && cd /usr/local/src/automake-1.13
./configure && make && make install
安装curl
tar zxvf $depsDir/curl-7.58.0.tar.gz -C /usr/local/src/ && cd /usr/local/src/curl-7.58.0
./configure && make && make install
安装pcre
tar zxvf $depsDir/pcre-8.41.tar.gz -C /usr/local/src/ && cd /usr/local/src/prce-8.41
./configure && make && make install
安装speex
tar zxvf $depsDir/speex-1.2rc2.tar.gz -C /usr/local/src/ && cd /usr/local/src/speex-1.2rc2
./configure && make && make install
安装speexdsp
tar zxvf $depsDir/speexdsp-1.2rc3.tar.gz -C /usr/local/src/ && cd /usr/local/src/speexdsp-1.2rc3
./configure && make && make install
安装opus
tar zxvf $depsDir/opus-1.2.1.tar.gz -C /usr/local/src && cd /usr/local/src/opus-1.2.1
./configure && nake && make install
安装openssl
tar zxvf $depsDir/openssl-1.0.2n.tar.gz -C /usr/local/src/ && cd /usr/local/src/openssl-1.0.2n
./config shared --prefix=/usr/local/openssl-1.0.2n -fPIC && make -j && make install
make -j && make install
cp /usr/local/openssl-1.0.2n/lib/libcrypto.so.1.0.0 /usr/lib64/
cp /usr/local/openssl-1.0.2n/lib/libssl.so.1.0.0 /usr/lib64/
安装libsndfile
tar zxvf $depsDir/libsndfile-1.0.27.tar.gz -C /usr/local/src/ && cd /usr/local/src/libsndfile-1.0.27
./configure && nake && make install
安装freeswitch
tar zxvf $app_ROOT/freeswitch-1.6.20.tar.gz -C /usr/local/src/
cd /usr/local/src/freeswitch-1.6.20
修改modules.conf文件
vim modules.conf
# 开启mrcp模块支持 打开如下配置,把注释#删除即可
asr_tts/mod_unimrcp
# 关闭mod_enum
#applications/mod_enum
编译文件
cd /usr/local/src/freeswitch-1.6.20/
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
./configure CFLAGS="-I/usr/local/openssl-1.0.2n/include" LDFLAGS="-L/usr/local/openssl-1.0.2n/lib"
make && make install
安装lua脚本
tar zxvf $depsDir/luasocket-3.0-rc1.tar.gz -C /usr/local/src/ && cd /usr/local/src/luasocket-3.0-rc1/src
perl -p -i.bak1 -e "s#luaL_openlib\(L, NULL, func, 0\)#luaL_register\(L, NULL, func\)#" *.c
perl -p -i.bak2 -e "s#luaL_openlib\(L, \"socket\", func, 0\)#luaL_register\(L, \"socket\", func\)#" *.c
perl -p -i.bak3 -e "s#luaL_openlib\(L, \"mime\", func, 0\)#luaL_register\(L, \"mime\", func\)#" *.c
cd ../gem/
perl -p -i.bak1 -e "s#luaL_openlib\(L, \"gem\", func, 0\)#luaL_register\(L, \"gem\", func\)#" *.c
cd ..
make PLAT=linux DEBUG=NODEBUG LUAV=5.2 prefix=/usr/local COMPAT=NOCOMPAT LUAINC_linux=/usr/local/src/freeswitch-1.6.20/src/mod/languages/mod_lua/lua
make PLAT=linux DEBUG=NODEBUG LUAV=5.2 prefix=/usr/local COMPAT=NOCOMPAT LUAINC_linux=/usr/local/src/freeswitch-1.6.20/src/mod/languages/mod_lua/lua install
freeswitch启动
cd /usr/local/bin
./freeswitch -nonat -nc