Centos7上搭建FreeSwitch伺服器
1.下載原始碼
進入目錄
cd /usr/local/src
使用git獲取原始碼,沒有安裝git的話需要先安裝 執行
yum install git
然後執行
git clone -b v1.6 https://freeswitch.org/stash/scm/fs/freeswitch.git freeswitch
2.開始編譯
進入freeswitch目錄
cd /freeswitch
編譯之前需要下載安裝依賴庫,執行
yum install -y git gcc-c++ wget alsa-lib-devel autoconf automake bison broadvoice-devel bzip2 curl-devel db-devel e2fsprogs-devel flite-devel g722_1-devel 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 libtiff-devel libtheora-devel libtool 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 libuuid-devel which yasm zlib-devel
依賴庫安裝好後開始編譯,執行
./bootstrap.sh
編譯時間大概在30分鐘左右,完成後執行
./configure
以下介面表示配置成功
如果失敗可能缺少編譯環境,執行
yum install -y http://files.freeswitch.org/freeswitch-release-1-6.noarch.rpm epel-release
然後增加mod_nuimrcp模組:
vim ./build/modules.conf.in
修改 #asr_tts/mod_unimrcp 為 asr_tts/mod_unimrcp(去掉註釋),儲存退出
重新執行下面命令:
./bootstrap.sh -j
./configure
配置成功後執行make命令
以下介面為編譯成功:
如果提示
You must install libopus-dev to build mod_opus. Stop.
說明缺少依賴 libopus-dev,執行
yum install opus-devel
然後繼續make,make成功後執行make install
以下介面為安裝成功
3.配置ssl證書
使用騰訊雲平臺申請 域名型免費版證書
https://buy.cloud.tencent.com/ssl?fromSource=ssl&from=qcloudHpHeaderSsl
申請好後會有郵件通知,然後下載證書
使用tomcat配置https訪問,修改server.xml檔案,新增:
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="conf/www.test.com.jks"
keystorePass="******"
clientAuth="false" sslProtocol="TLS" />
其中keystoreFile為證書檔案,keystorePass為金鑰,然後重啟tomcat即可
為freeswitch製作wss.pem檔案
使用 https://myssl.com/ssl.html 檢視OpenSSL並複製,建立wss.pem檔案,將OpenSSL貼上上去,然後將證書下載包裡面apache資料夾下的3_www.test.com.key檔案打開復制內容到wss.pem上去儲存退出,到此freeswitch所需wss.pem檔案製作完成,新建資料夾/usr/local/freeswitch/certs,將wss.pem放進去
配置wss.pem路徑 /usr/local/freeswitch/conf/sip_profiles/internal.xml
<param name="tls-cert-dir" value="/usr/local/freeswitch/certs"/>
修改/usr/local/freeswitch/conf/ vars.xml
<X-PRE-PROCESS cmd="set" data="internal_ssl_enable=true"/>
<X-PRE-PROCESS cmd="set" data="external_ssl_enable=true"/>
修改/usr/local/freeswitch/conf/dialplan/default.xml
將預設密碼1234的10秒延遲去掉
4.啟動freeswitch
配置freeswitch在任何一個路徑都可以執行
ln -sf /usr/local/freeswitch/bin/freeswitch /usr/bin/
ln -sf /usr/local/freeswitch/bin/fs_cli /usr/bin/
前臺啟動
freewitch -c
後臺啟動
freewitch -nc
啟動報錯Cannot lock pid file /usr/local/freeswitch/run/freeswitch.pid.說明埠被佔用,關閉埠即可