FreeSWITCH添加iLBC編碼及轉碼

来源:https://www.cnblogs.com/MikeZhang/archive/2023/04/16/ilbc20230416.html
-Advertisement-
Play Games

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

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

 

微信公眾號:

  • E-Mail : [email protected]
  • 轉載請註明出處,謝謝!
    您的分享是我們最大的動力!

    -Advertisement-
    Play Games
    更多相關文章
    • File類 java.io.File 類是文件和目錄路徑名的抽象表示,主要用於文件和目錄的創建、查找和刪除等操作。File類將文件,文件夾和路徑封裝成了對象,提供大量的方法來操作這些對象。 靜態常量 // 靜態常量 static String pathSeparator // 與系統有關的路徑分隔符 ...
    • 本文主要介紹 Apache 的實際使用,文中所使用到的軟體版本:Centos 7.9.2009、Httpd 2.4.55。 1、反向代理 涉及到 Https 站點時,安裝 Apache 時需要啟用 ssl,可參考 Apache httpd 入門實戰(1)--概念及安裝。 1.1、被代理站點為 Htt ...
    • Python簡介 Python 是一個高層次的結合瞭解釋性、編譯性、互動性和麵向對象的腳本語言。 Python 的設計具有很強的可讀性,相比其他語言經常使用英文關鍵字,其他語言的一些標點符號,它具有比其他語言更有特色語法結構。 Python 是一種解釋型語言:這意味著開發過程中沒有了編譯這個環節。類 ...
    • 背景 在微服務項目中,大家都會去使用到分散式鎖,一般也是使用Redis去實現,使用RedisTemplate、Redisson、RedisLockRegistry都行,公司的項目中,使用的是Redisson,一般你會怎麼用?看看下麵的代碼,是不是就是你的寫法 String lockKey = "fo ...
    • 接下來本來就直接打算分享框架重構的具體環節,但重構的代碼其實並沒有完成太多,許多的實現細節在我心中還沒有形成一個定型。由於最近回歸崗位後,新的開發環境需要自己搭建,搭建的時間來說花了我整整一天的時間才勉強搞定。人們常說工欲善其事必先利其器,開發環境和工具是必不可少的,否則你會發現在接下來的過程中遇到 ...
    • 消息隊列中間件是分散式系統中重要的組件,主要解決應用耦合,非同步消息,流量削鋒等問題 實現高性能,高可用,可伸縮和最終一致性架構。最全面的Java面試網站 使用較多的消息隊列有 RocketMQ,RabbitMQ,Kafka,ZeroMQ,MetaMQ 以下介紹消息隊列在實際應用中常用的使用場景。 異 ...
    • 原創:扣釘日記(微信公眾號ID:codelogs),歡迎分享,非公眾號轉載保留此聲明。 在之前的OOM問題復盤中,我們添加了jmap腳本來自動dump記憶體現場,方便排查OOM問題。 但當我反覆模擬OOM場景測試時,發現jmap有時可以dump成功,有時會報錯,如下: 經過網上一頓搜索,發現兩種原因可 ...
    • demo軟體園每日更新資源,請看到最後就能獲取你想要的: 1.多語言BNB鏈上智能合約區塊鏈 別人發的我沒啥用,還有前面發的和這個好像不一樣 自己需要的下載玩,這個本來就沒有後臺,別下載了找我說不完整。看著還是挺不錯的。 這玩意好像還有人改盜u 頁面效果: 1.數據挖掘與預測分析 數據挖掘與預測分析 ...
    一周排行
      -Advertisement-
      Play Games
    • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
    • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
    • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
    • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
    • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
    • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
    • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
    • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
    • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
    • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...