Hagamos que México crezca..

Prefiere el consumo de lo Hecho en México

Prefiere el consumo de lo Hecho en México
BúsquedaHagamos que México crezca..
![]() Prefiere el consumo de lo Hecho en México Posts Recientes
Conversación |
¿ Como descargar llamadas grabadas desde Reporte de CDR de FreePBX ?Hace unos días le instalé un Marcador Predictivo a un cliente basado en ViciDial, todo esto funcionando sobre la plataforma de Telefonía IP Asterisk, todo funcionó bien Colas, Marcador Predictivo, Llamadas Grabadas, Reportes, Agentes, CRM, Call Notification, etc., Solo faltaba la cereza en el pastel,
¿ Como descargar el archivo de las llamadas grabadas desde el CDR de FreePBX ? Para esto me metí a revisar el archivo call-log.php, que es el reporteador del CDR de FreePBX. Este archivo se encuentra debajo de la ruta de instalación de FreePBX en admin/cdr/call-log.php, para mi sistema CloudVoox PBX lo tenemos en /var/www/cloudvoox/admin/cdr/call-log.php. En esta parte debajo de /* --AMP Begin-- */ agregamos la siguiente línea
$FG_TABLE_COL[]=array ("ID", "UniqueID", "20%", "center", "", "40","", "", "", "", "", "", "cdr/audio.php?id=");
$FG_TABLE_COL[]=array ("Duration", "duration", "6%", "center", "SORT", "30", "", "", "", "", "", "$minute_function"); También modificamos la consulta y quedó de la siguiente forma:
$FG_COL_QUERY='calldate, channel, src, dst, disposition, duration, uniqueid'; En este mismo archivo hicimos una modificación en el despliegue de la información del registro, este cambio se hizo despues de la siguiente línea (~685):
<TD vAlign=top align="<?php echo $FG_TABLE_COL[$i][3]?>" class=tableBody> Sustituímos lo siguiente
<?php if (isset ($FG_TABLE_COL[$i][11]) && strlen($FG_TABLE_COL[$i][11])>1){ call_user_func($FG_TABLE_COL[$i][11], $record_display); }else{ echo stripslashes($record_display); } ?>
<?php $aHref = ""; //CAMBIO AUDIO if(isset($FG_TABLE_COL[$i][12]) && $FG_TABLE_COL[$i][12]!="" ){ echo "<a href=\"".$FG_TABLE_COL[$i][12].$record_display."\">"; $aHref = "</a>"; }//CAMBIO AUDIO ** if (isset ($FG_TABLE_COL[$i][11]) && strlen($FG_TABLE_COL[$i][11])>1){ call_user_func($FG_TABLE_COL[$i][11], $record_display); }else{ echo stripslashes($record_display); } //CAMBIO AUDIO echo $aHref; ?> Ahora solo faltaría poner el archivo audio.php dentro del mismo directorio dónde está call-log.php, el archivo audio.php tendría el siguiente código:
<?php $uniqueid = $_GET["id"]; $directorio = "/var/spool/asterisk/monitor/"; $error = ""; if(is_numeric($uniqueid)){ $busqueda = "find $directorio -iname \"*$uniqueid.*\""; $audio = exec($busqueda, $_info); if(file_exists($audio)){ $filename = basename($audio); $_extension = split("\.", $filename); $extension = $_extension[count($_extension)-1]; //echo "$audio::$filename::$extension"; getAudio($audio, $filename, $extension); }else{ $error = "<b>Error 404</b> Archivo no existe para descarga"; } }else{ $error = "<b>Error 403</b> Error en Tipo de Archivo"; } echo $error; function getAudio($audio, $filename, $filetype){ header('Content-Type: application/'.$filetype); header('Content-Disposition: attachment; filename="'.$filename); header('Content-Length: '.filesize($audio)); echo file_get_contents($audio, false); } ?> En lo anterior solo habría que modificar el directorio dónde FreePBX guarda las llamadas, por default Asterisk coloca las llamadas grabadas en /var/spool/asterisk/monitor. Espero lo anterior sirva de algo, si tienes alguna duda puedes enviarme un correo en fileinleon del correo de google.
Fuentes XML de comentario: RSS | Atom
|
Nube de EtiquetasEventosEncuestaComentarios Recientes
|
Dejar un comentario