首页 > 其他分享 >freeswitch笔记(7)-放音控制

freeswitch笔记(7)-放音控制

时间:2023-02-07 18:23:38浏览次数:99  
标签:放音 笔记 playback ivr freeswitch wav 播放 8000

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

一、单次播放playback

1 originate user/1000 &playback(ivr/8000/ivr-welcome_to_freeswitch.wav)

  

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

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

1 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配置的方式如下:

1 <action application="loop_playback" data="+3 ivr/8000/ivr-welcome_to_freeswitch.wav"/>

如果使用esl-client,可以这样写:

1 2 3 4 5 SendMsg msg = new SendMsg(); msg.addCallCommand("execute"); msg.addExecuteAppName("loop_playback"); msg.addExecuteAppArg("+2 " + prompt); CommandResponse resp = context.sendMessage(msg); 

 

三、无限循环播放endless_playback

1 originate user/1000 &endless_playback(ivr/8000/ivr-welcome_to_freeswitch.wav)

  

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

1 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

标签:放音,笔记,playback,ivr,freeswitch,wav,播放,8000
From: https://www.cnblogs.com/kn-zheng/p/17099415.html

相关文章

  • freeswitch笔记(6)-会议功能简介
    电话会议是一个常用功能,freeswitch当然支持,下面是基本用法:一、发起会议1conference test bgdialuser/1004上面的命令表示,发起1个名为test的会话,......
  • freeswitch笔记(5)-小型呼叫中心设计思路
    这一篇用esl实战一把,利用eslclient来实现一个小型呼叫中心的原型,先看看下面这张图: 企业通常会对外公布一个400之类的服务电话,当用户拨打这个电话时,实际上背后是一堆客......
  • freeswitch笔记(4)-esl inbound模式的重连及内存泄露问题
    eslinboundclient,内部有一个canSend()方法:123publicbooleancanSend(){    return channel!=null&&channel.isConnected()&&authenticated......
  • FreeSwitch:send_dtmf/uuid_send_dtmf发送按键注意事项
    很多时候我们打电话到公司前台,会听到类似“欢迎致电XXX,办公电话请直拨分机,咨询XX请按1,咨询YY请按2”这样的语音提示。在一些特定流程中,系统自动发起呼叫打到前台,希望实现自......
  • freeswitch批量添加用户
    默认情况下,freeswitch内置了1000-1019这20个用户,如果需要添加更多用户,可以按如下步骤操作:一、复制用户文件\FreeSWITCH\conf\directory\default 下有1000.xml~1019.xm......
  • java_html笔记
    颜色color字体大小 1.数值+单位 2.关键字-px-em字体(可以写多个,但不是全都生效只生效存在的如果全都不存在则使用默认字体)font-family:"abccde",......
  • freeswitch: 如何指定主叫显示号码
    一、origiante时指定主叫号码正常情况下,如果在freeswitch控制台,输入类似下面 命令:originateuser/1000 &park被叫收到振铃提示时,显示的号码类似下面......
  • python笔记1
    1.python转义符\"输出等于“\n换行\r覆盖,后面覆盖前面 \b删除前面一个字节\t制表符:插入四个空格,但是会自动补齐\\两个斜杠表示一个斜杠r在前面写个r表示转义字符......
  • 《可能性的艺术》——读书笔记
    2023.2.3序言①米兰达警告:你有保持沉默的权利,但是你所说的每句话都将成为呈堂证供第一讲:政治比较的维度②智慧的本质就是对事物比例的公正判断2023.2.7第二讲:和......
  • 思源笔记用Python+quicker实现自动添加标题编号
    实现原理:通过Python访问笔记的源文件,将标题前面增加编号+tab键,在写回源文件为防止重复写入,每次编号前会清理之前编号清除,清理原理为将标题行用tab键分割,......