当前位置: 首页 > 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.jsqmd.com/news/106492/

相关文章:

  • 2025年12月mos管,TrenchMos管,SGTMOS管厂商推荐:聚焦企业综合实力与核心竞争力 - 品牌鉴赏师
  • C++医学图像处理经典ITK库用法详解<三>: 图像配准模块功能
  • 7个有效方法提升YashanDB的查询响应速度
  • 自动化测试维护策略:构建可持续的测试资产
  • 2025年12月新能源车电池续航,大巴车电池续航,磷酸铁锂电池续航公司推荐:行业测评与选择指南 - 品牌鉴赏师
  • Java毕设项目:基于Java的采购管理系统的设计与实现(源码+文档,讲解、调试运行,定制等)
  • 实战前瞻:构建高可用、强实时的 Flutter + OpenHarmony 智慧医疗健康平台
  • 8大关键技术点掌握YashanDB的使用技巧
  • Qt共享内存疑难解析:从创建失败到完美解决
  • 大语言模型从零到一:理论基础全解析,助你快速掌握LLM核心技术与构建方法!
  • Kubernetes Service 架构深度解析:从虚拟IP到流量的智能寻址
  • 会话技术cookie session token
  • QSharedMemory 在create前判断共享内存是否存在
  • 基于SpringBoot+Vue的台球厅管理系统(完整源码+万字论文+精品PPT)
  • 2特殊单字符和空白符
  • 安徽做SCARA机器人的公司有哪些?
  • 自动化测试投资回报率(ROI)分析与实践指南
  • 什么叫组团社,什么叫地接社
  • 基于SpringBoot+Vue汽车维修保养服务信息系统(完整源码+万字论文+精品PPT)
  • 自动化测试与手工测试的平衡之道:构建高效质量保障体系
  • ubuntu 使用管理员的权限有几种方式
  • 用 Canvas 实现《黑客帝国》代码雨:自适应 120Hz、发光特效、音频与鼠标交互
  • docker运行报错启动守护进程
  • 【JavaWeb】日程管理02——注册页及数据校验功能
  • 自动化测试的7个误区:从业者必知陷阱与规避策略
  • 小项目实验:创建守护进程
  • 开源企业级邮件服务器选型指南
  • CSDN 自动评论文章插件
  • 【机器学习】4.XGBoost(Extreme Gradient Boosting)
  • 【C++ 笔记】从 C 到 C++:核心过渡 (中)