前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >freeswitch笔记(7)-放音控制

freeswitch笔记(7)-放音控制

作者头像
菩提树下的杨过
发布2020-03-19 11:38:15
3.5K1
发布2020-03-19 11:38:15
举报

来电时,播放音乐是一个很常用的功能,下面是一些相关的命令:

一、单次播放playback

代码语言:javascript
复制
originate user/1000 &playback(ivr/8000/ivr-welcome_to_freeswitch.wav)

二、指定次数的循环播放loop_playback

注:这个方式,直接用命令在freeswitch控制台中,一直没尝试成功

代码语言:javascript
复制
originate user/1000 &loop_playback(+2 ivr/8000/ivr-welcome_to_freeswitch.wav)

总是报错缺少文件数据参数,另外发现一个可以让freeswitch瞬间崩溃的方法: originate user/1000 &loop_playback +2 ivr/8000/ivr-welcome_to_freeswitch.wav,把括号去掉,在Freeswitch Console中输入 ,马上就崩了(windows 10环境+freeswitch 1.6.18)

官方用diaplan xml配置的方式如下:

代码语言:javascript
复制
<action application="loop_playback" data="+3 ivr/8000/ivr-welcome_to_freeswitch.wav"/>

三、无限循环播放endless_playback

代码语言:javascript
复制
originate user/1000 &endless_playback(ivr/8000/ivr-welcome_to_freeswitch.wav)

四、多个文件依次顺序播放file_string

代码语言:javascript
复制
originate user/1000 &playback(file_string://ivr/8000/ivr-welcome_to_freeswitch.wav!ivr/8000/welcome_to.wav)

注:file_string:// 这个开头不能省略,后面的文件用!拼起来即可

五、暂停/重头开始播放

播放过程中,可以用uuid_break将音乐强制从头开始播放(注:这个命令的命名方式很玄学,明明叫break,但是并不能中断播放,叫restart_playback或许更适合)

真正要暂停,可以用pause命令,恢复暂停继续播放用restart

这些命令可以在esl中直接调用。

注意:一旦音乐播放起来,没有方法可以让音乐彻底停止,又不影响通话,有一个uuid_kill方法,这个方法会中断该Channel上的所有事件,包括通话,也不满足要求.

六、监听播放开始/结束事件

PLAYBACK_START

PLAYBACK_STOP

这2个事件对应音乐的开始播放/播放完成,值得一提的是,对于循环播放endless_playback,这一组事件,会重复一直不停的触发,直到电话挂断。

参考文章:

1、https://freeswitch.org/confluence/display/FREESWITCH/mod_dptools:+playback 2、https://freeswitch.org/confluence/display/FREESWITCH/mod_dptools%3A+loop_playback 3、https://freeswitch.org/confluence/display/FREESWITCH/mod_dptools%3A+endless_playback 4、https://freeswitch.org/confluence/display/FREESWITCH/mod_dptools%3A+file_string

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-03-16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档