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

一、单次播放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)-放音控制的更多相关文章

  1. alsamixer + alsactl 控制放音通道

    1 使用alsamixer的gui界面配置放音(控制OUT1,OUT2的音量); 2 退出alsamixer,使用alsactl  store生成配置文件,文件位于/etc/asound.state; ...

  2. c#录音和放音,超简单!不用DirectX

    最近在做android与C#录音并互相通信的小东西.但是卡在C#录音这儿了.找了好久,说的都是DirectX,可是我总是安装不上,这才找到了这个简单的录音方法.当然,如果你想要录得好并且处理音频,那还 ...

  3. .NET MVC 学习笔记(七)— 控制input控件

    .NET MVC 学习笔记(七)— 控制input控件 画面中有时候需要输入数字,这时就需要控制input的输入.以下为保留两位有效数字. /* * 初始化数字输入 */ function initD ...

  4. H5之audio标签放音兼容所有浏览器方法

    前端交流群,群文件提供大量文档.书籍和资料.期待你的加入!群号:127768464 由于项目需要,最近刚做了一个网页放音的功能,使用到了H5新标签<audio></audio> ...

  5. Robot Operating System (ROS)学习笔记4---语音控制

    搭建环境:XMWare  Ubuntu14.04  ROS(indigo) 转载自古月居  转载连接:http://www.guyuehome.com/260 一.语音识别包 1.安装         ...

  6. EasyARM i.mx287学习笔记——通过modbus tcp控制GPIO

    0 前言     本文使用freemodbus协议栈,在EasyARM i.mx287上实现了modbus tcp从机. 在该从机中定义了线圈寄存器.当中线圈寄存器地址较低的4位和EasyARM的P2 ...

  7. Shell脚本笔记(七)控制Shell脚本

    控制Shell脚本 一.处理信号 1) SIGHUP本信号在用户终端连接(正常或非正常)结束时发出, 通常是在终端的控制进程结束时, 通知同一session内的各个作业, 这时它们与控制终端不再关联. ...

  8. 《深入分析Linux内核源代码》读书、私藏笔记大放送

    秉承着"不懂操作系统原理的程序员不是合格的程序员"的至理名言,鄙人又是买陈莉君老师的“Linux教学视频”,又是研读其力作<深入分析Linux内核源代码>,先将总结笔记 ...

  9. V-rep学习笔记:关节力矩控制

    Torque or force mode When the joint motor is enabled and the control loop is disabled, then the join ...

  10. 【CSAPP笔记】6. 汇编语言——控制

    原先刊于自己的域名下面,考虑到博客园之前发过一半,不想烂尾,故在博客园发一版. 到目前为止我们只考虑了直线代码的执行行为,也就是指令一条接着一条执行.C语言中的某些语句,比如条件语句.循环.分支语句, ...

随机推荐

  1. GBDT算法原理及Python实现

    一.概述   GBDT(Gradient Boosting Decision Tree,梯度提升决策树)是集成学习中提升(Boosting)方法的典型代表.它以决策树(通常是 CART 树,即分类回归 ...

  2. 【ROS】5.1 ARP攻击Turtlebot3汉堡Burger并解析移动报文

    原视频 ARP攻击 实验环境推荐:Linux虚拟机×2:Ubuntu 20.04或18.04或kali,被攻击机安装好ROS: 提升能力环境推荐:不同真机下的Linux虚拟机×2:Ubuntu 20. ...

  3. 【笔记】Python3|使用 PyVis 完成神经网络数据集的可视化

    文章目录 版本: 应用实例: 1 神经网络可视化 2 别人的示例和代码 PyVis的应用: 零.官方教程 一.初始化画布`Network` 二.添加结点 添加单个结点`add_node`: 添加一系列 ...

  4. 网络编程:理解TCP中的“流”

    TCP是一种流式协议 TCP数据是流式的特性,可分别从发送端和接收端来阐述 发送端:当调用send函数完成数据"发送"后,数据并没有真正从网络上发送出去,只是从应用程序拷贝到了操作 ...

  5. 来个好玩的,用手机随时随地指挥你的 Cursor!

    告别束缚,用手机随时随地指挥你的 Cursor! 嘿,各位 Cursor 的忠实用户和效率达人们! 你是否曾经遇到过这样的场景:人不在Mac旁边,却突然灵感迸发,想要让 Cursor 帮你写点代码.整 ...

  6. [安洵杯 2019]easy_serialize_php 1 WP

    [安洵杯 2019]easy_serialize_php 1 WP 这道题目考察的主要是序列化与反序列化过程中,对象逃逸的一个漏洞. 说是对象逃逸,我觉得可能叫对象注入比较形象. 首先题目上来可以看到 ...

  7. 基于AI的智能农业病虫害识别系统实战指南

    引言 在农业现代化进程中,病虫害防治始终是保障粮食安全的核心挑战.传统人工识别方式存在效率低.误判率高.响应滞后等问题.本文将通过完整的技术实现流程,展示如何利用Python生态构建智能病虫害识别系统 ...

  8. 代码随想录第六天 | 哈希表part02

    454.四数相加II 建议:本题是 使用map 巧妙解决的问题,好好体会一下 哈希法 如何提高程序执行效率,降低时间复杂度,当然使用哈希法 会提高空间复杂度,但一般来说我们都是舍空间 换时间, 工业开 ...

  9. 洛谷 P3386 【模板】二分图最大匹配

    匈牙利算法博大精深,这里只记录步骤. 当然,不知道这些基础图论的童鞋请看这里(虽然也是草草概括一下谔谔谔) 主要步骤 \(main\) 主函数里面一个枚举现在正在匹配的左点 对于每个准备匹配的左点,进 ...

  10. 自定义localStorage监听事件

    一.问题 在项目开发过程中,发现有很多时候进行localStorage.setItem()操作设置本地存储后,页面必须刷新才能够获取到存储数据,而有些时候本地缓存更新后,页面无法通过再次刷新以获取本地 ...