1 | изначальная версия редактировать | |
Сделать это можно так. Необходимо в файле functions.inc.php изменить строку 115
echo "<td title=\"$basename\"><a href=\"#\" onClick=\"javascript:cdr_play($playbackRow,'$recurl'); return false;\"><img src=\"assets/cdr/images/cdr_sound.png\" alt=\"Call recording\" /></a></td>";
чтобы она приняла такой вид:
echo "<td title=\"$basename\"><a href=\"#\" onClick=\"javascript:cdr_play($playbackRow,'$recurl'); return false;\"><img src=\"assets/cdr/images/cdr_sound.png\" alt=\"Call recording\" /></a>
<a href=\"".$PHP_SELF."?getRec=".base64_encode($recordingfile)."\" target=\"_blank\"><img src=\"assets/cdr/images/cdr_download.png\" alt=\"Call recording\" /></a></td>";
затем добавить в конец файла до закрывающего php-тега "?>" следующий код:
function recordfile_uri($path) {
$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 "WAV":
$ctype="audio/x-wav";
break;
case "wav":
$ctype="audio/x-wav";
break;
case "ulaw":
$ctype="audio/basic";
break;
case "alaw":
$ctype="audio/x-alaw-basic";
break;
case "sln":
$ctype="audio/x-wav";
break;
case "gsm":
$ctype="audio/x-gsm";
break;
case "g729":
$ctype="audio/x-g729";
break;
default: //not downloadable
// echo ("<b>404 File not found! foo</b>");
// TODO: what to do if none of the above work?
break ;
}
$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: audio file"); header("Content-Type: " . $ctype); header("Content-Disposition: attachment; filename=" . $name); header("Content-Transfer-Encoding: binary"); header("Content-length: " . $size); $chunksize = 1(10241024); while (!feof($fp)) { $buffer = fread($fp, $chunksize); echo $buffer; obflush(); flush(); } fclose($fp); } } if(isset($GET['getRec'])){ recordfileuri(base64decode($_GET['getRec'])); die(); }
Сделано по материалам хабрастатьи "Asternic CDR Reports. Прослушивание звонков в FreePBX с ограничением по доступу"
2 | No.2 Revision редактировать |
Сделать это можно так. Необходимо в файле functions.inc.php functions.inc.php изменить строку 115
echo "<td title=\"$basename\"><a href=\"#\" onClick=\"javascript:cdr_play($playbackRow,'$recurl'); return false;\"><img src=\"assets/cdr/images/cdr_sound.png\" alt=\"Call recording\" /></a></td>";
чтобы она приняла такой вид:
echo "<td title=\"$basename\"><a href=\"#\" onClick=\"javascript:cdr_play($playbackRow,'$recurl'); return false;\"><img src=\"assets/cdr/images/cdr_sound.png\" alt=\"Call recording\" /></a>
<a href=\"".$PHP_SELF."?getRec=".base64_encode($recordingfile)."\" target=\"_blank\"><img src=\"assets/cdr/images/cdr_download.png\" alt=\"Call recording\" /></a></td>";
затем добавить в конец файла до закрывающего php-тега php-тега "?>" следующий код:
function recordfile_uri($path) {
$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 "WAV":
$ctype="audio/x-wav";
break;
case "wav":
$ctype="audio/x-wav";
break;
case "ulaw":
$ctype="audio/basic";
break;
case "alaw":
$ctype="audio/x-alaw-basic";
break;
case "sln":
$ctype="audio/x-wav";
break;
case "gsm":
$ctype="audio/x-gsm";
break;
case "g729":
$ctype="audio/x-g729";
break;
default: //not downloadable
// echo ("<b>404 File not found! foo</b>");
// TODO: what to do if none of the above work?
break ;
}
$fp=fopen($path, **$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: audio file");
header("Content-Type: " . $ctype);
header("Content-Disposition: attachment; filename=" . $name);
header("Content-Transfer-Encoding: binary");
header("Content-length: " . $size);
$chunksize = 1(10241024);
1*(1024*1024);
while (!feof($fp)) {
$buffer = fread($fp, $chunksize);
echo $buffer;
obflush();
ob_flush();
flush();
}
fclose($fp);
}
}
if(isset($GET['getRec'])){
recordfileuri(base64decode($_GET['getRec']));
if(isset($_GET['getRec'])){
recordfile_uri(base64_decode($_GET['getRec']));
die();
}
Сделано по материалам хабрастатьи "Asternic CDR Reports. Прослушивание звонков в FreePBX с ограничением по доступу"
3 | No.3 Revision редактировать |
Сделать это можно так. Необходимо в файле functions.inc.php изменить строку 115
echo "<td title=\"$basename\"><a href=\"#\" onClick=\"javascript:cdr_play($playbackRow,'$recurl'); return false;\"><img src=\"assets/cdr/images/cdr_sound.png\" alt=\"Call recording\" /></a></td>";
чтобы она приняла такой вид:
echo "<td title=\"$basename\"><a href=\"#\" onClick=\"javascript:cdr_play($playbackRow,'$recurl'); return false;\"><img src=\"assets/cdr/images/cdr_sound.png\" alt=\"Call recording\" /></a>
<a href=\"".$PHP_SELF."?getRec=".base64_encode($recordingfile)."\" target=\"_blank\"><img src=\"assets/cdr/images/cdr_download.png\" alt=\"Call recording\" /></a></td>";
затем добавить в конец файла до закрывающего php-тега "?>" следующий код:
function recordfile_uri($path) {
$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 "WAV":
$ctype="audio/x-wav";
break;
case "wav":
$ctype="audio/x-wav";
break;
case "ulaw":
$ctype="audio/basic";
break;
case "alaw":
$ctype="audio/x-alaw-basic";
break;
case "sln":
$ctype="audio/x-wav";
break;
case "gsm":
$ctype="audio/x-gsm";
break;
case "g729":
$ctype="audio/x-g729";
break;
default: //not downloadable
// echo ("<b>404 File not found! foo</b>");
// TODO: what to do if none of the above work?
break ;
}
**$fp=fopen($path, $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: audio file");
header("Content-Type: " . $ctype);
header("Content-Disposition: attachment; filename=" . $name);
header("Content-Transfer-Encoding: binary");
header("Content-length: " . $size);
$chunksize = 1*(1024*1024);
while (!feof($fp)) {
$buffer = fread($fp, $chunksize);
echo $buffer;
ob_flush();
flush();
}
fclose($fp);
}
}
if(isset($_GET['getRec'])){
recordfile_uri(base64_decode($_GET['getRec']));
die();
}**
}
Сделано по материалам хабрастатьи "Asternic CDR Reports. Прослушивание звонков в FreePBX с ограничением по доступу"
4 | дополнение редактировать |
Сделать В версиях 2.10 возможности скачивания записей разговоров из CDR Reports не было. Но сделать это можно так. и несложно. Необходимо в файле functions.inc.php изменить строку 115
echo "<td title=\"$basename\"><a href=\"#\" onClick=\"javascript:cdr_play($playbackRow,'$recurl'); return false;\"><img src=\"assets/cdr/images/cdr_sound.png\" alt=\"Call recording\" /></a></td>";
чтобы она приняла такой вид:
echo "<td title=\"$basename\"><a href=\"#\" onClick=\"javascript:cdr_play($playbackRow,'$recurl'); return false;\"><img src=\"assets/cdr/images/cdr_sound.png\" alt=\"Call recording\" /></a>
<a href=\"".$PHP_SELF."?getRec=".base64_encode($recordingfile)."\" target=\"_blank\"><img src=\"assets/cdr/images/cdr_download.png\" alt=\"Call recording\" /></a></td>";
затем добавить в конец файла до закрывающего php-тега "?>" следующий код:
function recordfile_uri($path) {
$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 "WAV":
$ctype="audio/x-wav";
break;
case "wav":
$ctype="audio/x-wav";
break;
case "ulaw":
$ctype="audio/basic";
break;
case "alaw":
$ctype="audio/x-alaw-basic";
break;
case "sln":
$ctype="audio/x-wav";
break;
case "gsm":
$ctype="audio/x-gsm";
break;
case "g729":
$ctype="audio/x-g729";
break;
default: //not downloadable
// echo ("<b>404 File not found! foo</b>");
// TODO: what to do if none of the above work?
break ;
}
$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: audio file");
header("Content-Type: " . $ctype);
header("Content-Disposition: attachment; filename=" . $name);
header("Content-Transfer-Encoding: binary");
header("Content-length: " . $size);
$chunksize = 1*(1024*1024);
while (!feof($fp)) {
$buffer = fread($fp, $chunksize);
echo $buffer;
ob_flush();
flush();
}
fclose($fp);
}
}
if(isset($_GET['getRec'])){
recordfile_uri(base64_decode($_GET['getRec']));
die();
}
Сделано по материалам хабрастатьи "Asternic CDR Reports. Прослушивание звонков в FreePBX с ограничением по доступу"
5 | дополнения редактировать |
В версиях 2.10 возможности скачивания записей разговоров из CDR Reports не было. Но сделать это можно и несложно. Необходимо в файле functions.inc.php изменить строку 115
echo "<td title=\"$basename\"><a href=\"#\" onClick=\"javascript:cdr_play($playbackRow,'$recurl'); return false;\"><img src=\"assets/cdr/images/cdr_sound.png\" alt=\"Call recording\" /></a></td>";
чтобы она приняла такой вид:
echo "<td title=\"$basename\"><a href=\"#\" onClick=\"javascript:cdr_play($playbackRow,'$recurl'); return false;\"><img src=\"assets/cdr/images/cdr_sound.png\" alt=\"Call recording\" /></a>
<a href=\"".$PHP_SELF."?getRec=".base64_encode($recordingfile)."\" target=\"_blank\"><img src=\"assets/cdr/images/cdr_download.png\" alt=\"Call recording\" /></a></td>";
затем добавить в конец файла до закрывающего php-тега "?>" следующий код:
function recordfile_uri($path) {
$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 "WAV":
$ctype="audio/x-wav";
break;
case "wav":
$ctype="audio/x-wav";
break;
case "ulaw":
$ctype="audio/basic";
break;
case "alaw":
$ctype="audio/x-alaw-basic";
break;
case "sln":
$ctype="audio/x-wav";
break;
case "gsm":
$ctype="audio/x-gsm";
break;
case "g729":
$ctype="audio/x-g729";
break;
default: //not downloadable
// echo ("<b>404 File not found! foo</b>");
// TODO: what to do if none of the above work?
break ;
}
$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: audio file");
header("Content-Type: " . $ctype);
header("Content-Disposition: attachment; filename=" . $name);
header("Content-Transfer-Encoding: binary");
header("Content-length: " . $size);
$chunksize = 1*(1024*1024);
while (!feof($fp)) {
$buffer = fread($fp, $chunksize);
echo $buffer;
ob_flush();
flush();
}
fclose($fp);
}
}
if(isset($_GET['getRec'])){
recordfile_uri(base64_decode($_GET['getRec']));
die();
}
Сделано по материалам В таблице CDR Reports рядом со значком громкоговорителя появится значок диска, при нажатии на который можно скачать файл, аналогично тому, как это сделано в новых версиях CDR Reports начиная с 2.11. Код модифицирован с использованием материалов хабрастатьи "Asternic CDR Reports. Прослушивание звонков в FreePBX с ограничением по доступу"
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.