+# Lock file
+lock();
+
+# Defino some GLOBALS
+$CONFDIR = shift;
+$CONFDATA{logdir} = getConfVar("$CONFDIR/afinstal.conf",12);
+$CONFDATA{logfile} = getConfVar("$CONFDIR/afinstal.conf",13);
+$CONFDATA{logsize} = getConfVar("$CONFDIR/afinstal.conf",14);
+$CONFDATA{datadir} = getConfVar("$CONFDIR/afinstal.conf",15);
+$CONFDATA{alarmlog} = "$CONFDIR/alarmas/alarmas.txt";
+
+# Cargo los UMBRALES en memoria
+open(PARAMFILE,"$CONFDIR/umbrales.param") or die "No se pudo abrir el archivo de umbrales";
+@UMBRALES = <PARAMFILE>;
+close(PARAMFILE);
+
+# For Debug Only
+print("\nLogdir: $CONFDATA{logdir}\n");
+print("Logfile: $CONFDATA{logfile}\n");
+print("Logsize: $CONFDATA{logsize}\n");
+print("Datadir: $CONFDATA{datadir}\n\n");
+
+# Proceso los archivos de llamadas
+@archivos = getCallFiles();
+FILE: foreach $filename (@archivos) {
+ $regnum = 0;
+ $CALLFILE = "$CONFDATA{datadir}/enproceso/$filename";
+ logEntry("Inicio proceso de: $filename",1);
+
+ open(CALLFILE) or ((warn "No se pudo abrir archivo $filename"),next FILE);
+ REG: foreach $callreg (<CALLFILE>) {
+ logEntry("Procesando Reg: $regnum | Archivo: $filename",1);
+ chomp($callreg);
+ $fieldcount = split(';',$callreg);
+ @fields = @_;
+ # Si no tengo 8 campos exactamente, invalido
+ if ($fieldcount != 8) { badCall($callreg,$regnum); next REG; }
+ # Si la linea no es un numero, invalido
+ $fields[0] =~ s/^\s*(\w*)\s*$/$1/;
+ if (!($fields[0] =~ /^\d+$/)) { badCall($callreg,$regnum); next REG; }
+ # Si tipo llamada ! E|S o no se informa Origen o Destino, invalido
+ if (($fields[4] ne 'E') && ($fields[4] ne 'S')) {
+ badCall($callreg,$regnum); next REG;
+ }
+ if (($fields[4] eq 'E') && ($fields[6] eq "")) {
+ badCall($callreg,$regnum); next REG;
+ }
+ if (($fields[4] eq 'S') && ($fields[5] eq "")) {
+ badCall($callreg,$regnum); next REG;
+ }
+
+ # Ya pase todas las validaciones, ahora busco si exite un umbral
+ checkUmbrales(*fields,$filename);
+ } continue { ++$regnum }
+ close(CALLFILE);
+
+ # La muevo al directorio de procesadas
+ rename $CALLFILE,"$CONFDATA{datadir}/procesadas/$filename";
+
+ logEntry("Fin proceso de: $filename",1);