如何使用AGI从呼叫队列(星号拨号计划)获取接收器详细信息


How to get Receiver details from Call Queue (Asterisk Dialplan) using 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等。

呼叫应答.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

此外,功能通道(名称)肯定会在宏或其他端(调用方)中向您显示代理。如果返回主叫方信道,则可以通过读取变量 BRIDGEDPEER 来获取其他信道。

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

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