Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

История изменений [назад]

нажмите, чтобы скрыть/показать версии 1
изначальная версия
редактировать

ответил 2015-12-01 22:05:36 +0400

ffrost Gravatar ffrost flag of Russian Federation

Сделать это можно так. Необходимо в файле 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 с ограничением по доступу"

Сделать это можно так. Необходимо в файле 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 с ограничением по доступу"

Сделать это можно так. Необходимо в файле 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 с ограничением по доступу"

Сделать В версиях 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 с ограничением по доступу"

В версиях 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.