繁体   English   中英

星号,我怎么能播放音频文件

[英]Asterisk, How can i play an audio file

这是拨号方案

[testInComingCalls]

exten => s,1,Answer

exten => 30953025,1,Dial(SIP/20000,20)

有人接听电话我想播放音频文件。

请给我一些想法如何调用一个php文件,发送输入并根据输出转发调用。

由于大多数拨号选项都对被叫方起作用,而不是来电者,因此您必须获得一点创意。 与被叫方相比,向呼叫者做这些事情有点奇怪,但是嘿,这是Asterisk:通常有办法做任何你想做的事情。

一种方法是使用鲜为人知(有点奇怪)的G选项。 引用文档:

如果呼叫已应答,则将主叫方转移到指定的优先级,将被叫方转移到指定的优先级加1。

  • 上下文
  • 讯号分配延长
  • 优先

基本上, G选项采用呼叫者/被叫信道而不是将它们连接在一起 - 将它们反弹到拨号方案。 然后,您可以在将它们放在Bridge中之前获得一些创意来执行播放操作。 下面的Dialplan应该可以工作(警告:我没有测试过这个,我坐在沙发上的笔记本电脑上,但这应该让你接近):

[default]

exten => 1000,1,NoOp()
 same => n,Dial(SIP/alice,,G(default^bridge_and_play^1))
 same => n,Hangup()

exten => bridge_and_play,1,Goto(jump_caller,1)
 same => n,Goto(jump_called,1)
 same => n,Hangup()

exten => jump_caller,1,NoOp()
 same => n,Answer()
 same => n,Playback(tt-monkeys)
 same => n,Bridge(${bridge_this})
 same => n,Hangup()

exten => jump_called,1,NoOp()
 same => n,Set(MASTER_CHANNEL(bridge_this)=${CHANNEL})
 same => n,Wait(1000)
 same => n,Hangup()

你想给谁,打电话者或被叫者播放音频?

您可以使用M标志拨号在呼叫桥接之前在呼叫上运行宏,它在被呼叫者SIP / 200000上运行。 例:

[testInComingCalls]
exten => 30953025,1,Dial(SIP/20000,20,M(onanswer))

[macro-onanswer]
exten => s,1,Playback(hello-world)

您需要阅读有关AGI接口的信息,允许使用php通过phpagi来控制拨号方案。

http://www.voip-info.org/wiki/view/Asterisk+AGI

对于播放文件,使用STREAM FILE agi命令(php中的$ agi-> stream_file)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM