Как воспроизвести записанные звонки Asterisk из приложения php? - PullRequest
0 голосов
/ 21 октября 2018

У меня есть Issable (Asterisk VoIP решение) в моей компании.Я разрабатываю приложение на PHP, часть которого мне нужна для воспроизведения записанных звонков.Приложение находится на отдельном сервере от Issabel.У меня уже есть доступ к пути к звуковому файлу, например:

/var/spool/asterisk/monitor/2018/10/20/rg-600-2122238507-20181020-223323-1540062203.100880.wav

Когда я хочу воспроизвести этот файл, используя аудио-тег HTML, добавив IP-адрес сервера issabel в начале этого пути,ничего не происходит, и даже Исаабель блокирует мой IP-адрес, так как сервер защищен паролем.Любое решение для воспроизведения файла, расположенного по этому пути из моего приложения PHP будет приветствоваться.

1 Ответ

0 голосов
/ 22 октября 2018

Как отметил FélixGagnon-Grenier, решение этой проблемы решается путем потоковой передачи аудио в приложение.Я создал файл stream.php на сервере, содержащий следующий код:

 <?php
    $filePath = $_GET['file'];
    $fileName = basename($filePath);
    $fp=fopen($filePath, "rb");
    header("Content-type: application/octet-stream");
    header('Content-disposition: attachment; filename=$fileName');
    header("Content-transfer-encoding: binary");
    header("Content-length: ".filesize($filePath)."    ");
    fpassthru($fp);
    fclose($fp);

, а в моем приложении, расположенном на другом сервере, я использовал аудиотег HTML5 для вызова файла и отправки пути к аудиофайлу.с методом GET:

<audio controls>
<source src="https://<SERVER_IP>/stream.php?file='.$callRecordPath.'" type="audio/wav">
Your browser does not support the audio element.
</audio> 

и у меня это сработало!Спасибо

...