RecordOmni

De VIVAitwiki
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Ir a la navegaciónIr a la búsqueda

1 Introducción

recordOmni (actualmente versión 0.0.4) proporciona una gestión estructurada de los ficheros de grabaciones de Omnisuite, permitiendo:

  • Reorganizar las grabaciones en una estrucutura de directorios en arbol basada en año/mes/dia/hora/minuto
  • Almacenar las grabaciones en esa estructura de directorios y en formato mp3 (para reducir espacio)
  • Extraer uno de los canales de la comunicación (el del lado del cliente) para dejarlo además en otra carpeta


Para ello, en Omnisuite:

  • Se modifica en la tabla "voice_recordings" el campo "value" para reflejar el nuevo destino de la grabación (en vez de "/var/spool/asterisk/monitor" será por ejemplo "/mnt/grabaciones/2025/01/17/11/25")
  • Podemos escuchar la grabación (que ha quedado en formato mp3) desde el administrador voice/voice recordings y seleccionando en una grabación la opción "edit voice recording" en la pestaña "player"


El proceso que hemos realizado se basa en que actualmente Motion

  • Deja las grabaciones en /var/spool/asterisk/monitor
  • Escribe el dato en el campo "value" de la tabla "voice_recordings"
  • En el campo "type" de la tabla "voice_recordings" las llamadas pueden ser "inbound", "outbound", "dialer" (hay más tipos pero solo estamos usando esos de momento)



2 Instalación y puesta en marcha

Para instalar:

  • Instalar paquetes
       sudo apt install libdbi-perl
       sudo apt install libdbd-mysql-perl
  • Copiar el archivo recordOmni.pl a la carpeta /usr/local/sbin y darle los permisos 744 y usuario root:root
  • Copiar el archivo recordOmni.logrotate a la carpeta /etc/logrotate.d renombrarlo a recordOmni con los permisos 744 y usuario root:root
  • Crear la carpeta /etc/MDtel
  • Copiar el archivo recordOmni.pconf a la carpeta /etc/MDtel con los permisos 644 y usuario root:root
  • Copiar el archivo recordOmni.sh a la carpeta /etc/init.d y renombrarlo a recordOmni con los permisos 755 y el usuario root:root


recorOmni queda instalado de esta manera como un demonio en el sistema

Para puesta en marcha

  • Habilitar el arranque automatico con el comando systemctl enable recordOmni
  • Configurar el archivo /etc/MDtel/recordOmni.pconf; ver sección #Configuración



3 Configuración

3.1 Parametros importantes para configuración

La conexion con la BD

       # Conexion de base de datos
       $db = 'motion2';
       $dbHost = 'localhost';
       $dbPort = '3306';
       $dbUsuario = 'root';
       $dbClave = 'aaaaaqaaaaaa';


Directorios donde se van a copiar los archivos

       # Directorio donde van las grabaciones
       $grabRutaDest = '/tmp/grabaciones';
       $grabRutaUsaTimestamp = 1;


El parametro grabRutaUsaTimestamp si vale 1 se crean los directorios con AAAA/MM/DD/HH/MM/SS

       # Directorio donde van el lado cliente de las grabaciones si  no se obtiene
       $grabRutaDestCli = '/tmp/grabacionesCli';
       $grabRutaCliUsaTimestamp = 0;


Compresion de los archivos MP3

       #Compresion del mp3 (valores permidos: 8k 16k 32k 128k)
       $grabCompresionMP3 = 32k


Dias que deben transcurrir para dar alarma al arrancar y subir el contador "Antiguas" en la monitorizacion

       # Dias transcurridos de la llamada a procesar para dar alarma
       $diasDesdeLlamada = 5;


3.2 Ejemplo de fichero recordOmni.pconf completo y operativo

#
# Configuracion de recordOmni.pl
#
# 0: Solo alarmas en archivo log - 1: alarmas y trazas
$depurar = 1;

# 0: Arranca como proceso - 1: arranca como demonio
$soyDemonio = 1;

# Archivo de log (: salida estandar)
$logArch = '/var/log/record/recordOmni.log';
#logArch = ;

# Archivo para el pid (eliminando el .pid final)
$pidArch = '/var/run/record/recordOmni';

# 0: El programa se ejecuta indefinidamente - 1: solo una vez (util en depuracion)
$unaVezSolo = 0;

# Tiempo de espera en segundos cuando no hay conexion o cuando no hay llamadas
$toBucle = 15;

# Tipos de llamada analizados
$tiposLlamada = "'inbound','outbound','dialer','internal'";

# Conexion de base de datos
$db = 'motion2';
$dbHost = 'omsui-bdtr';
$dbPort = '3306';
$dbUsuario = 'xcall';
$dbClave = ;
# indice inicial para empezar la busqueda de grabaciones (0 desde el principio)
$dbIndInicial = 113920;
# segundos de retardo en la fecha de la BD para empezar a procesar grabaciones (0 sin retardo)
# 3600 (1 hora)
# 86400 (1 dia)
$dbSegRetardo = 3600;

# Configuracion de la supervision
$supPort = '2111';

# Directorio donde se localizan las grabaciones
$grabRutaOrig = '/var/spool/asterisk/monitor';

# Directorio donde van las grabaciones
$grabRutaDest = '/mnt/almacen/grabaciones';

#Fichero que tiene que estar en la ruta destino para comprobar que si es una nas este montada. Si es  no se comprueba
$grabDestFileMarca = 'NASmontada';

# grabRutaUsaTimestamp valores        0 $grabRutaDest
#                                     1 $grabRutaDest/AAAA/MM/DD
#                                     2 $grabRutaDest/AAAA/MM/DD/HH/MM
$grabRutaUsaTimestamp = 1;

#Compresion del mp3 (valores permidos: 8k 16k 32k 128k)
$grabCompresionMP3 = 32k
#Hay compresion
#grabCompresion  valores    0 sin compresion
#                           1 wav estereo -> mp3  (defecto)
$grabCompresion = 1;

# Directorio donde van el lado cliente de las grabaciones si  no se obtiene
$grabRutaDestCli = '/mnt/almacenCIL/grabacionesCli';

# grabRutaCliUsaTimestamp valores     0 $grabRutaDest
#                                     1 $grabRutaDest/AAAA/MM/DD
#                                     2 $grabRutaDest/AAAA/MM/DD/HH/MM
$grabRutaCliUsaTimestamp = 0;

# Dias transcurridos de la llamada a procesar para dar alarma
$diasDesdeLlamada = 5;


4 Diagnósticos

Los eventos de recorOmni quedan registrados en /var/log/record/recordOmni.log

Para ver el estado del proceso, y reiniciarlo en caso necesario

/etc/init.d/recordOmni status
/etc/init.d/recordOmni stop
/etc/init.d/recordOmni start