如何从php应用程序播放星号的录音呼叫?

时间:2018-10-21 14:33:04

标签: php html5 asterisk

我的公司中有一个Issable(基于星号的VoIP解决方案)。我正在用PHP开发一个应用程序,其中的一部分需要播放记录的调用。该应用程序与Issabel位于不同的服务器中。我已经可以访问声音文件路径,例如:

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

当我想通过在路径的开头添加issabel服务器的ip地址来使用HTML的音频标签播放该文件时,什么也没发生,甚至Isaabel也阻止了我的IP地址,因为该服务器受密码保护。从我的PHP应用程序播放位于此路径中的文件的任何解决方案都将受到赞赏。

1 个答案:

答案 0 :(得分:1)

正如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> 

对我有用! 谢谢