通过按任意键盘键发出星号呼叫



我可以通过按下任何键盘按钮挂断星号呼叫(如果可以将其命名为"call"(。流程如下:

(调用文件被复制到出站目录(->
Asterisk检测到它并读取调用文件->
在调用文件中有在拨号计划中运行上下文"测试"的指令->
1在上下文"测试"中有运行AGI(PHP(脚本的指令->
在AGI脚本中有命令"EXEC PLAYBACK test_music">

拨号计划:

exten => s,1, Answer()
exten => s,n, agi(test_agi.agi)
exten => s,n, Hangup

AGI(test_AGI.AGI(:

#!/usr/bin/php -q       
<?php
require'phpagi.php';    
set_time_limit(60);     
ob_implicit_flush(false);
# create file handles if needed
if (!defined('STDIN'))
{
define('STDIN', fopen('php://stdin', 'r'));
}
if (!defined('STDOUT'))
{
define('STDOUT', fopen('php://stdout', 'w'));
}
if (!defined('STDERR'))
{
define('STDERR', fopen('php://stderr', 'w'));
}
fwrite(STDOUT, "EXEC PLAYBACK test_music '79#'n"); //79# interruption marks

正如你所看到的,拨号计划和AGI文件是最简单的。关键是我只知道如何通过按下电话上的数字来允许播放被DTMF数字中断(如上面AGI代码注释中所示(。但就是这样。

也许有人知道当按下任何键盘键时如何结束通话(当然也停止播放(?

这可能吗?

谢谢你的帮助!

按键时,创建对某个脚本的http GET请求。

在脚本中使用

asterisk -rx "channel request hangup CHANNEL_NAME_HERE"

当然,你需要为你的车站使用的轨道通道配备一些工作人员,例如通过AMI事件。

最新更新