Grabacion de Llamadas

Grabacion de Llamadas

  • fcabada
  • 10-13-06
  • Offline
Posted: Mié, 2006-12-13 00:53

Hola Lista, alguno de ustedes ha tenido la necesidad de grabar todas las llamadas desde su asterisk, tipo CALL CENTER donde te avisan que grabaran la conversacion?
Hay alguien que tiene un CALL Center y quiere grabar todas las llamdas, y cada llamada tiene el ID de atencion, lo que quieren es: grabar cada llamada y asignarle el ID, tipo base de datos??
Alguien ha hecho esto??


re:grabacion

  • jxano
  • 08-17-09
  • Offline
  • Jue, 2009-12-31 16:15

estimado te envio la estructura con la cual puedes grabar llamadas entrantes como saliente solamente tienes que agregar tu tus campos de verificacion (ej id agente . llamada etc )

4) vamos a la carpeta de los AGI (cd /var/lib/asterisk/agi-bin/bsagi/)
5) se edita y crea un archivo con el siguiente nombre : vi recording.php que sera utilizado para generar las grabaciones de las llamadas tanto entrantes como salientes de nuestro equipo
6) el formato del archivo creado contendra lo siguiente:
7) (#!/usr/bin/php -q
8) <?php
9) {
10) include('data_reader.php');
11) $timestamp = $argv[1];
12) $uniqueid = $argv[2];
13)
14) $parm_error_log = '';
15) $parm_debug_on = 0;
16) $agi=new AGIMAN($parm_debug_on,$parm_error_log);
17) $ani=$agi->getCallerID();
18) $agi->LOG( " ANI -> " . $ani . "\n");
19) $EXT=$agi->getVariable("ARG1");
20) $tipo=$agi->getVariable("ARG2");
21) if($tipo=="OUT"){
22) $agi->execute("VERBOSE \"Outbound recording enabled.\" 1");
23) $agi->execute("VERBOSE \"CALLFILENAME=OUT{$ani}-{$timestamp}-{$uniqueid}");
24) $agi->execute("SET VARIABLE CALLFILENAME \"OUT{$exten['data']}-{$timestamp}-{$uniqueid}\"");
25) }
26) if($tipo=="IN"){
27) $agi->execute("VERBOSE \"Inbound recording enabled.\" 1");
28) $agi->execute("VERBOSE \"CALLFILENAME={$timestamp}-{$uniqueid}");
29) $agi->execute("SET VARIABLE CALLFILENAME \"{$timestamp}-{$uniqueid}\"");
30) }
31) $agi->setOK();
32) $agi->execute("SET PRIORITY record");
33) exit(0);
34)
35) }
36) ?>

Terminando de crear el php correspondiente se edita el siguiente que nos proveera la ruta para que chequee el agi creado y funcione ok vi /etc/asterisk/extensions_additional.conf

[macro-record-enable]
include => macro-record-enable-custom
exten => s,1,GotoIf($["${BLINDTRANSFER}" = ""]?check)
exten => s,n,ResetCDR(w)
exten => s,n,StopMonitor()
exten => s,n(check),AGI(bsagi/recording.php,${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)},${UNIQUEID}) (se checkea el agi que utilizamos con la ubicación para la grabación
exten => s,n,MacroExit()
exten => s,1+998(record),MixMonitor(${MIXMON_DIR}${CALLFILENAME}.${MIXMON_FORMAT},,${MIXMON_POST})

; end of [macro-record-enable]

“Se cambia el AGI(recordingcheck , por la ubicación del agi (bsagi/recording.php creado con antelación”

Luego se verifica en el freepbx cdr report si se encuentra grabando si es asi esta ok se verifica escuchando una llamada si no encuentra la pagina se realiza lo siguiente:

Se va al directorio cd /var/www/html/maint/
Se realiza la busqueda del archivo que contenga el checkrecording que es la setencia configurada por defecto en asterisk (grep -R "recordingcheck”) este archivo se encuentra generalmente en el directorio especificado abajo pero igual es recomendable chequear la ubicación :
cd /var/www/html/admin/modules/core/functions.inc.php
vi /var/www/html/admin/modules/core/functions.inc.php
la modificacion que hay que realizar se encuentra en las siguientes lineas
else {
$ext->add($context, $exten, '', new ext_gotoif('$["${BLINDTRANSFER}" = ""]', 'check'));
$ext->add($context, $exten, '', new ext_resetcdr('w'));
$ext->add($context, $exten, '', new ext_stopmonitor());
$ext->add($context, $exten, 'check', new ext_agi('bsagi/recording.php,${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)},${UNIQUEID}'));

Nuevamente se cambia lo que ha anteriormente había por lo que se creo anteriormente, después de eso deberia estar habilitado la función de grabación de llamadas tanto como entrante como salientes

Verificar archivos de grabación en cd /var/spool/asterisk/monitor/ para la comprobación y extracción de la grabaciones