1. 程式人生 > 其它 >Freeswitch 安裝爬坑記錄1

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

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.rpm

    Install 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/