При работе:
asterisk*CLI>queue show <queue-name>
с терминала я получаю ожидаемый результат (в этом случае я ожидаю получить A: 2 в возвращенной информации.
Но когда я подключаюсь к AMI через сокет PHP на том же сервере, я получаю 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 возвращает информацию, отличную от того, что возвращает консоль?
В качестве примечанияэта проблема также возникает при использовании AMI для запуска:
asterisk*CLI>sip show peers
Консоль возвращает правильную информацию, в то время как AMI возвращает (Не указано) для каждого IP-адреса.