1. 程式人生 > >FreeSWITCH折騰筆記5——G729轉碼支援

FreeSWITCH折騰筆記5——G729轉碼支援

FreeSWITCH預設是不支援G729轉碼的,但可至此G729媒體透傳,因此如果兩個話機有一個只支援G729時是無法進行呼叫的,同時在使用G729編碼時FreeSWITCH是不能進行錄音的。

當然如果商業應用的話可以購買G729的許可,10刀一通道,或者使用硬體的轉碼卡,價格貌似就更高了。

網路上有很多使用8000hz的原始碼包編譯FreeSWITCH可用的G729模組,但是效果一般,我這裡使用的是bcg729的原始碼來進行編譯,轉碼效果比8000hz的稍好。BCG729當前最新的版本是1.0.3

準備工作:與當前執行的FreeSWITCH版本一致的原始碼一份

開始編譯:

1、進入原始碼../src/mod/endpoints目錄     

cd /usr/src/freeswitch-1.6.19/src/mod/endpoints

2、檢出FreeSWITCH適用的G729模組(這部分原始碼是對BCG729進行FreeSWITCH的適配)

git clone 
https://github.com/xadhoom/mod_bcg729.git

3、將mod_bcg729改名為mod_g729

  mv mod_g729 mod_g729_bak
  mv mod_bcg729 mod_g729

4、返回FreeSWITCH原始碼主目錄,執行配置

./configure

5、進入../src/mod/endpoints/mod_g729目錄,並執行編譯

  cd /usr/src/freeswitch-1.6.19/src/mod/endpoints/mod_g729
  make
  ##編譯時如果提示找不到標頭檔案,可以將FreeSWITCH原始碼include目錄下的對應標頭檔案複製到
  #../mod_g729/bcg729/include/目錄,還有其他找不到的標頭檔案可以使用find命令
  #在FreeSWITCH原始碼目錄下搜尋,然後複製到../mod_g729/bcg729/include/目錄,然後再重新編譯

6、編譯完成後,將mod_bcg729.so複製到FreeSWITCH的庫目錄,也可以直接替換FreeSWITCH的庫目錄下的G729庫檔案

   cp mod_bcg729.so /usr/lib/freeswitch/mod/

7、修改FreeSWITCH配置檔案vars.xml,在global_codec_prefs和outbound_codec_prefs中新增G729

  <X-PRE-PROCESS cmd="set" data="global_codec_prefs=PCMU,PCMA,GSM,G729,[email protected],[email protected],G722,OPUS,VP8" />
  <X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=PCMU,PCMA,GSM,G729" />

8、在fs_cli中載入BCG729模組

  unload mod_g729
  load mod_bcg729

相關推薦

FreeSWITCH折騰筆記5——G729支援

FreeSWITCH預設是不支援G729轉碼的,但可至此G729媒體透傳,因此如果兩個話機有一個只支援G729時是無法進行呼叫的,同時在使用G729編碼時FreeSWITCH是不能進行錄音的。 當然如果商業應用的話可以購買G729的許可,10刀一通道,或者使用硬體的

FreeSWITCH之配置G729

FreeSWITCH G.729 c linux 在互聯網大數據時代的背景下,作為服務器程序,高並發尤為重要,線路帶寬資源就顯得更加彌足珍貴了。目前比較流行語音編碼有2種G711、G729。由於語音需要采用上下行對等的寬帶,G711每線需要大約90kbit/s/S的帶寬,而G729每線僅需要3

FreeSWITCH折騰筆記3——數據庫修改為postgresql

freeswitch pgsql需要修改的配置文件:switch.conf.xml //核心表 cdr_pg_csv.conf.xml //通話記錄 db.conf.xml //核心表 voicemail.conf.xml //留言相關的表 internal.xml // external.xml // fi

FreeSWITCH折騰筆記7——使用keepalived進行主備切換高可用部署

freeSWITCH的高可用部署方式有兩種:主備切換和負載均衡,官方文件介紹的主備切換部署是採用Corosync & Pacemaker,負載均衡採用前置opensips。但對使用keepalived進行主備切換的高可用方式沒有介紹,同時網上對該種部署方式也沒有介

Java網路爬蟲crawler4j學習筆記 網頁內容解析

簡介 網頁內容解析相關的類和介面位於包edu.uci.ics.crawler4j.parser中,用於拆分解析html網頁的各部分內容。下面的Parser的基本作用就是從各種各樣的資料(二進位制,文字)中抽取出我們需要的html頁面。 原始碼 Pars

FreeSWITCH折騰筆記8——使用OpenSIPS進行負載均衡

通過OpenSIPS對FreeSWITCH進行負載均衡網路上的文章很多,但都是基於老版本的OpenSIPS,目前最新的OpenSIPS LTS版是2.4,如果使用老版本配置檔案,OpenSIPS是執行不起來(當然通過一番修改後還是可以執行起來的)。筆者經過一番折騰,成

C++筆記(5):繼承和多態代實現

c++筆記 esp 變量 main style cnblogs radius 區分 fine Shape.h 1 #ifndef SHAPE_H 2 #define SHAPE_H 3 #include<string> 4 using std::str

python學習筆記(集合的使用、文件操作、字符編碼與、函數)

函數式編程 close 取值 指定編碼 mage 指定位置 lac 空白 你在 集合 集合(set):把不同的元素組成一起形成集合,是python基本的數據類型。 集合元素(set elements):組成集合的成員 為什麽需要集合? 集合的作用 1 .列表去重復數據

筆記5

框架 元素 頭部 cti lsp plan 視頻 網頁 中秋 代碼第一單元結束 開始第二單元 學了列表 列表分為無序列表和有序列表   1.無序列表<ul>           <li>xxxxxxxx</li>           &

paragon ntfs 15.5 for mac破解啟用 支援macOS Mojave10.14

Paragon Ntfs 是 Mac 上最知名的一款 NTFS 讀寫工具,能夠讓我們讀寫 NTFS 分割槽,因為在Mac OS X 系統中,預設對NTFS分割槽只能讀而不能寫,但我們的行動硬碟或U盤很多都是用NTFS進行的分割槽,所以當你發現在Mac上無法往行動硬碟或U盤中寫入資料時,大部分原因是你沒有按照N

機器學習實戰筆記5支援向量機

注:此係列文章裡的部分演算法和深度學習筆記系列裡的內容有重合的地方,深度學習筆記裡是看教學視訊做的筆記,此處文章是看《機器學習實戰》這本書所做的筆記,雖然演算法相同,但示例程式碼有所不同,多敲一遍沒有壞處,哈哈。(裡面用到的資料集、程式碼可以到網上搜索,很容易找到。)。Python版本3.6

Cleanmymac X 4.0.5破解版 附啟用支援macOS Mojave 10.14

Cleanmymac是MacOS中全方面領先的一款優化清理工具,在Mac系統更新至macOS Mojave 10.14後,cleanmymac也必須更新到最新版才能正常的執行工作了,下面就是給各位提供的Cleanmymac X破解版的安裝包了,需要的朋友自行下載吧。 功能簡介Cleanmymac X

字元開源庫libiconv目前還不支援64位

最新版的libiconv 1.14目前還不支援64位系統,只能編譯出32位庫。libiconv 1.14下載地址:libiconv介紹:linux系統編譯安裝方法:$ ./configure --prefix=/usr/local $ make $ make install執

FreeSWITCH學習筆記 第一場 第四個鏡頭 區域網支援

在區域網內進行的測試,需要進行ACL的配置 conf/autoload_configs/acl.conf.xml 中,加入下面配置: <list name="localnet.auto

mobx前期配置工作讓webpack支援ES7的修飾器的

MobX 是一個簡單、方便擴充套件、久經考驗的狀態管理解決方案。使用了觀察者(observable)與被觀察者(observer)的概念,本人不介紹MobX的使用(本人也在努力研究之中),僅僅是介

EditReady for Mac 2.5.2破解版 — 視訊工具

軟體介紹 EditReady for Mac是Mac平臺上的一款視訊轉碼工具,為專業的視訊從業人員提供了簡單、快速和強大的轉碼功能,沒有強大的介面或過時的格式選擇。MOV, MP4和MXF媒體都可以在ProRes或DNxHD中快速轉換為編輯現成的quicktime影片。 **EditReady for M

設定Webstorm支援ES6並自動成ES5

一、設定Webstorm支援ES6 在 Settings -> Languages&Frameworks -> JavaScript 裡設定為 ES6 。 二、設定ES6自動轉碼成

Python學習筆記(一)問題的解決的解決方法:“ignore”

Python轉碼問題的解決方法:“ignore”若希望將Json檔案轉化為python形式的Unicode字串,可以如下操作unicodestr = json.loads(html.decode("gbk"))但在實際開發中,這種辦法時常會出現異常:UnicodeDecode

PHP的json_encode中文被的問題 在php5.2中做json_encode的時候。中文會被unicode編碼, php5.3加入了options引數, 5.4以後才加入JSON_U

在php5.2中做json_encode的時候。中文會被unicode編碼, php5.3加入了options引數, 5.4以後才加入JSON_UNESCAPED_UNICODE,這個引數,不需要做escape和unicode處理。 所以在5.4之前都需要對中文做個處理

基於已有專案整合webpack配合babel支援es6壓縮

需求: 在已有的專案基礎上整合webpack,babel支援es6轉碼壓縮 想要單獨使用請參考 1.單獨使用webpack壓縮程式碼 [https://seg