Diferencia entre revisiones de «RecordOmni»

De VIVAitwiki
Ir a la navegaciónIr a la búsqueda
 
(No se muestran 9 ediciones intermedias del mismo usuario)
Línea 31: Línea 31:
 
* Copiar el archivo <code>recordOmni.sh</code> a la carpeta <code>/etc/init.d</code> y renombrarlo a <code>recordOmni</code> con los permisos <code>755</code> y el usuario <code>root:root</code>
 
* Copiar el archivo <code>recordOmni.sh</code> a la carpeta <code>/etc/init.d</code> y renombrarlo a <code>recordOmni</code> con los permisos <code>755</code> y el usuario <code>root:root</code>
 
<br>
 
<br>
<br>
+
 
 +
<code>recorOmni</code> queda instalado de esta manera como un demonio en el sistema
 +
<br><br>
  
 
'''Para puesta en marcha'''
 
'''Para puesta en marcha'''
Línea 40: Línea 42:
  
 
=== Configuración ===
 
=== Configuración ===
<br>
 
 
==== Parametros importantes para configuración ====
 
==== Parametros importantes para configuración ====
  
Línea 149: Línea 150:
 
=== Diagnósticos ===
 
=== Diagnósticos ===
 
Los eventos de recorOmni quedan registrados en <code>/var/log/record/recordOmni.log</code>
 
Los eventos de recorOmni quedan registrados en <code>/var/log/record/recordOmni.log</code>
 +
<br>
 +
 +
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
 
<br>
 
<br>
 
<br>
 
<br>
 +
  
 
[[Category:tecnico]]
 
[[Category:tecnico]]
 
[[Category:Omnisuite]]
 
[[Category:Omnisuite]]

Revisión actual del 08:22 23 feb 2026

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