FreeSWITCH添加iLBC編碼及轉碼

操作系統 :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遇到問題,可參考這篇文章:

CentOS7環境源碼安裝freeswitch1.10

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 獲取。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章