Script zu Asterisk Anrufaufzeichnungen aus dem RAM bewegen

Das Verschieben der Anruf gespeicherten Datensätze im RAM Asterisk

Dieser Artikel stellt eine verbesserte Skriptdateien zu bewegen (in diesem Fall Telefonanrufe durch Asterisk gemacht) unturned geöffneten Dateien (Laufende Gespräche). Es ist sehr typisch zu haben Aufnahmen von Anrufen von Asterisk in einem Call-Center zum Beispiel zu machen.

Para hacer este script he utilizado como base uno que encontré Hier, gracias a su autor.

Erinnern Sie vor dem Start, welche Farben Anwendungen und Systeme bedeuten:

geschriebene Texte in der Kommandozeile: blau
Die Ausgabe von der Kommandozeile: Verde
Dateinamen und Dateiinhalt: braun

Justificación

Asterisk es un software de telefonía (muy utilizado en VoIP) que permite construir una centralita telefónica con múltiples funcionalidades, entre ellas la grabación de llamadas. Normalmente, por cuestiones de rendimiento, las grabaciones de llamadas las realizamos sobre una unidad RAM, o disco RAM (si queréis saber cómo crear uno podéis seguir este Link), para luego, al cabo de ciertos intervalos de tiempo, almacenarlas definitivamente en una unidad de disco, z.B., en un servidor NAS. De esta forma, también evitamos el deterioro que supone en la unidad de disco el continuo esfuerzo de escritura por la grabación de múltiples llamadas.

Claro que esto supone un riesgo; una falla eléctrica y se pierden las grabaciones. Por eso conviene guardar de cuando en cuando esas grabaciones en un lugar definitivo.

Este script lo he adaptado a mis necesidades. Todas las grabaciones se guardan en un subdirectorio que se crea cada día, con la fecha del mismo, en formato gsm. El script va buscando inicialmente ese subdirectorio, mira dentro de él los archivos que no están siendo utilizados, y finalmente los mueve a su ubicación definitiva.

Si no tuviésemos la precaución de mirar primero si están siendo utilizados o no, se podrían mover archivos incompletos, con la pérdida de información que ello supone.

Desarrollo

El script que propongo y que a mí me funciona 😉 es el siguiente:


#!/bin/bash
# Para mover las llamadas grabadas en una unidad RAM
# Revisa el contenido de esa unidad y lo pasa a un disco duro
# tenemos un directorio en esa unidad,
# con subdirectorios que se generan diariamente
## Variables con los directorios a utilizar
RAMDIR="/tmp/discoram"
ALMACEN="/mnt/servidor_almacen" #unidad remota, previamente montada, almacén definitivo
cd $RAMDIR
ls -1d */ > listado.borrable
while read dia #cada línea un directorio diario, se extrae del archivo "listado_borrable"
do # aquí empieza la parte de mover archivos en sí, solo los de sonido formato gsm
for i in $(ls -1 $RAMDIR/$dia/*.gsm) ; do
lsof  $i #comprueba los archivos abiertos para no moverlos todavía
valor=$? #estado de salida, si es 0 el archivo está abierto
if [ $valor -ne 0 ] ; then
if [ -d $ALMACEN/$dia ] ; then
echo carpeta de grabaciones comprobada
else
mkdir $ALMACEN/$dia
#solo crea la carpeta si es necesario
fi
mv $i $ALMACEN/$dia
fi
done
rmdir $dia 2> /dev/null #si queda vacía la borramos
done < listado.borrable #aqui termina el while

 

Lo podéis descargar de Hier si os es más cómodo.

No olvidéis opinar y aportar vuestras soluciones personalizadas, siempre se puede mejorar.


Über Angel Calvo

Leidenschaft für Wissenschaft und Technologie. Lehrer, Autor von Handbüchern und Systeme und Kommunikations-Manager.

Lassen Sie eine Antwort