FreeSWITCH开启silk编码及转码

操作系统:Debian 12.5_x64

FreeSWITCH版本: 1.10.11

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

一、模块安装及配置

1、添加模块编译项

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

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

复制代码
codecs/mod_silk

2、编译及安装

需要安装依赖:
https://github.com/freeswitch/libsilk

如果下载过慢,可从如下渠道获取:
关注微信公众号(聊聊博文,文末可扫码)后回复 20251125 获取。
libsilk库编译及加载命令如下:

复制代码
./bootstrap.sh
./configure
make && make install 
cp /usr/local/lib/pkgconfig/silk.pc /usr/lib64/pkgconfig
ldd

源码目录执行如下命令:

复制代码
autoreconf -fiv
make clean
./devel-bootstrap.sh && ./configure && make && make install

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

3、加载mod_silk模块

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

复制代码
<load module="mod_silk"/>

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

复制代码
load mod_silk

如果加载不报错,则添加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"/>

重启freeswitch生效。

二、使用silk编码通话

1、配置话机支持silk编码

配置分机只支持silk编码:

2、验证silk编码通话

添加测试拨号方案:

复制代码
  <extension name="playTest">
      <condition field="destination_number" expression="^10087$">
        <action application="answer"/>
        <action application="playback" data="$${hold_music}"/>
      </condition>
    </extension>

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

三、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"/>

文件:

复制代码
sip_profiles/internal.xml

修改或添加如下内容:

复制代码
    <param name="inbound-late-negotiation" value="false"/>
    <param name="disable-transcoding" value="false"/>

重启freeswitch生效。

2、通话效果

分机1009 PCMU编码

分机1010 silk编码

通话效果如下:

抓包效果如下:

四、资源下载

本文相关资源及示例配置,可从如下渠道获取:
关注微信公众号(聊聊博文,文末可扫码)后回复 20251125 获取。

【文件说明】

libsilk.tar.gz : libsilk源码

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

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

相关推荐
加油20192 天前
音视频处理(四):一文讲清楚VoIP语音通话SIP和RTP协议
音视频·pcm·voip·sip·rtp·g.711·语音通话
Mike_Zhang5 天前
FreeSWITCH使用mod_fail2ban模块来提升安全
voip·freeswitch
Mike_Zhang11 天前
FreeSWITCH使用RNNoise进行实时通话降噪
voip·freeswitch·音频技术
爱学习的大牛12319 天前
Ubuntu 24.04 安装 FreeSWITCH 完整教程
linux·freeswitch
若尘拂风1 个月前
FreeSWITCH配置文件解析(11) 模块配置文件(modules.conf)
服务器·tcp/ip·udp·freeswitch
若尘拂风1 个月前
centos 7.9 编译安装 freeswitch 1.10.12
服务器·udp·freeswitch·sip
十年一梦惊觉醒2 个月前
freeswitch集成离线语音识别funasr
人工智能·语音识别·freeswitch
Mike_Zhang3 个月前
一种FreeSWITCH流量镜像WebSocket音频推流方案
voip·freeswitch