Diferencia entre revisiones de «RecordOmni»

De VIVAitwiki
Ir a la navegaciónIr a la búsqueda
Línea 36: Línea 36:
 
* Configurar el archivo <code>/etc/MDtel/recordOmni.pconf</code>.
 
* Configurar el archivo <code>/etc/MDtel/recordOmni.pconf</code>.
 
<br>
 
<br>
 
'''Parametros importantes para configuración de <code>recordOmni.pconf</code>:'''
 
 
'''La conexion con la BD'''
 
        # Conexion de base de datos
 
        $db = 'motion2';
 
        $dbHost = 'localhost';
 
        $dbPort = '3306';
 
        $dbUsuario = 'root';
 
        $dbClave = 'aaaaaqaaaaaa';
 
 
<br>
 
<br>
<br>
 
'''Directorios donde se van a copiar los archivos'''
 
        # Directorio donde van las grabaciones
 
        $grabRutaDest = '/tmp/grabaciones';
 
        $grabRutaUsaTimestamp = 1;
 
<br>
 
El parametro grabRutaUsaTimestamp si vale 1 se crean los directorios con AAAA/MM/DD/HH/MM/SS
 
<br>
 
<br>
 
        # Directorio donde van el lado cliente de las grabaciones si '' no se obtiene
 
        $grabRutaDestCli = '/tmp/grabacionesCli';
 
        $grabRutaCliUsaTimestamp = 0;
 
<br>
 
<br>
 
'''Compresion de los archivos MP3'''
 
        #Compresion del mp3 (valores permidos: 8k 16k 32k 128k)
 
        $grabCompresionMP3 = 32k
 
<br>
 
<br>
 
'''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;
 
 
 
'''Nueva versión de recordOmni v0.0.3'''
 
 
La nueva versión incorpora las siguientes modificaciones:
 
 
1)Corrección de un error que no hacia caso del nombre de la base de datos.
 
 
2)Nuevo parámetro de configuración (opcional)
 
 
Este parámetro fija el id por el que va a empezar la búsqueda de grabaciones, con este parámetro podemos saltarnos todos los registros de grabaciones realizados en las pruebas de carga y que no tarde tanto tiempo en buscar la primera grabación válida y el tiempo de comienzo de procesado tras un reinicio
 
 
$dbUsuario = 'root';
 
$dbClave = '**********';
 
indice inicial para empezar la busqueda de grabaciones (0 desde el principio)
 
$dbIndInicial = 0;
 
3)Fichero marca para comprobar que los directorios están montados
 
 
Parámetro para comprobar que el directorio donde se van a mover las grabaciones es el correcto, si el parámetro está vacío la comprobación no se realiza, si el parámetro esta configurado y el fichero no se encuentra las grabaciones no se procesan y se genera una alarma.
 
 
Directorio donde van las grabaciones
 
$grabRutaDest = '/tmp/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 = '';
 
  
 
=== Invocación ===
 
=== Invocación ===

Revisión del 12:58 20 feb 2026

1 Introducción

Recordomni 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



Para puesta en marcha

  • Habilitar el arranque automatico con el comando systemctl enable recordOmni
  • Configurar el archivo /etc/MDtel/recordOmni.pconf.



3 Invocación

4 Diagnósticos

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

5 fichero recordOmni.pconf

Se adjunta un ejemplo de fichero recordOmni.pconf 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;