当前位置: 首页 > news >正文

FreeSWITCH开启silk编码及转码

eeSWITCH版本: 1.10.11

SILK编码由Skype设计,是一种用于VoIP的宽带音频编解码器,它支持8khz、12khz、16khz、24khz四种不同的采样率。今天整理下FreeSWITCH使用silk编码进行通话及转码的笔记,希望对你有帮助。

一、模块安装及配置

1、添加模块编译项

文件:源码根目录的modules.conf文件

添加(或取消注释)如下代码:

codecs/mod_silk

image

2、编译及安装

需要安装依赖:

https://github.com/freeswitch/libsilk

image

如果下载过慢,可从如下渠道获取:

关注微信公众号(聊聊博文,文末可扫码)后回复 20251125 获取。

libsilk库编译及加载命令如下:

./bootstrap.sh

./configure

make && make install

cp /usr/local/lib/pkgconfig/silk.pc /usr/lib64/pkgconfig

ldd

image

源码目录执行如下命令:

autoreconf -fiv

make clean

./devel-bootstrap.sh && ./configure && make && make install

会编译mod_silk模块并生成文件:

image

3、加载mod_silk模块

编辑 conf/autoload_configs/modules.conf.xml 文件,添加如下内容:

<load module="mod_silk"/>

image

重启FreeSWITCH或执行重新load操作:

load mod_silk

image

如果加载不报错,则添加mod_silk 模块成功。

4、启用编码

配置文件路径:

/usr/local/freeswitch/conf/vars.xml

配置文件内容如下(默认):

<X-PRE-PROCESS cmd="set" data="global_codec_prefs=SILK,OPUS,G722,PCMU,PCMA,L16,H264,VP8"/>

<X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=SILK,OPUS,G722,PCMU,PCMA,L16,H264,VP8"/>

image

重启freeswitch生效。

二、使用silk编码通话

1、配置话机支持silk编码

配置分机只支持silk编码:

image

2、验证silk编码通话

添加测试拨号方案:

复制代码

<extension name="playTest">

<condition field="destination_number" expression="^10087$">

<action application="answer"/>

<action application="playback" data="$${hold_music}"/>

</condition>

</extension>

复制代码

image

拨打测试号码(比如10087)进行呼叫测试,效果如下:

image

三、silk编码转换

1、开启语音编码转换功能

文件:conf/vars.xml

修改或添加内容:

<X-PRE-PROCESS cmd="set" data="global_codec_prefs=SILK,OPUS,G722,PCMU,PCMA,L16,H264,VP8"/>

<X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=SILK,OPUS,G722,PCMU,PCMA,L16,H264,VP8"/>

<X-PRE-PROCESS cmd="set"data="media_mix_inbound_outbound_codecs=true"/>

image

文件:

sip_profiles/internal.xml

修改或添加如下内容:

<param name="inbound-late-negotiation" value="false"/>

<param name="disable-transcoding" value="false"/>

image

重启freeswitch生效。

2、通话效果

分机1009 PCMU编码

分机1010 silk编码

通话效果如下:

image

http://www.zskr.cn/news/117528.html

相关文章:

  • C++医学图像处理经典ITK库用法详解<三>: 图像配准模块功能
  • 实战前瞻:构建高可用、强实时的 Flutter + OpenHarmony 智慧医疗健康平台
  • 2025年12月新能源车电池续航,大巴车电池续航,磷酸铁锂电池续航公司推荐:行业测评与选择指南 - 品牌鉴赏师
  • Java毕设项目:基于Java的采购管理系统的设计与实现(源码+文档,讲解、调试运行,定制等)
  • QSharedMemory 在create前判断共享内存是否存在
  • 【JavaWeb】日程管理02——注册页及数据校验功能
  • 开源企业级邮件服务器选型指南
  • 数据上新预告 | 中国各省市官方媒体微信公众号数据
  • 现代软件测试工具全景对比与选型指南
  • 构建高效可持续的自动化测试框架:从架构设计到落地实践
  • 每日 AI 评测速递来啦(12.17)
  • C++可变参数队列与压栈顺序:从模板语法到汇编调用约定的深度解析
  • 灌区PLC阀门远程监控运维系统方案
  • 初探 Mysql Docker
  • 2025年12月灰铁,灰铁棒料,灰铁圆棒型材公司推荐:行业测评与采购选择指南 - 品牌鉴赏师
  • 什么是云桌面?一般都用哪些云桌面?
  • 【昇腾CANN训练营·核心篇】拒绝“写死”:Ascend C 算子动态 Tiling 的设计哲学
  • 学习日记day50
  • AMP页面还要做吗?2025替代方案及优化指南
  • Java_反射暴破创建对象与访问类中的成员
  • 2025年12月希腊移民,香港移民,澳洲移民中介测评指南,资质合规与服务透明优选 - 品牌鉴赏师
  • PaperReding:《LLaMA: Open and Efficient Foundation Language Models》
  • 2025年12月浦东新区口腔诊所推荐:全科室覆盖机构口碑之选盘点 - 品牌鉴赏师
  • 2025年12月球墨铸铁,QT400-18球墨铸铁,球墨铸铁棒料公司推荐:行业测评与选择指南 - 品牌鉴赏师
  • 《Java Web开发入门很简单》——学习笔记,新手入门,收藏这篇就够了
  • javascript: Converts HTML documents to DOCX in the browser
  • 基于UWB定位的安全帽人员定位系统:技术架构和核心功能详解
  • Gurobi 重磅回归GAMS与GAMSPy
  • 再次紧急修复,Flutter 针对 WebView 无法点击问题增加新的快速修复
  • 学生管理系统源码 Python+Django+Vue 前后分离 设计文档