操作系统:Debian 12.5_x64
FreeSWITCH版本: 1.10.11
SILK编码由Skype设计,是一种用于VoIP的宽带音频编解码器,它支持8khz、12khz、16khz、24khz四种不同的采样率。今天整理下FreeSWITCH使用silk编码进行通话及转码的笔记,希望对你有帮助。
一、模块安装及配置
1、添加模块编译项
文件:源码根目录的modules.conf文件
添加(或取消注释)如下代码:
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 文件,添加如下内容:- [/code][align=center]
[/align] - 重启FreeSWITCH或执行重新load操作:
- [code]load mod_silk
复制代码
如果加载不报错,则添加mod_silk 模块成功。
4、启用编码
配置文件路径:
/usr/local/freeswitch/conf/vars.xml
配置文件内容如下(默认):- [/code][align=center]
[/align] - 重启freeswitch生效。
- [size=6]二、使用silk编码通话[/size]
- [size=5]1、配置话机支持silk编码[/size]
- 配置分机只支持silk编码:
- [align=center]
[/align] - [size=5]2、验证silk编码通话[/size]
- 添加测试拨号方案:
- [code] <extension name="playTest">
- <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"/> <condition field="destination_number" expression="^10087$">
- <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"/><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"/>
- <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"/><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"/>
- <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"/> </condition>
- <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"/></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
复制代码 修改或添加如下内容:- <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"/><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"/>
复制代码
重启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二进制编译文件
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |