RecordOmni
Sumario
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.pla la carpeta/usr/local/sbiny darle los permisos744y usuarioroot:root - Copiar el archivo
recordOmni.logrotatea la carpeta/etc/logrotate.drenombrarlo a recordOmni con los permisos744y usuarioroot:root - Crear la carpeta
/etc/MDtel - Copiar el archivo
recordOmni.pconfa la carpeta/etc/MDtelcon los permisos644y usuarioroot:root - Copiar el archivo
recordOmni.sha la carpeta/etc/init.dy renombrarlo arecordOmnicon los permisos755y el usuarioroot: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