Asterisk/PHP - Как получить список записей звонков

Я хочу использовать AMI (интерфейс диспетчера Asterisk), чтобы получить список записанных вызовов, а затем получить/выбрать один из них для воспроизведения на моем сайте. То, что я ожидаю от списка записей, будет таким: asterisk-site-example.com/recordings и для каждой из них вот так: asterisk-site-example.com/recordings/23. Но я не знаю, какой метод я должен использовать, чтобы получить все записи и каждую отдельно.

Что я сделал:

composer require marcelog/pami

мой код:

require __DIR__ . '/vendor/autoload.php';

$options = [
    'host' => '192.168.1.10',
    'scheme' => 'tcp://',
    'port' => 5038,
    'username' => 'admin',
    'secret' => 'admin',
    'connect_timeout' => 30,
    'read_timeout' => 30
];

try {
    $client = new \PAMI\Client\Impl\ClientImpl($options);
    $client->open();

    // What should I do here? Which method should be used?

    $client->close();
} catch (\Exception $e) {
    die('Ex: '.$e->getMessage());
}

person kodfire    schedule 15.07.2020    source источник


Ответы (2)


AMI не поддерживает получение/вытягивание отслеживаемого вызова.

См. здесь

Один из способов получить список и получить отслеживаемые вызовы — это либо быть локально на коробке (к которой, как я понимаю, у вас нет доступа)

Другой способ — создать собственный веб-API, опять же локальный для Asterisk, с которым вы затем сможете взаимодействовать. Это может быть PHP/Python, что угодно.

Третий вариант, который я вижу, заключается в том, чтобы папка, в которой отслеживаемые вызовы /var/spool/asterisk/monitor, была доступна для вашего удаленного устройства через NFS, поэтому вы можете затем have файлы монитора и просматривать/читать/получать их с вашего удаленного компьютера как локальные файлы.

Но AMI не может сделать это напрямую (пока).

person Ron    schedule 15.07.2020
comment
ВЫ СДЕЛАЛИ МОЙ ДЕНЬ :) БОЛЬШОЕ СПАСИБО - person kodfire; 15.07.2020

Отсутствует отслеживание записей и доступ к ним через AMI

Вы можете проверить каталог записи непосредственно из PHP. По умолчанию это /var/spool/asterisk/monitor/XXX/

person arheops    schedule 15.07.2020
comment
У меня нет прямого доступа. Я хочу получить к ним доступ с сайта A на B, который здесь B - issabel. - person kodfire; 15.07.2020