找回密码
 立即注册
首页 业界区 业界 FreeSWITCH开启silk编码及转码

FreeSWITCH开启silk编码及转码

蟠鲤 2025-11-25 23:10:02
操作系统:Debian 12.5_x64
FreeSWITCH版本: 1.10.11
SILK编码由Skype设计,是一种用于VoIP的宽带音频编解码器,它支持8khz、12khz、16khz、24khz四种不同的采样率。今天整理下FreeSWITCH使用silk编码进行通话及转码的笔记,希望对你有帮助。
一、模块安装及配置

1、添加模块编译项

文件:源码根目录的modules.conf文件
添加(或取消注释)如下代码:
  1. codecs/mod_silk
复制代码
1.png

2、编译及安装

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

如果下载过慢,可从如下渠道获取:
关注微信公众号(聊聊博文,文末可扫码)后回复 20251125 获取。libsilk库编译及加载命令如下:
  1. ./bootstrap.sh
  2. ./configure
  3. make && make install
  4. cp /usr/local/lib/pkgconfig/silk.pc /usr/lib64/pkgconfig
  5. ldd
复制代码
3.png

源码目录执行如下命令:
  1. autoreconf -fiv
  2. make clean
  3. ./devel-bootstrap.sh && ./configure && make && make install
复制代码
会编译mod_silk模块并生成文件:
4.png

3、加载mod_silk模块

编辑 conf/autoload_configs/modules.conf.xml 文件,添加如下内容:
  1. [/code][align=center] 5.png [/align]
  2.  重启FreeSWITCH或执行重新load操作:
  3. [code]load mod_silk
复制代码
6.png

如果加载不报错,则添加mod_silk 模块成功。
4、启用编码

 配置文件路径:
/usr/local/freeswitch/conf/vars.xml
配置文件内容如下(默认):
  1. [/code][align=center] 7.png [/align]
  2.  重启freeswitch生效。
  3. [size=6]二、使用silk编码通话[/size]
  4. [size=5]1、配置话机支持silk编码[/size]
  5. 配置分机只支持silk编码:
  6. [align=center] 8.png [/align]
  7. [size=5]2、验证silk编码通话[/size]
  8. 添加测试拨号方案:
  9. [code]  <extension name="playTest">
  10. <X-PRE-PROCESS cmd="set" data="global_codec_prefs=SILK,OPUS,G722,PCMU,PCMA,L16,H264,VP8"/>
  11.   <X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=SILK,OPUS,G722,PCMU,PCMA,L16,H264,VP8"/>
  12.   <X-PRE-PROCESS cmd="set"data="media_mix_inbound_outbound_codecs=true"/>  <condition field="destination_number" expression="^10087$">
  13. <X-PRE-PROCESS cmd="set" data="global_codec_prefs=SILK,OPUS,G722,PCMU,PCMA,L16,H264,VP8"/>
  14.   <X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=SILK,OPUS,G722,PCMU,PCMA,L16,H264,VP8"/>
  15.   <X-PRE-PROCESS cmd="set"data="media_mix_inbound_outbound_codecs=true"/><X-PRE-PROCESS cmd="set" data="global_codec_prefs=SILK,OPUS,G722,PCMU,PCMA,L16,H264,VP8"/>
  16.   <X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=SILK,OPUS,G722,PCMU,PCMA,L16,H264,VP8"/>
  17.   <X-PRE-PROCESS cmd="set"data="media_mix_inbound_outbound_codecs=true"/>
  18. <X-PRE-PROCESS cmd="set" data="global_codec_prefs=SILK,OPUS,G722,PCMU,PCMA,L16,H264,VP8"/>
  19.   <X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=SILK,OPUS,G722,PCMU,PCMA,L16,H264,VP8"/>
  20.   <X-PRE-PROCESS cmd="set"data="media_mix_inbound_outbound_codecs=true"/><X-PRE-PROCESS cmd="set" data="global_codec_prefs=SILK,OPUS,G722,PCMU,PCMA,L16,H264,VP8"/>
  21.   <X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=SILK,OPUS,G722,PCMU,PCMA,L16,H264,VP8"/>
  22.   <X-PRE-PROCESS cmd="set"data="media_mix_inbound_outbound_codecs=true"/>
  23. <X-PRE-PROCESS cmd="set" data="global_codec_prefs=SILK,OPUS,G722,PCMU,PCMA,L16,H264,VP8"/>
  24.   <X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=SILK,OPUS,G722,PCMU,PCMA,L16,H264,VP8"/>
  25.   <X-PRE-PROCESS cmd="set"data="media_mix_inbound_outbound_codecs=true"/>  </condition>
  26. <X-PRE-PROCESS cmd="set" data="global_codec_prefs=SILK,OPUS,G722,PCMU,PCMA,L16,H264,VP8"/>
  27.   <X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=SILK,OPUS,G722,PCMU,PCMA,L16,H264,VP8"/>
  28.   <X-PRE-PROCESS cmd="set"data="media_mix_inbound_outbound_codecs=true"/></extension>
复制代码
9.png

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

三、silk编码转换

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

文件:conf/vars.xml
修改或添加内容:
  1. <X-PRE-PROCESS cmd="set" data="global_codec_prefs=SILK,OPUS,G722,PCMU,PCMA,L16,H264,VP8"/>
  2.   <X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=SILK,OPUS,G722,PCMU,PCMA,L16,H264,VP8"/>
  3.   <X-PRE-PROCESS cmd="set"data="media_mix_inbound_outbound_codecs=true"/>
复制代码
11.png

 文件:
  1. sip_profiles/internal.xml
复制代码
修改或添加如下内容:
  1. <X-PRE-PROCESS cmd="set" data="global_codec_prefs=SILK,OPUS,G722,PCMU,PCMA,L16,H264,VP8"/>
  2.   <X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=SILK,OPUS,G722,PCMU,PCMA,L16,H264,VP8"/>
  3.   <X-PRE-PROCESS cmd="set"data="media_mix_inbound_outbound_codecs=true"/><X-PRE-PROCESS cmd="set" data="global_codec_prefs=SILK,OPUS,G722,PCMU,PCMA,L16,H264,VP8"/>
  4.   <X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=SILK,OPUS,G722,PCMU,PCMA,L16,H264,VP8"/>
  5.   <X-PRE-PROCESS cmd="set"data="media_mix_inbound_outbound_codecs=true"/>
复制代码
12.png

重启freeswitch生效。
2、通话效果

分机1009 PCMU编码
分机1010 silk编码
通话效果如下:
13.png

抓包效果如下:
14.png

四、资源下载

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

【文件说明】
libsilk.tar.gz    :  libsilk源码
libsilk-compiled.tar.gz  : libsilk源码(已编译,so文件在源码的.libs目录)
fs_mod_silk.tar.gz : mod_silk二进制编译文件

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册