Ricardo Markiewicz (78226)
\layout Date
-Primera Entrega, 28 de Junio del 2004
+26 de Octubre del 2004
\layout Standard
configuración diferente es posible pero queda en manos del administrador.
\layout Itemize
-En los archivos de llamada se valida que sean numeros, y para validar la
+En los archivos de llamada se valida que sean números, y para validar la
fecha no se tiene en cuenta casos particulares como el 29, 30, 31 de febrero.
\layout Itemize
-Todos los meses pueden tener 31 dias.
+Todos los meses pueden tener 31 días.
\layout Itemize
Aficonf utiliza números para describir las acciones Nuevo y Buscar.
La opción Borrar es ofrecida requiriendo un número de ID a borrar dependiendo
de los resultados de la búsqueda, y dando una opción (-1) para cancelar
la acción.
+\layout Itemize
+
+El instalador utiliza el archivo afinstal.conf, situado en el directorio
+
+\family typewriter
+$PATH_INSTALADOR/conf
+\family default
+, para determinar que componentes se encuentran instalados.
+ Internamente, en base a la información de paths proporcionada por este
+ archivo, busca su los binarios realmente se encuentran en el OS, y en caso
+ contrario permite volver a reinstalarlo/s.
\layout Section
+
+\begin_inset LatexCommand \label{sec:Problemas-relevantes}
+
+\end_inset
+
Problemas relevantes
\layout Itemize
~$HOME/.antifraude
\family default
, para ser mas consistentes con la manera de trabajar en Unix.
- Lo ideal ubiera sido utilizar
+ Lo ideal hubiera sido utilizar
\family typewriter
/etc/antifraude
\family default
-, pero como no podríamos suponer root access preferimos directamente trabajar
- en el home del usuario.
+, pero como no podríamos suponer acceso de
+\emph on
+root
+\emph default
+ preferimos directamente trabajar en el directorio del usuario.
\layout Section
Instalación
-\layout Standard
+\layout Comment
Copiar del README cuando este terminado y extenderlo un poco si se considera
necesario.
\layout Section
-Comandos Desarollados
+Comandos Desarrollados
\layout Subsection
AFIMONIO
-\layout Standard
+\layout Subsubsection
+Tipo de comando
+\layout Standard
-\series bold
-Tipo de comando:
-\series default
- Solicitado
+Solicitado.
\layout Subsubsection
Archivos de Input
Archivos de Output
\layout Standard
-El afimonio genera una salida al archivo afimonio.log la cual contiene informació
-n sobre la ejecución del programa.
+El afimonio genera una salida al archivo
+\family typewriter
+afimonio.log
+\family default
+ la cual contiene información sobre la ejecución del programa.
\layout Standard
Si un archivo es válido, se añade una línea con el siguiente formato:
-\layout Standard
+\layout LyX-Code
-"$fecha $USER afimonio: "Se detecta archivo de llamadas $file"
+$fecha $USER afimonio: "Se detecta archivo de llamadas $file"
\layout Standard
Si el archivo tuviera un nombre inválido, la línea seria la siguiente:
-\layout Standard
+\layout LyX-Code
-"$fecha $USER afimonio:"Se rechaza el archivo $file".
-
+$fecha $USER afimonio: "Se rechaza el archivo $file"
\layout Standard
-donde
-\layout Standard
+donde:
+\layout Description
-$fecha: fecha actual con formato Dia-Mes-Año-Hora:Minuto.
-
-\layout Standard
-$USER: nombre de usuario que ejecuto el script.
-
-\layout Standard
+\family typewriter
+$fecha
+\family default
+ fecha actual con formato Día-Mes-Año-Hora:Minuto.
+\layout Description
-$file: nombre del archivo que se procesó.
-
+
+\family typewriter
+$USER
+\family default
+ nombre de usuario que ejecuto el script.
+\layout Description
+
+
+\family typewriter
+$file
+\family default
+ nombre del archivo que se procesó.
\layout Subsubsection
Ejemplos de invocación
-\layout LyX-Code
+\layout Paragraph
-:afimonio/bin$> ./afimonio
-\layout LyX-Code
-:afimonio/bin$> nohup ./afimonio &
-\layout LyX-Code
+\family typewriter
+./afimonio
+\layout Standard
-:afimonio/bin$> ./afimonio_daemon.sh
-\layout LyX-Code
+Corre el programa en primer plano.
+\layout Paragraph
+
+
+\family typewriter
+nohup ./afimonio &
+\layout Standard
- afimonio_daemon.sh (start|stop|status)
+Corre el programa en segundo plano, evitando que se cierre al morir el padre
+ desasociándolo de la terminal.
+ La salida del programa queda en el archivo
+\family typewriter
+nohup.out
+\family default
+ a menos que se redirija a otro archivo.
\layout Subsubsection
Código Fuente
-\layout Standard
+\layout Comment
Copy Paste cuando este cerrado.
\layout Subsection
ANTIFRAUDE
-\layout Standard
+\layout Subsubsection
+Tipo de comando
+\layout Standard
-\series bold
-Tipo de comando:
-\series default
- Solicitado
+Solicitado.
\layout Subsubsection
Archivos de Input
\layout Standard
-Procesa los archivos de llamadas que encuentre en el momento de invocacion
+Procesa los archivos de llamadas que encuentre en el momento de invocación
en el directorio
\family typewriter
$PATH_ANTIFRAUDE/$DATADIR/enproceso
\family default
.
El demonio
+\family typewriter
\series bold
-Afimonio
+afimonio
+\family default
\series default
será quien alimentará al
+\family typewriter
\series bold
-Antifraude
+antifraude
+\family default
\series default
con dichos archivos, no obstante se lo puede alimentar con archivos de
- llamdas en forma manual, situándolos en el directorio anteriormente descripto.
+ llamadas en forma manual, situándolos en el directorio anteriormente descripto.
+\layout Standard
+
+Este comando, en el momento de invocacion genera y guarda internamente un
+ listado de los archivos de llamadas presences en el directorio
+\family typewriter
+/enproceso
+\family default
+, ordenándolos por fecha (establecida en el nombre del archivo) en forma
+ ascendente.
+ Dado que utiliza durante toda su ejecución esta lista interna, el
+\family typewriter
+\series bold
+Afimonio
+\family default
+\series default
+ puede alimentar al directorio
+\family typewriter
+/enproceso
+\family default
+ con nuevos archivos mientras el
+\family typewriter
+\series bold
+Antifraude
+\family default
+\series default
+ corre, pero los mismos no serán tenidos en cuenta (esto es, procesados),
+ hasta la próxima invocación del comando.
\layout Subsubsection
Archivos de Output
-\layout Itemize
+\layout Description
-\series bold
-Antifraude.log:
-\series default
- Se loguea en este archivo el procesamiento de los registros, warnings provocado
-s por registros no validos y alarmas emitidas por registros que matchean
- contra un umbral.
-\layout Itemize
+\family typewriter
+Antifraude.log
+\family default
+ En este archivo se guarda información del procesamiento de los registros,
+ advertencias provocados por registros no validos y alarmas emitidas por
+ registros que cumplen con un umbral.
+\layout Description
-\series bold
-Alarmas.txt:
-\series default
- Se loguean en este archivo las alarmas provocadas por registros en los
- archivos de llamadas, que hayan matcheado un umbral determinado del archivo
- umbrales.param.
+\family typewriter
+Alarmas.txt
+\family default
+ En este archivo se guarda información de las alarmas provocadas por registros
+ en los archivos de llamadas, que hayan cumplido un umbral determinado del
+ archivo
+\family typewriter
+umbrales.param
+\family default
+.
\layout Subsubsection
Ejemplos de invocación
-\layout LyX-Code
+\layout Paragraph
-:antifraude/bin$> perl antifraude.pl
-\layout LyX-Code
-:antifraude/bin$> perl antifraude.pl &
+\family typewriter
+./antifraude.pl
+\layout Standard
+
+El programa procesa las llamadas
+\family typewriter
+enproceso
+\family default
+ como indica el enunciado en primer plano.
+\layout Paragraph
+
+
+\family typewriter
+perl antifraude.pl
+\layout Standard
+
+Ídem anterior.
+\layout Paragraph
+
+./antifraude.pl &
+\layout Standard
+
+Ídem anterior pero procesa en segundo plano.
\layout Subsubsection
Código Fuente
-\layout Standard
+\layout Comment
Copy Paste cuando este cerrado.
\layout Subsection
AFICONF
-\layout Standard
+\layout Subsubsection
+Tipo de comando
+\layout Standard
-\series bold
-Tipo de comando:
-\series default
- Solicitado
+Solicitado.
\layout Subsubsection
Archivos de Input
\layout Standard
-El comando utiliza los archivos umbrales.param y oridesti.txt situados en
-
+El comando utiliza los archivos
+\family typewriter
+umbrales.param
+\family default
+ y
+\family typewriter
+oridesti.txt
+\family default
+ situados en
\family typewriter
~$HOME/.antifraude/
\layout Subsubsection
-Archivos de Output
+Archivos de Output
+\layout Standard
+
+Solo escribe en
+\family typewriter
+umbrales.param
+\family default
+ de ser solicitado por el usuario, ya sea por la alta o baja de un umbral.
+\layout Subsubsection
+
+Ejemplos de invocación
+\layout Paragraph
+
+
+\family typewriter
+./aficonf
+\layout Standard
+
+Realiza lo pedido en el enunciado.
+\layout Subsubsection
+
+Código Fuente
+\layout Standard
+
+Copy Paste cuando este cerrado.
+\layout Subsection
+
+CALLGEN
+\layout Subsubsection
+
+Tipo de comando
+\layout Standard
+
+Auxiliar, escrito en
+\family typewriter
+perl
+\family default
+.
+\layout Subsubsection
+
+Justificación de su uso
+\layout Standard
+
+Sirve para realizar lotes de prueba con gran cantidad de entradas y variaciones
+ de forma rápida y cómoda.
+\layout Subsubsection
+
+Archivos de Input
+\layout Standard
+
+Ninguno, toma los datos necesarios por la entrada estándar, aunque es común
+ redireccionarle el archivo
+\family typewriter
+oridesti.txt
+\family default
+.
+ De la entrada estándar toma los códigos de origen y destino.
+ Cada código debe encontrarse en una línea y al comienzo de ésta.
+ Sólo toma los 2 primeros caracteres, e ignora el resto de la línea (para
+ compatibilidad con el archivo oridesti.txt).
+\layout Subsubsection
+
+Archivos de Output
+\layout Standard
+
+Crea una cantidad
+\family typewriter
+N
+\family default
+ (especificada por el usuario) de archivos con nombre y formato de
+\emph on
+Archivo de Llamadas
+\emph default
+ en el directorio actual.
+ Tanto el nombre como la cantidad de líneas y su contenido es generado aleatoria
+mente (respetando el formato mencionado y con valores racionales).
+\layout Subsubsection
+
+Parámetros
+\layout Standard
+
+El comando toma 3 parámetros
+\series bold
+opcionales
+\series default
+:
+\layout LyX-Code
+
+./callgen [cant_archivos [min_lineas [max_lineas]]]
+\layout LyX-Code
+
+
+\begin_inset Float table
+wide false
+collapsed false
+
+\layout Caption
+
+
+\series bold
+Parámetros del comando CALLGEN
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="4" columns="3">
+<features>
+<column alignment="center" valignment="top" leftline="true" width="0">
+<column alignment="center" valignment="top" leftline="true" width="0">
+<column alignment="center" valignment="top" leftline="true" rightline="true" width="0">
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\series bold
+Parámetro
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\series bold
+Descripción
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\series bold
+Default
+\end_inset
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+cant_archivos
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cantidad de archivos a generar
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+10
+\end_inset
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+min_lineas
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Mínima cantidad de lineas en un archivo
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+1000
+\end_inset
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+max_linaes
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Máxima cantidad de lineas en un archivo
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+5000
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_inset
+
+
+\layout LyX-Code
+
+\layout Standard
+
+Pueden cambiarse los valores por defecto editando el código fuente del comando,
+ en la sección de configuración que se encuentra al comienzo del mismo.
+ También puede cambiarse el mínimo y máximo año (por defecto 1999 y 2004)
+ y el mínimo y máximo código de central (por defecto 0000 y 9999).
+\layout Subsubsection
+
+Ejemplos de invocación
+\layout Paragraph
+
+
+\family typewriter
+./callgen
+\layout Paragraph
+
+
+\series medium
+Se escriben por entrada estándar los códigos de origen/destino, se presiona
+
+\family typewriter
+\series default
+Ctrl-D
+\family default
+\series medium
+ para cerrar el descriptor de archivo de la entrada estándar y se generan
+ 10 archivos con entre 1000 y 5000 líneas cada uno.
+\layout Paragraph
+
+
+\family typewriter
+./callgen 2 < oridesti.txt
+\layout Paragraph
+
+
+\series medium
+Genera 2 archivos con entre 1000 y 5000 líneas cada uno tomando los códigos
+ de origen/destino del archivo
+\family typewriter
+origesti.txt
+\family default
+.
+\layout Paragraph
+
+
+\family typewriter
+./callgen 5 10 < oridesti.txt
+\layout Paragraph
+
+
+\series medium
+Genera 5 archivos con entre 10 y 5000 líneas cada uno tomando los códigos
+ de origen/destino del archivo
+\family typewriter
+origesti.txt
+\family default
+.
+\layout Paragraph
+
+
+\family typewriter
+./callgen 50 10 50 < oridesti.txt
+\layout Paragraph
+
+
+\series medium
+Genera 50 archivos con entre 10 y 50 líneas cada uno tomando los códigos
+ de origen/destino del archivo
+\family typewriter
+origesti.txt
+\family default
+.
+\layout Subsubsection
+
+Código Fuente
+\layout Comment
+
+Copy Paste cuando este cerrado.
+\layout Section
+
+Archivos
+\layout Subsection
+
+Archivos del Enunciado
+\layout Subsubsection
+
+
+\family typewriter
+<comando>.log
+\layout Standard
+
+Los archivos de log generados por los distintos comandos, presentan todos
+ la misma estructura de registro que se detalla a continuación:
+\family typewriter
+YYYYMMDD-hhmm $usuario $comando: ¨$Mensaje¨
+\layout Subsubsection
+
+
+\family typewriter
+oridesti.txt
+\layout Standard
+
+En este archivo se tienen los origenes y destinos en base a los cuales hemos
+ generados los archivos de llamada y los umbrales.
+\layout Standard
+
+
+\begin_inset Float table
+wide false
+collapsed true
+
+\layout Caption
+
+
+\series bold
+Estructura de oridesti.txt
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="2" columns="2">
+<features>
+<column alignment="center" valignment="top" leftline="true" width="0">
+<column alignment="center" valignment="top" leftline="true" rightline="true" width="0">
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Código
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+2 caracteres
+\end_inset
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Descripción
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+N caracteres
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_inset
+
+
+\layout Subsubsection
+
+
+\family typewriter
+umbrales.param
+\layout Standard
+
+Este archivo posee los umbrales de llamadas de los cuales se valdra el antifraud
+e.pl para emitir o no alarmas durante el proceso de los archivos de llamadas.
+\layout Standard
+
+
+\begin_inset Float table
+wide false
+collapsed true
+
+\layout Caption
+
+
+\series bold
+Estructura de umbrales.param
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="8" columns="2">
+<features>
+<column alignment="center" valignment="top" leftline="true" width="0">
+<column alignment="center" valignment="top" leftline="true" rightline="true" width="0">
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Id del registro
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+N caracteres, número secuencial >= 1
+\end_inset
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Número de línea
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+N caracteres, Numérico
+\end_inset
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Origen/Destino
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+2 caracteres, valores posibles segun oridesti.txt
+\end_inset
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Tipo de llamada
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+1 caracter, E = Entrante, S = Salida
+\end_inset
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Estado
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+1 caracter, A = Activo, I = Inactivo
+\end_inset
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Usuario
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+N caracteres = login del user que graba el reg
+\end_inset
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Fecha
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+8 caracteres, formato aaaammdd
+\end_inset
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Hora
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+6 caracteres, formato hhmmss, hora actual
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_inset
+
+
+\layout Subsubsection
+
+
+\family typewriter
+<archivo de llamada>
+\layout Standard
+
+Estos archivos son los que el antifraude procesará en busca de matchs contra
+ los umbrales.
+\layout Standard
+
+
+\begin_inset Float table
+wide false
+collapsed true
+
+\layout Caption
+
+
+\series bold
+Estructura de un archivo de llamadas
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="8" columns="2">
+<features>
+<column alignment="center" valignment="top" leftline="true" rightline="true" width="0">
+<column alignment="center" valignment="top" rightline="true" width="0">
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Número de línea
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+N caracteres, Numérico
+\end_inset
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cantidad de Minutos
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+N caracteres, Numérico
+\end_inset
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Fecha de Llamada
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+8 caracteres, formato aaaammdd
+\end_inset
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Hora de Llamada
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+6 caracteres, formato hhmmss
+\end_inset
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Tipo de Llamada
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+1 carácter, E = Entrante, S = Salida
+\end_inset
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Destino
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+2 caracteres, solo informado en llamadas salientes
+\end_inset
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Origen
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+2 caracteres, solo informado en llamadas entrantes
+\end_inset
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
\layout Standard
-Solo escribe en umbrales.param de ser solicitado por el usuario, ya sea por
- la alta o baja de un umbral.
-\layout Subsubsection
-
-Ejemplos de invocación
-\layout LyX-Code
-
-:aficonf/bin$> ./aficonf
-\layout Subsubsection
+Prestadora
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
-Código Fuente
\layout Standard
-Copy Paste cuando este cerrado.
-\layout Subsection
+N caracteres
+\end_inset
+</cell>
+</row>
+</lyxtabular>
-CALLGEN
-\layout Standard
+\end_inset
-\series bold
-Tipo de comando:
-\series default
- Auxiliar, escrito en PERL
-\layout Subsubsection
+\end_inset
-Justificación de su uso
-\layout Standard
-Sirve para realizar lotes de prueba con gran cantidad de entradas y variaciones
- de forma rápida y cómoda.
\layout Subsubsection
-Archivos de Input
-\layout Standard
-Ninguno, toma los datos necesarios por la entrada estándar, aunque es común
- redireccionarle el archivo
\family typewriter
-oridesti.txt
-\family default
-.
- De la entrada estándar toma los códigos de origen y destino.
- Cada código debe encontrarse en una línea y al comienzo de ésta.
- Sólo toma los 2 primeros caracteres, e ignora el resto de la línea (para
- compatibilidad con el archivo oridesti.txt).
-\layout Subsubsection
-
-Archivos de Output
+alarmas.txt
\layout Standard
-Crea una cantidad N (especificada por el usuario) de archivos con nombre
- y formato de Archivo de Llamadas en el directorio actual.
- Tanto el nombre como la cantidad de líneas y su contenido es generado aleatoria
-mente (respetando el formato mencionado y con valores racionales).
-\layout Subsubsection
-
-Parámetros
+En este archivo el antifraude irá dejando registro de las alarmas emitidas
+ en base a registros que han tenido un match contra los umbrales.
\layout Standard
-El comando toma 3 parámetros
-\series bold
-opcionales
-\series default
-:
-\layout LyX-Code
-
-./callgen [cant_archivos [min_lineas [max_lineas]]]
-\layout LyX-Code
-
\begin_inset Float table
wide false
-collapsed false
+collapsed true
\layout Caption
\series bold
-Parámetros del comando CALLGEN
+Estructura de alarmas.txt
\layout Standard
\align center
\begin_inset Tabular
-<lyxtabular version="3" rows="4" columns="3">
+<lyxtabular version="3" rows="10" columns="2">
<features>
<column alignment="center" valignment="top" leftline="true" width="0">
-<column alignment="center" valignment="top" leftline="true" width="0">
<column alignment="center" valignment="top" leftline="true" rightline="true" width="0">
<row topline="true" bottomline="true">
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\layout Standard
+Prestadora
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
-\series bold
-Parámetro
+\layout Standard
+
+N caracteres, campo 'Prestadora', archivo de llamadas
\end_inset
</cell>
+</row>
+<row topline="true">
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text
\layout Standard
-
-\series bold
-Descripción
+Central Telefónica
\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\layout Standard
-
-\series bold
-Default
+4 caracteres, obtenido a partir del archivo de llamadas
\end_inset
</cell>
</row>
\layout Standard
-cant_archivos
+Número de Línea
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+N caracteres, campo 'Numero de Linea' , archivo de llamadas
\end_inset
</cell>
+</row>
+<row topline="true">
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text
\layout Standard
-Cantidad de archivos a generar
+Cantidad de minutos
\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\layout Standard
-10
+N caracteres, campo 'Cant de Minutos', archivo de llamadas
\end_inset
</cell>
</row>
\layout Standard
-min_lineas
+Regla Aplicada
\end_inset
</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text
\layout Standard
-Mínima cantidad de lineas en un archivo
+N caracteres, campo 'Id de registro', umbrales.param
\end_inset
</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text
\layout Standard
-1000
+Fecha de llamada
\end_inset
</cell>
-</row>
-<row topline="true" bottomline="true">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text
\layout Standard
-max_lines
+8 caracteres, campo 'Fecha de llamada', archivo de llamadas
\end_inset
</cell>
+</row>
+<row topline="true">
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text
\layout Standard
-Máxima cantidad de lineas en un archivo
+Hora de llamada
\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\layout Standard
-5000
+6 caracteres, campo 'Hora de llamada', archivo de llamadas
\end_inset
</cell>
</row>
-</lyxtabular>
-
-\end_inset
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+\layout Standard
+Usuario
\end_inset
-
-
-\layout LyX-Code
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
\layout Standard
+N caracteres, siempre login del usuario que graba el reg
+\end_inset
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
-\series bold
-NOTA:
-\series default
- Pueden cambiarse los valores por defecto editando el código fuente del
- comando, en la sección de configuración que se encuentra al comienzo del
- mismo.
- También puede cambiarse el mínimo y máximo año (por defecto 1999 y 2004)
- y el mínimo y máximo código de central (por defecto 0000 y 9999).
-\layout Subsubsection
-
-Ejemplos de invocación
-\layout Paragraph
-
-./callgen
-\layout Paragraph
-
-
-\series medium
-Se escriben por entrada estándar los códigos de origen/destino, se presiona
- Ctrl-D para cerrar el descriptor de archivo de la entrada estándar y se
- generan 10 archivos con entre 1000 y 5000 líneas cada uno.
-\layout Paragraph
-
-./callgen 2 < oridesti.txt
-\layout Paragraph
-
+\layout Standard
-\series medium
-Genera 2 archivos con entre 1000 y 5000 líneas cada uno tomando los códigos
- de origen/destino del archivo origesti.txt.
-\layout Paragraph
+Fecha
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
-./callgen 5 10 < oridesti.txt
-\layout Paragraph
+\layout Standard
+8 caracteres, formato aaaammdd, fecha actual
+\end_inset
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
-\series medium
-Genera 5 archivos con entre 10 y 5000 líneas cada uno tomando los códigos
- de origen/destino del archivo origesti.txt.
-\layout Paragraph
+\layout Standard
-./callgen 50 10 50 < oridesti.txt
-\layout Paragraph
+Hora
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+\layout Standard
-\series medium
-Genera 50 archivos con entre 10 y 50 líneas cada uno tomando los códigos
- de origen/destino del archivo origesti.txt.
-
-\layout Subsubsection
+6 caracteres formato hhmmss, hora actual
+\end_inset
+</cell>
+</row>
+</lyxtabular>
-Código Fuente
-\layout Standard
+\end_inset
-Copy Paste cuando este cerrado.
-\layout Section
-Archivos
-\layout Subsection
+\end_inset
-Archivos del Enunciado
-\layout Standard
-[ Por cada uno se debe poner nombre y detallar su estructura interna ]
\layout Subsection
Archivos Auxiliares
\layout Subsubsection
+
+\family typewriter
afimonio.conf
\layout Standard
-El archivo de configuración $~/.antifraude/conf/afimonio.conf almacena las
- rutas a los directorios necesarios para la ejecución del script
+El archivo de configuración
+\family typewriter
+~/.antifraude/conf/afimonio.conf
+\family default
+ almacena las rutas a los directorios necesarios para la ejecución del script
+
\family typewriter
afimonio
\family default
\layout Subsubsection
+
+\family typewriter
antifraude.conf
\layout Standard
-El archivo de configuración $~/.antifraude/conf/antifraude.conf almacena las
- rutas a los directorios necesarios para la ejecución del script
+El archivo de configuración
+\family typewriter
+~/.antifraude/conf/antifraude.conf
+\family default
+ almacena las rutas a los directorios necesarios para la ejecución del script
+
\family typewriter
antifraude.pl
\family default
\layout Subsubsection
+
+\family typewriter
aficonf.conf
\layout Standard
-El archivo de configuración $~/.antifraude/conf/aficonf.conf almacena las
- rutas a los directorios necesarios para la ejecución del script
+El archivo de configuración
+\family typewriter
+~/.antifraude/conf/aficonf.conf
+\family default
+ almacena las rutas a los directorios necesarios para la ejecución del script
+
\family typewriter
aficonf
\family default
Estos archivos fueron creados para que los diferentes scripts tengan un
lugar común donde buscar esa información para salvar el problema comentado
- en el punto 1.2.
+ en el punto
+\begin_inset LatexCommand \vref{sec:Problemas-relevantes}
+
+\end_inset
+
+.
\layout Subsection
Set de Prueba (testcalls.tar.gz)
\family typewriter
testcalls.tar.gz
\family default
-, situado en el directorio /INST, del paquete de instalación.
+, situado en el directorio
+\family typewriter
+/inst
+\family default
+, del paquete de instalación.
El set de prueba se copia automáticamente en el momento en que se instale
el componente
+\family typewriter
\series bold
-ANTIFRAUDE
+antifraude
+\family default
\series default
, dejando el escenario listo para procesarlos en el momento en que sea arrancado
el
+\family typewriter
\series bold
-AFIMONIO
+afimonio
+\family default
+
\series default
o bien ejecutando el
+\family typewriter
\series bold
-ANTIFRAUDE
+antifraude
+\family default
\series default
en forma manual.
\layout Standard
\layout Itemize
14 archivos de llamadas generados con el
+\family typewriter
\series bold
-CALLGEN
+callgen
+\family default
\series default
, con entre 1000 y 5000 registros cada uno, y fecha en el rango año 1999
- - 2004.
+ a 2004.
\layout Itemize
-1 archivo de llamadas con registros validos y otros no validos.
+1 archivo de llamadas con registros válidos y otros no válidos.
\layout Itemize
1 archivo con nombre válido según el formato YYYYMMDDhhmm.nnnn, pero con
- texto dentro suyo, el cual es rechazado por Antifraude.
+ contenido inválido, el cual es rechazado por
+\family typewriter
+\series bold
+antifraude
+\family default
+\series default
+.
\layout Itemize
-1 archivo con nombre nó válido rechazado en instancia previa por el Afimonio.
+1 archivo con nombre no válido rechazado en instancia previa por
+\family typewriter
+\series bold
+afimonio
+\family default
+\series default
+.
\layout Standard
Se describen en la siguiente tabla, los archivos y registros que disparan
alarmas o tienen close matches contra los 25 umbrales distribuidos en el
- paquete de instalacion, via el umbrales.param:
+ paquete de instalación, vía el umbrales.param:
\layout Standard
\begin_inset Float table
wide false
-collapsed true
+collapsed false
\layout Caption
\series bold
-Linea Nro
+Nro.
+ Línea
\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\series bold
-Matched Umbral
+Umbral
\end_inset
</cell>
</row>
\layout Standard
-idem
+ídem
\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\layout Standard
-idem
+ídem
\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\layout Standard
-idem
+ídem
\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\layout Standard
-idem
+ídem
\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\layout Standard
-idem
+ídem
\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\layout Standard
-idem
+ídem
\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\layout Standard
-idem
+ídem
\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\layout Standard
-idem
+ídem
\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\layout Standard
-idem
+ídem
\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\layout Standard
-idem
+ídem
\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\layout Paragraph
-Archivo 199908220733.4515
+Archivo
+\family typewriter
+199908220733.4515
\layout Paragraph
\series medium
-Posee registros no validos detallados a continuacion.
- Los registros se contabilizan de 0 a N (Linea 1 = Reg 0)
+Posee registros no válidos detallados a continuación.
+ Los registros se contabilizan de 0 a N (Línea 1 = Reg 0)
\layout Itemize
\series bold
Registro 3
\series default
- -> Posee un 9no campo 'Bogus'
+ -> Posee un 9no campo
+\emph on
+bogus
\layout Itemize
\series bold
Registro 27
\series default
- -> Posee un 9no campo 'Bogus'
+ -> Posee un 9no campo
+\emph on
+bogus
\layout Itemize
\series bold
Registro 31
\series default
- -> Posee un tipo de llamada 'W' no valida
+ -> Posee un tipo de llamada
+\family typewriter
+W
+\family default
+ no valida
\layout Itemize
\series bold
Registro 41
\series default
- -> El numero de linea (campo1) no es numerico, es un string 'ABCD'
+ -> El número de línea (campo1) no es numérico, es un string
+\family typewriter
+'ABCD'
\layout Itemize
\series bold
Registro 52
\series default
- -> Tiene insuficiente cantidad de campos (siete)
+ -> Tiene cantidad de campos insuficiente (siete)
\layout Standard
-Estos registros emitirán errores plasmados en el antifraude.log.
- Para verificar esto, realizar un search en el logfile, sobre el nombre
- del archivo, y ubicarse en el sector donde se indica el comienzo del procesamie
-nto del mismo con ¨
+Estos registros emitirán errores plasmados en el
+\family typewriter
+antifraude.log
+\family default
+.
+ Para verificar esto, realizar una búsqueda en el log, sobre el nombre del
+ archivo, y ubicarse en el sector donde se indica el comienzo del procesamiento
+ del mismo con ¨
\family typewriter
Inicio proceso de: 199908220733.4515
\family default
¨.
\layout Paragraph
-Archivo 200412010000.6666
+Archivo
+\family typewriter
+200412010000.6666
\layout Paragraph
lineas son descartadas por antifraude y dicho error emitido en el antifraude.log
\layout Paragraph
-Archivo 200223.1234
+Archivo
+\family typewriter
+200223.1234
\layout Paragraph
\series medium
El nombre del archivo no es conforme al formato de nombre estipulado en
- el TP y el mismo es rechazado de antemano por Afimonio.
+ el TP y el mismo es rechazado de antemano por
+\family typewriter
+\series default
+afimonio
+\family default
+\series medium
+.
\layout Section
Apéndice A
-\layout Standard
+\layout Comment
-(Esto deberia ser una hoja aparte que solo diga 1.6 Apéndice A) y las hojas
+Esto deberia ser una hoja aparte que solo diga 1.6 Apéndice A) y las hojas
posteriores son las páginas 3 en adelante del PDF oficial de la catedra,
sacando la parte de archivos.
- 3-15 más precisamente es lo que iria).
+ 3-15 más precisamente es lo que iria.
\the_end