Show audio.php syntax highlighted
<?php
/**
* @file
* plays recording file
*/
if (isset($_GET['recording'])) {
chdir("..");
include_once("./includes/bootstrap.php");
global $ARI_CRYPT_PASSWORD;
$crypt = new Crypt();
$path = $crypt->decrypt($_GET['recording'],$ARI_CRYPT_PASSWORD);
// strip ".." from path for security
$path = preg_replace('/\.\./','',$path);
// See if the file exists
if (!is_file($path)) { die("<b>404 File not found!</b>"); }
// Gather relevent info about file
$size = filesize($path);
$name = basename($path);
$extension = strtolower(substr(strrchr($name,"."),1));
// This will set the Content-Type to the appropriate setting for the file
$ctype ='';
switch( $extension ) {
case "mp3": $ctype="audio/mpeg"; break;
case "wav": $ctype="audio/x-wav"; break;
case "Wav": $ctype="audio/x-wav"; break;
case "WAV": $ctype="audio/x-wav"; break;
case "gsm": $ctype="audio/x-gsm"; break;
// not downloadable
default: die("<b>404 File not found!</b>"); break ;
}
// need to check if file is mislabeled or a liar.
$fp=fopen($path, "rb");
if ($size && $ctype && $fp) {
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
header("Content-Description: wav file");
header("Content-Type: " . $ctype);
header("Content-Disposition: attachment; filename=" . $name);
header("Content-Transfer-Encoding: binary");
header("Content-length: " . $size);
fpassthru($fp);
}
}
?>
See more files for this project here
FreePBX is the most powerful GUI (Web Based) configuration tool for Asterisk. It provides everything that a standard legacy phone system can, plus a huge amount of new features. All documentation and information is avalable from http://www.freepbx.org
Project homepage:
http://sourceforge.net/projects/amportal
Programming language(s): PHP,Shell Script,SQL
License: other
audio.php
popup.css
recording_popup.php