freeswitch笔记(7)-放音控制
来电时,播放音乐是一个很常用的功能,下面是一些相关的命令:
一、单次播放playback
originate user/1000 &playback(ivr/8000/ivr-welcome_to_freeswitch.wav)
二、指定次数的循环播放loop_playback
注:这个方式,直接用命令在freeswitch控制台中,一直没尝试成功
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配置的方式如下:
<action application="loop_playback" data="+3 ivr/8000/ivr-welcome_to_freeswitch.wav"/>
如果使用esl-client,可以这样写:
SendMsg msg = new SendMsg();
msg.addCallCommand("execute");
msg.addExecuteAppName("loop_playback");
msg.addExecuteAppArg("+2 " + prompt);
CommandResponse resp = context.sendMessage(msg);
三、无限循环播放endless_playback
originate user/1000 &endless_playback(ivr/8000/ivr-welcome_to_freeswitch.wav)
四、多个文件依次顺序播放file_string
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中直接调用。
注意:一旦音乐播放起来,没有方法可以让音乐彻底停止,又不影响通话(除非把当前Leg,bridge到其它leg之类),有一个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
freeswitch笔记(7)-放音控制的更多相关文章
- alsamixer + alsactl 控制放音通道
1 使用alsamixer的gui界面配置放音(控制OUT1,OUT2的音量); 2 退出alsamixer,使用alsactl store生成配置文件,文件位于/etc/asound.state; ...
- c#录音和放音,超简单!不用DirectX
最近在做android与C#录音并互相通信的小东西.但是卡在C#录音这儿了.找了好久,说的都是DirectX,可是我总是安装不上,这才找到了这个简单的录音方法.当然,如果你想要录得好并且处理音频,那还 ...
- .NET MVC 学习笔记(七)— 控制input控件
.NET MVC 学习笔记(七)— 控制input控件 画面中有时候需要输入数字,这时就需要控制input的输入.以下为保留两位有效数字. /* * 初始化数字输入 */ function initD ...
- H5之audio标签放音兼容所有浏览器方法
前端交流群,群文件提供大量文档.书籍和资料.期待你的加入!群号:127768464 由于项目需要,最近刚做了一个网页放音的功能,使用到了H5新标签<audio></audio> ...
- Robot Operating System (ROS)学习笔记4---语音控制
搭建环境:XMWare Ubuntu14.04 ROS(indigo) 转载自古月居 转载连接:http://www.guyuehome.com/260 一.语音识别包 1.安装 ...
- EasyARM i.mx287学习笔记——通过modbus tcp控制GPIO
0 前言 本文使用freemodbus协议栈,在EasyARM i.mx287上实现了modbus tcp从机. 在该从机中定义了线圈寄存器.当中线圈寄存器地址较低的4位和EasyARM的P2 ...
- Shell脚本笔记(七)控制Shell脚本
控制Shell脚本 一.处理信号 1) SIGHUP本信号在用户终端连接(正常或非正常)结束时发出, 通常是在终端的控制进程结束时, 通知同一session内的各个作业, 这时它们与控制终端不再关联. ...
- 《深入分析Linux内核源代码》读书、私藏笔记大放送
秉承着"不懂操作系统原理的程序员不是合格的程序员"的至理名言,鄙人又是买陈莉君老师的“Linux教学视频”,又是研读其力作<深入分析Linux内核源代码>,先将总结笔记 ...
- V-rep学习笔记:关节力矩控制
Torque or force mode When the joint motor is enabled and the control loop is disabled, then the join ...
- 【CSAPP笔记】6. 汇编语言——控制
原先刊于自己的域名下面,考虑到博客园之前发过一半,不想烂尾,故在博客园发一版. 到目前为止我们只考虑了直线代码的执行行为,也就是指令一条接着一条执行.C语言中的某些语句,比如条件语句.循环.分支语句, ...
随机推荐
- GBDT算法原理及Python实现
一.概述 GBDT(Gradient Boosting Decision Tree,梯度提升决策树)是集成学习中提升(Boosting)方法的典型代表.它以决策树(通常是 CART 树,即分类回归 ...
- 【ROS】5.1 ARP攻击Turtlebot3汉堡Burger并解析移动报文
原视频 ARP攻击 实验环境推荐:Linux虚拟机×2:Ubuntu 20.04或18.04或kali,被攻击机安装好ROS: 提升能力环境推荐:不同真机下的Linux虚拟机×2:Ubuntu 20. ...
- 【笔记】Python3|使用 PyVis 完成神经网络数据集的可视化
文章目录 版本: 应用实例: 1 神经网络可视化 2 别人的示例和代码 PyVis的应用: 零.官方教程 一.初始化画布`Network` 二.添加结点 添加单个结点`add_node`: 添加一系列 ...
- 网络编程:理解TCP中的“流”
TCP是一种流式协议 TCP数据是流式的特性,可分别从发送端和接收端来阐述 发送端:当调用send函数完成数据"发送"后,数据并没有真正从网络上发送出去,只是从应用程序拷贝到了操作 ...
- 来个好玩的,用手机随时随地指挥你的 Cursor!
告别束缚,用手机随时随地指挥你的 Cursor! 嘿,各位 Cursor 的忠实用户和效率达人们! 你是否曾经遇到过这样的场景:人不在Mac旁边,却突然灵感迸发,想要让 Cursor 帮你写点代码.整 ...
- [安洵杯 2019]easy_serialize_php 1 WP
[安洵杯 2019]easy_serialize_php 1 WP 这道题目考察的主要是序列化与反序列化过程中,对象逃逸的一个漏洞. 说是对象逃逸,我觉得可能叫对象注入比较形象. 首先题目上来可以看到 ...
- 基于AI的智能农业病虫害识别系统实战指南
引言 在农业现代化进程中,病虫害防治始终是保障粮食安全的核心挑战.传统人工识别方式存在效率低.误判率高.响应滞后等问题.本文将通过完整的技术实现流程,展示如何利用Python生态构建智能病虫害识别系统 ...
- 代码随想录第六天 | 哈希表part02
454.四数相加II 建议:本题是 使用map 巧妙解决的问题,好好体会一下 哈希法 如何提高程序执行效率,降低时间复杂度,当然使用哈希法 会提高空间复杂度,但一般来说我们都是舍空间 换时间, 工业开 ...
- 洛谷 P3386 【模板】二分图最大匹配
匈牙利算法博大精深,这里只记录步骤. 当然,不知道这些基础图论的童鞋请看这里(虽然也是草草概括一下谔谔谔) 主要步骤 \(main\) 主函数里面一个枚举现在正在匹配的左点 对于每个准备匹配的左点,进 ...
- 自定义localStorage监听事件
一.问题 在项目开发过程中,发现有很多时候进行localStorage.setItem()操作设置本地存储后,页面必须刷新才能够获取到存储数据,而有些时候本地缓存更新后,页面无法通过再次刷新以获取本地 ...