操作系統 :CentOS 7.6_x64 FreeSWITCH版本 :1.10.9 一、安裝ilbc庫 從第三方庫里下載指定版本: git clone https://freeswitch.org/stash/scm/sd/libilbc.git 如果下載過慢,可從如下途徑獲取: 關註微信公眾號(聊 ...
操作系統 :CentOS 7.6_x64
FreeSWITCH版本 :1.10.9
一、安裝ilbc庫
從第三方庫里下載指定版本:
git clone https://freeswitch.org/stash/scm/sd/libilbc.git
如果下載過慢,可從如下途徑獲取:
關註微信公眾號(聊聊博文,文末可掃碼)後回覆 20230416 獲取。 編譯及安裝步驟如下:./bootstrap.sh ./configure make make install
安裝成功:
如果遇到如下錯誤:
libtool: Version mismatch error. This is libtool 2.4.6, but the libtool: definition of this LT_INIT comes from libtool 2.4.2. libtool: You should recreate aclocal.m4 with macros from libtool 2.4.6
libilbc目錄下會自動生成libtool文件,將系統目錄的libtool複製過來即可:
此外,通過 yum install ilbc-devel.x86_64 安裝的方式會報錯:
二、編譯mod_ilbc模塊
1、更新ilbc庫
可通過如下方式配置libilbc庫:
ln -sf /usr/local/lib/libilbc.so.0.0.2 /lib64/libilbc.so ln -sf /usr/local/lib/libilbc.so.0.0.2 /lib64/libilbc.so.0
2、打開FreeSWITCH編譯配置項
編輯源碼目錄的modules.conf文件,去掉ilbc的註釋:
#codecs/mod_ilbc //去掉這個註釋的#號
3、重新配置編譯FreeSWITCH
源碼目錄執行如下命令:
./devel-bootstrap.sh && ./configure && make && make install
如果編譯FreeSWITCH遇到問題,可參考這篇文章:
4、載入mod_ilbc模塊
編輯 conf/autoload_configs/modules.conf.xml 文件,添加如下內容:
<load module="mod_ilbc"/>
重啟FreeSWITCH或執行重新load操作:
如果載入不報錯,則添加iLBC編碼成功。
三、編碼測試
1、開啟iLBC編碼支持及轉碼
文件: vars.xml
1)開啟iLBC編碼支持
<X-PRE-PROCESS cmd="set" data="global_codec_prefs=OPUS,G722,PCMU,PCMA,H264,VP8,iLBC"/> <X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=OPUS,G722,PCMU,PCMA,H264,VP8,iLBC"/>
2)開啟轉碼
添加如下內容:
<X-PRE-PROCESS cmd="set" data="media_mix_inbound_outbound_codecs=true"/>
2、iLBC編碼測試
1)配置話機
軟電話A的語音編碼只配置iLBC:
軟電話B的語音編碼只配置PCMU:
通話效果:
A撥打B,呼叫成功。
看日誌,發現Fs和A協商了iLBC編碼,然後和B協商了PCMU編碼。
抓包結果如下:
四、資源獲取
本文涉及資源可從如下途徑獲取:
關註微信公眾號(聊聊博文,文末可掃碼)後回覆 20230416 獲取。微信公眾號:
![](https://files.cnblogs.com/files/MikeZhang/201804weixingongzhong1.gif)