Asterisk AMI 返回不正确的数据

Asterisk AMI returning incorrect data

当运行宁:

asterisk*CLI>queue show <queue-name>

我从终端得到了预期的输出(在这种情况下,我希望在 returned 信息中得到 A:2

但是当我通过同一台服务器上的 PHP 套接字连接到 AMI 时,我得到 A:0(信息未正确填充)。

$data = '';
$socket = fsocketopen('127.0.0.1', '5038');

fputs($socket, "Action: Login\r\n");
fputs($socket, "UserName: username\r\n");
fputs($socket, "Secret: password\r\n\r\n");
fputs($socket, "Action: QueueStatus\r\n");
fputs($socket, "Action: Logoff\r\n\r\n");

while(!feof($socket)) {
    $data .= fread($socket, 8192);
}

fclose($socket);

$data = trim($data); // This string contains A:0 where I would expect A:2.

正在使用的 AMI 用户在 manager.conf 中具有正确的读取权限并且验证成功。

[username]
secret = password
deny=0.0.0.0/0.0.0.0
permit=127.0.0.1/255.255.255.0
read = system,call,log,verbose,command,agent,user,all
write = system,call,log,verbose,command,agent,user,all

我的问题是,为什么 AMI return 与控制台 returning 的信息不同?

附带说明一下,使用 AMI 时也会出现此问题 运行:

asterisk*CLI>sip show peers

控制台正在 return 发送正确的信息,而 AMI 正在 return发送每个 IP 地址的 (未指定)

所以我的系统管理员看了一下。这台机器似乎在端口 5038 上占用了一个较旧的 Asterisk 进程。在终止该进程并再次启动 Asterisk 后,AMI 成功地能够检索到正确的信息。