【问题标题】:Hangup an Asterisk call by pressing any keyboard key按任意键盘键挂断 Asterisk 通话
【发布时间】:2018-11-27 13:34:13
【问题描述】:

我可以通过按任何键盘按钮挂断星号呼叫(如果它可以命名为“呼叫”)。流程如下所示:

(调用文件被复制到出站目录)->
Asterisk 检测到它并读取调用文件 ->
在调用文件中,有在拨号计划中运行上下文“测试”的指令 ->
在上下文“测试”中有运行 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 代码 - 注释)中断的方法。但仅此而已。

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

有可能吗?

感谢您的帮助!

【问题讨论】:

    标签: php asterisk agi dialplan


    【解决方案1】:

    按下按键后,向某个脚本创建 http GET 请求。

    在脚本中使用

    asterisk -rx "channel request hangup CHANNEL_NAME_HERE"
    

    当然,您需要为您的电台使用的跟踪频道安排一些工作人员,例如通过 AMI 事件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多