惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
WordPress大学
WordPress大学
S
SegmentFault 最新的问题
小众软件
小众软件
爱范儿
爱范儿
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
量子位
博客园_首页
T
Tailwind CSS Blog
The Cloudflare Blog
J
Java Code Geeks
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
U
Unit 42
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
人人都是产品经理
人人都是产品经理
N
Netflix TechBlog - Medium
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
腾讯CDC
P
Proofpoint News Feed
aimingoo的专栏
aimingoo的专栏
Recent Announcements
Recent Announcements
T
The Blog of Author Tim Ferriss
D
Docker
Microsoft Azure Blog
Microsoft Azure Blog

博客园 - Mike_Zhang

使用python统计FreeSWITCH呼叫并发 从pcap文件提取sip信令文本 FreeSWITCH使用mod_fail2ban模块来提升安全 FreeSWITCH使用RNNoise进行实时通话降噪 使用RNNoise进行音频降噪 python3.14版本的free-threading功能体验 一种FreeSWITCH流量镜像WebSocket音频推流方案 C++使用WinHTTP访问http/https服务 cJSON静态库编译及vs2022使用示例 openssl静态库编译及vs2022使用示例 FreeSWITCH日志功能分析及apr模拟 使用pjsip封装自定义软电话sdk pjsip编译、说明及vs2022使用示例 使用kamailio进行分机注册及互拨 apr库编译及队列使用笔记 debian10环境安装rtpengine FreeSWITCH对接http协议的tts服务 python3解析wav文件获取dtmf值 音频文件降噪及python示例 FreeSWITCH使用soundtouch进行变声
FreeSWITCH开启silk编码及转码
Mike_Zhang · 2025-11-25 · via 博客园 - Mike_Zhang

操作系统:Debian 12.5_x64

FreeSWITCH版本: 1.10.11

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

一、模块安装及配置

1、添加模块编译项

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

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

image

2、编译及安装

需要安装依赖:

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操作:

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

抓包效果如下:

image

四、资源下载

本文相关资源及示例配置,可从如下渠道获取:

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

image

【文件说明】

libsilk.tar.gz    :  libsilk源码

libsilk-compiled.tar.gz  : libsilk源码(已编译,so文件在源码的.libs目录)

fs_mod_silk.tar.gz : mod_silk二进制编译文件