[英]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.