前言:請各大網友尊重本人原創知識分享,謹記本人部落格:南國以南i
介紹:freeswitch可整合ASR(語音識別)和TTS(文字轉語音)建立智慧電話機器人和使用者通話,可用於問卷調查,自動催繳等業務,電話諮詢服務,支援百度,科大,阿里雲,騰訊等ASR系統,可以真人預先錄音,使用者完全察覺不到是機器人。
背景:初次接觸freeswitch,部署安裝的時候碰到了很多坑,文章也採取了很多前輩的經驗,由此記錄下來
環境:Linux:Centos7、Freeswitch1.6 、Eyebeam
一、部署安裝freeswitch
1.安裝freeswitch需要的依賴
#安裝依賴 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 libdb4-devel e2fsprogs-devel erlang 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 python-devel python-devel soundtouch-devel speex-devel sqlite-devel unbound-devel unixODBC-devel wget which yasm zlib-devel libshout-devel libmpg123-devel lame-devel
2.下載freeswitch安裝包
#進入指定目錄 cd /usr/local/src #通過git拉取安裝包 git clone -b v1.6 https://github.com/signalwire/freeswitch.git
3.編譯freeswitch
友情提示:此處編譯至少需要耗費半小時,可喝一杯咖啡放鬆一下~
#進入安裝包目錄 cd /usr/local/src/freeswitch #執行編譯命令 ./bootstrap.sh -j ./configure make make -j install #安裝聲音檔案 make -j cd-sounds-install make -j cd-moh-install
4.freeswitch安裝結果
注: 至此freeswitch就已經安裝完了,freeswitch其預設的安裝位置是/usr/local/freeswitch
5.配置freeswitch任何路徑啟動
#將freeswitch作符號軟連結 ln -sf /usr/local/freeswitch/bin/freeswitch /usr/bin/ #fs_cli作符號軟連結 ln -sf /usr/local/freeswitch/bin/fs_cli /usr/bin/
6.freeswitch 命令操作
===============啟動命令================ #詳細啟動日誌並進入控制檯模式命令 freeswitch -c -nonat -rp #退出詳細模式啟動命令 shutdown #後臺啟動freeswitch服務(推薦使用) freeswitch -nc -nonat #進入控制檯模式命令 fs_cli #退出控制檯命令 /exit #關閉freeswitch命令 freeswitch -stop ===============查詢服務命令============= #檢視freeswitch安裝路徑 whereis freeswitch 檢視程式號 ps -ef | grep freeswithch 檢視freeswitch埠是否被監聽 netstat -anp | grep 5060 #檢視freeswitch的執行狀態 status(控制檯模式執行) #檢視freewitch內建使用者是否註冊 sofia status profile internal reg(控制檯模式執行)
7.啟動freeswitch並進入控制檯
解決執行fs_cli進入控制檯模式報錯:[ERROR] fs_cli.c:1659 main() Error Connecting [Socket Connection Error]
#進入freeswitch配置檔案路徑 cd /usr/local/freeswitch/conf/autoload_configs/ #修改配置 vim event_socket.conf.xml #更改結果 <param name="listen-ip" value="::"/> 改為 <param name="listen-ip" value="0.0.0.0"/> #重啟freeswitch freeswitch -stop freeswitch -nc -nonat
fs_cli
完成以上步驟至此freeswitch部署大功告成!
二、freeswitch服務通話測試
電腦下載軟電話註冊軟體:X-Lite、Zoiper、Eyebeam(噓~需要Eyebeam綠色版的小夥伴可以聯絡我?)
1.使用Eyebeam軟體進行配置註冊
Eyebeam軟電話註冊成功
解決軟電話註冊錯誤問題狀態碼
=============1、404 Not found============== 原因:freeswtich沒有啟動或者埠被佔用,總之Eyebeam不能到達指定domain 解決方法: 確保freeswitch已經啟動並且5060埠沒被佔用 #netstat -napl|grep 5060 =============2、403 forbidden============== 使用者名稱密碼錯誤 原因:freeswitch一開始安裝好 預設會給你配置好20個account (1000-1019),密碼統一是1234,這個可以在freeswitch/conf/vars.xml裡面修改 解決方法: 檢查使用者名稱密碼是否錯誤 =============3、408 timeout=============== 連線超時 原因:Eyebeam上配置的domain不正確, 或者網路有問題 解決方法: a、確保所填的域名是正確的ip地址 b、確保已經關閉防火牆(centos下) 關閉防火牆: systemctl stop firewalld.service 檢視防火牆狀態 #firewall-cmd --state 輸出:not running //說明防火牆已經關閉 c、檢視iptables
2.開始撥號,預設內建撥號如下
3.Eyebeam撥打9196號碼進行迴音測試
如圖所示呼叫建立成功、麥克風有電話迴音、freeswitch控制檯日誌輸出正常!