Freeswitch 安裝爬坑記錄1
2 Freeswitch的安裝
2.1 準備工作
-
伺服器安裝CentOS
-
因為是內部環境,可以關閉一些防火牆設定,保證不會因為網路限制而不能連線
關閉防火牆
檢視防火牆 systemctl status firewalld
關閉防火牆 systemctl stop firewalld
檢視防火牆服務是否開機啟動 systemctl is-enabled firewalld
關閉防火牆開機啟動 systemctl disable firewalld關閉 SELinux
檢視當前SELinux狀態 getenforce
關閉SElinux setenforce 0
編輯配置檔案 vim /etc/selinux/config
SELINUX=permissive
修改此引數,修改為 disabled -
更新環境
yum -y update
-
先大概的安裝一些編譯環境需要的模組,在安裝過程中再根據報錯提示進行需要的模組安裝
yum install -y http://files.freeswitch.org/freeswitch-release-1-6.noarch.rpm epel-release
yum install -y git alsa-lib-devel autoconf automake bison broadvoice-devel bzip2 curl-devel db-devel e2fsprogs-devel flite-devel g722_1-devel gcc-c++ 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 libtool libuuid-devel libvorbis-devel libxml2-devel lua-devel lzo-devel mongo-c-driver-devel ncurses-devel net-snmp-devel openssl-devel opus-devel pcre-devel perl perl-ExtUtils-Embed pkgconfig portaudio-devel postgresql-devel python26-devel python-devel soundtouch-devel speex-devel sqlite-devel unbound-devel unixODBC-devel wget which yasm zlib-devel libks libks-devel signalwire-client-c signalwire-client-c-level
2.2 下載freeswitch
- 下載freeswitch 帶指定版本
cd /usr/local/src
git clone -b v1.6.20 https://github.com/signalwire/freeswitch.git freeswitch - 下載freeswitch 最新版本,國內映象
git clone https://github.com.cnpmjs.org/signalwire/freeswitch.git freeswitch
- 其它國內github映象地址
https://github.com.cnpmjs.org/
https://hub.fastgit.org/
https://github.wuyanzheshui.workers.dev/ - Freeswitch官方資源網站
2.3 編譯
-
編譯
cd /usr/local/src/freeswitch
./bootstrap.sh -j
./configure --enable-portable-binary \
--prefix=/usr --localstatedir=/var --sysconfdir=/etc \
--with-gnu-ld --with-python --with-erlang --with-openssl \
--enable-core-odbc-support --enable-zrtp
./bootstrap.sh
./configure -
執行後應該會有一些編譯環境沒有安裝完成,會有報錯提示,根據提示安裝完所有模組,注意要使用正確的模組名稱,一般是去掉版本號,同時還要安裝一個同名的帶-devel結尾的開發版本模組
yum install -y 模組名稱
-
缺少模組出現如下提示
checking for spandsp >= 3.0... configure: error: no usable spandsp; please install spandsp3 devel package or equivalent
-
根據提示對應需要安裝spandsp3和spandsp3-devel
yum install -y spandsp3
yum install -y spandsp3-devel -
安裝spandsp3p這個包時,有可能會出現下載映象點沒有對應的包體,阿里,網易,教育網等都沒有對應的映象,所以需要給系統新增更多的第三方映象,這裡推薦以下映象:
Install OKey repository:
yum install http://repo.okay.com.mx/centos/7/x86_64/release/okay-release-1-1.noarch.rpmInstall cheese repository:
yum install http://www.nosuchhost.net/~cheese/fedora/packages/epel-7/x86_64/cheese-release-7-1.noarch.rpm -
安裝完成這個第三方映象後,下載包體時會從這個第三方映象FTP下載,下載後會進行金鑰校驗,會出現校驗報錯
警告:/var/cache/yum/x86_64/7/okay/packages/spandsp-3.0.0-1.el7.x86_64.rpm: 頭V4 RSA/SHA256 Signature, 金鑰 ID 13d0a55d: NOKEY
從 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-OKAY 檢索金鑰
源 "Extra OKay Packages for Enterprise Linux - x86_64" 的 GPG 金鑰已安裝,但是不適用於此軟體包。請檢查源的公鑰 URL 是否配置正確。
失敗的軟體包是:spandsp-3.0.0-1.el7.x86_64
GPG 金鑰配置為:file:///etc/pki/rpm-gpg/RPM-GPG-KEY-OKAY -
我們需要把第三方映象FTP下載後的金鑰校驗給關閉,之後可正常安裝第三方包體,方法如下:
找到檔案 /etc/yum.repos.d/okey.repo
開啟後將其中所有 gpgcheck=0 改為 gpgcheck=1 -
其它第三方映象源出現問題,同理處理。
-
安裝spandsp3-devel時如果發生依賴關係問題,因為spandsp3已經依賴關係對應到spandsp-devel上了,所以無法安裝成功,這時我們需要把spandsp和spandsp-devel都移除後就可以正確安裝spandsp3-devel了
yum remove -y spandsp
yum remove -y spandsp-devel -
安裝完重成,要重新進行編譯步驟的兩個命令,再看是否提示其它模組需要安裝
-
缺少模組出現如下提示
checking for sofia-sip-ua >= 1.13.6... configure: error: no usable sofia-sip; please install sofia-sip-ua devel package or equivalent
-
需要安裝對應的devel包,建立依賴關係
yum install -y sofia-sip
yum install -y sofia-sip-devel -
編譯成功會看到如下圖提示
jpeg)
2.4 安裝
-
開始安裝,使用安裝命令
make
make install -
安裝中會出現錯誤提示,並且安裝過程會中止。其原因為安裝環境需要的模組沒有安裝完成,如下提示:
Makefile:1442: *** You must install libavformat-dev and libswscale-dev to build mod_av。 停止。
-
處理這種提示錯誤,可以發現需要安裝 libavformat-devel 和 libswscale-devel ,直接使用yum進行安裝
cd libs
git clone https://freeswitch.org/stash/scm/sd/libav.git
或者 wget https://freeswitch.org/stash/rest/api/latest/projects/SD/repos/libav/archive?format=zip
cd libav
./configure
make
make install -
安裝完成後,需要重新編譯後才能再次安裝,否則安裝仍會提示相同問題
./bootstrap.sh
./configure
make -
另一種解決方案
編譯libav成功
sudo ldconfig
修改freeswitch 編譯指令碼:
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:${PKG_CONFIG_PATH}
./configure -
最終還是沒有成功解決,由於mod_av這個模組是用於視訊通話的,在呼叫中心當前暫時不會使用到,所以可以直接不安裝這個模組先,那麼我們可以找到對應安裝配置檔案,把此模組註釋掉,隨便把mod_callcenter這個呼叫中心模組開啟
vi /etc/local/src/freeswitch/modules.conf
·#applications/mod_av
applications/mod_callcenter -
見到如下圖所示,則安裝成功:
-
安裝高質量音訊檔案
make -j cd-sounds-install
make -j cd-moh-install -
見到如下圖所示,則安裝成功:
-
啟動freeswitch
cd /usr/local/freeswitch/bin
./freeswitch -
見到如下圖所示,則執行成功
-
為了使用方便,可以把啟動freeswitch和其命令端做符號連結放到搜尋路徑中,之後可以在任何路徑下直接執行freeswitch 和 fs_cli 來啟動
ln sf /usr/local/freeswitch/bin/freeswitch /usr/bin/
ln sf /usr/local/freeswitch/bin/fs_cli /usr/bin/