Asterisk AMI возвращает неверные данные - PullRequest
0 голосов
/ 15 марта 2019

При работе:

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-адреса.

1 Ответ

0 голосов
/ 15 марта 2019

Итак, мой системный администратор посмотрел. Похоже, что машина удерживала более старый процесс Asterisk на порте 5038. После завершения этого процесса и повторного запуска Asterisk AMI удалось получить правильную информацию.

...