Documentacion de administador VIVAit Alert 1.0

De VIVAitwiki
Revisión del 13:36 4 nov 2019 de Gracia.moreno (discusión | contribuciones) (→‎MDalertas_WEB.conf)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Ir a la navegaciónIr a la búsqueda

1 INTRODUCCIÓN

El módulo de Alertas del sistema VIVAit Call constituye la solución que mdtel ha desarrollado para los sistemas de emergencias.

mdtel ha realizado un desarrollo en un entorno web sencillo, al que se accede mediante usuario y password.

En este entorno web se reflejan las situaciones de todas las llamadas recibidas en el sistema de alertas, asímismo, el entorno permite agrupar los datos del servicio en gráficos y/o tablas.

En el mismo entorno web se pueden configurar parámetros del sistema de alertas.

2 FUNCIONAMIENTO GLOBAL

El funcionamiento del sistema es el siguiente:

  • El sistema se puede configurar para que solo algunos dispositivos puedan realizar llamadas de alerta  Si el dispositivo que intenta acceder al sistema no está autorizado será reencaminado hacía destinos predeterminados.
  • El sistema se activa con la recepción de una llamada de alerta desde algún dispositivo, el usuario puede grabar un mensaje que será reproducido a los destinatarios.
  • Se puede configurar un código de activación del sistema; se solicita un código al usuario que llama al teléfono de alertas.
  • Cuando se recibe una llamada, el sistema la pasa a una IVR que invita al usuario a dejar un mensaje.
  • Una vez grabado el mensaje el sistema lanza una batería de llamadas salientes simultáneas, configurables desde el portal Web, a hasta dos grupos distintos, Grupo 1 y Grupo 2. Como destinos de estos grupos se puede configurar cualquier número (extensión IP, números internos o externos, móvil corporativo, …).
  • Si alguno de los destinos del Grupo 1, con capacidad para confirmar la llamada, descuelga, escucha el mensaje y confirma la llamada, ésta aparece en el portal Web como llamada confirmada y el sistema no lanza las llamadas programadas en el Grupo 2.
  • Si ningún destino del Grupo 1 confirma la llamada, el sistema lanza un segundo grupo de llamadas, también configurable en el portal Web. En este segundo grupo de llamadas pueden existir destinos configurados de forma que puedan confirmar, si alguno de ellos confirma dicha llamada en el portal se reflejará una llamada Confirmada en Secundario. Si ninguno de los destinos del Grupo 2 confirma la llamada ésta aparece en el portal como No Completada y sombreada en rojo.
  • El sistema no permite que todos los destinos están configurados como Grupo 2.
  • Si es posible a todos los destinos que reciben la llamada de alarma se les muestra el número de teléfono que originó la llamada de alarma.
  • El mensaje grabado se puede escuchar en cada destino y, además, se puede reproducir desde el portal Web.
  • El portal Web indica en qué destinos se confirma la llamada, en qué destinos se descuelga la llamada, pero no se confirma, y en qué destinos ni se descuelga ni se confirma la llamada.
  • Los estados en los que pueden estar las llamadas son los siguientes:
    • Confirmada.
    • No completada.
    • Abortada.
    • Confirmada en Secundario.
    • En Curso.
    • No autorizada.
Cuando ningún destino (del Grupo 1 o del Grupo 2) confirma la llamada ésta aparece en el portal como No completada y aparece sombreada en color rojo.
Si una llamada es confirmada por un destino del Grupo 1 aparece en el portal como Completada y está sombreada en color verde.
Si un usuario ha llamado a la extensión de alertas y ha colgado durante la locución la llamada aparece en el portal como Abortada y está sombreada en color rojo.
Si una llamada es confirmada por un destino del Grupo 2 aparece en el portal como Confirmada en Secundario y está sombreada en color naranja.
Si entra en el sistema una llamada ésta aparece inmediatamente en el portal, en estado En Curso y sombreada en azul, hasta que la llamada finalice y se actualice su estado indicando entonces su estado definitivo.
Cuando un origen no autorizado realiza una llamada al sistema de alertas una locución le indica que el origen de la llamada no está autorizado y que la llamada se va a transferir, el portal, en ese caso, refleja la llamada como no autorizada.
  • Cuando se despliega la información de una llamada en el portal Web aparece el tiempo que cada uno de los destinos ha tardado en contestar y/o confirmar la llamada. Si los destinos no han atendido la llamada el tiempo es 0.
  • El sistema permite configurar un servicio del tipo Salas de Conferencia.

3 DIAGRAMA DE BLOQUES DE LA SOLUCIÓN

3.1 Sistema sin Orígenes Autorizados

Sistema sin origenes autorizados.jpg

3.2 Sistema con Orígenes Autorizados

Sistemas con origenes autorizados.jpg

3.3 Salas de Conferencia

Salas de conferencia.jpg

3.4 Diagramas de funcionamiento de la confirmación de llamadas

Confirmacion de llamadas DIAGRAMA DE BLOQUES.jpg


Confirmacion de llamadas TABLA DE TIEMPOS.jpg


En función de la duración del tiempo de confirmación que de ha configurado en el sistema pueden producirse dos casos:

3.4.1 Tiempo de confirmación largo

Confirmacion de llamadas TIEMPO DE CONFIRMACION LARGO.jpg

3.4.2 Tiempo de confirmación corto

Confirmacion de llamadas TIEMPO DE CONFIRMACION CORTO.jpg

4 ARQUITECTURA

El desarrollo de la solución se basa en la siguiente arquitectura:

Arquitectura Paradas cardiacas.jpg

Los elementos principales del módulo de Alertas son:

  • IVR desplegada sobre el elemento de conmutación de voz asterisk de VIVAit Call; existirá una IVR por servicio; esta IVR tendrá flujos condicionados por elementos de configuración.
  • Base de datos en la que reside toda la configuración susceptible de ser modificada en la IVR y en la que se insertan las estadísticas de las llamadas recibidas y emitidas; se amplia la base de datos de la plataforma VIVAit Call con nuevas tablas para el módulo de Alertas.
  • Portal de configuración y obtención de estadísticas del módulo de Alertas; es un portal diferente del de administración de la plataforma VIVAit Call o el de usuario de telefonía de VIVAit Call; se monta sobre servidor Apache Tomcat.
  • Módulo de alertas para Asterisk.


El desarrollo de la solución utiliza los siguientes lenguajes:

  • JAVA para el backend, conexión con base de datos.
  • JavaScript para el portal, con Bootstrap como capa de JavaScript.
  • C para el módulo de alertas.


El funcionamiento interno del sistema es el siguiente:

Se generan dos nuevos tipos de segmentos:

  • 800 para la llamada que inicia la alerta
  • 810 para los bloques de llamadas que se emiten.

Funcionamiento.jpg

Se produce una llamada que se gestiona en el sistema a través de un VDN y deja un mensaje grabado. Esta llamada se reenvía a una batería de usuarios (Primer bloque de llamadas o destinos primarios) entre los que hay usuarios que pueden confirmar la llamada y usuarios que no pueden. Si algún usuario de ese primer bloque confirma la llamada ésta queda registrada en el sistema, si ningún usuario del primer bloque la confirma se emite una segunda batería de llamadas, entre las que vuelve a haber usuarios con capacidad para confirmar la llamada y usuarios que no pueden confirmarla. Si la llamada no es confirmada por ningún usuario aparece en el sistema de supervisión como no confirmada, queda marcada en color rojo en el portal Web. El tiempo que pasa desde que se genera la llamada de emergencia hasta que se confirma ésta se ha diseñado aplicando criterios de eficiencia, de forma que el segundo bloque de llamadas se genera cuando el último usuario con capacidad para confirmar una llamada del primer bloque de llamadas, no lo ha hecho.

Entre las casuísticas que se contemplan en la salida de los bloques de llamadas se encuentran los siguientes tipos:

  • Problemas internos: Por ejemplo, congestión o problemas con la red telefónica.
  • Problemas achacables al usuario: Por ejemplo, no contesta o salta el contestador.
  • Llamada confirmada: Se confirma la llamada pulsando un 1 (puede configurarse en el campo Código Confirmación Saliente del Servicio que la llamada se confirme con un código distinto).

4.1 Elementos del sistema

El sistema está formado por:

1. Un Asterisk que contiene:

  • Una aplicación específica, APP_MDALERTAS, que cuenta con dos ficheros de configuración, MDalertas.conf y MDalertas_WEB.conf, situados en etc\asterisk\.
  • Un Dialplan.
Cada uno de los servicios a los que se puede llamar ha de tener un VDN distinto.
El fichero de configuración se lee en cada una de las llamadas generadas → no existe reload.

2. Un GeneraConf, que permite sincronizar los cambios del portal de alertas y crear los ficheros de configuración → Es importante aclarar que si un administrador modifica la configuración del sistema directamente en uno de los ficheros de configuración existentes esta configuración no quedará reflejada en el portal web; sin embargo, si se aplicará al sistema de Alertas ya que Asterisk lee directamente estos ficheros.

3. Un portal Web para la gestión del servicio.

El portal de gestión permite controlar:
  • el servicio.
  • los destinos.
  • las entidades.
  • los orígenes autorizados.

4. Un sistema de supervisión activo, no relacionado con la plataforma del sistema.

Adicionalmente para configurar el Sistema de Alertas se han de configurar dispositivos de salida, VDN’s y grupos de grabaciones. Para configurar estos elementos utilizaremos el portal de administración de VIVAit Call.

Es necesario que las locuciones estén configuradas en el grupo de locución “Alertas”, y que sean del tipo sounds:

Locuciones portal.jpg

Todas las opciones relacionadas con las locuciones se encuentran en el menú VIVAit Response:

Menu LOCUCIONES.jpg

Para poder configurar el sistema de alertas con servicios de alertas y con Salas de conferencia son necesarias, al menos, 9 locuciones:

LOCUCIONES MINIMAS.jpg

Los nombres de las locuciones, su situación en el sistema, y su contenido aparecen en la siguiente tabla:

Nombre Variable Ubicación y nombre del fichero Texto a locutar
locucion_comunicacion /var/lib/asterisk/sounds/Alertas/ALE_emer_notif.wav Sistema de alertas
locucion_confirmacion /var/lib/asterisk/sounds/Alertas/ALE_emer_confir.wav Sistema de alertas confirme con la tecla 1
locucion_informacion /var/lib/asterisk/sounds/Alertas/ALE_emer_dejar.wav Sistema de alertas grabe su mensaje
Alerta_confirmada /var/lib/asterisk/sounds/Alertas/ALE_emer_confirOK.wav Alerta confirmada
locucion_secundario /var/lib/asterisk/sounds/Alertas/Destino Secundario.wav Destino secundario
locucion_comunicacion_Salas /var/lib/asterisk/sounds/Alertas/Sala_Comunicacion.wav Ha sido convocado a una conferencia del sistema de alertas
locucion_Sala_informacion /var/lib/asterisk/sounds/Alertas/Sala_Informacion.wav Indique el motivo de la conferencia
locucion_timeout /var/lib/asterisk/sounds/Alertas/ALE_emer_timeout.wav Tiempo de confirmación vencido
Origen_No_Autorizado /var/lib/asterisk/sounds/Alertas/LlamadaNoAutorizada.wav Origen no autorizado, transferimos la llamada.

Adicionalmente se incluyen siguientes locuciones:

  • Introduzca el código de autorización -> CodigoEntrada.wav
  • confirme con la tecla cero -> ALE_emer_confir_0.wav
  • confirme con la tecla dos-> ALE_emer_confir_2.wav
  • confirme con la tecla tres-> ALE_emer_confir_3.wav
  • confirme con la tecla cuatro-> ALE_emer_confir_4.wav
  • confirme con la tecla cinco-> ALE_emer_confir_5.wav
  • confirme con la tecla seis-> ALE_emer_confir_6.wav
  • confirme con la tecla siete-> ALE_emer_confir_7.wav
  • confirme con la tecla ocho-> ALE_emer_confir_8.wav
  • confirme con la tecla nueve-> ALE_emer_confir_9.wav
  • Teclee el código para confirmar-> ALE_emer_confir.wav


Todas ellas están relacionadas con la personalización del sistema y permiten configurar:

1. Un código de entrada al sistema que tiene que conocer la persona que llama.

2. Un código de confirmación de la llamada, por parte del destino configurado para confirmar, distinto del 1, código que por defecto pide el sistema.


Los nodos que forman parte del sistema estarán configurados en el portal de administración de VIVAit Call, será imprescindible que estén identificados como nodos de alerta → campo “Es Alertas” = SI:

NODO ALERTAS.jpg

Esta configuración garantiza la supervivencia del sistema VIVAit Alertas cuando uno de los nodos no está disponible.


Es importante tener en cuenta que cuando los “Servicios” tienen destinos pertenecientes al mismo nodo y éste no está disponible, el sistema de supervivencia solo funcionará si los destinos están asociados a terminales con doble registro (en nodos distintos) o cuando el propio sistema telefónico está configurado para garantizar las llamadas ente nodos aún cuando uno de ellos no esté disponible.


Podríamos considerar una buena política de configuración que los destinos de un “Servicio” estuviesen configurados en nodos distintos.

4.2 Pruebas del sistema

Además, se ha preparado un sistema de pruebas, ALER, capaz de simular cualquier tipo de llamada que pueda generarse en el sistema.

SISTEMA DE PRUEBAS.jpg

El sistema de pruebas ALER no genera segmentos durante las pruebas.

4.3 Ficheros de configuración

4.3.1 MDalertas.conf

[global]
id_dispositivo_llam_sal=1
contexto_lado_fuera=Cen_InicioLlamada_Emer_Salida
contexto_lado_dentro=Cen_InicioLlamada_Emer_IVR
grabacion_msj_prefijo=/var/spool/MDtel/Alertas/Real/
locucion_comunicacion=/var/lib/asterisk/sounds/Alertas/ALE_emer_notif
locucion_confirmacion=/var/lib/asterisk/sounds/Alertas/ALE_emer_confir
locucion_informacion=/var/lib/asterisk/sounds/Alertas/ALE_emer_dejar
locucion_secundario=/var/lib/asterisk/sounds/WEB/Alertas/locicion_secundario
cad_copia_wav1=172.25.128.92:/var/spool/MDtel/Alertas/Real
cad_copia_wav2=-
tiempo_descolgado=30
tiempo_confirmacion=30
tiempo_grabacion=60

#include “MDalertas_WEB.conf”

En este fichero se configuran, entre otras cosas, las locuciones que reproduce el sistema de alertas, y los tiempos máximos para descolgar y confirmar las llamadas.

4.3.2 MDalertas_WEB.conf

Este fichero tiene una parte global en la que se configuran los siguientes parámetros:

Campo Descripción
[9000_vdn]
vdn=9000
id_entidad=1
id_servicio=1
Id_dispositivo_llam_sal Identifica el dispositivo de llamada desde el que se realiza el conjunto de llamadas.
tipo_servicio=10 Define como se comporta el sistema desde un punto de vista operativo. Si el valor es 10 el servicio es del tipo Emergencia, si el valor es 20 el servicio es una Sala de Conferencia.
sin_segmentos=no Indica si se generan o no segmentos:

Yes → no se generan segmentos, por ejemplo, para llamadas de prueba.

No → se generan segmentos

locucion_comunicacion=/var/lib/asterisk/sounds/Alertas/ALE_emer_notif Locución que se reproduce cuando un usuario llama al servicio de emergencias.
locucion_confirmacion=/var/lib/asterisk/sounds/Alertas/ALE_emer_confir Locución que se reproduce en los teléfonos que reciben las llamadas de emergencias cuando alguien ha dejado un mensaje y se activa el sistema, antes de confirmar la llamada.
locucion_informacion=/var/lib/asterisk/sounds/Alertas/ALE_emer_dejar Locución que recibe la persona que llama al sistema de alertas
locucion_secundario=/var/lib/asterisk/sounds/WEB/Alertas/locicion_secundario Locución que recibe un destino secundario
tiempo_descolgado=20 Tiempo durante el que suena la llamada esperando que el usuario descuelgue el teléfono.
tiempo_confirmacion=60 Tiempo desde que el usuario descuelga hasta que está disponible la posibilidad de confirmación.
tiempo_grabacion=60
eje1=01 Sirve para grabar en los segmentos (graba la cadena)
autorizada=no Este campo controla la posibilidad de autorizar solo a algunos orígenes para que hagan llamadas al sistema de ALERTAS
dest_no_autorizada=0xxxxxxxxx Teléfono al que se enviarán las llamadas al sistema de ALERTAS cuando el número que llama al sistema no está autorizado.

Además, el fichero tiene una parte para configurar los destinos primarios y secundarios:

Campo Descripción
[9000_dest_0000]
secundario=no Indica si el destino es primario o secundario:

NO → Primario

YES → Secundario

destino=4900
origen_nombre=orig_5
origen_num=1005 Sirve para identificar el número de EMERGENCIAS, si no lo identificamos el sistema utilizará el nº de teléfono que origina la EMERGENCIA.
confirmar=yes Indica si el destino puede confirmar la EMERGENCIA:

YES → Si puede confirmar

NO → No puede confirmar

funcion=1005 Hace referencia a la tabla de funciones.
id_destino=15 ID del usuario que va recibir la llamada de EMERGENCIA.
[9000_dest_0001]
secundario=yes Indica si el destino es primario o secundario:

NO → Primario

YES → Secundario

destino=4900
origen_nombre=orig_6
origen_num=1006 Sirve para identificar el número de EMERGENCIAS, si no lo identificamos el sistema utilizará el nº de teléfono que origina la EMERGENCIA.
confirmar=no Indica si el destino puede confirmar la EMERGENCIA:

YES → Si puede confirmar

NO → No puede confirmar

funcion=1006 Hace referencia a la tabla de funciones.
id_destino=16 ID del usuario que va recibir la llamada de EMERGENCIA.


A continuación, podemos ver las líneas de un fichero MDalertas_WEB.conf que corresponde con la configuración de una Sala de Conferencia (servicio tipo 20). Además, la Sala tiene configurados orígenes autorizados y códigos de confirmación para el usuario que llama al sistema.

[9007_vdn]
vdn=9007
id_entidad=48
id_servicio=28
id_dispositivo_llam_sal=1
tipo_servicio=20
sin_segmentos=no
locucion_comunicacion=/var/lib/asterisk/sounds/WEB/Alertas/locucion_comunicacion_Salas
locucion_confirmacion=/var/lib/asterisk/sounds/WEB/Alertas/locucion_comunicacion
locucion_informacion=/var/lib/asterisk/sounds/WEB/Alertas/locucion_Sala_informacion
locucion_secundario=/var/lib/asterisk/sounds/WEB/Alertas/locucion_comunicacion
tiempo_descolgado=
tiempo_confirmacion=
tiempo_grabacion=
eje1=01020202
autorizada=yes
dest_no_autorizada=06133
codigo_confir_entra=321
codigo_confir_sale=

[9007_dest_0000]
secundario=no
destino=06133
origen_nombre=
origen_num=
confirmar=no
funcion=
id_destino=38

[9007_dest_0001]
secundario=no
destino=4002
origen_nombre=
origen_num=
confirmar=no
funcion=10
id_destino=40


[9007_autorizados]
4002=yes
06140=yes
6133=yes

Se ha creado una variable, alert_des_ultrecurso, en ex_Mdtel_particular.conf que permite encaminar las llamadas al sistema de alertas hacía un destino definido, cuando todos los elementos del sistema fallan y no es posible finalizar las llamadas del modo habitual.

4.4 Estructura de la Base de Datos

El sistema de Alertas tiene las siguientes tablas:

Tablas BASE DE DATOS.jpg


Excepto la tabla ALE_SEGMENTOS, todas se configuran a travé del portal web.

La estructura de la Base de Datos es la siguiente:

Esquema de ALERTAS.jpg

5 MONITORIZACIÓN DEL SISTEMA

5.1 DAT_ESTADOS_SERVICIOS

Se ha preparado una tabla para monitorizar el estado de los servicios del sistema de alertas:

DAT_ESTADOS_SERVICIOS

CREATE TABLE IF NOT EXISTS `nimitz`.`DAT_ESTADOS_SERVICIOS` (
  `ID_APLICACION` INT NOT NULL,
  `E_TIPO_SERVICIO` INT NOT NULL COMMENT 'TTipoServicio',
  `N_INSTANCIA` INT NOT NULL,
  `E_ESTADO_SERVICIO` INT NULL DEFAULT 0 COMMENT 'TEstadoServicio',
  `N_VALOR` INT NULL,
  `D_FECHA_ACTUALIZACION` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`ID_APLICACION`, `E_TIPO_SERVICIO`, `N_INSTANCIA`))
ENGINE = InnoDB

Esta tabla tendrá un registro por cada servicio a monitorizar.

Los campos de la tabla son los siguientes:

ID_APLICACION

El id que corresponda de la tabla COM_APLICACIONES, aunque es una tabla existe un enumerado que es un reflejo de la tabla (TAplicacion).

    //Sincronizada con la tabla COM_APLICACIONES
    //Id: 400-499
    TAplicacion = (
        aplicacion_Comun=1,
        aplicacion_Centralita=2,
        aplicacion_ACD=3,
        aplicacion_Mensajeria=4,
        aplicacion_Grabacion=5,
        aplicacion_SMS=6,
        aplicacion_Fax=7,
        aplicacion_Meet=8,
        aplicacion_Alertas=9
    );

E_TIPO_SERVICIO

El tipo de servicio, los valores se corresponden con el enumerado (TTipoServicio):

    // Tipo de servicios (tabla DAT_ESTADOS_SERVICIOS)
    // Id: 9300-9399
    //
    TTipoServicio=(
        tipoServicio_alertas = 10
    );  //9300

N_INSTANCIA

Por si hubiera mas de una instancia del servicio, por defecto 0.

E_ESTADO_SERVICIO

Estado del servicio, los valores se corresponden con el enumerado (TEstadoServicio):

    // Estado del servicio (tabla DAT_ESTADOS_SERVICIOS)
    // Id: 9400-9399
    //
    TEstadoServicio=(
        estadoServicio_desconocido = 0,
        estadoServicio_ok = 10,
        estadoServicio_alarma = 100
    );  //9400

N_VALOR

Un valor numérico por si queremos reflejar algún valor.

D_FECHA_ACTUALIZACION

Esta fecha se actualiza automáticamente si se inserta o se modifica el registro de la tabla.

5.2 Procedimiento almacenado

Se ha creado un procedimiento almacenado para insertar/modificar los registros:

ACD_PROC_ESTADO_SERVICIO

Este procedimiento tiene como parámetros:

ID_APLICACION

E_TIPO_SERVICIO

E_ESTADO_SERVICIO

N_VALOR

5.3 Zabbix

Para monitorizar el sistema se utiliza Zabbix.

Se crea el fichero UserParameter con el contenido:

UserParameter=asterisk.mdalertas[*],sudo /usr/sbin/asterisk -rx 'aler show' | grep -o '$1\=[0-9]*' | cut -f 2 -d "="

Se crean los ítems como en la imagen adjunta, poniendo entre los corchetes la variable a monitorizar:

En el servidor zabbix de la maquina hay una gráfica para el nodo ParCar donde se pueden visualizar dichas variables.

Zabbix.png

La monitorización de app_mdalertas se hará ejecutando, desde agente zabbix, el siguiente comando cada 30 minutos, en explotación; y 5 minutos en pruebas:

root@ParCar:/usr/src/MDtel/asterisk# asterisk -rx 'aler show' 
aler debug=0 errores=0 caducados=0 alertas_en_curso=0 aler_mem=0

La interpretación de la respuesta es:

  • Si la respuesta no comienza con "aler", es que el módulo no está correctamente cargado.
  • El valor de "debug" [0|1] indica si está activa la depuración. Puede ignorarse.
  • El valor de "errores" es un contador de éstos. Debe ser cero o debe analizarse el log de Asterisk para buscar la fuente del problema que seguro existe.
  • El valor de "caducados". también es un contador, indica situaciones de emergencia con antigüedad superior a una hora. Lo más probable es que se trate de algún tipo de fuga de memoria, por lo que debemos buscar la llamada y analizarla para depurar un problema.
  • El valor de "alertas_en_curso" es un contador que indica cuántas alertas hay en curso. Puede ignorarse, excepto por el caso de que sea cero y el contador siguiente ("aler_mem" ) tenga un valor superior a cero. Si es así, hay un problema que debe diagnosticarse.
  • El valor "aler_mem" puede ignorarse, excepto en lo indicado en el punto anterior.

Una vez conocido el problema, pueden reiniciarse los contadores con el comando Asterisk:

"module reload app_mdalertas.so" 

¡Cuidado! este comando (de muy rápida ejecución) sólo debe ejecutarse sin alertas en curso.

Se crea el fichero /etc/zabbix/zabbix_agentd.conf.d/UserParameter_MDalertas.conf con el contenido:

UserParameter=asterisk.mdalertas[*],sudo /usr/sbin/asterisk -rx 'aler show' | grep -o '$1\=[0-9]*' | cut -f 2 -d "="

Se modifica el template Vivait-Call Asterisk.xml donde se crean los items.

Para generar llamadas automáticas para monitorizar el servicio de alertas crearemos el script /usr/local/sbin/generarLlamada_Alertas.sh y su correspiondiente cron.d generarLlamada_Alerta


#!/bin/sh

asterisk -rx "originate local/9899@Cen_InicioLlamada_Emer_Test_ENTRAFUE extension 899@Cen_InicioLlamada_Emer_Test_ENTRADEN"
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
30  0    * * *   root    generarLlamada_Alertas.sh

Donde el 9899 será un VDN corporativo en la maquina donde esté el módulo de alertas y los contextos Cen_InicioLlamada_Emer_Test_ENTRAFUE y Cen_InicioLlamada_Emer_Test_ENTRADEN estarán creados en el fichero ext_InicioLlamada_Emer_Particular.conf

[Cen_VDN_9899]

;----------------------------------------------------------------------------------------------------------------
;----------------------- VDN 9899 ----------------------------------
;----------------------------------------------------------------------------------------------------------------
exten => _X.,1,NoOp(MDVDN_9899*****EXTEN=${EXTEN}**CID=${CALLERID(NUM)}**UCID=${UCID}*)

 same  =>     n,Answer

 same  =>     n,Goto(Cen_VDN_Alertas,9999,1)

 same  =>     n,HangUp(16)

include => Cen_finLlamada


Esto llamará al vdn de alertas 9999, que estará creado por defecto en el fichero MDalertas.conf de la siguiente forma:


[9999_vdn]
vdn=9999
id_entidad=0
id_servicio=0
tipo_servicio=10
sin_segmentos=yes
grabacion_msj_prefijo=/var/spool/MDtel/Alertas/Pruebas/
locucion_comunicacion=/var/lib/asterisk/sounds/Alertas/ALE_emer_notif
locucion_confirmacion=/var/lib/asterisk/sounds/Alertas/ALE_emer_confir
locucion_informacion=/var/lib/asterisk/sounds/Alertas/ALE_emer_dejar
locucion_secundario=/var/lib/asterisk/sounds/WEB/Alertas/locicion_secundario
cad_copia_wav1=-
cad_copia_wav2=-
tiempo_descolgado=5
tiempo_confirmacion=10
tiempo_grabacion=60
eje1=01
autorizada=no

[9999_dest_0000]
secundario=no
destino=9898
origen_nombre=pruebas_1
origen_num=1000
confirmar=yes
funcion=0
id_destino=0


El destino 9898 será un VDN corporativo y estará en la maquina donde se ejecute el script de la llamada automática generarLlamada_Alertas.sh


[Cen_VDN_9898]

;----------------------------------------------------------------------------------------------------------------
;----------------------- VDN 90000 ----------------------------------
;----------------------------------------------------------------------------------------------------------------
exten => _X.,1,NoOp(MDVDN_9898*****EXTEN=${EXTEN}**CID=${CALLERID(NUM)}**UCID=${UCID}*)

 same  =>    n,Answer
 same =>     n,AMD(670,1500,800,5000,100,50,20,256,5000)
 ;same =>     n,AMD()
 same =>     n,NoOp(MDMCAMDST*AMDSTATUS=${AMDSTATUS}*AMDCAUSA=${AMDCAUSE}*)
 same =>     n,Goto(${AMDSTATUS})
 same =>     n(NOTSURE),Goto(fin)
 same =>     n(HUMAN),System(/usr/local/bin/zabbix_sender -z 127.0.0.1 -s Homologacion-Corp1 -k "mdalertatest" -o 1)
 same =>     n,MDintz(nimitz|bd|sqlSinEspera|call ACD_PROC_ESTADO_SERVICIO(9,10,0,10,0))
 same =>     n,Goto(fin)
 same =>     n(MACHINE),System(/usr/local/bin/zabbix_sender -z 127.0.0.1 -s Homologacion-Corp1 -k "mdalertatest" -o 0)
 same =>     n,MDintz(nimitz|bd|sqlSinEspera|call ACD_PROC_ESTADO_SERVICIO(9,10,0,100,0))
 same =>     n,Goto(fin)
 same =>     n(HANGUP),Goto(fin)

 same =>     n(fin),Hangup()

include => Cen_finLlamada


Donde pone zabbix_sender hay que poner la IP y nombre del servidor de zabbix.

Esto solo monitoriza el camino de la llamada entre dos maquinas internas, hay que hablar con el operador para que nos proporcione DDIs para probar los primarios, los trunksips, etc...

5.4 Log's

Los log’s están en: var/log/asterisk/full

Hay que filtrar las llamadas por el origen, destino, VDN de emergencia, …

A partir de este filtro se obtendrá el ucid, éste es único por lo que facilitará seguir el hilo de una llamada. También se pueden buscar los destinos, nos ayudará a encontrar las llamadas que buscamos.