php - 如何使用 AGI 从调用队列(Asterisk Dialplan)获取接收者详细信息?

标签 php linux ubuntu asterisk agi

我已经为传入上下文配置了一个拨号计划。

我在/etc/asterisk/extensions.conf中有以下内容

[incoming]
switch => Realtime

exten => _X.,1,NoOp(Incoming Call Received)
exten => _X.,n,Festival(Welcome to Asterisk)
exten => _X.,n,Answer()

;call-answer.php will be called when Member Connected to Queue
exten => _X.,n,Queue(my_queue,t,,,1000,call-answer.php)
exten => _X.,n,Hangup()

我想获取已应答队列的调用者信息,并获取被叫队列成员信息,例如分机 ID 等...

call-answer.php

#!/usr/bin/env php
<?php
set_time_limit(60);
error_reporting(0);
ini_set('display_errors', 0);

require_once ('phpagi.php');
$agi = new AGI();
$agi->verbose("AGI Started after ANSWERED QUEUE",3);
$src_extension = $agi->request['agi_callerid'];
$dst_extension = $agi->request['agi_extension'];

// I want to get CALL ANSWERED QUEUE MEMBER EXTENSION NUMBER HERE.

?>

最佳答案

这一行有错误(无优先级)

exten => _X.,Festival(Welcome to Asterisk)

您可以在 QueueLog 中获取有关谁回答的信息,不需要 agi。

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

此外,函数 CHANNEL(name) 肯定会向您显示宏或另一侧(调用者)中的代理。如果返回调用方 channel ,则可以通过读取变量 BRIDGEDPEER 来获取其他 channel 。

您可以按问题获取 channel 中所有变量的列表

$agi->exec("Dumpchan","");

关于php - 如何使用 AGI 从调用队列(Asterisk Dialplan)获取接收者详细信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28317971/

相关文章:

c++ - 使用 std::hash<std::thread::id>()(std::this_thread::get_id())

c - 在 make 文件中包含输入语句和条件

php - 将嵌套循环内生成的数据存储在映射或 slice 中

php - 事件提要结构

php - 在 PHP 代码的 div 声明中插入两个类之一

linux - configure可以生成.h文件吗?

javascript - global cli npm 包适用于 windows 但不适用于 linux

ubuntu - 无法运行 Phoenix 服务器。找不到 erlang/lib/parsetools-2.1.8

git - 将 rsa key 添加到系统

javascript - PHP、AJAX、JQuery 获取返回值