Asterisk/PHP - 如何获取通话记录列表

Asterisk/PHP - How to get list of call recordings

我想使用 AMI(Asterisk 管理器界面)获取通话记录列表,然后 get/fetch 在我的网站上播放其中的一个。我对列出录音的期望是这样的: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());
}

没有记录的跟踪,也无法通过 AMI 访问它

您可以直接从PHP查看录制目录。默认为 /var/spool/asterisk/monitor/XXX/

AMI 不支持 Pull/Get 受监控呼叫。

here

您能够列出和提取受监控呼叫的一种方法是在本地盒子上(我知道您无权访问)

另一种方法是创建一个自定义网站 API,也是 Asterisk 本地的,然后您可以与之通信。它可以是 PHP / Python,任何东西。

我看到的第三个选项是 /var/spool/asterisk/monitor 监控调用所在的文件夹可以通过 NFS 访问您的远程盒子,这样您就可以 have 监控文件和 list/read/get 它们作为本地文件从您的远程计算机中获取。

但是 AMI 不能直接(还)这样做。