<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://vivait-wiki.mdnova.local/wiki/vivait/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Imatarrubias</id>
	<title>VIVAitwiki - Contribuciones del usuario [es]</title>
	<link rel="self" type="application/atom+xml" href="https://vivait-wiki.mdnova.local/wiki/vivait/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Imatarrubias"/>
	<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php/Especial:Contribuciones/Imatarrubias"/>
	<updated>2026-04-30T06:31:47Z</updated>
	<subtitle>Contribuciones del usuario</subtitle>
	<generator>MediaWiki 1.33.0</generator>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Portal_de_administraci%C3%B3n_VIVAit&amp;diff=7183</id>
		<title>Portal de administración VIVAit</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Portal_de_administraci%C3%B3n_VIVAit&amp;diff=7183"/>
		<updated>2018-12-18T10:21:30Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* Destinos externos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!! '''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it  Suite&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
 [[Medio:Manual Portal_VIVAit_11_2015.pdf|Portal de administración '''''VIVA'''''it ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
El '''''portal de administración de la plataforma ''VIVA''it ''''' proporciona a administradores un interfaz gráfico basado en web, para la gestión y configuración de los productos '''''VIVA'''''it Call y '''''VIVA'''''it  Suite.&lt;br /&gt;
El portal está dividido en  cinco secciones:&lt;br /&gt;
* '''General''': Este apartado permite la gestión y configuración general de la plataforma.&lt;br /&gt;
* '''''VIVA''it Call''': combina las funciones típicas de las centralitas tradicionales para entornos corporativos con el mundo IP y las aplicaciones. Se gestionan todos los cambios y las configuraciones orientados a la telefonía corporativa (rutas, aprovisionamiento, facilidades, dispositivos...).&lt;br /&gt;
* '''''VIVA''it  Response''': pestaña orientada a la configuración de las locuciones y música en espera.&lt;br /&gt;
* '''''VIVA''it  Suite ACD+''': gestiona la solución para Contact Center. En este apartado se administran todos los parámetros de configuración (colas, VDNs, monitores, campañas...) del producto '''''VIVA'''''it  Suite.&lt;br /&gt;
* '''''VIVA''it Record''': En este apartado gestionaremos los servicios de grabación de la plataforma, típicamente asociados a producto '''''VIVA'''''it  Suite.&lt;br /&gt;
&lt;br /&gt;
Para acceder al '''''portal de administración de la plataforma ''VIVA''it''''' se hace a través de un navegador con un enlace de la siguiente forma: &lt;br /&gt;
&lt;br /&gt;
http://servidor:8180/Vivait-Call/&lt;br /&gt;
&lt;br /&gt;
donde &amp;quot;servidor&amp;quot; será el nombre o dirección IP de la ubicación del portal de usuario.&lt;br /&gt;
&lt;br /&gt;
=== Búsquedas ===&lt;br /&gt;
&lt;br /&gt;
En el '''''portal de administración de la plataforma ''VIVA''it ''''' existen dos tipos de búsqueda: &lt;br /&gt;
&lt;br /&gt;
* '''Búsqueda con filtros''': sirven para restringir las búsquedas sobre la base de datos y mostrar los datos concretos que cumplan las condiciones según los campos de filtrado rellenados. Si no se rellena ningún campo mostrará el contenido apropiado con todos los resultados almacenados en la base de datos según la ventana en la que nos encontremos.&lt;br /&gt;
&lt;br /&gt;
En algunas ventanas aparece el botón [[File:Boton-Filtros.jpg]] que permite ampliar los campos disponibles para realizar la búsqueda.&lt;br /&gt;
&lt;br /&gt;
[[File:Mas-Filtros-Desplegada.jpg]]&lt;br /&gt;
&lt;br /&gt;
Escribimos el valor que queremos buscar y pulsamos el botón [[File:Boton-Buscar.jpg]]&lt;br /&gt;
&lt;br /&gt;
Si pulsamos &amp;quot;buscar&amp;quot; sin especificar valores en los campos se presentarán todos los registros de la Base de Datos.&lt;br /&gt;
Cuando los botones están disponibles y hay datos en pantalla cualquier valor en los campos de búsqueda realizará una búsqueda sobre los resultados mostrados.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Búsqueda sobre resultados''': restringe aun más la búsqueda concreta que hagamos sobre los resultados mostrados tras una búsqueda previa con filtro.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:0 Ejemplo busquedas.png|950px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Observaciones sobre ambas búsquedas:&lt;br /&gt;
&lt;br /&gt;
* No distingue mayúsculas de minúsculas&lt;br /&gt;
&lt;br /&gt;
* No distingue acentos (tildes).&lt;br /&gt;
&lt;br /&gt;
* No permite la búsqueda mediante expresiones regulares.&lt;br /&gt;
&lt;br /&gt;
=== Borrado de Datos ===&lt;br /&gt;
&lt;br /&gt;
Cuando se realiza un borrado (masivo o no) de los datos correspondientes a varios registros (objetos) en una ventana, no son eliminados físicamente en ese momento, sino que se marcan como ocultos, de forma que se considera que no se deben utilizar más en la base de datos. Esto es así en la mayoría de los casos, podríamos necesitar los datos generados por los objetos borrados. Por ejemplo, si borramos varias extensiones, en un futuro, podríamos necesitarlas, saber que usuario la tenía asignadas, si estuvo asignada en varios terminales, etc. &lt;br /&gt;
&lt;br /&gt;
Si tiene los permisos necesarios [[#Permisos_a_Usuarios| ver sección Permisos]], podrá visualizar en la parte superior derecha de la ventana abierta un botón llamado &amp;quot;Borrar&amp;quot;. En caso contrario, no podrá realizar el borrado de datos.&lt;br /&gt;
&lt;br /&gt;
Los pasos a seguir para un borrado de datos, son los siguientes:&lt;br /&gt;
&lt;br /&gt;
* '''Realizar una [[#Búsquedas | búsqueda]] de aquel registro de la base de datos que se desee eliminar:''' En nuestro ejemplo, seria el usuario llamado &amp;quot;Borrado&amp;quot;.&lt;br /&gt;
[[Archivo:BorradoSeleccion.png|center|750px]]&lt;br /&gt;
&lt;br /&gt;
* '''Marcar los registros que deseamos borrar:''' con el ratón hacer un solo click sobre el registro a borrar o Control+click para seleccionar varios, y pulsar el botón &amp;quot;Borrar&amp;quot; nos saltara el siguiente aviso:&lt;br /&gt;
&amp;lt;!--[[Archivo:mensajeBorrado.png|300px|center]].--&amp;gt;&lt;br /&gt;
[[File:mensajeBorrado2.png|300px|center]]&lt;br /&gt;
:En el caso que  no se seleccione nada mostrar el siguiente mensaje de aviso:&lt;br /&gt;
&amp;lt;!--[[Archivo:mensajeSeleccionBorrado.png|300px|center]]--&amp;gt;&lt;br /&gt;
[[File:mensajeSeleccionBorrado2.png|300px|center]]&lt;br /&gt;
&lt;br /&gt;
* '''Confirmar la eliminación del registro:''' Una vez confirmado, se resaltará con color rosáceo el registro eliminado en los resultados de busqueda.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:BorradoDatos.png|center|750px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Recuperación Masiva de datos ====&lt;br /&gt;
Si tiene los permisos necesarios [[#Permisos_a_Usuarios| ver sección Permisos]], &amp;lt;u&amp;gt; seleccionando los registros borrados (rosáceo) &amp;lt;/u&amp;gt;, podrá visualizar en la parte superior derecha de la ventana abierto un botón llamado &amp;quot;Recuperar&amp;quot;. En caso contrario, no podrá realizar la recuperación de datos.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:BorradoDatos.png|center|950px]]&lt;br /&gt;
&lt;br /&gt;
Una vez seleccionado los registros borrados que deseamos recuperar, pulsando el botón &amp;quot;Recuperar&amp;quot; aparecerá el siguiente mensaje de aviso:&lt;br /&gt;
&amp;lt;!--[[Archivo:mensajeAvisoResuperacion.png|center]]--&amp;gt;&lt;br /&gt;
[[File:RecuperadoDatosBorrado2.png|center]]&lt;br /&gt;
La confirmación de la recuperación, hará que el registro deje de estar oculto para la base de datos, y además se visualizará como el resto de registros en la ventana. Como se visualiza en la siguiente imagen:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:RecuperadoDatosBorrado.png|center|950px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Borrado_de_Datos  | Volver arriba]]&lt;br /&gt;
[[wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit]]&lt;br /&gt;
&lt;br /&gt;
=== Duplicado de Datos ===&lt;br /&gt;
Nuestra plataforma ofrece la posibilidad de hacer una copia de un objeto. Esto se debe a la necesidad que surge a veces de crear objetos que contengan sino igual, la mayoría, de los datos de otro objeto existente. &lt;br /&gt;
&lt;br /&gt;
Si tiene los permisos necesarios ([[#Permisos_a_Usuarios| ver sección Permisos]]), podrá visualizar en la parte superior derecha de la ventana abierta un botón llamado &amp;quot;Duplicar&amp;quot;. En caso contrario, no podrá realizar el duplicado de datos.&lt;br /&gt;
&lt;br /&gt;
Los pasos a seguir para un duplicado de datos, son los siguientes:&lt;br /&gt;
* '''Realizar una [[#Búsquedas | búsqueda]]  de aquel registro de la base de datos que se desee duplicar.'''&lt;br /&gt;
[[Archivo:CapturaBotonDuplicar.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Marcar registro que deseamos duplicar: '''con el ratón hacer un solo click sobre el registro a duplicar y pulsar el botón &amp;quot;Duplicar&amp;quot; nos mostrarla la ventana de crear un nuevo objeto, teniendo relleno aquellos campos del objeto original a duplicar, y añadiendo el texto &amp;quot;(Copia)&amp;quot; delante de aquellos campos donde sea necesario para crear el nuevo objeto duplicado :&lt;br /&gt;
[[Archivo:CapturaDuplicado.png|center]]&lt;br /&gt;
:En el caso que  no se seleccione nada mostrar el siguiente mensaje de aviso:&lt;br /&gt;
&amp;lt;!--[[Archivo:DuplicarAvisoSeleccion.png|center]]--&amp;gt;&lt;br /&gt;
[[File:DuplicarAvisoSeleccion2.png|center]]&lt;br /&gt;
* '''Rellenar los datos del objeto duplicado necesarios y pulsar el botón &amp;quot;Guardar&amp;quot;.''' &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
'''Nota: la plataforma interpreta la copia como un objeto totalmente distinto al original duplicado, diferenciándose principalmente por su campo id.'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== '''Campos clave cuando duplicamos datos''' ====&lt;br /&gt;
&lt;br /&gt;
Es importante tener en cuenta que cuando duplicamos datos en el portal y éstos tienen campo de clave (usuarios, extensiones, buzones, Salas de Meet,...) combiene volver a teclear la clave y no conformarnos con pulsar la tecla intro.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Duplicado_de_Datos | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
El contenido de la pestaña General es el siguiente:&lt;br /&gt;
&amp;lt;!--[[Archivo:4 Pestaña General.jpg|center]]--&amp;gt;&lt;br /&gt;
[[File:PestañaGeneral2.png|center]]&lt;br /&gt;
&lt;br /&gt;
[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver arriba]&lt;br /&gt;
=== Configuración LDAP ===&lt;br /&gt;
&lt;br /&gt;
LDAP (“Lightweight Directory Access Protocol”), Protocolo de Acceso Ligero a Directorios es un protocolo de tipo cliente-servidor para acceder a un servicio de directorio. Este se encuentra condensado en el estándar de Internet, el RFC 1777.&lt;br /&gt;
&lt;br /&gt;
LDAP no es una base de datos en absoluto, sino un protocolo utilizado para acceder a información almacenada en un directorio de información (también conocido como un directorio LDAP).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un servidor LDAP es utilizado para procesar consultas y actualizaciones a un directorio de información LDAP.&lt;br /&gt;
&lt;br /&gt;
Un directorio de información LDAP es un tipo de base de datos, pero no es una base de datos relacional.&lt;br /&gt;
&lt;br /&gt;
Y a diferencia de una base de datos que está diseñada para procesar cientos o miles de cambios por minuto – como los sistemas de Procesamiento de Transacciones En Linea (OLTP por sus siglas en ingles) los directorios LDAP están fuertemente optimizados para el rendimiento en lectura.&lt;br /&gt;
&lt;br /&gt;
La mayor ventaja de LDAP es que tu empresa puede acceder al directorio LDAP desde casi cualquier plataforma de computación, desde cualquier numero creciente de aplicaciones fácilmente disponibles para LDAP.&lt;br /&gt;
&lt;br /&gt;
El protocolo LDAP es utilizable por distintas plataformas y está basado en estándares, de ese modo las aplicaciones no necesitan preocuparse por el tipo de servidor en que se hospeda el directorio. De hecho, LDAP está encontrando una más amplia aceptación a causa de ese estatus como estándar de Internet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ventajas en el uso de LDAP.&lt;br /&gt;
&lt;br /&gt;
Un directorio LDAP destaca sobre los demás tipos de bases de datos por las siguientes características:&lt;br /&gt;
&lt;br /&gt;
– Es muy rápido en la lectura de registros&lt;br /&gt;
&lt;br /&gt;
– Permite replicar el servidor de forma muy sencilla y económica&lt;br /&gt;
&lt;br /&gt;
– Muchas aplicaciones de todo tipo tienen interfaces de conexión a LDAP y se pueden integrar fácilmente&lt;br /&gt;
&lt;br /&gt;
– Dispone de un modelo de nombres globales que asegura que todas las entradas son únicas&lt;br /&gt;
&lt;br /&gt;
– Usa un sistema jerárquico de almacenamiento de información.&lt;br /&gt;
&lt;br /&gt;
– Permite múltiples directorios independientes&lt;br /&gt;
&lt;br /&gt;
– Funciona sobre TCP/IP y SSL&lt;br /&gt;
&lt;br /&gt;
– La mayoría de aplicaciones disponen de soporte para LDAP&lt;br /&gt;
&lt;br /&gt;
– La mayoría de servidores LDAP son fáciles de instalar, mantener y optimizar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Este apartado sirve para configurar los parámetros de conexión de LDAP para poder acceder a los directorios del servicio '''''VIVA'''''it Call y gestionar su base de datos. &lt;br /&gt;
&lt;br /&gt;
Si pulsamos en la pestaña ''General'' y vamos a ''Configuración LDAP'' aparece la siguiente ventana:&lt;br /&gt;
[[Archivo:5 Configurar LDAP.jpg|center]]&lt;br /&gt;
Las opciones con las que podemos encontrarnos son las siguientes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot; &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Activar servidor LDAP'''&lt;br /&gt;
|  | Indicar si queremos funcionar con LDAP.&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Si / No&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Servidor'''&lt;br /&gt;
|  | IP o nombre del host donde está el servidor LDAP.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Puerto'''&lt;br /&gt;
|  | Puerto de escucha del servidor LDAP.&lt;br /&gt;
|  | 389 por defecto&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Dominio'''&lt;br /&gt;
|  | Nombre de dominio base del LDAP.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Cuenta'''&lt;br /&gt;
| | Nombre de usuario creado en el servidor LDAP para verificar acceso.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Contraseña'''&lt;br /&gt;
|  | contraseña del usuario del servidor LDAP.&lt;br /&gt;
||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[#Configuración LDAP | Volver a Configuración LDAP]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Configuración común ===&lt;br /&gt;
La '''''configuración común''''' sirve para realizar la configuración general o común de la plataforma '''''VIVA'''''it. Permite definir de forma general ciertos valores para todos los usuarios de la plataforma, independientemente del nivel de acceso que tenga asignado, es decir, para la configuración de los ejes, podremos definir el nombre de cada eje hasta un máximo de 4, pero esto no quiere decir que todos los usuarios puedan ver estos ejes y puedan posteriormente configurarlos. &lt;br /&gt;
&amp;lt;!--[[Archivo: 6 COM Configuración.png|center]]--&amp;gt;&lt;br /&gt;
[[File:6COMConfiguracion.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Las opciones con las que podemos encontrarnos son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Etiqueta Cod. Cliente'''&lt;br /&gt;
|  | Nombre dado al código del cliente. &lt;br /&gt;
|| Dependiendo del cliente puede ser msisdn u otra cosa.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Etiqueta 1'''&lt;br /&gt;
|  | Denominación de primera etiqueta; su uso se limita a entornos de Contact Center.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Etiqueta 2'''&lt;br /&gt;
|  | Denominación de segunda etiqueta; su uso se limita a entornos de Contact Center. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Versión BD'''&lt;br /&gt;
|  | Versión de la base de datos utilizada en la plataforma. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Periodos comunicados(seg)'''&lt;br /&gt;
| | Tiempo que tardan en recibirse los comunicados enviados por los supervisores del contact center. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''URL Sincronización'''&lt;br /&gt;
|  | URL donde se encuentra la aplicación GeneraConf. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nº Días de validez de la clave'''&lt;br /&gt;
|  | Número de días de la clave de acceso del usuario. Actualmente no tiene funcionalidad, pero se prevee en versiones futuras.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Confiar en el usuario del S.O.'''&lt;br /&gt;
|  | Es una forma de emplear el usuario del S.O para la plataforma, es decir, confiar en el usuario del sistema operativo para el registro en las diferentes aplicaciones del entorno Microsoft Windows sin pedirle la contraseña.&lt;br /&gt;
|  | Si / No. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Expresión VDN'''&lt;br /&gt;
|  | Expresiones regulares para establecer una numeración común a cada elemento. [[#Enlaces_de_interés | Para mas información ver Enlaces de interes ]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Expresión grupos y operadoras'''&lt;br /&gt;
|  | Expresiones regulares para establecer una numeración común a cada elemento. [[#Enlaces_de_interés | Para mas información ver Enlaces de interes ]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Expresión Agente'''&lt;br /&gt;
|  | Expresiones regulares para establecer una numeración común a cada elemento. [[#Enlaces_de_interés | Para mas información ver Enlaces de interes ]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Expresión facilidad'''&lt;br /&gt;
|  | Expresiones regulares para establecer una numeración común a cada elemento.Para mas información  &lt;br /&gt;
[[#Enlaces_de_interés | ver Enlaces de interes ]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Expresión Usuario'''&lt;br /&gt;
|  | Expresiones regulares para establecer una numeración común a cada elemento. Para mas información  [[#Enlaces_de_interés | ver Enlaces de interes ]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Expresión Conferencia'''&lt;br /&gt;
|  | Expresiones regulares para establecer una numeración común a cada elemento. Para mas información [[#Enlaces_de_interés |  ver Enlaces de interés ]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre Eje1'''&lt;br /&gt;
|  | Definir el nombre de eje1.  [[#Ejes | Para mas información ver sección Ejes]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre Eje2'''&lt;br /&gt;
|  | Definir el nombre de eje2.  [[#Ejes | Para mas información ver sección Ejes]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre Eje3'''&lt;br /&gt;
|  | Definir el nombre de eje3.  [[#Ejes | Para mas información ver sección Ejes]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre Eje4'''&lt;br /&gt;
|  | Definir el nombre de eje4.  [[#Ejes | Para mas información ver sección Ejes]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Configuración común | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Sedes ===&lt;br /&gt;
&lt;br /&gt;
Las sedes son cada una de las dependencias en las que un cliente tenga desplegada la plataforma '''''VIVA'''''it; en una consideración más técnica, deberíamos considerar una sede como aquel entorno en el que queremos hacer control de número de llamadas simultáneas hacia el resto de la plataforma.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Sedes&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar que dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]])&lt;br /&gt;
[[Archivo:1 Busqueda en General - Sedes.png|750 px|center]]&lt;br /&gt;
&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]]. Para dar de alta o modificar (Editar) una nueva &amp;quot;sede&amp;quot; en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:7 Sedes.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Las opciones con las que podemos encontrarnos son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre de la sede (Obligatorio) &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Dirección'''&lt;br /&gt;
|  | Dirección de la sede.  &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''C.P.'''&lt;br /&gt;
|  | Código Postal de la sede.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
|  | Localidad de la sede. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Provincia'''&lt;br /&gt;
| | Provincia de la sede. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Ancho de Banda'''&lt;br /&gt;
|  | El campo &amp;quot;ancho de banda&amp;quot; expresa una magnitud que dividida por el valor de la variable BA_CONSUMO_LLAMADA  del dialplan del nodo dará como resultado el número máximo de llamadas simultáneas de esa sede.&lt;br /&gt;
Puede considerarse esa magnitud como (por ejemplo) Kbit/s...de esta forma en la sede estaríamos indicando el ancho de banda disponible en Kbit/s para cursar voz entre esa sede y el resto, y en la variable BA_CONSUMO_LLAMADA estaríamos expresando el consumo de ancho de banda en Kbit/s de cada llamada que cursemos&lt;br /&gt;
&lt;br /&gt;
 '''Nº llamadas = Ancho de banda / BA_CONSUMO_LLAMADA'''&lt;br /&gt;
&lt;br /&gt;
Configuraremos el ancho de banda por sede en el portal de administración y el consumo que hace cada llamada en la variable '''AB_CONSUMO_LLAMADA''' del fichero '''ext_MDtel_particular.conf''' de cada nodo de conmutación; el valor por defecto es 32&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Dpto'''&lt;br /&gt;
|  | Elegir un eje (Obligatorio) .  Para mas información [[#Ejes | ver sección Ejes]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[#Sedes | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Nodos ===&lt;br /&gt;
Los '''nodos''' son cada uno de los servidores de la plataforma '''''VIVA'''''it que encontramos en una instalación y que contienen elementos de procesamiento de voz (Centralita IP).&lt;br /&gt;
Existen tres tipos de nodos:&lt;br /&gt;
&lt;br /&gt;
:* Nodo corporativo: para centralitas tradicionales con entornos corporativos IP y las aplicaciones. &lt;br /&gt;
:* Nodo call center: para los servicios típicos de call center. &lt;br /&gt;
:* Nodo Vivait Meet: para proporcionar servicios de Meet.&lt;br /&gt;
&lt;br /&gt;
En el portal de administración de '''''VIVA'''''it solo daremos de alta nodos de estos tipos.&lt;br /&gt;
En un entorno grande, y pensando en términos de organización de una arquitectura ([[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Arquitectura_VIVAit Véase Arquitecturas]]) realizaremos una división funcional de nodos del estilo de:&lt;br /&gt;
:* Nodo de procesamiento de telefonía corporativa (en portal es nodo Corporativo)&lt;br /&gt;
:* Nodo de procesamiento de call center (en portal es nodo de call center)&lt;br /&gt;
:* Nodo gateway (en portal es nodo GW)&lt;br /&gt;
:* Nodo de administración: No se da de alta en el portal como nodo; contiene procesos auxiliares no relacionados directamente con la conmutación telefónica de llamadas&lt;br /&gt;
:* Nodo de Base de datos: No se da de alta en el portal. En entornos especialmente grandes, en los que diferenciemos en un nodo dedicado (compuesto de un servidor o de un clúster de dos servidores) la base de datos de tiempo real aparecerá este nodo&lt;br /&gt;
&lt;br /&gt;
'''Funcionalidad en Nodos'''&lt;br /&gt;
&lt;br /&gt;
Este apartado sirve para crear y gestionar los diferentes nodos del entorno (GW, corporativo, call center, Vivait-Meet o Corporativo+Vivait-Meet).&lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Nodos&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales (Borrar, Nuevo , Editar y Duplicar) que dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]])&lt;br /&gt;
[[Archivo:2 Busqueda en General - Nodos.png|800 px| center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La explicación de funcionalidad del botón “Borrar” está explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” está explicado genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]]. Para dar de alta o modificar (Editar) un nuevo &amp;quot;Nodo&amp;quot; en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--[[Archivo:8 Nodos.png|center]]--&amp;gt;&lt;br /&gt;
[[File:8Nodos.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Las opciones con las que podemos encontrarnos son las siguientes:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=  &amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot;| '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot;  | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot;  | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre del nodo (Obligatorio).&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Descripción del nodo &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tipo de nodo'''&lt;br /&gt;
|  | Seleccionar el tipo de nodo (Obligatorio).&lt;br /&gt;
| GW&lt;br /&gt;
Corporativo&lt;br /&gt;
&lt;br /&gt;
Call center&lt;br /&gt;
&lt;br /&gt;
Vivait-Meet&lt;br /&gt;
&lt;br /&gt;
Corporativo + Vivait-Meet&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Dirección de red'''&lt;br /&gt;
|  | Dirección de red del nodo (Obligatorio).&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Sede'''&lt;br /&gt;
| | Seleccionar la sede a la que pertenece el nodo (Obligatorio). &lt;br /&gt;
&lt;br /&gt;
Para más información [[#Sedes | ver sección Sedes]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Cti Host'''&lt;br /&gt;
|  | Dirección de red donde esté el demonio '''''VIVA'''''it-cti corriendo.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Cti Puerto'''&lt;br /&gt;
|  | Puerto de escucha del demonio '''''VIVA'''''it-cti. &lt;br /&gt;
| por defecto es el 4500.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Usuario CTI'''&lt;br /&gt;
|  | Usuario con el que corre el demonio CTI. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Clave CTI'''&lt;br /&gt;
|  | Contraseña del usuario anterior.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Usuario SSH'''&lt;br /&gt;
|  | Usuario para conexión SSH.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Clave SSH'''&lt;br /&gt;
|  | Clave SSH del usuario anterior.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Log Host'''&lt;br /&gt;
|  | Dirección IP del host donde queremos que se almacenen los logs. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
||  ''' Log puerto '''&lt;br /&gt;
|| El puerto de escucha para el log.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|| '''Log facilidad'''&lt;br /&gt;
|| Logs de facilidad.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Rastreo Host'''&lt;br /&gt;
|  |  La cadena de rastreo de host que toma nuestra conexión hasta el servidor de hosting.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Rastreo Puerto'''&lt;br /&gt;
|  | EL Puerto del Host para el rastreo.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Rastreo Facilidad'''&lt;br /&gt;
|  | El puerto del rastreo de facilidad.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Plantilla E. Interior'''&lt;br /&gt;
|  | La plantilla del enlace interior que deben usar el resto de nodos para configurar el enlace interior este nodo.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Plantilla Sip'''&lt;br /&gt;
|  | Seleccione la plantilla según el tipo de nodo, ACO o no ACD.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tipo dispositivo E. Interior'''&lt;br /&gt;
|  | Clase de dispositivos que reconocerá el nodo interior.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Qualify'''&lt;br /&gt;
|  | Se envía mensajes &amp;quot;notify&amp;quot; entre nodos para ver si están vivos los otros nodos; como inconveniente están haciendo polling cada cierto tiempo.Si el valor es &amp;quot;si&amp;quot; el qualify que se tiene que poner al nodo que esta creando el peer.&lt;br /&gt;
| Si / No.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''N. Qualify'''&lt;br /&gt;
|  | Poner el qualify en todos los enlaces interiores.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Es ACD'''&lt;br /&gt;
|  |  Si el tipo de nodo es Call Center el campo debería estar a Si. En caso contrario No.&lt;br /&gt;
| Si / No.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Es Tracker'''&lt;br /&gt;
|  | Indica si el nodo tiene instalado el portal VIVAit-Tracker &lt;br /&gt;
| Si / No.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Grabador'''&lt;br /&gt;
|  | Indica si el nodo tiene la capacidad para grabar&lt;br /&gt;
| Si / No.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Grabar enrutamiento'''&lt;br /&gt;
|  | Este campo define si van a grabar las llamadas que se enruten para este &amp;quot;Nodo&amp;quot;.&lt;br /&gt;
||Sin grabación&lt;br /&gt;
&lt;br /&gt;
Grabación sin beep periódico&lt;br /&gt;
&lt;br /&gt;
Grabación con beep periódico&lt;br /&gt;
&lt;br /&gt;
Descartar grabación&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Modo de grabación de la infraestructura'''&lt;br /&gt;
|  |  Este campo define como está la infraestructura configurada para poder configurar la grabación bajo demanda. &lt;br /&gt;
| |'''Sin grabación en la infraestructura:''' no se graba nada de lo que se rute en ese nodo.&lt;br /&gt;
&lt;br /&gt;
'''Graba todo:''' se graba todo.&lt;br /&gt;
&lt;br /&gt;
'''Graba por petición:''' El nodo se configura para darle la capacidad de que grabe bajo demanda)&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''RecordCentral:'''&lt;br /&gt;
| Define que instancia del recordCentral es la encargada de tratar las grabaciones de este nodo. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Host'''&lt;br /&gt;
| | Si configuramos el Chat, aqui debe aparecer la direccion IP del nodo ACD&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Puerto'''&lt;br /&gt;
|  |  Si configuramos el Chat, aqui debe aparecer el puerto de escucha del chan_sit. &lt;br /&gt;
|  |  Por defecto es el 8888&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Nodos | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Ejes ===&lt;br /&gt;
&lt;br /&gt;
Los ejes representan típicamente la estructura organizativa de una compañía en la plataforma VIVAit. Todo objeto existente en la plataforma tiene asignado de uno a cuatro ejes organizativos.&lt;br /&gt;
&lt;br /&gt;
Los Ejes son considerados como una política de permisos para los diferentes usuarios y aplicaciones. Un usuario que pertenezca a un eje puede hacer todo lo que ese eje permita y lo que permitan sus ejes hijos (subejes). Y a su vez un objeto solo puede ser inspeccionado o usado por un usuario que tenga permisos iguales o superiores sobre todos los ejes a los que el objeto pertenece. Para ello los ejes se clasificamos en:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Nivel General ó nivel 0 (Nivel departamental)&lt;br /&gt;
&lt;br /&gt;
:Nivel 0.1 (Nivel de operaciones)&lt;br /&gt;
&lt;br /&gt;
::'''SubNivel 0.1.1(*)''' ( Nivel SAT)&lt;br /&gt;
&lt;br /&gt;
:::Sub-Subnivel 0.1.1.1( Nivel Reparaciones)&lt;br /&gt;
&lt;br /&gt;
:::Sub-Subnivel 0.1.1.2( Nivel de consultas técnicas)&lt;br /&gt;
&lt;br /&gt;
::SubNivel 0.1.2 (Nivel Instalaciones)&lt;br /&gt;
&lt;br /&gt;
:Nivel 0.2 (Nivel de ventas)&lt;br /&gt;
&lt;br /&gt;
::Subnivel 0.2.2 ( Nivel de servicios)&lt;br /&gt;
&lt;br /&gt;
:Nivel 0.3 ( Nivel Financiero)&lt;br /&gt;
&lt;br /&gt;
:Nivel 0.4 ( Nivel de desarrollo)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&lt;br /&gt;
'''(*)En la instalación de sistemas nuevos se recomienda configurar el primer eje empezando en el tercer nivel (0.1.1., 0.1.2., 0.2.2.,.....). Esta configuración permitirá ampliar la jerarquia de ejes hacía arriba sin tener que reconfigurar todo el sistema.'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;Los ejes definen la situación de los elementos del sistema dentro del árbol jerárquico establecido.&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''¿Quién soy?''' --&amp;gt; Indica el nivel jerárquico de los elementos que tienen ejes: usuarios, extensiones, grupos de salto, VDN, grupos ACD, etc... &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para realizar la gestión del sistema es necesario configurar usuarios '''(Administradores de la plataforma ó Supervisores para Contact Center)'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El nivel de gestión de los '''administradores y supervisores''' se configura con el eje que se asigne a los permisos de cada aplicación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''¿Qué veo?''' --&amp;gt; Se establece en la ventana ''general-usuarios-permisos'', para cada aplicación un '''administrador / supervisor''' puede tener un permiso distinto, éste indica el nivel de gestión que le hemos asignado. (Gestiona los elementos incluídos en su eje y los ejes inferiores).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--La explicación de los diferentes niveles jerárquicos es la siguiente:&lt;br /&gt;
* '''Nivel General ó nivel 0''': Este nivel de eje nos permite ver todos los datos incluidos en la ventana a la que el usuario ha accedido dependiendo del nivel de aplicación que tenga.&lt;br /&gt;
&lt;br /&gt;
* '''Subnivel 0.1 o nivel de operaciones''': El usuario solo verá en la zona de administrador de usuario los permisos de usuarios del nivel de operaciones o inferior.&lt;br /&gt;
&lt;br /&gt;
* '''Resto de niveles''': ocurrirá lo mismo, es decir, que para este usuario y resto de usuarios, solo verán los datos con mismo nivel o inferiores, nunca niveles superiores de eje.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Ejes&amp;quot; aparecerá la estructura de la compañía que tenemos en la plataforma '''''VIVA''''it con algunos botones laterales( Borrar, Nuevo , Editar y Duplicar) dependiendo del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]]). Un ejemplo seria:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--[[Archivo:9 Ejes.jpg|800px|center]]--&amp;gt;&lt;br /&gt;
[[File:9Ejes.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” está explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
Para crear un eje nuevo, es necesario '''seleccionar en que parte de la estructura se debe introducir''' y pulsar el botón “Nuevo” &lt;br /&gt;
[[Archivo:10 Crear Subeje.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Las opciones con las que podemos encontrarnos son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre identificativo para el eje.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Nombre que mostrará en el árbol jerárquico (Obligatorio).&lt;br /&gt;
|}&lt;br /&gt;
[[#Ejes | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
=== Usuarios ===&lt;br /&gt;
&lt;br /&gt;
Un usuario es cualquier persona que utiliza alguno de los servicios de VIVAit. Los usuarios acceden al sistema a través de una interfaz en la que tienen que identificarse con una cuenta y una contraseña.&lt;br /&gt;
&lt;br /&gt;
En la plataforma '''''VIVA'''''it  cualquier persona que vaya a usar el sistema necesita estar dado de alta como usuario.&lt;br /&gt;
&lt;br /&gt;
Los tipos  de usuarios que podemos crear son:&lt;br /&gt;
&lt;br /&gt;
'''En telefonía corporativa'''&lt;br /&gt;
:* Personas con buzón de voz&lt;br /&gt;
:* Personas con extensión y uso de movilidad&lt;br /&gt;
:* Personas con derechos de reserva de salas de conferencia&lt;br /&gt;
&lt;br /&gt;
'''En contact center'''&lt;br /&gt;
:* Agentes&lt;br /&gt;
:* Supervisores&lt;br /&gt;
&lt;br /&gt;
'''En ambos entornos'''&lt;br /&gt;
:* Administradores&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''Si no asignamos permisos al usuario aunque este exista no se le permitirá iniciar sesión en ninguna en la plataforma '''''VIVA'''''it[[#Permisos_a_Usuarios | ver Permisos a Usuarios]].'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
La ruta para la creación y administración de permisos de los usuario se muestra en la siguiente imagen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--[[Archivo:11 Pestaña General-Usuarios.jpg|center]]--&amp;gt;&lt;br /&gt;
[[File:11PestañaGeneralUsuarios2.png|center]]&lt;br /&gt;
&lt;br /&gt;
==== Administrar Usuarios ====&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Administrar Usuarios&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales (Borrar, Nuevo , Editar y Duplicar) que dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--[[Archivo:3 Busqueda en General - Usuarios - Administar usuarios.png|750px|center]]--&amp;gt;&lt;br /&gt;
[[File:3Busqueda en General - Usuarios - Administrar usuarios2.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Al pulsar sobre &amp;quot;+ Filtros&amp;quot; entre los otros filtros que incluye ésta opción añade los siguientes filtros '''''Login Numerico, Es Agente y Login centralita''''' como podemos ver:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--[[Archivo:3.1 Busqueda en General - Usuarios - Administar usuarios.png|750px|center]]--&amp;gt;&lt;br /&gt;
[[File:3.1 Busqueda en General - usuarios - Administrar usuarios2.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se puede encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) un nuevo &amp;quot;Usuario&amp;quot;  en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--[[Archivo:12 Nuevo Usuario - Pestaña Usuario.png|center]]--&amp;gt;&lt;br /&gt;
[[File:12 Nuevo usuario - Pestaña Usuario2.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Pestaña Usuario =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--[[Archivo:12 Nuevo Usuario - Pestaña Usuario.png|center]]--&amp;gt;&lt;br /&gt;
[[File:12 Nuevo usuario - Pestaña Usuario3.png|center]]&lt;br /&gt;
&lt;br /&gt;
Las opciones de la pestaña Usuario se explican en la siguiente tabla:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre del usuario (Obligatorio).&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Primer apellido'''&lt;br /&gt;
|  | Primer apellido del usuario.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Segundo apellido'''&lt;br /&gt;
|  | Segundo apellido del usuario. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''DNI/CIF'''&lt;br /&gt;
|  | Documento identificativo del usuario.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Dirección'''&lt;br /&gt;
| | Dirección del usuario.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Código Postal'''&lt;br /&gt;
|  | Código postal del usuario.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
| | Localidad del usuario.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Correo electrónico'''&lt;br /&gt;
|  | Correo electrónico del usuario. Útil para recibir notificaciones de mensajes de voz en el buzón de correo. (Siempre configurando un servicio de correo en asterisk).&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Idioma'''&lt;br /&gt;
|  | Idioma del usuario.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Validación'''&lt;br /&gt;
||Si indicamos ambas primero consulta a LDAP y si no a la BD de '''''VIVA'''''it.&lt;br /&gt;
|  | Autenticación '''''VIVA'''''it  Suite&lt;br /&gt;
&lt;br /&gt;
Autenticación LDAP&lt;br /&gt;
&lt;br /&gt;
Ambas&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Usuario'''&lt;br /&gt;
|  | Nombre de la cuenta de registro del usuario (Obligatorio).&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Clave'''&lt;br /&gt;
| | Clave de la cuenta (Obligatorio).&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Depurar'''&lt;br /&gt;
| |Es necesario activar este campo para guardar un rastreo de las acciones del usuario en la tabla DAT_LOG&lt;br /&gt;
&lt;br /&gt;
||Si / No &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Dpto'''&lt;br /&gt;
|  | Elegir un eje (Obligatorio).  Para mas información [[#Ejes | ver sección Ejes]]&lt;br /&gt;
||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[#Pestaña_Usuario | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
===== Pestaña ACD =====&lt;br /&gt;
{|&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| Nota: Si no activamos el rastreo BBDD sobre el agente no obtendremos ningún dato sobre este agente en la aplicación de rastreo.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
La siguiente Pestaña ACD tiene el siguiente aspecto:&lt;br /&gt;
[[Archivo:13 Nuevo Usuario - Pestaña ACD.png|center]]&lt;br /&gt;
&lt;br /&gt;
Las opciones de la pestaña ACD se explican en la siguiente tabla:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Es Agente'''&lt;br /&gt;
|  | Establece si el usuario creado es agente o no. &lt;br /&gt;
|  | Si / No. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Perfil'''&lt;br /&gt;
|  | Perfil al que pertenece el agente. Obligatorio si “Es Agente” -&amp;gt; “Si”.  Para mas información [[#Perfiles | ver sección  '''''VIVA'''''it  Suite ACD+ - Perfiles ]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Rastreo BBDD'''&lt;br /&gt;
|  | Habilita o no el rastreo del agente en BBDD. &lt;br /&gt;
|  | Si / No. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Rastreo Syslog'''&lt;br /&gt;
|  | Habilita o no el rastreo del agente en syslog. &lt;br /&gt;
|  | Si / No.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Permitir Login Telefónico'''&lt;br /&gt;
| | Permitir si el usuario (si es agente ) pueda iniciar sesión desde el teléfono&lt;br /&gt;
|  | Si / No.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Grabar Todo'''&lt;br /&gt;
|  | Grabar todos los segmentos de tipo agente generados por ese agente. &lt;br /&gt;
|  | Si / No.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Clave'''&lt;br /&gt;
|  | Clave usada para el login numérico. Obligatorio si “Es Agente” -&amp;gt; “Si”. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Login Numérico'''&lt;br /&gt;
|  | Conjunto de números que distinguen al agente. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Número de Líneas'''&lt;br /&gt;
|  | Número de líneas telefónicas que tiene el agente en su teléfono.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Modo Entrada'''&lt;br /&gt;
| | El agente puede tener un perfil que le permita cambiar el modo en el&lt;br /&gt;
que el sistema vuelve al estado “preparado”&lt;br /&gt;
||Automático&lt;br /&gt;
&lt;br /&gt;
Manual &lt;br /&gt;
&lt;br /&gt;
Agente &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nodo trabajo'''&lt;br /&gt;
|  | Nodo donde el usuario esta trabajando  (Obligatorio). &lt;br /&gt;
Para más información [[#Nodos | ver sección Nodos]].&lt;br /&gt;
||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[#Pestaña_ACD | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
===== Pestaña Centralita =====&lt;br /&gt;
&lt;br /&gt;
La siguiente Pestaña Centralita tiene el siguiente aspecto:&lt;br /&gt;
[[Archivo:14 Nuevo Usuario - Pestaña Centralita.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Las opciones de la pestaña Centralita se explican en la siguiente tabla:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre mostrar'''&lt;br /&gt;
|  | Nombre que mostrara el usuario cuando llame.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío no login mensa'''&lt;br /&gt;
|  | Desvía la llamada al buzón de voz cuando el agente no esta registrado en el teléfono.  &lt;br /&gt;
|| Si / No.  &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío no login'''&lt;br /&gt;
|  | Número del desvío cuando el agente no esta registrado en el teléfono. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío no contesta mensa'''&lt;br /&gt;
| | Desvía la llamada al buzón de voz cuando el agente no contesta.&lt;br /&gt;
|| Si / No. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío no contesta'''&lt;br /&gt;
|  | Número del desvío cuando el agente no contesta. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío ocupado mensa'''&lt;br /&gt;
|  | Desvía la llamada al buzón de voz cuando el agente esta ocupado.&lt;br /&gt;
|| Si / No.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío ocupado'''&lt;br /&gt;
|  | Número del desvío cuando el agente esta ocupado. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío incondicional mensa'''&lt;br /&gt;
|  | Desvía todas las llamadas que recibe el agente  al buzón de voz.&lt;br /&gt;
|| Si / No.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío incondicional'''&lt;br /&gt;
| | Número del desvío incondicional. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Número llamada externa'''&lt;br /&gt;
|  | Número con el que realizan las llamadas al exterior. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Número login'''&lt;br /&gt;
|  | Número de login del usuario.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Clave login'''&lt;br /&gt;
|  | Clave del login del usuario. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Comunicaciones personales'''&lt;br /&gt;
|  | Funcionalidad pendiente de versión. Servirá para indicar a través de uso de calendarios y horarios, a que hora pueden llamar al usuario. &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Para más información[[#Calendarios | ver sección Calendarios]]--&amp;gt;&lt;br /&gt;
|| Si / No.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Grabar enrutamiento'''&lt;br /&gt;
| | Modo de grabación del usuario.&lt;br /&gt;
|| Sin grabación&lt;br /&gt;
Grabación sin beep periódico&lt;br /&gt;
&lt;br /&gt;
Grabación con beep periódico&lt;br /&gt;
&lt;br /&gt;
Descartar grabación.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Categoría'''&lt;br /&gt;
|  | Indicar el contexto en el cual puede realizar la llamada. Para más información [[#Categorías  | ver sección '''''VIVA'''''it Call - Categorías]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío categoría'''&lt;br /&gt;
|  | Indicar el contexto de como se tratara la llamada de desvío.&lt;br /&gt;
&lt;br /&gt;
Para más información [[#Categorías  | ver sección '''''VIVA'''''it Call - Categorías]].&lt;br /&gt;
||&lt;br /&gt;
|}&lt;br /&gt;
[[#Pestaña_Centralita | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
===== Pestaña Aprovisionamiento =====&lt;br /&gt;
La siguiente Pestaña Aprovisionamiento tiene el siguiente aspecto:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:15 Nuevo Usuario - Pestaña Aprovisionamiento.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se añadirán los campos que pueda necesitar un teléfono asignado al usuario para aprovisionarse. Un ejemplo seria añadir campos para configurar un BLF al teléfono del usuario.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Archivo:15_1 Nuevo Usuario - Pestaña Aprovisionamiento-Ventana Seleccion campos.png|800 px|center]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Pestaña Mensajería =====&lt;br /&gt;
&lt;br /&gt;
La siguiente Pestaña Mensajería tiene el siguiente aspecto:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:16 Nuevo Usuario - Pestaña Mensajeria.png|center]]&lt;br /&gt;
Las opciones con las que podemos encontrarnos son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Buzón'''&lt;br /&gt;
|  | Indica el numero de buzón en el que el usuario recibirá los mensajes de voz. &lt;br /&gt;
Para más información [[#Buzón de voz | ver sección '''''VIVA'''''it Call - Servicios usuarios - Buzones]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Comunicaciones personales'''&lt;br /&gt;
| | Funcionalidad pendiente de versión. Servirá para indicar a través de uso de calendarios y horarios, a que hora pueden llamar al usuario. &lt;br /&gt;
&amp;lt;!--Para más información[[#Calendarios | ver sección Calendarios]]--&amp;gt;&lt;br /&gt;
|  | Si / No.&lt;br /&gt;
|}&lt;br /&gt;
Al pulsar sobre el campo buzón nos aparece la siguiente pantalla:&lt;br /&gt;
[[Archivo:16_1 Nuevo Usuario - Pestaña Mensajeria- Seleccionar Buzon.png|center]]&lt;br /&gt;
&lt;br /&gt;
Se podrá visualizar todos los buzones existentes, porque es posible compartir un buzón entre varios usuarios. Pero solo podremos seleccionar uno.&lt;br /&gt;
&lt;br /&gt;
===== Pestaña Extensiones =====&lt;br /&gt;
&lt;br /&gt;
La siguiente Pestaña Extensiones tiene el siguiente aspecto:&lt;br /&gt;
[[File:VentanaUsuarioExtensiones.png|center]]&lt;br /&gt;
&lt;br /&gt;
Esta ventana nos informa de las extensiones la que es propietario un usuario o de la extensión en la que se encuentra movido&lt;br /&gt;
&lt;br /&gt;
[[#Administrar_Usuarios | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Permisos a Usuarios ====&lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Permisos a Usuarios&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar que dependerán del nivel de permisos que tengamos para la aplicación dados por un usuario administrador superior)&lt;br /&gt;
[[Archivo:4 Busqueda en General - Usuarios - Permisos a usuarios.png| 800px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].&lt;br /&gt;
&lt;br /&gt;
La explicación de funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
===== Asignación de Permisos de Usuario por Administrador =====&lt;br /&gt;
&lt;br /&gt;
Pueden darse permisos para crear, duplicar o borrar objetos del portal de administración, hacer ciertos ajustes, archivos... pero no todos, porque algunas partes del sistema están prohibidas hasta para el administrador. En el caso de un administrador normal que pueda crear y dar permisos a usuarios, podemos tener el siguiente caso:&lt;br /&gt;
[[Archivo:17_1Pestaña Genera - Usuarios - Explicacion permisos.png|800px|center]]&lt;br /&gt;
Si el usuario pepe de la imagen anterior, tuviera solo los permisos de aplicación común a nivel Alto, podría asignar permisos de Usuario. Pero la imagen a dar el botón &amp;quot;Nuevo&amp;quot; seria diferente al que puede ver un administrador como vemos:&lt;br /&gt;
[[Archivo:17 Pestaña General - Usuarios- Permisos a Usuarios.png|center]]&lt;br /&gt;
Fijándose, nuestro usuario fue creado por otro administrador que solo nos asigno el eje &amp;quot;Dpto&amp;quot;. Por tanto, en el momento de dar permisos al usuario &amp;quot;Pepe&amp;quot; solo podrá darse permisos el eje &amp;quot;Dpto&amp;quot; (o los subejes) como vemos en la imagen anterior. La explicación de los campos se explica en  una tabla posteriormente.&lt;br /&gt;
&lt;br /&gt;
Finalmente, creado el usuario &amp;quot;Pepe&amp;quot; y este usuario iniciando sesión en el portal de administración  podemos observar que en la pestaña de Ejes nuestro usuario &amp;quot;Pepe&amp;quot; solo verá los ejes asignados:&lt;br /&gt;
&amp;lt;!--[[Archivo:17_6 Pestaña Genera - Usuarios - Explicacion permisos.png|800px|center]]--&amp;gt;&lt;br /&gt;
[[File:PermisosUsuarios2.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Las opciones de los permisos de los usuarios se explican en la siguiente tabla:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Usuario'''&lt;br /&gt;
|  | Escoger un usuario existente.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Aplicación'''&lt;br /&gt;
|  | Las aplicaciones nos permiten acceder a las distintas pestañas de la plataforma. &lt;br /&gt;
|  | '''Aplicación Común:''' Permite visualizar únicamente la pestaña [[#General|'''''General''''']], que nos permite tener control de la Organización y de los usuarios.&lt;br /&gt;
 &lt;br /&gt;
'''Aplicación Centralita:''' Permite visualizar las pestañas [[#VIVAit Call|'''''VIVA''it Call''''']] y [[#VIVAit Response|'''''VIVA''it Response''''']], que nos tener el control de la telefonía corporativa, las locuciones (MOH entre otras) y su mantenimiento. &lt;br /&gt;
 &lt;br /&gt;
'''Aplicación Call-Center:''' Permite visualizar las pestañas [[#VIVAit Call|'''''VIVA''it Call''''']],[[#VIVAit_Response|'''''VIVA''it Response''''']] y [[#VIVAit Suite ACD+|'''''VIVA''it Suite ACD+''''']]  para tener control tanto del Contact Center, telefonía corporativa, las locuciones (MOH entre otras) y su mantenimiento.&lt;br /&gt;
&lt;br /&gt;
'''Aplicación Grabación:''' Permite visualizar únicamente en el portal la pestaña [[#VIVAit Record|'''''VIVA''it Record''''']] para el control de las grabaciones. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nivel administracion'''&lt;br /&gt;
|  | Como ya hemos comentado, a cada aplicación se la puede asignar un nivel que corresponde con el permiso de acción sobre la plataforma en las distintas ventanas.&lt;br /&gt;
|  | '''Bajo o ninguno:''' Permite acceder a las opciones como buscar con el filtro y permite ver la información de la cantidad de los objetos, es decir, ver solamente el listado sin poder ver mas datos de los objetos. No hay botones para operar.&lt;br /&gt;
&lt;br /&gt;
'''Medio:'''  	Permite acceder a las opciones como buscar con el filtro , visualizar la información (lectura) de un objeto y poder modificarlo (editarlo). Se habilitara para poder operar el botón '''''Editar'''''.&lt;br /&gt;
&lt;br /&gt;
'''Alto:'''   	Permite acceder a las opciones como buscar con filtro y además permite crear nuevos, duplicar, borrar y recuperar los objetos. Se habilitara para poder operar los botones '''''Nuevo''''', '''''Duplicar''''' , '''''Editar''''', '''''Borrar'''''y '''''Recuperar''''' .  &lt;br /&gt;
Para mas información [[#Duplicado de Datos|ver Duplicado de Datos ]], [[#Borrado de Datos |Borrado de Datos ]] y [[#Recuperación de datos| Recuperación de datos]].&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nivel usuario'''&lt;br /&gt;
|  | Referente a los permisos que tiene el usuario sobre su portal de usuario&lt;br /&gt;
|  | '''Bajo o ninguno:''' Permite acceder a las opciones como buscar con el filtro y permite ver la información de la cantidad de los objetos, es decir, ver solamente el listado sin poder ver mas datos de los objetos. No hay botones para operar.&lt;br /&gt;
&lt;br /&gt;
'''Medio:'''  	Permite acceder a las opciones como buscar con el filtro , visualizar la información (lectura) de un objeto y poder modificarlo (editarlo). Se habilitara para poder operar el botón '''''Editar'''''.&lt;br /&gt;
&lt;br /&gt;
'''Alto:'''   	Permite acceder a las opciones como buscar con filtro y además permite crear nuevos, duplicar, borrar y recuperar los objetos. Se habilitara para poder operar los botones '''''Nuevo''''', '''''Duplicar''''' , '''''Editar''''', '''''Borrar'''''y '''''Recuperar''''' .  &lt;br /&gt;
Para mas información [[#Duplicado de Datos|ver Duplicado de Datos ]], [[#Borrado de Datos |Borrado de Datos ]] y [[#Recuperación de datos| Recuperación de datos]].&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Ejes'''&lt;br /&gt;
|  | Los ejes a los que podemos acceder según la configuración común tendrá un nombre determinado. En el caso por ejemplo para un administrador hay cuatro ejes y en el caso de un usuario el numero de ejes asignado. Para más información [[#Ejes | ver sección Ejes]]||&lt;br /&gt;
|}&lt;br /&gt;
[[#Permisos_a_Usuarios | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Calendarios ===&lt;br /&gt;
&lt;br /&gt;
Los calendarios nos permiten crear eventos puntuales o repetitivos con un horario determinado.&lt;br /&gt;
Posteriormente, la plataforma '''''VIVA'''''it, a través de configuración de Dialplan podrá consultar el estado de un calendario en un momento determinado, obteniendo como resultado un &amp;quot;libre&amp;quot; o un &amp;quot;ocupado&amp;quot; y realizándose un diferente tratamiento en función del resultado.&lt;br /&gt;
Usos típicos de los calendarios son:&lt;br /&gt;
* Comprobar si se está dentro o fuera del horario de oficina con el objeto de desviar llamada a contestador o a operadora&lt;br /&gt;
* Establecer diferentes perfiles a agentes de contact center en función del día de la semana (agentes de fin de semana)&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Nota: Debido a un bug detectado, el proceso requerirá la realización de una sincronización&lt;br /&gt;
 manual de la sección &amp;quot;mdcal&amp;quot; desde el portal de administración.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como regla general, en los calendarios configuraremos (y en ese orden):&lt;br /&gt;
&lt;br /&gt;
* '''Servicios''': Se hace referencia a un servicio de calendarios; estos servicios podrán ser por ejemplo&lt;br /&gt;
:::* Servicio interno de plataforma '''''VIVA'''''it.&lt;br /&gt;
:::* Servicio de calendarios corporativo del cliente&lt;br /&gt;
:::* Servicio de calendarios de google...&lt;br /&gt;
* '''Cuentas''': Login y clave asociado a un servicio (por ejemplo usuario y clave para acceder al servicio de calendarios de google)&lt;br /&gt;
* '''Calendarios''': Calendarios '''internos''' de la plataforma '''''VIVA'''''it que deseemos crear&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La gestión de los calendarios, incluyendo altas, bajas y modificaciones de eventos se realiza actualmente desde el propio portal de administración como se puede ver en la siguiente imagen:&lt;br /&gt;
&amp;lt;!--[[Archivo:18 Pestaña General - Calendarios.jpg|center]]--&amp;gt;&lt;br /&gt;
[[File:PantallaCalendarios2.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Servicios ====&lt;br /&gt;
Esta ventana sirve para especificar donde está el servidor de calendarios y de qué tipo es (protocolo utilizado). &lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Servicios&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar que dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]])&lt;br /&gt;
[[Archivo:5 Busqueda en General - Calendarios - Servicios.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La explicación de funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) un nuevo &amp;quot;Servicio&amp;quot;  en la plataforma VIVAit pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:19 Calendarios - Nuevo Servicio.png|center]]&lt;br /&gt;
&lt;br /&gt;
Las opciones de los servicios de los calentarios se explican en la siguiente tabla:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Realm'''&lt;br /&gt;
|  | El nombre que se le va a dar el servicio (Obligatorio).&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''URL'''&lt;br /&gt;
|  | Se trata de la dirección de red (URL) para realizar el acceso al servidor de calendarios (Obligatorio).&lt;br /&gt;
|| Ejemplo: &amp;lt;nowiki&amp;gt; http://${HOST}/dav/html/cal.php/calendars/${CUENTA}/${CALENDARIO} &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Servidor'''&lt;br /&gt;
|  | Dirección de red donde está ubicado el servidor de calendario, normalmente será localhost (Obligatorio).&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Protocolo'''&lt;br /&gt;
|  | Elegir el protocolo empleado para sincronizar los calendarios&lt;br /&gt;
|  |  CalDav&lt;br /&gt;
iCal &lt;br /&gt;
&lt;br /&gt;
Exchange &lt;br /&gt;
&lt;br /&gt;
Iws &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Externo'''&lt;br /&gt;
| | Indicar si el servidor de calendarios es externo o no. &lt;br /&gt;
||Si / No. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Dpto'''&lt;br /&gt;
|  | Elegir un eje (Obligatorio) . Para más información [[#Ejes | ver sección Ejes]]&lt;br /&gt;
||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Servicios | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Cuentas ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| No confundir el nombre de usuario de la plataforma '''''VIVA'''''it, con el nombre de usuario para calendarios. Son objetos diferentes, por eso es necesario crearse una cuenta para manejar los calendarios.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Cuentas&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar que dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]])&lt;br /&gt;
[[Archivo:6 Busqueda en General - Calendarios - Cuentas.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
La explicación de funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) una nueva &amp;quot;Cuenta&amp;quot;  en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:20 Calendarios - Nueva Cuenta.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Las opciones de cuentas de calendarios se explican en la siguiente tabla:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Orden'''&lt;br /&gt;
|  | Orden de uso de la cuenta (Obligatorio).&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Cuenta'''&lt;br /&gt;
|  | Nombre de usuario (Obligatorio)  &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Clave'''&lt;br /&gt;
|  | Clave de usuario (Obligatorio) &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Usuario'''&lt;br /&gt;
|  |Usuario ACD (Obligatorio). Para más información [[#Usuarios | ver sección Usuarios ]]&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Servicio'''&lt;br /&gt;
| | Servicio al que se le asignará la cuenta (Obligatorio) . Para más información [[#Servicios | ver sección Servicios]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Cuentas | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Configuración (General - Calendarios) ====&lt;br /&gt;
&lt;br /&gt;
En esta ventana establecemos el periodo de refresco y de cache de los calendarios por defecto. Ambos son en minutos. &lt;br /&gt;
&lt;br /&gt;
[[Archivo:21 Calendarios - Configuracion.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Las opciones de la pestaña Usuario se explican en la siguiente tabla:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Refresco (min)'''&lt;br /&gt;
|  | Cada cuantos minutos actualizamos el calendario. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Periodo en cache (min)'''&lt;br /&gt;
|  | EL rango de tiempo en minutos que traemos en cada refresco.&lt;br /&gt;
|}&lt;br /&gt;
[[#Configuración_(General_-_Calendarios) | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Calendarios (General - Calendarios) ====&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Calendarios&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar que dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]])&lt;br /&gt;
[[Archivo:7 Busqueda en General - Calendarios - Calendarios.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
La explicación de funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) un &amp;quot;Calendario&amp;quot;  en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Nota.- Cada Calendario debe asociarse a un nodo y a una cuenta.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:22 Calendarios - Nuevo Calentario.png|center]]&lt;br /&gt;
&lt;br /&gt;
Las opciones de crear un nuevo calendario se explican en la siguiente tabla:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre del calendarios (Obligatorio).&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Descripción del calendario.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Zona horaria'''&lt;br /&gt;
|  | Zona horaria empleada.&lt;br /&gt;
|  | El formato es el siguiente: Europe/Madrid &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Refresco'''&lt;br /&gt;
|  | Periodo de refresco en minutos.  Si omitimos la configuración por defecto que tenemos en [[#Configuración_(General_-_Calendarios) | ver Configuración Calendarios]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Periodo en caché'''&lt;br /&gt;
| | Periodo en cache en minutos.Si omitimos la configuración por defecto que tenemos en [[#Configuración_(General_-_Calendarios) | ver Configuración Calendarios]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Datos asterisk'''&lt;br /&gt;
|  | Declara la función a emplear por el asterisk .&lt;br /&gt;
||Sin uso&lt;br /&gt;
&lt;br /&gt;
MD Calendario&lt;br /&gt;
&lt;br /&gt;
Asterisk &lt;br /&gt;
&lt;br /&gt;
MD Calendario y asterisk. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Ocupado'''&lt;br /&gt;
|  | Poner ocupado un evento. Por defecto será No.&lt;br /&gt;
||Si / No &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nodo'''&lt;br /&gt;
|  | Asignar un nodo (Obligatorio). &lt;br /&gt;
Para más información [[#Nodos | ver sección Nodos]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Cuentas'''&lt;br /&gt;
|  | Asignar una cuenta creada anteriormente al calendario  (Obligatorio). &lt;br /&gt;
Para más información[[#Cuentas | ver sección Cuentas]]&lt;br /&gt;
||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Calendarios_(General_-_Calendarios) | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Campos ===&lt;br /&gt;
En esta pestaña aparecen los campos de asterisk para los ficheros de configuración del dialplan, demonios, etc.&lt;br /&gt;
&lt;br /&gt;
Solo se utiliza la búsqueda sobre resultados, es decir, muestra directamente todos los registros de la base de datos, y sobre esos datos hace una búsqueda [[#Introducción |véase Introducción]]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La explicación de funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
Para dar de alta o modificar (Editar)  un &amp;quot;Campo&amp;quot; en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:23 Pestaña General - Campos - Nuevo Campo.png|center]]&lt;br /&gt;
&lt;br /&gt;
Las opciones de los servicios de los calendarios se explican en la siguiente tabla:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre del campo (Obligatorio).&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre común'''&lt;br /&gt;
|  | Nombre común del campo (Obligatorio). &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Descripción del campo.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Personalizado'''&lt;br /&gt;
|  | Un valor no por defecto.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Valor por Defecto'''&lt;br /&gt;
| |Valor del campo por defecto.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tipo Campo'''&lt;br /&gt;
|  | El tipo de valor del campo.&lt;br /&gt;
|  |Alfanumérico&lt;br /&gt;
Numérico&lt;br /&gt;
&lt;br /&gt;
Lógico&lt;br /&gt;
&lt;br /&gt;
Fecha&lt;br /&gt;
&lt;br /&gt;
Personalizado.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Clase Campo'''&lt;br /&gt;
|  | El tipo de campo que es.&lt;br /&gt;
|  |Buzón&lt;br /&gt;
&lt;br /&gt;
Grupo ACD&lt;br /&gt;
&lt;br /&gt;
SIP&lt;br /&gt;
&lt;br /&gt;
Sala de conferencia&lt;br /&gt;
&lt;br /&gt;
General ACD&lt;br /&gt;
&lt;br /&gt;
General sala de conferencia&lt;br /&gt;
&lt;br /&gt;
General SIP&lt;br /&gt;
&lt;br /&gt;
General Buzones&lt;br /&gt;
&lt;br /&gt;
MOH&lt;br /&gt;
&lt;br /&gt;
General&lt;br /&gt;
&lt;br /&gt;
PJSIP&lt;br /&gt;
&lt;br /&gt;
Aprovisionamiento&lt;br /&gt;
&lt;br /&gt;
Enlace Exterior&lt;br /&gt;
&lt;br /&gt;
Enlace Interior&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Campos | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Plantillas ===&lt;br /&gt;
&lt;br /&gt;
En esta pestaña están las plantillas de configuración para los diferentes dispositivos, son un medio para evitar secciones repetitivas en los archivos de configuración de Asterisk como extensions.conf, sip.conf o iax.conf. Las plantillas no debe confundirse con macros en extensions.conf. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Plantillas&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales(Borrar, Nuevo , Editar y Duplicar que dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]])&lt;br /&gt;
[[Archivo:8 Busqueda en General - Plantillas.png|800 px|center]]&lt;br /&gt;
&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) una &amp;quot;Plantilla&amp;quot; en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
[[Archivo:24 Pestaña General - Plantillas- Nuevo Plantilla.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Las opciones para crear una nueva plantilla se explican en la siguiente tabla:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre de la plantilla (Obligatorio).&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Clase Plantillas'''&lt;br /&gt;
|  | Conjuntos de valores asociados a los distintos elementos de la plataforma.&lt;br /&gt;
||Buzón&lt;br /&gt;
Grupo ACD&lt;br /&gt;
&lt;br /&gt;
Enlace Exterior&lt;br /&gt;
&lt;br /&gt;
Enlace interior&lt;br /&gt;
&lt;br /&gt;
Perfil extensión&lt;br /&gt;
&lt;br /&gt;
Música en espera&lt;br /&gt;
&lt;br /&gt;
Sala conferencia&lt;br /&gt;
&lt;br /&gt;
General ACD&lt;br /&gt;
&lt;br /&gt;
General conferencias&lt;br /&gt;
&lt;br /&gt;
General SIP&lt;br /&gt;
&lt;br /&gt;
General buzones&lt;br /&gt;
&lt;br /&gt;
VDN&lt;br /&gt;
&lt;br /&gt;
General VIVAit-cti&lt;br /&gt;
&lt;br /&gt;
General recordGWd&lt;br /&gt;
&lt;br /&gt;
General recordProcesad&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Valor'''&lt;br /&gt;
|  | Valor de la plantilla (Obligatorio).&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Añadir campos buzones'''&lt;br /&gt;
|  | Si hay creados tipo de campos Buzones se mostraran para añadir y darles valores. Para más información [[#Campos | ver sección Campos]]&lt;br /&gt;
||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[#Plantillas | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Licencias ===&lt;br /&gt;
En proceso de desarrollo , tendrá una funcionalidad en el futuro.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:25 Pestaña General - Licencias.jpg|800px|center]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
PENDIENTE DE DESARROLLO &lt;br /&gt;
VER REDMIND #1435&lt;br /&gt;
&lt;br /&gt;
Cuando pulsemos a importar licencias aparecerá la siguiente imagen:&lt;br /&gt;
[[Archivo:25_1 Pestaña General - Licencias- Importar.png|600px|center]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#Licencias | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Sincronización manual ===&lt;br /&gt;
Para generar manualmente una sincronización de los diferentes archivos de configuración de la plataforma.&lt;br /&gt;
&amp;lt;!--[[Archivo:26 Pestaña General - Sincronizado manual.png|center]]--&amp;gt;&lt;br /&gt;
[[File:SincronizadoManual.png|center]]&lt;br /&gt;
&lt;br /&gt;
[[#Sincronización_manual | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
==''VIVA''it Call ==&lt;br /&gt;
Esta pestaña ofrece al usuario la gestión y configuración de la telefonía corporativa  (rutas, aprovisionamiento, facilidades, dispositivos...). Está formada por los siguientes submenús: &lt;br /&gt;
&amp;lt;!--[[Archivo:27 Pestaña ViVAit Call.jpg|center]]--&amp;gt;&lt;br /&gt;
[[File:Vivait-Call3.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver arriba]&lt;br /&gt;
=== Servicios usuarios ===&lt;br /&gt;
El contenido de la pestaña '''''''VIVA'''''it  Call - Servicios Usuarios'' es el siguiente: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--[[Archivo:28 Pestaña ViVAit Call - Servicios Usuarios.jpg|center]]--&amp;gt;&lt;br /&gt;
[[File:Vivait-Call-Servicios-Usuarios2.png|center]]&lt;br /&gt;
&lt;br /&gt;
==== Conferencias ====&lt;br /&gt;
Esta pestaña sirve para crear y modificar las conferencias de los usuarios. Una vez ingresemos a esa pantalla de &amp;quot;Conferencias&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar que dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]]).&lt;br /&gt;
[[Archivo:9 Busqueda en VIVAit Call - Servicios usuarios - Conferencias.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) una &amp;quot;Conferencia&amp;quot; en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:29 Pestaña ViVAit Call - Servicios Usuarios - Nueva Conferencia.png|center]]&lt;br /&gt;
&lt;br /&gt;
Las opciones de la ventana de conferencias se explican en la tabla siguiente:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Número'''&lt;br /&gt;
|  | Número de la sala de conferencia (Obligatorio).&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Descripción de la sala de conferencias. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''PIN'''&lt;br /&gt;
|  |PIN de acceso a la sala de conferencia.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''PIN admin'''&lt;br /&gt;
|  | PIN del administrador de la sala de conferencias.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Plantilla'''&lt;br /&gt;
| |Plantilla que debe usarse.&lt;br /&gt;
Para más información[[#Plantillas | ver sección General - Plantillas ]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nodo'''&lt;br /&gt;
|  | A que nodo está asociada la sala de conferencia . &lt;br /&gt;
Para más información [[#Nodos | ver sección Nodos]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Grabar enrutamiento'''&lt;br /&gt;
|  | Este campo define si van a grabar las llamadas que se enruten para esta &amp;quot;Sala de conferencias&amp;quot;.&lt;br /&gt;
||Sin grabación&lt;br /&gt;
&lt;br /&gt;
Grabación sin beep periódico&lt;br /&gt;
&lt;br /&gt;
Grabación con beep periódico.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[#Conferencias | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Buzón de voz ====&lt;br /&gt;
Ofrece la posibilidad de dejar un mensaje vocal que podrá escucharse más tarde,cuando llamen al usuario y este se encuentre ocupado, tenga un desvío a mensajería o simplemente cuando no quiera contestar a una llamada.&lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Buzón de voz&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar que dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]]).&lt;br /&gt;
[[Archivo:9_1 Busqueda en VIVAit Call - Servicios usuarios - Buzones de voz.png|800px|center]]&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) un  &amp;quot;Buzón de voz&amp;quot; en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:30 Pestaña ViVAit Call - Servicios Usuarios - Nueva Buzon de voz.png|center]]&lt;br /&gt;
Las opciones de la pestaña Usuario se explican en la siguiente tabla:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Número'''&lt;br /&gt;
|  | Número del Buzón (Obligatorio) .&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nodo'''&lt;br /&gt;
|  | A que nodo esta asociado el buzón de voz(Obligatorio) .&lt;br /&gt;
Para más información [[#Nodos | ver sección General - Nodos]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Usuario'''&lt;br /&gt;
|  | Usuario propietario del buzón .&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Plantilla'''&lt;br /&gt;
|  | Plantilla asociada al buzón (Obligatorio). Para más información[[#Plantillas | ver sección General - Plantillas ]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Clave'''&lt;br /&gt;
|  | Clave de acceso al buzón de voz.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Archivo adjunto'''&lt;br /&gt;
| | Se trata de adjuntar un audio a un correo electrónico.&lt;br /&gt;
||Si / No&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Buzón_de_voz| Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Dispositivos ===&lt;br /&gt;
El contenido de la pestaña '''''''VIVA'''''it  Call - Dispositivos'' es el siguiente: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--[[Archivo:31 Pestaña ViVAit Call - Dispositivos.jpg|center]]--&amp;gt;&lt;br /&gt;
[[File:Dispositivos2.png|center]]&lt;br /&gt;
&lt;br /&gt;
[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver arriba]&lt;br /&gt;
==== Clases de Dispositivos ====&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Clases de Dispositivos&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar que dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]]).&lt;br /&gt;
[[Archivo:10 Busqueda en VIVAit Call - Dispositivos - Clases de dispositivos.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) una  &amp;quot;Clase de Dispositivo&amp;quot; en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:32 Pestaña ViVAit Call - Dispositivos - Nueva clase de dispositivo.png|center]]&lt;br /&gt;
&lt;br /&gt;
Las opciones con las que podemos encontrarnos son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre de la Clase de dispositivos (Obligatorio).&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Clase'''&lt;br /&gt;
|  | Especifica de que tipo es la clase de dispositivo. &lt;br /&gt;
|| Enlace interior&lt;br /&gt;
&lt;br /&gt;
Enlace Exterior&lt;br /&gt;
&lt;br /&gt;
Extensión&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Subclase'''&lt;br /&gt;
|  | La subclase a la que pertenece la clase de dispositivos . &amp;lt;!-- &amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL ¿Qué función tiene definir una subclase? &amp;lt;/span&amp;gt; --&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Driver'''&lt;br /&gt;
|  | Pendiente de versión.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Formato'''&lt;br /&gt;
| | Formato de marcación en el dial que va a tener la clase de dispositivo .&lt;br /&gt;
||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Clases_de_Dispositivos | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Enlace exterior ====&lt;br /&gt;
Este apartado permite crear los troncales para conectar los dispositivos con exterior. &lt;br /&gt;
 &lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Enlace exterior&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar que dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]]).&lt;br /&gt;
[[Archivo:11 Busqueda en Vivait Call - Dispositivos - Enlace Exterior.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) un  &amp;quot;Enlace exterior&amp;quot;  en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:33 Pestaña ViVAit Call - Dispositivos - Nueva enlace exterior.png|center]]&lt;br /&gt;
&lt;br /&gt;
Las opciones con las que podemos encontrarnos son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre enlace exterior (Obligatorio).&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Plantilla'''&lt;br /&gt;
|  | Plantilla empleada en el enlace exterior (Obligatorio). Para más información[[#Plantillas | ver sección General - Plantillas ]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Datos asterisk'''&lt;br /&gt;
|  | Se trata del contexto del dialplan donde se especifica la cadena de marcado  ver archivo ''ext_MARCAR_Externo_Particular.conf'' (Obligatorio).&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Sede'''&lt;br /&gt;
|  | A que sede pertenece el enlace exterior (Obligatorio). Para más información [[#Sedes | ver sección General - Sedes]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nodo'''&lt;br /&gt;
| | A que nodo pertenece el enlace exterior (Obligatorio). Para más información [[#Nodos | ver sección General - Nodos]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Dispositivo'''&lt;br /&gt;
|  | A que dispositivo aplica el enlace exterior  (Obligatorio).&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Categoría'''&lt;br /&gt;
|  | Categoría de llamadas (Obligatorio). Para más información [[#Categorías  | ver sección '''''VIVA'''''it Call - Categorías]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Dpto'''&lt;br /&gt;
|  | Elegir un eje (Obligatorio) . Para más información [[#Ejes | ver sección General - Ejes]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Grabar enrutamiento'''&lt;br /&gt;
|  | Este campo define si van a grabar las llamadas que se enruten para este “Enlace exterior&amp;quot;.&lt;br /&gt;
||Sin grabación&lt;br /&gt;
&lt;br /&gt;
Grabación sin beep periódico&lt;br /&gt;
&lt;br /&gt;
Grabación con beep periódico.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Enlace_exterior | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
==== Extensiones ====&lt;br /&gt;
Esta pestaña sirve para crear y modificar las extensiones de la centralita.  &lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Extensiones&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar que dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]]).&lt;br /&gt;
[[Archivo:12 Busqueda en VIVAit Call - Dispositivos - Extensiones.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) una  &amp;quot;Extensión&amp;quot;  en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:34 Pestaña ViVAit Call - Dispositivos - Nueva extension.png|center]]&lt;br /&gt;
&lt;br /&gt;
Las opciones con las que podemos encontrarnos son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Número'''&lt;br /&gt;
|  | Número de la extensión (Obligatorio). &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre mostrar'''&lt;br /&gt;
|  | Nombre que presentara la extensión al llamar el usuario.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Prioridad'''&lt;br /&gt;
|  | Representa la prioridad de la extensión. Cuanto más baja, más prioritaria es. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Plantilla'''&lt;br /&gt;
|  | Plantilla empleada para la extensión (Obligatorio). Para más información[[#Plantillas | ver sección General - Plantillas ]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Usuario de movilidad'''&lt;br /&gt;
|  | Es un campo de solo lectura, en el que indica que usuario se ha movido a esa extensión. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Usuario propietario'''&lt;br /&gt;
| | Se asigna el usuario propietario de la extensión. Para más información[[#Usuarios | ver sección Usuarios ]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Hay movilidad'''&lt;br /&gt;
|  | Habilita la movilidad en la extensión para que un usuario se pueda mover a dicha extensión. &lt;br /&gt;
||Si / No. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Teléfono'''&lt;br /&gt;
|  | El modelo de teléfono donde va a estar configurada la extensión. Para más información[[#Módelos de teléfonos | ver sección '''''VIVA'''''it Call - Aprovisionamiento - Modelos de teléfonos]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Hay movilidad'''&lt;br /&gt;
|  | Habilita la movilidad en la extensión para que un usuario se pueda mover a dicha extensión.  '''NECESITA DAR PERMISOS DE CENTRALITA AL USUARIO.'''&lt;br /&gt;
||Si / No. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío incondicional'''&lt;br /&gt;
|  | Introducir un número al que se desvían las llamadas de dicha extensión.&lt;br /&gt;
||  &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío incondicional a mensa'''&lt;br /&gt;
|  | Desvía todas las llamadas a un buzón de voz. &lt;br /&gt;
||Si / No. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío no contesta'''&lt;br /&gt;
|  | Introducir un número al que se desvían las llamadas si la extensión no contesta. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío no contesta a mensa'''&lt;br /&gt;
|  | Si la extensión no contesta, la llamada se va al buzón de voz. &lt;br /&gt;
||Si / No. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por ocupado'''&lt;br /&gt;
| | Introducir un número al que se desvían las llamadas si la extensión está ocupada. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por ocupado a mensa'''&lt;br /&gt;
|  | Si la extensión está ocupada, la llamada se va al buzón de voz.&lt;br /&gt;
||Si / No.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por fuera de servicio'''&lt;br /&gt;
|  | Número al que se desvían las llamadas  si la extensión está fuera de servicio. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desvío por fuera de servicio a mensa'''&lt;br /&gt;
| | Si la extensión está fuera de servicio, las llamadas se van al buzón de voz. &lt;br /&gt;
||Si / No.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Comunicaciones Personales'''&lt;br /&gt;
|  | Indica a través de calendarios y horarios cuando el usuario de la extensión tendrá disponibilidad. Para más información[[#Calendarios | ver sección General - Calendarios]]&lt;br /&gt;
||Si / No.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Num. mostrar exterior'''&lt;br /&gt;
|  | Número con el que se identifica la llamada al exterior. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Música en espera'''&lt;br /&gt;
| | Música en espera que tendrá la extensión si retiene una llamada en la cola esperando a ser contestada.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Música en retenciones'''&lt;br /&gt;
|  | Música en retenciones que tendrá la extensión si retiene una llamada una vez contestada.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Clave registro'''&lt;br /&gt;
|  | Clave para el registro de la extensión en el asterisk.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Buzón'''&lt;br /&gt;
|  | Buzón de voz asociado a la extensión. Para más información[[#Buzón de voz | ver sección '''''VIVA'''''it Call - Buzón de voz]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Categoría de desvío'''&lt;br /&gt;
|  | Categoría que tienen las llamadas desviadas (Obligatorio). Para más información [[#Categorías  | ver sección '''''VIVA'''''it Call - Categorías]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Sede'''&lt;br /&gt;
|  | Sede a la que pertenece la extensión (Obligatorio). Para más información [[#Sedes | ver sección General - Sedes]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nodo'''&lt;br /&gt;
|  | Nodo donde está registrada la extensión. Para más información [[#Nodos | ver sección General - Nodos]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nodo Secundario'''&lt;br /&gt;
|  | Nodo de registro de la extensión si por alguna razón no se puede registrar en el Nodo Principal. Para más información [[#Nodos | ver sección General - Nodos]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Dpto'''&lt;br /&gt;
|  | Elegir un eje (Obligatorio) . Para más información [[#Ejes | ver sección General - Ejes]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Grabar enrutamiento'''&lt;br /&gt;
|  | Este campo define si van a grabar las llamadas que se enruten para esta &amp;quot;Extensión&amp;quot;.&lt;br /&gt;
||Sin grabación&lt;br /&gt;
&lt;br /&gt;
Grabación sin beep periódico&lt;br /&gt;
&lt;br /&gt;
Grabación con beep periódico.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Puesto'''&lt;br /&gt;
|  | Asocia la extensión a un puesto  (Nombre del PC).&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Categoría'''&lt;br /&gt;
|  | Categoría de llamadas (Obligatorio).&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Dispositivo'''&lt;br /&gt;
|  | Clase de dispositivo de tipo Extensión (Obligatorio). Para más información[[#Clases de dispositivos | ver sección '''''VIVA'''''it Call - Dispositivos - Clases de dispositivos ]]&lt;br /&gt;
||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Extensiones | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
=== Agendas ===&lt;br /&gt;
Aquellos contactos creados (nuevo datos agenda)  o importados que serán comunes para todos los usuarios o contactos corporativos.&lt;br /&gt;
&lt;br /&gt;
Existen diferencias entre Agendas de Corporativo y Call Center.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==== Agendas de Corporativo ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Agendas de Call Center ====&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esta pestaña sirve para rellenar los datos del propietario de la agenda e importar el fichero con los contactos.&lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Agendas&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales(Importar Contactos, Borrar, Nuevo , Editar y Duplicar que dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]]).&lt;br /&gt;
[[Archivo:13_0 Busqueda en Vivait Call - Agendas.png|800 px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) una  &amp;quot;Agenda&amp;quot;  en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--[[Archivo:35 Pestaña ViVAit Call - Agendas - Nueva agenda.png|center]]--&amp;gt;&lt;br /&gt;
[[File:Agenda.png|center]]&lt;br /&gt;
&lt;br /&gt;
Las opciones con las que podemos encontrarnos son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre del propietario de la agenda (Obligatorio) &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Primer Apellido'''&lt;br /&gt;
|  | Primer apellido del propietario de la agenda.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Segundo Apellido '''&lt;br /&gt;
|  | Segundo apellido del propietario de la agenda.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Empresa'''&lt;br /&gt;
|  | Empresa donde trabaja el propietario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre en Pantalla'''&lt;br /&gt;
| | Nombre con el que aparece la agenda por la pantalla (Obligatorio) &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Dirección'''&lt;br /&gt;
|  | Dirección &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Cod. Postal'''&lt;br /&gt;
|  | Código postal.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
|  | Localidad.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Provincia'''&lt;br /&gt;
|  | Provincia.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Dpto'''&lt;br /&gt;
|  | Elegir un eje (Obligatorio) . Para más información [[#Ejes | ver sección Ejes]]&lt;br /&gt;
|-&lt;br /&gt;
|font-weight: bold;&amp;quot; | '''Teléfonos de la agenda'''&lt;br /&gt;
|| Si queremos añadir numero de teléfonos adicionales. Se pulsa sobre el botón &amp;quot;Nuevo Teléfono&amp;quot; nos aparecerá dos campos: uno a rellenar el numero de teléfono y otro para seccionar el tipo. &lt;br /&gt;
El botón &amp;quot;Borrar teléfono&amp;quot; solo borrara el ultimo teléfono adicional añadido a la agenda.&lt;br /&gt;
|-&lt;br /&gt;
|font-weight: bold;&amp;quot; | '''C_CAMPO1'''&lt;br /&gt;
|| Parámetro opcional 1 de la agenda&lt;br /&gt;
|-&lt;br /&gt;
|font-weight: bold;&amp;quot; | '''C_CAMPO2'''&lt;br /&gt;
|| Parámetro opcional 1 de la agenda&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Importación de contactos con un fichero ====&lt;br /&gt;
El '''''portal de administración de la plataforma ''VIVA''it''''' permite la importación de un archivo csv donde puedes importar tu agenda. Una vez accedemos a la pestaña ''''''VIVA'''''it  Call - Agendas' pulsando el botón &amp;quot;Importar Contactos&amp;quot; aparece la siguiente ventana:&lt;br /&gt;
[[Archivo:35_1 Pestaña ViVAit Call - Agendas - Nueva agenda_Importada.png|center]]&lt;br /&gt;
&lt;br /&gt;
==== Formato del CSV para la Agenda ====&lt;br /&gt;
El CSV debe tener el siguiente formato personalizado, para ello puedes crearlo desde aplicaciones de hojas de calculo que permitan guardar la tabla como CSV. &lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|- style=&amp;quot;font-style: italic; color: blue;&amp;quot;&lt;br /&gt;
| - || - || APELLIDO 1|| APELLIDO 2  || EMPRESA  || NOMBRE EN PANTALLA  || DIRECCIÓN || CP || LOCALIDAD || PROVINCIA&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-style: italic; color: green;&amp;quot;|  AGENDA || '''Texto con el nombre del contacto en la AGENDA '''||''' Texto para APELLIDO 1'''|| '''Texto para APELLIDO 2 '''||''' Texto para EMPRESA'''||''' Texto para NOMBRE EN PANTALLA '''||''' Texto para DIRECCIÓN '''||''' Texto para CP''' ||''' Texto para LOCALIDAD''' || '''Texto para PROVINCIA'''&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-style: italic; color:#e76700;&amp;quot;| TELEFONO || '''Texto numérico con Numero de teléfono Opcional''' || - || - || -|| -|| - || -|| - || -&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-style: italic; color: green;&amp;quot;| OPCIONAL|| '''Texto campo NOTAS''' || -|| - || - || - || -|| -|| -||-&lt;br /&gt;
|}&lt;br /&gt;
'''Notas:'''&lt;br /&gt;
*'''Se debe de tener las opciones AGENDA, TELEFONO (sin tilde), OPCIONAL en la primera columna y a partir de la segunda fila después deben ir los datos en orden.'''&lt;br /&gt;
*'''Los campos color azul deben existir solamente una vez y en la primera fila.'''&lt;br /&gt;
&lt;br /&gt;
*'''Los campos de texto verde solo puede aparecer una vez por contacto.'''&lt;br /&gt;
&lt;br /&gt;
*'''Los campos de texto naranja varias veces como números adicionales se desea añadir al contacto,  pero nunca en la misma fila.'''&lt;br /&gt;
*'''Los campos de texto en negrita son para rellenar los datos del contacto.'''&lt;br /&gt;
&lt;br /&gt;
Otras consideraciones a tener en cuenta:&lt;br /&gt;
&lt;br /&gt;
* El Departamento y los ejes serán los mismos que tenga el usuario que los crea. Si se desean cambiar debe hacerse manualmente desde el portal de administración.&lt;br /&gt;
&lt;br /&gt;
* El tipo de teléfono no puede cambiarse manualmente desde el CSV. Si se desean cambiar debe hacerse manualmente desde el portal de administración.&lt;br /&gt;
&lt;br /&gt;
* Si faltan campos se insertarán vacíos y si sobran no se importarán. &lt;br /&gt;
&lt;br /&gt;
[[#Agendas | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Categorías ===&lt;br /&gt;
&lt;br /&gt;
Una categoría es una colección de prerutas existentes,se les suele dar el nombre de interna, local, nacional e internacional(en caso aislados), y siguiendo el orden cada uno incluye al anterior, agregando así un grado mas de permisos. La idea es que al configurar cada usuario en nuestro sistema, limitemos los accesos que cada uno tenga, sabiendo que cada uno solo puede marcar estrictamente a lo que nosotros le permitimos y que camino que debe seguir la llamada.&lt;br /&gt;
&lt;br /&gt;
'''Recomendación''': Crear primero una categoría y todas sus prerutas, luego al crear el resto podemos duplicar las prerutas de una categoría existente, ahorrando mucho tiempo de configuración.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Categorías&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]]).&lt;br /&gt;
[[Archivo:13_1 Busqueda en Vivait Call - Categorias.png|800 px |center]]&lt;br /&gt;
&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) una &amp;quot;Categoría&amp;quot; en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
[[Archivo:36 Pestaña ViVAit Call - Categorias - Nueva categoria.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Las opciones con las que podemos encontrarnos son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre de la categoría (Obligatorio) .&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Descripción de la categoría.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Dpto'''&lt;br /&gt;
|  | Elegir un eje (Obligatorio) . Para más información [[#Ejes | ver sección Ejes]]&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Duplicar rutas'''&lt;br /&gt;
|  | Si queremos duplicar las prerutas de una categoriza existente, ahorraremos mucho tiempo de configuración. Para más información[[#Prerutas | ver sección '''''VIVA'''''it Call - Prerutas]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Categorías | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Facilidades ===&lt;br /&gt;
&lt;br /&gt;
Esta pestaña, por la comodidad de usuarios, permite crear las marcaciones cortas para leer un buzón, capturar una extensión, activar retrollamada, cancelar retrollamada, etc.&lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Facilidades&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]]).&lt;br /&gt;
[[Archivo:13 Busqueda en Vivait Call - Facilidades.png|800 px|center]]&lt;br /&gt;
&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) una  &amp;quot;Facilidad&amp;quot;  en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
[[Archivo:37 Pestaña ViVAit Call - Facilidades - Nueva facilidad.png|center]]&lt;br /&gt;
&lt;br /&gt;
Las opciones con las que podemos encontrarnos son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Número para marcar la facilidad (Obligatorio) .&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tipo'''&lt;br /&gt;
|  | El tipo de facilidad &lt;br /&gt;
|| Leer buzón&lt;br /&gt;
&lt;br /&gt;
Capturar extensión&lt;br /&gt;
&lt;br /&gt;
Activar retrollamada&lt;br /&gt;
&lt;br /&gt;
Cancelar retrollamada&lt;br /&gt;
&lt;br /&gt;
Login movilidad&lt;br /&gt;
&lt;br /&gt;
Logout movilidad&lt;br /&gt;
&lt;br /&gt;
Desvío extensión incondicional&lt;br /&gt;
&lt;br /&gt;
Desvío extensión incondicional a mensajería&lt;br /&gt;
&lt;br /&gt;
Desvío extensión por no contesta&lt;br /&gt;
&lt;br /&gt;
Desvío extensión por no contesta a mensajería&lt;br /&gt;
&lt;br /&gt;
Desvío extensión por ocupado&lt;br /&gt;
&lt;br /&gt;
Desvío extensión por ocupado a mensajería&lt;br /&gt;
&lt;br /&gt;
Desvío extensión por fuera de servicio&lt;br /&gt;
&lt;br /&gt;
Desvío usuario incondicional&lt;br /&gt;
&lt;br /&gt;
Desvío usuario incondicional a mensajería&lt;br /&gt;
&lt;br /&gt;
Desvío usuario por no contesta&lt;br /&gt;
&lt;br /&gt;
Desvío usuario por no contesta a mensajería&lt;br /&gt;
&lt;br /&gt;
Desvío usuario por ocupado&lt;br /&gt;
&lt;br /&gt;
Desvío usuario por ocupado a mensajería&lt;br /&gt;
&lt;br /&gt;
Desvío usuario por fuera de servicio&lt;br /&gt;
&lt;br /&gt;
Login en grupos corporativos&lt;br /&gt;
&lt;br /&gt;
Logout en grupos corporativos&lt;br /&gt;
&lt;br /&gt;
Pausa en grupos corporativos&lt;br /&gt;
&lt;br /&gt;
Despausa en grupos corporativos&lt;br /&gt;
&lt;br /&gt;
Facilidad JS.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Grabar enrutamiento'''&lt;br /&gt;
|  | Este campo define si van a grabar las llamadas que se enruten para esta Facilidad.&lt;br /&gt;
||Sin grabación&lt;br /&gt;
Grabación sin beep periódico&lt;br /&gt;
&lt;br /&gt;
Grabación con beep periódico&lt;br /&gt;
&lt;br /&gt;
Descartar grabación.&lt;br /&gt;
|}&lt;br /&gt;
[[#Facilidades | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== VDN (VIVAit Call)===&lt;br /&gt;
&lt;br /&gt;
VDN ('''V'''ector '''D'''irectory '''N'''umber) se utiliza para asignar un número externo a una extensión de la red interna.  Cada VDN tiene asociado un vector el cual se encarga  de enlutar el VDN creado con la extensión&lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;VDN&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]]).&lt;br /&gt;
[[Archivo:14 Busqueda en VIVAit call - VDN.png|800 px|center]]&lt;br /&gt;
&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) un &amp;quot;VDN&amp;quot;  en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
[[Archivo:38 Pestaña ViVAit Call - VDN - Nuevo VDN.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Las opciones con las que podemos encontrarnos son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre que tiene el VDN.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre mostrar'''&lt;br /&gt;
|  | Nombre que podrá presentar el VDN.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Descripción breve sobre el VDN Corporativo.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Notas'''&lt;br /&gt;
|  | Agregar una nota adicional sobre el VDN.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nodo'''&lt;br /&gt;
| | Indicar a que nodo se aplica el VDN (obligatorio). Para más información [[#Nodos | ver sección General - Nodos]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Grabar enrutamiento'''&lt;br /&gt;
|  | Este campo define si van a grabar las llamadas que se enruten para este VDN.&lt;br /&gt;
||Sin grabación&lt;br /&gt;
&lt;br /&gt;
Grabación sin beep periódico&lt;br /&gt;
&lt;br /&gt;
Grabación con beep periódico&lt;br /&gt;
&lt;br /&gt;
Descartar grabación.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Dpto.'''&lt;br /&gt;
|  | Elegir un eje (Obligatorio) . Para más información [[#Ejes | ver sección Ejes]].&lt;br /&gt;
||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
En un futuro se contempla que pueda usarse una plantilla personalidad para un grupo VDN del dialplan.&lt;br /&gt;
&lt;br /&gt;
[[#VDN_(VIVAit_Call) | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Grupos ===&lt;br /&gt;
Los grupos de '''''VIVA'''''it Call y de '''''VIVA'''''it Suite comparten numeración en una solución VIVAit, pero son diferentes entidades que se gestionan en diferentes entradas del portal&lt;br /&gt;
&lt;br /&gt;
El contenido de la pestaña '''''''VIVA'''''it Call - Grupos'' es el siguiente: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--[[Archivo:50 Pestaña ViVAit Call - Grupos.jpg|center]]--&amp;gt;&lt;br /&gt;
[[File:Gruposcorporativos.png|center]]&lt;br /&gt;
[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver arriba]&lt;br /&gt;
==== Grupos de salto ====&lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Grupos de salto&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]]).&lt;br /&gt;
[[Archivo:15 Busqueda en VIVAit Call - Grupos - Grupos de Salto.png|820px|center]]&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) un  &amp;quot;Grupo de salto &amp;quot;  en la plataforma '''''VIVA'''''it  pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
[[Archivo:51 Pestaña ViVAit Call - Grupos - Nuevo grupo de salto - Pestaña Grupo.jpg|center]]&lt;br /&gt;
Las opciones con las que podemos encontrarnos son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Numero'''&lt;br /&gt;
|  | Numero asociado al grupo de salto (obligatorio). &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre a mostrar'''&lt;br /&gt;
|  | Nombre que presentara el grupo al llamante.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Descripción breve sobre el grupo de salto.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nodo'''&lt;br /&gt;
|  | Nodo al que pertenece el grupo de salto (obligatorio). Para más información [[#Nodos | ver sección General - Nodos]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Plantilla'''&lt;br /&gt;
| | Plantilla empleada para el grupo de salto (obligatorio). Para más información[[#Plantillas | ver sección General - Plantillas ]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Grabar enrutamiento'''&lt;br /&gt;
|  | Este campo define si van a grabar las llamadas que se enruten para este/a “Objeto”.&lt;br /&gt;
||Sin grabación&lt;br /&gt;
&lt;br /&gt;
Grabación sin beep periódico&lt;br /&gt;
&lt;br /&gt;
Grabación con beep periódico&lt;br /&gt;
&lt;br /&gt;
Descartar grabación.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Música'''&lt;br /&gt;
|  | Musica en espera que se oirá al entrar en la cola del grupo de salto.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tiempo admin. de centralita'''&lt;br /&gt;
|  | Son los segundos que se dejan al agente para realizar algún tipo de gestión una vez finalizada la llamada.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Categoría'''&lt;br /&gt;
|  | Categoría de llamadas (Obligatorio). Para más información [[#Categorías  | ver sección '''''VIVA'''''it Call - Categorías]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Dpto'''&lt;br /&gt;
| | Elegir un eje (Obligatorio) . Para más información [[#Ejes | ver sección Ejes]].&lt;br /&gt;
||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Al pulsar el botón &amp;quot;Agregar campo&amp;quot; podremos añadir una serie de campos para configurar el funcionamiento del grupo de salto.&lt;br /&gt;
Entre los campos disponibles se encuentra el de &amp;quot;estrategia&amp;quot; que va a influir en el modo en que las llamadas al grupo de salto se van distribuyendo entre las extensiones.&lt;br /&gt;
&lt;br /&gt;
Alguna de las estrategias disponibles son: &lt;br /&gt;
&lt;br /&gt;
'''Ringall''': Llama simultáneamente a todos los dispositivos disponibles hasta que uno conteste. &lt;br /&gt;
&lt;br /&gt;
'''Roundrobin''': Se turna llamado a cada dispositivo disponible.&lt;br /&gt;
&lt;br /&gt;
'''Leastrecent''': Llama al dispositivo que hace más tiempo que colgó una llamada en esta cola.&lt;br /&gt;
&lt;br /&gt;
'''Fewestcalls''': llama al que tenga menos llamadas completas de esta cola.&lt;br /&gt;
 &lt;br /&gt;
'''Random''': Llama a uno de los dispositivos disponibles, de forma aleatoria.&lt;br /&gt;
&lt;br /&gt;
'''rrmemory''': round robin con memoria, recuerda el dispositivo que recibió la última llamada.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Version Antigua&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la pestaña Extensiones al asignar una extensión aparecerá:&lt;br /&gt;
[[Archivo:52 Pestaña ViVAit Call - Grupos - Nuevo grupo de salto - Pestaña Extensiones - Nueva extension.jpg|center]]&lt;br /&gt;
Las explicación de las opciones estan en la siguiente tabla:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Extensión'''&lt;br /&gt;
|  | Número de una extensión (obligatorio). Para más información[[#Extensiones  | ver sección '''''VIVA'''''it Call - Dispositivos - Extensiones]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Prioridad'''&lt;br /&gt;
|  | Representa la prioridad de la extensión. Cuanto más baja más prioritaria es. Las extensiones identificadas con la prioridad menor recibirán las llamadas siempre y las extensiones identificadas con prioridad mayor solo recibirán llamadas cuando las de prioridad inferior estén ocupadas. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Permanente'''&lt;br /&gt;
|  |  Si el valor es &amp;quot;No&amp;quot; ofrece la posibilidad al usuario al que pertenece la extensión, podrá desunirse del grupo. En caso contrario, aunque el usuario marque la desunión a los grupos seguirá perteneciendo al mismo grupo de salto.&lt;br /&gt;
|| Sí / No.&lt;br /&gt;
|}&lt;br /&gt;
Cuando todas las extensiones tienen la misma prioridad el '''orden''' en el que la llamada suena en las extensiones es el orden que la extensión ocupa en la Base de Datos.&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En la pestaña Extensiones al asignar una extensión aparecerá la siguiente ventana:&lt;br /&gt;
&lt;br /&gt;
[[File:Campo-orden.jpg]]&lt;br /&gt;
&lt;br /&gt;
Las explicación de las opciones estan en la siguiente tabla:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Extensión'''&lt;br /&gt;
|  | Número de una extensión (obligatorio). Para más información[[#Extensiones  | ver sección '''''VIVA'''''it Call - Dispositivos - Extensiones]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Prioridad'''&lt;br /&gt;
|  | Representa la prioridad de la extensión. Cuanto más baja más prioritaria es. Las extensiones identificadas con la prioridad menor recibirán las llamadas siempre y las extensiones identificadas con prioridad mayor solo recibirán llamadas cuando las de prioridad inferior estén ocupadas. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Permanente'''&lt;br /&gt;
|  |  Si el valor es &amp;quot;No&amp;quot; ofrece la posibilidad al usuario al que pertenece la extensión, podrá desunirse del grupo. En caso contrario, aunque el usuario marque la desunión a los grupos seguirá perteneciendo al mismo grupo de salto.&lt;br /&gt;
|| Sí / No.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Orden'''&lt;br /&gt;
|  |  El campo “orden” indica la posición que cada extensión ocupa dentro del grupo de salto. De esta forma las llamadas al grupo de salto se irán recibiendo en las extensiones en función del “nº de orden asignado” (una extensión con nº de orden 1 recibirá la llamada antes que una extensión con nº de orden 2, siempre que no esté ocupada).&lt;br /&gt;
||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Para que el nº de orden determine la extensión en la que se recibe la llamada en un grupo de salto es imprescindible que la estrategia indicada en el grupo sea “linear”. &lt;br /&gt;
En cualquier otro caso será la estrategia la que determine la extensión en la que se recibe la llamada&lt;br /&gt;
&lt;br /&gt;
Si una extensión no tiene nº de orden asignado será la primera en recibir las llamadas del grupo de salto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Grupos_de_salto | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
==== Grupos de operadoras ====&lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Grupos de operadoras&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]]).&lt;br /&gt;
[[Archivo:16 Busqueda en VIVAit Call - Grupos - Grupos de operadoras.png|800 px|center]]&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) un  &amp;quot;Grupo de operadora&amp;quot;  en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:53 Pestaña ViVAit Call - Grupos - Nuevo grupo de operadoras - Pestaña Grupo.png|center]]&lt;br /&gt;
Las opciones con las que podemos encontrarnos son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Numero'''&lt;br /&gt;
|  | Numero asociado al Grupo de operadoras (obligatorio).&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre a mostrar'''&lt;br /&gt;
|  | Nombre que presentara el grupo al llamante.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Descripción breve sobre el grupo de operadoras .&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nodo'''&lt;br /&gt;
|  | Nodo al que pertenece el grupo de operadoras (obligatorio). Para más información [[#Nodos | ver sección General - Nodos]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Plantilla'''&lt;br /&gt;
| | Plantilla empleada para el grupo de operadoras (obligatorio). Para más información[[#Plantillas | ver sección General - Plantillas ]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Grabar enrutamiento'''&lt;br /&gt;
|  | Este campo define si van a grabar las llamadas que se enruten para este Grupo de operadoras.&lt;br /&gt;
||Sin grabación&lt;br /&gt;
&lt;br /&gt;
Grabación sin beep periódico&lt;br /&gt;
&lt;br /&gt;
Grabación con beep periódico&lt;br /&gt;
&lt;br /&gt;
Descartar grabación.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Música'''&lt;br /&gt;
|  | Musica en espera que se oirá al entrar en la cola del grupo de operadoras.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tiempo admin. de centralita'''&lt;br /&gt;
|  | Son los segundos que se dejan al agente para realizar algún tipo de gestión una vez finalizada la llamada.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Categoría'''&lt;br /&gt;
|  | Categoría de llamadas (Obligatorio). Para más información [[#Categorías  | ver sección '''''VIVA'''''it Call - Categorías]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Dpto'''&lt;br /&gt;
| | Elegir un eje (Obligatorio) . Para más información [[#Ejes | ver sección Ejes]]&lt;br /&gt;
||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
En la pestaña Extensiones al asignar una extensión aparecerá:&lt;br /&gt;
[[Archivo:54 Pestaña ViVAit Call - Grupos - Nuevo grupo de operadoras - Pestaña Extensiones - Nueva extension.jpg|center]]&lt;br /&gt;
Las explicación de las opciones estan en la siguiente tabla:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Extensión'''&lt;br /&gt;
|  | Número de una extensión (obligatorio). Para más información[[#Extensiones  | ver sección '''''VIVA'''''it Call - Dispositivos - Extensiones]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Prioridad'''&lt;br /&gt;
|  | Representa la prioridad de la extensión. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Permanente'''&lt;br /&gt;
|  | Si el valor es &amp;quot;No&amp;quot; ofrece la posibilidad al usuario al que pertenece la extensión, podrá desunirse del grupo. En caso contrario, aunque el usuario marque desunirse de los grupos seguirá perteneciendo al mismo grupo de salto.&lt;br /&gt;
|| Sí / No.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 Nota.- A un valor más alto, existe una mayor prioridad&lt;br /&gt;
&lt;br /&gt;
[[#Grupos_de_operadoras | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Grupos ACD centralita ====&lt;br /&gt;
&lt;br /&gt;
El '''''VIVA'''''it Call permite la creación de sencillos grupos ACD, concebidos como punto de distribución de llamadas en el que en función del criterio elegido para la asignación de llamadas a extensiones pertenecientes al grupo (existen diferentes estrategias) estas son atendidas&lt;br /&gt;
&lt;br /&gt;
Las extensiones pueden ser fijas (pertenecen al grupo ACD siempre) o dinámicas (se registran y se desvinculan de un grupo ACD mediante facilidades telefónicas)&lt;br /&gt;
&lt;br /&gt;
Los grupos ACD de centralita no disponen de herramientas de supervisión ni reporting.&lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Grupos ACD centralita&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]]).&lt;br /&gt;
[[Archivo:17 Busqueda en VIVAit Call - Grupos - Grupos ACD de centralita.png|800 px|center]]&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) un  &amp;quot;Grupo ACD centralita&amp;quot;  en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:55 Pestaña ViVAit Call - Grupos - Nuevo grupo ACD centrailita - Pestaña Grupo.png|center]]&lt;br /&gt;
Las opciones con las que podemos encontrarnos son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Numero'''&lt;br /&gt;
|  | Numero asociado al Grupo ACD centralita (obligatorio).&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre a mostrar'''&lt;br /&gt;
|  | Nombre que presentara el grupo ACD centralita.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Descripción breve sobre el grupo ACD centralita.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nodo'''&lt;br /&gt;
|  | Nodo al que pertenece el grupo ACD centralita (obligatorio). Para más información [[#Nodos | ver sección General - Nodos]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Plantilla'''&lt;br /&gt;
| | Plantilla empleada para el grupo ACD centralita (obligatorio). Para más información[[#Plantillas | ver sección General - Plantillas ]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Grabar enrutamiento'''&lt;br /&gt;
|  | Este campo define si van a grabar las llamadas que se enruten para este grupo ACD centralita.&lt;br /&gt;
||Sin grabación&lt;br /&gt;
&lt;br /&gt;
Grabación sin beep periódico&lt;br /&gt;
&lt;br /&gt;
Grabación con beep periódico&lt;br /&gt;
&lt;br /&gt;
Descartar grabación.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Música'''&lt;br /&gt;
|  | Musica en espera que se oirá al entrar en la cola del grupo ACD centralita.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tiempo admin. de centralita'''&lt;br /&gt;
|  | Son los segundos que se dejan al agente para realizar algún tipo de gestión una vez finalizada la llamada.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Categoría'''&lt;br /&gt;
|  | Categoría de llamadas (Obligatorio). Para más información [[#Categorías  | ver sección '''''VIVA'''''it Call - Categorías]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Dpto'''&lt;br /&gt;
| | Elegir un eje (Obligatorio) . Para más información [[#Ejes | ver sección Ejes]].&lt;br /&gt;
||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
En la pestaña Extensiones al asignar una extensión aparecerá:&lt;br /&gt;
[[Archivo:56 Pestaña ViVAit Call - Grupos - Nuevo grupo ACD centralita - Pestaña Extensiones - Nueva extension.jpg|center]]&lt;br /&gt;
Las explicación de las opciones estan en la siguiente tabla:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Extensión'''&lt;br /&gt;
|  | Número de una extensión (obligatorio). Para más información[[#Extensiones  | ver sección '''''VIVA'''''it Call - Dispositivos - Extensiones]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Prioridad'''&lt;br /&gt;
|  | Representa la prioridad de la extensión. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Permanente'''&lt;br /&gt;
|  |  Si el valor es &amp;quot;No&amp;quot; ofrece la posibilidad al usuario al que pertenece la extensión, podrá desvincularse del grupo. En caso contrario, aunque el usuario marque la facilidad para la desvinculación de grupos seguirá perteneciendo al mismo grupo de salto.&lt;br /&gt;
|| Sí / No.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[#Grupos_ACD_centralita | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Grupos de captura ====&lt;br /&gt;
&lt;br /&gt;
'''Nota.- Los grupos de captura son solo para extensiones; no se pueden incluir usuarios en grupos de captura'''&lt;br /&gt;
&lt;br /&gt;
Podemos observar que aparecen diferentes pantallas que en los demás grupos, pues consideramos que se debe entender como una funcionalidad que da permisos a una extensión. Donde el grupo de captura establece un conjunto de extensiones entre las cuales se puede, fácilmente, contestar desde una extensión llamadas dirigidas a otra del mismo.&lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Grupos de captura&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]]).&lt;br /&gt;
[[Archivo:18 Busqueda en VIVAit Call - Grupos - Grupos de Captura.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) un  &amp;quot;Grupo de captura&amp;quot;  en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
[[Archivo:57 Pestaña ViVAit Call - Grupos - Nuevo grupo de captura - Pestaña Grupo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Las opciones con las que podemos encontrarnos son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre que asignamos al grupo de captura (obligatorio).&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Descripción breve del grupo de captura.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nodo'''&lt;br /&gt;
|  | Nodo en el que se aplicara el grupo de captura (obligatorio). Para más información [[#Nodos | ver sección General - Nodos]].&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Dpto'''&lt;br /&gt;
| | Elegir un eje (Obligatorio) . Para más información [[#Ejes | ver sección Ejes]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
En la pestaña Extensiones al asignar una extensión aparecerá:&lt;br /&gt;
[[Archivo:58 Pestaña ViVAit Call - Grupos - Nuevo grupo de captura - Pestaña Extensiones - Nueva extension.png|center]]&lt;br /&gt;
Las explicación de las opciones estan en la siguiente tabla:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Extensión'''&lt;br /&gt;
|  | Número de una extensión (obligatorio). Para más información[[#Extensiones  | ver sección '''''VIVA'''''it Call - Dispositivos - Extensiones]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Prioridad'''&lt;br /&gt;
|  | Representa la prioridad de la extensión. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Rol de captura'''&lt;br /&gt;
|  | Indica como funcionara la extensión cuando entre una llamada en el grupo de captura.&lt;br /&gt;
|| Puede capturar y ser capturado.&lt;br /&gt;
&lt;br /&gt;
Puede ser capturado.&lt;br /&gt;
&lt;br /&gt;
Puede capturar.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Grupos_de_captura | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
=== Aprovisionamiento ===&lt;br /&gt;
Aprovisionar un teléfono es el proceso de configuración automático de teléfonos IP para su uso con una Centralita Telefónica de forma remota. Una vez que aprovisione un teléfono, el teléfono automáticamente se configurará correctamente y podrá administrar los teléfonos de forma centralizada y remota, sin tener que iniciar sesión en la interfaz web de cada uno de los teléfonos.&lt;br /&gt;
&lt;br /&gt;
El aprovisionamiento de teléfono facilita enormemente la administración cotidiana de los teléfonos IP. Esto hace que sea fácil de cambiar las contraseñas de extensión,realizar desvíos de llamadas, nombre a mostrar, mensajería y demás configuraciones, ya que puede hacerlo de forma centralizada para todos los teléfonos desde el portal de administración y luego transferir los cambios al teléfono. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El contenido de la pestaña ''V'''''VIVA'''''it Call - Aprovisionamiento' es el siguiente: &lt;br /&gt;
&amp;lt;!--[[Archivo:39 Pestaña ViVAit Call - Aprovisionamiento.jpg|center]]--&amp;gt;&lt;br /&gt;
[[File:Aprovisionamiento.png|center]]&lt;br /&gt;
&lt;br /&gt;
[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver arriba]&lt;br /&gt;
==== Teléfonos ====&lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Teléfonos&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]]).&lt;br /&gt;
[[Archivo:40 Pestaña ViVAit Call - Aprovisionamiento - Teléfonos.jpg|800px| center]]&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) un  &amp;quot;Teléfono&amp;quot;  en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:41 Pestaña ViVAit Call - Aprovisionamiento - Nuevo Teléfono.jpg|center]]&lt;br /&gt;
Las opciones con las que podemos encontrarnos son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Modelo de Teléfono'''&lt;br /&gt;
|  | Modelo del teléfono que estamos creando (Obligatorio). Para más información[[#Módelos de teléfonos   | ver sección '''''VIVA'''''it Call - Aprovisionamiento - Módelos de teléfonos ]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Extensión'''&lt;br /&gt;
|  | Extensión asociada al dicho teléfono. Para más información[[#Extensiones  | ver sección '''''VIVA'''''it Call - Dispositivos - Extensiones]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''MAC'''&lt;br /&gt;
|  | Dirección física del teléfono (Obligatorio).&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Núm. serie'''&lt;br /&gt;
|  | Número de serie del teléfono.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Dirección de red'''&lt;br /&gt;
|  | Indicar el nodo de registro .&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Usado puerto PC'''&lt;br /&gt;
| | Si utiliza un puerto del PC &lt;br /&gt;
|  | Sí / No.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''POE'''&lt;br /&gt;
|  | Si el terminal telefónico usa Power Over Ethernet (POE) &lt;br /&gt;
|  | Sí / No.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Ubicación'''&lt;br /&gt;
|  | Ubicación del teléfono.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Notas'''&lt;br /&gt;
|  | Comentarios adicionales sobre el teléfono.&lt;br /&gt;
||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Importación de MACs de teléfonos con un fichero =====&lt;br /&gt;
El registro uno a uno de teléfonos que pertenecen a una determinado fabricante puede hacer que la persona encargada emplee demasiado tiempo en esta tarea, el portal de administración ofrece la posibilidad de registrar teléfonos por su MAC que pertenezcan al mismo fabricante utilizando un archivo con formato csv.&lt;br /&gt;
&lt;br /&gt;
         &lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Teléfonos&amp;quot; al pulsar el botón &amp;quot;Importar MACS&amp;quot; aparece la siguiente ventana:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:40_1 Pestaña ViVAit Call - Aprovisionamiento - Teléfonos_Importar.png| center]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Modelo de Teléfono'''&lt;br /&gt;
|  | Modelo del teléfono que estamos creando (Obligatorio).Para más información[[#Módelos de teléfonos   | ver sección '''''VIVA'''''it Call - Aprovisionamiento - Módelos de teléfonos ]]&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Fichero'''&lt;br /&gt;
|  | Fichero CVS que contendra las MACS de los telefonos a aprovisionar.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Formato del CSV para aprovisionar teléfonos  =====&lt;br /&gt;
&lt;br /&gt;
El CSV debe tener el siguiente formato personalizado, para ello puedes crearlo desde aplicaciones de hojas de calculo que permitan guardar la tabla como CSV. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Columna 1&lt;br /&gt;
|-&lt;br /&gt;
| dirección MAC del teléfono 1&lt;br /&gt;
|-&lt;br /&gt;
| dirección MAC del teléfono 2&lt;br /&gt;
|}&lt;br /&gt;
Nota:&lt;br /&gt;
&lt;br /&gt;
* '''El valor de las direcciones MACs de los teléfonos en el fichero CSV deben ser de una forma adecuado. Por ejemplo, si tenemos la dirección MAC de un teléfono 00:17:4F:08:5F:69, debemos convertirlo en 00174F085F69.'''&lt;br /&gt;
* '''Podemos introducir tantas direcciones MACS para un modelo determinado como teléfonos tengamos pero siempre en la primera columna sin encabezado.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Teléfonos | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Módelos de teléfonos ====&lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Módelos de teléfonos&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]]).&lt;br /&gt;
[[Archivo:20 Busqueda en VIVAit Call - Aprovisionamiento - Modelos de teléfonos.png|800 px|center]]&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) un  &amp;quot;Módelo de teléfono&amp;quot;  en la plataforma '''''VIVA'''''it  pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:42 Pestaña ViVAit Call - Aprovisionamiento - Nuevo Modelo de Teléfono.png|center]]&lt;br /&gt;
&lt;br /&gt;
Las opciones con las que podemos encontrarnos son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Modelo del teléfono (Obligatorio).&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Breve descripción del teléfono.&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Prefijo Plantilla MAC'''&lt;br /&gt;
|  | Determinar el fabricante a partir de su dirección MAC.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tipo reset'''&lt;br /&gt;
|  | Comando para permitir al modelo buscar su configuración en el servidor y que actualice el teléfono con la nueva configuración.&lt;br /&gt;
||Ninguno&lt;br /&gt;
&lt;br /&gt;
Reset SIP Notify &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Notificas Notificar reajuste'''&lt;br /&gt;
| | Comando para reiniciar el teléfono de manera remota .&lt;br /&gt;
||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[#Módelos_de_teléfonos | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Rutas ===&lt;br /&gt;
El contenido de la pestaña '''''VIVA'''''it Call - Rutas' es el siguiente: &lt;br /&gt;
[[Archivo:43 Pestaña ViVAit Call - Rutas_2.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Enfoque inicial ====&lt;br /&gt;
&lt;br /&gt;
'''Datos básicos importantes para las prerutas:'''&lt;br /&gt;
&lt;br /&gt;
* Número de entidad origen (inicialmente el llamante)&lt;br /&gt;
* Número de entidad destino (inicialmente el llamado)&lt;br /&gt;
* Categoria entrante&lt;br /&gt;
&lt;br /&gt;
'''PASO 1.- ELECCION DE CANDIDATAS'''&lt;br /&gt;
&lt;br /&gt;
Se eligen todas las prerutas candidatas a partir de:&lt;br /&gt;
&lt;br /&gt;
 1.- Para que la preruta sea candidata es imprescindible que corresponda la categoría entrante&lt;br /&gt;
 2.- El número destino ha de coincidir con el campo &amp;quot;Prefijo entidad destino&amp;quot;, coincidiendo con EL INICIO DEL CAMPO&lt;br /&gt;
 3.- Se usa el &amp;quot;Porcentaje de llamadas&amp;quot;, siendo el valor 0 equivalente a deshabilitar la preruta&lt;br /&gt;
&lt;br /&gt;
A partir de aqui, VIVAit obtiene un subconjunto de posibles prerutas válidas&lt;br /&gt;
&lt;br /&gt;
'''PASO 2.- ORDENACIÓN DE CANDIDATAS'''&lt;br /&gt;
&lt;br /&gt;
El subconjunto obtenido se ordena siguiendo los criterios:&lt;br /&gt;
&lt;br /&gt;
 1.- Longitud de &amp;quot;prefijo entidad destino&amp;quot;--&amp;gt; La que tenga mejor coincidencia&lt;br /&gt;
 2.- A misma longitud de &amp;quot;Prefijo entidad destino&amp;quot; --&amp;gt; La que tenga mejor coincidencia en campo &amp;quot;Prefijo entidad origen&amp;quot;&lt;br /&gt;
 3.- Por porcentaje de llamadas&lt;br /&gt;
&lt;br /&gt;
Estos criterios dan como resultado una lista ordenada de prerutas&lt;br /&gt;
&lt;br /&gt;
'''PASO 3.- ELECCION DE MEJOR PRERUTA'''&lt;br /&gt;
&lt;br /&gt;
De esta lista ordenada, y empezando de la primera hacia abajo, se elegirá la primera que cumpla el resto de campos.&lt;br /&gt;
&lt;br /&gt;
==== Prerutas ====&lt;br /&gt;
&lt;br /&gt;
Para todas las llamadas entrantes ( tanto internas, como externas) o salientes se desarrolla en el sistema un &amp;quot;prerouting&amp;quot;, es decir, la fase de preenrutamiento se usa para toda llamada entrante/saliente en el sistema que implica que exista una preruta y que debe cumplir las reglas de la preruta. En caso de no cumplir una regla origen/destino la llamada se cuelga, es decir, si no se encuentra ninguna entrada adecuada, se considerara que es una llamada prohibida y lo tratara como destino inexistente.&lt;br /&gt;
&lt;br /&gt;
Ante una nueva llamada en el sistema, se comprueban las prerutas que tengan '''''LA MISMA CATEGORIA''''' que el dispostivo origen.&lt;br /&gt;
De entre todas las prerutas de esa categoría, serán válidas todas las que cumplan las condiciones de origen y destino&lt;br /&gt;
De entre todas las válidas se utilizará la más restrictiva.&lt;br /&gt;
&lt;br /&gt;
La preruta utilizada define el tipo de destino para esa llamada&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Funcionamiento prerutas.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Ejemplos de prerutas tipicamente necesarias:&lt;br /&gt;
* Una para todo el rango de extensiones y para cada categoría; por ejemplo si tenemos extensiones del 3000 al 3099 y categoría local y nacional, y queremos que ambas categorías llamen a las extensiones, entonces tendremos que crear dos prerutas&lt;br /&gt;
&lt;br /&gt;
* Para cada &amp;quot;destino tipico saliente&amp;quot; (fijos, moviles, internacional....) existirá al menos una preruta para cada categoría que pueda utilizarlo&lt;br /&gt;
&lt;br /&gt;
* Las facilidades del sistema (desvios, intrusiones, retrollamadas...) tendrán una preruta para cada categoría que pueda utilizarlo&lt;br /&gt;
&lt;br /&gt;
* Otros servicios tales como salas de reuniones, VDN's, grupos de centralita, grupos de operadora...deberán tener una preruta para categoría que pueda utilizarlo&lt;br /&gt;
&lt;br /&gt;
Un sistema con una configuración típica podría tener.&lt;br /&gt;
* Una preruta para las extensiones&lt;br /&gt;
* Una preruta para salida al exterior (sin limitaciones de llamadas por categorías)&lt;br /&gt;
* Una preruta para las facilidades&lt;br /&gt;
* Una preruta para el grupo de operadoras&lt;br /&gt;
* Una preruta para las salas de reuniones virtuales&lt;br /&gt;
* Una preruta con '''ignorar desvío incondicional = SI''' para que la secretaria pueda llamar al jefe pese a su desvío&lt;br /&gt;
Si el sistema tuviera diferentes categorías deberían multiplicarse las prerutas en función de los permisos que queramos dar...debe haber una preruta para categoría y destino&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Prerutas&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]]).&lt;br /&gt;
[[Archivo:21 Busqueda en Vivait Call - Rutas - Pre_rutas.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) una  &amp;quot;Pre Ruta&amp;quot;  en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá la siguiente ventana que nos muestra la ventana:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Campos prerutas.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Las opciones con las que podemos encontrarnos son las siguientes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Descripción de pre-ruta. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Lista Pre-Rutas'''&lt;br /&gt;
|  |A que lista va a pertenecer nuestra pre-ruta (Obligatorio). Para más información[[#Lista rutas | ver sección '''''VIVA'''''it Call - Rutas - Lista rutas]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Categoría entrante'''&lt;br /&gt;
|  | Categoría asociada a la pre-ruta para una llamada entrante (obligatorio). Para más información [[#Categorías  | ver sección '''''VIVA'''''it Call - Categorías]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Prefijo entidad origen'''&lt;br /&gt;
|  | Establecer una pre-ruta a un número de origen que cumpla con un determinado prefijo. &lt;br /&gt;
|| No debe ser una expresión regular. Ejemplo: 91 para distinguir las llamadas hechas en la comunidad de Madrid.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Min. Nº dígitos origen'''&lt;br /&gt;
| | El mínimo numero de digitos que un número de origen debe tener, es decir, deben ser igual o superior a este valor. &lt;br /&gt;
|| No existirá un limite mínimo si no asignamos algún valor o no es superior 0.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Max. Nº dígitos origen'''&lt;br /&gt;
|  | El máximo numero de digitos un número de origen debe tener, es decir, deben ser igual o menor a este valor. &lt;br /&gt;
||No existirá un limite máximo si no asignamos algún valor o no es superior 0.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Expresión regular entidad origen'''&lt;br /&gt;
|  | Alternativa para establecer una pre-ruta a un número de origen que cumpla con un determinado prefijo. Para mas información  [[#Enlaces_de_interés |  ver Enlaces de interes ]]&lt;br /&gt;
| | &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Prefijo entidad destino'''&lt;br /&gt;
|  | Establecer una pre-ruta a un número de destino que cumpla con un determinado prefijo. &lt;br /&gt;
|| No debe ser una expresión regular. Ejemplo: 91 para distinguir las llamadas hechas en la comunidad de Madrid.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Min. Nº dígitos destino'''&lt;br /&gt;
| | El mínimo numero de digitos un número de destino debe tener, es decir, deben ser igual o superior a este valor. &lt;br /&gt;
|| No existirá un limite mínimo si no asignamos algún valor o no es superior 0.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Max. Nº dígitos destino'''&lt;br /&gt;
|  | El máximo numero de digitos que un número de destino debe tener, es decir, deben ser igual o menor a este valor. &lt;br /&gt;
||No existirá un limite máximo si no asignamos algún valor o no es superior 0.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Expresión regular entidad destino'''&lt;br /&gt;
| | Alternativa para establecer una pre-ruta a un número de destino que cumpla con un determinado prefijo. Para mas información  [[#Enlaces_de_interés |  ver Enlaces de interes ]]&lt;br /&gt;
| | &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Caller Name'''&lt;br /&gt;
|  | Nombre con el que se muestra la llamada. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Caller ID'''&lt;br /&gt;
|  | Número que mostrara la llamada.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Cod. cliente'''&lt;br /&gt;
|  | Número de código de cliente. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Categoría saliente'''&lt;br /&gt;
|  | Categoría asociada a la pre-ruta para una llamada saliente. Para más información [[#Categorías  | ver sección '''''VIVA'''''it Call - Categorías]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tipo destino saliente 1'''&lt;br /&gt;
|  | Especifica el tipo de salida de la pre-ruta. &lt;br /&gt;
||Ninguno&lt;br /&gt;
&lt;br /&gt;
Ruta externa&lt;br /&gt;
&lt;br /&gt;
Extensión&lt;br /&gt;
&lt;br /&gt;
Facilidad&lt;br /&gt;
&lt;br /&gt;
Usuario&lt;br /&gt;
&lt;br /&gt;
Sala de conferencia&lt;br /&gt;
&lt;br /&gt;
Agente&lt;br /&gt;
&lt;br /&gt;
VDN&lt;br /&gt;
&lt;br /&gt;
Grupo ACD&lt;br /&gt;
&lt;br /&gt;
Dejar mensaje&lt;br /&gt;
&lt;br /&gt;
Dejar mensaje por ocupado&lt;br /&gt;
&lt;br /&gt;
Dejar mensaje por no contesta&lt;br /&gt;
&lt;br /&gt;
Leer buzón, grupo de salto&lt;br /&gt;
&lt;br /&gt;
Grupo de operadoras&lt;br /&gt;
&lt;br /&gt;
Grupo ACD de centralita&lt;br /&gt;
&lt;br /&gt;
VDN corporativos&lt;br /&gt;
&lt;br /&gt;
Extensión o Usuario&lt;br /&gt;
&lt;br /&gt;
Usuario o Extensión&lt;br /&gt;
&lt;br /&gt;
Volver a enrutar.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Destino saliente 1'''&lt;br /&gt;
| | cadena de texto que permite obtener el nuevo destino. &lt;br /&gt;
||&lt;br /&gt;
Si la cadena comienza por los caracteres que se indican, el significado es especial:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo destino es igual al de entrada al proceso.&lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo destino es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo.&lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;.&lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al destino de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo destino de salida. Si la expresión regular no se cumpliese, quiere decir que es una llamada prohibida y se encaminará hacia una facilidad por defecto.&lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante que sustituye el valor a la entrada.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tipo destino saliente 2'''&lt;br /&gt;
|  | Especifica el tipo de salida de la pre-ruta. &lt;br /&gt;
||Ninguno&lt;br /&gt;
&lt;br /&gt;
Ruta externa&lt;br /&gt;
&lt;br /&gt;
Extensión&lt;br /&gt;
&lt;br /&gt;
Facilidad&lt;br /&gt;
&lt;br /&gt;
Usuario&lt;br /&gt;
&lt;br /&gt;
Sala de conferencia&lt;br /&gt;
&lt;br /&gt;
Agente&lt;br /&gt;
&lt;br /&gt;
VDN&lt;br /&gt;
&lt;br /&gt;
Grupo ACD&lt;br /&gt;
&lt;br /&gt;
Dejar mensaje&lt;br /&gt;
&lt;br /&gt;
Dejar mensaje por ocupado&lt;br /&gt;
&lt;br /&gt;
Dejar mensaje por no contesta&lt;br /&gt;
&lt;br /&gt;
Leer buzón, grupo de salto&lt;br /&gt;
&lt;br /&gt;
Grupo de operadoras&lt;br /&gt;
&lt;br /&gt;
Grupo ACD de centralita&lt;br /&gt;
&lt;br /&gt;
VDN corporativos&lt;br /&gt;
&lt;br /&gt;
Extensión o Usuario&lt;br /&gt;
&lt;br /&gt;
Usuario o Extensión&lt;br /&gt;
&lt;br /&gt;
Volver a enrutar.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Destino saliente 2'''&lt;br /&gt;
| | cadena de texto que permite obtener el nuevo destino. &lt;br /&gt;
||&lt;br /&gt;
Si la cadena comienza por los caracteres que se indican, el significado es especial:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo destino es igual al de entrada al proceso.&lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo destino es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo.&lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;.&lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al destino de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo destino de salida. Si la expresión regular no se cumpliese, quiere decir que es una llamada prohibida y se encaminará hacia una facilidad por defecto.&lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante que sustituye el valor a la entrada.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Umbral llamada'''&lt;br /&gt;
|  | Nos permite modificar el destino de salida como en caso anterior pero con dos particularidades.&lt;br /&gt;
|| &lt;br /&gt;
* Si el valor de actual de &amp;quot;Umbral llam. cambio destino&amp;quot;  (antes de incrementarse) supere o sea igual el valor de &amp;quot;Umbral llamada&amp;quot;, se usara como destino tras el preenrutamiento, los valores de los campos &amp;quot;Tipo destino saliente 2&amp;quot; y &amp;quot;Destino saliente 2&amp;quot;.&lt;br /&gt;
* Si el valor de actual de &amp;quot;Umbral llam. cambio destino&amp;quot; es menor o igual a cero; o si &amp;quot;Umbral llam. cambio destino&amp;quot; es inferior a &amp;quot;Umbral llamada&amp;quot;, se usa como destino tras el preenrutamiento, los valores de los campos &amp;quot;Tipo destino saliente 1&amp;quot; y &amp;quot;Destino saliente 1&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Umbral llam. cambio destino'''&lt;br /&gt;
|  |  Un proceso periódico externo debe encargarse de poner a cero o decrementar este valor. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Porcentaje de llamadas'''&lt;br /&gt;
|  | Se mide en tanto por cien. Indica el porcentaje de llamadas aleatorio que se van a encaminar por esa ruta.  &lt;br /&gt;
|| Si el valor es 100, se aplica siempre y si es 0 el registro no se usa nunca (deshabilitado)&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Hay segmentos'''&lt;br /&gt;
| | Indica al proceso de preenrutamiento que es preciso generar un segmento de tipo &amp;quot;preenrutamiento&amp;quot;.&lt;br /&gt;
||Si / No. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Grabar enrutamiento'''&lt;br /&gt;
|  | Este campo define si van a grabar las llamadas que se enruten para esta Pre-Ruta.&lt;br /&gt;
||Sin grabación&lt;br /&gt;
&lt;br /&gt;
Grabación sin beep periódico&lt;br /&gt;
&lt;br /&gt;
Grabación con beep periódico&lt;br /&gt;
&lt;br /&gt;
Descartar grabación.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Dpto (Solo Eje 1)'''&lt;br /&gt;
|  | Elegir un eje . Para más información [[#Ejes | ver sección Ejes]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Ignorar Desvío incondicional  '''&lt;br /&gt;
|  | Habilitar el desvío incondicional para dar funcionalidad para que una secretaria pueda llamar al jefe pese a su desvío.&lt;br /&gt;
||Si / No. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[#Prerutas | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
==== Listas Rutas ====&lt;br /&gt;
En este apartado podemos observar todas las pre-rutas creadas anteriormente, etiquetarlas y asignar a cada pre-ruta un eje. &lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Listas Rutas&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]]).&lt;br /&gt;
[[Archivo:22 Busqueda en Vivait Call - Rutas - Lista rutas.png|800px|center]]&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) una  &amp;quot;Lista Ruta&amp;quot;  en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
[[Archivo:46 Pestaña ViVAit Call - Rutas - Nueva lista rutas.png|center]]&lt;br /&gt;
&lt;br /&gt;
Las opciones con las que podemos encontrarnos son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre de la lista de pre-rutas (Obligatorio) .&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Etiqueta1'''&lt;br /&gt;
|  | Cadena de texto para distinguir los segmentos de preenrutamiento que tengan esta lista de pre-rutas asignada.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Etiqueta2'''&lt;br /&gt;
|  | Cadena de texto para distinguir los segmentos de preenrutamiento que tengan esta lista de pre-rutas asignada.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Dpto'''&lt;br /&gt;
|  | Elegir un eje (Obligatorio) . Para más información [[#Ejes | ver sección Ejes]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[#Listas_Rutas| Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Destinos externos ====&lt;br /&gt;
&lt;br /&gt;
El esquema siguiente muestra el funcionamiento general del proceso de enrutamiento para llamadas que han de salir fuera del sistema; como ya se han indicado ha de entrar previamente en el proceso de preenrutamiento y salir exitosamente de este.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Funcionamiento enrutamiento llamadas salientes.png|825px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Toda la configuración de los elementos reflejados en este esquema se hace desde el portal de administración de la plataforma '''''VIVA'''''it, con la excepción de algunos elementos de los enlaces exteriores.&lt;br /&gt;
&lt;br /&gt;
La creación de enlaces exteriores requiere de la modificación del fichero '''ext_MARCAR_Externo_Particular.conf'''&lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Destinos externos&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]]).&lt;br /&gt;
[[Archivo:23 Busqueda en VIVAit Call - Rutas - Destinos Externos.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) un  &amp;quot;Destino externo&amp;quot;  en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
[[Archivo:48 Pestaña ViVAit Call - Rutas - Nuevo destino externo - Pestaña Destinos Externos.png|center]]&lt;br /&gt;
&lt;br /&gt;
Las opciones con las que podemos encontrarnos en la Pestaña Destinos son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Descripción de la ruta saliente .&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Categoría entrante'''&lt;br /&gt;
|  | Categoría asociada a categoría saliente de la pre-ruta (obligatorio). Para más información [[#Categorías  | ver sección '''''VIVA'''''it Call - Categorías]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Prefijo entidad destino'''&lt;br /&gt;
|   | Establecer una pre-ruta a un número de destino que cumpla con un determinado prefijo. &lt;br /&gt;
|| No debe ser una expresión regular. Ejemplo: 91 para distinguir las llamadas hechas en la comunidad de Madrid.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Min. Nº dígitos destino'''&lt;br /&gt;
|  | El mínimo numero de digitos que un número de destino debe tener, es decir, deben ser igual o superior a este valor. &lt;br /&gt;
|| No existirá un limite mínimo si no asignamos algún valor o no es superior 0.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Máx. Nº dígitos destino'''&lt;br /&gt;
|  | El máximo numero de digitos un número de destino debe tener, es decir, deben ser igual o menor a este valor. &lt;br /&gt;
||No existirá un limite máximo si no asignamos algún valor o no es superior 0.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Expresión regular ent. destino'''&lt;br /&gt;
| | Alternativa para establecer distinguir el número de destino que cumpla con un determinado prefijo para considerarlo destino externo. Para mas información  [[#Enlaces_de_interés |  ver Enlaces de interés ]]&lt;br /&gt;
| | Si tiene un algún valor, los campos los campos &amp;quot;Prefijo entidad Origen&amp;quot;, &amp;quot;Min. Nº digitos origen&amp;quot; o &amp;quot;Max. Nº digitos origen&amp;quot; son ignorados.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un ejemplo podemos indicar que los números que empiecen por 6 y tenga un mínimo de 4 digitos se considera una llamada externa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
Nota: Se necesita tener primero creado un objeto &amp;quot;Destino externo&amp;quot; para luego asignarle las relaciones necesarias.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:49 Pestaña ViVAit Call - Rutas - Nuevo destino externo - Pestaña Relacion.png|center]]&lt;br /&gt;
Las opciones con las que podemos encontrarnos son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Destinos'''&lt;br /&gt;
|  | Campo de solo lectura. Indica a que destino externo se aplica la relación.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Enlace Exterior'''&lt;br /&gt;
|  |  Establecer cual es el troncal por donde dispositivos contactan al exterior. Para más información[[#Enlace exterior  | ver sección '''''VIVA'''''it Call - Dispositivos - Enlace exterior ]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Prioridad'''&lt;br /&gt;
|  | Establecer un nivel de prioridad. Cuanto más alto sea el valor más prioritario es el enlace exterior.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Caller Name'''&lt;br /&gt;
|  |Nombre con el que se mostrara al exterior.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Num. Llamada'''&lt;br /&gt;
| | Numero por el que se mostrara al exterior.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Destino Saliente'''&lt;br /&gt;
|  | Cadena de texto que identifica el destino saliente. &lt;br /&gt;
|| Además, si la cadena comienza por los caracteres que se indican, el significado es especial:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo destino es igual al de entrada al proceso.&lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo destino es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo.&lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;.&lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al destino de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo destino de salida. Si la expresión regular no se cumpliese, se propaga el valor de entrada al proceso.&lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante sin ninguna modificación.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[#Destinos_externos | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== '''''&amp;lt;span style=&amp;quot;color:#144F9B&amp;quot;&amp;gt;VIVA&amp;lt;/span&amp;gt;'''''it Meet ==&lt;br /&gt;
&lt;br /&gt;
=== Configuración ===&lt;br /&gt;
&lt;br /&gt;
Para poder configurar un entorno de '''''&amp;lt;span style=&amp;quot;color:#144F9B&amp;quot;&amp;gt;VIVA&amp;lt;/span&amp;gt;'''''it Meet son imprescindibles los siguientes elementos:&lt;br /&gt;
&lt;br /&gt;
* Nodo tipo Meet.&lt;br /&gt;
* Plantillas de meet.&lt;br /&gt;
* Trunks.&lt;br /&gt;
&lt;br /&gt;
Para crear un '''nodo tipo Meet''' necesitamos la dirección IP del equipo en el que se ha instalado el Meet.&lt;br /&gt;
&lt;br /&gt;
[[File:Nuevo-Nodo-Meet.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para crear una '''plantilla de Meet''' seleccionaremos como clase '''enlace exterior''' y añadiremos los campos necesarios, tal y como se muestra en la siguiente imagen:&lt;br /&gt;
&lt;br /&gt;
[[File:Platilla-Meet.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Por último crearemos un '''TRUNK''' en el menú '''Enlaces Externos''' de la aplicación:&lt;br /&gt;
&lt;br /&gt;
[[File:Trunk-Meet.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''&amp;lt;big&amp;gt;Consideraciones:&amp;lt;/big&amp;gt;'''''&lt;br /&gt;
&lt;br /&gt;
* Al igual que necesitamos una plantilla específica para '''''&amp;lt;span style=&amp;quot;color:#144F9B&amp;quot;&amp;gt;VIVA&amp;lt;/span&amp;gt;'''''it Meet, también necsitaremos otra específica para el futuro '''''MOVE'''''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Plantilla-Move.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Para '''''MOVE''''' necesitamos una categoría especial que nos permita controlar las llamadas que se van a poder realizar.&lt;br /&gt;
* Para '''''MOVE''''' los Trunk SIP y las extenciones deben llevar el campo INSECURE=NO.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Inicio ===&lt;br /&gt;
&lt;br /&gt;
Un administrador de '''''&amp;lt;span style=&amp;quot;color:#144F9B&amp;quot;&amp;gt;VIVA&amp;lt;/span&amp;gt;'''''it Call solo verá el menú '''''&amp;lt;span style=&amp;quot;color:#144F9B&amp;quot;&amp;gt;VIVA&amp;lt;/span&amp;gt;'''''it Meet si tiene permisos de Meet en su usuario. Estos permisos solo son válidos para administrar el Meet en '''''&amp;lt;span style=&amp;quot;color:#144F9B&amp;quot;&amp;gt;VIVA&amp;lt;/span&amp;gt;'''''it Call, no son los necesarios para acceder a las Salas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:General_Usuarios_Permisos.jpg|800px]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para asignar estos permisos a un usuario tendremos que dar permisos al usuario para la aplicación Meet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:General_Usuarios_Permisos_Nuevo.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cuando un usuario tiene permisos en la aplicación Meet aparecerá una pestaña nueva:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:General_Usuarios_Administrar_Editar_Meet.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En el campo Display pondremos el identificador que aparecerá posteriormente en la ventana del portal Web.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez realizada esta configuración previa un administrador de '''''&amp;lt;span style=&amp;quot;color:#144F9B&amp;quot;&amp;gt;VIVA&amp;lt;/span&amp;gt;'''''it Call podrá crear los elementos necesarios para configurar un Meet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Barra_VIVAit Call_Meet.jpg|500px]]&lt;br /&gt;
&lt;br /&gt;
=== Explotación de '''''&amp;lt;span style=&amp;quot;color:#144F9B&amp;quot;&amp;gt;VIVA&amp;lt;/span&amp;gt;'''''it Meet ===&lt;br /&gt;
&lt;br /&gt;
'''''VIVA'''''it Meet es una solución de '''''&amp;lt;span style=&amp;quot;color:#144F9B&amp;quot;&amp;gt;md&amp;lt;/span&amp;gt;'''''tel incluida en su aplicación '''''VIVA'''''it Call.&lt;br /&gt;
&lt;br /&gt;
'''''&amp;lt;span style=&amp;quot;color:#144F9B&amp;quot;&amp;gt;VIVA&amp;lt;/span&amp;gt;'''''it Meet permite que los usuarios se conecten a un “espacio” común en el que comparten servicios de chat, comparten fichero de notas y comparten pantallas (aplicaciones o escritorio).&lt;br /&gt;
&lt;br /&gt;
La solución permite el acceso de los usuarios a distintas herramientas, en función del rol con el que acceden a los “espacios” (Salas).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para configurar el servicio de Meet es necesario disponer de:&lt;br /&gt;
* Grupo de Acceso&lt;br /&gt;
* Perfil de Sala&lt;br /&gt;
* Sala de Meet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El menú en '''''&amp;lt;span style=&amp;quot;color:#144F9B&amp;quot;&amp;gt;VIVA&amp;lt;/span&amp;gt;'''''it Call tiene las siguientes opciones:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Opciones_Menu_VIVAit Meet.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Grupo de Acceso ====&lt;br /&gt;
&lt;br /&gt;
En los grupos de acceso se configuran el nodo de audío al que se conectará el grupo así como los números (interno y externo) que se utilizarán para que los asistentes mediante audio puedan acceder a la Sala.&lt;br /&gt;
&lt;br /&gt;
Los campos para configurar un grupo de acceso son los siguientes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Nombre del Campo !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| Número || Número del grupo de acceso. Se trata de un campo obligatorio.&lt;br /&gt;
|-&lt;br /&gt;
| Nombre en pantalla || Nombre que se presentará en pantalla.&lt;br /&gt;
|-&lt;br /&gt;
| Descripción || Pequeña descripción del grupo de acceso.&lt;br /&gt;
|-&lt;br /&gt;
| Nodo audio || Nodo de audio al que conectamos el grupo de acceso.&lt;br /&gt;
|-&lt;br /&gt;
| Número de acceso interno || Será el número interno a través del que nos conectaremos a la Sala cuando asistamos como oyentes.&lt;br /&gt;
|-&lt;br /&gt;
| Número de acceso externo || Será el número externo a través del que nos conectaremos a la Sala cuando asistamos como oyentes.&lt;br /&gt;
|-&lt;br /&gt;
| Grabar por enrutamiento || Indica si grabamos el Grupo de acceso, las opciones son: Sin grabación, Grabación sin beep periódico, Grabación con beep periódico y Descartar grabación.&lt;br /&gt;
|-&lt;br /&gt;
| Dpto. || Campo obligatorio. Indica el eje al que pertenece el grupo de acceso.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Perfil de Sala ====&lt;br /&gt;
&lt;br /&gt;
En el perfil de la Sala se configuran algunos parámetros técnicos.&lt;br /&gt;
&lt;br /&gt;
La imagen de la ventana de configuración en la que se muestra a continuación:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Perfil_de_sala_nuevo.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los campos para configurar un Perfil Sala Meet son los siguientes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Nombre del Campo !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| Nombre || Nombre del perfil. Es un campo obligatorio.&lt;br /&gt;
|-&lt;br /&gt;
| Descripción || Breve descripción del Perfil de Sala Meet.&lt;br /&gt;
|-&lt;br /&gt;
| Nº Máximo Participantes ||  Indica el número máximo de personas que pueden emitir. No tiene en cuenta a los oyentes ya que estos no emiten.&lt;br /&gt;
|-&lt;br /&gt;
| Tasa de bits || Ancho de banda que se consume por usuario.&lt;br /&gt;
|-&lt;br /&gt;
| Frecuencia FIR || Parámetro técnico.&lt;br /&gt;
|-&lt;br /&gt;
| Codecs audio || rowspan=&amp;quot;3&amp;quot;| Las Salas con acceso telefónico utilizan el codec '''pcma''' y es importante que solo se utilice un codec. Si la Sala no tiene acceso telefónico indicaremos codec '''opus'''.&lt;br /&gt;
|-&lt;br /&gt;
| Codecs audio_1 &lt;br /&gt;
|-&lt;br /&gt;
| Codecs audio_2 &lt;br /&gt;
|-&lt;br /&gt;
| Codecs video || rowspan=&amp;quot;3&amp;quot;| Se recomienda utilizar el codec vp8.&lt;br /&gt;
|-&lt;br /&gt;
| Codecs video_1&lt;br /&gt;
|-&lt;br /&gt;
| Codecs video_2&lt;br /&gt;
|-&lt;br /&gt;
| Paquetes activos audio ||rowspan=&amp;quot;2&amp;quot;| Se trata de parámetros técnicos.&lt;br /&gt;
|-&lt;br /&gt;
| Promedio nivel audio&lt;br /&gt;
|-&lt;br /&gt;
| Plantilla asunto || rowspan=&amp;quot;2&amp;quot;| Se trata de las plantillas que se utilizarán en el correo que el sistema envía cuando se invita a asistentes a la Sala.&lt;br /&gt;
|-&lt;br /&gt;
| Plantilla cuerpo&lt;br /&gt;
|-&lt;br /&gt;
| Minutos max. reunión || Indica la duración máxima de la convocatoria. ''Si el número no es mayor de 0 no será posible enviar invitacines desde el portal web a otros usuarios.''&lt;br /&gt;
|-&lt;br /&gt;
| Minutos antelación || Indica la antelación (en minutos) con la que se puede acceder a la Sala.&lt;br /&gt;
|-&lt;br /&gt;
| Nivel audio ext.||rowspan=&amp;quot;7&amp;quot;|Parámetros técnicos.&lt;br /&gt;
|-&lt;br /&gt;
| Scalable video coding&lt;br /&gt;
|-&lt;br /&gt;
| Eventos audio&lt;br /&gt;
|-&lt;br /&gt;
| Orientación video&lt;br /&gt;
|-&lt;br /&gt;
| Grabar&lt;br /&gt;
|-&lt;br /&gt;
| Retrasar la salida&lt;br /&gt;
|-&lt;br /&gt;
| Documentos compartidos&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Salas de Meet ====&lt;br /&gt;
&lt;br /&gt;
En este menú prepararemos el &amp;quot;espacio&amp;quot; al que se conectarán los usarios, para ello debemos crear una Sala Meet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Salas_Meet_Sala.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los campos para configurar una Sala Meet son los siguientes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Nombre del Campo !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| Nº de Sala || Número de la Sala, coincide con el número que pide la locucióon para accesos telefónicos.&lt;br /&gt;
|-&lt;br /&gt;
| Nombre || Nombre de la Sala. Este campo es obligatorio.&lt;br /&gt;
|-&lt;br /&gt;
| Nombre en pantalla || Nombre que aparecerá en el portal de Meet.&lt;br /&gt;
|-&lt;br /&gt;
| Descripción || Pequeña descripción de la Sala.&lt;br /&gt;
|-&lt;br /&gt;
| Perfil de Sala || Perfil asociado a la Sala (está relacionado con los parámetros técnicos de la Sala).&lt;br /&gt;
|-&lt;br /&gt;
| Grupo de Acceso Sala || Grupo a través del cual los asistentes se conectarán a la Sala, está relacionado con el acceso telefónico.&lt;br /&gt;
|-&lt;br /&gt;
| Pin administrador '''(*)''' || Pin de acceso a la Sala para administradores. Éstos acceden a la Sala a través del Grupo de Acceso y una locución les solicita el número de Sala y el pin de acceso.&lt;br /&gt;
|-&lt;br /&gt;
| Pin participante '''(*)''' || Pin de acceso a la Sala para participantes. Éstos acceden a la Sala a través del Grupo de Acceso y una locución les solicita el número de Sala y el pin de acceso.&lt;br /&gt;
|-&lt;br /&gt;
| Pin oyente '''(*)''' || Pin de acceso a la Sala para oyentes. Éstos acceden a la Sala a través del Grupo de Acceso y una locución les solicita el número de Sala y el pin de acceso.&lt;br /&gt;
|-&lt;br /&gt;
| Mail origen invitación || Dirección de email de aparece como remitente cuando enviamos una invitación a una Sala desde la propia Sala. Si el campo no se rellena aparecerá como remitente '''vivait-meet-18-04@mdtel.local'''.&lt;br /&gt;
|-&lt;br /&gt;
| Nodo || Nodo en el que conectamos la Sala. Debe ser un nodo '''tipo Meet'''.&lt;br /&gt;
|-&lt;br /&gt;
| Locución || Locución que se utilizará para dar la bienvenida a la Sala cuando un usuario se conecta por audio.&lt;br /&gt;
|-&lt;br /&gt;
| Dpto. || Campo obligatorio. Indica el eje al que pertenece la Sala.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''(*)''' Se pueden asignar pines distintos en función del rol del asistente (el pin corresponde a la clave de acceso que  solicita la locución telefónica a los asistentes) pero en la práctica un asistente telefónico a una Sala no puede realizar acciones diferentes en función del rol asignado, solo puede escuchar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Destinos_externos | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==''VIVA''it Response ==&lt;br /&gt;
Esta pestaña ofrece al usuario la gestión y configuración de las locuciones y música en espera. El contenido de la pestaña '''''VIVA'''''it Response' es el siguiente: &lt;br /&gt;
&lt;br /&gt;
[[Archivo:59 Pestaña ViVAit Response.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver arriba]&lt;br /&gt;
=== Locuciones ===&lt;br /&gt;
Esta pestaña permite al usuario insertar y gestionar sus locuciones. &lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Locuciones&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar que dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]])&lt;br /&gt;
&lt;br /&gt;
[[Archivo:24 Busqueda en VIVAit Response - Locuciones.png|700px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si pulsamos el boton buscar aparecerán las locuciones disponibles. Pulsando sobre la flecha indicada podremos escuchar su contenido e incluso descargarlas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Escuchar_Locuciones.png|600px|centro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  &lt;br /&gt;
&lt;br /&gt;
Para dar de alta o modificar (Editar) una &amp;quot;Locución&amp;quot; en la plataforma '''''VIVA'''''it  pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:60 Pestaña ViVAit Response- Locuciones - Nueva locucion.jpg|center]]&lt;br /&gt;
Las opciones con las que podemos encontrarnos son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre de la locución (Obligatorio→ no deben utilizase espacios en blanco).&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Descripción de la locución.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nodo'''&lt;br /&gt;
|  | Nodo donde se va a alojar la locución (Obligatorio). Para más información [[#Nodos | ver sección General - Nodos]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tipo Locución'''&lt;br /&gt;
|  | Indicar de qué tipo es la locución.&lt;br /&gt;
||MOH &lt;br /&gt;
Sound&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Grupo Locución'''&lt;br /&gt;
| | Indicar a que grupo pertenece la locución (obligatorio).  Para más información[[#Grupo de Locuciones  | ver sección '''''VIVA'''''it Response - Grupo de Locuciones ]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Archivo adjunto'''&lt;br /&gt;
|  | Para adjuntar el archivo con la locución. Nuestra plataforma puede importar archivos con extensión '''.wav''' (mono, 8.000 Hez., 16 bits, formato PCM), '''.alaw''' (mono, 8.000 Hez., 16 bits, formato A-Law) y '''.g729'''&amp;quot; (Obligatorio).&lt;br /&gt;
||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A partir de la versión 3.2 de '''''VIVA'''''it se pueden subir más de 100 locuciones a través del portal de administración.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Locuciones | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
=== Música en espera ===&lt;br /&gt;
Esta pestaña permite al usuario crear y modificar la configuración de música en espera. &lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Música en espera&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar que dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]])&lt;br /&gt;
[[Archivo:25 Busqueda en VIVAit Response - Música en espera.png|700px|center]]&lt;br /&gt;
&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) una &amp;quot;Música en espera&amp;quot; en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
[[Archivo:61 Pestaña ViVAit Response - Musica en espera - Nueva musica en espera.png|center]]&lt;br /&gt;
Las opciones con las que podemos encontrarnos son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre de la MOH (Obligatorio).&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Descripción breve del uso de la MOH (Obligatorio).&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Plantilla'''&lt;br /&gt;
|  | Selección de la plantilla empleada para la música en espera (Obligatorio). Para más información[[#Plantillas | ver sección General - Plantillas ]]&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Formato del fichero'''&lt;br /&gt;
|  | Se pueden utilizar ficheros con extensión '''.mp3'''.&lt;br /&gt;
|}&lt;br /&gt;
[[#Música_en_espera | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
=== Grupo de Locuciones ===&lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Grupo de Locuciones&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar que dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]])&lt;br /&gt;
&lt;br /&gt;
[[Archivo:26 Busqueda en VIVAit Response - Grupo Locuciones.png|700px|center]]&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) un &amp;quot;Grupo de Locución&amp;quot;  en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:62 Pestaña ViVAit Response- Grupo de Locuciones - Nuevo grupo de locucion.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Las opciones con las que podemos encontrarnos son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre asignado para el Grupo de Locuciones (obligatorio).&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Dir. relativo'''&lt;br /&gt;
|  | Directorio relativo que podemos indicar para almacenar el grupo de locuciones (obligatorio).&lt;br /&gt;
|}&lt;br /&gt;
[[#Grupo_de_Locuciones | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
==''VIVA''it Suite ACD+ ==&lt;br /&gt;
&lt;br /&gt;
El ACD es una de las funcionalidades más destacadas incorporadas en una solución de Contact Center. Esta solución ofrece funciones avanzadas de cola de espera y enrutamiento de llamadas, para optimizar la gestión de grandes flujos de llamadas entrantes, y mantener al mismo tiempo la calidad de servicio para el llamante.&lt;br /&gt;
&lt;br /&gt;
A continuación se enumeran las funcionalidades y beneficios más importantes de un ACD:&lt;br /&gt;
&lt;br /&gt;
* Aplica inteligencia de negocio al tráfico de llamadas entrantes, asignando las llamadas a colas y distribuyéndolas de forma efectiva a los agentes en espera.&lt;br /&gt;
* Agiliza la administración de llamadas con tres algoritmos de routing: circular, lineal y de agentes a grupos de trabajo.&lt;br /&gt;
* Incluye mensajes de aviso de espera, que se emiten a intervalos programados para llamadas en espera y a clientes en una cola.&lt;br /&gt;
* Soporta un número ilimitado de supervisores.&lt;br /&gt;
* Permite una mejor interacción con el cliente y tiempos de aprendizaje reducidos, al proporcionar una supervisión discreta de la actividad de los agentes para garantizar la calidad.&lt;br /&gt;
&lt;br /&gt;
Con esta solución profesional, las pequeñas y medianas empresas pueden mejorar de forma decisiva tanto sus servicios de atención telefónica y de bienvenida, como los relacionados con éstos. A continuación enumeramos ''aspectos importantes'':&lt;br /&gt;
&lt;br /&gt;
* Un ACD mejora de los niveles de servicio al cliente y tiempos de respuesta.&lt;br /&gt;
* Permite la reducción de niveles de llamadas no atendidas.&lt;br /&gt;
* Acelerar los tiempos de respuesta a las llamadas.&lt;br /&gt;
&lt;br /&gt;
Esta pestaña ofrece al usuario la gestión y configuración de servicios de call center (colas, VDNs, monitores, campañas...). El contenido de la pestaña ''''''VIVA'''''it Suite ACD+' es el siguiente: &lt;br /&gt;
&lt;br /&gt;
[[File:63 Pestaña ViVAit Suite ACD+.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver arriba]&lt;br /&gt;
=== Campañas ===&lt;br /&gt;
&lt;br /&gt;
Este apartado sirve para crear, modificar y gestionar las campañas para call center. &lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Campañas&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar que dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]])&lt;br /&gt;
[[Archivo:27 Busqueda en VIVAit Suite ACD+ - Campañas.png|750px| center]]&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) una  &amp;quot;Campaña&amp;quot;  en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:64 Pestaña ViVAit Suite ACD+ - Campañas - Nueva Campaña.jpg|800px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Las opciones con las que podemos encontrarnos son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre de la campaña (Obligatorio). &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Descripción de la campaña (Obligatorio).&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Notas'''&lt;br /&gt;
|  | Notas sobre la campaña. Para Yoigo este campo se usa para representar &lt;br /&gt;
en el formulario la categoría que se usará en pregunta abierta .&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Datos del formulario '''&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Este apartado se rellena solo en el caso de tener un formulario personalizado. En el caso contrario es necesario marcar la casilla “Ignorar formulario”. '''''Explicado en una tabla mas abajo'''''.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tipo Final'''&lt;br /&gt;
| | Se indica el tipo de final elegido para la campaña.  Para más información[[#Finales | '''''VIVA'''''it Suite ACD+ - Enumerados - Finales]].&lt;br /&gt;
&lt;br /&gt;
||Genérico : se cargara todos los finales a la campaña que no le fueron asignados.&lt;br /&gt;
&lt;br /&gt;
Especifico : se cargara todos los finales a la campaña que le fueron asignados.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tiempo administrativo'''&lt;br /&gt;
|  | Son los segundos que se dejan al agente para terminar de rellenar el formulario, o realizar otro tipo de gestión una vez finalizada la llamada. Para desactivar esta opción es necesario marcar la casilla “Ignorar tiempo administrativo”. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''¿Está activa?'''&lt;br /&gt;
| | Sirve para arrancar o parar la campaña y conocer su estado. &lt;br /&gt;
| | Si / No. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Estrategia'''&lt;br /&gt;
|  | Estrategia empleada por la campaña. Para más información[[#Estrategias | '''''VIVA'''''it Suite ACD+ - Marcador - Estrategias ]]&lt;br /&gt;
&lt;br /&gt;
|| Estrategia-Defecto u otros.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Categoría'''&lt;br /&gt;
| | Categoría de la campaña. Para más información [[#Categorías  | ver sección '''''VIVA'''''it Call - Categorías]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Número saliente'''&lt;br /&gt;
|  | Número al mostrar en las llamadas salientes. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre saliente'''&lt;br /&gt;
| | Nombre al mostrar en las llamadas salientes. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Lista Robinson'''&lt;br /&gt;
|  | Lista negra de contactos asociada a la campaña. Para más información [[#Listas Robinson |'''''VIVA'''''it Suite ACD+ - Marcador - Listas Robinson ]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Max. Días reprogramación'''&lt;br /&gt;
| | Número de días máximo que se puede reprogramar la campaña.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Fecha max.Reprogramación'''&lt;br /&gt;
|  | Fecha máxima permitida para reprogramar la campaña.&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Máscara reprogramación'''&lt;br /&gt;
|  |Máscara de reprogramación para el destino.&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Modo de grabación'''&lt;br /&gt;
| | Indica si un agente ACD puede tener el control de cuando se graba.&lt;br /&gt;
|| Sin grabación: no permite tener el control de grabación&lt;br /&gt;
Grabación bajo demanda de inicio grabando: permite al agente ACD decidir cuando pausar la grabación.&lt;br /&gt;
&lt;br /&gt;
Grabación bajo demanda de inicio sin grabar: permite al agente ACD iniciar y parar la grabación.&lt;br /&gt;
&lt;br /&gt;
Grabar todo: se graba independientemente de la acción del agente ACD.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Dpto'''&lt;br /&gt;
|  |Elegir un eje (Obligatorio) . Para más información [[#Ejes | ver sección Ejes]].&lt;br /&gt;
||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Datos del formulario'''&lt;br /&gt;
&lt;br /&gt;
Este apartado se rellena solo en el caso de tener un formulario personalizado que se va a usar en la campaña que estemos creando. En el caso contrario es necesario marcar la casilla “Ignorar formulario”.  &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Formulario'''&lt;br /&gt;
|  |Nombre del formulario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tipo formulario'''&lt;br /&gt;
|  |   Seleccionar uno de los formularios existentes. Para más información [[#Formularios | ver sección '''''VIVA'''''it Suite ACD+ - Formularios ]]&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Clase'''&lt;br /&gt;
|  | Nombre de la clase del formulario cuando es integrado por el cliente. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Accion'''&lt;br /&gt;
|  | En este campo se indica la &amp;quot;acción&amp;quot; que el sistema realizará a la vez que se abre el formulario. Es '''necesario''' que el tipo de formulario sea &amp;quot;Creado URL&amp;quot; o &amp;quot;Integrado cliente URL&amp;quot;. Si la acción consite en ejecutar un archivo '''.exe''' los posibles parámetros irán '''obligatoriamente''' en los campos '''Param. de cadena 3''' o '''Param. de cadena 4'''.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Param. númerico 1'''&lt;br /&gt;
| | En el caso que el tipo de formulario sea &amp;quot;Creado URL&amp;quot; o &amp;quot;Integrado cliente url&amp;quot; , permite meter un parámetro numérico a la URL si es necesario. En caso contrario no se tienen en cuenta.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Param. númerico 2'''&lt;br /&gt;
| | En el caso que el tipo de formulario sea &amp;quot;Creado URL&amp;quot; o &amp;quot;Integrado cliente url&amp;quot; , permite meter otro parámetro numérico a la URL si es necesario. En caso contrario no se tienen en cuenta.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Param. de cadena 3'''&lt;br /&gt;
| | En el caso que el tipo de formulario sea &amp;quot;Creado URL&amp;quot; o &amp;quot;Integrado cliente url&amp;quot; , permite meter una cadena de texto como parámetro de la '''acción''' indicada. Cuando la acción consiste en ejecutar un archivo '''.exe''' los posibles parámetros habrán de indicarse en este campo o en el siguiente. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Param. de cadena 4'''&lt;br /&gt;
| | En el caso que el tipo de formulario sea &amp;quot;Creado URL&amp;quot; o &amp;quot;Integrado cliente url&amp;quot; , permite meter una cadena de texto como parámetro de la '''acción''' indicada. Cuando la acción consiste en ejecutar un archivo '''.exe''' los posibles parámetros habrán de indicarse en este campo o en el anterior.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A continuación se muestra un ejemplo de campaña con un formulario asignado y una acción que ejecuta un archivo .exe tras la apertura del formulario (los parámetros indicados son de ejemplo).&lt;br /&gt;
&lt;br /&gt;
[[File:Imagen1.jpg|700 px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Parámetros URL'''&lt;br /&gt;
&lt;br /&gt;
Los parámetros que podemos pasar a la URL son los siguientes:&lt;br /&gt;
&lt;br /&gt;
*colat: colateral&lt;br /&gt;
*campanna: Nombre de la campaña&lt;br /&gt;
*vdn: Descripción del VDN&lt;br /&gt;
*acd: Número del grupo ACD&lt;br /&gt;
*nombre: Nombre del contacto&lt;br /&gt;
*apell1: Primer apellido del contacto&lt;br /&gt;
*apell2: Segundo apellido del contacto&lt;br /&gt;
*empresa: Nombre de la empresa del contacto&lt;br /&gt;
*email: email del contacto&lt;br /&gt;
*opcCad1: Parámetro cadena 1 opcional&lt;br /&gt;
*opcCad2: Parámetro cadena 2 opcional&lt;br /&gt;
*opcCad3: Parámetro cadena 3 opcional&lt;br /&gt;
*opcCad4: Parámetro cadena 4 opcional&lt;br /&gt;
*opcCad5: Parámetro cadena 5 opcional&lt;br /&gt;
*opcCad6: Parámetro cadena 6 opcional&lt;br /&gt;
*opcCad7: Parámetro cadena 7 opcional&lt;br /&gt;
*opcCad8: Parámetro cadena 8 opcional&lt;br /&gt;
*agnNum: Número de login del agente&lt;br /&gt;
*agnCuenta: Nombre de la cuenta de usuario&lt;br /&gt;
*codCliente: Código de cliente&lt;br /&gt;
*formulario: Nombre del formulario&lt;br /&gt;
*par1: Parámetro numérico 1 correspondiente al formulario &lt;br /&gt;
*par2: Parámetro numérico 2 correspondiente al formulario &lt;br /&gt;
*par3: Parámetro cadena 3 correspondiente al formulario &lt;br /&gt;
*par4: Parámetro cadena 4 correspondiente al formulario &lt;br /&gt;
[[#Campañas | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
=== VDN (VIVAit Suite ACD+) ===&lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;VDN ('''''VIVA'''''it Suite ACD+)&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar que dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]])&lt;br /&gt;
[[Archivo:28 Busqueda en VIVAit Suite ACD+ - VDN.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) un &amp;quot;VDN&amp;quot;  en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:65 Pestaña ViVAit Suite ACD+ - VDN - Nuevo VDN.jpg|center]]&lt;br /&gt;
Las opciones con las que podemos encontrarnos son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Número'''&lt;br /&gt;
|  | Número de VDN (Obligatorio).&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre mostrar'''&lt;br /&gt;
|  |  Nombre que presentara el VDN al llamante.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Descripción del VDN (Obligatorio).&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Notas'''&lt;br /&gt;
|  | Campo Notas del VDN para empleo en los formularios.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nodo'''&lt;br /&gt;
|  | Nodo donde va a pertenecer dicho VDN (obligatorio). Para más información [[#Nodos | ver sección General - Nodos]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Datos del formulario '''&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot;  | Este apartado se rellena solo en el caso de tener un formulario personalizado que se va a usar en el VDN que estamos creando. En el caso contrario es necesario marcar la casilla “Ignorar formulario”. '''''Explicado en una tabla mas abajo'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tipo Final'''&lt;br /&gt;
|  | Se indica el tipo de final elegido para la campaña.   Para más información[[#Finales | '''''VIVA'''''it Suite ACD+ - Enumerados - Finales]]&lt;br /&gt;
&lt;br /&gt;
||Genérico : se cargara todos los finales a la campaña que no le fueron asignados.&lt;br /&gt;
&lt;br /&gt;
Especifico : se cargara todos los finales a la campaña que le fueron asignados.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tiempo administrativo'''&lt;br /&gt;
| | tiempo en segundos para los agentes en el VDN. Es un parámetro que indica el tiempo en volver a estar preparado el agente para la aplicación de VIVAit Desk.&lt;br /&gt;
&lt;br /&gt;
Si ignoramos el tiempo administrativo del VND, se tomara el tiempo administrativo dado para el grupo ACD asociado. Para ignorar el tiempo administrativo solo es necesario marcar la casilla “Ignorar tiempo administrativo”. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Cód. Cliente'''&lt;br /&gt;
|  | Código del cliente.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Modo de grabación'''&lt;br /&gt;
| | Indica si un agente ACD puede tener el control de cuando se graba.&lt;br /&gt;
|| Sin grabación: no permite tener el control de grabación&lt;br /&gt;
Grabación bajo demanda de inicio grabando: permite al agente ACD decidir cuando pausar la grabación.&lt;br /&gt;
&lt;br /&gt;
Grabación bajo demanda de inicio sin grabar: permite al agente ACD iniciar y parar la grabación.&lt;br /&gt;
&lt;br /&gt;
Grabar todo: se graba independientemente de la acción del agente ACD.&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Grabar enrutamiento'''&lt;br /&gt;
|  | Este campo define si van a grabar las llamadas que se enruten para este VDN.&lt;br /&gt;
||Sin grabación&lt;br /&gt;
&lt;br /&gt;
Grabación sin beep periódico&lt;br /&gt;
&lt;br /&gt;
Grabación con beep periódico&lt;br /&gt;
&lt;br /&gt;
Descartar grabación.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Dpto'''&lt;br /&gt;
|  | Elegir un eje (Obligatorio) . Para más información [[#Ejes | ver sección Ejes]]&lt;br /&gt;
||&lt;br /&gt;
|}&lt;br /&gt;
'''Datos del formulario'''&lt;br /&gt;
&lt;br /&gt;
Este apartado se rellena solo en el caso de tener un formulario personalizado que se va a usar en el VDN que estamos creando. En el caso contrario es necesario marcar la casilla “Ignorar formulario”.  &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Formulario'''&lt;br /&gt;
|  |Nombre del formulario.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tipo formulario'''&lt;br /&gt;
|  |   Seleccionar uno de los tipos de formularios existentes. Para más información[[#Finales | '''''VIVA'''''it Suite ACD+ - Enumerados - Finales]]&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Clase'''&lt;br /&gt;
|  | Nombre de la clase del formulario cuando es integrado por el cliente. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Accion'''&lt;br /&gt;
|  | En este campo se indica la &amp;quot;acción&amp;quot; que el sistema realizará a la vez que se abre el formulario. Es '''necesario''' que el tipo de formulario sea &amp;quot;Creado URL&amp;quot; o &amp;quot;Integrado cliente URL&amp;quot;. Si la acción consite en ejecutar un archivo '''.exe''' los posibles parámetros irán '''obligatoriamente''' en los campos '''Param. de cadena 3''' o '''Param. de cadena 4'''.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Param. númerico 1'''&lt;br /&gt;
| | En el caso que el tipo de formulario sea &amp;quot;Creado URL&amp;quot; o &amp;quot;Integrado cliente url&amp;quot; , permite meter un parámetro numérico a la URL si es necesario. En caso contrario no se tienen en cuenta.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Param. númerico 2'''&lt;br /&gt;
| | En el caso que el tipo de formulario sea &amp;quot;Creado URL&amp;quot; o &amp;quot;Integrado cliente url&amp;quot; , permite meter otro parámetro numérico a la URL si es necesario. En caso contrario no se tienen en cuenta.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Param. de cadena 3'''&lt;br /&gt;
| | En el caso que el tipo de formulario sea &amp;quot;Creado URL&amp;quot; o &amp;quot;Integrado cliente url&amp;quot; , permite meter una cadena de texto como parámetro de la '''acción''' indicada. Cuando la acción consiste en ejecutar un archivo '''.exe''' los posibles parámetros habrán de indicarse en este campo o en el siguiente. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Param. de cadena 4'''&lt;br /&gt;
| | En el caso que el tipo de formulario sea &amp;quot;Creado URL&amp;quot; o &amp;quot;Integrado cliente url&amp;quot; , permite meter una cadena de texto como parámetro de la '''acción''' indicada. Cuando la acción consiste en ejecutar un archivo '''.exe''' los posibles parámetros habrán de indicarse en este campo o en el anterior.&lt;br /&gt;
|}&lt;br /&gt;
En un futuro se contempla que pueda usarse una plantilla personalidad para un grupo VDN del dialplan.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A continuación se muestra un ejemplo de campaña con un formulario asignado y una acción que ejecuta un archivo .exe tras la apertura del formulario (los parámetros indicados son de ejemplo).&lt;br /&gt;
&lt;br /&gt;
[[File:Imagen1.jpg|700 px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Parámetros URL'''&lt;br /&gt;
&lt;br /&gt;
Los parámetros que podemos pasar a la URL son los siguientes:&lt;br /&gt;
&lt;br /&gt;
*colat: colateral&lt;br /&gt;
*campanna: Nombre de la campaña&lt;br /&gt;
*vdn: Descripción del VDN&lt;br /&gt;
*acd: Número del grupo ACD&lt;br /&gt;
*nombre: Nombre del contacto&lt;br /&gt;
*apell1: Primer apellido del contacto&lt;br /&gt;
*apell2: Segundo apellido del contacto&lt;br /&gt;
*empresa: Nombre de la empresa del contacto&lt;br /&gt;
*email: email del contacto&lt;br /&gt;
*opcCad1: Parámetro cadena 1 opcional&lt;br /&gt;
*opcCad2: Parámetro cadena 2 opcional&lt;br /&gt;
*opcCad3: Parámetro cadena 3 opcional&lt;br /&gt;
*opcCad4: Parámetro cadena 4 opcional&lt;br /&gt;
*opcCad5: Parámetro cadena 5 opcional&lt;br /&gt;
*opcCad6: Parámetro cadena 6 opcional&lt;br /&gt;
*opcCad7: Parámetro cadena 7 opcional&lt;br /&gt;
*opcCad8: Parámetro cadena 8 opcional&lt;br /&gt;
*agnNum: Número de login del agente&lt;br /&gt;
*agnCuenta: Nombre de la cuenta de usuario&lt;br /&gt;
*codCliente: Código de cliente&lt;br /&gt;
*formulario: Nombre del formulario&lt;br /&gt;
*par1: Parámetro numérico 1 correspondiente al formulario &lt;br /&gt;
*par2: Parámetro numérico 2 correspondiente al formulario &lt;br /&gt;
*par3: Parámetro cadena 3 correspondiente al formulario &lt;br /&gt;
*par4: Parámetro cadena 4 correspondiente al formulario &lt;br /&gt;
&lt;br /&gt;
[[#VDN_(VIVAit_Suite_ACD+) | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
=== Grupos ACD ===&lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Grupos ACD&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar que dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]])&lt;br /&gt;
[[Archivo:29 Busqueda en VIVAit Suite ACD+ - Grupos ACD.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) un &amp;quot;Grupo ACD&amp;quot;  en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[File:Portapapeles01.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Las opciones con las que podemos encontrarnos son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Número'''&lt;br /&gt;
|  | Número del grupo ACD (Obligatorio). &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre mostrar'''&lt;br /&gt;
|  | Nombre que presentara el grupo ACD.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Plantilla'''&lt;br /&gt;
|  | Plantilla empleada para el grupo ACD. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Música'''&lt;br /&gt;
|  | Definimos la música que escuchará el llamante cuando está en cola. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nodo'''&lt;br /&gt;
|  | Nodo al que va a pertenecer dicha cola (Obligatorio).  Para más información [[#Nodos | ver sección General - Nodos]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Breve descripción sobre el grupo ACD.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Notas'''&lt;br /&gt;
|  | El campo es empleado por algunos formularios para mostrar cierta información. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Objetivo NS'''&lt;br /&gt;
|  | Tiempo de nivel de servicio que se debe alcanzar en la cola . Este parámetro indica el tiempo máximo de espera en segundos que debería alcanzar una llamada de entrada en la cola de espera para el grupo ACD.&lt;br /&gt;
Siempre que se haga un calculo de prioridad de las llamadas, aquellas colas con valor menor podrán tener una prioridad mayor respecto a las colas con un valor mayor.&lt;br /&gt;
Para mas información ver [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit#Mecanismo_de_prioridad_adaptativa | mecanismo de  asignación  de llamadas en colas a agentes ]].&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Peso'''&lt;br /&gt;
|  | Entre las colas es el nivel de prioridad de la cola.&lt;br /&gt;
Para una llamada de entrada es la cantidad o factor de mejora de prioridad en la cola de espera. Siempre que se haga un calculo de prioridad de las llamadas, aquellas colas con valor alto podrán tener una prioridad mayor respecto a las colas con un valor menor.&lt;br /&gt;
Para mas información ver [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit#Mecanismo_de_prioridad_adaptativa | mecanismo de  asignación  de llamadas en colas a agentes ]].&lt;br /&gt;
|| 0&lt;br /&gt;
&lt;br /&gt;
1&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
&lt;br /&gt;
100&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Grabar enrutamiento'''&lt;br /&gt;
|  | Este campo define si van a grabar las llamadas que se enruten para este Grupo ACD.&lt;br /&gt;
||Sin grabación&lt;br /&gt;
&lt;br /&gt;
Grabación sin beep periódico&lt;br /&gt;
&lt;br /&gt;
Grabación con beep periódico&lt;br /&gt;
&lt;br /&gt;
Descartar grabación.&lt;br /&gt;
|-&lt;br /&gt;
|font-weight: bold;&amp;quot; | '''Datos del formulario '''&lt;br /&gt;
|  colspan=&amp;quot;2&amp;quot;  | Este apartado se rellena solo en el caso de tener un formulario personalizado. En el caso contrario es necesario marcar la casilla “Ignorar formulario”. '''''Explicado en una tabla mas abajo'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tiempo Administrativo'''&lt;br /&gt;
|  |  tiempo en segundos para los agentes en el grupo ACD. Es un parámetro que indica el tiempo en volver a estar preparado el agente para recibir una llamada desde la aplicación de VIVAit Desk.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tipo cola'''&lt;br /&gt;
|  | Elegir el tipo de cola.   &lt;br /&gt;
||Llamada entrante&lt;br /&gt;
&lt;br /&gt;
Llamada saliente bajo demanda&lt;br /&gt;
&lt;br /&gt;
Llamada saliente vista previa&lt;br /&gt;
&lt;br /&gt;
Llamada saliente progresivo&lt;br /&gt;
&lt;br /&gt;
Llamada saliente predictivo&lt;br /&gt;
&lt;br /&gt;
Backoffice&lt;br /&gt;
&lt;br /&gt;
Backoffice interrumpible&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Id saliente'''&lt;br /&gt;
| | El número al mostrar en las llamadas salientes.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre saliente'''&lt;br /&gt;
|  | El nombre al mostrar en las llamadas salientes. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tipo Final'''&lt;br /&gt;
|  | Se indica el tipo de final elegido para el grupo. Para más información[[#Finales | '''''VIVA'''''it Suite ACD+ - Enumerados - Finales]]&lt;br /&gt;
&lt;br /&gt;
||Genérico : se cargara todos los finales a la campaña que no le fueron asignados.&lt;br /&gt;
&lt;br /&gt;
Especifico : se cargara todos los finales a la campaña que le fueron asignados.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Agente tiempo'''&lt;br /&gt;
|  | Ofrecer un tiempo administrativo al agente ACD antes de ponerle en estado preparado. El tiempo se le asigna en el campo &amp;quot;Tiempo admin. de centralita&amp;quot;.&lt;br /&gt;
||Si / No.  &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Algoritmo predicativo'''&lt;br /&gt;
|  | Asociar un algoritmo predicativo a la cola.  &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tiempo admin. de centralita'''&lt;br /&gt;
|  | Tiempo en segundos que asterisk considerara que tiene un agente para &amp;quot;prepararse&amp;quot; al terminar una llamada, y poder esta listo para poder recibir la siguiente llamada. '''Este tiempo debería ser menor que el tiempo administrativo'''.&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Modo de grabación'''&lt;br /&gt;
| | Indica si un agente ACD puede tener el control de cuando se graba.&lt;br /&gt;
|| Sin grabación: no permite tener el control de grabación&lt;br /&gt;
Grabación bajo demanda de inicio grabando: permite al agente ACD decidir cuando pausar la grabación.&lt;br /&gt;
&lt;br /&gt;
Grabación bajo demanda de inicio sin grabar: permite al agente ACD iniciar y parar la grabación.&lt;br /&gt;
&lt;br /&gt;
Grabar todo: se graba independientemente de la acción del agente ACD.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Grabar seg. Cola'''&lt;br /&gt;
|  | Indica si se graba o no el segmento de cola. &lt;br /&gt;
||Si / No. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Categoría'''&lt;br /&gt;
|  | Elegir la categoría del grupo ACD (Obligatorio).  Para más información [[#Categorías  | ver sección '''''VIVA'''''it call - Categorías]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Dpto'''&lt;br /&gt;
|  |Elegir un eje (Obligatorio) . Para más información [[#Ejes | ver sección Ejes]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Agregar campo'''&lt;br /&gt;
| |  Si queremos añadir mas campos que no estén visibles en esta ventana.&lt;br /&gt;
||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Datos del formulario'''&lt;br /&gt;
&lt;br /&gt;
Este apartado se rellena solo en el caso de tener un formulario personalizado que se va a usar en el Grupo ACD que estamos creando. En el caso contrario es necesario marcar la casilla “Ignorar formulario”.  &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Formulario'''&lt;br /&gt;
|  |Nombre del formulario.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tipo formulario'''&lt;br /&gt;
|  |   Seleccionar uno de los tipos de formularios existentes. Para más información[[#Finales | '''''VIVA'''''it Suite ACD+ - Enumerados - Finales]]&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Clase'''&lt;br /&gt;
|  | Nombre de la clase del formulario cuando es integrado por el cliente. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Accion'''&lt;br /&gt;
|  | En este campo se indica la &amp;quot;acción&amp;quot; que el sistema realizará a la vez que se abre el formulario. Es '''necesario''' que el tipo de formulario sea &amp;quot;Creado URL&amp;quot; o &amp;quot;Integrado cliente URL&amp;quot;. Si la acción consite en ejecutar un archivo '''.exe''' los posibles parámetros irán '''obligatoriamente''' en los campos '''Param. numérico 3''' o '''Param. numérico 4'''.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Param. numérico 1'''&lt;br /&gt;
| | En el caso que el tipo de formulario sea &amp;quot;Creado URL&amp;quot; o &amp;quot;Integrado cliente url&amp;quot; , permite meter un parámetro numérico a la URL si es necesario. En caso contrario no se tienen en cuenta.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Param. numérico 2'''&lt;br /&gt;
| | En el caso que el tipo de formulario sea &amp;quot;Creado URL&amp;quot; o &amp;quot;Integrado cliente url&amp;quot; , permite meter otro parámetro numérico a la URL si es necesario. En caso contrario no se tienen en cuenta.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Param. de cadena 3'''&lt;br /&gt;
| | En el caso que el tipo de formulario sea &amp;quot;Creado URL&amp;quot; o &amp;quot;Integrado cliente url&amp;quot; , permite meter una cadena de texto como parámetro de la '''acción''' indicada. Cuando la acción consiste en ejecutar un archivo '''.exe''' los posibles parámetros habrán de indicarse en este campo o en el siguiente. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Param. de cadena 4'''&lt;br /&gt;
| | En el caso que el tipo de formulario sea &amp;quot;Creado URL&amp;quot; o &amp;quot;Integrado cliente url&amp;quot; , permite meter una cadena de texto como parámetro de la '''acción''' indicada. Cuando la acción consiste en ejecutar un archivo '''.exe''' los posibles parámetros habrán de indicarse en este campo o en el anterior.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A continuación se muestra un ejemplo de campaña con un formulario asignado y una acción que ejecuta un archivo .exe tras la apertura del formulario (los parámetros indicados son de ejemplo).&lt;br /&gt;
&lt;br /&gt;
[[File:Imagen1.jpg|700 px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Parámetros URL'''&lt;br /&gt;
&lt;br /&gt;
Los parámetros que podemos pasar a la URL son los siguientes:&lt;br /&gt;
&lt;br /&gt;
*colat: colateral&lt;br /&gt;
*campanna: Nombre de la campaña&lt;br /&gt;
*vdn: Descripción del VDN&lt;br /&gt;
*acd: Número del grupo ACD&lt;br /&gt;
*nombre: Nombre del contacto&lt;br /&gt;
*apell1: Primer apellido del contacto&lt;br /&gt;
*apell2: Segundo apellido del contacto&lt;br /&gt;
*empresa: Nombre de la empresa del contacto&lt;br /&gt;
*email: email del contacto&lt;br /&gt;
*opcCad1: Parámetro cadena 1 opcional&lt;br /&gt;
*opcCad2: Parámetro cadena 2 opcional&lt;br /&gt;
*opcCad3: Parámetro cadena 3 opcional&lt;br /&gt;
*opcCad4: Parámetro cadena 4 opcional&lt;br /&gt;
*opcCad5: Parámetro cadena 5 opcional&lt;br /&gt;
*opcCad6: Parámetro cadena 6 opcional&lt;br /&gt;
*opcCad7: Parámetro cadena 7 opcional&lt;br /&gt;
*opcCad8: Parámetro cadena 8 opcional&lt;br /&gt;
*agnNum: Número de login del agente&lt;br /&gt;
*agnCuenta: Nombre de la cuenta de usuario&lt;br /&gt;
*codCliente: Código de cliente&lt;br /&gt;
*formulario: Nombre del formulario&lt;br /&gt;
*par1: Parámetro numérico 1 correspondiente al formulario &lt;br /&gt;
*par2: Parámetro numérico 2 correspondiente al formulario &lt;br /&gt;
*par3: Parámetro cadena 3 correspondiente al formulario &lt;br /&gt;
*par4: Parámetro cadena 4 correspondiente al formulario &lt;br /&gt;
&lt;br /&gt;
[[#Grupos_ACD | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
=== Enumerados ===&lt;br /&gt;
&lt;br /&gt;
El contenido de la pestaña ''''''VIVA'''''it Suite ACD+ - Enumerados' es el siguiente: &lt;br /&gt;
&lt;br /&gt;
[[File:67_Pestaña_ViVAit_Suite_ACD+_-_Enumerados.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver arriba]&lt;br /&gt;
==== Pausas ====&lt;br /&gt;
Esta pestaña permite crear, configurar y editar las pausas para los grupos ACD. &lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Pausas&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar que dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]])&lt;br /&gt;
[[Archivo:30 Busqueda en VIVAit Suite ACD+ - Enumerados - Pausas.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) una  &amp;quot;Pausa&amp;quot;  en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:68 Pestaña ViVAit Suite ACD+ - Enumerados - Pausas - Nueva pausa.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Las opciones con las que podemos encontrarnos son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre de la pausa (Obligatorio).&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Descripción de la pausa.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Pausa'''&lt;br /&gt;
|  | Número que va a tener la pausa asociado (Obligatorio).&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Color'''&lt;br /&gt;
|  | Color con que se representa la pausa en el vivait-desk.&lt;br /&gt;
||Ofrece una paleta de colores a eligir.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Perfiles'''&lt;br /&gt;
| | Perfiles que van a tener la pausa creada. Para mas información [[#Perfiles | ver sección  '''''VIVA'''''it Suite ACD+ - Perfiles ]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Usuarios'''&lt;br /&gt;
|  | Usuarios que van a tener la pausa creada. Para más información[[#Usuarios | ver sección General - Usuarios ]].&lt;br /&gt;
||&lt;br /&gt;
|}&lt;br /&gt;
[[#Pausas | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Finales ====&lt;br /&gt;
&lt;br /&gt;
Se entiende por &amp;quot;Finales&amp;quot; a la calificación /resolución de una llamada cuando esta finaliza. Existe una por cliente y su configuración se realiza en los formularios.&lt;br /&gt;
Algunos ejemplos pueden ser:&lt;br /&gt;
* Llamada muda&lt;br /&gt;
* Llamada cortada&lt;br /&gt;
* Teléfono equivocado&lt;br /&gt;
* ... etc&lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Finales&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar que dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]])&lt;br /&gt;
[[Archivo:31 Busqueda en VIVAit Suite ACD+ - Enumerados - Finales.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) un  &amp;quot;Final&amp;quot;  en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
[[Archivo:69 Pestaña ViVAit Suite ACD+ - Enumerados - Finales - Nuevo final.png|center]]&lt;br /&gt;
Las opciones con las que podemos encontrarnos son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre del final (Obligatorio). &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Descripción del final.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tipo'''&lt;br /&gt;
|  | No asignado (por defecto).&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Final'''&lt;br /&gt;
|  | Número asociado al final (Obligatorio). &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Cola'''&lt;br /&gt;
| | Asignar el final creado a una cola. Para ello la cola tiene que tener como tipo de final especifico.  Para más información[[#Grupos ACD  | '''''VIVA'''''it Suite ACD+ - Grupos ACD ]]&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''VDN'''&lt;br /&gt;
|  | Asignar el final creado a un VDN. Para ello el VDN tiene que tener como tipo de final especifico. Para más información[[#VDN (VIVAit Suite ACD+) |'''''VIVA'''''it Suite ACD+ - VDN ]] &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Campaña'''&lt;br /&gt;
|  | Asignar el final creado a una campaña. Para ello la campaña tiene que tener como tipo de final especifico. Para más información[[#Campañas | '''''VIVA'''''it Suite ACD+ - Campañas ]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Finales | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
==== Motivos Desconexión ====&lt;br /&gt;
&lt;br /&gt;
Existen los siguientes motivos de desconexión:&lt;br /&gt;
&lt;br /&gt;
* Fin jornada&lt;br /&gt;
* Despido&lt;br /&gt;
* Traslado&lt;br /&gt;
* Aplicación&lt;br /&gt;
* Supervisor&lt;br /&gt;
&lt;br /&gt;
El agente cerrará su sesión marcando uno de los motivos y finalizará la ejecución del programa. &lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Motivos Desconexión&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar que dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]])&lt;br /&gt;
[[Archivo:32 Busqueda en VIVAit Suite ACD+ - Enumerados - Mot. Desconexión.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” estáa explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” está explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) un  &amp;quot;Motivo de Desconexión &amp;quot;  en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
[[Archivo:70 Pestaña ViVAit Suite ACD+ - Enumerados - Motivos desconexión - Nuevo Motivo desconexión.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Las opciones con las que podemos encontrarnos son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre del motivo de desconexión (Obligatorio).&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Descripción del motivo de la desconexión. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Desconexión'''&lt;br /&gt;
|  | Número asociado de desconexión (Obligatorio) .&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Perfiles'''&lt;br /&gt;
|  | Perfiles que van a tener la desconexión asociada. Para mas información [[#Perfiles | ver sección  '''''VIVA'''''it  Suite ACD+ - Perfiles ]]&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Color'''&lt;br /&gt;
| | Color con que se representa la desconexión .&lt;br /&gt;
||Ofrece una paleta de colores a eligir.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[#Motivos_Desconexión | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
=== Config. de Monitores ===&lt;br /&gt;
&lt;br /&gt;
Esta pestaña permite crear y configurar los monitores según las necesidades del cliente. &lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de Config. de Monitores&amp;quot;&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar que dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]])&lt;br /&gt;
&lt;br /&gt;
[[Archivo:33 Busqueda en VIVAit Suite ACD+ - Monitores.png|800 px|center]]&lt;br /&gt;
&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) una  &amp;quot;configuración de monitor&amp;quot;  en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:71 Pestaña ViVAit Suite ACD+ - Conf. de Monitores - Editar.png|center]]&lt;br /&gt;
&lt;br /&gt;
Las opciones con las que podemos encontrarnos son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre del Monitor (Obligatorio) .&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Descripción del Monitor (Obligatorio).&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tipo'''&lt;br /&gt;
|  | Elegir el nº de posiciones para monitorizar el Call center &lt;br /&gt;
|  | Call center 8 posiciones&lt;br /&gt;
&lt;br /&gt;
Call center 4 posiciones&lt;br /&gt;
&lt;br /&gt;
Call center Multimonitor&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''ACD'''&lt;br /&gt;
|  | Conjunto de Grupos ACD que se van a monitorizar.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Intervalo'''&lt;br /&gt;
| | Tiempo establecido para el intervalo.&lt;br /&gt;
||30 / 60 minutos&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Histórico relativo'''&lt;br /&gt;
|  |  Indica el periodo en el que se muestran las llamadas que han sido atendidas en los monitores.Si lo establecemos a “No”, entra en juego el intervalo de histórico. &lt;br /&gt;
|| Hoy: desde 00:00 a 23:59.&lt;br /&gt;
Este mes: desde el día 1 00:00 al 30-31 a las 23:59.&lt;br /&gt;
&lt;br /&gt;
Este año: desde 1 de enero 00:00 a 31 de diciembre 23:59.&lt;br /&gt;
No&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Intervalo de histórico'''&lt;br /&gt;
| | Indica un valor del periodo en el que se muestran las llamadas que han sido atendidas en los monitores, distinto al campo &amp;quot;Intervalo&amp;quot;.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tiempo de intervalo histórico'''&lt;br /&gt;
| | Como queremos que considere el valor de 'Intervalo de histórico' en unidades de tiempo.&lt;br /&gt;
||HORAS&lt;br /&gt;
DÍAS&lt;br /&gt;
&lt;br /&gt;
SEMANAS&lt;br /&gt;
&lt;br /&gt;
MESES&lt;br /&gt;
&lt;br /&gt;
AÑOS&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Color por defecto'''&lt;br /&gt;
|  | Color por defecto del panel si no se han configurado alarmas para dicho panel.&lt;br /&gt;
||Ofrece una paleta de colores a eligir.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Dpto'''&lt;br /&gt;
|  | Elegir un eje (Obligatorio) . Para más información [[#Ejes | ver sección Ejes]].&lt;br /&gt;
||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Campos multimonitor ===&lt;br /&gt;
Una vez creado el multimonitor lo seleccionamos y la editamos&lt;br /&gt;
[[File:Multimonitor-Campos-Editar.jpg|center|800px]]&lt;br /&gt;
Aparecerá en la pantalla un nuevo botón &amp;quot;Mostrar Campos&amp;quot;&lt;br /&gt;
[[File:Multimonitor-Campos.jpg|center|800px]]&lt;br /&gt;
Si lo pulsamos aparecerá una ventana en la que podemos añadir los campos disponibles&lt;br /&gt;
[[File:Multimonitor-Campos-Agregar.jpg|center|700px]]&lt;br /&gt;
En esta ventana seleccionamos los campos, establecemos alarmas e indicamos la posición que el campo ocupa en el multimonitor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--A continuación se muestra un resumen de cada uno de los campos del multimonitor:   [[medio:Camposmultimonitorpdf.pdf |Ver Resumen Campos Multimonitor]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación se muestran los campos disponibles y su descripción:[[medio:Campos de Multimonitor.pdf|Ver campos]]&lt;br /&gt;
&lt;br /&gt;
[[#Config._de_Monitores | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
=== Marcador ===&lt;br /&gt;
El contenido de la pestaña ''''''VIVA'''''it Suite ACD+ - Marcador' es el siguiente.&lt;br /&gt;
[[File:72_Pestaña_ViVAit_Suite_ACD+_-_Marcador.jpg|center]]&lt;br /&gt;
[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver arriba]&lt;br /&gt;
==== Contactos ====&lt;br /&gt;
Esta pestaña permite crear y editar los contactos de ACD. &lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Contactos&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar que dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]])&lt;br /&gt;
&lt;br /&gt;
[[Archivo:34 Busqueda en VIVAit Suite ACD+ - Marcador - Contactos.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) un  &amp;quot;Contacto&amp;quot;  en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:73 Pestaña ViVAit Suite ACD+ - Marcador - Contactos - Nuevo Contacto.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
Las opciones de la pestaña nuevo contacto de ACD se explican en la siguiente tabla:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Lista Contactos'''&lt;br /&gt;
|  | Lista a la que pertenece el contacto. Para más información [[#Lista de Contactos |ver sección '''''VIVA'''''it Suite ACD+ - Marcador - Listas de contactos ]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Cod. Cliente'''&lt;br /&gt;
|  | Nombre de contacto (Obligatorio).&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Primer Apellido'''&lt;br /&gt;
|  | Primer apellido del contacto .&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Segundo Apellido '''&lt;br /&gt;
|  | Segundo apellido del contacto.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Empresa'''&lt;br /&gt;
|  | Empresa del contacto.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Dirección'''&lt;br /&gt;
| | Dirección del contacto.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Dirección alternativa'''&lt;br /&gt;
|  | Dirección alternativa del contacto.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Código Postal'''&lt;br /&gt;
|  | Código postal del contacto.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
|  | Localidad del contacto.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Provincia'''&lt;br /&gt;
|  | Provincia del contacto .&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''País'''&lt;br /&gt;
|  | País del contacto .&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Correo electrónico'''&lt;br /&gt;
|  | Correo electrónico del contacto .&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Añadir Tel. Fijos'''&lt;br /&gt;
|  | Añade número de teléfonos fijos al contacto .&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Añadir Tel. Móvil'''&lt;br /&gt;
|  | Añade número de teléfonos móviles al contacto .&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Edad'''&lt;br /&gt;
|  | Edad del contacto.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Sexo'''&lt;br /&gt;
|  | Sexo del contacto.&lt;br /&gt;
||Desconocido&lt;br /&gt;
&lt;br /&gt;
Masculino&lt;br /&gt;
&lt;br /&gt;
Femenino&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Idioma'''&lt;br /&gt;
|  | Idioma hablado del contacto. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tratamiento'''&lt;br /&gt;
|  | Cómo dirigirse al contacto de forma correcta.&lt;br /&gt;
||Señor&lt;br /&gt;
&lt;br /&gt;
Señora&lt;br /&gt;
&lt;br /&gt;
Don&lt;br /&gt;
&lt;br /&gt;
Doña &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Añadir Opcional num'''&lt;br /&gt;
|  | Datos numéricos que se asocian al contacto, que pueden usarse en los formularios.&lt;br /&gt;
|| Ejemplo queremos que este campos guarde el numero de hijos pues indicamos 1 o 2 o los que tenga el contacto.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Añadir Opcional cad'''&lt;br /&gt;
|  | Cadena de texto que se asocian al contacto, que pueden usarse en los formularios. &lt;br /&gt;
|| Ejemplo si el contacto tiene el pelo de color rubio, podemos poner el valor &amp;quot;rubio&amp;quot;.&lt;br /&gt;
|}&lt;br /&gt;
[[#Contactos | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
==== Lista de Contactos ====&lt;br /&gt;
Esta pestaña permite crear y gestionar las listas de contactos. &lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Lista de Contactos&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar que dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]])&lt;br /&gt;
[[Archivo:35 Busqueda en VIVAit Suite ACD+ - Marcador - Listas de contactos.png|750px|center]]&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) una  &amp;quot;Lista de Contactos&amp;quot;  en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:74 Pestaña ViVAit Suite ACD+ - Marcador - Lista de Contactos - Nueva lista de contacto.jpg|center]]&lt;br /&gt;
Las opciones de la pestaña Usuario se explican en la siguiente tabla:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre de la lista de contactos (Obligatorio). &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Descripción de la lista de contactos.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Dpto'''&lt;br /&gt;
|  | Elegir un eje (Obligatorio). Para más información [[#Ejes | ver sección Ejes]]&lt;br /&gt;
|}&lt;br /&gt;
[[#Lista_de_Contactos | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
==== Listas Robinson ====&lt;br /&gt;
&lt;br /&gt;
Una lista Robinson es un tipo de ''lista de exclusión'' donde la gente que forma parte de ella ha expresado voluntariamente que quiere dejar de recibir publicidad, bien sea por correo electrónico, por correo postal, por teléfono o por fax. En cada caso los datos de contacto se almacenarán en una lista negra.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esta pestaña permite crear y gestionar las “listas negras” de ACD. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Listas Robinson&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar que dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]])&lt;br /&gt;
[[Archivo:36 Busqueda en VIVAit Suite ACD+ - Marcador - Listas Robinson.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) una  &amp;quot;Lista Robinson&amp;quot; en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:75 Pestaña ViVAit Suite ACD+ - Marcador - Listas Robinson - Nueva lista robinson.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Las opciones de una lista Robinson se explican en la siguiente tabla:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre de la lista robinson (Obligatorio).&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Descripción de la lista robinson .&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Dpto'''&lt;br /&gt;
|  | Elegir un eje (Obligatorio) . Para más información [[#Ejes | ver sección Ejes]]&lt;br /&gt;
|}&lt;br /&gt;
[[#Listas_Robinson | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
==== Contactos Robinson ====&lt;br /&gt;
Esta pestaña permite crear y editar los contactos de la “lista negra”. &lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Contactos Robinson&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar que dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]])&lt;br /&gt;
[[Archivo:37 Busqueda en VIVAit Suite ACD+ - Marcador - Contactos Robinson.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) un  &amp;quot;Contacto Robinson&amp;quot;  en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:76 Pestaña ViVAit Suite ACD+ - Marcador - Contactos Robinson - Nuevo contacto robinson.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Las opciones de la pestaña Usuario se explican en la siguiente tabla:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre del contacto (Obligatorio) .&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Descripción del contacto &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Lista'''&lt;br /&gt;
|  | Lista Robinson a la que va a pertenecer el contacto. Para más información [[#Listas Robinson | ver sección '''''VIVA'''''it Suite ACD+ - Marcador - Listas Robinson ]]&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Teléfono'''&lt;br /&gt;
|  | Número de teléfono del contacto (Obligatorio).&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Inserción'''&lt;br /&gt;
| | Fecha de inserción del contacto a la lista Robinson.&lt;br /&gt;
|}&lt;br /&gt;
[[#Contactos_Robinson | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
==== Listas Click2Call ====&lt;br /&gt;
&lt;br /&gt;
'''Click2Call''' es una forma de comunicación basada en la Web en la que una persona hace clic en un objeto (por ejemplo,botón, imagen o texto) para solicitar una conexión inmediata con otra persona en tiempo real&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esta pestaña permite crear y gestionar las listas Click2Call. &lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Listas Click2Call&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar que dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]])&lt;br /&gt;
&lt;br /&gt;
[[Archivo:38 Busqueda en VIVAit Suite ACD+ - Marcador - Listas Click2Call.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) una  &amp;quot;Lista Click2Call&amp;quot;  en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:77 Pestaña ViVAit Suite ACD+ - Marcador - Listas Click2Call - Nueva lista Cick2Call.jpg|center]]&lt;br /&gt;
Las opciones de una lista Click2Call se explican en la siguiente tabla:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre de la lista click2call (Obligatorio).&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Descripción de la lista click2call. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Canal'''&lt;br /&gt;
|  | Elegir la vía por donde puede mostrarse la lista.&lt;br /&gt;
|  | Telefonía&lt;br /&gt;
&lt;br /&gt;
Backoffice &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Campaña'''&lt;br /&gt;
|  | Campaña a la que asociaremos la lista click2call. Para más información[[#Campañas |ver sección '''''VIVA'''''it Suite ACD+ - Campañas ]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Cola '''&lt;br /&gt;
|  | Asociar el tipo de cola.&lt;br /&gt;
|| Llamada entrante&lt;br /&gt;
&lt;br /&gt;
LLamada saliente bajo demanda.&lt;br /&gt;
&lt;br /&gt;
LLamada saliente bajo vista previa.&lt;br /&gt;
&lt;br /&gt;
LLamada saliente progresivo.&lt;br /&gt;
&lt;br /&gt;
LLamada saliente predictivo.&lt;br /&gt;
&lt;br /&gt;
Backoffice.&lt;br /&gt;
&lt;br /&gt;
Backoffice interrumpible.&lt;br /&gt;
&lt;br /&gt;
Sin seleccionar.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Grupo ACD'''&lt;br /&gt;
|  | El Grupo ACD al que asociaremos la lista click2call. Para más información[[#Grupos ACD  |ver sección '''''VIVA'''''it Suite ACD+ - Grupos ACD ]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nº Segs limite'''&lt;br /&gt;
| | Numero de segundos limite para que el Agente ACD pueda llamar al contacto (Obligatorio).&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Prioridad'''&lt;br /&gt;
| | Prioridad de la lista.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Dpto'''&lt;br /&gt;
|  | Elegir un eje (Obligatorio) . Para más información [[#Ejes | ver sección Ejes]].&lt;br /&gt;
||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[#Listas_Click2Call | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
==== Contactos Click2Call ====&lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Contactos Click2Call&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar que dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]])&lt;br /&gt;
[[Archivo:39 Busqueda en VIVAit Suite ACD+ - Marcador - Contactos Click2Call.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) un  &amp;quot;Contacto Click2Call&amp;quot;  en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:78 Pestaña ViVAit Suite ACD+ - Marcador - Contactos Click2Call - Nuevo contacto Cick2Call.png|center]]&lt;br /&gt;
Las opciones de la pestaña Usuario se explican en la siguiente tabla:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Hora de inicio'''&lt;br /&gt;
|  | Inicio del contacto.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Hora de fin'''&lt;br /&gt;
|  | Fin del contacto. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Lista'''&lt;br /&gt;
|  | Lista click2call al que se asignara el contacto. Para más información[[#Listas Click2Call | ver sección '''''VIVA'''''it Suite ACD+ - Marcador - Listas Click2Call ]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre del contacto click2call (Obligatorio).&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Primer Apellido'''&lt;br /&gt;
|  | Primer apellido del contacto click2call. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Segundo Apellido'''&lt;br /&gt;
|  | Segundo apellido del contacto click2call .&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Cod. Cliente'''&lt;br /&gt;
|  | Nombre dado al código del cliente, por defecto msisdn.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Empresa'''&lt;br /&gt;
|  | Empresa del contacto. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Dirección'''&lt;br /&gt;
|  | Dirección del contacto.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|  font-weight: bold;&amp;quot; | '''Dirección alternativa '''&lt;br /&gt;
|  | Dirección alternativa del contacto.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Código Postal'''&lt;br /&gt;
|  | Código postal del contacto.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Localidad'''&lt;br /&gt;
| | Localidad del contacto.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Provincia'''&lt;br /&gt;
|  | Provincia del contacto .&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''País'''&lt;br /&gt;
|  | País del contacto .&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Canal'''&lt;br /&gt;
|  | Elegir la vía por donde puede mostrarse la lista. &lt;br /&gt;
||Telefonía&lt;br /&gt;
&lt;br /&gt;
Backoffice &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Correo electrónico'''&lt;br /&gt;
|  | Correo electrónico del contacto.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Destino'''&lt;br /&gt;
|  | Numero de teléfono del destino  (obligatorio).&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Sexo'''&lt;br /&gt;
|  | Sexo del contacto .&lt;br /&gt;
||Desconocido&lt;br /&gt;
&lt;br /&gt;
Masculino&lt;br /&gt;
&lt;br /&gt;
Femenino&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Idioma'''&lt;br /&gt;
|  | Idioma hablado del contacto. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tratamiento'''&lt;br /&gt;
|  | Cómo dirigirse al contacto de forma correcta&lt;br /&gt;
||Desconocido&lt;br /&gt;
&lt;br /&gt;
Señor&lt;br /&gt;
&lt;br /&gt;
Señora&lt;br /&gt;
&lt;br /&gt;
Don&lt;br /&gt;
&lt;br /&gt;
Doña&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Añadir Opcional num'''&lt;br /&gt;
|  | Datos numéricos que se asocian al contacto click2Call,  que pueden usarse en los formularios.&lt;br /&gt;
|| Ejemplo queremos que este campos guarde el numero de hijos pues indicamos 1 o 2 o los que tenga el contacto.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Añadir Opcional cad'''&lt;br /&gt;
|  | Cadena de texto que se asocian al contacto click2Call, que pueden usarse en los formularios. &lt;br /&gt;
|| Ejemplo si el contacto tiene el pelo de color rubio, podemos poner el valor &amp;quot;rubio&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Añadir Final'''&lt;br /&gt;
|  | Se indica el final.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Id'''&lt;br /&gt;
|  | Asociamos al usuario. Para más información[[#Usuarios | ver sección General - Usuarios ]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Intento'''&lt;br /&gt;
|  |  Indicar si el contacto click2Call puede ser llamado o no.&lt;br /&gt;
|| Si / NO&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[#Contactos_Click2Call | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
==== Clases de estrategia ====&lt;br /&gt;
Se trata del algoritmo por el cual se regirá la estrategia. Cada Clase de estrategia diferente conlleva&lt;br /&gt;
un desarrollo del algoritmo que hay debajo para hacerla funcionas. Diferentes estrategias pueden&lt;br /&gt;
compartir una misma clase de estrategia. Para cada estrategia se pueden definir hasta un máximo de 16 opciones con un intervalo de valor mínimo y máximo por cada opción, y además dos cadenas de caracteres. &lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Clases de estrategia&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar que dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]])&lt;br /&gt;
[[Archivo:40 Busqueda en VIVAit Suite ACD+ - Marcador - Clases de estrategias.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) un/a  &amp;quot;Clase de estrategia&amp;quot;  en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:79 Pestaña ViVAit Suite ACD+ - Marcador - Clases de estrategias - Nueva clase de estrategia.png|center]]&lt;br /&gt;
Las opciones de la pestaña Usuario se explican en la siguiente tabla:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre que tiene la clase de estrategia (obligatorio).&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Descripcion breve de la clase de estrategia.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Clase'''&lt;br /&gt;
|  | Clase de  la estrategia (obligatorio).&lt;br /&gt;
|| Normalmente, es la ubicación donde podemos encontrar la clase.&lt;br /&gt;
|-&lt;br /&gt;
|  font-weight: bold;&amp;quot; | '''Parámetros del 1 al 16 '''&lt;br /&gt;
|  | Nombres de los parámetro del algoritmo del 1 al 16. Solo hace falta rellenar los necesarios.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|  font-weight: bold;&amp;quot; | '''Mínimo parámetro del 1 al 16 '''&lt;br /&gt;
|  | Establece el valor mínimo de los parámetro del algoritmo del 1 al 16. Solo hace falta rellenar los necesarios.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|  font-weight: bold;&amp;quot; | '''Mínimo parámetro del 1 al 16 '''&lt;br /&gt;
|  | Establece el valor máximo de los parámetro del algoritmo del 1 al 16. Solo hace falta rellenar los necesarios.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|  font-weight: bold;&amp;quot; |  '''Parámetros cadena 1 y 2 '''&lt;br /&gt;
|  | Dos cadenas de texto que podemos pasar como parámetro al algoritmo.&lt;br /&gt;
||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[#Clases_de_estrategia | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
==== Estrategias ====&lt;br /&gt;
&lt;br /&gt;
Esta pestaña permite configurar las estrategias y sus parámetros.  &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''Nota:''' Crear una nueva estrategia implica que tengamos creada la clase de estrategia previamente.Para más información [[#Clases de estrategia |ver sección '''''VIVA'''''it Suite ACD+ - Marcador - Clases de estrategias ]] La imagen que mostramos pertenece a la estrategia por defecto que desarrollamos en el portal de administración, por tanto si quieres configurar una estrategia propia la explicación de los campos puede ayudarte.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Estrategias&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar que dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]])&lt;br /&gt;
[[Archivo:41 Busqueda en VIVAit Suite ACD+ - Marcador - Estrategias.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en [[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) una  &amp;quot;Estrategia&amp;quot;  en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:80 Pestaña ViVAit Suite ACD+ - Marcador - Estrategias - Nueva estrategia.png|center]]&lt;br /&gt;
&lt;br /&gt;
Las opciones de la pestaña Usuario se explican en la siguiente tabla:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre de la estrategia (Obligatorio).&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Descripción de la campaña.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Clase de Estrategia'''&lt;br /&gt;
|  | Que clase de estrategia va a usar . Para más información [[#Clases de estrategia |ver sección '''''VIVA'''''it Suite ACD+ - Marcador - Clases de estrategias ]]&lt;br /&gt;
&lt;br /&gt;
|  | En la imagen se ve un ejemplo para la clase de estrategia por defecto.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Parámetros  '''&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot;  |Aquellos parámetros que hayamos especificado en la clase de estrategia se nos habilitaran para asignarles un valor entre el rango del minino y máximo especificado en la clase de estrategia. (Obligatorios todos).&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''ACD'''&lt;br /&gt;
|  | Indicar si esta estrategia, cuando se asocia a una campaña se aplica a los grupos ACD. Para más información [[#Grupos ACD  |ver sección '''''VIVA'''''it Suite ACD+ - Grupos ACD ]]&lt;br /&gt;
|| Sí / No.&lt;br /&gt;
|}&lt;br /&gt;
[[#Estrategias | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
=== Configuración (VIVAit Suite ACD+) ===&lt;br /&gt;
Esta pestaña permite modificar algunos parámetros comunes para los grupos ACD. &lt;br /&gt;
&lt;br /&gt;
[[Archivo:81 Pestaña ViVAit Suite ACD+ - Configuración.jpg|800px|center]]&lt;br /&gt;
Las opciones de la pestaña Usuario se explican en la siguiente tabla:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nodo Ucid'''&lt;br /&gt;
|  | UCID del nodo o equipo donde esta el '''''VIVA'''''it-cti corriendo.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre Perfil'''&lt;br /&gt;
|  | Etiqueta usada en los programas para referirse a los perfiles&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Umbral recicla sesión'''&lt;br /&gt;
|  | En segundos. Periodo durante el cual se recicla la sesión del agente y se permite iniciar sesión al agente desde el mismo puesto.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Version del desk'''&lt;br /&gt;
|  | Número de la versión mínima del '''''VIVA'''''it Desk.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Version DLL del desk'''&lt;br /&gt;
|  | Número de versión mínima de la DLL del '''''VIVA'''''it Desk.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Version Form Integrado desk'''&lt;br /&gt;
|  | Numero de versión mínima del formulario integrado en el VIVAit desk.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Version de Super'''&lt;br /&gt;
|  | Numero de versión mínima del '''''VIVA'''''it Supervisor.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Version de Report'''&lt;br /&gt;
|  | Numero de versión mínima del '''''VIVA'''''it Reporting.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nº segundos de desfase '''&lt;br /&gt;
|  | Indicar el tiempo de desfase permitido en segundos entre la maquina donde se ejecuten las aplicaciones con respecto a la hora de la BD. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nº segundos de refresco de la cola'''&lt;br /&gt;
|  | Refresco de la información de las colas en el '''''VIVA'''''it Desk.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Formulario'''&lt;br /&gt;
| | Ultimo formulario por si fallan los demás. Para más información [[#Formularios | ver sección VIVAit Suite ACD+ - Formularios ]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[#Configuración_(VIVAit_Suite_ACD+) | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
=== Perfiles ===&lt;br /&gt;
&lt;br /&gt;
Se entiende por Perfiles a un grupo de características asociado a un grupo de trabajo/personas. Las acciones a realizar por el agente, estarán sujetas , al perfil que tenga activo(Grupos ACD, Agendas, Finales, Motivos de Desconexión, Supervisor...etc)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Perfiles&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar que dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]])&lt;br /&gt;
[[Archivo:42 Busqueda en VIVAit Suite ACD+ - Perfiles.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) un &amp;quot;Perfil&amp;quot; en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:82 Pestaña ViVAit Suite ACD+ - Perfiles - Nuevo perfil.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Las opciones de la pestaña Usuario se explican en la siguiente tabla:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre del perfil (Obligatorio).&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Descripción del perfil.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Sesión'''&lt;br /&gt;
|  | Permite al agente visualizar las estadísticas de la sesión en curso.&lt;br /&gt;
|| Si / No.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''ACD'''&lt;br /&gt;
|  | Permite al agente ver los grupos ACD a los que está conectado.&lt;br /&gt;
|| Si / No.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Consulta solo de Agenda'''&lt;br /&gt;
|  | Habilitar o no la consulta de solo la agenda al agente en el '''''VIVA'''''it Desk.&lt;br /&gt;
|| Si / No.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''LLamada solo de Agenda'''&lt;br /&gt;
|  | Habilitar o no las llamadas solo a los contactos de la agenda del '''''VIVA'''''it Desk. &lt;br /&gt;
|| Si / No.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Dest. supervisor'''&lt;br /&gt;
|  |  Número de la extensión telefónica perteneciente del supervisor.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Pausa Inicial'''&lt;br /&gt;
|  | Para arrancar la aplicación pausada es necesario seleccionar una de las pausas del listado.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Formulario'''&lt;br /&gt;
|  | Formulario asignado al perfil. Para más información [[#Formularios | ver sección '''''VIVA'''''it Suite ACD+ - Formularios ]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Pausa el agente no contesta'''&lt;br /&gt;
|  | Pone al agente en estado “abandonada” si no contesta una llamada y se finaliza por el llamante.&lt;br /&gt;
|| Si / No.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Umbral'''&lt;br /&gt;
|  | El tiempo en segundos que puede dejar un agente sin contestar la llamada. Sin ningún valor tomara 10seg por defecto.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre Supervisor'''&lt;br /&gt;
|  | Nombre del supervisor.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Mot. Cierre obligatorio'''&lt;br /&gt;
|  | Para cerrar sesión es necesario especificar un motivo. &lt;br /&gt;
|  | Si / No.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Modo de grabación'''&lt;br /&gt;
| | Indica si un agente ACD puede tener el control de cuando se graba.&lt;br /&gt;
|| Sin grabación: no permite tener el control de grabación&lt;br /&gt;
Grabación bajo demanda de inicio grabando: permite al agente ACD decidir cuando pausar la grabación.&lt;br /&gt;
&lt;br /&gt;
Grabación bajo demanda de inicio sin grabar: permite al agente ACD iniciar y parar la grabación.&lt;br /&gt;
&lt;br /&gt;
Grabar todo: se graba independientemente de la acción del agente ACD.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Grabar Todo'''&lt;br /&gt;
|  | Grabación a nivel perfil, en el que afecta a todo las llamadas donde el perfil este activo, independientemente de la configuración del Agente ACD.&lt;br /&gt;
|| Si / No.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Pausas'''&lt;br /&gt;
| | Las diferentes pausas que puede ponerse un agente. &lt;br /&gt;
Para más información [[#Pausas | ver sección '''''VIVA'''''it Suite ACD+ - Enumerados - Pausas ]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Mot. desconexión'''&lt;br /&gt;
|  | Los diferentes motivos de desconexión que puede tener un agente al cerrar sesión de la aplicación. Para más información [[#Mot. desconexion | ver sección '''''VIVA'''''it Suite ACD+ - Enumerados - Mot. desconexión ]].&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Perfil Secundario'''&lt;br /&gt;
| | Configuremos a un agente ACD, un segundo perfiles dependiendo del Calendario. Por ejemplo para que se activen uno u otro dependiendo si trabaja en días laborales o no (Obligatorio).  &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Dpto'''&lt;br /&gt;
|  | Elegir un eje (Obligatorio) . Para más información [[#Ejes | ver sección Ejes]].&lt;br /&gt;
||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[#Perfiles | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
=== Formularios ===&lt;br /&gt;
Existe una '''''jerarquía de visualización de los formularios''''' dependiendo de la configuraciones que hagamos en la Campaña, el VDN, los grupos ACD o los perfiles, es decir, nuestros agentes ACD  pueden visualizar distinto tipos de formularios.&lt;br /&gt;
&lt;br /&gt;
La '''''jerarquía de prioridades de visualización''''' (de mayor a menor) esta explicada en la siguiente tabla:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Formulario ''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Formulario de Campaña'''&lt;br /&gt;
|  | Tiene mayor prioridad, es el primer formulario que puede aparecer. Para más información [[#Campañas |ver sección '''''VIVA'''''it Suite ACD+ - Campañas ]].&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Formulario de VND'''&lt;br /&gt;
|  | Se muestra si &amp;quot;Formulario de Campaña&amp;quot; esta marcado como ignorado. El segundo con mayor prioridad. Para más información [[#VDN (VIVAit Suite ACD+) |ver sección '''''VIVA'''''it Suite ACD+ - VDN ]].&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Formulario de Grupo ACD'''&lt;br /&gt;
|  | Se muestra si &amp;quot;Formulario de VND&amp;quot; esta marcado como ignorado. El tercero con mayor prioridad. Para más información [[#Grupos ACD  |ver sección '''''VIVA'''''it Suite ACD+ - Grupos ACD ]].&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Formulario por defecto'''&lt;br /&gt;
|  | En el caso que todos los anteriores sean ignorados o muestren error. Este formulario se visualizara. Para más información [[#Configuración (VIVAit Suite ACD+) | ver sección '''''VIVA'''''it Suite ACD+ - Configuración]].&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; | '''Nota: Existe un formulario de perfil, que siempre se mostrara a los usuarios cuando la llamada no sea para una Campaña o de un agente ACD. Para mas información [[#Perfiles | ver sección '''''VIVA'''''it Suite ACD+ - Perfiles ]].'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Formularios&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar que dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]])&lt;br /&gt;
&lt;br /&gt;
[[Archivo:43 Busqueda en VIVAit Suite ACD+ - Formularios.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) un  &amp;quot;Formulario&amp;quot;  en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:83 Pestaña ViVAit Suite ACD+ - Formularios - Nuevo formulario.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Las opciones de la pestaña Usuario se explican en la siguiente tabla:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tipo Formulario'''&lt;br /&gt;
|  | El elegir el tipo de formulario.&lt;br /&gt;
|| Defecto&lt;br /&gt;
&lt;br /&gt;
Creado&lt;br /&gt;
&lt;br /&gt;
Creado URL&lt;br /&gt;
&lt;br /&gt;
Integrado cliente&lt;br /&gt;
&lt;br /&gt;
Integrado cliente URL&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre del formulario (Obligatorio).&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Descripción del formulario.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre fichero'''&lt;br /&gt;
|  | Nombre del fichero insertado. Solo si elegimos como tipo de formulario Creado o Creado URL.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Clase'''&lt;br /&gt;
|  | Nombre de la clase del formulario cuando es integrado por el cliente.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Inicio oculto'''&lt;br /&gt;
| |Iniciar el formulario oculto .&lt;br /&gt;
|| Si / No.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Parar el tiempo de admin'''&lt;br /&gt;
|  | Indicar el tiempo en segundos. Pasado este tiempo se cierra el formulario automáticamente.&lt;br /&gt;
|| Si / No.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Final opcional'''&lt;br /&gt;
| | Habilitar finales opcionales a los formularios .&lt;br /&gt;
|| Si / No.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Ocultar numeración'''&lt;br /&gt;
|  | Para ocultar numeración al cerrar el formulario&lt;br /&gt;
|| Si / No.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tiempo Cierre automático'''&lt;br /&gt;
| | Indicar el tiempo en segundos. Pasado este tiempo se cierra el formulario automáticamente. &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Tabla de negocio'''&lt;br /&gt;
|  |Tabla de BD de cliente.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Destino encuestas'''&lt;br /&gt;
| | Numero para transferir a encuestas si se da al botón de transferencia a encuestas.&lt;br /&gt;
||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[#Formularios | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
=== Puestos ===&lt;br /&gt;
Un puesto en la plataforma se utiliza para ubicar la extensión con la que puede trabajar un usuario en su PC. Desde esta pestaña sirve para crear, consultar y modificar y asignar las extensiones a los puestos. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Puestos&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar que dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]])&lt;br /&gt;
[[Archivo:44 Busqueda en VIVAit Call - Puestos.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) un  &amp;quot;Puesto&amp;quot;  en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:87 Pestaña ViVAit Suite ACD+ - Puestos - Nuevo puesto.png|center]]&lt;br /&gt;
&lt;br /&gt;
Las opciones de la pestaña Usuario se explican en la siguiente tabla:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre'''&lt;br /&gt;
|  | Nombre del puesto, en caso de un ordenador sera su nombre de red (Obligatorio).&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Extensión'''&lt;br /&gt;
|  | Extensión asociada al puesto.&lt;br /&gt;
|}&lt;br /&gt;
[[#Puestos | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Chat ===&lt;br /&gt;
&lt;br /&gt;
La documentación se puede consultar en: [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#CHAT_2 enlace]]&lt;br /&gt;
&lt;br /&gt;
[[#Chat | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Valoraciones ===&lt;br /&gt;
&lt;br /&gt;
La plataforma '''''&amp;lt;span style=&amp;quot;color:#144F9B&amp;quot;&amp;gt;VIVA&amp;lt;/span&amp;gt;'''''it permite que un supervisor evalúe las grabaciones de las llamadas de los agentes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Las grabaciones se evalúan a través de '''''&amp;lt;span style=&amp;quot;color:#144F9B&amp;quot;&amp;gt;VIVA&amp;lt;/span&amp;gt;'''''it Tracker. En esta aplicación el supervisor escucha la grabación de la llamada y rellena el informe de evaluación asociado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez que las grabaciones son evaluadas su puntuación puede ser tenida en cuenta como parámetro para filtrar la búsqueda de grabaciones.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para poder realizar esta evaluación es necesario que, a través del portal de administración, se definan una serie de preguntas y éstas se asignen a un informe. El informe se asociará a una campaña,a un VDN,o a un grupo ACD, teniendo en cuenta que el informe asociado a una campaña prevalecerá siempre sobre el informe asociado a un VDN, y el asociado a un VDN sobre el asociado a un grupo ACD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Informes====&lt;br /&gt;
&lt;br /&gt;
En el menú de informes podemos buscar informes existentes, recuperar informes, borrarlos, crear nuevos informes y editar los existentes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Listado de informes de calidad existentes.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
En esta imagen aparecen marcados en rojo los informes que se han borrado, podemos seleccionarlos y recuperarlos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cuando damos de alta un informe podemos establecer la puntuación mínima que le asignamos a las preguntas, la puntuación máxima y el intervalo de incremento en la evaluación, esta valoración será la misma para todas las preguntas que se incluyan en el informe.&lt;br /&gt;
&lt;br /&gt;
[[File:Edicion de informe de calidad.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Al informe de valoración hay que asignarle un eje.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Al informe se asignan las preguntas seleccionándolas de una lista de preguntas disponibles, que se habrán creado con anterioridad.&lt;br /&gt;
&lt;br /&gt;
====Preguntas====&lt;br /&gt;
&lt;br /&gt;
En el menú preguntas definimos las preguntas que queremos formular para evalúar las grabaciones.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Valoraciones| Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
==''VIVA''it Record ==&lt;br /&gt;
&lt;br /&gt;
Esta pestaña ofrece al usuario la gestión y configuración referente al servicio de grabaciones de la plataforma.El contenido de la pestaña ''''''VIVA'''''it Record' es el siguiente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:84_Pestaña_ViVAit_Record.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver arriba]&lt;br /&gt;
=== Configuración (VIVAit Record) ===&lt;br /&gt;
&lt;br /&gt;
Esta pestaña permite modificar la configuración de las grabaciones según las necesidades del cliente.&lt;br /&gt;
  &lt;br /&gt;
[[Archivo:85 Pestaña ViVAit Record - Configuración.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Las opciones de la pestaña Usuario se explican en la siguiente tabla:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Hay llamadas'''&lt;br /&gt;
|  | Indica si en el entorno hay o no llamadas .&lt;br /&gt;
|| Si / No. &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Hay segmentos'''&lt;br /&gt;
|  | Indica si en el entorno hay o no segmentos.&lt;br /&gt;
||Si / No.  &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Almacén de grabaciones'''&lt;br /&gt;
|  | URL de la máquina donde se guardaran las grabaciones.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Espera de escucha en Windows'''&lt;br /&gt;
|  | Tiempo en segundos.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Espera de escucha en web'''&lt;br /&gt;
|  | Tiempo en segundos .&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Versión del tracker'''&lt;br /&gt;
| | versión del traker web .&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre Fichero'''&lt;br /&gt;
|  | Nombre con el que se graba la grabación  .&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Cifrar'''&lt;br /&gt;
|  |Método de cifrado de las grabaciones .&lt;br /&gt;
|| Cifrado DES&lt;br /&gt;
&lt;br /&gt;
Cifrado CAST5&lt;br /&gt;
&lt;br /&gt;
Cifrado AES-128&lt;br /&gt;
&lt;br /&gt;
Cifrado AES-192&lt;br /&gt;
&lt;br /&gt;
Cifrado AES-256.&lt;br /&gt;
|}&lt;br /&gt;
En el fichero adjunto se especifican las configuraciones ecesarias para poder realizar grabaciones bajo demanda:&lt;br /&gt;
[[medio:Configuración_Graba_Demanda.pdf|Configuración Grabación Bajo Demanda]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Configuración_(VIVAit_Record) | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
=== Ubicación ===&lt;br /&gt;
Esta pestaña permite modificar los parámetros de ubicación de las grabaciones. &lt;br /&gt;
&lt;br /&gt;
Una vez ingresemos a esa pantalla de &amp;quot;Ubicación&amp;quot; aparecerá la búsqueda con filtros y algunos botones laterales( Borrar, Nuevo , Editar y Duplicar que dependerán del nivel de permisos que tengamos para la aplicación [[#Permisos_a_Usuarios| ver sección Permisos]])&lt;br /&gt;
[[Archivo:45 Busqueda en VIVAit Record - Ubicación.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
La explicación de la funcionalidad del botón “Borrar” esta explicada genéricamente en [[#Borrado_de_Datos  | Ver Borrado de Datos]]  y el botón “Duplicar” esta explicada genéricamente en &lt;br /&gt;
[[#Duplicado_de_Datos | ver Duplicado de Datos]].&lt;br /&gt;
&lt;br /&gt;
La explicación de los filtros de la búsqueda, se pueden encontrar en la sección [[#Búsquedas | búsqueda]].  Para dar de alta o modificar (Editar) una &amp;quot;Ubicación&amp;quot;  en la plataforma '''''VIVA'''''it pulsamos el botón &amp;quot;Nuevo&amp;quot; o “Editar” y aparecerá una ventana parecida a la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:86 Pestaña ViVAit Record - Ubicación.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Las opciones de la pestaña Usuario se explican en la siguiente tabla:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center style=&amp;quot;background-color:#0099ff;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Nombre nodo'''&lt;br /&gt;
|  | Nombre del nodo donde se va a realizar la ubicación (Obligatorio).&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Nombre común del nodo.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Dirección de red'''&lt;br /&gt;
|  | Direccion IP del nodo.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Ubicación'''&lt;br /&gt;
|  | Elegir un tipo de conexion.&lt;br /&gt;
|  | Local&lt;br /&gt;
&lt;br /&gt;
Externo https&lt;br /&gt;
&lt;br /&gt;
Externo http&lt;br /&gt;
&lt;br /&gt;
Externo ssh&lt;br /&gt;
&lt;br /&gt;
Externo sftp&lt;br /&gt;
&lt;br /&gt;
Externo ftp&lt;br /&gt;
|-&lt;br /&gt;
|  font-weight: bold;&amp;quot; | '''Puerto '''&lt;br /&gt;
|  | Puerto de escucha para la conexión.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Usuario'''&lt;br /&gt;
|  |Usuario para la conexión.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Clave'''&lt;br /&gt;
| | Clave de usuario.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Ruta'''&lt;br /&gt;
|  | Ruta de almacenamiento dentro del nodo .&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Param. de cadena 1'''&lt;br /&gt;
|| Parámetro que puede darse al nodo para configurarse de tipo texto.&lt;br /&gt;
|  |Por ejemplo, número UCID.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Param. de cadena 2'''&lt;br /&gt;
|| Parámetro que puede darse al nodo para configurarse de tipo texto.&lt;br /&gt;
|  |Por ejemplo, Dirección IP del host donde queremos que se almacenen los logs.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Param. numérico 1'''&lt;br /&gt;
|| Parámetro que puede darse al nodo para configurarse de tipo numérico.&lt;br /&gt;
|  |Por ejemplo,  Puerto de escucha.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Param. numérico 2'''&lt;br /&gt;
|| Parámetro que puede darse al nodo para configurarse de tipo numérico.&lt;br /&gt;
|  |Por ejemplo,  Logs de facilidad&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[#Ubicación | Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
== Configuraciones mínimas ==&lt;br /&gt;
&lt;br /&gt;
=== ''VIVA''it Call ===&lt;br /&gt;
&lt;br /&gt;
Una configuración mínima de un sistema '''''VIVA'''''it Call, para telefonía corporativa, en un cliente pequeño, sencillo y mononodo requerirá:&lt;br /&gt;
&lt;br /&gt;
* Existencia de una sede. Para más información [[#Sedes | ver sección General - Sedes]].&lt;br /&gt;
* Existencia de un nodo. Para más información [[#Nodos | ver sección General - Nodos]].&lt;br /&gt;
* Existencia de una categoría (por defecto existe &amp;quot;nacional&amp;quot;). Para más información [[#Categorías  | ver sección '''''VIVA'''''it Call - Categorías]]&lt;br /&gt;
* Existencia de extensiones. Para más información [[#Extensiones  | ver sección '''''VIVA'''''it Call - Dispositivos - Extensiones]]&lt;br /&gt;
* Existencia de una preruta que cumpla la condición de origen de las extensiones; en este punto conseguiremos comunicaciones internas entre extensiones. &lt;br /&gt;
* Existencia de una preruta que cumpla la condición de enlace exterior y dirija al destino externo. Para más información [[#Prerutas | ver sección '''''VIVA'''''it Call - Prerutas]]. &lt;br /&gt;
* Existencia de un enlace exterior; la creación de enlaces exteriores requiere de la modificación del fichero '''ext_MARCAR_Externo_Particular.conf'''. Para más información [[#Enlace exterior  | ver sección '''''VIVA'''''it Call - Dispositivos - Enlace exterior ]]&lt;br /&gt;
&lt;br /&gt;
* Existencia de un destino externo. Para más información [[#Destinos externos | ver sección '''''VIVA'''''it Call - Rutas - Destinos externos ]]&lt;br /&gt;
&lt;br /&gt;
[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit Volver arriba]&lt;br /&gt;
&lt;br /&gt;
== Enlaces de interés ==&lt;br /&gt;
Muchos de los campos a configurar en la plataforma '''''VIVA'''''it son expresiones regulares; el siguiente enlace corresponde con una herramienta de ayuda y prueba de expresiones regulares&lt;br /&gt;
&lt;br /&gt;
'''[http://www.regexr.com/ Probar y ayuda para expresiones regulares]'''&lt;br /&gt;
&lt;br /&gt;
== CHAT ==&lt;br /&gt;
&lt;br /&gt;
El CHAT es un servicio incuído en la plataforma VIVAit-Suite, que permite la comunicación con la plataforma VIVAit-Call para usuarios.&lt;br /&gt;
&lt;br /&gt;
El esquema del servicio es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ESQUEMA CHAT.png|750px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El CHAT se inicia con una petición de un usuario desde VIVAit-Call y genera la apertura de un formulario de CHAT en la plataforma VIVAit-Suite.&lt;br /&gt;
&lt;br /&gt;
Para que la comunicación se esteblezca es necesario que un agente de VIVAit-Suite esté logado en un grupo ACD al que se le haya asociado un formulario de CHAT.&lt;br /&gt;
&lt;br /&gt;
El servicio permite establecer una comunicación entre un usuario y un agente.&lt;br /&gt;
&lt;br /&gt;
Cuando sea necesario, el supervisor del agente podrá intervenir en la comunicación, ayudando únicamente al agente, o al agente y al usuario a la vez.&lt;br /&gt;
&lt;br /&gt;
El servicio no permite que el supervisor envíe comunicaciones solo al usuario.&lt;br /&gt;
&lt;br /&gt;
Aún cuando la comunicación esté establecida y el agente aparezca en estado ocupado, podrá recibir llamadas entrantes de los grupos ACD en los que está logado.&lt;br /&gt;
&lt;br /&gt;
===Configuración del servicio===&lt;br /&gt;
&lt;br /&gt;
Para configurar el servicio de CHAT es necesario realizar configuraciones a través del Portal de Administración.&lt;br /&gt;
&lt;br /&gt;
# Creamos una clase de dispositivo tipo '''&amp;quot;multicanalidad texto entrada&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
[[File:1.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:2.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
# A continuación creamos un dispositivo de llamada tipo '''&amp;quot;multicanal texto entrada&amp;quot;.'''&lt;br /&gt;
&lt;br /&gt;
[[File:3.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:4.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
En los campos '''servidor''' y '''nodo''' pondremos los datos de la máquina en la que tenemos el webservice del CHAT en el tomcat.&lt;br /&gt;
&lt;br /&gt;
Utilizaremos la plantilla '''&amp;quot;multicanalidad texto entrada&amp;quot;'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:5.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
En los datos del nodo en el que tenemos instalado el tomcat con el webservice del CHAT tenemos que rellenar los datos de multinacalidad, con la IP del nodo ACD y como puerto por defecto 8888.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:6.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la plantilla '''General ACD''' tendremos que indicar dos parámetros nuevos:&lt;br /&gt;
&lt;br /&gt;
 multicanalidad=yes&lt;br /&gt;
 factos_metrica_esfuerzo=0&lt;br /&gt;
&lt;br /&gt;
[[File:7.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
# En VIVAit Suite ACD + creamos el grupo ACD al que se logará el agente.&lt;br /&gt;
&lt;br /&gt;
[[File:8.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como podemos observar habremos indicado que el formulario es &amp;quot;CHAT&amp;quot; y el tipo de cola &amp;quot;llamada entrante&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
# En VIVAit Suite ACD + --&amp;gt; CHAT creamos un servicio nuevo al que le asociamos el '''grupo ACD''' que hemos creado y en el campo canal el '''&amp;quot;multicanal texto entrada&amp;quot;''' que creamos anteriormente.&lt;br /&gt;
&lt;br /&gt;
[[File:9.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:10.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
# De forma manual hay que hacer cambios en el fichero '''etc\asterisk\chan_sit.conf'''&lt;br /&gt;
&lt;br /&gt;
Debe tener la siguiente estructura:&lt;br /&gt;
&lt;br /&gt;
 [general]&lt;br /&gt;
 peer_out_default=out1&lt;br /&gt;
 esfuerzo_disponible=6&lt;br /&gt;
 esfuerzo_chat=3&lt;br /&gt;
 esfuerzo_sms=2&lt;br /&gt;
 esfuerzo_email=1&lt;br /&gt;
 &lt;br /&gt;
 [rest]&lt;br /&gt;
 port=8888&lt;br /&gt;
 &lt;br /&gt;
 [chat1]&lt;br /&gt;
 channel_type_in=chat&lt;br /&gt;
 host_in=172.25.128.92&lt;br /&gt;
 ;host_in=172.25.2.130&lt;br /&gt;
 context_in=context_sit&lt;br /&gt;
 ;vdn_dest_in=6541&lt;br /&gt;
 ;cidname_in=name_chat1&lt;br /&gt;
 ;cidnum_in=1234&lt;br /&gt;
 timeout_first_in=60&lt;br /&gt;
 timeout_next_in=60&lt;br /&gt;
 &lt;br /&gt;
 [Facebook]&lt;br /&gt;
 channel_type_in=chat&lt;br /&gt;
 host_in=172.25.128.92&lt;br /&gt;
 ;host_in=172.25.2.130&lt;br /&gt;
 context_in=context_sit&lt;br /&gt;
 ;vdn_dest_in=6541&lt;br /&gt;
 ;cidname_in=name_chat1&lt;br /&gt;
 ;cidnum_in=1234&lt;br /&gt;
 timeout_first_in=60&lt;br /&gt;
 timeout_next_in=60&lt;br /&gt;
 &lt;br /&gt;
 [sms1]&lt;br /&gt;
 channel_type_in=sms&lt;br /&gt;
 ;host_in=10.255.178.46&lt;br /&gt;
 context_in=context_sit&lt;br /&gt;
 ;vdn_dest_in=6541&lt;br /&gt;
 ;cidname_in=name_sms1&lt;br /&gt;
 ;cidnum_in=1234&lt;br /&gt;
 timeout_first_in=60&lt;br /&gt;
 timeout_next_in=60&lt;br /&gt;
 &lt;br /&gt;
 [email1]&lt;br /&gt;
 channel_type_in=email&lt;br /&gt;
 ;host_in=10.255.178.46&lt;br /&gt;
 context_in=context_sit&lt;br /&gt;
 ;vdn_dest_in=6541&lt;br /&gt;
 ;cidname_in=name_email1&lt;br /&gt;
 ;cidnum_in=1234&lt;br /&gt;
 timeout_first_in=60&lt;br /&gt;
 timeout_next_in=60&lt;br /&gt;
 &lt;br /&gt;
 [out1]&lt;br /&gt;
 netip_out=0.0.0.0&lt;br /&gt;
 netmsk_out=0.0.0.0&lt;br /&gt;
 timeout_transfer_out=60&lt;br /&gt;
 autoanswer_out=yes&lt;br /&gt;
&lt;br /&gt;
En este fichero es imprescindible:&lt;br /&gt;
&lt;br /&gt;
* Indicar los esfuerzos&lt;br /&gt;
* Indicar en [rest] el puerto&lt;br /&gt;
* configurar los [chat1]... que se hayan creado&lt;br /&gt;
* configurar [out1]&lt;br /&gt;
&lt;br /&gt;
===Funcionamiento===&lt;br /&gt;
&lt;br /&gt;
====Agente====&lt;br /&gt;
&lt;br /&gt;
Cuando un agente de VIVAit Suite recibe una solicitud de CHAT se abre en la pantalla un formulario y su estado cambia a acupado.&lt;br /&gt;
&lt;br /&gt;
[[File:Formulario_Chat_Desk.png|250]]&lt;br /&gt;
&lt;br /&gt;
Las comunicaciones enviadas por el usuario aparecen en el área de CHAT.&lt;br /&gt;
&lt;br /&gt;
El agente utiliza el área de escritura de texto para enviar y redacta la respuesta al usuario.&lt;br /&gt;
&lt;br /&gt;
El agente puede utilizar el despleglable con respuestas prediseñadas. Selecciona una respuesta, pulsar el botón para copiar ésta en el área superior y pocede a enviar el texto.&lt;br /&gt;
&lt;br /&gt;
En la parte inferior de la ventana el agente cuenta con un botón para etiquetar la llamada y otro para colgarla.&lt;br /&gt;
&lt;br /&gt;
====Supervisor====&lt;br /&gt;
&lt;br /&gt;
Para acceder al CHAT el Supervisor accede al Menú MC de la barra superior, opción Chat/Activos.&lt;br /&gt;
&lt;br /&gt;
La nueva ventana muestra los CHAT's activos en la aplicación.&lt;br /&gt;
&lt;br /&gt;
El Supervisor selecciona el que desea observar y pulsa el botón, tal y como se indica en la imagen.&lt;br /&gt;
&lt;br /&gt;
El botón central de esta ventana refresca la información respecto a los CHAT's activos en cada momento.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Acceso_Chat_Supervisor_Suite.png|250]]&lt;br /&gt;
&lt;br /&gt;
La siguiente imagen muestra la ventana de CHAT del supervisor.&lt;br /&gt;
&lt;br /&gt;
[[File:Formulario_Chat_Supervisor.png|250]]&lt;br /&gt;
&lt;br /&gt;
Como puede apreciarse en la imagen el Supervisor puede enviar mensajes de dos formas:&lt;br /&gt;
* Al agente&lt;br /&gt;
* Al agente y al usuario.&lt;br /&gt;
&lt;br /&gt;
En la pantalla de CHAT el supervisor observará toda la información intercambiada entre el usuario y el agente.&lt;br /&gt;
&lt;br /&gt;
====Usuario de VIVAit Call====&lt;br /&gt;
&lt;br /&gt;
Cuando un usuario de VIVAit Call inicia la sesión se muestra en pantalla un botón de acceso al CHAT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Ventana-Inicio.jpg|900px|centro]]&lt;br /&gt;
&lt;br /&gt;
Este botón abre una ventana de solicitud del servicio.&lt;br /&gt;
&lt;br /&gt;
[[File:Entrada a servicio de CHAT.jpg|900px|centro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si el usuario solicita el servicio, y existe un agente logado en VIVAit-Suite, se abre la ventana de CHAT, en la que el usuario establece la comunicación con el agente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Servicio de CHAT iniciado.jpg|900px|centro]]&lt;br /&gt;
&lt;br /&gt;
El usuario escribe en la zona de mensaje y cuando pulsa el botón Enviar el texto aparece en la zona central de la ventana. Toda la comunicación que se intercambie entre agente y usuario quedará reflejada en esta zona central.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Ejemplo de pantalla con mensaje de usuario y agente.jpg|900px|centro]]&lt;br /&gt;
&lt;br /&gt;
Cuando el usuario lo desee puede pulsar el botón cerrar chat para dar por finalizada la comunicación.&lt;br /&gt;
&lt;br /&gt;
Si no hay agentes logados en VIVAit-Suite, el sistema presenta la siguiente pantalla:&lt;br /&gt;
&lt;br /&gt;
[[File:Sin agentes logados.jpg|900px|centro]]&lt;br /&gt;
&lt;br /&gt;
Cuando un agente se logue en un grupo ACD de CHAT se establecerá la comunicación de forma inmediata.&lt;br /&gt;
&lt;br /&gt;
====Configuración del grupo ACD====&lt;br /&gt;
&lt;br /&gt;
Para que entre un usuario y un agente se pueda establecer una comunicación de CHAT es necesario que el grupo ACD al que está logado el agente tenga asignado un formulario de CHAT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Configuracion_Grupo_ACD_Desk.png|centro|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Configuracion_Grupo_ACD.png|centro|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:administrador]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:VIVAit Suite]]&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_plataforma_VIVAit&amp;diff=6943</id>
		<title>Manual de operación plataforma VIVAit</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_plataforma_VIVAit&amp;diff=6943"/>
		<updated>2018-09-25T06:23:19Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* Calendarios */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!! '''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; ALFREDO: INSISTIR EN EXPLICAR CONCEPTOS&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
En este documento se describe la arquitectura general de la plataforma '''''VIVA'''''it, detallando aquellos procesos principales que componen cada uno de los elementos del sistema, y sus principales elementos de diagnóstico&lt;br /&gt;
Quedan fuera del ámbito de este documento:&lt;br /&gt;
* Uso de aplicación de agente ('''''VIVA'''''it Desk)&lt;br /&gt;
* Uso de aplicación de supervisor ('''''VIVA'''''it Supervisor), incluyendo sus módulos autónomos ('''''VIVA'''''it reporting, '''''VIVA'''''it Tracker)&lt;br /&gt;
* Uso de portal de administración&lt;br /&gt;
* Uso de portal de traceo de llamadas y agentes ('''''VIVA'''''it Tracker web)&lt;br /&gt;
* Uso de portal de monitorización zabbix&lt;br /&gt;
&lt;br /&gt;
== Arquitectura ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura plataforma VIVAit.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Descripción de los elementos, diagnósticos y operaciones ==&lt;br /&gt;
Las siguientes tablas definen los principales elementos software de la plataforma '''''VIVA'''''it, que son detallados en apartados siguientes:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de sistema operativo'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu Server LTS 64 bits || Uno por servidor|| ||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|| Actualmente (Oct-2015) 14.04&lt;br /&gt;
Bajo proyecto puede cambiarse&lt;br /&gt;
|-&lt;br /&gt;
| Almacenamiento de grabaciones|| Uno por sistema|| Almacenamiento de las grabaciones, ya sean de entorno corporativo o de contact center||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|| Típicamente un espacio grande de almacenamiento proporcionado por el cliente y que se monta como un sistema de archivos local en los servidores de la plataforma&lt;br /&gt;
Pueden existir sistemas secundarios de almacenamiento de grabaciones&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de conmutación de voz'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Asterisk 1.4.24 by MDtel||Uno por servidor ACD||Núcleo de conmutación de voz basado en Asterisk 1.4 y modificado por MDtel||'''''VIVA'''''it Suite||Fuertemente modificado por MDtel&lt;br /&gt;
En el futuro migrará a Asterisk 13 Certified&lt;br /&gt;
|-&lt;br /&gt;
|Dialplan ACD by MDtel||Uno por servidor ACD||Configuración de voz||'''''VIVA'''''it Suite||En el futuro se unificará con corporativa&lt;br /&gt;
|-&lt;br /&gt;
|Asterisk 13 Certified by MDtel||Uno por servidor corporativo/gateway||Núcleo de conmutación de voz basado en Asterisk 13 y modificado por MDtel||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Actualmente asterisk estándar (10/15)&lt;br /&gt;
La instalación contempla descargar de la red el más actualizado, siempre CERTIFIED&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Dialplan corporativo||Uno por servidor corporativo/gateway||Configuración de voz||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||En el futuro se unificará con ACD&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de base de datos'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|MySQL 5.5||Donde haya BBDD de cualquier tipo (incluso zabbix)||Motor de Base de Datos||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||A efectos prácticos va a ser en todos los servidores con casi total seguridad&lt;br /&gt;
|-&lt;br /&gt;
|BBDD tiempo real||Una por sistema||Base de Datos sobre la que trabaja todo el entorno de tiempo real||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|BBDD réplica||Una por sistema multinodo||Base de Datos para acceso a información de reporting…y similar||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de una&lt;br /&gt;
En el nodo en el que exista réplica existirá además copia (excepto nodo ACD)&lt;br /&gt;
|-&lt;br /&gt;
|BBDD copia||Uno por servidor corporativo/gateway||Copias de tablas de configuración para respaldo de la misma||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Local en cada nodo&lt;br /&gt;
Los nodos de ACD actualmente no trabajan con copia; en caso de fallo de BBDD TR se usa el modo emergencia&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de procesos ''VIVA''it'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Intz-Nimitz||Donde haya una BBDD de tiempo real o copia||Interfaz entre el dialplan y la base de datos||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||No donde haya BBDD de réplica&lt;br /&gt;
Sistemas grandes pueden contemplar mas de un intz-nimitz central&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|vivait-cti||Uno por servidor ACD||Interfaz entre '''''VIVA'''''it Desk, supervisor y el manager de asterisk||'''''VIVA'''''it Suite||&lt;br /&gt;
|-&lt;br /&gt;
|myAcdSuperv||Uno por servidor ACD||Recopilador de datos de asterisk y actualiza en la BBDD&lt;br /&gt;
Genera llamadas en el marcador&lt;br /&gt;
||'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|motorSal||Uno por sistema con ACD||Motor de marcador saliente automático||'''''VIVA'''''it Suite||Solo si hay marcación saliente&lt;br /&gt;
Junto a la BBDD de tiempo real&lt;br /&gt;
|-&lt;br /&gt;
|recordCentral||Uno por sistema||Servidor de grabaciones, se conectan los agentes a el||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Se arrancan varias instancias en función del número de nodos&lt;br /&gt;
Debe instalarse en un servidor que tenga el almacenamiento de grabaciones en su sistema de archivos&lt;br /&gt;
|-&lt;br /&gt;
|recordNodo||Uno por servidor corporativo/gateway||Agente de grabación||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|bdCentral||Uno, en el nodo con la BBDD de tiempo real||Genera la base de datos que se copiará para respaldo a otros nodos||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|bdNodo||En cada nodo con BBDD de copia||Recoge la base de datos del servidor central con el objeto de tener el respaldo||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|Actualizador||Uno por sistema con ACD||Se encarga de proporcionar las versiones actualizadas de las aplicaciones de puesto de trabajo||'''''VIVA'''''it Suite||En el mismo servidor que el portal de administración&lt;br /&gt;
|-&lt;br /&gt;
|phoneProv-tftp||Uno por sistema||Se encarga del aprovisionamiento masivo de terminales||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||En instalaciones grandes habrá más de uno, quizás uno por sede grande; depende de la infraestructura de DHCP&lt;br /&gt;
|-&lt;br /&gt;
|borraregistrosnimitz||||||||				&lt;br /&gt;
|-&lt;br /&gt;
|Mover grabaciones a nube||||||||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Administración'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Tomcat 7||Uno por servidor con portales||Servidor de aplicaciones JAVA||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|Portal de administración ||Uno por sistema||Portal de administración del sistema||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Portal usuario||Uno por sistema||Portal de usuario, para acceso a buzones, su configuración||'''''VIVA'''''it Call||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Tracker web||Uno por sistema||Portal de seguimiento de llamadas||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Debe instalarse en un servidor que tenga los ficheros de grabación montados en su sistema de archivos&lt;br /&gt;
Ligado a recordCentral&lt;br /&gt;
Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Monitor||Uno por sistema||Portal de monitores de pared de Call Center||'''''VIVA'''''it Suite||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Apache||Uno por servidor de calendarios||Servidor de portales WEB||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|Servidor de calendarios||Uno por sistema||Aloja calendarios para su uso en diferentes entornos de NIMITZ||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Monitorización'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Servidor zabbix||Uno por instalación||Monitorización técnica y de negocio||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de uno&lt;br /&gt;
Tipicamente irá o en BBDD replica o en nodo de gestión en instalaciones grandes&lt;br /&gt;
|-&lt;br /&gt;
|Templates zabbix||Uno por instalación||Adaptaciones específicas||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|Agente Zabbix||Uno por servidor||Agente de monitorización||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
||Scripts monitorización zabbix||Uno por servidor||Agente de monitorización||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Versiones de módulos===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Módulo  !! VSuite &lt;br /&gt;
V.3.10 &lt;br /&gt;
! VSuite &lt;br /&gt;
V.3.2.0 &lt;br /&gt;
! VSuite &lt;br /&gt;
V.3.3.0 &lt;br /&gt;
! VIVAit V.3.0.0&lt;br /&gt;
(VSuite 3.4+VCall3.0) &lt;br /&gt;
!  VIVAit V.3.1.0&lt;br /&gt;
(VSuite 3.5+VCall3.1)&lt;br /&gt;
|-&lt;br /&gt;
| Sistema Operativo || || || || &lt;br /&gt;
|| Ubuntu 14.0.4&lt;br /&gt;
Server 64 Kb&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk || 1.4 || 1.4 || 1.4 || 1.4 Nodo ACD&lt;br /&gt;
13 resto nodos&lt;br /&gt;
|| 1.4 Nodo ACD&lt;br /&gt;
13 resto nodos&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk ACD '''(VS)'''  ||  ||  || || 3.3.1 || 3.4.1 &lt;br /&gt;
|-&lt;br /&gt;
| Dialplan ACD '''(VS)''' || ||  ||  || || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk Corp '''(C)''' ||  ||  ||  || 3.3.4 || 3.4.4&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk Cisco '''(VC)''' ||  ||  ||  || 3.3.4 || 3.4.4&lt;br /&gt;
|-&lt;br /&gt;
| Dialplan Corp '''(C)''' || ||  ||  || 3.3.1 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Lazarus común '''(VS)''' || 3.1.0  || 3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| BD '''(C)''' || 3.2.0 || 3.4.0 || 3.5.0 || 3.6.0 || 3.8.0&lt;br /&gt;
|-&lt;br /&gt;
| Generaconf '''(C)''' || 3.0.0  || 3.0.0  || 3.2.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Instalador '''(C)''' || 3.1.0  || 3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Intz-nimitz '''(C)''' || 2.6.0  || 3.0.1 || 3.0.3 ||  3.4.1 || 3.4.2&lt;br /&gt;
|-&lt;br /&gt;
| recordgwd '''(C)'''  ||  1.3.0 ||  1.3.0 || 3.1.0 ||  ----- || -----&lt;br /&gt;
|-&lt;br /&gt;
| recordNodo '''(C)''' || ----- || ----- || ----- ||  4.0.0 || 4.0.0&lt;br /&gt;
|-&lt;br /&gt;
| recordprocesad '''(C)''' || 1.2.0 ||1.2.0|| 3.0.0 || ----- || -----&lt;br /&gt;
|-&lt;br /&gt;
| recordCentral '''(C)''' || ----- || ----- || -----||  4.0.0 || 4.0.1&lt;br /&gt;
|-&lt;br /&gt;
| MyACDSuperv '''(VS)''' || 5.2.0 || 5.3.0  ||  5.3.0  ||  5.3.2 || 5.3.2&lt;br /&gt;
|-&lt;br /&gt;
| Motorsal '''(VS)''' || 1.4.0 || 3.1.0  || 3.2.0 || 3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| Vivait-cti '''(VS)'''  || 3.0.0 ||  3.0.1  ||  3.0.1  ||  3.0.1 || 3.0.2&lt;br /&gt;
|-&lt;br /&gt;
| Multimonitorweb '''(VS)''' ||  3.0.1 ||  3.0.2  || 3.1.0  || 3.1.0 || 3.2.0&lt;br /&gt;
|-&lt;br /&gt;
| Portal de administración '''(C)''' || 3.1.0  || 3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Tracker Web '''(C)''' || 3.0.2  || 3.1.0 ||  3.2.0 ||  3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
|  VIVA supervisor '''(VS)''' || 3.0.0 ||  3.1.0  ||  3.2.0  ||  3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| Tracker windows '''(C)''' || 3.0.0  || 3.1.0  || 3.2.0 || 3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| VIVA report '''(VS)''' || 1.2.0  || 3.1.0  || 3.2.0  ||  3.2.2 || 3.3.0&lt;br /&gt;
|-&lt;br /&gt;
| VIVA desk '''(VS)''' || 3.0.2 ||  3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| VIVA designer '''(VS)''' || 1.0.23 || 3.0.1  || 3.1.0 ||  3.1.0 || 3.2.0&lt;br /&gt;
|-&lt;br /&gt;
|  Preview '''(VS)''' || 1.0.18 || 3.2.0  || 3.3.0 || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Phone_prov '''(C)''' || ------ || ------ || 3.0.1 || 3.0.3 || 3.0.3&lt;br /&gt;
|-&lt;br /&gt;
| Portal usuario '''(VC)''' || ------ || ------ || ------ || 3.0.0 || 3.1.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''(C)''': Módulo común&lt;br /&gt;
&lt;br /&gt;
'''(VC)''': Módulo de VIVAit Call&lt;br /&gt;
&lt;br /&gt;
'''(VS)''': Módulo de VIVAit Suite&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Sistema Operativo ===&lt;br /&gt;
Los sistemas operativos de nuestra plataforma se corresponden a las versiones de Ubuntu Server LTS , ya que son las versiones estables, con un soporte continuado y mas estables a actualizaciones desde la salida Ubuntu 14.04.1. En concreto el sistema operativo utilizado para la plataforma '''''VIVA'''''it es Ubuntu Server 14.04.4 LTS. Para más información https://help.ubuntu.com/lts/serverguide/index.html.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ubuntu Kernel Release Schedule.png|750px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Funcionamiento en cluster ====&lt;br /&gt;
&lt;br /&gt;
Un clúster es un grupo de múltiples ordenadores unidos mediante una red de alta velocidad, de tal forma que el conjunto es visto como un único ordenador.&lt;br /&gt;
&lt;br /&gt;
De un clúster se espera que presente combinaciones de los siguientes servicios:&lt;br /&gt;
&lt;br /&gt;
# Alto rendimiento &lt;br /&gt;
# Alta disponibilidad&lt;br /&gt;
# Balanceo de carga &lt;br /&gt;
# Escalabilidad &lt;br /&gt;
&lt;br /&gt;
Tal y como esta definido el cluster de MDtel, este comprueba conectividad con la otra máquina que lo forma y con un punto de confianza. Si la máquina no tiene conectividad con la otra y si con el punto de confianza es que el servidor está vivo, mientas que si no tengo conectividad ni con la otra máquina ni con el punto de confianza es que el muerto soy yo, por lo que balanceo.&lt;br /&gt;
&lt;br /&gt;
Por lo que las máquinas balancean en los casos siguientes:&lt;br /&gt;
&lt;br /&gt;
* Todo lo que tenga que ver con la red, es decir, caída de la tarjeta de red, apagado de la máquina, corte en la red..&lt;br /&gt;
&lt;br /&gt;
Y no balancea en los siguientes:&lt;br /&gt;
&lt;br /&gt;
* No balancea en los demás casos, es decir, todo lo que tenga que ver con procesos de una máquina (caída asterisk, base de datos, intz-nimitz)&lt;br /&gt;
&lt;br /&gt;
El funcionamiento en cluster se basa en:&lt;br /&gt;
&lt;br /&gt;
* Heartbeat: IP flotante entre las dos máquinas que componen el cluster; típicamente este &amp;quot;latido&amp;quot; entre máquinas se realizará mediante conexión directa con cable cruzado para asegurar que no existan problemas de comunicaciones tales como retardo, pérdida de paquetes, etc en este latido y pueda ser causa de un balanceo inadecuado.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|  '''Nota 17-11-2015:''' Se ha realizado en un cliente un cluster distribuido, con dos servidores en diferentes sedes, realizando el heartbeat mediante enlace Gigabit. Si bien la solución no está validada por desarrollo, se está observando el funcionamiento.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* DRBD se encargar de mantener una serie de carpetas totalmente replicadas entre los dos nodos; dichas carpetas son:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El cluster es &amp;lt;big&amp;gt;'''activo/pasivo'''&amp;lt;/big&amp;gt;; la máquina activa posee la IP flotante y tiene arrancados los servicios.&lt;br /&gt;
&lt;br /&gt;
==== Configuración del cluster ====&lt;br /&gt;
Para montar un cluster de asterisk partimos de la siguiente situación inicial:&lt;br /&gt;
* Dos maquinas con '''''VIVA'''''it Call 3.0 instalado.&lt;br /&gt;
* El driver bonding de Interfaces de Red en Ubuntu Server.&lt;br /&gt;
&lt;br /&gt;
Los pasos a seguir para la configuración en el Ubuntu Server son los siguientes:&lt;br /&gt;
* Instalar ifenslave: &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 aptitude install ifenslave.&lt;br /&gt;
|}&lt;br /&gt;
: Finalizada la instalación, comprobamos que la instalación de Bonding se ha configurado para empezar desde el arranque del sistema operativo desde el fichero '''/etc/modules''':&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| vi /etc/modules&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 # Parameters can be specified after the module name.&lt;br /&gt;
 lp&lt;br /&gt;
 rtc&lt;br /&gt;
 bonding&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Crear o editar el archivo llamado '''/etc/modprobe.d/bonding.conf''' y añadir la siguiente linea en negrita:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 echo &amp;quot;alias bond0 bonding&amp;quot;&amp;gt; /etc/modprobe.d/bonding.conf&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Editar el fichero /etc/network/interfaces y añadir lo que esta en negrita:&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
 # This file describes the network interfaces available on your system&lt;br /&gt;
 # and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 &lt;br /&gt;
 '''# Bonding'''&lt;br /&gt;
 &lt;br /&gt;
 '''#em1 ip manual y esclavo en el &amp;quot;bond0&amp;quot; NIC'''&lt;br /&gt;
 '''auto em1'''&lt;br /&gt;
 '''iface em1 inet manual'''&lt;br /&gt;
 '''bond-master bond0'''&lt;br /&gt;
 '''bond-primary em0''' &lt;br /&gt;
 &lt;br /&gt;
 '''#em2 ídem, creando así un vínculo de enlace 2.'''&lt;br /&gt;
 '''auto em2'''&lt;br /&gt;
 '''iface em2 inet manual'''&lt;br /&gt;
 '''bond-master bond0'''&lt;br /&gt;
 '''auto bond0'''&lt;br /&gt;
 '''iface bond0 inet static'''&lt;br /&gt;
         '''address 10.255.255.11'''&lt;br /&gt;
        '''netmask 255.255.255.0'''&lt;br /&gt;
        '''gateway 10.255.255.254'''&lt;br /&gt;
 '''bond-mode active-backup'''&lt;br /&gt;
 '''bond-miimon 100'''&lt;br /&gt;
 '''bond-slaves none'''&lt;br /&gt;
 &lt;br /&gt;
 '''# em3 replica entre servidores'''&lt;br /&gt;
 '''auto em3'''&lt;br /&gt;
 '''iface em3 inet static'''&lt;br /&gt;
         '''address 10.255.254.10'''&lt;br /&gt;
        '''netmask 255.255.255.0'''&lt;br /&gt;
 &lt;br /&gt;
 '''# em4 gestion'''&lt;br /&gt;
 '''auto em4'''&lt;br /&gt;
 '''iface em4 inet static'''&lt;br /&gt;
         '''address 172.17.47.255'''&lt;br /&gt;
         '''netmask 255.255.0.0'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Reiniciamos el sistema para que el kernel tome los cambios.&lt;br /&gt;
&lt;br /&gt;
* Comprobación que en las dos maquinas el archivo '''/etc/host''' contenga el los nombre de las dos maquinas a vincular. En el ejemplo el archivo en ambas maquinas es:&lt;br /&gt;
&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 127.0.0.1       localhost&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.11   vivaitcall-CL-UAH-1&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.12   vivaitcall-CL-UAH-2&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.10   vivaitcall-CL-UAH&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.10   BDTR&lt;br /&gt;
 &lt;br /&gt;
 10.255.254.10   vivaitcall-CL-UAH-1-em3&lt;br /&gt;
 &lt;br /&gt;
 10.255.254.11   vivaitcall-CL-UAH-2-em3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Creamos dos particiones iguales en ambos ordenadores , usando el comando '''parted'''.&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# '''parted /dev/sda'''&lt;br /&gt;
 GNU Parted 2.3&lt;br /&gt;
 Using /dev/sda&lt;br /&gt;
 Welcome to GNU Parted! Type 'help' to view a list of commands.&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Number  Start   End     Size    File system     Name  Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 &lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                 boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
        237GB   1000GB  763GB   Free Space&lt;br /&gt;
 &lt;br /&gt;
 (parted) mkpart primary 237GB 1000GB&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Number  Start   End     Size    File system     Name     Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                    boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
 5      237GB   1000GB  763GB                   primary  No File System como ext4&lt;br /&gt;
        1000GB  1000GB  204kB   Free Space&lt;br /&gt;
 (parted)quit&lt;br /&gt;
 mkfs.ext4 /dev/sda5&lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# '''parted /dev/sda'''&lt;br /&gt;
 GNU Parted 2.3&lt;br /&gt;
 Using /dev/sda&lt;br /&gt;
 Welcome to GNU Parted! Type 'help' to view a list of commands.&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Number  Start   End     Size    File system     Name     Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                    boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
 5      237GB   1000GB  763GB                   primary&lt;br /&gt;
        1000GB  1000GB  204kB   Free Space&lt;br /&gt;
 (parted) rm 5&lt;br /&gt;
 (parted) mkpart primary 237GB 1000GB&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 &lt;br /&gt;
 Number  Start   End     Size    File system     Name     Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                    boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
 5      237GB   1000GB  763GB   ext4            primary  Si File Sytem ext4&lt;br /&gt;
        1000GB  1000GB  204kB   Free Space&lt;br /&gt;
 (parted)quit&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Instalar los paquetes necesarios para el drbd. '''En Ubuntu server 14.04 ya está instalado.'''&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 aptitude install drbd8-utils  &lt;br /&gt;
 aptitude update (si no instala el drbd8-utils actualizar)&lt;br /&gt;
 aptitude install drbd8-utils  (volver a lanzar)&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
* Creamos el archivo '''/etc/drbd.conf''' en ambas maquinas:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 # You can find an example in  /usr/share/doc/drbd.../drbd.conf.example&lt;br /&gt;
 include &amp;quot;drbd.d/global_common.conf&amp;quot;;&lt;br /&gt;
 include &amp;quot;drbd.d/*.res&amp;quot;;&lt;br /&gt;
 resource MDcluster {&lt;br /&gt;
         protocol C;&lt;br /&gt;
         on vivaitcall-CL-UAH-1 {&lt;br /&gt;
               device /dev/drbd0;&lt;br /&gt;
               disk /dev/sda5;&lt;br /&gt;
               address 10.255.254.10:7788;&lt;br /&gt;
               meta-disk internal;&lt;br /&gt;
        }&lt;br /&gt;
        on vivaitcall-CL-UAH-2 {&lt;br /&gt;
               device /dev/drbd0;&lt;br /&gt;
               disk /dev/sda5;&lt;br /&gt;
               address 10.255.254.11:7788;&lt;br /&gt;
               meta-disk internal;&lt;br /&gt;
        }&lt;br /&gt;
        disk {&lt;br /&gt;
               on-io-error detach;&lt;br /&gt;
        }&lt;br /&gt;
        net {&lt;br /&gt;
               max-buffers 2048;&lt;br /&gt;
               ko-count 4;&lt;br /&gt;
        }&lt;br /&gt;
        syncer {&lt;br /&gt;
               rate 100M;&lt;br /&gt;
               al-extents 257;&lt;br /&gt;
        }&lt;br /&gt;
        startup {&lt;br /&gt;
                wfc-timeout 0;&lt;br /&gt;
                degr-wfc-timeout 120;&lt;br /&gt;
        }&lt;br /&gt;
 }&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Reiniciamos el sistema para que el kernel tome los cambios.&lt;br /&gt;
* Inicializamos el recurso, para ello primero deberemos crear los recursos DRBD teclearemos en ambas maquinas. Desde /etc.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
  drbdadm create-md MDcluster  (no y yes )&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Si tenemos algún problema porque ya exista sistema de ficheros.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 dd if=/dev/zero of=/dev/sda5 bs=1M count=128&lt;br /&gt;
 drbdadm create-md MDcluster  (no y yes )&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Reiniciamos ambas maquinas para que su kernel tome los cambios.&lt;br /&gt;
* Levantamos el servicio del DRBD en ambos servidores (nos preguntara que si queremos enviar los datos a los desarrolladores de drbd) tecleando no, no se envían.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 service drbd start&lt;br /&gt;
 /etc/init.d/drbd start&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Ahora &amp;lt;u&amp;gt;ambas maquinas son secundarias&amp;lt;/u&amp;gt;.&lt;br /&gt;
: Indicar cual de las dos maquinas usaremos como primaria, por tanto en la maquina elegida habra que ejecutar:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 drbdadm -- --overwrite-data-of-peer primary all (en una máquina)&lt;br /&gt;
:&amp;lt;small&amp;gt;'''Nota:''' La ip virtual que va a estar asignada a la maquina activa es  172.25.129.70.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Podemos teclear el comando '''''cat''''' para ver si esta sincronizando  y su progreso:&lt;br /&gt;
&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 cat /proc/drbd&lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' El servicio DRBD  aparecera como '''''Primary/Secondary'''''  si ejecutamos en el primario ; &lt;br /&gt;
 y aparecerá ''''Secondary/Primary'''' si lo ejecutamos en el secundario. &amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
* Instalación de los script de arranque:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 update-rc.d -f drbd remove (en las dos maquinas)&lt;br /&gt;
 update-rc.d drbd start 13 2 3 4 5 . stop 87 0 1 6 . (en las dos máquinas)&lt;br /&gt;
|}&lt;br /&gt;
* Seleccionar la fuente de sincronización.&lt;br /&gt;
:Formateamos un disco de la maquina que queramos que funcione como fuente del servicio DRBD, para evitar conflictos:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 mkfs.ext4  /dev/drbd0&lt;br /&gt;
|}&lt;br /&gt;
: Creamos el directorio sobre el que vamos a montar el disco, en ambas maquinas.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 mkdir  /HDcluster&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Creamos un archivo dentro '''''/HDcluster''''' de que se verá solo cuando el disco no está montado en ambas maquinas.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 touch sinMontar&lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' Este archivo nos puede servir para monitorizar mediante zabbix, nagios, ... que el disco no está montado.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:  En una de las maquinas montamos el disco (desde fuera del directorio HDcluster) &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 mount  /dev/drbd0 /HDcluster&lt;br /&gt;
|}&lt;br /&gt;
* Procedemos a mover todos los datos que necesitemos en este disco y a crear accesos directos, los directorios que vamos a mover son los siguientes:&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 /etc/asterisk&lt;br /&gt;
 /var/lib/asterisk&lt;br /&gt;
 /usr/lib/asterisk&lt;br /&gt;
 /usr/spool/asterisk&lt;br /&gt;
 /var/lib/mysql&lt;br /&gt;
 /var/tftp/&lt;br /&gt;
|}&lt;br /&gt;
: El procedimiento que vamos a seguir es el siguiente, en el primer ordenador:&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 '''Cd /HDcluster'''&lt;br /&gt;
 '''tar -zcvf etc-asterisk.tgz /etc/asterisk'''&lt;br /&gt;
 '''tar -zxvf  etc-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /etc/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/etc/asterisk /etc/asterisk'''&lt;br /&gt;
 '''tar -zcvf var-lib-asterisk.tgz /var/lib/asterisk'''&lt;br /&gt;
 '''tar -zxvf  var-lib-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /var/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/asterisk /var/lib/asterisk'''&lt;br /&gt;
 '''tar -zcvf usr-lib-asterisk.tgz /usr/lib/asterisk'''&lt;br /&gt;
 '''tar -zxvf  usr-lib-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /usr/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/usr/lib/asterisk /usr/lib/asterisk'''&lt;br /&gt;
 '''tar -zcvf var-spool-asterisk.tgz /var/spool/asterisk'''&lt;br /&gt;
 '''tar -zxvf  var-spool-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /var/spool/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/spool/asterisk /var/spool/asterisk'''&lt;br /&gt;
 '''tar -zcvf var-lib-mysql.tgz /var/lib/mysql'''&lt;br /&gt;
 '''tar -zxvf  var-lib-mysql.tgz'''&lt;br /&gt;
 '''rm -rf /var/lib/mysql'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/mysql /var/lib/mysql'''&lt;br /&gt;
 '''tar -zcvf var-lib-phoneprov-tftp.tgz /var/lib/phoneprov-tftp/'''&lt;br /&gt;
 '''tar -zxvf  var-lib-phoneprov-tftp.tgz'''&lt;br /&gt;
 '''rm -rf /var/lib/phoneprov-tftp/'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/phoneprov-tftp /var/lib/phoneprov-tftp'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: En la segunda maquina debemos borrar los directorios y crear los accesos directos.&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''rm -rf /etc/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/etc/asterisk /etc/asterisk'''&lt;br /&gt;
 '''rm -rf /var/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/asterisk /var/lib/asterisk'''&lt;br /&gt;
 '''rm -rf /usr/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/usr/lib/asterisk /usr/lib/asterisk'''&lt;br /&gt;
 '''rm -rf /var/spool/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/spool/asterisk /var/spool/asterisk'''&lt;br /&gt;
 '''rm -rf /var/lib/mysql'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/mysql /var/lib/mysql'''&lt;br /&gt;
 '''rm -rf /var/lib/phoneprov-tftp'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/phoneprov-tftp /var/lib/phoneprov-tftp'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Configurar heartbeat para las dos maquinas.&lt;br /&gt;
: Instalamos heartbeat en las dos maquinas. '''En UBUNTU Server 14.04 ya está instalado.'''&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 aptitude install heartbeat&lt;br /&gt;
|}&lt;br /&gt;
: Debemos modificar 3 ficheros en cada una de las maquinas, estos se encuentran en '''/etc/ha.d'''. El primer fichero a modificar es '''''ha.cf.''''':&lt;br /&gt;
:: En la maquina ''vivaitcall-CL-UAH-1'' es: &lt;br /&gt;
::{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# cat /etc/ha.d/ha.cf&lt;br /&gt;
 '''# Explicacion en /usr/share/doc/heartbeat/ha.cf.gz'''&lt;br /&gt;
 &lt;br /&gt;
 '''udpport 694'''&lt;br /&gt;
 '''baud 19200'''&lt;br /&gt;
 '''auto_failback off'''&lt;br /&gt;
 '''use_logd yes'''&lt;br /&gt;
 '''crm no'''&lt;br /&gt;
 &lt;br /&gt;
 '''# Temporizaciones en segs'''&lt;br /&gt;
 '''logfacility local0'''&lt;br /&gt;
 '''keepalive 2'''&lt;br /&gt;
 '''deadtime 8'''&lt;br /&gt;
 '''warntime 16'''&lt;br /&gt;
 '''initdead 64'''&lt;br /&gt;
 '''deadping 6'''&lt;br /&gt;
 &lt;br /&gt;
 '''#ucast bond0 vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''ucast bond0 vivaitcall-CL-UAH-2'''&lt;br /&gt;
 &lt;br /&gt;
 '''#ucast em3 vivaitcall-CL-UAH-1-em3'''&lt;br /&gt;
 '''ucast em3 vivaitcall-CL-UAH-2-em3'''&lt;br /&gt;
 &lt;br /&gt;
 '''#Ping a puerta de enlace,gw1,gw2,gw3,gw4'''&lt;br /&gt;
 '''ping_group red_local 10.255.255.12'''&lt;br /&gt;
 &lt;br /&gt;
 '''respawn hacluster /usr/lib/heartbeat/ipfail'''&lt;br /&gt;
 '''apiauth ipfail gid=haclient uid=hacluster'''&lt;br /&gt;
 &lt;br /&gt;
 '''node vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''node vivaitcall-CL-UAH-2'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:: Y en la maquina ''vivaitcall-CL-palacio-2'' es:&lt;br /&gt;
::{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# cat /etc/ha.d/ha.cf&lt;br /&gt;
 '''# Explicacion en /usr/share/doc/heartbeat/ha.cf.gz'''&lt;br /&gt;
 &lt;br /&gt;
 '''udpport 694'''&lt;br /&gt;
 '''baud 19200'''&lt;br /&gt;
 '''auto_failback off'''&lt;br /&gt;
 '''use_logd yes'''&lt;br /&gt;
 '''crm no'''&lt;br /&gt;
 &lt;br /&gt;
 '''# Temporizaciones en segs'''&lt;br /&gt;
 '''logfacility local0'''&lt;br /&gt;
 '''keepalive 2'''&lt;br /&gt;
 '''deadtime 8'''&lt;br /&gt;
 '''warntime 16'''&lt;br /&gt;
 '''initdead 64'''&lt;br /&gt;
 '''deadping 6'''&lt;br /&gt;
 &lt;br /&gt;
 '''ucast bond0 vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''#ucast bond0 vivaitcall-CL-UAH-2'''&lt;br /&gt;
 &lt;br /&gt;
 '''ucast em3 vivaitcall-CL-UAH-1-em3'''&lt;br /&gt;
 '''#ucast em3 vivaitcall-CL-UAH-2-em3'''&lt;br /&gt;
 &lt;br /&gt;
 '''#Ping a puerta de enlace gw1 gw2 gw3 gw4'''&lt;br /&gt;
 '''ping_group red_local 10.255.255.12'''&lt;br /&gt;
 &lt;br /&gt;
 '''respawn hacluster /usr/lib/heartbeat/ipfail'''&lt;br /&gt;
 '''apiauth ipfail gid=haclient uid=hacluster'''&lt;br /&gt;
 &lt;br /&gt;
 '''node vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''node vivaitcall-CL-UAH-2'''&lt;br /&gt;
|}&lt;br /&gt;
::'''Nota:''' El parámetro '''auto_failback''' se utiliza para indicar si queremos que al recuperarse una maquina adquiera los recursos sobre los que tiene prioridad.&lt;br /&gt;
:El segundo fichero es '''''authkeys''''',, este fichero es el mismo en ambas maquinas: &lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 chmod 600 authkeys '''(importante)'''&lt;br /&gt;
 auth 1&lt;br /&gt;
 1 sha1 claveSecretaATope&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:El tercer fichero '''haresources''', donde especificaremos en las dos maquinas que deben apuntar a la maquina que queremos que tenga prioridad en la adquisición de los recursos, este fichero es el mismo en las dos maquinas: &lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 MÁQUINA 1 -&amp;gt; vivaitcall-CL-palacio-1 hb_mdtel&lt;br /&gt;
 MÁQUINA 2-&amp;gt; vivaitcall-CL-palacio-1 hb_mdtel &lt;br /&gt;
|}&lt;br /&gt;
: Copiaremos en el directorio '''/etc/ha.d/resource.d/''' los scripts de arranque con permisos 755 (lo podemos hacer mediante WINSCP). Los scripts se encuentran en '''''C:\Documents and Settings\javier.gutierrez.MDTEL\Mis documentos\Centrales\Asterisk\Cluster\scripts'''''.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 chmod 755 hb_catalina&lt;br /&gt;
 chmod 755 hb_mdtel&lt;br /&gt;
 chmod 755 hb_mdtel_firewall&lt;br /&gt;
|}&lt;br /&gt;
: Deberemos editar  el archivo '''hb_mdtel'''&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 (IP flotante a.b.c.d./mask) 10.255.255.10&lt;br /&gt;
 CAD_IP_FLOTA=10.255.255.10/24/bond0&lt;br /&gt;
|}&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* Paramos el proceso '''myAcdSuperv'''.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 mv /etc/rc2.d/S02myAcdSuperv s02myAcdSuperv&lt;br /&gt;
|}&lt;br /&gt;
* Reiniciamos ambas maquinas para que su kernel tome los cambios.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de buen funcionamiento del cluster ====&lt;br /&gt;
* La maquina activa tiene que tener en HDcluster montado el disco con todos sus directorios y la maquina inactiva no (tenemos que ver el archivo que hemos creado &amp;quot;sinMontar&amp;quot;). &lt;br /&gt;
* La ip virtual tiene que estar en la maquina activa (ifconfig)  y no tiene que estar en la inactiva. &lt;br /&gt;
* El asterisk tiene que estar arrancado en la maquina activa y parado en la inactiva. &lt;br /&gt;
* Tecleando la ip de la maquina activa en un navegador debemos acceder al portal de vivait-call y en la inactiva no debe de estar activo. &lt;br /&gt;
* Para cambiar el cluster manualmente podemos utilizar los siguientes comandos:&lt;br /&gt;
:{|&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
  /usr/share/heartbeat/hb_takeover&lt;br /&gt;
|}&lt;br /&gt;
: La maquina desde la que se ejecuta se convierte en la maquina activa&lt;br /&gt;
:{|&lt;br /&gt;
 |- &lt;br /&gt;
 |&lt;br /&gt;
  /usr/share/heartbeat/hb_standby&lt;br /&gt;
 |}&lt;br /&gt;
: La maquina desde la que se ejecuta deja de ser la maquina activa&lt;br /&gt;
&lt;br /&gt;
==== Notas para MySQL ====&lt;br /&gt;
Si mysql es parte del cluster tenemos que tener en cuenta dos cosas:&lt;br /&gt;
&lt;br /&gt;
* El archivo '''/etc/mysql/debían.cnf''' contiene una clave que debe ser igual en ambas maquinas y debe ser la clave de la máquina de donde cojamos la base de datos.&amp;lt;br&amp;gt;&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 # Automatically generated for Debian scripts. DO NOT TOUCH!&lt;br /&gt;
 [client]&lt;br /&gt;
 host     = localhost&lt;br /&gt;
 user     = debian-sys-maint&lt;br /&gt;
 password = AI6AdPtnhLUrNm1S&lt;br /&gt;
 socket   = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysql_upgrade]&lt;br /&gt;
 user     = debian-sys-maint&lt;br /&gt;
 password = AI6AdPtnhLUrNm1S&lt;br /&gt;
 socket   = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 basedir  = /usr&lt;br /&gt;
|} &amp;lt;br&amp;gt;&lt;br /&gt;
* El archivo '''/etc/apparmor.d/usr.sbin.mysqld''' contiene donde pueden estar ubicados los archivos de mysql, al cambiar su ubicación y poner un enlace directo en /var/lib/mysql si no modificamos este archivo mysql no arrancara al no tener la nueva ubicación entre sus localizaciones permitidas. Este es un ejemplo de las líneas que debemos añadir. &amp;lt;br&amp;gt;&lt;br /&gt;
:{|&lt;br /&gt;
|-  &lt;br /&gt;
|&lt;br /&gt;
 /var/run/mysqld/mysqld.sock w, (copiar después de esta linea)&lt;br /&gt;
 &lt;br /&gt;
 #//!!&lt;br /&gt;
   /HDcluster/var/lib/mysql/ r,&lt;br /&gt;
   /HDcluster/var/lib/mysql/** rwk,&lt;br /&gt;
   #//!!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Notas de desincronización ====&lt;br /&gt;
EL servicio del DRBD esta iniciado pero al teclear el comando cat /proc/drbd para ver si esta sincronizando se presenta &amp;quot;'''primary/unknown&amp;quot; y/o secondary/unknown''' &amp;quot;.&lt;br /&gt;
* En el nodo primary  &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 drbdadm connect all &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* En el nodo secondary  &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 drbdadm disconnect all  &lt;br /&gt;
 drbdadm -- --discard-my-data connect all&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Adaptar red a cliente ====&lt;br /&gt;
Para adaptar la red de los equipos al entorno del cliente hay que editar los siguientes ficheros:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 /etc/network/interfaces&lt;br /&gt;
 /etc/resolv.conf&lt;br /&gt;
 /etc/hosts&lt;br /&gt;
 /etc/ha.d/resource.d/hb_mdtel&lt;br /&gt;
 /etc/ha.d/ha.cf &lt;br /&gt;
 - TFTP: &lt;br /&gt;
 /etc/inetd.conf (IP del cluster)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
Tras la modificaciones oportunas, se debe reiniciar las dos máquinas para cargar las nuevas configuraciones.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Matriz de conmutación ===&lt;br /&gt;
&lt;br /&gt;
Encontramos dos diferentes núcleos de conmutación en la plataforma VIVAit:&lt;br /&gt;
&lt;br /&gt;
* Para los nodos de procesamiento ACD el núcleo de conmutación es asterisk 1.4 RSP con fuertes modificaciones realizadas por MDtel en determinados módulos (queues, chan_spy entre otros)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Para los nodos que realizan funcionalidad de gateway y/o procesamiento de telefonía corporativa, se utiliza como núcleo de conmutación asterisk 13, versión certified&lt;br /&gt;
https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Documentation&lt;br /&gt;
&lt;br /&gt;
==== Modificaciones realizadas sobre Asterisk 13 certified 2 ====&lt;br /&gt;
&lt;br /&gt;
===== Archivos añadidos por '''MD'''tel =====&lt;br /&gt;
Los archivos añadidos son los siguientes:&lt;br /&gt;
&lt;br /&gt;
* '''apps/app_ucid.c'''&lt;br /&gt;
* '''apps/app_cli.c'''&lt;br /&gt;
* '''apps/app_crash.c'''&lt;br /&gt;
* '''apps/app_mdintz.c'''&lt;br /&gt;
* '''apps/app_mdintz.exports.in'''&lt;br /&gt;
* '''include/asterisk/mdintz.h'''&lt;br /&gt;
* '''include/asterisk/ucid.h'''&lt;br /&gt;
* '''res/res_mdcal.c'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ apps/app_mdintz.exports.in '''&lt;br /&gt;
&lt;br /&gt;
Este archivo sirve para la exportación de funciones del mdintz para el uso por aplicaciones externas&lt;br /&gt;
&lt;br /&gt;
===== Modificaciones de archivos =====&lt;br /&gt;
&lt;br /&gt;
Los archivos modificados por '''MD'''tel son los mostrados a continuación:&lt;br /&gt;
&lt;br /&gt;
* '''apps/app_mixmonitor.c''' &lt;br /&gt;
* '''res/res_calendar_caldav.c'''&lt;br /&gt;
* '''contrib/scripts/safe_asterisk'''&lt;br /&gt;
* '''contrib/init.d/rc.debian.asterisk'''&lt;br /&gt;
* '''channels/sig_pri.c'''&lt;br /&gt;
* '''channels/chan_sip.c'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ main/audiohook.c''' &amp;lt;!--style=&amp;quot;color:#0000ff&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''audiohook.c''' ha sido modificado para solucionar un crash de asterisk al utilizar en el mixmonitor las opciónes r y t &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ app_crash.c '''&lt;br /&gt;
&lt;br /&gt;
Esta nueva aplicación es sólo compatible con '''Asterisk 13'''. &lt;br /&gt;
&lt;br /&gt;
La documentación de la misma se encuentra en el comando: '''&amp;quot;core show application Crash&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
Esta nueva aplicación ''permite añadir'' al plan de pruebas:&lt;br /&gt;
&lt;br /&gt;
* Generación de una parada de asterisk. (Crash(IwantToGetAnAccessViolation) ó Crash(IwantToGetADoubleFreeMem))&lt;br /&gt;
* Verificación de su impacto. Por ejemplo, no deben cortarse las llamadas en curso, si así está previsto por la topología.&lt;br /&gt;
* Correcta generación de los &amp;quot;core&amp;quot;, comprobando que funciona &amp;quot;backtrace&amp;quot; (bt).&lt;br /&gt;
&lt;br /&gt;
 '''Nota.-''' Esta aplicación no debería estar presente en una instalación de '''Asterisk 13'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ app_mdintz.c y mdintz.h''' &amp;lt;!--style=&amp;quot;color:#0000ff&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esta aplicación sirve como interfaz a entornos (funcionalidades) creados por MDtel&lt;br /&gt;
&lt;br /&gt;
Para mas información consultar la página de [[MDintz|MDintz]].&lt;br /&gt;
&lt;br /&gt;
Las rutas de estos archivos son las siguientes:&lt;br /&gt;
&lt;br /&gt;
'''apps/app_mdintz.c''' &amp;lt;br/&amp;gt;&lt;br /&gt;
'''include/asterisk/mdintz.h '''&lt;br /&gt;
&lt;br /&gt;
 '''app_mdintz.c''' :&lt;br /&gt;
&lt;br /&gt;
'''app_mdintz.c''' orientada al proceso de enrutamiento a implementar en ''intz-nimitz.''&lt;br /&gt;
&lt;br /&gt;
El archivo '''.c''' es casi igual para asterisk 1.4.24 y asterisk 13. &lt;br /&gt;
 '''Nota.-''' Cuando se compila para asterisk 13, es necesario comentar la línea que pone&amp;lt;br /&amp;gt; '''&amp;quot;#define ASTERISK_OLD&amp;quot;.'''&lt;br /&gt;
&lt;br /&gt;
Los cambios implementados son:&lt;br /&gt;
&lt;br /&gt;
* Unificación de código entre las versiones de asterisk&lt;br /&gt;
* Nuevo comando &amp;quot;qry&amp;quot;&lt;br /&gt;
* Posible resolución de &amp;quot;Mal write&amp;quot; en intz-nimitz (a verificar)&lt;br /&gt;
&lt;br /&gt;
En cuanto al nuevo comando, el formato es:&lt;br /&gt;
&lt;br /&gt;
 '''mdintz qry &amp;lt;nHostFijo&amp;gt; &amp;lt;entorno&amp;gt; &amp;lt;servicio&amp;gt; &amp;lt;par1&amp;gt;...&amp;lt;parN&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Permite interrogar a un servidor de igual modo que hace el dialplan con '''fines de diagnóstico'''. La única diferencia es que se ha añadido el parámetro '''&amp;quot;nHostFijo&amp;quot;''' que puede tomar como valor '''&amp;quot;*&amp;quot;''' (lo que solicita una interrogación secuencial a todos los servidores definidos, igual a la funcionalidad del dialplan) ó '''&amp;quot;0&amp;quot;''' a '''&amp;quot;3&amp;quot;''' (que solicita un interrogación dirigida el host indicado como hostN, y sólo a él, en archivo de configuración).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para instalarlo, es necesario copiar:&lt;br /&gt;
&lt;br /&gt;
* '''asterisk/apps/app_mdintz.c'''&lt;br /&gt;
* '''asterisk/include/asterisk/mdintz.h'''&lt;br /&gt;
* En asterisk 1.4.24 conviene asegurar que se ha actualizado '''&amp;quot;asterisk/apps/app_queue.o&amp;quot;''' y '''&amp;quot;asterisk/apps/app_queue.so&amp;quot;'''&lt;br /&gt;
* Luego '''&amp;quot;make&amp;quot;, &amp;quot;make install&amp;quot;''' y module '''&amp;quot;unload/load&amp;quot;''' (mejor &amp;quot;stop now&amp;quot; y start)&lt;br /&gt;
&lt;br /&gt;
'''→ scripts y rc.debian.asterisk'''&lt;br /&gt;
&lt;br /&gt;
cambiado contrib/scripts por el modificado por MDtel&amp;lt;br /&amp;gt;&lt;br /&gt;
cambiado contrib/init.d/rc.debian.asterisk por el modificado por MDtel &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ Carpeta mp3 añadida al directorio addons'''&lt;br /&gt;
&lt;br /&gt;
La carpeta mp3 en addons permite la reproducción desde el diaplan de los mensajes en mp3. En make menuselect hay que marcar el format_mp3 y app_mp3 e instalar el paquete mpg123 de ubuntu &lt;br /&gt;
&lt;br /&gt;
'''→ sig_pri.c'''&lt;br /&gt;
&lt;br /&gt;
Modificado para enviar/recibir el ucid en un primario qsig &lt;br /&gt;
&lt;br /&gt;
Para que se envie el ucis tenemos que habilitar el envio de facilidades en el chan_dahdi.conf&lt;br /&gt;
&lt;br /&gt;
facilityenable = yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ init.d''' &amp;lt;!--style=&amp;quot;color:#0000ff&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Uno de los archivos modificados ha sido '''init.d''', se encuentra en la ruta: '''/etc/init.d/asterisk'''. La modificación realizada es la siguiente:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;background-color:#ffffcc;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| SAFE_ASTEISK=/usr/sbin/safe_asterisk &amp;lt;br/&amp;gt;&lt;br /&gt;
if [ -x $SAFE_ASTERISK ] ; then&amp;lt;br/&amp;gt;&lt;br /&gt;
:# //!! wkw&amp;lt;br/&amp;gt;&lt;br /&gt;
:DAEMON=$SAFE_ASTERISK&amp;lt;br/&amp;gt;&lt;br /&gt;
fi&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--archivo--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''→ safe-asterisk'''&lt;br /&gt;
* Se encuentra en la siguiente ruta:'''/usr/sbin/safe-asterisk''' .En este archivo se ha modificado MAXFILES=32768&lt;br /&gt;
&lt;br /&gt;
'''→ default'''&lt;br /&gt;
&lt;br /&gt;
* Este fichero podemos encontrarlo en: '''/etc/default/asterisk'''. La finalidad de la modificación de este fichero es poder correr como usuario Asterisk, grupo asterisk y generar cores (descomentar línea)&lt;br /&gt;
Las modificaciones realizadas han sido:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;background-color:#ffffcc;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| AST_USER=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
AST_GROUP=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
COREDUMP=yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Nueva función de asterisk: app_cli.so =====&lt;br /&gt;
&lt;br /&gt;
Esta función permite ejecutar desde el '''dialplan''' un comando de línea de consola de '''asterisk (CLI).''' Su primer uso (y esperamos que no último) será para lanzar los '''notify''' que los teléfonos necesitan para el ''reaprovisionamiento'' desde el portal o desde la facilidad de movilidad de usuario.&lt;br /&gt;
&lt;br /&gt;
Básicamente ejecuta un comando y devuelve su salida. Utiliza un archivo intermedio que puede ser:&lt;br /&gt;
&lt;br /&gt;
* '''/dev/null''' si el campo se deja vacío, por tanto, no se puede recuperar la salida.&lt;br /&gt;
* '''TEMP''', en cuyo caso se crea un archivo temporal que se borra antes de finalizar la ejecución de la función.&lt;br /&gt;
* Un nombre de fichero que es responsabilidad del dialplan el borrarlo cuando proceda.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para instalarlo basta copiar '''apps/app_cli.c''' en el directorio ''' &amp;quot;apps&amp;quot; ''' de los fuentes y luego  ejecutar '''&amp;quot;make&amp;quot; y &amp;quot;make install&amp;quot;.'''&lt;br /&gt;
&lt;br /&gt;
A continuación se pasa el resultado de '''&amp;quot;core show function CLI&amp;quot; '''&lt;br /&gt;
&lt;br /&gt;
'''[Synopsis]'''&lt;br /&gt;
&lt;br /&gt;
 Lanza un comando CLI desde dialplan&lt;br /&gt;
&lt;br /&gt;
'''[Description]''' &amp;lt;br /&amp;gt;&lt;br /&gt;
 - CLI(nomArchSal,cmd)&amp;lt;br /&amp;gt;&lt;br /&gt;
 - Si 'nomArchSal' está vacio, se usa '/dev/null' y no se recupera resultado&amp;lt;br /&amp;gt;&lt;br /&gt;
 - Si 'nomArchSal'=TEMP, Se crea un archivo temporal que se borra al final&amp;lt;br /&amp;gt;&lt;br /&gt;
 - En otro caso, se crea el archivo y no se borra&lt;br /&gt;
&lt;br /&gt;
'''[Syntax]'''&amp;lt;br /&amp;gt;&lt;br /&gt;
 CLI(nomArchSal,cmd)&lt;br /&gt;
&lt;br /&gt;
'''[Arguments]'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''nomArchSal'''&lt;br /&gt;
    Archivo de salida (si se omite, /dev/null)&lt;br /&gt;
'''cmd'''&lt;br /&gt;
    Comando a ejecutar via CLI&lt;br /&gt;
&lt;br /&gt;
==== Dialplan  ====&lt;br /&gt;
&lt;br /&gt;
El Dialplan podría considerarse la columna vertebral del sistema ''Asterisk''.&lt;br /&gt;
&lt;br /&gt;
Es una colección ordenada de acciones que se llevan a cabo cuando un usuario marca una serie de números. Hace la función de una tabla de enrutamiento de llamadas.&lt;br /&gt;
&lt;br /&gt;
Todas las configuraciones generales de Asterisk están accesibles en la ruta '''/etc/asterisk'''&lt;br /&gt;
&lt;br /&gt;
'''CONCEPTOS BÁSICOS'''&lt;br /&gt;
&lt;br /&gt;
♦ '''EXTENSIONES'''&lt;br /&gt;
&lt;br /&gt;
Una extensión es una marcación en el teclado de un teléfono. Dicha configuración podemos encontrarla en el archivo '''extensions.conf''' &lt;br /&gt;
&lt;br /&gt;
Por ejemplo, un usuario podría marcar “3001” en su teléfono, y eso sería una extensión. También podría marcar un número de teléfono nacional, como por ejemplo “915881000”, y también sería una extensión.&lt;br /&gt;
&lt;br /&gt;
En Asterisk pueden definirse también extensiones como texto, por tanto no debemos relacionar las extensiones únicamente con números.&lt;br /&gt;
&lt;br /&gt;
Algunas reglas que sería interesante conocer serían las siguientes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Regla''' !! '''Descripción'''&lt;br /&gt;
|-&lt;br /&gt;
| '''X''' || Cualquier cifra de 0 a 9&lt;br /&gt;
|-&lt;br /&gt;
|'''Z'''||Cualquier cifra de 1 a 9&lt;br /&gt;
|-&lt;br /&gt;
|'''N'''||Cualquier cifra de 2 a 9&lt;br /&gt;
|-&lt;br /&gt;
|'''[x-y]'''||Cualquier cifra de &amp;quot;x&amp;quot; a &amp;quot;y&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''[xyz]'''|| 	Las cifras &amp;quot;x&amp;quot;, &amp;quot;y&amp;quot; o &amp;quot;z&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''.'''||Una o más repeticiones del símbolo anterior&lt;br /&gt;
|-&lt;br /&gt;
|'''!'''||Cero o más repeticiones del símbolo anterior&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Estas reglas son necesarias a la hora de definir por ejemplo todos los números de teléfono posibles en España &lt;br /&gt;
&lt;br /&gt;
♦ '''PRIORIDADES'''&lt;br /&gt;
&lt;br /&gt;
En lenguaje scripting, las acciones se van ejecutando de arriba a abajo en orden. En cambio, en Asterisk, el orden en el que se ejecutan las acciones es el indicado mediante números.&lt;br /&gt;
Primero se ejecutará la acción 1, luego la 2...así sucesivamente.&lt;br /&gt;
&lt;br /&gt;
Es decir no basta con definir las acciones que se llevarán a cabo, también debemos indicar el orden en el que se llevarán a cabo.&lt;br /&gt;
&lt;br /&gt;
♦ '''CONTEXTOS'''&lt;br /&gt;
&lt;br /&gt;
Es mecanismo que nos permite variar el comportamiento del sistema en función del número que se marque. Su misión es aumentar la seguridad del sistema ofreciendo servicios diferenciados en función del usuario.&lt;br /&gt;
&lt;br /&gt;
La sintaxis típica es el nombre del contexto englobado entre corchetes [nombre_contexto]. Si un dispositivo no tiene un contexto definido se redirige directamente al contexto por defecto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los ficheros que conforman el Dialplan se clasifican en:&lt;br /&gt;
&lt;br /&gt;
* '''Generales'''&lt;br /&gt;
* '''Particulares'''&lt;br /&gt;
* '''Web'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Fichero''' !! '''Función'''&lt;br /&gt;
|-&lt;br /&gt;
| '''Generales''' || Se encuentran los ficheros de propios de MDtel y Asterisk. Es importante remarcar que estos ficheros NO pueden ser modificados por el usuario.&lt;br /&gt;
|-&lt;br /&gt;
|'''Particular'''||Estos ficheros son los únicos que puede modificar el usuario&lt;br /&gt;
|-&lt;br /&gt;
|'''Web'''|| Se encierran aquí los archivos generados automáticamente por la plataforma, a través del portal&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
En función del nodo en el que estemos trabajando, encontraremos dos tipos de dialplan:&lt;br /&gt;
&lt;br /&gt;
'''* Dialplan ACD''' --&amp;gt; Dialplan que aplica a nodos ACD&lt;br /&gt;
&lt;br /&gt;
'''* Dialplan corporativa''' --&amp;gt; Dialplan que aplica a nodos de corporativa o gateways (ya sean de corporativa o ACD)&lt;br /&gt;
&lt;br /&gt;
A continuación se muestran las tablas con los ficheros correspondientes a cada Dialplan.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;FloralWhite&amp;quot;&lt;br /&gt;
|+ '''Ficheros de configuración Dialplan Corporativo'''&lt;br /&gt;
| '''GENERALES'''&lt;br /&gt;
| '''PARTICULARES'''&lt;br /&gt;
| '''WEB'''&lt;br /&gt;
|-&lt;br /&gt;
| ext_Grabaciones.conf &amp;lt;br /&amp;gt;ext_InicioLlamada.conf &amp;lt;br /&amp;gt; ext_InicioLlamada_Dahdi.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP.conf &amp;lt;br/&amp;gt;ext_InicioLlamada_TrunkSIP.conf &amp;lt;br /&amp;gt;ext_MARCAR_ColaCentralita.conf &amp;lt;br /&amp;gt; ext_MARCAR_ColaCentralita_Dial.conf&amp;lt;br /&amp;gt; ext_MARCAR_Cola.conf &amp;lt;br /&amp;gt;ext_MARCAR_Cola_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR.conf  &amp;lt;br /&amp;gt; ext_MARCAR_DejarMensaje.conf &amp;lt;br /&amp;gt; ext_MARCAR_DejarMensaje_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Extension.conf&amp;lt;br /&amp;gt;ext_MARCAR_Extension_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_nimitz.conf&amp;lt;br /&amp;gt;ext_MARCAR_Interno.conf &amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje.conf &amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR_Nodo.conf&amp;lt;br /&amp;gt;ext_MARCAR_Nodo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Servicios.conf &amp;lt;br /&amp;gt;ext_MARCAR_VDN.conf &amp;lt;br /&amp;gt;MARCAR_VDN_Dial.conf&amp;lt;br /&amp;gt;ext_MDtel.conf &amp;lt;br /&amp;gt;ext_MDtel_Var.conf &amp;lt;br /&amp;gt;ext_Subrutinas_AnchoBanda.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD_Facilidad.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD_Facilidad.conf &amp;lt;br /&amp;gt; ext_Subrutinas_Colas.conf &amp;lt;br /&amp;gt;ext_Subrutinas.conf &amp;lt;br /&amp;gt;ext_Subrutinas_Enrutamiento.conf &amp;lt;br /&amp;gt;ext_Subrutinas_finLlamada.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Grabacion.conf&amp;lt;br /&amp;gt;ext_Subrutinas_nimitz.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Varias.conf&amp;lt;br /&amp;gt;ext_Subscribe.conf&amp;lt;br /&amp;gt;ext_Transfer.conf &amp;lt;br /&amp;gt;ext_Transfer_ExtSIP.conf&amp;lt;br /&amp;gt;ext_Transfer_TrunkInternos.conf &amp;lt;br /&amp;gt;ext_TrunkInternos.conf&amp;lt;br /&amp;gt;ext_TrunkInternos_Dial.conf &amp;lt;br /&amp;gt;sip_Estatico.conf&amp;lt;br /&amp;gt; sip_GENCUST.conf &amp;lt;br /&amp;gt;sip_notify.conf &amp;lt;br /&amp;gt;queues.conf &amp;lt;br /&amp;gt; queues_GENERAL.conf &amp;lt;br /&amp;gt;queues_PLANTILLACOLAS.conf&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| ext_Enrutador_Particular.conf&amp;lt;br /&amp;gt; ext_InicioLlamada_Dahdi_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_Particular.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_TrunkSIP_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_Extension_Particular.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo_Particular.conf &amp;lt;br/&amp;gt; ext_MARCAR_Facilidad_Particular.conf&amp;lt;br /&amp;gt; ext_MARCAR_VDN_Particular.conf &amp;lt;br /&amp;gt;ext_MDtel_Particular.conf &amp;lt;br/&amp;gt; ext_TrunkInternos_Particular.conf &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|asterisk_WEB.conf &amp;lt;br /&amp;gt; ext_MDtel_WEB.conf &amp;lt;br /&amp;gt; sip_trunkExt_WEB.conf &amp;lt;br /&amp;gt;sip_trunkInt_WEB.conf &amp;lt;br /&amp;gt;sip_trunk_WEB.conf &amp;lt;br /&amp;gt; sip_WEB.conf &amp;lt;br /&amp;gt; queues_WEB.conf&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;FloralWhite&amp;quot;&lt;br /&gt;
|+ '''Ficheros de configuración Dialplan ACD'''&lt;br /&gt;
| '''GENERALES'''&lt;br /&gt;
| '''PARTICULARES'''&lt;br /&gt;
| '''WEB'''&lt;br /&gt;
|-&lt;br /&gt;
| ext_Enrutador.conf&amp;lt;br /&amp;gt;ext_Grabaciones.conf &amp;lt;br /&amp;gt; ext_InicioLlamada.conf &amp;lt;br /&amp;gt; ext_InicioLlamada_CTI.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_Dahdi.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_Marcador.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_TrunkSIP.conf &amp;lt;br /&amp;gt;ext_MARCAR_ColaCentralita.conf &amp;lt;br /&amp;gt;ext_MARCAR_ColaCentralita_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR_Cola.conf &amp;lt;br /&amp;gt;ext_MARCAR_Cola_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR.conf &amp;lt;br /&amp;gt;ext_MARCAR_DejarMensaje.conf &amp;lt;br /&amp;gt;ext_MARCAR_DejarMensaje_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Extension.conf &amp;lt;br /&amp;gt;ext_MARCAR_Extension_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_nimitz.conf&amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje.conf &amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Nodo.conf &amp;lt;br /&amp;gt;ext_MARCAR_Nodo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR_Servicios.conf &amp;lt;br /&amp;gt;ext_MARCAR_VDN.conf &amp;lt;br /&amp;gt;ext_MARCAR_VDN_Dial.conf&amp;lt;br /&amp;gt;ext_MDtel.conf &amp;lt;br /&amp;gt;ext_MDtel_Var.conf &amp;lt;br /&amp;gt;ext_Subrutinas_AnchoBanda.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD_Facilidad.conf &amp;lt;br /&amp;gt; ext_Subrutinas_Colas.conf &amp;lt;br /&amp;gt;ext_Subrutinas.conf &amp;lt;br /&amp;gt;ext_Subrutinas_Enrutamiento.conf &amp;lt;br /&amp;gt; ext_Subrutinas_finLlamada.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Grabacion.conf &amp;lt;br /&amp;gt;ext_Subrutinas_nimitz.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Varias.conf &amp;lt;br /&amp;gt;ext_Subscribe.conf&amp;lt;br /&amp;gt;ext_Transfer.conf &amp;lt;br /&amp;gt;ext_Transfer_ExtSIP.conf&amp;lt;br /&amp;gt;ext_Transfer_TrunkInternos.conf &amp;lt;br /&amp;gt;ext_TrunkInternos.conf &amp;lt;br /&amp;gt;ext_TrunkInternos_Dial.conf &amp;lt;br /&amp;gt;queues_GENERAL.conf&amp;lt;br /&amp;gt;queues_PLANTILLACOLAS.conf &amp;lt;br /&amp;gt;sip_GENCUST.conf &amp;lt;br /&amp;gt;sip_GENERAL.conf &amp;lt;br /&amp;gt;sip_notify.conf &amp;lt;br /&amp;gt;sip_PLANTILLAEXT.conf&amp;lt;br /&amp;gt;sip_supervision.conf &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| ext_Enrutador_Particular.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_CTI_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_Dahdi_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_Marcador_Particular.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_Particular.conf.&amp;lt;br /&amp;gt;ext_InicioLlamada_TrunkSIP_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_Externo_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_VDN_Particular.conf&amp;lt;br /&amp;gt; ext_MDtel_Particular.conf&amp;lt;br /&amp;gt;ext_TrunkInternos_Particular.conf&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
|asterisk_WEB.conf &amp;lt;br /&amp;gt; ext_MDtel_WEB.conf &amp;lt;br /&amp;gt;queues_WEB.conf&amp;lt;br /&amp;gt; sip_trunkInt_WEB.conf &amp;lt;br /&amp;gt;sip_WEB.conf &amp;lt;br /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Servicios networking ===&lt;br /&gt;
Son muy importantes las configuraciones adecuadas de los servicios de:&lt;br /&gt;
&lt;br /&gt;
* '''NTP''': El sistema en global ha de estar sincronizado; todos los servidores y puestos de trabajo (en el caso de ''VIVA''it Suite) han de estar perfectamente sincronizados; los servidores de la plataforma se sincronizarán con el NTP del cliente; si el cliente no tiene NTP será necesario que un servidor de la plataforma se sincronice con un NTP externo y este sea el servidor para el resto de la plataforma&lt;br /&gt;
&lt;br /&gt;
* '''DNS''': La configuración de DNS de la plataforma será coherente con el resto de la plataforma IT del cliente&lt;br /&gt;
&lt;br /&gt;
* '''DHCP''': Es necesario coordinar con el cliente la asignación de direcciones para los diferentes elementos de la plataforma '''''VIVA'''''it, fundamentalmente para terminales telefónicos; en este caso además será necesario activa la opción 66 que permitirá definir el servidor TFTP del que los terminales cogerán sus ficheros de aprovisionamiento&lt;br /&gt;
&lt;br /&gt;
=== Bases de datos (BBDD)===&lt;br /&gt;
&lt;br /&gt;
La base de datos del sistema se basa en el motor de base de datos MySQL, es un elemento crítico del sistema, en el que insertan y del que obtiene mucha información múltiples procesos.&lt;br /&gt;
Muchas comunicaciones entre procesos se realizan vía Base de Datos (tabla COM_COMUNICADOS). Pueden existir distintas instancias de base de datos que explicadas en las siguientes secciones, nuestra base de datos tiene la siguiente estructura: [[Base de datos|Información completa de la BD]]. Podéis ampliar más información en https://dev.mysql.com/doc/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== BBDD Tiempo Real ====&lt;br /&gt;
En la base de datos de tiempo real insertan información todos los procesos del sistema, y se realizan los cambios en configuración utilizando como herramienta el portal de administración y '''''VIVA'''''it Supervisor&lt;br /&gt;
&lt;br /&gt;
De la base de datos de tiempo real leen los procesos que requieren información, y las aplicaciones:&lt;br /&gt;
*'''''VIVA'''''it Supervisor (para reporting de tiempo real)&lt;br /&gt;
*PanelWeb&lt;br /&gt;
*Datos de sesión de '''''VIVA'''''it Desk&lt;br /&gt;
*Monitorización Zabbix&lt;br /&gt;
* Otros&lt;br /&gt;
&lt;br /&gt;
El portal de administración se encarga de escribir las configuraciones añadidas o modificadas en la base de datos&lt;br /&gt;
&lt;br /&gt;
Para cuando la BDTR contienen un número masivo de datos, existe un script que borra el contenido de ciertas tablas de la BD (tablas DAT_) dejando solamente datos de un cierto número de días configurable.&lt;br /&gt;
Este script se llama borraRegistrosNimitz.pl; para más información consultar el apartado de Howto's.&lt;br /&gt;
&lt;br /&gt;
'''Por defecto, a partir de la versión 3.2.0 de la plataforma, los registros se mantedrán 2 meses.'''&lt;br /&gt;
&lt;br /&gt;
==== BBDD Réplica ====&lt;br /&gt;
A efectos de asegurar las prestaciones del sistema, se establece una réplica de la base de datos, sincronizada con la de tiempo real; los procesos y aplicaciones pesados, que realicen consultas a las base de datos que puedan comprometer las prestaciones del sistema atacan a la réplica y nunca a la base de datos de tiempo real&lt;br /&gt;
&lt;br /&gt;
Es posible que en instalaciones pequeñas no exista réplica, en cuyo caso se establece una base de datos unificada sobre la de tiempo real, en la que se añaden índices y procedimientos almacenados que típicamente residen en la de réplica.&lt;br /&gt;
&lt;br /&gt;
Es posible establecer tantas réplicas como sean necesarias si diferentes procesos pesados se penalizan en exceso, si bien una implantación tipo contemplará una sola&lt;br /&gt;
&lt;br /&gt;
Algunos procesos que utilizan la base de datos de réplica son:&lt;br /&gt;
*'''''VIVA'''''it Reporting&lt;br /&gt;
*'''''VIVA'''''it Tracker&lt;br /&gt;
*Histórico en tiempo real de '''''VIVA'''''it Supervisor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANTE: Ningún proceso, programa, aplicación, etc. escribe en la base de datos de réplica; tan solo se extrae información'''&lt;br /&gt;
&lt;br /&gt;
==== BBDD de copia ====&lt;br /&gt;
A efectos de asegurar el funcionamiento y como medida de contingencia ante un problema puntual de comunicación con la BD de tiempo real, en cada nodo disponemos de una BD de copia local. Posiblemente de un tamaño menor que la BD de tiempo real, dependiendo de cuanto tiempo pase hasta la próxima sincronización con la base de tiempo real.Esta base de datos llamada '''nimitzCopia'''.&lt;br /&gt;
  &lt;br /&gt;
Solo entrara en funcionamiento,cuando se produzca el problema mencionado, dejando acceder a los datos y poder dar servicio a la empresa mientras se soluciona el problema.&lt;br /&gt;
&lt;br /&gt;
===== Backup y restore =====&lt;br /&gt;
&lt;br /&gt;
Se utilizan dos script, para realizar la copia de seguridad y restaurar en la base de datos de copia local que son:&lt;br /&gt;
&lt;br /&gt;
* El proceso '''bdCentral.sh''' que es el encargado de realizar la copia de seguridad. Tiene un archivo de configuración bdCentral.conf. En este archivo hay un parámetro (IGNORE_TABLAS) que indica las tablas de las que NO se realizará copia de seguridad. Toda tabla que no se indique formará parte de la copia de seguridad. Vuelca los resultados en /var/log/bdCentral.log&lt;br /&gt;
* El proceso '''bdNodo.sh''' que es el encargado de descargar la copia de seguridad y restaurarla en local. Tiene un archivo de configuración bdNodo.conf. Vuelca los resultados en /var/log/bdNodo.log. El fichero de backup se copia mediante el usuario sincroniza, que deberá poder acceder sin contraseña al servidor donde reside la copia.&lt;br /&gt;
&lt;br /&gt;
En caso de producirse algún error en alguno de los procesos, marcarán dicho error en el log con una línea que comienza con la cadena &amp;quot;*ERROR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Diagnósticos y operaciones sobre bases de datos ====&lt;br /&gt;
&lt;br /&gt;
=====Comprobación que una base de datos está arrancada=====&lt;br /&gt;
Para comprobar si la base de datos está arrancada debemos poner en el terminal : '''ps aux | grep mysql'''&lt;br /&gt;
&lt;br /&gt;
Si la base de datos está arrancada y funcionando correctamente se nos mostrará en el terminal:&lt;br /&gt;
[[Archivo:Base_Datos_bien.png‎ |500px|center]]&lt;br /&gt;
&lt;br /&gt;
Por el contrario, si la base de datos presenta algun problema el mensaje mostrado será:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Base_datos_mal.png |center]]&lt;br /&gt;
&lt;br /&gt;
=====Comprobación que la base de datos de réplica está sincronizada con la base de datos de tiempo real.=====&lt;br /&gt;
&lt;br /&gt;
Si se necesita verificar que la base de réplica está sincronizada con la base de datos en tiempo real basta con acudir al comando : '''show slave status\G'''.&lt;br /&gt;
&lt;br /&gt;
Una vez introducido veremos:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Replica.png |980px|center]]&lt;br /&gt;
&lt;br /&gt;
Comandos importantes, desde dentro consola de Mysql:&lt;br /&gt;
&lt;br /&gt;
 '''show master status''': Realizado desde el master&lt;br /&gt;
 '''show slave status''': Realizado desde el esclavo; el valor &amp;quot;seconds behind master&amp;quot; nos indica&lt;br /&gt;
 cuanto está retrasada la réplica con respecto a la base de datos de tiempo real. Si el valor de este campo es elevado nos indicará &lt;br /&gt;
 que la base de datos real con la réplica no estará sincronizada, por tanto, nos interesa que este valor sea lo más pequeño posible.&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Procesos propios ===&lt;br /&gt;
&lt;br /&gt;
==== bdCentral ====&lt;br /&gt;
&lt;br /&gt;
El proceso ''bdCentral.sh'' es el encargado de realizar la copia de seguridad. Tiene un archivo de configuración ''bdCentral.conf'' el cual puede encontrarse en la ruta '''/etc/MDtel/bdCentral.conf'''. En este archivo hay un parámetro (IGNORE_TABLAS) que indica las tablas de las que NO se realizará copia de seguridad. Toda tabla que no se indique formará parte de la copia de seguridad. Vuelca los resultados en /var/log/bdCentral.log&lt;br /&gt;
&lt;br /&gt;
En caso de producirse algún error, se marcará dicho error en el log con una línea que comienza con la cadena &amp;quot;*ERROR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Para ejecutar bdCentral:&lt;br /&gt;
 bdCentral.sh /etc/MDtel/bdCentral.conf&lt;br /&gt;
&lt;br /&gt;
Estos procesos se ejecutan automáticamente. Para ello está copiado el fichero bdCentral a /etc/cron.d.&lt;br /&gt;
&lt;br /&gt;
Por defecto la programación vienen comentada por lo que será necesario activarlo.&lt;br /&gt;
&lt;br /&gt;
Para que se roten los logs hay que copiar el fichero bdCentral.logrotate a /etc/logrotate.d (como bdCentral)&lt;br /&gt;
La ruta donde se encuentran los logs es la siguiente: '''/var/log/myAcdSuperv.log'''&lt;br /&gt;
&lt;br /&gt;
Fichero de configuación:&lt;br /&gt;
&lt;br /&gt;
 ARCH_LOG=/var/log/bdCentral.log&lt;br /&gt;
 &lt;br /&gt;
 BDHOST=localhost&lt;br /&gt;
 BDUSU=adminNimitz&lt;br /&gt;
 BDCLAVE=imdtelnimitz&lt;br /&gt;
 BDRUTA=/var/lib/MDtel/backupBDnimitz&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 IGNORE_TABLAS=(nimitz.DAT_ACD_RASTREO  nimitz.DAT_ACUMULADOS_AGENTES  nimitz.DAT_ACUMULADOS_AGENTES_COLAS&lt;br /&gt;
 nimitz.DAT_ACUMULADOS_AGENTES_PAUSAS  nimitz.DAT_ACUMULADOS_AGENTES_VDN  nimitz.DAT_ACUMULADOS_COLAS  &lt;br /&gt;
 nimitz.DAT_ACUMULADOS_VDN  nimitz.DAT_ACUMULADOS_VDN_COLAS  nimitz.DAT_CONTACTOS_PREPARADOS  &lt;br /&gt;
 nimitz.DAT_IVR_INTERACCIONES  nimitz.DAT_IVR_NODOS  nimitz.DAT_IVR_PAGOS_TARJETA  nimitz.DAT_IVR_RESULT_ENCUESTAS &lt;br /&gt;
 nimitz.DAT_LLAMADAS  nimitz.DAT_LOG  nimitz.DAT_MUESTRAS_COLAS  nimitz.DAT_SEGMENTOS  nimitz.DAT_SESIONES_AGENTES  &lt;br /&gt;
 nimitz.DAT_SESIONES_AGENTES_COLAS  nimitz.DAT_SESIONES_AGENTES_PAUSAS  nimitz.DAT_SESIONES_AGENTES_VDN  &lt;br /&gt;
 nimitz.DAT_SINCRONIZA  nimitz.DAT_TR_ACD_EXTENSIONES  nimitz.DAT_TR_ACD_EXTEN_COLA  nimitz.DAT_TR_COLAS  &lt;br /&gt;
 nimitz.DAT_VALORACIONES  nimitz.DAT_ACD_RASTREO  nimitz.DAT_ACUMULADOS_AGENTES_COLAS   &lt;br /&gt;
 nimitz.DAT_ACUMULADOS_AGENTES_PAUSAS  nimitz.DAT_ACUMULADOS_AGENTES_VDN  nimitz.DAT_ACUMULADOS_COLAS  &lt;br /&gt;
 nimitz.DAT_ACUMULADOS_VDN  nimitz.DAT_LLAMADAS  nimitz.DAT_MUESTRAS_COLAS  nimitz.DAT_SEGMENTOS  &lt;br /&gt;
 nimitz.DAT_SESIONES_AGENTES  nimitz.DAT_SESIONES_AGENTES_COLAS  nimitz.DAT_SESIONES_AGENTES_PAUSAS  &lt;br /&gt;
 nimitz.DAT_SESIONES_AGENTES_VDN  nimitz.DAT_TR_ACD_EXTENSIONES  nimitz.DAT_TR_ACD_EXTEN_COLA  nimitz.DAT_TR_COLAS  &lt;br /&gt;
 nimitz.DAT_VALORACIONES)&lt;br /&gt;
&lt;br /&gt;
*A continuación se explica los campos mas relevantes del fichero de configuración bdCentral.conf. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Campo !!Descripción !!Posibles valores (si aplica)&lt;br /&gt;
|-&lt;br /&gt;
|ARCH_LOG||	/RUTA/FICHERO de log del proceso||&lt;br /&gt;
|-	&lt;br /&gt;
|BDHOST||IP o HOST máquina base de datos de tiempo real||&lt;br /&gt;
|-	&lt;br /&gt;
|BDUSU||Usuario acceso Base de datos de tiempo real||&lt;br /&gt;
|-	&lt;br /&gt;
|BDCLAVE||Clave usuario acceso base de datos tiempo real||&lt;br /&gt;
|-	&lt;br /&gt;
|BDRUTA||Ruta donde se depositará el dump de la base de datos||&lt;br /&gt;
|-	&lt;br /&gt;
|IGNORE_TABLAS||Tablas de las que no queramos hacer backup||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== bdNodo ====&lt;br /&gt;
El proceso bdNodo.sh es el encargado de descargar la copia de seguridad y restaurarla en local. Tiene un archivo de configuración bdNodo.conf, este archivo puede encontrarse en la ruta '''/etc/MDtel/bdNodo.conf.''' Vuelca los resultados en /var/log/bdNodo.log. El fichero de backup se copia mediante el usuario sincroniza, que deberá poder acceder sin contraseña al servidor donde reside la copia.&lt;br /&gt;
&lt;br /&gt;
En caso de producirse algún error, se marcará dicho error en el log con una línea que comienza con la cadena &amp;quot;*ERROR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Para ejecutar bdNodo:&lt;br /&gt;
&lt;br /&gt;
 bdNodo.sh /etc/MDtel/bdNodo.conf&lt;br /&gt;
&lt;br /&gt;
Estos procesos se ejecutan automáticamente. Para ello está copiado el fichero bdNodo a /etc/cron.d.&lt;br /&gt;
&lt;br /&gt;
Por defecto la programación vienen comentada por lo que será necesario activarlo.&lt;br /&gt;
&lt;br /&gt;
Para que se roten los logs hay que copiar el fichero bdNodo.logrotate a /etc/logrotate.d (como bdNodo)&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Intz-Nimitz ====&lt;br /&gt;
&lt;br /&gt;
Permite integrar procesos de asterisk (del dialplan) con la base de datos; por ejemplo es el que graba segmentos, inspecciona donde está registrado un agente…etc. La estabilidad de este proceso es importante para el funcionamiento del sistema, si bien las llamadas entran en caso de no estar disponible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para mas información consultar la página de [[intz-nimitz|intz-nimitz]].&lt;br /&gt;
&lt;br /&gt;
Desde un SSH ejecuta el comando “nc ip_maquina 1115”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1115'''&lt;br /&gt;
 intz-nimitz sis ver='V02.6' inic='20140401 110116' alarmas=21 ultAlar='20140414 171244'&lt;br /&gt;
 intz-nimitz gmp msj=942/1024 buf=1024/1024 tarea=16/102&lt;br /&gt;
 intz-nimitz tmp uptime=1816550 (21d 0h 35m 50s)&lt;br /&gt;
 intz-nimitz vic identif='cms1' entorno='nimitz' conx=0/128 numConx=1018(0)&lt;br /&gt;
 intz-nimitz mys curro=80/0/0/0 soli=1012(0) soliErr=6(0) soliEncol=0(0/0)&lt;br /&gt;
 intz-nimitz cache colas=128/10/0/0 vdn=128/8/0/0 usuExten=10/0/0/0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parámetro!!Descripción&lt;br /&gt;
|-&lt;br /&gt;
|sis/ver||Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|sis/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|Sis/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|Sis/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/msj||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/buf||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/tarea||&lt;br /&gt;
|-&lt;br /&gt;
|Tmp/uptime||Tiempo que lleva el servicio activo&lt;br /&gt;
|-&lt;br /&gt;
|Vic/identif||Etiqueta de identificación del servicio&lt;br /&gt;
|-&lt;br /&gt;
|Vic/entorno||Entorno de base de datos&lt;br /&gt;
|-&lt;br /&gt;
|Vic/conx||Conexiones activas/conexiones máximas&lt;br /&gt;
|-&lt;br /&gt;
|Vic/numConx||Conexiones totales (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|Mys/curro||Número de hilos contra la base de datos&lt;br /&gt;
|-&lt;br /&gt;
|Mys/soli||Conexiones solicitadas (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|Mys/soliErr||Conexiones solicitadas con error (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|Mys/soliEncol||Conexiones encoladas&lt;br /&gt;
|-&lt;br /&gt;
|Cache/cola|| Colas monitorizadas/&lt;br /&gt;
|-&lt;br /&gt;
|Cache/vdn||VDN’s monitorizados&lt;br /&gt;
|-&lt;br /&gt;
|Cache/usuExten||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en  '''/etc/MDtel/intz-nimitz.conf'''&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/intz-nimitz.log'''&lt;br /&gt;
&lt;br /&gt;
'''Fichero de configuración:'''&lt;br /&gt;
&lt;br /&gt;
 #&lt;br /&gt;
 # Los nombres no pueden tener numeros&lt;br /&gt;
 # Si el valor de una cadena contiene espacios, se pondra entre comillas dobles&lt;br /&gt;
 # Los valores comentados indican valores por defecto&lt;br /&gt;
 &lt;br /&gt;
 base&lt;br /&gt;
 {&lt;br /&gt;
 	cfg&lt;br /&gt;
 	{&lt;br /&gt;
 		soy_demonio = 1&lt;br /&gt;
 		hay_syslog = 0&lt;br /&gt;
 # Archivo con identificador de proceso: (-: /var/run/intz-nimitz.pid)&lt;br /&gt;
 		archivo_pid = -&lt;br /&gt;
 # Archivo_traza: (-: stdout o /var/log/intz-nimitz.log si soy_demonio)&lt;br /&gt;
 # No se usa si se activa hay_syslog&lt;br /&gt;
 		archivo_traza = -&lt;br /&gt;
 	}&lt;br /&gt;
 	cfg_recarga&lt;br /&gt;
 	{&lt;br /&gt;
 # Nivel_traza: (0: alarma, 1: aviso, 2: info, 3: depuAlto o 4: depuBajo)&lt;br /&gt;
 		nivel_traza = 3&lt;br /&gt;
 		pruebas = 1&lt;br /&gt;
 		hay_flush_traza = 1&lt;br /&gt;
 	}&lt;br /&gt;
 	sis&lt;br /&gt;
 	{&lt;br /&gt;
 # No se usa. No modificar&lt;br /&gt;
 		subsistema = 0&lt;br /&gt;
 	}&lt;br /&gt;
 	gmp&lt;br /&gt;
 	{&lt;br /&gt;
 # Numero de mensajes. No modificar&lt;br /&gt;
 		num_msj = 1024&lt;br /&gt;
 # Numero de buffer. No modificar&lt;br /&gt;
 		num_buf = 1024&lt;br /&gt;
 	}&lt;br /&gt;
 } &lt;br /&gt;
 &lt;br /&gt;
 supervision&lt;br /&gt;
 {&lt;br /&gt;
 	puerto_escucha = 1115&lt;br /&gt;
 } &lt;br /&gt;
 &lt;br /&gt;
 supervision_recarga&lt;br /&gt;
 {&lt;br /&gt;
 	to_periodo = 60&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 cache&lt;br /&gt;
 {&lt;br /&gt;
         hay_cache = 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 cache_recarga&lt;br /&gt;
 {&lt;br /&gt;
 # to_vida = 0, no se almacenan entradas. to_vida &amp;gt; 0 en segundos&lt;br /&gt;
         colas_to_vida = 300&lt;br /&gt;
         colas_num_entrada = 128&lt;br /&gt;
         vdn_to_vida = 300&lt;br /&gt;
         vdn_num_entrada = 128&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 regexp&lt;br /&gt;
 {&lt;br /&gt;
 	hay_regexp = 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 regexp_recarga&lt;br /&gt;
 {&lt;br /&gt;
 	num_entradas = 32&lt;br /&gt;
 	inc_entradas = 128&lt;br /&gt;
 	max_entradas = 1024&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 vivaitcall&lt;br /&gt;
 {&lt;br /&gt;
 	hay_vic = 1&lt;br /&gt;
 	puerto_escucha = 5555&lt;br /&gt;
 	identif = cms1&lt;br /&gt;
 	entorno = nimitz&lt;br /&gt;
 	max_conx = 128&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 vivaitcall_recarga&lt;br /&gt;
 {&lt;br /&gt;
 	to_solicitud = 3&lt;br /&gt;
 	to_desconexion = 3&lt;br /&gt;
 	ip_valida&lt;br /&gt;
 	{&lt;br /&gt;
 # Hasta 32 bloques de direcciones validas&lt;br /&gt;
 		todas&lt;br /&gt;
 		{&lt;br /&gt;
 			ip = 0.0.0.0&lt;br /&gt;
 			msk = 0.0.0.0&lt;br /&gt;
 		}&lt;br /&gt;
 		localhost&lt;br /&gt;
 		{&lt;br /&gt;
 			ip = 127.0.0.1&lt;br /&gt;
 			msk = 255.255.255.255&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 enrutamiento&lt;br /&gt;
 {&lt;br /&gt;
 	hay_enrutamiento = 1&lt;br /&gt;
 	max_pre_ruta_regs = 4&lt;br /&gt;
 	max_ruta = 4&lt;br /&gt;
 	max_ruta_desvios = 2&lt;br /&gt;
 # Filtro de informacion de ancho de banda&lt;br /&gt;
 # MYSDanchoBandaPasoNinguno      0&lt;br /&gt;
 # MYSDanchoBandaPasoSoloDirectos 1&lt;br /&gt;
 # MYSDanchoBandaPasoSoloEnPaso   2&lt;br /&gt;
 # MYSDanchoBandaPasoTodos        3&lt;br /&gt;
 	filtro_ancho_banda = 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 mysql&lt;br /&gt;
 {&lt;br /&gt;
 	hay_mysql = 1&lt;br /&gt;
 	host = BDTR&lt;br /&gt;
 	usuario = nimitz&lt;br /&gt;
 	clave = phikau3iwCe4O0PP5b09ng==&lt;br /&gt;
 	base_datos = nimitz&lt;br /&gt;
 	bd_supervivencia = 0&lt;br /&gt;
 	num_curro = 10&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 mysql_recarga&lt;br /&gt;
 {&lt;br /&gt;
 	to_resp = 5&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Los siguientes son los campos del fichero de configuración '''int-nimitz.conf''':&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Variable a modificar||Comentarios||Posibles valores (si aplica)&lt;br /&gt;
|-&lt;br /&gt;
|soy_demonio||Si corro como demonio o como proceso||1 demonio – 0 proceso&lt;br /&gt;
|-&lt;br /&gt;
|hay_syslog||Si hay servidor de syslog||1 lo hay – 0 no lo hay&lt;br /&gt;
|-&lt;br /&gt;
|archivo_pid||# Archivo con identificador de proceso: (-: /var/run/intz-nimitz.pid)||&lt;br /&gt;
|-&lt;br /&gt;
|archivo_traza||# Archivo_traza: (-: stdout o /var/log/intz-nimitz.log si soy_demonio)||&lt;br /&gt;
|-&lt;br /&gt;
|nivel_traza||# Nivel_traza: (0: alarma, 1: aviso, 2: info, 3: depuAlto o 4: depuBajo)||&lt;br /&gt;
|-&lt;br /&gt;
|pruebas||||&lt;br /&gt;
|-&lt;br /&gt;
|hay_flush_traza||||&lt;br /&gt;
|-&lt;br /&gt;
|subsistema||# No se usa. No modificar||&lt;br /&gt;
|-&lt;br /&gt;
|num_msj||# Numero de mensajes. No modificar||&lt;br /&gt;
|-&lt;br /&gt;
|num_buf||# Numero de buffer. No modificar||&lt;br /&gt;
|-&lt;br /&gt;
|puerto_escucha||Puerto de supervisión del demonio||&lt;br /&gt;
|-&lt;br /&gt;
|to_periodo||Timeout para reconectar||&lt;br /&gt;
|-&lt;br /&gt;
|hay_cache||si guarda datos o no en cache||1 hay cache – 0 no hay cache&lt;br /&gt;
|-&lt;br /&gt;
|colas_to_vida||# to_vida = 0, no se almacenan entradas. to_vida &amp;gt; 0 en segundos||&lt;br /&gt;
|-&lt;br /&gt;
|colas_num_entrada||Número de entradas correspondiente a las colas||&lt;br /&gt;
|-&lt;br /&gt;
|vdn_to_vida||# to_vida = 0, no se almacenan entradas. to_vida &amp;gt; 0 en segundos||&lt;br /&gt;
|-&lt;br /&gt;
|vdn_num_entrada||Número de entradas correspondiente a los VDN||&lt;br /&gt;
|-&lt;br /&gt;
|hay_regexp||||&lt;br /&gt;
|-&lt;br /&gt;
|num_entradas||||&lt;br /&gt;
|-&lt;br /&gt;
|inc_entradas||||&lt;br /&gt;
|-&lt;br /&gt;
|max_entradas||||&lt;br /&gt;
|-&lt;br /&gt;
|hay_vic||||&lt;br /&gt;
|-&lt;br /&gt;
|puerto_escucha||Puerto de escucha a nivel de vivait-call||&lt;br /&gt;
|-&lt;br /&gt;
|identif ||||&lt;br /&gt;
|-&lt;br /&gt;
|entorno||Nombre base de datos||&lt;br /&gt;
|-&lt;br /&gt;
|max_conx||Número máximo de conexiones a la base de datos||&lt;br /&gt;
|-&lt;br /&gt;
|to_solicitud||Timeout de solicitud||&lt;br /&gt;
|-&lt;br /&gt;
|to_desconexion||Timeout de desconexión||&lt;br /&gt;
|-&lt;br /&gt;
|ip||Dirección de red de escucha del intz-nimitz||&lt;br /&gt;
|-&lt;br /&gt;
|msk ||Máscara de red de escucha del intz-nimitz||&lt;br /&gt;
|-&lt;br /&gt;
|ip||IP localhost||&lt;br /&gt;
|-&lt;br /&gt;
|msk||Máscara localhost||&lt;br /&gt;
|-&lt;br /&gt;
|hay_enrutamiento||Hay fase de enrutamiento o no||1 hay enrutamiento – 0 no hay&lt;br /&gt;
|-&lt;br /&gt;
|max_pre_ruta_regs||Número máximo de prerutas a cargar||&lt;br /&gt;
|-&lt;br /&gt;
|max_ruta||Número máximo de rutas a cargar||&lt;br /&gt;
|-&lt;br /&gt;
|max_ruta_desvios||Número máximo de rutas de desvíos a cargar||&lt;br /&gt;
|-&lt;br /&gt;
|filtro_ancho_banda||Filtrar por ancho de banda||1 filtrar – 0 no filtrar&lt;br /&gt;
|-&lt;br /&gt;
|hay_mysql||Hay mysql||1 hay -0 no hay&lt;br /&gt;
|-&lt;br /&gt;
|host||IP o HOST máquina base de datos ||&lt;br /&gt;
|-&lt;br /&gt;
|usuario||Usuario acceso Base de datos||&lt;br /&gt;
|-&lt;br /&gt;
|clave||Clave usuario acceso base de datos||&lt;br /&gt;
|-&lt;br /&gt;
|base_datos||Nombre de la base de datos||&lt;br /&gt;
|-&lt;br /&gt;
|bd_supervivencia||Hay o no base de datos de supervivencia||1 hay base de datos de supervivencia – 0 no hay&lt;br /&gt;
|-&lt;br /&gt;
|num_curro||Número de conexiones simultáneas a la base de datos||&lt;br /&gt;
|-&lt;br /&gt;
|to_resp||Timeout de respuesta||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== intz-gh ====&lt;br /&gt;
&lt;br /&gt;
intz-gh es un demonio que permite tanto la monitorizacion de extensiones (BLFs), como la activación de retrollamadas entre distintos nodos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Comandos desde consola de asterisk'''&lt;br /&gt;
&lt;br /&gt;
 mdgh show &lt;br /&gt;
&lt;br /&gt;
Uso: mdgh show [config | exten &amp;lt;exten_num&amp;gt; | enla &amp;lt;peer&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
* '''Ejemplo'''&lt;br /&gt;
&lt;br /&gt;
 mdgh show config&lt;br /&gt;
 mdgh Configuracion: &lt;br /&gt;
 &lt;br /&gt;
   debug=no&lt;br /&gt;
   retro_hay=yes&lt;br /&gt;
   subscripcion_hay=yes&lt;br /&gt;
   rest_red_ip=255.255.255.255&lt;br /&gt;
   rest_red_msk=255.255.255.255&lt;br /&gt;
   rest_puerto_escucha=8090&lt;br /&gt;
   retro_exten_tech=SIP&lt;br /&gt;
   retro_contexto=Cen_InicioLlamada_GHRetro&lt;br /&gt;
   retro_to_descolgar=30 s&lt;br /&gt;
   retro_A_cartel_fmt='retro: %s&lt;br /&gt;
&lt;br /&gt;
 mdgh show exten 6146&lt;br /&gt;
 &lt;br /&gt;
 mdgh Datos de la extension 6146: &lt;br /&gt;
 &lt;br /&gt;
  Datos en intz-gh: &lt;br /&gt;
    ESTADO=NOT_INUSE&lt;br /&gt;
    INUSE=0&lt;br /&gt;
    RINGING=0&lt;br /&gt;
    TS=1535609682&lt;br /&gt;
    HACE=1171&lt;br /&gt;
&lt;br /&gt;
 mdgh show en la Trunk_MDtel&lt;br /&gt;
&lt;br /&gt;
 mdgh Datos del enlace Trunk_MDtel: &lt;br /&gt;
 &lt;br /&gt;
  Datos en intz-gh: &lt;br /&gt;
    INUSE=0&lt;br /&gt;
    RINGING=0&lt;br /&gt;
    TS=1535610093&lt;br /&gt;
    HACE=834&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Fichero de log'''&lt;br /&gt;
&lt;br /&gt;
/var/log/intz-gh.log&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Fichero de configuracion'''&lt;br /&gt;
&lt;br /&gt;
/etc/MDtel/intz-gh.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Campos intz-gh.conf'''&lt;br /&gt;
&lt;br /&gt;
# Los nombres no pueden tener numeros.&lt;br /&gt;
# Si el valor de una cadena contiene espacios, se pondra entre comillas dobles.&lt;br /&gt;
# Los valores comentados indican valores por defecto.&lt;br /&gt;
&lt;br /&gt;
 base&lt;br /&gt;
  &lt;br /&gt;
 	 cfg&lt;br /&gt;
 	 {&lt;br /&gt;
 	 	soy_demonio = 1&lt;br /&gt;
 	 	hay_syslog = 0&lt;br /&gt;
 # Archivo con identificador de proceso: (-: /var/run/intz-nimitz.pid)&lt;br /&gt;
 	 	archivo_pid = -&lt;br /&gt;
 # Archivo_traza: (-: stdout o /var/log/intz-nimitz.log si soy_demonio)&lt;br /&gt;
 # No se usa si se activa hay_syslog&lt;br /&gt;
 		archivo_traza = -&lt;br /&gt;
 	}&lt;br /&gt;
 	cfg_recarga&lt;br /&gt;
 	{&lt;br /&gt;
 # Nivel_traza: (0: alarma, 1: aviso, 2: info, 3: depuAlto o 4: depuBajo)&lt;br /&gt;
 		nivel_traza = 3&lt;br /&gt;
 		pruebas = 1&lt;br /&gt;
 		hay_flush_traza = 1&lt;br /&gt;
 #		traza_milisegundos = 1&lt;br /&gt;
 	}&lt;br /&gt;
 	sis&lt;br /&gt;
 	{&lt;br /&gt;
 # No se usa. No modificar&lt;br /&gt;
 		subsistema = 0&lt;br /&gt;
 	}&lt;br /&gt;
 	gmp&lt;br /&gt;
 	{&lt;br /&gt;
 # Numero de mensajes. No modificar&lt;br /&gt;
 		num_msj = 256&lt;br /&gt;
 # Numero de buffer. No modificar&lt;br /&gt;
 		num_buf = 256&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 supervision&lt;br /&gt;
 {&lt;br /&gt;
 	puerto_escucha = 1116&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 supervision_recarga&lt;br /&gt;
 {&lt;br /&gt;
 	to_periodo = 60&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 regexp&lt;br /&gt;
 {&lt;br /&gt;
 	hay_regexp = 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 regexp_recarga&lt;br /&gt;
 {&lt;br /&gt;
 	num_entradas = 32&lt;br /&gt;
 	inc_entradas = 128&lt;br /&gt;
 	max_entradas = 1024&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 vivaitcall&lt;br /&gt;
 {&lt;br /&gt;
 	hay_vic = 1&lt;br /&gt;
 	puerto_escucha = 5556&lt;br /&gt;
 	identif = gh_000&lt;br /&gt;
 	entorno = gh&lt;br /&gt;
 	max_conx = 4&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 vivaitcall_recarga&lt;br /&gt;
 {&lt;br /&gt;
 	to_solicitud = 10&lt;br /&gt;
 	to_desconexion = 10&lt;br /&gt;
 	ip_valida&lt;br /&gt;
 	{&lt;br /&gt;
 # Hasta 32 bloques de direcciones validas&lt;br /&gt;
 		todas&lt;br /&gt;
 		{&lt;br /&gt;
 			ip = 0.0.0.0&lt;br /&gt;
 			msk = 0.0.0.0&lt;br /&gt;
 		}&lt;br /&gt;
 		localhost&lt;br /&gt;
 		{&lt;br /&gt;
 			ip = 127.0.0.1&lt;br /&gt;
 			msk = 255.255.255.255&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 mysql&lt;br /&gt;
 {&lt;br /&gt;
 	hay_mysql = 1&lt;br /&gt;
 	host = BDTR&lt;br /&gt;
 	usuario = nimitz&lt;br /&gt;
 	clave = phikau3iwCe4O0PP5b09ng==&lt;br /&gt;
 	base_datos = nimitz&lt;br /&gt;
 } &lt;br /&gt;
 &lt;br /&gt;
 mysql_recarga&lt;br /&gt;
 {&lt;br /&gt;
 	to_resp = 5&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 gh1&lt;br /&gt;
 {&lt;br /&gt;
 	hay_gh1 = 1&lt;br /&gt;
 # umbrales para el numero de digitos de una extension&lt;br /&gt;
 # sirve para saber si un peer es una extension o un enlace&lt;br /&gt;
 	exten_min_digi = 3&lt;br /&gt;
 	exten_max_digi = 8&lt;br /&gt;
 # numero maximo de extensiones soportadas&lt;br /&gt;
 	exten_max = 500&lt;br /&gt;
 # numero maximo de enlaces soportados&lt;br /&gt;
 	enla_max = 20&lt;br /&gt;
 # numero maximo de retrollamadas activas concurrentes&lt;br /&gt;
 	retro_max = 50&lt;br /&gt;
 # numero maximo de retrollamadas activas concurrentes para una extension como destino (max 31)&lt;br /&gt;
 	retro_max_b = 4&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 gh1_recarga&lt;br /&gt;
 {&lt;br /&gt;
 # tiempo maximo en segs. para activar una retrollamada tras finalizar llamada&lt;br /&gt;
 	to_retro_candidato = 60&lt;br /&gt;
 # tiempo maximo en segs. que una retrollamada espera a que las extensiones esten libres&lt;br /&gt;
 	to_retro_activo = 300&lt;br /&gt;
 # temporizador de limpieza de tablas en segs.&lt;br /&gt;
 	to_limpiar = 10&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 ias&lt;br /&gt;
 {&lt;br /&gt;
 	hay_ias = 1&lt;br /&gt;
 	url = mdgh_rest&lt;br /&gt;
 	puerto = 8090&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 ias_recarga&lt;br /&gt;
 {&lt;br /&gt;
 # tiempo maximo en segs. para conectar con asterisk para comandos&lt;br /&gt;
 	to_conx_cmd = 10&lt;br /&gt;
 # periodo en horas para actualizar lista de id de nodos y sus direcciones ip&lt;br /&gt;
 	to_lista_nodos = 1&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== motorSal ====&lt;br /&gt;
Parte fundamental del proceso de marcación saliente, gestiona como hay que llamar a los diferentes contactos asignados a las campañas. Transforma los contactos en intentos de marcación.&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH ejecuta el comando “nc ip_maquina 1120”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1120'''&lt;br /&gt;
 motorSal sis ver='V01.4' inic='20140725 140832' alarmas=1 ultAlar='20140725 140832'&lt;br /&gt;
 motorSal gmp msj=253/256 buf=256/256 tarea=99/102&lt;br /&gt;
 motorSal tmp uptime=600165 (6d 22h 42m 45s)&lt;br /&gt;
 motorSal mtr mys=1 ocup=0% planif=28(0) intento=26(0)&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parámetro!!Descripción&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ver||Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/msj||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/buf||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/tarea||&lt;br /&gt;
|-&lt;br /&gt;
|Tmp/uptime||Tiempo que lleva corriendo&lt;br /&gt;
|-&lt;br /&gt;
|mtr/mys||Si está conectado al MySQL&lt;br /&gt;
|-&lt;br /&gt;
|mtr/ocup||Porcentaje de ocupación&lt;br /&gt;
|-&lt;br /&gt;
|mtr/planif||Contactos planificados Totales (Último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|mtr/intento||Intentos totales (Ültimo minuto)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Posee un fichero de configuración llamado ''motorSal.conf'' en la ruta '''/etc/MDtel/motorSal.conf''':&lt;br /&gt;
&lt;br /&gt;
 #&lt;br /&gt;
 # Los nombres no pueden tener numeros&lt;br /&gt;
 # Si el valor de una cadena contiene espacios, se pondra entre comillas dobles&lt;br /&gt;
 # Los valores comentados indican valores por defecto&lt;br /&gt;
 &lt;br /&gt;
 base&lt;br /&gt;
 {&lt;br /&gt;
 	cfg&lt;br /&gt;
 	{&lt;br /&gt;
 		soy_demonio = 1&lt;br /&gt;
 		hay_syslog = 0&lt;br /&gt;
 # Archivo con identificador de proceso: (-: /var/run/motorSal.pid)&lt;br /&gt;
 		archivo_pid = -&lt;br /&gt;
 # Archivo_traza: (-: stdout o /var/log/motorSal.log si soy_demonio)&lt;br /&gt;
 # No se usa si se activa hay_syslog&lt;br /&gt;
 		archivo_traza = -&lt;br /&gt;
 	}&lt;br /&gt;
 	cfg_recarga&lt;br /&gt;
 	{&lt;br /&gt;
 # Nivel_traza: (0: alarma, 1: aviso, 2: info, 3: depuAlto o 4: depuBajo)&lt;br /&gt;
 		nivel_traza = 2&lt;br /&gt;
 		pruebas = 0&lt;br /&gt;
 		hay_flush_traza = 1&lt;br /&gt;
 #		traza_milisegundos = 1&lt;br /&gt;
 	}&lt;br /&gt;
 	sis&lt;br /&gt;
 	{&lt;br /&gt;
 # No se usa. No modificar&lt;br /&gt;
 		subsistema = 0&lt;br /&gt;
 	}&lt;br /&gt;
 	gmp&lt;br /&gt;
 	{&lt;br /&gt;
 # Numero de mensajes. No modificar&lt;br /&gt;
 		num_msj = 256&lt;br /&gt;
 # Numero de buffer. No modificar&lt;br /&gt;
 		num_buf = 256&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 supervision&lt;br /&gt;
 {&lt;br /&gt;
 	puerto_escucha = 1120&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 supervision_recarga&lt;br /&gt;
 {&lt;br /&gt;
 	to_periodo = 60&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 mysql&lt;br /&gt;
 {&lt;br /&gt;
 	hay_mysql = 1&lt;br /&gt;
 	host = localhost&lt;br /&gt;
 	usuario = nimitz&lt;br /&gt;
 	clave = phikau3iwCe4O0PP5b09ng==&lt;br /&gt;
 	base_datos = nimitz&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 motor&lt;br /&gt;
 {&lt;br /&gt;
 	hay_motor = 1&lt;br /&gt;
 	ciclos_campanna_activa = 30&lt;br /&gt;
 # Directorio donde se almacenan las librerias dinamicas con las estrategias&lt;br /&gt;
 # Por defecto = '/usr/lib/motorSal/estrategias'&lt;br /&gt;
 	dir_estrategias = /usr/lib/motorSal/estrategias&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 motor_recarga&lt;br /&gt;
 {&lt;br /&gt;
 # Periodo de ejecucion del ciclo del motor&lt;br /&gt;
 	to_ciclo = 10&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 muestreo&lt;br /&gt;
 {&lt;br /&gt;
 	hay_muestreo = 1&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los campos del fichero de configuración son los siguientes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Campo !!Descripción !!Posibles valores (si aplica)&lt;br /&gt;
|-&lt;br /&gt;
|soy_demonio||Si corro como demonio o como proceso||1 demonio – 0 proceso&lt;br /&gt;
|-&lt;br /&gt;
|hay_syslog||Si hay servidor de syslog||1 lo hay – 0 no lo hay&lt;br /&gt;
|-&lt;br /&gt;
|archivo_pid||# Archivo con identificador de proceso: (-: /var/run/motorSal.pid)||&lt;br /&gt;
|-&lt;br /&gt;
|archivo_traza||# Archivo_traza: (-: stdout o /var/log/motorSal.log si soy_demonio)||&lt;br /&gt;
|-&lt;br /&gt;
|nivel_traza||# Nivel_traza: (0: alarma, 1: aviso, 2: info, 3: depuAlto o 4: depuBajo)||&lt;br /&gt;
|-&lt;br /&gt;
|pruebas||||&lt;br /&gt;
|-&lt;br /&gt;
|hay_flush_traza||||&lt;br /&gt;
|-&lt;br /&gt;
|traza_milisegundos||||&lt;br /&gt;
|-&lt;br /&gt;
|subsistema||# No se usa. No modificar||&lt;br /&gt;
|-&lt;br /&gt;
|num_msj||# Numero de mensajes. No modificar||&lt;br /&gt;
|-&lt;br /&gt;
|num_buf ||# Numero de buffer. No modificar||&lt;br /&gt;
|-&lt;br /&gt;
|puerto_escucha||Puerto de supervisión del demonio||&lt;br /&gt;
|-&lt;br /&gt;
|to_periodo||Timeout para reconectar||&lt;br /&gt;
|-&lt;br /&gt;
|hay_mysql||Hay mysql||1 hay -0 no hay&lt;br /&gt;
|-&lt;br /&gt;
|host||IP o HOST máquina base de datos de tiempo real||&lt;br /&gt;
|-&lt;br /&gt;
|usuario||Usuario acceso Base de datos de tiempo real||&lt;br /&gt;
|-&lt;br /&gt;
|clave||Clave usuario acceso base de datos de tiempo real||&lt;br /&gt;
|-&lt;br /&gt;
|base_datos||Nombre de la base de datos||&lt;br /&gt;
|-&lt;br /&gt;
|hay_motor||Si hay campañas saliente o no||1 hay motor saliente – 0 no hay motor saliente&lt;br /&gt;
|-&lt;br /&gt;
|ciclos_campanna_activa||||&lt;br /&gt;
|-&lt;br /&gt;
|dir_estrategias ||# Directorio donde se almacenan las librerias dinámicas con las estrategias||&lt;br /&gt;
|-&lt;br /&gt;
|to_ciclo||# Periodo de ejecución del ciclo del motor||&lt;br /&gt;
|-&lt;br /&gt;
|hay_muestreo||||1 hay muestreo – 0 no hay muestreo&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Respecto a los logs del motorSal consultar el siguiente apartado: [[Trazas motorSal]]. Los logs pueden verse en la ruta '''/var/log/motorSal.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== MyACDSuperv ====&lt;br /&gt;
Refleja el estado de las colas de asterisk en la base de datos; tiene sentido a efectos de estadísticas e informes, pero no a efectos de funcionamiento de la conmutación de voz.&lt;br /&gt;
&lt;br /&gt;
Es el responsable de mostrar información en las ventanes de tiempo real del supervisor.&lt;br /&gt;
&lt;br /&gt;
Es también el proceso que genera las llamadas en el marcador automático de '''''VIVA'''''it Suite.&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando “nc ip_maquina 1112”.&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1112'''&lt;br /&gt;
 myAcdSuperv SIS ver='04.6' inic='20140416 081613' alarmas=6 ultAlar='20140416 121652'&lt;br /&gt;
 myAcdSuperv AMI cnx=1 ocup=28% exten=2/2/511 asig=0/11/4095&lt;br /&gt;
 myAcdSuperv MYSQL cnx=1 ms=316&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parámetro!!Descripción&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ver||Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|AMI/cnx||Conectado (1) a asterisk&lt;br /&gt;
|-&lt;br /&gt;
|AMI/ocup||Porcentaje de ocupación de MyACDSuperv&lt;br /&gt;
|-&lt;br /&gt;
|AMI/exten||Extensiones/Extensiones/Extensiones monitorizadas|-&lt;br /&gt;
|-&lt;br /&gt;
|AMI/asig||&lt;br /&gt;
|-&lt;br /&gt;
|MYSQL/cnx||Conectado (1) a MySQL&lt;br /&gt;
|-&lt;br /&gt;
|MYSQL/ms||Tiempo de última operación en ejecutarse&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/myAcdSuperv.cnf'''&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/myAcdSuperv.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Proceso escoba ====&lt;br /&gt;
El proceso escoba se encarga de resolver y consolidar todos aquellos segmentos de grabación que han quedado almacenados en los gateways por falta de información o incoherencias. Existen dos tipos de procesos escobas:&lt;br /&gt;
# Proceso escoba perteneciente a nodo con agente de grabación (recordNodo) llamado '''''escobaGW.pl'''''.&lt;br /&gt;
# Proceso escoba perteneciente o no a un servidor de grabación (recordCentral) llamado '''''escobaGrabsBd.pl'''''.&lt;br /&gt;
&lt;br /&gt;
===== escobaGW.pl =====&lt;br /&gt;
Proceso que se ejecuta en los nodos busca en el disco RAM , las grabaciones de segmentos cuya antigüedad sea superior a mas de un día, es decir, si el proceso por ejemplo se ejecuta a la 01:00 a.m. del día 24/03/2016 buscara todas aquellas grabacionesn de segmentos realizadas antes de la 01:00 a.m del día 22/03/2016.&lt;br /&gt;
Una vez realizada la busqueda, obtendra el UCID a traves del nombre del fichero, y comprobara su correspondencia con la tabla DAT_LLAMADAS. Si existe una llamada con ese UCID, cambiara el estado de la llamada para que sea procesada correctamente. En caso contrario, es movida a la carpeta ''/var/lib/recordNodo/grabError''.&lt;br /&gt;
&lt;br /&gt;
===== escobaGrabsBd.pl =====&lt;br /&gt;
Se ejecuta sobre la base de datos de histórico, normalmente se ejecuta en un servidor de grabación (recordCentral). El proceso hace una búsqueda en dos tablas:&lt;br /&gt;
* En DAT_SEGMENTOS obtiene todos aquellos segmentos con grabaciones que dieron error, su estado tendrá valor 120.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
* En DAT_LLAMADAS obtendremos todos los registros correspondiente al segmentos anteriores.&lt;br /&gt;
Después hace una búsqueda en el sistema, usando como ruta el campo D_HORA_INICIO de cada llamada, que indica la ruta entera donde se encuentra el archivo. Una vez encontrado el archivo cambia el estado del segmento que tenia un error a estado de grabación disponible , que tendrá valor 100. Si no encontramos el segmento, no realizara nada.&lt;br /&gt;
&lt;br /&gt;
==== recordCentral ====&lt;br /&gt;
Se considera como un servidor de grabaciones. Todas las grabaciones de llamadas son un activo importante y una empresa con Contact Center pueda recibir millones de llamadas que necesitan estar registradas y almacenadas en discos duros con gran capacidad, las máquinas donde suelen alojarse estos servidores poseen discos duros limitados, lo que hace necesario en algunos casos incorporar ''dispositivos NAS''.&lt;br /&gt;
&lt;br /&gt;
Los ''dispositivos NAS'' son dispositivos de almacenamiento conectados a una red que permite el almacenamiento y la recuperación de datos desde una ubicación centralizada, flexibles y escalables, lo que significa que a medida que necesite almacenamiento adicional, puede añadirlo al que tiene. Esto no significa que sea necesario tener ''dispositivos NAS'' para funcionar, sino que puede tomar datos de diferentes sitios.&lt;br /&gt;
&lt;br /&gt;
En '''recordCentral''' pueden existir tres tipos de dispositivos NAS:&lt;br /&gt;
* Uno dedicado para las llamadas &lt;br /&gt;
* Uno dedicado para los segmentos &lt;br /&gt;
* Uno mixto para todas las llamadas y segmentos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El '''recordCentral''' se encarga de recoger todas las grabaciones de segmentos que tienen de estado proceso(3) en cada nodo gestionado, es decir, coger aquellos segmentos de llamadas marcados como llamadas disponibles, intenta descargar los segmentos de las llamadas y convertirlas al formato adecuado (MP3).&lt;br /&gt;
Como una característica particular cada diez minutos, siempre que no tenga ninguna otra tarea, intenta ver si puede establecer conexión con un nodo en cuarentena, para sacarlos de cuarentena y recoger todas las grabaciones de segmentos disponibles, para intentar convertir y descargar todas las grabaciones.  &lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando '''''nc ip_maquina 1114''''' en la maquina donde creamos que debe estar ejecutando el proceso recordCentral. Ejemplo:&lt;br /&gt;
 '''root@smadavacdrecord1:~# nc localhost 1114'''&lt;br /&gt;
 recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423 160112'&lt;br /&gt;
 recordCentral MYSQL cnx=1&lt;br /&gt;
 recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
 recordCentral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
 recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10'&lt;br /&gt;
La explicación de los campos se muestra en la tabla siguiente:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parámetro !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ver || Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/inic || Fecha de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/alarmas || Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ultAlar || Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
| MYSQL/cnx || Conectado (1) a MySQL&lt;br /&gt;
|-&lt;br /&gt;
| NAS/llamadas || Alojamiento en NAS de llamadas activo (grabación de llamada completa en un único archivo)&lt;br /&gt;
|-&lt;br /&gt;
| NAS/segmentos || Alojamiento en NAS de segmentos activo&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamNum || Llamadas procesadas&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamErr || Llamadas con error&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmNum || Segmentos procesados&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmErr || Segmentos con error&lt;br /&gt;
|-&lt;br /&gt;
| NODO/fase  || Número de proceso de recordCentral&lt;br /&gt;
|-&lt;br /&gt;
| NODO/cuarentena  || Lista de nodos en cuarentena, separada por comas&lt;br /&gt;
|-&lt;br /&gt;
| NODO/descarga || Lista de nodos en descarga, separada por comas&lt;br /&gt;
|-&lt;br /&gt;
| NODO/gestion || Lista de nodos gestionados, separada por comas (cuarentena + descarga = gestión)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/recordCentral.pconf'''&lt;br /&gt;
&lt;br /&gt;
El fichero es el siguiente:&lt;br /&gt;
 &lt;br /&gt;
 #&lt;br /&gt;
 # Configuracion de recordCentral.pl&lt;br /&gt;
 #&lt;br /&gt;
 # 0: Solo alarmas en archivo log - 1: alarmas y trazas&lt;br /&gt;
 $depurar = 1; &lt;br /&gt;
 &lt;br /&gt;
 # 0: Arranca como proceso - 1: arranca como demonio&lt;br /&gt;
 $soyDemonio = 1;&lt;br /&gt;
 &lt;br /&gt;
 # Archivo de log ('': salida estandar)&lt;br /&gt;
 $logArch = '/var/log/record/recordCentral.log';&lt;br /&gt;
 &lt;br /&gt;
 # Archivo para el pid (eliminando el .pid final)&lt;br /&gt;
 $pidArch = '/var/run/record/recordCentral';&lt;br /&gt;
 &lt;br /&gt;
 # 0: El programa se ejecuta indefinidamente - 1: solo una vez (util en depuracion)&lt;br /&gt;
 $unaVezSolo = 0;&lt;br /&gt;
 &lt;br /&gt;
 # Tiempo de espera en segundos cuando no hay conexion o cuando no hay llamadas&lt;br /&gt;
 $toBucle = 10;&lt;br /&gt;
 &lt;br /&gt;
 # Bytes por segundo en archivos de grabaciones&lt;br /&gt;
 $bytesPorSegundo = 16000;&lt;br /&gt;
 &lt;br /&gt;
 # Bytes a leer en cada accceso a disco&lt;br /&gt;
 $bytesLeerBuf = 1048576;&lt;br /&gt;
 &lt;br /&gt;
 # Conexion de base de datos&lt;br /&gt;
 $db='nimitz';&lt;br /&gt;
 $dbHost = 'BDTR';&lt;br /&gt;
 $dbPort = '3306';&lt;br /&gt;
 $dbUsuario = 'nimitz';&lt;br /&gt;
 $dbClave = 'ivivanimitz';&lt;br /&gt;
 &lt;br /&gt;
 # Configuracion de la supervision&lt;br /&gt;
 $supPort = '1114';&lt;br /&gt;
 &lt;br /&gt;
 # Configuracion de archivos con grabaciones (Orig en nodo)&lt;br /&gt;
 $grabHay = 0;&lt;br /&gt;
 $grabAudioCalidad = 32;&lt;br /&gt;
 $grabAudioFormato = 'mp3';&lt;br /&gt;
 $grabAudioExten = 'mp3';&lt;br /&gt;
 $grabAudioCifrado = 0;&lt;br /&gt;
 $grabRutaUsaTimestamp = 1;&lt;br /&gt;
 $grabRutaOrig = '/var/lib/recordNodo/grabaciones';&lt;br /&gt;
 $grabRutaTmp = '/var/lib/recordProcesad/grabTmp';&lt;br /&gt;
 $grabRutaDest = '/var/lib/recordProcesad/grabRecord';&lt;br /&gt;
 $grabRutaError = '/var/lib/recordProcesad/grabError';&lt;br /&gt;
 $segmHay = 1;&lt;br /&gt;
 $segmUmbralTiempo = 10;&lt;br /&gt;
 $segmMargenTiempo = 5;&lt;br /&gt;
 $segmAudioCalidad = 32;&lt;br /&gt;
 $segmAudioFormato = 'mp3';&lt;br /&gt;
 $segmAudioExten = 'mp3';&lt;br /&gt;
 $segmAudioCifrado = 0;&lt;br /&gt;
 $segmRutaUsaTimestamp = 1;&lt;br /&gt;
 $segmRutaTmp = '/var/lib/recordProcesad/segmTmp';&lt;br /&gt;
 $segmRutaDest = '/var/lib/recordProcesad/segmRecord';&lt;br /&gt;
 $segmRutaError = '/var/lib/recordProcesad/segmError';&lt;br /&gt;
 &lt;br /&gt;
 # Seleccion de tipos de segmento a grabar separados por comas ('' = todos)&lt;br /&gt;
 $tiposSegmentoGrabar = '';&lt;br /&gt;
 &lt;br /&gt;
 # Indica si se graba ring&lt;br /&gt;
 $grabarRing = 0;&lt;br /&gt;
 &lt;br /&gt;
 # Minino numero de segundos para generar segmento externo&lt;br /&gt;
 $segmExternoMinSegs = 10;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Los campos del fichero de configuración son los siguientes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Campo !!Descripción !!Posibles valores (si aplica)&lt;br /&gt;
|-&lt;br /&gt;
|recordCentral.pconf|| || &lt;br /&gt;
|-&lt;br /&gt;
|Variable a modificar||Comentarios||&lt;br /&gt;
|-&lt;br /&gt;
|$depurar||# 0: Solo alarmas en archivo log - 1: alarmas y trazas||&lt;br /&gt;
|-&lt;br /&gt;
|$soyDemonio||# 0: Arranca como proceso - 1: arranca como demonio||&lt;br /&gt;
|-&lt;br /&gt;
|$logArch =||# Archivo de log ('': salida estandar)||&lt;br /&gt;
|-&lt;br /&gt;
|$pidArch||# Archivo para el pid (eliminando el .pid final)||&lt;br /&gt;
|-&lt;br /&gt;
|$unaVezSolo||# 0: El programa se ejecuta indefinidamente - 1: solo una vez (util en depuracion)||&lt;br /&gt;
|-&lt;br /&gt;
|$toBucle||# Tiempo de espera en segundos cuando no hay conexion o cuando no hay llamadas||&lt;br /&gt;
|-&lt;br /&gt;
|$bytesPorSegundo||# Bytes por segundo en archivos de grabaciones||&lt;br /&gt;
|-&lt;br /&gt;
|$bytesLeerBuf||# Bytes a leer en cada accceso a disco||&lt;br /&gt;
|-&lt;br /&gt;
|$db||Nombre de la base de datos||&lt;br /&gt;
|-&lt;br /&gt;
|$dbHost||IP o HOST máquina base de datos de tiempo real||&lt;br /&gt;
|-&lt;br /&gt;
|$dbPort||Puerto de escucha de mysql||&lt;br /&gt;
|-&lt;br /&gt;
|$dbUsuario||Usuario acceso Base de datos de tiempo real||&lt;br /&gt;
|-&lt;br /&gt;
|$dbClave||Clave usuario acceso base de datos de tiempo real||&lt;br /&gt;
|-&lt;br /&gt;
|$supPort ||Puerto de supervision del demonio||&lt;br /&gt;
|-&lt;br /&gt;
|$grabHay||Hay fase de enrutamiento o no||&lt;br /&gt;
|-&lt;br /&gt;
|$grabAudioCalidad||Calidad del audio ||&lt;br /&gt;
|-&lt;br /&gt;
|$grabAudioFormato||Formato del archivo de grabacion||&lt;br /&gt;
|-&lt;br /&gt;
|$grabAudioExten||Extensión del archivo de grabacion||&lt;br /&gt;
|-&lt;br /&gt;
|$grabAudioCifrado||Si el archivo de grabación va cifrado ||&lt;br /&gt;
|-&lt;br /&gt;
|$grabRutaUsaTimestamp||||&lt;br /&gt;
|-&lt;br /&gt;
|$grabRutaOrig||# Directorio donde se localizan las grabaciones de llamadas||&lt;br /&gt;
|-&lt;br /&gt;
|$grabRutaTmp||Directorio temporal de las grabaciones de llamadas||&lt;br /&gt;
|-&lt;br /&gt;
|$grabRutaDest||# Directorio Destino de  las grabaciones de llamadas||&lt;br /&gt;
|-&lt;br /&gt;
|$grabRutaError||# Directorio  de  las grabaciones de llamadas con error||&lt;br /&gt;
|-&lt;br /&gt;
|$segmHay||Hay segmentos||1 hay segmentos – 0 no hay&lt;br /&gt;
|-&lt;br /&gt;
|$segmUmbralTiempo||||&lt;br /&gt;
|-&lt;br /&gt;
|$segmMargenTiempo||Tiempo que se coge antes y despues del segmento||&lt;br /&gt;
|-&lt;br /&gt;
|$segmAudioCalidad||Calidad del audio ||&lt;br /&gt;
|-&lt;br /&gt;
|$segmAudioFormato||Formato del archivo de grabacion||&lt;br /&gt;
|-&lt;br /&gt;
|$segmAudioExten||Extensión del archivo de grabación||&lt;br /&gt;
|-&lt;br /&gt;
|$segmAudioCifrado||Si el archivo de grabación va cifrado ||1 se cifra – 0 no se cifra&lt;br /&gt;
|-&lt;br /&gt;
|$segmRutaUsaTimestamp||||&lt;br /&gt;
|-&lt;br /&gt;
|$segmRutaTmp ||Ruta temporal||&lt;br /&gt;
|-&lt;br /&gt;
|$segmRutaDest = ||Ruta donde se almacenan los archivos de grabación||&lt;br /&gt;
|-&lt;br /&gt;
|$segmRutaError||Ruta de los archivos de grabación con error||&lt;br /&gt;
|-&lt;br /&gt;
|$tiposSegmentoGrabar||# Selección de tipos de segmento a grabar separados por comas ('' = todos)||&lt;br /&gt;
|-&lt;br /&gt;
|$grabarRing||# Indica si se graba ring||1 se graba – 0 no se graba&lt;br /&gt;
|-&lt;br /&gt;
|$segmExternoMinSegs||# Mínino número de segundos para generar segmento externo||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:Se explican a continuación las variables más importantes del proceso RecordCentral:&lt;br /&gt;
&lt;br /&gt;
# Conexion de base de datos&lt;br /&gt;
$db='nimitz';&lt;br /&gt;
$dbHost = 'BDTR';&lt;br /&gt;
$dbPort = '3306';&lt;br /&gt;
$dbUsuario = 'nimitz';&lt;br /&gt;
$dbClave = 'ivivanimitz';&lt;br /&gt;
&lt;br /&gt;
# Configuracion de archivos con grabaciones (Orig en nodo)&lt;br /&gt;
$grabHay = 0;&lt;br /&gt;
$grabAudioCalidad = 32;&lt;br /&gt;
$grabAudioFormato = 'ogg';&lt;br /&gt;
$grabAudioExten = 'ogg';&lt;br /&gt;
$grabAudioCifrado = 0;&lt;br /&gt;
$grabRutaUsaTimestamp = 1;&lt;br /&gt;
$grabRutaOrig = '/var/lib/recordNodo/grabaciones';&lt;br /&gt;
$grabRutaTmp = '/var/lib/recordProcesad/grabTmp';&lt;br /&gt;
$grabRutaDest = '/var/lib/recordProcesad/grabRecord';&lt;br /&gt;
$grabRutaError = '/var/lib/recordProcesad/grabError';&lt;br /&gt;
$segmHay = 1;&lt;br /&gt;
$segmUmbralTiempo = 10;&lt;br /&gt;
$segmMargenTiempo = 5;&lt;br /&gt;
$segmAudioCalidad = 32;&lt;br /&gt;
$segmAudioFormato = 'ogg';&lt;br /&gt;
$segmAudioExten = 'ogg';&lt;br /&gt;
$segmAudioCifrado = 0;&lt;br /&gt;
$segmRutaUsaTimestamp = 1;&lt;br /&gt;
$segmRutaTmp = '/var/lib/recordProcesad/segmTmp';&lt;br /&gt;
$segmRutaDest = '/var/lib/recordProcesad/segmRecord';&lt;br /&gt;
$segmRutaError = '/var/lib/recordProcesad/segmError';&lt;br /&gt;
&lt;br /&gt;
# Seleccion de tipos de segmento a grabar separados por comas ('' = todos)&lt;br /&gt;
$tiposSegmentoGrabar = '';&lt;br /&gt;
&lt;br /&gt;
# Indica si se graba ring&lt;br /&gt;
$grabarRing = 0;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/recordCentral.log'''&lt;br /&gt;
&amp;lt;!-- En la versión 3.6.0. del instalador se adjuntan los siguientes archivos en el paquete recordCentral:&lt;br /&gt;
&lt;br /&gt;
borraGrabaciones.pconf: Debe colocarse en /etc/MDtel y contiene los datos de acceso a BBDD así como los días de caducidad de las grabaciones.&lt;br /&gt;
borraGrabaciones.pl: El script. Se ejecuta con el archivo de configuración como parámetro (mueveGrabaciones.pl /etc/MDtel/mueveGrabaciones.pconf)&lt;br /&gt;
borraGrabaciones: Fichero cron. Contiene la programación del script. Debe colocarse en /etc/cron.d&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== recordNodo ====&lt;br /&gt;
Se considera como proceso con función de agente de grabación para un nodo. Solo debe existir uno por maquina o por nodo (configurado como grabador) en el '''portal de administración de ''VIVA''it'''.&lt;br /&gt;
&lt;br /&gt;
Para su funcionamiento utiliza un ''disco RAM''  por que su tiempo de acceso mejora drásticamente, debido a que la memoria RAM es varios órdenes de magnitud más rápida que las unidades de disco reales, haciendo que la velocidad de procesamiento de las grabaciones sea mucho mas rápida.&lt;br /&gt;
&lt;br /&gt;
Este ''disco RAM'' normalmente ocupa la mitad de la memoria RAM de una maquina pero no es obligatorio pues dependerá de la memoria disponible en cada maquina, y además, se configura con un tamaño no superior a 2GB de memoria RAM. Hay que tener especial cuidado en que no se llene en espacio  ni tampoco los i-nodos. Se puede  monitorizar a través de la aplicación '''zabbix'''.&lt;br /&gt;
&lt;br /&gt;
El '''''recordNodo''''' se encarga de recoger todas las grabaciones de segmentos que tienen de estado  ''proceso(2)'', es decir, aquellos segmentos de llamadas que han sido grabadas pero no están siendo procesadas, moviéndolas del ''disco RAM'' a su carpeta correspondiente.&lt;br /&gt;
&lt;br /&gt;
La forma de obtener la carpeta correspondiente es obteniendo el dato del campo D_HORA_INICIO en la tabla DAT_LLAMADAS para cada segmento,tras un tratamiento del campo creara la subruta correspondientes: /año/mes/dia/hora/min. Entonces, la ruta correcta seria /var/lib/recordNodo/grabaciones/año/mes/dia/hora/min, donde año, mes, dia , hora y min son los valores numéricos obtenidos del campo D_HORA_INICIO.&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando '''''nc ip_maquina 1113''''' en la maquina donde creamos que debe estar ejecutando el proceso recordNodo:&lt;br /&gt;
&lt;br /&gt;
 root@smadavgw5:~#nc localhost 1113&lt;br /&gt;
 recordNodo SIS ver='04.00.00' inic='20160326 105137' alarmas=2 ultAlar='20160326 105542'&lt;br /&gt;
 recordNodo MYSQL cnx=1&lt;br /&gt;
 recordNodo REC grabNum=0 grabErr=0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La explicación de los campos se muestra en la tabla siguiente:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parámetro  !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ver || Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/inic  || Fecha de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/amarmas || Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ultAlar || Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
| MYSQL/cnx || Conectado (1) a MySQL&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamNum || Llamadas procesadas&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamErr || Llamadas con error&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmNum || Segmentos procesados&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmErr || Segmentos con error&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/recordNodo.pconf'''&lt;br /&gt;
:Se muestra a continuación el fichero de configuración:&lt;br /&gt;
 &lt;br /&gt;
 #&lt;br /&gt;
 # Configuracion de recordNodo.pl&lt;br /&gt;
 #&lt;br /&gt;
 # 0: Solo alarmas en archivo log - 1: alarmas y trazas&lt;br /&gt;
 $depurar = 1;&lt;br /&gt;
 &lt;br /&gt;
 # 0: Arranca como proceso - 1: arranca como demonio&lt;br /&gt;
 $soyDemonio = 1;&lt;br /&gt;
 &lt;br /&gt;
 # Archivo de log ('': salida estandar)&lt;br /&gt;
 $logArch = '/var/log/record/recordNodo.log';&lt;br /&gt;
 &lt;br /&gt;
 # Archivo para el pid (eliminando el .pid final)&lt;br /&gt;
 $pidArch = '/var/run/record/recordNodo';&lt;br /&gt;
 &lt;br /&gt;
 # 0: El programa se ejecuta indefinidamente - 1: solo una vez (util en depuracion)&lt;br /&gt;
 $unaVezSolo = 0;&lt;br /&gt;
 &lt;br /&gt;
 # Tiempo de espera en segundos cuando no hay conexion o cuando no hay llamadas&lt;br /&gt;
 $toBucle = 5;&lt;br /&gt;
 &lt;br /&gt;
 # Tiempo de guarda en segundos desde D_HORA_FIN hasta que se procesa llamada&lt;br /&gt;
 $toProcesar = 30;&lt;br /&gt;
 &lt;br /&gt;
 # Bytes por segundo en archivos de grabaciones&lt;br /&gt;
 $bytesPorSegundo = 16000;&lt;br /&gt;
 &lt;br /&gt;
 # Bytes a leer en cada accceso a disco&lt;br /&gt;
 $bytesLeerBuf = 1048576;&lt;br /&gt;
 &lt;br /&gt;
 # Conexion de base de datos&lt;br /&gt;
 $db='nimitz';&lt;br /&gt;
 $dbHost = 'BDTR';&lt;br /&gt;
 $dbPort = '3306';&lt;br /&gt;
 $dbUsuario = 'nimitz';&lt;br /&gt;
 $dbClave = 'ivivanimitz';&lt;br /&gt;
 &lt;br /&gt;
 # Configuracion de la supervision&lt;br /&gt;
 $supPort = '1113';&lt;br /&gt;
 &lt;br /&gt;
 # Quien es mi nodo para filtrar grabaciones&lt;br /&gt;
 $miNodo = 2;&lt;br /&gt;
 &lt;br /&gt;
 # Directorio donde se localizan las grabaciones&lt;br /&gt;
 $grabRutaOrig = '/var/spool/asterisk/monitor';&lt;br /&gt;
 $grabRutaDest = '/var/lib/recordNodo/grabaciones';&lt;br /&gt;
 $grabRutaError = '/var/lib/recordNodo/grabError';&lt;br /&gt;
 $grabRutaUsaTimestamp = 1;&lt;br /&gt;
 &lt;br /&gt;
 # Tiempo en segundos limite a truncar en las grabaciones (0=sin limite)&lt;br /&gt;
 $grabLimiteSegs = 0;&lt;br /&gt;
 &lt;br /&gt;
 # Indica si se procesan segmentos de tipo tipoSegmEliminarGrabacion y patron eliminacion&lt;br /&gt;
 $segmEliminarGrabacionTrato = 1;&lt;br /&gt;
 $patronEliminarGrabacion = '/etc/MDtel/null.bin';&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
*A continuación se indican los campos del fichero:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Campo !!Descripción !!Posibles valores (si aplica)&lt;br /&gt;
|-&lt;br /&gt;
|$depurar||# 0: Solo alarmas en archivo log - 1: alarmas y trazas||&lt;br /&gt;
|-&lt;br /&gt;
|$soyDemonio||# 0: Arranca como proceso - 1: arranca como demonio||&lt;br /&gt;
|-&lt;br /&gt;
|$logArch||# Archivo de log ('': salida estandar)||&lt;br /&gt;
|-&lt;br /&gt;
|$pidArch||# Archivo para el pid (eliminando el .pid final)||&lt;br /&gt;
|-&lt;br /&gt;
|$unaVezSolo||# 0: El programa se ejecuta indefinidamente - 1: solo una vez (util en depuracion)||&lt;br /&gt;
|-&lt;br /&gt;
|$toBucle||# Tiempo de espera en segundos cuando no hay conexion o cuando no hay llamadas||&lt;br /&gt;
|-&lt;br /&gt;
|$toProcesar||# Tiempo de guarda en segundos desde D_HORA_FIN hasta que se procesa llamada||&lt;br /&gt;
|-&lt;br /&gt;
|$bytesPorSegundo||# Bytes por segundo en archivos de grabaciones||&lt;br /&gt;
|-&lt;br /&gt;
|$bytesLeerBuf||# Bytes a leer en cada accceso a disco||&lt;br /&gt;
|-&lt;br /&gt;
|$db||Nombre de la base de datos||&lt;br /&gt;
|-&lt;br /&gt;
|$dbHost||IP o HOST máquina base de datos de tiempo real||&lt;br /&gt;
|-&lt;br /&gt;
|$dbPort||Puerto de escucha de mysql||&lt;br /&gt;
|-&lt;br /&gt;
|$dbUsuario||Usuario acceso Base de datos de tiempo real||&lt;br /&gt;
|-&lt;br /&gt;
|$dbClave||Clave usuario acceso base de datos de tiempo real||&lt;br /&gt;
|-&lt;br /&gt;
|$supPort||Puerto de supervision del demonio||&lt;br /&gt;
|-&lt;br /&gt;
|$miNodo||# Quien es mi nodo para filtrar grabaciones||&lt;br /&gt;
|-&lt;br /&gt;
|$grabRutaOrig||# Directorio donde se localizan las grabaciones||&lt;br /&gt;
|-&lt;br /&gt;
|$grabRutaDest ||Directorio destino de las grabaciones procesadas||&lt;br /&gt;
|-&lt;br /&gt;
|$grabRutaError||Directorio destino de las grabacionescon error||&lt;br /&gt;
|-&lt;br /&gt;
|$grabRutaUsaTimestamp||||&lt;br /&gt;
|-&lt;br /&gt;
|$grabLimiteSegs||# Tiempo en segundos limite a truncar en las grabaciones (0=sin limite)||&lt;br /&gt;
|-&lt;br /&gt;
|$segmEliminarGrabacionTrato||# Indica si se procesan segmentos de tipo tipoSegmEliminarGrabacion y patron eliminacion||1 se procesa – 0 no se procesa&lt;br /&gt;
|-&lt;br /&gt;
|$patronEliminarGrabacion||Patron de eliminacion||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:Se muestran a continuación las variables que son modificadas con mayor frecuencia:&lt;br /&gt;
# Conexion de base de datos&lt;br /&gt;
$db='nimitz';&lt;br /&gt;
$dbHost = 'BDTR';&lt;br /&gt;
$dbPort = '3306';&lt;br /&gt;
$dbUsuario = 'nimitz';&lt;br /&gt;
$dbClave = 'ivivanimitz';&lt;br /&gt;
&lt;br /&gt;
# Quien es mi nodo para filtrar grabaciones&lt;br /&gt;
$miNodo = 1;&lt;br /&gt;
&lt;br /&gt;
# Indica si se procesan segmentos de tipo tipoSegmEliminarGrabacion y patron eliminación&lt;br /&gt;
$segmEliminarGrabacionTrato = 1;&lt;br /&gt;
$patronEliminarGrabacion = '/etc/MDtel/null.bin';&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/recordNodo.log'''&lt;br /&gt;
&lt;br /&gt;
==== Vivait-CTI ====&lt;br /&gt;
Permite la comunicación entre la aplicación '''''VIVA'''''it Desk de agente y el asterisk, sincronizando; convierte el protocolo “asterisk manager” a CSTA ('''''VIVA'''''it Desk “habla” CSTA).&lt;br /&gt;
&lt;br /&gt;
Es un proceso importante para que el uso de '''''VIVA'''''it Desk, y que los agentes puedan realizar su operativa normal con la entrada y salida de llamadas… si bien el cursado telefónico de llamadas es factible, no disponer de las facilidades de '''''VIVA'''''it Desk y formularios hace el sistema difícilmente manejable&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando “nc ip_maquina 1111”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1111'''&lt;br /&gt;
 vivait-cti sis ver='V01.5' inic='20140414 104312' alarmas=13 ultAlar='20140415 173152'&lt;br /&gt;
 vivait-cti gmp msj=1018/1024 buf=1023/1024 tarea=97/102&lt;br /&gt;
 vivait-cti tmp uptime=694748 (8d 0h 59m 8s)&lt;br /&gt;
 vivait-cti cti numConx=(0/511) numPend=(0/127) numMakeCallPend=0 numCall=(0/2047)&lt;br /&gt;
 numChan=(0/4095) numAuxStr=(0/511) numMoniColas=(0/511) numMoniDevice=0&lt;br /&gt;
 numMoniCall=0 numMoniCallAuto=0 numMoniCallByDevice=0 numMoni=(0/511)&lt;br /&gt;
 auditCallErr=0 auditAuxStrErr=0 auditMsjReqErr=0 araChanID=0 araUniqueID=0 araMoni=0&lt;br /&gt;
 vivait-cti ami esta=conx resp=652(0) evs=1397(0) descar=556(0) err=16 errConx=16&lt;br /&gt;
 numAct(0/0/127) auditErrAct=0&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!ver!!Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|sis/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|Sis/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|Sis/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/msj||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/buf||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/tarea||&lt;br /&gt;
|-&lt;br /&gt;
|Tmp/uptime||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numConx||Número de conexiones actuales / Número de conexiones máximo&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numPend||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMakeCallPend||Llamadas pendientes de realizar&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numcall||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numChan||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numAuxStr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniColas||Número de colas monitorizadas&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniDevice||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniCall||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniCallAuto||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniCallByDevice||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoni||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/auditCallErr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/auditAuxStrErr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ auditMsjReqErr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ araChanID||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ araUniqueID||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ araMoni||&lt;br /&gt;
|-&lt;br /&gt;
|Ami/esta||Estado de conexión contra manarger de asterisk&lt;br /&gt;
|-&lt;br /&gt;
|Ami/resp||&lt;br /&gt;
|-&lt;br /&gt;
|Ami/evs||Número de eventos (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
||Ami/descar&lt;br /&gt;
|-&lt;br /&gt;
|Ami/err||Errores&lt;br /&gt;
|-&lt;br /&gt;
|Ami/errConx||Errores de conexión&lt;br /&gt;
|-&lt;br /&gt;
|Ami/numAct||&lt;br /&gt;
|-&lt;br /&gt;
|Ami/auditErrAct||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
&lt;br /&gt;
Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/vivait-cti.conf'''&lt;br /&gt;
&lt;br /&gt;
*El fichero de configuración, '''vivait-cti.conf''', es el siguiente:&lt;br /&gt;
&lt;br /&gt;
 #&lt;br /&gt;
 # Los nombres no pueden tener numeros&lt;br /&gt;
 # Si el valor de una cadena contiene espacios, se pondra entre comillas dobles&lt;br /&gt;
 # Los valores comentados indican valores por defecto&lt;br /&gt;
 &lt;br /&gt;
 base&lt;br /&gt;
 {&lt;br /&gt;
 	cfg&lt;br /&gt;
 	{&lt;br /&gt;
 		soy_demonio = 1&lt;br /&gt;
 		hay_syslog = 0&lt;br /&gt;
 # Archivo con identificador de proceso: (-: /var/run/vivait-cti.pid)&lt;br /&gt;
 		archivo_pid = -&lt;br /&gt;
 # Archivo_traza: (-: stdout o /var/log/vivait-cti.log si soy_demonio)&lt;br /&gt;
 # No se usa si se activa hay_syslog&lt;br /&gt;
 		archivo_traza = -&lt;br /&gt;
 	}&lt;br /&gt;
 	cfg_recarga&lt;br /&gt;
 	{&lt;br /&gt;
 # Nivel_traza: (0: alarma, 1: aviso, 2: info, 3: depuAlto o 4: depuBajo)&lt;br /&gt;
 		nivel_traza = 3&lt;br /&gt;
 		pruebas = 1&lt;br /&gt;
 		hay_flush_traza = 1&lt;br /&gt;
 	}&lt;br /&gt;
 	sis&lt;br /&gt;
 	{&lt;br /&gt;
 # No se usa. No modificar&lt;br /&gt;
 		subsistema = 0&lt;br /&gt;
 	}&lt;br /&gt;
 	gmp&lt;br /&gt;
 	{&lt;br /&gt;
 # Numero de mensajes. No modificar&lt;br /&gt;
 		num_msj = 1024&lt;br /&gt;
 # Numero de buffer. No modificar&lt;br /&gt;
 		num_buf = 1024&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 supercolas&lt;br /&gt;
 {&lt;br /&gt;
 	en_comandos = 0&lt;br /&gt;
 	en_eventos = 0&lt;br /&gt;
 #	archivo_conf = supercolas.conf&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 supervision&lt;br /&gt;
 {&lt;br /&gt;
 	puerto_escucha = 1111&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 cti&lt;br /&gt;
 {&lt;br /&gt;
 	hay_cti = 1&lt;br /&gt;
 # Dimensionamiento de recursos. Uno menos, ya que cero no vale&lt;br /&gt;
 	max_conx = 512&lt;br /&gt;
 	max_call = 2048&lt;br /&gt;
 	max_channel = 4096&lt;br /&gt;
 	max_monitor = 512&lt;br /&gt;
 	max_str_aux = 512&lt;br /&gt;
 	puerto_escucha = 4500&lt;br /&gt;
 	link_id = 1&lt;br /&gt;
 #&lt;br /&gt;
 	hay_vdn = 1&lt;br /&gt;
 	hay_usuarios = 1&lt;br /&gt;
 	usuarios&lt;br /&gt;
 	{&lt;br /&gt;
 		vivait&lt;br /&gt;
 		{&lt;br /&gt;
 			clave = 3RSMbPlTi61rG5pySx9hhUokz8Fyy3Nql2w8Jairfl8=&lt;br /&gt;
 			ip = 0.0.0.0&lt;br /&gt;
 			msk = 0.0.0.0&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 } &lt;br /&gt;
 &lt;br /&gt;
 cti_recarga&lt;br /&gt;
 {&lt;br /&gt;
 	makeCall_primero_dentro = 1&lt;br /&gt;
 	makeCall_primero_fuera_agente_descuelga = 1&lt;br /&gt;
 	temporizador_makeCall = 30&lt;br /&gt;
 	fmt_canal_exten = SIP/%s&lt;br /&gt;
 # contextos para llamadas salientes makeCall y makePredictiveCal&lt;br /&gt;
 	contexto_makeCall_primeroFuera = Cen_MakeCallPrimeroFuera&lt;br /&gt;
 	contexto_makeCall_primeroFueraDentro = Cen_MakeCallPrimeroFueraDentro&lt;br /&gt;
 	contexto_makeCall_primeroDentro = Cen_MakeCallPrimeroDentro&lt;br /&gt;
 # contextos para llamadas salientes desde myAcdSuperv&lt;br /&gt;
 	contexto_myAcdSuperv_ProgreFuera = Cen_myAcdSuperv_ProgreFuera&lt;br /&gt;
 	contexto_myAcdSuperv_ProgreDentro = Cen_myAcdSuperv_ProgreDentro&lt;br /&gt;
 	contexto_myAcdSuperv_PredicFuera = Cen_myAcdSuperv_PredicFuera&lt;br /&gt;
 	contexto_myAcdSuperv_PredicDentro = Cen_myAcdSuperv_PredicDentro&lt;br /&gt;
 # contexto para transferencias&lt;br /&gt;
 	contexto_redirect = Cen_Redirect&lt;br /&gt;
 # expresiones regulares. se evaluan en el orden indicado&lt;br /&gt;
 	expr_esExtenLocal = ^(4)[0-9]{4}$&lt;br /&gt;
 	expr_esExtenInterna = -&lt;br /&gt;
 	expr_esCola = ^(8)[0-9]{4}$&lt;br /&gt;
 	expr_esPuntoDistribucion = ^(9)[0-9]{4}$&lt;br /&gt;
 	expr_esPuntoEnrutamiento = -&lt;br /&gt;
 	expr_esNumPrivateLocal = ^[369][0-9][0-9][0-9][0-9]$&lt;br /&gt;
 	expr_esNumPrivateUnknown = ^[369]&lt;br /&gt;
 	expr_esNumPublicNational = ^0?[69][0-9]{8}$&lt;br /&gt;
 	expr_esNumPublicInternational = ^000[0-9]*&lt;br /&gt;
 # resto siempre esNumPublicUnknown&lt;br /&gt;
 #&lt;br /&gt;
 	audit_hay_Call = 1&lt;br /&gt;
 	audit_call_minutContestada = 60&lt;br /&gt;
 	audit_call_minutNoContestada = 5&lt;br /&gt;
 	audit_hay_AuxStr = 1&lt;br /&gt;
 	audit_AuxStr_minut = 2&lt;br /&gt;
 	audit_hay_MsjReq = 1&lt;br /&gt;
 	audit_MsjReq_minut = 2&lt;br /&gt;
 #&lt;br /&gt;
 } &lt;br /&gt;
 &lt;br /&gt;
 ami&lt;br /&gt;
 {&lt;br /&gt;
 	max_action = 128&lt;br /&gt;
 	ip_asterisk = localhost&lt;br /&gt;
 	puerto_ami = 5038&lt;br /&gt;
 	usuario_ami = vivait&lt;br /&gt;
 	clave_ami = vivactisecret&lt;br /&gt;
 	to_inac = 30&lt;br /&gt;
 	to_audit = 600&lt;br /&gt;
 	audit_max_resp = 3&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los siguientes son los campos del fichero de configuración:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Campo !!Descripción !!Posibles valores (si aplica)&lt;br /&gt;
|-&lt;br /&gt;
|soy_demonio||# 0: Arranca como proceso - 1: arranca como demonio||&lt;br /&gt;
|-&lt;br /&gt;
|hay_syslog||Si hay servidor de syslog||1 lo hay – 0 no lo hay&lt;br /&gt;
|-&lt;br /&gt;
|archivo_pid||# Archivo con identificador de proceso: (-: /var/run/vivait-cti.pid)||&lt;br /&gt;
|-&lt;br /&gt;
|archivo_traza||# Archivo_traza: (-: stdout o /var/log/vivait-cti.log si soy_demonio)||&lt;br /&gt;
|-&lt;br /&gt;
|nivel_traza||# Nivel_traza: (0: alarma, 1: aviso, 2: info, 3: depuAlto o 4: depuBajo)||&lt;br /&gt;
|-&lt;br /&gt;
|pruebas||||&lt;br /&gt;
|-&lt;br /&gt;
|hay_flush_traza||||&lt;br /&gt;
|-&lt;br /&gt;
|subsistema||# No se usa. No modificar||&lt;br /&gt;
|-&lt;br /&gt;
|num_msj||# Numero de mensajes. No modificar||&lt;br /&gt;
|-&lt;br /&gt;
|num_buf||# Numero de buffer. No modificar||&lt;br /&gt;
|-&lt;br /&gt;
|en_comandos||||&lt;br /&gt;
|-&lt;br /&gt;
|en_eventos||||&lt;br /&gt;
|-&lt;br /&gt;
|archivo_conf||Archivo configuracion de asterisk para las supercolas||&lt;br /&gt;
|-&lt;br /&gt;
|puerto_escucha||Puerto de supervision del demonio||&lt;br /&gt;
|-&lt;br /&gt;
|hay_cti||hay cti||1 hay cti – o no hay&lt;br /&gt;
|-&lt;br /&gt;
|max_conx||Numero maximo de conexiones||&lt;br /&gt;
|-&lt;br /&gt;
|max_call||Numero maximo de llamadas||&lt;br /&gt;
|-&lt;br /&gt;
|max_channel||Numero maximo de canales||&lt;br /&gt;
|-&lt;br /&gt;
|max_monitor||Numero maximo de grabaciones||&lt;br /&gt;
|-&lt;br /&gt;
|max_str_aux||||&lt;br /&gt;
|-&lt;br /&gt;
|puerto_escucha||Puesto escucha del demonio||&lt;br /&gt;
|-&lt;br /&gt;
|link_id||||&lt;br /&gt;
|-&lt;br /&gt;
|hay_vdn||Existen vdns||1 existen – o no existen&lt;br /&gt;
|-&lt;br /&gt;
|hay_usuarios||Existen usuarios||1 existen – o no existen&lt;br /&gt;
|-&lt;br /&gt;
|clave||Clave usuario cti cifrada||&lt;br /&gt;
|-&lt;br /&gt;
|ip||Direcion de red de escucha del cti||&lt;br /&gt;
|-&lt;br /&gt;
|msk||Mascara de red de escucha del cti||&lt;br /&gt;
|-&lt;br /&gt;
|makeCall_primero_dentro||||&lt;br /&gt;
|-&lt;br /&gt;
|makeCall_primero_fuera_agente_descuelga||||&lt;br /&gt;
|-&lt;br /&gt;
|temporizador_makeCall||Tiempo maximo para realizar llamada||&lt;br /&gt;
|-&lt;br /&gt;
|fmt_canal_exten||||&lt;br /&gt;
|-&lt;br /&gt;
|contexto_makeCall_primeroFuera||# contextos para llamadas salientes makeCall y makePredictiveCal||&lt;br /&gt;
|-&lt;br /&gt;
|contexto_makeCall_primeroFueraDentro||# contextos para llamadas salientes makeCall y makePredictiveCal||&lt;br /&gt;
|-&lt;br /&gt;
|contexto_makeCall_primeroDentro||# contextos para llamadas salientes makeCall y makePredictiveCal||&lt;br /&gt;
|-&lt;br /&gt;
|contexto_myAcdSuperv_ProgreFuera||# contextos para llamadas salientes desde myAcdSuperv||&lt;br /&gt;
|-&lt;br /&gt;
|contexto_myAcdSuperv_ProgreDentro||# contextos para llamadas salientes desde myAcdSuperv||&lt;br /&gt;
|-&lt;br /&gt;
|contexto_myAcdSuperv_PredicFuera||# contextos para llamadas salientes desde myAcdSuperv||&lt;br /&gt;
|-&lt;br /&gt;
|contexto_myAcdSuperv_PredicDentro||# contextos para llamadas salientes desde myAcdSuperv||&lt;br /&gt;
|-&lt;br /&gt;
|contexto_redirect||# contexto para transferencias||&lt;br /&gt;
|-&lt;br /&gt;
|expr_esExtenLocal||# expresiones regulares. Se evaluan en el orden indicado||&lt;br /&gt;
|-&lt;br /&gt;
|expr_esExtenInterna ||# expresiones regulares. Se evaluan en el orden indicado||&lt;br /&gt;
|-&lt;br /&gt;
|expr_esCola||# expresiones regulares. Se evaluan en el orden indicado||&lt;br /&gt;
|-&lt;br /&gt;
|expr_esPuntoDistribucion||# expresiones regulares. Se evaluan en el orden indicado||&lt;br /&gt;
|-&lt;br /&gt;
|expr_esPuntoEnrutamiento||# expresiones regulares. Se evaluan en el orden indicado||&lt;br /&gt;
|-&lt;br /&gt;
|expr_esNumPrivateLocal||# expresiones regulares. Se evaluan en el orden indicado||&lt;br /&gt;
|-&lt;br /&gt;
|expr_esNumPrivateUnknown||# expresiones regulares. Se evaluan en el orden indicado||&lt;br /&gt;
|-&lt;br /&gt;
|expr_esNumPublicNational||# expresiones regulares. Se evaluan en el orden indicado||&lt;br /&gt;
|-&lt;br /&gt;
|expr_esNumPublicInternational||# expresiones regulares. Se evaluan en el orden indicado||&lt;br /&gt;
|-&lt;br /&gt;
|audit_hay_Call||||&lt;br /&gt;
|-&lt;br /&gt;
|audit_call_minutContestada||||&lt;br /&gt;
|-&lt;br /&gt;
|audit_call_minutNoContestada||||&lt;br /&gt;
|-&lt;br /&gt;
|audit_hay_AuxStr||||&lt;br /&gt;
|-&lt;br /&gt;
|audit_AuxStr_minut||||&lt;br /&gt;
|-&lt;br /&gt;
|audit_hay_MsjReq||||&lt;br /&gt;
|-&lt;br /&gt;
|audit_MsjReq_minut||||&lt;br /&gt;
|-&lt;br /&gt;
|max_action||Numero maximo de acciones en el manager de asterisk||&lt;br /&gt;
|-&lt;br /&gt;
|ip_asterisk||Ip del asterisk de ACD||&lt;br /&gt;
|-&lt;br /&gt;
|puerto_ami||Puerto del manager de asterisk ACD||&lt;br /&gt;
|-&lt;br /&gt;
|usuario_ami||Usuario del manager de asterisk del ACD||&lt;br /&gt;
|-&lt;br /&gt;
|clave_ami||Clave del manager de asterisk del ACD||&lt;br /&gt;
|-&lt;br /&gt;
|to_inac||Timeout de inactividad||&lt;br /&gt;
|-&lt;br /&gt;
|to_audit||||&lt;br /&gt;
|-&lt;br /&gt;
|audit_max_resp||Tiempo maximo de respuesta||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/vivait-cti.conf'''&lt;br /&gt;
&lt;br /&gt;
==== Phoneprov-TFTP ====&lt;br /&gt;
&lt;br /&gt;
==== Introducción al aprovisionamiento ====&lt;br /&gt;
&lt;br /&gt;
En cada Centralita Telefónica existente, se puede configurar sus teléfonos IP y asignarles extensiones a cada teléfono. Para hacer un ''aprovisionamiento'' de los teléfonos es necesario que el técnico configure uno a uno manualmente utilizando su interfaz web, esto no es práctico, ya que genera muchos errores y el tiempo de implementación se incrementa drásticamente. Además, es casi imposible la administración cotidiana de los teléfonos IP. Desde '''MD'''tel se utiliza una herramienta que permite que los teléfonos IP soportados y homologados por '''MD'''tel ([[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_3.0#Terminales_telef.C3.B3nicos ver Terminales telefónicos]]) se puedan aprovisionar automáticamente, brindando una fácil implementación y administración cotidiana. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== ¿Qué es aprovisionar? =====&lt;br /&gt;
&lt;br /&gt;
Aprovisionar un teléfono es el proceso de configuración automático de teléfonos IP para su uso con una Centralita Telefónica de forma remota. Una vez que aprovisione un teléfono, el teléfono automáticamente se configurará correctamente y podrá administrar los teléfonos de forma centralizada y remota,  sin tener que iniciar sesión en la interfaz web de cada uno de los teléfonos. &lt;br /&gt;
&lt;br /&gt;
El aprovisionamiento de teléfono facilita enormemente la administración cotidiana de los teléfonos IP. Esto hace que sea fácil de cambiar las contraseñas de extensión,realizar desvíos de llamadas, nombre a mostrar, mensajería y demás configuraciones, ya que puede hacerlo de forma centralizada para todos los teléfonos desde el portal de administración y luego transferir los cambios al teléfono. &lt;br /&gt;
&lt;br /&gt;
===== TFTP =====&lt;br /&gt;
&lt;br /&gt;
'''TFTP''' son las siglas de '''T'''rivial '''F'''ile '''T'''ransfer '''P'''rotocol ''(Protocolo de transferencia de archivos trivial)''. &lt;br /&gt;
&lt;br /&gt;
Es un protocolo de transferencia muy simple semejante a una versión básica de FTP. TFTP a menudo se utiliza para transferir pequeños archivos entre terminales en una red. &lt;br /&gt;
&lt;br /&gt;
Algunos detalles del TFTP: &lt;br /&gt;
&lt;br /&gt;
* Utiliza UDP (puerto 69) como protocolo de transporte (a diferencia de FTP que utiliza los &lt;br /&gt;
puertos 20 y 21 TCP). &lt;br /&gt;
* No puede listar el contenido de los directorios. &lt;br /&gt;
* No existen mecanismos de autenticación o cifrado. &lt;br /&gt;
* Se utiliza para leer o escribir archivos de un servidor remoto. &lt;br /&gt;
* Soporta tres modos diferentes de transferencia, &amp;quot;netascii&amp;quot;, &amp;quot;octet&amp;quot; y &amp;quot;mail”.&lt;br /&gt;
&lt;br /&gt;
===== Funcionamiento del servidor phoneprove-TFTP =====&lt;br /&gt;
&lt;br /&gt;
A continuación se muestra un esquema que facilita el entendimiento del funcionamiento del servidor phoneprove-TFTP:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Funcionamiento_Servidor.png‎ |center]]&lt;br /&gt;
&lt;br /&gt;
El servidor Phoneprove-TFTP se ''encarga del aprovisionamiento masivo de terminales'', es de gran utilidad porque cualquier cambio en los teléfonos pueden ser realizados a nivel DHCP y todos los teléfonos tomarán la nueva configuración luego de reiniciarlos. &lt;br /&gt;
&lt;br /&gt;
Desde phoneprove-TFTP se generara los archivos necesarios para cada teléfono y que sirven para ser aprovisionados automáticamente. &lt;br /&gt;
El servidor phoneprove-TFTP  tiene alojados los ficheros de configuración están ordenados según las direcciones MAC de los teléfonos. El teléfono “preguntará” al servidor cual es su fichero de configuración utilizando su dirección MAC. Este a través de su MAC , consulta en la base de datos para ofrecer al terminal los datos de configuración según su plantilla, cual sera su extensión , cual sera el usuario propietario, entre otras cosas.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
  '''Nota:''' En instalaciones grandes habrá más de uno, quizás uno por sede grande; depende de la infraestructura de DHCP.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Parámetros necesarios de Aprovisionamiento de Teléfonos =====&lt;br /&gt;
&lt;br /&gt;
 '''Notas:''' el aprovisionamiento desarrollado por '''MD'''tel, no emplea un fichero por cada &lt;br /&gt;
 teléfono, sino que emplea una plantilla por cada modelo de teléfono.&lt;br /&gt;
 Debe haber una '''configuración previa del servidor DHCP''' es necesario coordinar con el cliente la asignación de direcciones para &lt;br /&gt;
 los diferentes elementos de la plataforma '''''VIVA'''''it, fundamentalmente para terminales telefónicos; en este caso además será necesario &lt;br /&gt;
 activar la opción 66 que permitirá definir el servidor TFTP del que los terminales cogerán sus ficheros de aprovisionamiento.&lt;br /&gt;
 El aprovisionamiento desde el portal de administración solo es posible para aquellos teléfonos IP homologados y probados desde '''MD'''tel   &lt;br /&gt;
 [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_3.0#Terminales_telef.C3.B3nicos ver Terminales  telefónicos]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como existen parámetros comunes de todos los teléfonos de la misma marca de fabricante, muchos de los parámetros necesarios para el aprovisionamiento  como comentamos se han generado desde MDtel en forma de plantillas, que estarán disponibles en el portal de administración VIVAit [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Plantillas | ver plantilla del portal de administración VIVAit]]. &lt;br /&gt;
&lt;br /&gt;
La configuración de un teléfono SIP es muy sencilla y en no es necesario tener conocimientos avanzados de informática o de telefonía. Cada una de estas plantillas que sirven para aprovisionar un teléfono IP homologado, algunos de los parámetros predeterminados se explicarán a continuación .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== Parámetros de Aprovisionamiento globales ======&lt;br /&gt;
&lt;br /&gt;
* Configuración de la red y MAC. &lt;br /&gt;
* Zona horaria. &lt;br /&gt;
&lt;br /&gt;
====== Parámetros de Aprovisionamiento Personales ======&lt;br /&gt;
&lt;br /&gt;
Además de los parámetros de aprovisionamiento globales, el teléfono también obtendrá información de configuración individual, tales como: &lt;br /&gt;
&lt;br /&gt;
*Número de Extensión.&lt;br /&gt;
*Nombre y Contraseña de usuario SIP. &lt;br /&gt;
*Configuración de Teclas BLF.&lt;br /&gt;
*Contraseña de la Interfaz Web del Teléfono IP.&lt;br /&gt;
*Idioma de la Pantalla.&lt;br /&gt;
*Orden de Preferencia de los Codecs.&lt;br /&gt;
&lt;br /&gt;
===== Aprovisionamiento de teléfonos nivel usuario =====&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
  '''Notas:''' La dirección MAC debe estar especificada en letras mayúsculas.&lt;br /&gt;
  La dirección MAC del teléfono se puede encontrar en la etiqueta adhesiva en la parte inferior del teléfono, o de lo contrario se deberá acceder desde&lt;br /&gt;
  el menú del propio terminal.   &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Los pasos a seguir son los siguientes: &lt;br /&gt;
&lt;br /&gt;
'''1)''' Dar de alta el teléfono en el portal de administración, se debe seleccionar el modelo del teléfono, e indicar la dirección MAC del teléfono a aprovisionar, todo ello desde el portal de administración VIVAit. &lt;br /&gt;
Para mas información ver [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Aprovisionamiento del portal de administracion| aprovisionamiento del portal de administración VIVAit]]. &lt;br /&gt;
&lt;br /&gt;
'''2)''' En el mismo portal de administración se deberá crear una extensión , asignar a la extensión el teléfono que se quiera aprovisionar, elegir la plantilla adecuada del teléfono y el usuario propietario (solo si sera un puesto fijo) desde [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Extensiones | extensiones del portal de administración]]. &lt;br /&gt;
&lt;br /&gt;
'''3)''' Conectar el teléfono a la red LAN informática (conectarlo al router o switch) para que tenga acceso a Internet:&lt;br /&gt;
&lt;br /&gt;
:*El teléfono enviará un mensaje de multidifusión a través de la LAN. &lt;br /&gt;
:*Este será captado por la Central Telefónica siempre que esté en la misma LAN. &lt;br /&gt;
:*Al teléfono se le enviará una URL de aprovisionamiento. &lt;br /&gt;
&lt;br /&gt;
'''4)''' Como la mayoría de teléfonos IP del mercado al arrancar una vez sabiendo la URL de aprovisionamiento piden una serie de archivos de configuración para aprovisionarse vía TFTP. EL servidor phoneprove-TFTP, detectara la petición y a través de la MAC y datos del usuario, consultará en la base de datos los datos necesarios para aprovisionar al teléfono y si todo funciona correctamente mandara al teléfono IP los datos de configuración necesarios para funcionar. &lt;br /&gt;
&lt;br /&gt;
'''5)''' Asegúrese de que el teléfono encuentren el servidor TFTP, para ello esperar un tiempo adecuado para que termine el aprovisionamiento. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''6)''' Finalmente aparecerá  como registrado en la centralita, obtendrá una dirección IP y podra funcionar según la configuración establecida.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
  '''Nota''': Si no se reaprovisiona tras un periodo largo de tiempo, desenchufe el cable de alimentación eléctrica &amp;lt;br /&amp;gt; o el cable Ethernet (si se utiliza la alimentación en línea PoE) para reiniciar los teléfonos. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Aprovisionamiento de teléfonos nivel técnico =====&lt;br /&gt;
&lt;br /&gt;
====== Plantilla de configuración ======&lt;br /&gt;
&lt;br /&gt;
La plantilla de configuración empleadas en el apartado  [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Plantillas | plantilla del portal de administración VIVAit]] de cada modelo está formada por una serie de variables. &lt;br /&gt;
&lt;br /&gt;
Los valores se obtienen de la tabla de la base de datos CEN_TELEFONOS, CEN_USUARIOS, ACD_EXTENSIONES, ACD_NODOS, COM_NODOS... correspondientes a la extensión del teléfono, usuario, nodo, etc. &lt;br /&gt;
&lt;br /&gt;
 variable ${NODO1_C_NOMBRE}='corp-ast13'&lt;br /&gt;
 variable ${EXTEN_C_CLAVE_REGISTRO}='Tel21002'&lt;br /&gt;
 variable ${USU_C_CODIGO_POSTAL}=''28034'&lt;br /&gt;
 variable ${SEDE_C_CODIGO_POSTAL}='28034' &lt;br /&gt;
 variable ${USU_C_NOMBRE}='Juan Antonio'&lt;br /&gt;
 variable ${USU_C_APELLIDO2}='Ramirez'&lt;br /&gt;
 variable ${SEDE_C_NOMBRE}='RED_LAB'&lt;br /&gt;
 variable ${NODO2_C_NOMBRE}= NULL&lt;br /&gt;
 variable ${EXTEN_C_NOMBRE}='' 21002&lt;br /&gt;
 variable ${USU_C_LOCALIDAD}='' &lt;br /&gt;
 variable ${USU_C_NOMBRE_MOSTRAR}='Juan' &lt;br /&gt;
 variable ${NODO1_C_IP}='175.25.129.70' &lt;br /&gt;
 variable ${MODEL_C_PREFIJO_PLANTILLA_MAC}='T28P' &lt;br /&gt;
 variable ${SEDE_C_LOCALIDAD}='Madrid' &lt;br /&gt;
 variable ${USU_C_APELLIDO1}='Casas' &lt;br /&gt;
 variable ${NODO2_C_IP}= NULL&lt;br /&gt;
 variable ${TF_ID_EXTENSION}='5' &lt;br /&gt;
 cargando campos idExten=5&lt;br /&gt;
&lt;br /&gt;
====== Ficheros y paquetes necesarios ======&lt;br /&gt;
&lt;br /&gt;
'''Paquetes previos:''' libnet-tftpd-perl, tftp-hpa, libnet-address-ip-local-perl &lt;br /&gt;
'''Usuario de funcionamiento:''' root &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
   '''Nota:'''  los archivos y directorios que generemos podrian necesitar que se permitiera el acceso al archivo de lectura &amp;lt;br/&amp;gt; y escritura en el servidor TFTP.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Archivos necesarios:''' &lt;br /&gt;
&lt;br /&gt;
 /usr/local/sbin/phoneprov-tftp.pl &lt;br /&gt;
 /usr/local/sbin/phoneprov-tftp.pm&lt;br /&gt;
 /etc/MDtel/phoneprov-tftp.pconf &lt;br /&gt;
 /etc/init/phoneprov-tftp.conf &lt;br /&gt;
 /etc/logrotate.d/phoneprov-tftp &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Directorios a crear:''' &lt;br /&gt;
&lt;br /&gt;
 /var/lib/phoneprov-tftp/plt &lt;br /&gt;
 /var/lib/phoneprov-tftp/bin&lt;br /&gt;
&lt;br /&gt;
*El archivo de configuración, '''phoneprov-tftp''', es el siguiente:&lt;br /&gt;
&lt;br /&gt;
 #&lt;br /&gt;
 # Configuracion de phoneprov-tftp.pl&lt;br /&gt;
 #&lt;br /&gt;
 # 0: Solo alarmas en archivo log - 1: alarmas y trazas&lt;br /&gt;
 $depurar = 1;&lt;br /&gt;
 &lt;br /&gt;
 # 0: Arranca como proceso - 1: arranca como demonio&lt;br /&gt;
 $soyDemonio = 1;&lt;br /&gt;
 &lt;br /&gt;
 # Archivo de log ('': salida estandar)&lt;br /&gt;
 $logArch = '/var/log/phoneprov-tftp.log';&lt;br /&gt;
 &lt;br /&gt;
 # Archivo para el pid&lt;br /&gt;
 $pidArch = '/var/run/phoneprov-tftp';&lt;br /&gt;
 &lt;br /&gt;
 # 0: El programa se ejecuta indefinidamente - 1: solo una vez (util en depuracion)&lt;br /&gt;
 $unaVezSolo = 0;&lt;br /&gt;
 &lt;br /&gt;
 # Conexion de base de datos&lt;br /&gt;
 $db='nimitz';&lt;br /&gt;
 $dbHost = 'BDTR';&lt;br /&gt;
 $dbPort = 3306;&lt;br /&gt;
 $dbUsuario = 'nimitz';&lt;br /&gt;
 $dbClave = 'ivivanimitz';&lt;br /&gt;
 &lt;br /&gt;
 # Configuracion de la supervision&lt;br /&gt;
 $supPort = 1123;&lt;br /&gt;
 &lt;br /&gt;
 # Configuracion de servidor TFTP&lt;br /&gt;
 #&lt;br /&gt;
 # Los archivos estaticos no tienen variables. Se sirven sin modificar.&lt;br /&gt;
 # Estan en el arbol de directorios a partir del indicado por '$dirEstatico'&lt;br /&gt;
 #&lt;br /&gt;
 # Los archivos dinamicos soportan sustitucion de varibles.&lt;br /&gt;
 # Las plantillas con variables a sustituir estan en el arbol de directorios&lt;br /&gt;
 # a partir del indicado por '$dirPlantilla'.&lt;br /&gt;
 # Los archivos temporales con variables sustituidas estan en el arbol&lt;br /&gt;
 # de directorios a partir del indicado por '$dirDinamico'.&lt;br /&gt;
 # Los archivos dinamicos se identifican porque contienen una mac.&lt;br /&gt;
 # Tambien se identifican en base a las lineas que comienzan con '@'.&lt;br /&gt;
 # En este ultimo caso, no se refieren a un telefono y puede tener pocas vars.&lt;br /&gt;
 # &lt;br /&gt;
 $miDir = '';&lt;br /&gt;
 $bindDir = '';&lt;br /&gt;
 $bindPuerto = 69;&lt;br /&gt;
 $dirPlantilla = '/var/lib/phoneprov-tftp/plt';&lt;br /&gt;
 $dirEstatico = '/var/lib/phoneprov-tftp/bin';&lt;br /&gt;
 $dirDinamico = '/tmp';&lt;br /&gt;
 $toRRQ = 10;&lt;br /&gt;
 $toACK = 5;&lt;br /&gt;
 $errACK = 3;&lt;br /&gt;
 $tamBlq = 512;&lt;br /&gt;
 &lt;br /&gt;
 # Valores de E_TIPO_CAMPO en tabla COM_CAMPOS que enganchan ID_TABLA con CEN_EXTENSIONES &lt;br /&gt;
 $clasesCamposExtension = '50';&lt;br /&gt;
 # Valores de E_TIPO_CAMPO en tabla COM_CAMPOS que enganchan ID_TABLA con CEN_USUARIOS &lt;br /&gt;
 $clasesCamposUsuario = '70';&lt;br /&gt;
 &lt;br /&gt;
 # Expresiones regulares de archivos con mac estaticos (separados por '&amp;gt;')&lt;br /&gt;
 $nomArchMacEstaticos = '^SEP.*\.tlv$&amp;gt;^SEP.*\.bin$&amp;gt;^SP.*\.xml$';&lt;br /&gt;
 &lt;br /&gt;
 # Traducciones previas de nombres de archivo estaticos&lt;br /&gt;
 #%archivo = 'trad';&lt;br /&gt;
 &lt;br /&gt;
 # Traducciones previas de nombres de archivo dinamicos sin mac&lt;br /&gt;
 @y000000000044.cfg = 'Yealink-T23G-comun.cfg';&lt;br /&gt;
 @y000000000034.cfg = 'Yealink-T21P-comun.cfg';&lt;br /&gt;
 @y000000000000.cfg = 'Yealink-T28P-comun.cfg';&lt;br /&gt;
 @y000000000004.cfg = 'Yealink-T26P-comun.cfg';&lt;br /&gt;
 @y000000000036.cfg = 'Yealink-T41P-comun.cfg';&lt;br /&gt;
 @y000000000058.cfg = 'Yealink-T58V-comun.cfg';&lt;br /&gt;
 @y000000000069.cfg = 'Yealink-T27G-comun.cfg';&lt;br /&gt;
 @snom710.htm = 'Snom-710-comun.cfg';&lt;br /&gt;
 @snom710-firmware.xml = 'Snom-710-firmware.xml';&lt;br /&gt;
 @spa514G.cfg = 'cisco-spa514G.cfg';&lt;br /&gt;
 @spa512G.cfg = 'cisco-spa512G.cfg';&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Los campos del fuchero de configuración y su significado se muestran en la su¡iguiente tabla:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Campo !!Descripción !!Posibles valores (si aplica)&lt;br /&gt;
|-&lt;br /&gt;
|$depurar||# 0: Solo alarmas en archivo log - 1: alarmas y trazas||&lt;br /&gt;
|-&lt;br /&gt;
|$soyDemonio||# 0: Arranca como proceso - 1: arranca como demonio||&lt;br /&gt;
|-&lt;br /&gt;
|$logArch =||# Archivo de log ('': salida estandar)||&lt;br /&gt;
|-&lt;br /&gt;
|$pidArch||# Archivo para el pid||&lt;br /&gt;
|-&lt;br /&gt;
|$unaVezSolo||# 0: El programa se ejecuta indefinidamente - 1: solo una vez (util en depuracion)||&lt;br /&gt;
|-&lt;br /&gt;
|$db||Nombre de la base de datos||&lt;br /&gt;
|-&lt;br /&gt;
|$dbHost||IP o HOST máquina base de datos de tiempo real||&lt;br /&gt;
|-&lt;br /&gt;
|$dbPort||Puerto de escucha de mysql||&lt;br /&gt;
|-&lt;br /&gt;
|$dbUsuario||Usuario acceso Base de datos de tiempo real||&lt;br /&gt;
|-&lt;br /&gt;
|$dbClave||Clave usuario acceso base de datos de tiempo real||&lt;br /&gt;
|-&lt;br /&gt;
|$supPort ||Puerto de supervisión del demonio||&lt;br /&gt;
|-&lt;br /&gt;
|$miDir ||||&lt;br /&gt;
|-&lt;br /&gt;
|$bindDir||bindAddres||&lt;br /&gt;
|-&lt;br /&gt;
|$bindPuerto||Puerto de escucha del demonio||&lt;br /&gt;
|-&lt;br /&gt;
|$dirPlantilla||Directorio de las plantillas de aprovisionamiento||&lt;br /&gt;
|-&lt;br /&gt;
|$dirEstatico||Directorio archivos estáticos||&lt;br /&gt;
|-&lt;br /&gt;
|$dirDinamico||# Los archivos temporales con variables sustituidas están en el árbol de directorios a partir del indicado por '$dirDinamico'.||&lt;br /&gt;
|-&lt;br /&gt;
|$toRRQ ||||&lt;br /&gt;
|-&lt;br /&gt;
|$toACK||Timeout ACK||&lt;br /&gt;
|-&lt;br /&gt;
|$errACK||Número de errores de ACK||&lt;br /&gt;
|-&lt;br /&gt;
|$tamBlq||Tamaño del bloque de archivos a transferir||&lt;br /&gt;
|-&lt;br /&gt;
|$clasesCamposExtension||# Valores de E_TIPO_CAMPO en tabla COM_CAMPOS que enganchan ID_TABLA con CEN_EXTENSIONES ||&lt;br /&gt;
|-&lt;br /&gt;
|$clasesCamposUsuario||# Valores de E_TIPO_CAMPO en tabla COM_CAMPOS que enganchan ID_TABLA con CEN_USUARIOS ||&lt;br /&gt;
|-&lt;br /&gt;
|$nomArchMacEstaticos||# Expresiones regulares de archivos con mac estaticos (separados por '&amp;gt;')||&lt;br /&gt;
|-&lt;br /&gt;
|%archivo||# Traducciones previas de nombres de archivo estaticos||&lt;br /&gt;
|-&lt;br /&gt;
|@y000000000044.cfg||# Traducciones previas de nombres de archivo dinámicos sin mac||&lt;br /&gt;
|-&lt;br /&gt;
|@y000000000034.cfg||# Traducciones previas de nombres de archivo dinámicos sin mac||&lt;br /&gt;
|-&lt;br /&gt;
|@y000000000000.cfg||# Traducciones previas de nombres de archivo dinámicos sin mac||&lt;br /&gt;
|-&lt;br /&gt;
|@y000000000004.cfg||# Traducciones previas de nombres de archivo dinámicos sin mac||&lt;br /&gt;
|-&lt;br /&gt;
|@y000000000036.cfg||# Traducciones previas de nombres de archivo dinámicos sin mac||&lt;br /&gt;
|-&lt;br /&gt;
|@y000000000058.cfg||# Traducciones previas de nombres de archivo dinámicos sin mac||&lt;br /&gt;
|-&lt;br /&gt;
|@y000000000069.cfg||# Traducciones previas de nombres de archivo dinámicos sin mac||&lt;br /&gt;
|-&lt;br /&gt;
|@snom710.htm||# Traducciones previas de nombres de archivo dinámicos sin mac||&lt;br /&gt;
|-&lt;br /&gt;
|@snom710-firmware.xml||# Traducciones previas de nombres de archivo dinámicos sin mac||&lt;br /&gt;
|-&lt;br /&gt;
|@spa514G.cfg ||# Traducciones previas de nombres de archivo dinámicos sin mac||&lt;br /&gt;
|-&lt;br /&gt;
|@spa512G.cfg ||# Traducciones previas de nombres de archivo dinámicos sin mac||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Watchdog ====&lt;br /&gt;
&lt;br /&gt;
Se trata de una aplicación del asterisk que monitoriza el SIP y en caso de fallo, pasado un cierto tiempo, reinicia el asterisk y genera un core.&lt;br /&gt;
Si escribimos en CLI de asterisk perro tenemos los siguientes comandos:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Activar||Activar el Watchdog&lt;br /&gt;
|-&lt;br /&gt;
|Desactivar||Desactiva el Watchdog&lt;br /&gt;
|-&lt;br /&gt;
|Parada IWantToStop||Reinicia el asterisk y genera un core para pruebas&lt;br /&gt;
|-&lt;br /&gt;
|Reload||Realiza una recarga del Watchdog y aplica cambios en su configuración&lt;br /&gt;
|-&lt;br /&gt;
|Show||Ver el estado del Watchdog&lt;br /&gt;
&lt;br /&gt;
perro avisado=0 activo=1 segsDormir=1 segsInic=60 segsGuarda=30 maxErr=3&lt;br /&gt;
perro        nombre=sip_monitor_udp lwp=[15437] segsInic=60 segsGuarda=30 hace=11 err=0/5&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El dato &amp;quot;hace&amp;quot; informa de cuanto tiempo ha transcurrido desde el último tick. Facilita la calibración del parámetro de configuración &amp;quot;segs_guarda&amp;quot;, normalmente es 30&lt;br /&gt;
&lt;br /&gt;
Tiene un fichero de configuración ubicado en /etc/asterisk/MDcrash.conf&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Sección [perro]&lt;br /&gt;
||activo=yes (Si esta o no activo)&lt;br /&gt;
segs_dormir=1 (Un tick por segundo)&lt;br /&gt;
&lt;br /&gt;
segs_inic=60&lt;br /&gt;
&lt;br /&gt;
segs_guarda=30 &lt;br /&gt;
&lt;br /&gt;
max_errores=3  &lt;br /&gt;
|-&lt;br /&gt;
|Sección [sip_monitor_udp]&lt;br /&gt;
||segs_inic=60&lt;br /&gt;
&lt;br /&gt;
segs_guarda=30 (Cada 30 segundos si no reciba trafico SIP genera core)&lt;br /&gt;
&lt;br /&gt;
max_errores=5 (Número máximo de errores)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Proceso de Backup ====&lt;br /&gt;
Las plataformas '''''VIVA'''''it Call y '''''VIVA'''''it Suite incluyen un script para realizar un proceso de backup.&lt;br /&gt;
&lt;br /&gt;
Se utilizará el script '''backup.sh''', que se encuentra en el directorio '''etc/MDTel'''.&lt;br /&gt;
&lt;br /&gt;
Se ejecuta automaticamente mediante el uso de un cron&lt;br /&gt;
&lt;br /&gt;
'''texto del cron:'''&lt;br /&gt;
&lt;br /&gt;
 SHELL=/bin/sh&lt;br /&gt;
 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin&lt;br /&gt;
 # m h dom mon dow user command&lt;br /&gt;
 0 2 * * * root  /etc/MDtel/backup.sh /etc/MDtel/backup.cfg&lt;br /&gt;
&lt;br /&gt;
Para activar el script hay que descomentar la línea&lt;br /&gt;
 # m h dom mon dow user command&lt;br /&gt;
&lt;br /&gt;
Los directorios de los que se hace copia son:&lt;br /&gt;
* DIR=var/lib/asterisk/sounds/Particular&lt;br /&gt;
* DIR=var/lib/asterisk/moh&lt;br /&gt;
* DIR=etc&lt;br /&gt;
* DIR=etc/asterisk&lt;br /&gt;
* DIR=etc/cron.d&lt;br /&gt;
* DIR=etc/dahdi&lt;br /&gt;
* DIR=etc/exim4&lt;br /&gt;
* DIR=etc/ha.d&lt;br /&gt;
* DIR=etc/logrotate.d&lt;br /&gt;
* DIR=etc/MDtel&lt;br /&gt;
* DIR=etc/mysql&lt;br /&gt;
* DIR=etc/network&lt;br /&gt;
* DIR=etc/zabbix&lt;br /&gt;
* DIR=usr/local/sbin&lt;br /&gt;
&lt;br /&gt;
Por defecto se realiza un backup cada dos horas en la carpeta '''/var/spool/MDtel/backup'''.&lt;br /&gt;
&lt;br /&gt;
Para cambiar la ruta de destino del backup habrá que modificar el fichero backup.sh, en concreto modificar la variable MDTEL.&lt;br /&gt;
&lt;br /&gt;
El fichero ''' backup.cfg''' que se genera incluye copia de la siguiente información:&lt;br /&gt;
* Ficheros de configuración de la aplicación.&lt;br /&gt;
* Base de Datos.&lt;br /&gt;
* Dialplan.&lt;br /&gt;
&lt;br /&gt;
Se guardarán 10 copias del fichero ''' backup.cfg '''&lt;br /&gt;
&lt;br /&gt;
Los campos disponibles en el fichero son los siguientes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Campo !!Descripción !!Posibles valores (si aplica)&lt;br /&gt;
|-&lt;br /&gt;
|IP_BD ||IP o HOST máquina base de datos de tiempo real||&lt;br /&gt;
|-&lt;br /&gt;
|HAY_SMB ||Si hay o no servidor SAMBA||1 si existe servidor SAMBA o 0 si no existe&lt;br /&gt;
|-&lt;br /&gt;
|HOST_SMB||IP o HOST servidor SAMBA||&lt;br /&gt;
|-&lt;br /&gt;
|USU_SMB||Usuario acceso servidor SAMBA||&lt;br /&gt;
|-&lt;br /&gt;
|CLAVE_SMB||Clave usuario acceso servidor SAMBA||&lt;br /&gt;
|-&lt;br /&gt;
|RUTA_SMB||Ruta donde se guardará el backup en el servidor SAMBA||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Para recuperar una plataforma utilizando el backup, habrá que instalar una máquina nueva y cargar los ficheros de configuración, Base de Datos y Dialplan guardados en el proceso de backup.&lt;br /&gt;
&lt;br /&gt;
===== Información adicional: como funciona un cron =====&lt;br /&gt;
&lt;br /&gt;
La información sobre el fucnionamiento de un cron puede encontrarse en: [http://lasegundapuerta.com/index.php/informatica/linux-y-software-libre/1709-comando-cron-en-linux-ubuntu Información sobre el comando cron]&lt;br /&gt;
&lt;br /&gt;
==== CHAT ====&lt;br /&gt;
La información para configurar el CHAT y su funcionamiento puede encontrarse en:&lt;br /&gt;
&lt;br /&gt;
[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#CHAT CHAT]&lt;br /&gt;
&lt;br /&gt;
=== Requerimientos de conectividad ===&lt;br /&gt;
&lt;br /&gt;
El esquema siguiente muestra como ejemplo todos los flujos de información existentes en un entorno típico de &amp;lt;big&amp;gt;'''telefonía corporativa (sin presencia)'''&amp;lt;/big&amp;gt; ('''''VIVA'''''it Call)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Flujos corporativa.png|cebter]]&lt;br /&gt;
&lt;br /&gt;
En el entorno de &amp;lt;big&amp;gt;'''Contact Center'''&amp;lt;/big&amp;gt;, encontramos los siguientes flujos &amp;lt;big&amp;gt;'''entre servicios'''&amp;lt;/big&amp;gt; (comunicaciones entre servidores, ('''''VIVA'''''it Suite)) &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Flujos Contact servicios.png|650px|center]]&lt;br /&gt;
&lt;br /&gt;
y &amp;lt;big&amp;gt;'''entre usuarios y servicios'''&amp;lt;/big&amp;gt; los reflejados a continuación:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Flujos Contact puestos.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Lado A!!Lado B!!Puertos!!Sentido!!Observ.&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor||TCP 5060||A -&amp;gt; B||Señalización SIP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor||UDP 5060||A -&amp;gt; B||Señalización SIP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor||10000 a 20000||A -&amp;gt; B&lt;br /&gt;
B -&amp;gt; A&lt;br /&gt;
||RTP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor TFTP||UDP 69||A -&amp;gt; B&lt;br /&gt;
B -&amp;gt; A&lt;br /&gt;
||Para actualización de terminales por TFTP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor NTP||UDP 123||A -&amp;gt; B||&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Desk||Servidor||TCP 4500||A -&amp;gt; B||Comunicación CTI&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Desk||Servidor||TCP 3306||A -&amp;gt; B||Acceso a Mysql Base de datos&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Desk||Servidor Syslog||UDP 514||A -&amp;gt; B||Para envio de logs de agente&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Supervisor||Servidor||TCP 3306||A -&amp;gt; B||Acceso a Mysql Base de datos&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker||Servidor||TCP 3306||A -&amp;gt; B||Acceso a Mysql Base de datos&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker||Servidor||TCP 8180||A -&amp;gt; B||&lt;br /&gt;
|-&lt;br /&gt;
|Actualizador||Servidor||TCP 80||A -&amp;gt; B||Necesario para actualizaciones de versiones de aplicaciones de agente y supervisores&lt;br /&gt;
|-&lt;br /&gt;
|Portal de administración||Servidor||TCP 8180||A -&amp;gt; B||Acceso al portal de administración '''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker Web||Servidor||TCP 8180||A -&amp;gt; B||&lt;br /&gt;
|-&lt;br /&gt;
|Monitor||Servidor||TCP 8180||A -&amp;gt; B||Wallboard&lt;br /&gt;
|-&lt;br /&gt;
|Monitorización||Servidor||TCP 80||A -&amp;gt; B||Acceso a portal monitorización (Zabbix)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Gateways ===&lt;br /&gt;
El concepto de gateway como tal no existe en la plataforma '''''VIVA'''''it; existen nodos de ACD y nodos de corporativa.&lt;br /&gt;
&lt;br /&gt;
A efectos de operación un nodo de corporativa es el que en cualquier caso asumirá las funcionalidades de gateway, y recibirá las conexiones (analógicas, digitales o IP) a sistemas externos o a la RTC&lt;br /&gt;
&lt;br /&gt;
El concepto gateway queda pues suscrito a entornos meramente comerciales&lt;br /&gt;
&lt;br /&gt;
Incluimos no obstante en este apartado los diagnósticos y operaciones básicos de conexiones a sistemas externos o RTC&lt;br /&gt;
&lt;br /&gt;
Para verificar los enlaces establecidos ejecutamos el siguiente comando en el terminal: '''sip show peers''' &lt;br /&gt;
&lt;br /&gt;
Al ejecutar este comando obtenemos la salida:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Enlace_Exterior.png |center]]&lt;br /&gt;
&lt;br /&gt;
Las columnas ''Host'' y ''Port'' nos muestran las conexiones establecidas y nos informa de un posible problema de conexión. &lt;br /&gt;
&lt;br /&gt;
Sabremos que ''no existe conexión'' cuando la columna Host tiene el valor '''Unspecified''' y en la columna Port aparece un '''0''' , a continuación se muestra un ejemplo:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ejemplo_no_conexion.png |center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#00FF00&amp;quot;&amp;gt;FALTA AQUI DIAGNOSTICOS Y OPERACIONES DE ENLACES EXTERNOS&amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Servidor de grabación === &lt;br /&gt;
==== Almacenamiento en la nube ====&lt;br /&gt;
Almacenamiento en la nube.&lt;br /&gt;
Existe la posibilidad de que tras un determinado periodo de tiempo las grabaciones sean movidas a un almacenamiento externo. De esta operativa se encarga el proceso /usr/local/sbin/mueveGrabaciones.pl que recibe como parámetro la ruta al archivo de configuración. Dicho archivo tiene los siguientes elementos:&lt;br /&gt;
&lt;br /&gt;
*$db: Nombre de la base de datos.&lt;br /&gt;
*$dbHost: servidor de MySQL&lt;br /&gt;
*$dbPort: Puerto del MySQL.&lt;br /&gt;
*$dbUsuario: Usuario de conexión a MySQL.&lt;br /&gt;
*$dbClave: Clave del usuario anterior.&lt;br /&gt;
*$dirBase: Directorio donde residen las grabaciones&lt;br /&gt;
*$diasCaducidad: Dias de antigüedad para mover las grabaciones&lt;br /&gt;
*$sftpHost: Servidor SFTP de destino&lt;br /&gt;
*$sftpPort: Puerto SFTP.&lt;br /&gt;
*$sftpUsuario: Usuario SFTP.&lt;br /&gt;
*$sftpClave: Clave del usuario SFTP.&lt;br /&gt;
*$simula: Si este campo vale 1, las grabaciones se copian, pero no se borran del directorio original, ni se actualiza su ubicación en la base de datos.&lt;br /&gt;
&lt;br /&gt;
La grabación indica donde se encuentra mediante el campo E_UBICACION_GRABACION, que puede tener los siguientes valores:&lt;br /&gt;
*Sin definir (0)&lt;br /&gt;
*En línea (10): Las grabaciones se encuentran en el servidor de grabaciones.&lt;br /&gt;
*Fuera de línea (20): las grabaciones se encuentran en una ubicación externa.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Reporting ===&lt;br /&gt;
La aplicación de reporting en general no tiene procesos habituales de operación y mantenimiento.&lt;br /&gt;
Los informes son obtenidos desde la interfaz gráfica o mediante un procedimiento de scripting, descritos en “Formato de fichero de intercambio para '''''VIVA'''''it Reporting”.&lt;br /&gt;
&lt;br /&gt;
==== Formato de fichero de intercambio para '''''VIVA'''''it Reporting ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Nombre !! Descripción !! Ejemplo&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;| Selección de registros&lt;br /&gt;
|-&lt;br /&gt;
| SQL_selec || Expresión SQL que se añadirá al where a la SQL principal. || C_ORIGEN like '6%' and C_COD_CLIENTE= '023'&lt;br /&gt;
|-&lt;br /&gt;
| SQL_select_leido || Filtro de selección legible&lt;br /&gt;
 || Skill igual a 60310&lt;br /&gt;
|-&lt;br /&gt;
| SQL_orden || Lista de campos por los que se ordenará, después de los que estén ya definidos en la plantilla. || C_ORIGEN, C_COD_CLIENTE&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Salida&lt;br /&gt;
|-&lt;br /&gt;
| FIC_extension || Extensión de fichero de salida: PDF, XLSX, CSV || PDF&lt;br /&gt;
|-&lt;br /&gt;
| FIC_tipo_entrega || 'P': Pantalla, 'D': Directorio, 'C': Correo || D&lt;br /&gt;
|-&lt;br /&gt;
| FIC_destino || Si 'C', dirección de correo, si 'D', ruta del directorio || D:\informes\&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Plantilla&lt;br /&gt;
|-&lt;br /&gt;
| INF_modelo || Ruta del fichero de plantilla || C:\Modelos\llamadas.rep&lt;br /&gt;
|-&lt;br /&gt;
| INF_descripción || Descripción del informe || Informe detallado de llamadas&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Base de datos&lt;br /&gt;
|-&lt;br /&gt;
| BD_ip || IP o nombre de máquina || &lt;br /&gt;
|-&lt;br /&gt;
| BD_puerto || Puerto de MySQL || &lt;br /&gt;
|-&lt;br /&gt;
| BD_base_datos || Nombre de base de datos || &lt;br /&gt;
|-&lt;br /&gt;
| BD_usuario || Usuario de base de datos || &lt;br /&gt;
|-&lt;br /&gt;
| BD_clave || Clave de acceso cifrada || &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Parámetros&lt;br /&gt;
|-&lt;br /&gt;
| PAR_desde_vis || Fecha inicial de selección en formato legible (o '-' si no hay) || 01/01/2016&lt;br /&gt;
|-&lt;br /&gt;
| PAR_hasta_vis || Fecha final de selección en formato legible (o '-' si no hay) || 31/01/2016&lt;br /&gt;
|-&lt;br /&gt;
| PAR_01 || Parámetro opcional || &lt;br /&gt;
|-&lt;br /&gt;
| .. || .. || &lt;br /&gt;
|-&lt;br /&gt;
| PAR_20 || Parámetro opcional || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El fichero tendrá un nombre único para permitir la generación simultánea de informes.&lt;br /&gt;
El fichero es borrado por la aplicación de forma automática.&lt;br /&gt;
Se pasa a la aplicación de generación de informes como parámetro. Por ejemplo:&lt;br /&gt;
 “C:\Archivos de Programa\MDtel\Nimitz\LanzaInformes\LanzaInformes.exe”&lt;br /&gt;
 “C:\Archivos de Programa\MDtel\Nimitz\LanzaInformes\NIM00001.tmp”&lt;br /&gt;
&lt;br /&gt;
Ejemplo de fichero:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| SQL_selec=(DAT_ACUMULADOS_COLAS.ID_COLA in (11))&lt;br /&gt;
&lt;br /&gt;
SQL_select_leido=Skill igual a 60310&lt;br /&gt;
&lt;br /&gt;
SQL_orden=&lt;br /&gt;
FIC_extension=pdf&lt;br /&gt;
&lt;br /&gt;
FIC_tipo_entrega=P&lt;br /&gt;
&lt;br /&gt;
FIC_destino=C:\&lt;br /&gt;
&lt;br /&gt;
INF_modelo=skill_setsi.rep&lt;br /&gt;
&lt;br /&gt;
INF_descripcion=Skill. SETSI&lt;br /&gt;
&lt;br /&gt;
BD_ip=172.25.1.2&lt;br /&gt;
&lt;br /&gt;
BD_puerto=3306&lt;br /&gt;
&lt;br /&gt;
BD_base_datos=nimitz&lt;br /&gt;
&lt;br /&gt;
BD_usuario=nimitz&lt;br /&gt;
&lt;br /&gt;
BD_clave=UIk5jNY9PVX5ogg=&lt;br /&gt;
&lt;br /&gt;
PAR_desde_vis=-&lt;br /&gt;
&lt;br /&gt;
PAR_hasta_vis=-&lt;br /&gt;
&lt;br /&gt;
PAR_01=&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Resumen de significado de columnas en reporting histórico ====&lt;br /&gt;
Esta información se puede consultar en el siguiente enlace:&lt;br /&gt;
&lt;br /&gt;
http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Documentacion_de_usuario_VIVAit_Suite_3.3#Resumen_del_valor_de_las_columnas_que_aparecen_en_los_informes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===== Agente,asistencia diaria y agente. Asistencia diaria del grupo =====&lt;br /&gt;
&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo de llamado:''' Tiempo de ring en llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo disponible:''' Tiempo que el agente estuvo conectado y no está&lt;br /&gt;
incluido en ninguno de los anteriores.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas transferidas:''' Número de llamadas ACD que fueron&lt;br /&gt;
transferidas por el agente.&lt;br /&gt;
&lt;br /&gt;
===== Agente. Aux y Grupo Aux =====&lt;br /&gt;
&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Desglose de tiempos AUX:''' Tiempo que el agente estuvo en cada uno&lt;br /&gt;
de los motivos de pausa.&lt;br /&gt;
&lt;br /&gt;
===== Agente. Resumen diario =====&lt;br /&gt;
&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo de llamado:''' Tiempo de ring en llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo disponible:''' Tiempo que el agente estuvo conectado y no está&lt;br /&gt;
incluido en ninguno de los anteriores.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas entrada Ext:''' Número de llamadas entrantes NO ACD a la&lt;br /&gt;
extensión.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas salida Ext:''' Número de llamadas salientes NO ACD desde la&lt;br /&gt;
extensión.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas transferidas:''' Número de llamadas ACD que fueron&lt;br /&gt;
transferidas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas retenidas:''' Número de retenciones que sufrieron las&lt;br /&gt;
llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACD:''' Tiempo ACD/ Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACW:''' TiempoACW/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio de entrada a la Ext:''' Tiempo entrada Ext/&lt;br /&gt;
Llamadas entrada Ext.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio de salida a la Ext:''' Tiempo salida Ext/ Llamadas&lt;br /&gt;
salida Ext.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio retención:''' Tiempo retención/Llamadas retenidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % Ocupación con ACW:''' ((Tiempo ACD+ Tiempo retención+ Tiempo&lt;br /&gt;
ACW)/Tiempo con personal)* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % Ocupación sin ACW:''' ((Tiempo ACD+ Tiempo retención)/Tiempo&lt;br /&gt;
con personal)* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % disp.:''' (Tiempo disponible/Tiempo conectado)* 100.&lt;br /&gt;
&lt;br /&gt;
===== Agente. Grupo ACD diario =====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención de un grupo&lt;br /&gt;
ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Ayuda:''' Número de llamadas contestadas por el agente que necesitaron&lt;br /&gt;
de consulta de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas retenidas:''' Número de retenciones que el agente realizó&lt;br /&gt;
sobre las llamadas de ese grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas por&lt;br /&gt;
el agente en ese grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Trans. salida:''' Llamadas que finalizan con una transferencia.&lt;br /&gt;
&lt;br /&gt;
===== Grupo ACD. Reporte diario con AHT =====&lt;br /&gt;
&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACD:''' Tiempo ACD/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACW:''' Tiempo ACW/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención de un grupo&lt;br /&gt;
ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente de un grupo ACD.&lt;br /&gt;
'''• Tiempo de llamado:''' Tiempo de ring en llamadas ACD de un grupo&lt;br /&gt;
ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo disponible:''' Tiempo que el agente estuvo conectado y no está&lt;br /&gt;
incluido en ninguno de los anteriores.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Ayuda:''' Número de llamadas ACD contestadas por el agente en las que&lt;br /&gt;
necesito hacer uso de la consulta.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas retenidas:''' Número de retenciones que el agente realizó&lt;br /&gt;
sobre las llamadas ACD contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas contestadas ACD&lt;br /&gt;
estuvieron retenidas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Trans. salida:''' Número de llamadas ACD que fueron transferidas por el&lt;br /&gt;
agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• AHT:''' (Tiempo ACD+ Tiempo ACW+ Tiempo retención)/Llamadas&lt;br /&gt;
ACD.(Average Handle Time)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Grupo ACD. QOS  =====&lt;br /&gt;
&lt;br /&gt;
'''• Vel. prom. de resp.:''' Tiempo total de espera de llamadas antes de ser&lt;br /&gt;
atendidas/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo prom. de aban.:''' Tiempo abandonadas(tiempo que las&lt;br /&gt;
llamadas abandonadas estuvieron en el grupo ACD)/Llamadas&lt;br /&gt;
abandonadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ofrecidas:''' Número de llamadas entrantes al grupo&lt;br /&gt;
ACD(Llamadas ACD+ Abandonadas+ Desbordadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas contestadas por los agentes.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas abandonadas:''' Número de llamadas colgadas por el cliente&lt;br /&gt;
en el grupo ACD antes de ser contestadas o desbordadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Desconectadas por ACD:''' Número de llamadas desbordadas que al&lt;br /&gt;
salir del grupo ACD se cuelgan.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Desbordadas por ACD:''' Número total de llamadas desbordadas(incluye&lt;br /&gt;
las desconectadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas atendidas en &amp;lt; 20s:'''Número de llamadas contestadas con&lt;br /&gt;
tiempo de respuesta menor a 20 segundos.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo total de espera:''' Tiempo total que las llamadas estuvieron&lt;br /&gt;
esperando antes de ser atendidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % N.A.:''' Llamadas ACD/(Llamadas ACD+ Llamadas abandonadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % N.D.S.:''' (Llamadas atendidas en &amp;lt; 20s/Llamadas ofrecidas)* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• T.M.O:''' (Tiempo ACD+ Tiempo ACW+ Tiempo retención)/Llamadas&lt;br /&gt;
ACD.(Tiempo Medio Operación)&lt;br /&gt;
&lt;br /&gt;
===== Informe conducción (VDN Conducción) =====&lt;br /&gt;
&lt;br /&gt;
'''•Entrantes al grupo ACD:''' Número de llamadas ofrecidas al grupo&lt;br /&gt;
ACD(Contestadas+ Abandonadas+ Desbordadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Llamadas contestadas:''' Número de llamadas contestadas por un agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Contestadas NDS:''' Número de llamadas contestadas en nivel de servicio,&lt;br /&gt;
tiempo de respuesta&amp;lt; 20 segundos.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Abandonadas:''' Número de llamadas abandonadas, colgadas por el cliente&lt;br /&gt;
antes de ser contestadas por un agente o desbordadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Desconectadas:''' Número de llamadas desbordadas que fueron colgadas al&lt;br /&gt;
salir del grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Desbordadas:''' Número total de llamadas desbordadas (incluye desconectadas)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Llamadas retenidas:''' Número de retenciones que el agente realizó sobre las&lt;br /&gt;
llamadas ACD contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•% N.A.:''' (Llamadas contestadas/(Llamadas contestadas+ Abandonadas+&lt;br /&gt;
Desbordadas))* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•% N.D.S.:''' (Contestadas NDS/(Llamadas contestadas+ Abandonadas + Desbordadas))*100&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•% Abandonadas:''' (Abandonadas/(Llamadas contestadas+ Abandonadas+ Desbordadas))* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. RING:''' Tiempo de ring en llamadas ACD(entrantes).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•ACDTIME:''' Tiempo de conversación ACD de las llamadas contestadas o&lt;br /&gt;
realizadas por el agente excluido el tiempo de retención de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. ACW:''' Tiempo dedicado por el agente a tareas administrativas tras&lt;br /&gt;
finalizar las llamadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum HOLD:''' Tiempo que las llamadas contestadas ACD estuvieron retenidas&lt;br /&gt;
por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. OTHER:''' Tiempo total que las llamadas estuvieron esperando en el&lt;br /&gt;
grupo ACD antes de ser atendidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. AVAIL:''' Acum. STAFF- (ACDTIME+ Acum. ACW+ Acum. RING+ Acum.&lt;br /&gt;
HOLD+ Acum. AUX).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. Staff:''' Suma del Tiempo conectado de todos los agentes al grupo&lt;br /&gt;
ACD(Este tiempo se repercute en todos los grupos ACD a los que esta&lt;br /&gt;
conectado el agente).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. AUX:''' Suma del Tiempo en pausa de todos los agentes que estén&lt;br /&gt;
conectados al grupo ACD(Este tiempo se repercute en todos los grupos ACD a&lt;br /&gt;
los que esta conectado el agente).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Prom. ACD:''' ACDTIME/Llamadas contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Prom. ACW:''' Acum. ACW/Llamadas contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Prom. HOLD:''' Acum. HOLD/Llamadas retenidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•AHT:''' (ACDTIME+ Acum. ACW+ Acum. HOLD)/Llamadas contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Vel. prom. de resp.:''' Tiempo total de espera de llamadas antes de ser&lt;br /&gt;
atendidas/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Tiempo máx. de espera:''' Tiempo de la llamada que estuvo mas tiempo en el&lt;br /&gt;
grupo ACD hasta que fue atendida.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Agentes en PH:''' (Acum. Staff- Acum. AUX)/1800(Agentes conectados que no&lt;br /&gt;
están en pausa en el intervalo).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Agentes Staff:''' Acum. Staff/1800(Agentes conectados en el intervalo)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Desglose de tiempos AUX:''' Tiempo que el agente estuvo en cada uno de los&lt;br /&gt;
motivos de pausa.&lt;br /&gt;
&lt;br /&gt;
===== Informe de producción =====&lt;br /&gt;
&lt;br /&gt;
'''• LL. ACD:'''Número de llamadas contestadas por ese agente para ese&lt;br /&gt;
grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. HOLD:''' Número de retenciones efectuadas para las llamadas&lt;br /&gt;
contestadas en ese grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Redir.:''' Número de llamadas no contestadas por un agente que&lt;br /&gt;
fueron redirigidas de nuevo a la cola.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. No colgadas cliente:''' Número de llamadas que terminaron sin el&lt;br /&gt;
colgado del cliente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Aband.:''' Número de llamadas abandonadas en ese grupo ACD, este&lt;br /&gt;
valor es independiente del agente por tanto se repite el valor para todos&lt;br /&gt;
los agentes en un mismo grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Transfer.:''' Número de llamadas ACD que fueron transferidas por el&lt;br /&gt;
agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Conf:''' Número de llamadas ACD en las que el agente estableció&lt;br /&gt;
conferencia.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• S. Extensión:''' Número de llamadas salientes de extensión, este valor es&lt;br /&gt;
independiente del grupo ACD se repite el valor para todos los grupos&lt;br /&gt;
ACD en los que está conectado el agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. Staff:''' Tiempo que el agente estuvo conectado al grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. RING:''' Tiempo de ring en las llamadas ACD(entrantes) que&lt;br /&gt;
fueron contestadas por el agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. ACD:''' Tiempo de conversación de las llamadas ACD(entrantes)&lt;br /&gt;
que fueron contestadas por el agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas que fueron contestadas por él.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum HOLD:''' Tiempo que las llamadas ACD(entrantes) para ese grupo&lt;br /&gt;
ACD que fueron contestadas por el agente estuvieron retenidas.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. AVAIL:''' Acum. STAFF- (Acum. ACD+ Acum. ACW+ Acum. RING+&lt;br /&gt;
Acum. HOLD+ Acum. AUX)..&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. AUX:''' Tiempo que el agente estuvo en pausa este valor es&lt;br /&gt;
independiente del grupo ACD se repite el valor para todos los grupos&lt;br /&gt;
ACD en los que está conectado el agente..&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Desgloses de tiempos AUX, tiempo AUX por cada uno de los&lt;br /&gt;
motivos.''' este valor es independiente del grupo ACD se repite el valor&lt;br /&gt;
para todos los grupos ACD en los que está conectado el agente.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Consideraciones adicionales =====&lt;br /&gt;
&lt;br /&gt;
Los tiempos se insertan en el intervalo en el que se deja ese &amp;quot;estado&amp;quot;, esto provoca que en un intervalo pueda ser mayor el tiempo ACD que el tiempo conectado.&lt;br /&gt;
&lt;br /&gt;
''* Ejemplo:''&lt;br /&gt;
&lt;br /&gt;
 -Llamada: Duración 15 minutos Hora fin de la llamada 13:01&lt;br /&gt;
 -Llamada: Duración 20 minutos Hora fin de la llamada 13:24&lt;br /&gt;
 Suma de las duraciones de las llamadas para el intervalo ''35 minutos'' tiempo&lt;br /&gt;
 conectado del agente en el intervalo ''30 minutos.''&lt;br /&gt;
 Cuando los periodos consultados sean mas amplios (diario, mensual) los&lt;br /&gt;
 desfases tenderán a desaparecer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Otros Diagnósticos y operaciones básicas ==&lt;br /&gt;
=== Arranque y apagado de la plataforma ===&lt;br /&gt;
&lt;br /&gt;
En general el arranque y apagado de cada nodo de una plataforma '''''VIVA'''''it es el estándar de un procedimiento ordenado de apagado en una máquina linux: '''&amp;quot;Shutdown -h now&amp;quot;''' o comando de apagado inmediato o programado equivalente&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El orden de arranque de la plataforma deberá ser:&lt;br /&gt;
# En primer lugar arrancar el nodo con la base de datos de tiempo real&lt;br /&gt;
# Una vez finalizado el arranque del punto 1, arrancar el nodo con la base de datos de réplica&lt;br /&gt;
# Una vez finalizado el arranque del punto 2, arrancar el resto de nodos en cualquier orden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Al respecto del orden de apagado de nodos, es el siguiente:&lt;br /&gt;
# En primer lugar se apagarán, en cualquier orden, los nodos que NO CONTENGAN bases de datos de tiempo real ni bases de datos de réplica&lt;br /&gt;
# Una vez apagados totalmente todos los nodos del punto 1, apagaremos el nodo (o nodos) con bases de datos de réplica&lt;br /&gt;
# Una vez apagados totalmente todos los nodos del punto 2, se apagará el nodo con la base de datos de tiempo real&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== Nivel matriz de conmutación ===&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Grabación ===&lt;br /&gt;
&lt;br /&gt;
==== Configuración de la grabación en la plataforma corporativa ====&lt;br /&gt;
Para que una llamada se grabe, lo primero de todo es que  alguien tenga la capacidad de grabar. Esto se consigue diciendo al nodo que sea grabador. Esto provoca que el nodo llame al mixmonitor para grabar y se inserte un registro en el DAT_GRABACIONES. Esto no significa que ya las llamadas se vayan a grabar, ya que para eso tiene que ser procesadas por un nodo que sea grabador. Hay tres, llamémosle elementos, que se pueden grabar:&lt;br /&gt;
&lt;br /&gt;
* El nodo, es decir todo lo que el nodo enrute&lt;br /&gt;
* Prerutas&lt;br /&gt;
* Objetos: que son las extensiones, usuarios, grupos corporativos, etc.&lt;br /&gt;
&lt;br /&gt;
Tenemos tres formas de grabar:&lt;br /&gt;
&lt;br /&gt;
* Grabar con beep periódico&lt;br /&gt;
* Grabar sin beep periódico&lt;br /&gt;
* Descartar grabación&lt;br /&gt;
&lt;br /&gt;
Si de los tres elementos tenemos que uno grabe, ya sea con o sin beep periódico, esa llamada se va a grabar ya que son OR, en cuanto haya un elemento que diga que grabe se va a grabar.&lt;br /&gt;
&lt;br /&gt;
Al igual pasa si tenemos que un elemento tenga descartar la grabación. La grabación no se inicia.&lt;br /&gt;
&lt;br /&gt;
Referente al campo de Modo de grabación en infraestructura, este no se emplea para la grabación de corporativo, sino que solo tiene validez en ACD. Para grabación en el ACD hay que, como se ha dicho anteriormente poner un nodo que sea grabador y especificar un elemento de los tres que hay cual es el que se va a grabar.&lt;br /&gt;
&lt;br /&gt;
Para que exista una grabación ha de existir un segmento asociado a esta. Los segmentos se tratan en las prerutas. Hay un campo es las prerutas que es Generar segmento al enrutar. Si está se generará el segmento del tipo de la preruta y su correspondiente grabación si esta está configurada. Si le decimos que no genere segmentos al enrutar y el sistema está configurado para que grabe, el recordCentral creará un tipo de segmento llamado externo para esa grabación. Podemos configurar si queremos que se cree o no ese segmento, para eso hay que modificar el fichero de configuración del recordCentral y poner un tiempo muy alto al campo $segmExternoMinSegs. También podemos configurar que segmentos queremos que se graben. Por defecto el recordCentral va configurado para que se graben todos los segmentos. Para decirle que solo grabe cierto tipo de segmentos hay que ponerlos los que queramos que si se graben en la variable $tiposSegmentoGrabar del fichero de configuración del recordCentral.&lt;br /&gt;
&lt;br /&gt;
==== Comprobar que el servidor de grabación está activo ====&lt;br /&gt;
&lt;br /&gt;
Si al ejecutar el comando '''''nc ip_maquina 1114''''',si no se recibe ninguna respuesta, significa el servidor de grabación no estaría activo. &lt;br /&gt;
También usando el comando ''''' ps aux | grep recordCentral ''''', donde si no escribe ningún resultado implica que tampoco esta activo.&lt;br /&gt;
&lt;br /&gt;
==== Comprobar que los nodos están conectados al servidor de grabación ====&lt;br /&gt;
&lt;br /&gt;
Debemos fijarnos en la linea de respuesta del comando '''''nc ip_maquina 1114''''', que seria:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| root@smadavacdrecord1:~# nc localhost 1114&lt;br /&gt;
recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423&lt;br /&gt;
160112'&lt;br /&gt;
&lt;br /&gt;
recordCentral MYSQL cnx=1&lt;br /&gt;
&lt;br /&gt;
recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
&lt;br /&gt;
recordCenral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
&lt;br /&gt;
'''recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10''''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el parámetro &amp;quot;fase=0&amp;quot; es el numero que identifica el recordCentral, los demás parámetros nos indicaran los nodos disponibles , que funcionan o no en el servidor. Entonces &amp;quot;gestión=4,6,7,8,9,10&amp;quot; indica el id de los nodos que maneja el proceso.&lt;br /&gt;
&lt;br /&gt;
==== Comprobar que un nodo tiene activo el agente de grabación ====&lt;br /&gt;
Si al ejecutar el comando '''''nc ip_maquina 1113''''', no se recibe ninguna respuesta, significa que el nodo no tiene activo el agente de grabación.&lt;br /&gt;
También usando el comando ''''' ps aux | grep recordNodo''''', donde si no escribe ningun resultado implica que tampoco esta activo.&lt;br /&gt;
&lt;br /&gt;
==== Comprobar que un nodo está subiendo archivos de grabación al servidor ====&lt;br /&gt;
Debemos fijarnos en la linea de respuesta del comando '''''nc ip_maquina 1114''''', que seria:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| root@smadavacdrecord1:~# nc localhost 1114&lt;br /&gt;
recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423&lt;br /&gt;
160112'&lt;br /&gt;
&lt;br /&gt;
recordCentral MYSQL cnx=1&lt;br /&gt;
&lt;br /&gt;
recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
&lt;br /&gt;
recordCenral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
&lt;br /&gt;
'''recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10''''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Fijándonos en &amp;quot;descarga=8,6,4,7,10,9&amp;quot; nos confirma que todos los nodos que maneja el proceso funcionan perfectamente y el servidor puede manejar las grabaciones.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de grabaciones que se hayan quedado enganchadas en un nodo ====&lt;br /&gt;
Podemos fijarnos en los dos comandos, para '''''nc ip_maquina 1114''''':&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| root@smadavacdrecord1:~# nc localhost 1114&lt;br /&gt;
recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423&lt;br /&gt;
160112'&lt;br /&gt;
&lt;br /&gt;
recordCentral MYSQL cnx=1&lt;br /&gt;
&lt;br /&gt;
recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
&lt;br /&gt;
recordCenral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
&lt;br /&gt;
'''recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10''''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Fijándonos en el campo &amp;quot;cuarentena=''&amp;quot; indica que ninguno de los nodos tiene problemas.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación del estado de ocupación del almacenamiento temporal de grabaciones en un nodo. ====&lt;br /&gt;
&lt;br /&gt;
Desde un SSH ejecuta el comando '''''df - h''''' en la maquina donde creamos que debe estar ejecutando el proceso recordNod:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Filesystem !! Size !! Used !! Avail !! Use% !! Mounted on&lt;br /&gt;
|-&lt;br /&gt;
| udev || 486M || 4,0K || 486M || 1,00% || /dev&lt;br /&gt;
|-&lt;br /&gt;
| tmpfs || 100M || 416K || 99M || 1,00% || /run&lt;br /&gt;
|-&lt;br /&gt;
| '''/dev/vda1''' ||''' 236M''' ||''' 68M''' ||''' 156M''' ||''' 31,00% '''||''' /boot'''&lt;br /&gt;
|-&lt;br /&gt;
| tmpfs || 100M || 48K || 100M || 1,00% || /var/spool/asterisk/monitor&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Nos fijaríamos en la línea marcada en negrita, el campo &amp;quot;Use%&amp;quot; indicara el porcentaje de almacenamiento temporal de grabaciones en un nodo.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Escuchas e intrusiones en asterisk===&lt;br /&gt;
'''CallSpy''' es una aplicación elaborada para asterisk que permite a un usuario realizar escuchas e &lt;br /&gt;
intrusiones en llamadas. &lt;br /&gt;
En realidad tenemos dos aplicaciones en asterisk, CallSpy y CallSpyee. &lt;br /&gt;
====CallSpy ====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 '''Nota:''' Como mucho se pueden tener a dieciséis personas al mismo tiempo usando esta aplicación. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como hemos mencionado anteriormente, esta aplicación permite la escucha de llamadas y, &lt;br /&gt;
opcionalmente, realiza la función de intrusión. Tiene tres opciones de configuración obligatorios &lt;br /&gt;
que mostramos a continuación: &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 CallSpy(&amp;lt;tipoEspiado&amp;gt;,&amp;lt;expRegEspiado&amp;gt;,&amp;lt;parametrosConf&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
La opción '''&amp;lt;tipoEspiado&amp;gt;''' se refiere a que tipo de objeto que podemos espiar correspondiente, solo debe elegirse un único tipo: &lt;br /&gt;
*'''c:''' escuchar una cola&lt;br /&gt;
*'''v:''' escuchar un vdn &lt;br /&gt;
*'''a:''' escuchar a un agente &lt;br /&gt;
*'''e:''' escuchar extensión &lt;br /&gt;
La opción '''&amp;lt;expRegEspiado&amp;gt;''' representa el número de la cola, VDN, agente o extensión que queremos escuchar. Tiene que ser una expresión regular. &lt;br /&gt;
La opción '''&amp;lt;parametrosConf&amp;gt;''' se refiera a los parámetros de configuración para la llamada que podemos espiar, se pueden combinar o juntar : &lt;br /&gt;
*'''q:''' Desactiva el 'beep' al comienzo de cada nueva llamada. &lt;br /&gt;
*'''v([value]):''' Ajusta el volumen en el rango -4 a 4 (más alto, mas volumen). &lt;br /&gt;
*'''e:''' Habilita el que se pueda cambiar a otra llamada de la misma extensión. &lt;br /&gt;
*'''w:''' Habilita el que se pueda activar la intrusión (whisper).&lt;br /&gt;
Una vez iniciada la escucha, solo falta que entre una llamada al objetivo que estemos espiando. Al &lt;br /&gt;
iniciar la escucha, se puede hacer lo siguiente: &lt;br /&gt;
*Pulsando '''#''' modifica el volumen de escucha. &lt;br /&gt;
*Pulsando '''*''' cambia a una nueva llamada. &lt;br /&gt;
*Pulsando '''1''' si esta habilitado, cambia a otra llamada de la misma extensión. &lt;br /&gt;
*Pulsando '''2''' si esta habilitado, inicia la función de intrusión. &lt;br /&gt;
*Pulsando '''3''' desactiva la función de intrusión. &lt;br /&gt;
====CallSpyee (espiado)====&lt;br /&gt;
Mediante esta aplicación indicamos los parámetros que permite a una llamada ser seleccionada para &lt;br /&gt;
escuchar. Las opciones de configuración son: &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 CallSpyee([CID_NUM],[cola],[vdn],[agen],[exten]) &lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:'''No son parámetros obligatorios, por lo que no hace falta rellenar todos los campos pero si respetar sus posiciones separadas por comas.&amp;lt;small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
La explicación de los parámetros es la siguiente:&lt;br /&gt;
*'''CID_NUM:''' representa el call ID de la llamadas &lt;br /&gt;
*'''cola:'''representa el número de la cola que se quiere espiar (${QUEUE} ).&lt;br /&gt;
*'''vdn:'''   representa el número del VDN que se quiere espiar (${VDN} ).&lt;br /&gt;
*'''agen:''' representa el número del agente que se quiere espiar.&lt;br /&gt;
*'''exten:''' representa el número de la extensión que se quiere espiar (${EXTENSION}) .&lt;br /&gt;
&lt;br /&gt;
Por ejemplo si queremos escuchar todas las llamadas en las que participa una extensión determinada pondremos en la macro de extensiones: &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,,,${EXTENSION}) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Cambios para el dialplan de asterisk==== &lt;br /&gt;
El funcionamiento de este tipo de servicio conlleva un cambio en el dialplan de asterisk. En cada macro correspondiente se pondrá los diferentes CallSpyee para VDN, colas  , extensiones y agentes. &lt;br /&gt;
Pasos a seguir: &lt;br /&gt;
*Paso 1. Creación de un código de intrusión para cada tipo según necesidad (cola, VDN, agente y &lt;br /&gt;
extensión). &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Ejemplo '''MD'''tel:  declaramos como código de intrusión a Agente *44*NUMERO &lt;br /&gt;
 ;========================================== &lt;br /&gt;
 ;======== Intrusion a Agente &lt;br /&gt;
 ;========================================== &lt;br /&gt;
 exten =&amp;gt; _*44*X.,1,set(CadMarcar=intrusionEspiado) &lt;br /&gt;
 exten =&amp;gt; _*44*X.,n,set(DesL=SERVICIO) &lt;br /&gt;
 exten =&amp;gt; _*44*X.,n,set(datoServicio=^${EXTEN:4}) &lt;br /&gt;
 exten =&amp;gt; _*44*X.,n,Goto(finMacro,1) &lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' En la tercera línea podemos observar la expresión regular que se le pasara al CallSpy correspondiente con el número marcado por el espia. &amp;lt;small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*Paso 2.Llamar a CallSpy con la configuración deseada.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Ejemplo '''MD'''tel:  llamada a CallSpy especificando que vamos a espiar una cola (la c del primer parámetro, con la&lt;br /&gt;
 extensión introducida en el código de intrusión y con whisper, es decir, función de intrusión habilitada. &lt;br /&gt;
 ;------------------------------------------------------------------------ &lt;br /&gt;
 ; Intrusion a Espiado &lt;br /&gt;
 ;------------------------------------------------------------------------ &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,1,NoOp &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,n,GotoIf($[&amp;quot;${datoServicio}&amp;quot;=&amp;quot;&amp;quot;]?colgar) &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,n,CallSpy(c,${datoServicio},w) &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,n(colgar),Hangup &lt;br /&gt;
|}&lt;br /&gt;
* Paso 3. Llamar a CallSpyee con la configuración de las llamadas candidatas a ser escuchadas.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Ejemplo '''MD'''tel: &lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,,,,${EXTENSION}) → Para extensiones &lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,${QUEUE},,,) → Llamadas espiadas por cola &lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,,${VDN},,) → Llamadas espiadas por VDN &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Calendarios ===&lt;br /&gt;
&lt;br /&gt;
Para la configuración de los Calendarios se hace uso de '''CalDAV''', estándar de Internet que permite a un cliente acceder a información de planificación en un servidor remoto. Permite que varios clientes accedan a la misma información, facilitando la cooperación. Muchas aplicaciones, tanto clientes como servidores, son compatibles con este protocolo.&lt;br /&gt;
&lt;br /&gt;
Si deseamos crear un calendario en la plataforma '''VIVAit''' podemos hacerlo siguiendo el  siguiente enlace:  &lt;br /&gt;
Para comprobar que el servidor de calendarios funciona correctamente bastaría con cargar en la barra de direcciones la siguiente url: [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Calendarios |Calendarios]]&lt;br /&gt;
&lt;br /&gt;
http://${NODO.HOST}/dav/html/cal.php/calendars/${DAV.CUENTA}/${DAV.CALENDARIO}&lt;br /&gt;
&lt;br /&gt;
donde,&lt;br /&gt;
&lt;br /&gt;
* '''NODO.HOST:''' es la ip del servidor calendar&lt;br /&gt;
* '''DAV.CUENTA:''' hace referencia a la cuenta de usuario&lt;br /&gt;
* '''DAV.CALENDARIO:''' hace referencia el nombre de la cuenta&lt;br /&gt;
&lt;br /&gt;
Una vez que se carga la url sabremos que el servidor funciona correctamente si visualizamos lo siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla de 2016-07-21 12_43_58.png || 1020px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si el sistema nos pide usuario y clave querrá decir que el servidor de calendarios está operativo en esa maquina&lt;br /&gt;
&lt;br /&gt;
Para comprobar que funciona en la consola de asterisk usaremos los comandos &lt;br /&gt;
 calendar show calendars&lt;br /&gt;
 calendar show calendar [nombreCalendario]&lt;br /&gt;
&lt;br /&gt;
 '''Nota:''' Debido bugs detectados, el proceso requerirá:&lt;br /&gt;
       - La realización de una sincronización manual de la sección &amp;quot;mdcal&amp;quot; desde el portal de administración&lt;br /&gt;
       - En la máquina donde esté instalado el servidor de calendarios apuntar a la IP de la BDTR (/var/www/dav/config.php)&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Syslog de agentes ===&lt;br /&gt;
'''''Syslog''''' es un estándar para el envío de mensajes de registro en una red informática IP. Por '''''Syslog''''' se conoce tanto al protocolo de red como a la aplicación o biblioteca que envía los mensajes de registro. Se lanza automáticamente al arrancar un sistema Unix, y es el encargado de guardar informes sobre el funcionamiento de la máquina (eventos, seguridad del sistema, etc) pero puede contener también cualquier información como mensajes de las diferentes partes del sistema (núcleo, programas...) y los envía y/o almacena en diferentes localizaciones transmitiéndose mediante un puerto UDP. Esto permite concentrar los registros de múltiples máquinas en un único punto simplificando la labor de gestión al administrador siendo habitual que múltiples dispositivos lo soporten.&lt;br /&gt;
&lt;br /&gt;
El formato del mensaje se compone de tres campos :&lt;br /&gt;
&lt;br /&gt;
* La cabecera contiene la prioridad, fecha y hora del mensaje, máquina, proceso (nombre e identificador) que lo ha generado y la versión del protocolo utilizado.&lt;br /&gt;
* Una serie de pares clave-valor con metadatos.&lt;br /&gt;
* El texto del mensaje.&lt;br /&gt;
&lt;br /&gt;
Si es necesario podemos activar el registro de todos los eventos telefónicos que realiza un agente ACD llamado '''Syslog de agentes'''. Su activación se realiza mediante el '''portal de administración ''VIVA''it'''  configurando unos parámetros para un usuario llamado ''Rastreo BBDD&amp;quot; y ''Rastreo Syslog''. Para más información[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Pesta.C3.B1a_ACD | ver sección  Portal de administración - General - Usuarios - Pestaña ACD  ]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot;  align=&amp;quot;top&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot; |&amp;lt;big&amp;gt;'''Elemento'''&amp;lt;/big&amp;gt; &lt;br /&gt;
|align=&amp;quot;center&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot; | &amp;lt;big&amp;gt;'''Procedimiento'''&amp;lt;/big&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Operacion&lt;br /&gt;
|-&lt;br /&gt;
|Ubicación del proceso||Script arranque: /etc/init/ rsyslog.conf&lt;br /&gt;
Configuración :&lt;br /&gt;
/etc/rsyslog.d/30-vivait-&lt;br /&gt;
desk.conf&lt;br /&gt;
|-&lt;br /&gt;
|Arranque||service rsyslog start&lt;br /&gt;
|-&lt;br /&gt;
|Parada||service rsyslog stop&lt;br /&gt;
|-&lt;br /&gt;
|Reinicio||service rsyslog reload&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Diagnostico&lt;br /&gt;
|-&lt;br /&gt;
|Registro de logs||/var/log/MDtel/vivait-desk.log&lt;br /&gt;
Fichero del día actual. se guardan los 30&lt;br /&gt;
anteriores comprimidos en tar.g&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Generación de un Core ===&lt;br /&gt;
Un Core es la memoria de un programa.&lt;br /&gt;
&lt;br /&gt;
Para generar un Core rápido con Asterisk hay que hacer lo siguiente:&lt;br /&gt;
&lt;br /&gt;
    Ejecutar ps aux | grep asterisk y coger el PID del programa&lt;br /&gt;
    gdb /usr/sbin/asterisk [PID]&lt;br /&gt;
    gcore [file]&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==Funcionalidades específicas ==&lt;br /&gt;
=== Mecanismo de prioridad adaptativa ===&lt;br /&gt;
&lt;br /&gt;
El mecanismo de prioridad adaptativa permite en una plataforma '''''VIVA'''''it Suite establecer prioridades en las que se tenga en cuenta el tiempo de espera de las llamadas en cola, proporcionando una alternativa al mecanismo de prioridad absoluta que existe por defecto&lt;br /&gt;
&lt;br /&gt;
==== Introducción ====&lt;br /&gt;
&lt;br /&gt;
Este documento presenta una propuesta de mecanismo de asignación de llamadas en colas a agentes basado no solo en las prioridades de agente a cola,&lt;br /&gt;
sino en un factor de corrección de prioridad derivado del tiempo de espera de una llamada&lt;br /&gt;
&lt;br /&gt;
==== Terminología ====&lt;br /&gt;
&lt;br /&gt;
* '''Prioridad de llamada:''' A cada llamada susceptible de ser atendida en el ''Call Center'' se le asignará una prioridad de llamada; dicha prioridad será asignada cada vez que un agente quede disponible.&lt;br /&gt;
* '''Prioridad de grupo ACD:''' Los agentes del ''Call Center'' tendrán configurada una prioridad para cada grupo ACD al que pertenecen&lt;br /&gt;
* '''Tiempo de espera:''' Tiempo que una llamada lleva en espera en un determinado grupo ACD; si la llamada cambia de un grupo ACD a otro el tiempo de espera pasa a cero&lt;br /&gt;
* '''Objetivo de servicio:''' Tiempo objetivo máximo de espera por cada grupo ACD&lt;br /&gt;
&lt;br /&gt;
 '''Nota.-''' ''En terminología Asterisk el aumento de prioridad corresponde con números descendentes, es decir,&amp;lt;br /&amp;gt;&lt;br /&gt;
 prioridad 50 es mejor que prioridad 70''&lt;br /&gt;
&lt;br /&gt;
==== Mecanismo de asignación de llamadas ====&lt;br /&gt;
&lt;br /&gt;
En el momento en que exista un agente disponible para recibir llamada, el agente recepcionará la llamada con mejor prioridad de llamada (menor número). La prioridad de llamada para cada llamada se establecerá de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
- Agentes con prioridad de grupo ACD de 1 a 99 utilizarán el mecanismo convencional de asterisk de prioridad absoluta; será útil para grupos ACD críticos o en Call Centers muy convencionales&lt;br /&gt;
&lt;br /&gt;
'''Si un agente tiene prioridad menor de 100 en grupos ACD y hay llamadas en dichos grupos, estas llamadas serán atendidas por el agente con prioridad absoluta.'''&lt;br /&gt;
&lt;br /&gt;
- Agentes con prioridad de colas de 100 en adelante; se utilizará el siguiente mecanismo de prioridad ponderada:&lt;br /&gt;
&lt;br /&gt;
:*Si el grupo ACD de la llamada está dentro del objetivo de servicio, la prioridad de llamada será la prioridad de grupo ACD (a efectos prácticos se aplicará el mecanismo convencional de asignación de llamada a agente, equitativo entre grupos ACD con misma prioridad)&lt;br /&gt;
&lt;br /&gt;
:*Si el grupo ACD de la llamada está fuera del objetivo de servicio, se aplicará una ponderación que mejorará la prioridad de la llamada a medida que aumente el tiempo de espera:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Formula.png |center]]&lt;br /&gt;
&lt;br /&gt;
En una configuración de igualdad de prioridad de agente y objetivo de servicio, el tiempo de espera influiría de manera determinante (más o menos en&lt;br /&gt;
función del peso) en la asignación de la siguiente llamada&lt;br /&gt;
El peso podrá adquirir tres posibles valores: 0, 1 y 10&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Esquema.png |center]]&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;span style=&amp;quot;color:#000080&amp;quot;&amp;gt;- Calculo prioridad de llamada: se calcula por llamada cada vez que un agente queda libre&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span style=&amp;quot;color:#000080&amp;quot;&amp;gt;- Agente atiende llamada con mejor prioridad de llamada&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Medio:Asignación de llamadas por prioridad adaptativa.pdf|Asignación de llamadas por prioridad adaptativa]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Marcación saliente ===&lt;br /&gt;
Dentro del ACD hay un comportamiento especial que es la marcación saliente. Esta puede ser de tres tipos:&lt;br /&gt;
* '''Vista previa''': El agente demanda la siguiente llamada a realizar.&lt;br /&gt;
* '''Progresivo''': Se llama al agente y se lanza la llamada al contacto.&lt;br /&gt;
* '''Predictivo''': El sistema calcula cuando va a estar libre el agente y se adelanta lanzando varias llamadas (configurables por parámetros). La llamada que es contestada primero, se pasa a una cola (el resto se cuelgan) a la espera que el agente se quede libre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Esquema de funcionamiento====&lt;br /&gt;
[[Archivo:esquema funcionamiento marcador.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
Los contactos se agrupan en listas para su facilidad de asignación a campañas, aunque finalmente lo que se asigna a una campaña es un contacto.&lt;br /&gt;
&lt;br /&gt;
Las campañas tienen estrategias. Las estrategias definen como se ha de llamar (del primero al último, sólo los pares, etc.). Tienen una serie de parámetros que  dependiendo de la estrategia pueden tener distinta utilidad. Desde el punto de vista de la base de datos, las estrategias se definirían en la tabla ACD_CLASES_ESTRATEGIAS y se les da valor en la tabla ACD_ESTRATEGIAS_MARCADOR.&lt;br /&gt;
Una vez establecida la campaña y asignados sus contactos y dependiendo del modo de marcación (que se define en las colas) el proceso motorSal crea los intentos de marcación (siempre y cuando no estén en las listas Robinson), que serán leídos por el proceso myAcdSuperv que los convierte en llamadas para el Asterisk.&lt;br /&gt;
&lt;br /&gt;
====Flujo de estados====&lt;br /&gt;
&lt;br /&gt;
El flujo de estados es el reflejado en la figura siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:diagrama de flujo motorsal.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
Los diferentes estados de un contacto son:&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Estado !! ID_Estado!! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| Planificable || 0|| El contacto está preparado para que lo gestione motorSal y según la estrategia definida se establece el campo ACD_CONTACTOS_CAMPANNAS.D_HORA_PROXIMA&lt;br /&gt;
|-&lt;br /&gt;
|Planificado||10||Cuando ha llegado el tiempo marcado en HORA PROXIMA, motorSal ejecuta la 2ª fase de la estrategia, generando el intento de marcación.&lt;br /&gt;
|-&lt;br /&gt;
|Intento||20||El control pasa a myAcdSuperv, que a su vez genera la llamada en Asterisk. Cuando termina, se pasa a Planificable o Finalizado.&lt;br /&gt;
|-&lt;br /&gt;
|Finalizado||100||Las gestiones con este contacto han terminado.&lt;br /&gt;
|-&lt;br /&gt;
|Abortado||110||&lt;br /&gt;
|-&lt;br /&gt;
|Obsoleto||200||Se ha agotado el tiempo para contactar sin agotar todos los intentos. No se le vuelve a llamar nunca.&lt;br /&gt;
|-&lt;br /&gt;
|Cancelado||300||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Carga de contactos====&lt;br /&gt;
&lt;br /&gt;
===== Descripción =====&lt;br /&gt;
&lt;br /&gt;
A continuación se explica la configuración y funcionamiento de la utilidad encargada de asignar contactos a campañas.&lt;br /&gt;
&lt;br /&gt;
===== Configuración =====&lt;br /&gt;
&lt;br /&gt;
El archivo de configuración recibe el nombre de '''cargaContactos.pconf.''' Este archivo reside en '''/etc/MDtel.''' El formato se describe en la tabla siguiente. Hay que tener en cuenta que las columnas empiezan a numerarse en 0.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Parámetro !! Valor !! Obligatorio !! Defecto&lt;br /&gt;
|- &lt;br /&gt;
| db|| Nombre de la base de datos|| SI || nimitz&lt;br /&gt;
|- &lt;br /&gt;
| dbHost|| Host MySQL || SI || localhost&lt;br /&gt;
|- &lt;br /&gt;
| dbPort|| Puerto MySQL || NO || 3306&lt;br /&gt;
|- &lt;br /&gt;
| dbUsuario || Usuario de acceso a la base de datos|| SI ||&lt;br /&gt;
|- &lt;br /&gt;
| dbClave || Clave del usuario || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| rutaContactos || Ruta hasta el archivo de contactos || NO || /var/spool/MDtel/contactos&lt;br /&gt;
|- &lt;br /&gt;
| obsoletos || Si vale 1, marcar como obsoletos los contactos anteriores || NO || 0&lt;br /&gt;
|- &lt;br /&gt;
| diasCaducidad || Número de dias a partir de los cuales caducarán los contactos || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| idCampanna || Número de columna que contiene el ID de la campaña || SI||&lt;br /&gt;
|- &lt;br /&gt;
| idLista || Numero de columna que contiene el ID de la lista || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| prioridad || Número de columna que contiene la prioridad || NO || Nota: El valor es de 0 a 99. A mayor número mayor prioridad (se le llamará '''ANTES''')&lt;br /&gt;
|- &lt;br /&gt;
| tipoTarea|| Número de columna que contiene el tipo de tarea || NO || Nota: los posibles valores de la columna son : &amp;lt;br /&amp;gt; *A: Alta &amp;lt;br /&amp;gt; *M: Modificación &amp;lt;br /&amp;gt; *B: Baja&amp;lt;br /&amp;gt; Por defecto el valor es A&lt;br /&gt;
|- &lt;br /&gt;
| codCli || Número de columna del CSV que contiene el código de cliente || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| nombreCon || Número de columna del CSV que contiene el nombre || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| apellido1 || Número de columna del CSV que contiene el primer apellido|| NO ||&lt;br /&gt;
|- &lt;br /&gt;
| apellido2 || Número de columna del CSV que contiene el segundo apellido || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| empresa || Número de columna del CSV que contiene la empresa || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| direccion1 || Número de columna del CSV que contiene la dirección || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| direccion2 || Número de columna del CSV que contiene la dirección 2 || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| codPostal || Número de columna del CSV que contiene el código postal || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| localidad || Número de columna del CSV que contiene la localidad || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| provin || Número de columna del CSV que contiene la provincia || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| email || Número de columna del CSV que contiene el email || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_1 || Número de columna del CSV que contiene el primer número fijo del contacto || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_2 || Número de columna del CSV que contiene el segundo número fijo del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_3 || Número de columna del CSV que contiene el tercer número fijo del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_4 || Número de columna del CSV que contiene el cuarto número fijo del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_1 || Número de columna del CSV que contiene el primer número móvil del contacto || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_2 || Número de columna del CSV que contiene el segundo número móvil del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_3 || Número de columna del CSV que contiene el tercer número móvil del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_4 || Número de columna del CSV que contiene el CUARTO número móvil del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| edad || Número de columna del CSV que contiene la edad || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc1|| Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc2 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc3 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc4 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc5 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc6 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc7 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc8 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc1 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc2 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc3 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc4 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc5 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc6 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc7 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc8 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|-&lt;br /&gt;
| Idioma || Idioma del contacto || NO ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Funcionamiento =====&lt;br /&gt;
&lt;br /&gt;
Para ejecutar la utilidad se debe teclear la siguiente orden en la línea de comandos:&lt;br /&gt;
&lt;br /&gt;
'''cmd# cargaContactos.pl /&amp;lt;ruta hasta el conf&amp;gt;/cargaContactos.pconf &amp;lt;archivo CSV&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
El archivo con los contactos deberá ser un CSV con los campos separados por ';'. La utilidad parsea el archivo conforme a la distribución indicada en la configuración y crea las correspondientes entradas en las tablas '''ACD_CONTACTOS''' y '''ACD_CONTACTOS_CAMPANNAS.'''&lt;br /&gt;
&lt;br /&gt;
La utilidad crea un log en '''/var/log/cargaContactos.log''' en el que vuelca toda la operativa.&lt;br /&gt;
Por pantalla se va mostrando un lista con el ID asignado al contacto y el ID de campaña al que se le ha asignado.&lt;br /&gt;
&lt;br /&gt;
Un ejemplo de fichero de carga de contactos sería el siguiente: &lt;br /&gt;
&lt;br /&gt;
 #&lt;br /&gt;
 # Configuracion de cargaContactos.pconf&lt;br /&gt;
 #&lt;br /&gt;
 # Conexion de base de datos&lt;br /&gt;
 $db='nimitz';&lt;br /&gt;
 $dbHost = 'localhost';&lt;br /&gt;
 $dbPort = '3306';&lt;br /&gt;
 $dbUsuario = 'nimitz';&lt;br /&gt;
 $dbClave = 'LA QUE SEA';&lt;br /&gt;
 $diasCaducidad='300';&lt;br /&gt;
 $rutaGrab = '/var/spool/MDtel/contactos';&lt;br /&gt;
 $idCampanna = '31';&lt;br /&gt;
 $idLista = '32';&lt;br /&gt;
 $obsoletos = 0;&lt;br /&gt;
 $codCli = '1';&lt;br /&gt;
 $nombreCon = '2';&lt;br /&gt;
 $apellido1 = '3';&lt;br /&gt;
 $apellido2 = '4';&lt;br /&gt;
 $empresa = '5';&lt;br /&gt;
 $direccion1 = '6';&lt;br /&gt;
 $direccion2 = '7';&lt;br /&gt;
 $codPostal = '8';&lt;br /&gt;
 $localidad = '9';&lt;br /&gt;
 $provin = '10';&lt;br /&gt;
 $email = '11';&lt;br /&gt;
 $valFijo_1 = '12';&lt;br /&gt;
 $valFijo_2 = '13';&lt;br /&gt;
 $valFijo_3 = '14';&lt;br /&gt;
 $valFijo_4 = '15';&lt;br /&gt;
 $valMovil_1 = '16';&lt;br /&gt;
 $valMovil_2 = '17';&lt;br /&gt;
 $valMovil_3 = '18';&lt;br /&gt;
 $valMovil_4 = '19';&lt;br /&gt;
 $edad = '20';&lt;br /&gt;
 $nOpc1 = '21';&lt;br /&gt;
 $nOpc2 = '22';&lt;br /&gt;
 $nOpc3 = '23';&lt;br /&gt;
 $nOpc4 = '24';&lt;br /&gt;
 $cOpc1 = '25';&lt;br /&gt;
 $cOpc2 = '26';&lt;br /&gt;
 $cOpc3 = '27';&lt;br /&gt;
 $cOpc4 = '28';&lt;br /&gt;
 $prioridad = '29';&lt;br /&gt;
 $tipoTarea = '30';&lt;br /&gt;
&lt;br /&gt;
====Comportamiento de reprogramaciones de llamadas en función del estado del agente====&lt;br /&gt;
&lt;br /&gt;
Se ha preparado la siguiente maqueta:&lt;br /&gt;
&lt;br /&gt;
Campaña saliente.&lt;br /&gt;
Cola saliente progresiva.&lt;br /&gt;
Dos agentes logados en VIVAit Suite.&lt;br /&gt;
&lt;br /&gt;
En el formulario de la llamada se indica: llamada redirigida&lt;br /&gt;
Se selecciona el &amp;quot;check dirigida&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Las posibilidades de prueba son dos: &amp;quot;'''Cualquier agente'''&amp;quot; y &amp;quot;'''Solo agente'''&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Resultados son los siguientes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''Estado del agente''' || '''Modo Cualquier Agente'''|| '''Modo Solo Agente'''&lt;br /&gt;
|-&lt;br /&gt;
| '''Agente Preparado''' || Entra llamada a agente|| Entra llamada a agente&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente en Pausa'''||Entra llamada a otro agente disponible||Espera a agente y entra llamada.&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente Hablando'''||Espera a agente y entra llamada||Espera a agente y entra llamada.&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente en Tiempo administrativo'''||Espera a agente y entra llamada||Espera a agente y entra llamada.&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente no logado'''||Entra llamada a otro agenete disponible||Consume intento.&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente con una pestaña de chat abierta y el otro agente en pausa'''||Entra llamada a otro agente disponible||Espera a agente y entra llamada.&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente con dos pestañas de chat abiertas'''||Espera a agente y entra llamada||Espera a agente y entra llamada.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Movilidad ===&lt;br /&gt;
La movilidad es una función integral de las comunicaciones en la empresa. Cualquier empleado (usuario) es móvil en cierto grado, ya sea dentro o fuera de la organización. La solución óptima debe proporcionar continuidad de servicios y acceso a nuestros servicios, sin importar donde estemos.&lt;br /&gt;
&lt;br /&gt;
==== Ofrecer movilidad a un usuario ====&lt;br /&gt;
&amp;lt;!--parte daniel--&amp;gt;&lt;br /&gt;
Para permitir la movilidad a un usuario, puede ser en el momento de crear o editar un usuario en el apartado ''Administración de usuario'' en ''General'' del '''portal de administración ''VIVA''it'''.  Asignándole un '''''numero login''''' (numero personal corporativo para el usuario) y una '''''clave login''''' ( se debe asignar una clave por defecto, pero puede cambiarla en el [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_3.0#Portal_de_usuario |portal de usuario]]). &amp;lt;br/&amp;gt;Para más información[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Pesta.C3.B1a_Centralita | ver sección Portal de administración - General - Usuarios - administración de usuarios - Pestaña Centralita]].&lt;br /&gt;
&lt;br /&gt;
Además, de crear un permiso de la '''aplicación ''Centralita''''' a cualquier nivel, desde el apartado ''Permisos de usuarios'' en ''General'' del '''portal de administración ''VIVA''it'''.&amp;lt;br/&amp;gt;Para más información[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Asignaci.C3.B3n_de_Permisos_de_Usuario_por_Administrador | ver sección  Portal de administración - General - Usuarios - Permisos a usuarios]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''La movilidad permite''' disponer de las extensiones telefónicas empresariales en cualquier lugar. Por&lt;br /&gt;
ejemplo, con un ordenador portátil o smartphone en una ubicación remota con conexión a Internet,&lt;br /&gt;
podríamos tener registrada nuestra extensión remotamente, y así las llamadas hacia/desde nuestra&lt;br /&gt;
oficina serían enrutadas por Internet hasta el equipo en cuestión sin coste alguno.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--parte daniel--&amp;gt;&lt;br /&gt;
Todo terminal tiene asociado una extensión y deberá permitir la movilidad de usuarios. La extensión se configura cambiando a '''''SI''''' el campo '''''Hay Movilidad''''' desde el apartado ''Extensiones'' de ''Dispositivos'' en ''VIVAit Call'' del '''portal de administración ''VIVA''it'''. Para más información [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Extensiones | ver sección Portal de administración - VIVAit Call - Dispositivos - Extensiones]]&lt;br /&gt;
&lt;br /&gt;
==== ¿Cómo funcionan las extensiones? ====&lt;br /&gt;
&lt;br /&gt;
Primeramente el usuario debe tener los ejes apropiados en la tabla '''COM_USUARIOS_APLICACION''' (aplicación centralita).&lt;br /&gt;
&lt;br /&gt;
La extensión debe de tener ''un teléfono'' y por tanto ''un modelo de teléfono asociado.''&lt;br /&gt;
&lt;br /&gt;
Es tan simple como especificar '''la extensión, el usuario y la clave de este.'''&lt;br /&gt;
&lt;br /&gt;
Para corroborar el funcionamiento de esta hay ''dos métodos'':&lt;br /&gt;
&lt;br /&gt;
'''* CLI asterisk:'''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenEntraUsuarioMovil 25001 20001 1234'''&lt;br /&gt;
&lt;br /&gt;
Y como resultado obtenemos lo siguiente:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br /&amp;gt;&lt;br /&gt;
 MOVIL_TIPO_RESET='10'&amp;lt;br /&amp;gt;&lt;br /&gt;
 MOVIL_CAD_RESET='notify_yealink'&amp;lt;br /&amp;gt;&lt;br /&gt;
 MdintzRes='OK'&lt;br /&gt;
&lt;br /&gt;
El usuario con el login numérico 20001 se ha &amp;quot;movido&amp;quot; a la extensión 25001&lt;br /&gt;
&lt;br /&gt;
Ahora ''nos quitamos de esa extensión mediante el siguiente comando:''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenSaleUsuarioMovil 25001'''&lt;br /&gt;
&lt;br /&gt;
Resultado del comando:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MOVIL_TIPO_RESET='10'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MOVIL_CAD_RESET='notify_yealink'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzRes='OK'&lt;br /&gt;
&lt;br /&gt;
Las pruebas anteriores han sido '''con extensiones con movilidad y con usuario con/sin&lt;br /&gt;
propietario.'''&lt;br /&gt;
&lt;br /&gt;
Ahora las realizamos '''con extensiones sin movilidad'''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenEntraUsuarioMovil 25002 20001 1234'''&lt;br /&gt;
&lt;br /&gt;
Obteniendo:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzRes='movil_error_datos'&lt;br /&gt;
&lt;br /&gt;
Como era lo previsible no nos deja &amp;quot;movernos&amp;quot; a esa extensión ya que no tiene movilidad.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''&amp;lt;u&amp;gt;Si un usuario ya se ha movido a una extensión no se puede mover a otra si no es deslogandose de esta antes.&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Esta línea se comenta porque se ha preparado el sistema para que los ususarios se puedan logar en una nueva extensión y el sistema lo deslogue de la primera a la que se movió. La variable que controla este funcionamiento es MD_AUTODES, con dos posibles valores:&lt;br /&gt;
0, para que el usuario deba deslogarse de una extensión para logarse en otra.&lt;br /&gt;
1, para que sea el sistema el que deslogue automátiamente al usuario cuando cambia de una extensión de movilidad a otra.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;Si un usuario ya se ha movido a una extensión y se mueve a otra, el sistema lo deslogará de la primera para logarlo en la segunda.&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenEntraUsuarioMovil 21000 20001 1234'''&lt;br /&gt;
&lt;br /&gt;
Con salida:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MOVIL_EXTEN='25001'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MDintzRes='movil_ya_login'&lt;br /&gt;
&lt;br /&gt;
'''* Dialplan'''&lt;br /&gt;
&lt;br /&gt;
Para llamar a la función de movilidad hay que marcar el '''9992.'''&lt;br /&gt;
&lt;br /&gt;
 Nota.- Para comprobar que se realiza todo correctamente habría que mirar las trazas de Asterisk&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Grabación ===&lt;br /&gt;
&lt;br /&gt;
La grabación en '''''VIVA'''''it Call está diseñada para ser lo mas flexible posible.&lt;br /&gt;
&lt;br /&gt;
====Configuración====&lt;br /&gt;
&lt;br /&gt;
Si deseamos grabar, debemos activar que alguno de los dispositivos/elementos que intervienen en la llamada se grabe.&lt;br /&gt;
&lt;br /&gt;
Estos dispositivos/elementos son:&lt;br /&gt;
&lt;br /&gt;
* Nodo.&lt;br /&gt;
* Usuario con Centralita.&lt;br /&gt;
* Agente.&lt;br /&gt;
* Grupo ACD corporativo y de Contact Center.&lt;br /&gt;
* Enlace exterior.&lt;br /&gt;
* Extensión.&lt;br /&gt;
* Facilidades.&lt;br /&gt;
* Grupo: grupo de salto o grupo de operadoras.&lt;br /&gt;
* Sala de conferencia.&lt;br /&gt;
* VDN corporativo y de Contact Center.&lt;br /&gt;
* Pre-rutas.&lt;br /&gt;
&lt;br /&gt;
Por otro lado necesitaremos que la llamada pase por un nodo que sea grabador, es decir, que si la llamada esta configurada para que se grabe pero no pasa por ningún nodo grabador, la llamada no se grabará.&lt;br /&gt;
&lt;br /&gt;
Al configurar un nodo existen cuatro campos que intervienen en la grabación.&lt;br /&gt;
&lt;br /&gt;
''''Grabador''''&lt;br /&gt;
&lt;br /&gt;
Se configura en el portal en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Este campo corresponde con el campo [[BD.COM_NODOS#B_ES_GRABADOR|B_ES_GRABADOR]] de la tabla [[BD.COM_NODOS|COM_NODOS]] , este campo define si el nodo va a grabar las llamas que pasen por el que necesiten ser grabadas y no se estén grabando ya.&lt;br /&gt;
&lt;br /&gt;
Es un campo booleano los posibles valores en el portal son si/no y en la base de datos 1/0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''''Modo grabación infraestructura''''&lt;br /&gt;
&lt;br /&gt;
Su configuración se realiza en el portal, en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Este campo define como está configurada la infraestructura, este campo existe por compatibilidad con '''''VIVA'''''it suite y para poder configurar la grabación bajo demanda.&lt;br /&gt;
&lt;br /&gt;
Este campo corresponde con el campo [[BD.COM_NODOS#E_MODO_GRABACION_INFRAESTRUCTURA|E_MODO_GRABACION_INFRAESTRUCTURA]] de la tabla [[BD.COM_NODOS|COM_NODOS]], Este campo usa los valores del enumerado BD.ENUM.TModoGrabacionInfraestructura|TModoGrabacionInfraestructura]].&lt;br /&gt;
&lt;br /&gt;
La formula que se seguiría para ver si una llamada se graba en ese nodo es:&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 (NODO.E_MODO_GRABACION_INFRAESTRUCTURA) AND (NODO.B_ENRU_GRABAR OR CEN_PRE_RUTA.B_ENRU_GRABAR OR &amp;quot;OBJETO&amp;quot;.B_ENRU_GRABAR)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Que sería que si la infraestructura esta en NoGraba no se graba nada de lo que se rute en ese nodo y en cualquiera de los 2 otros caso (GrabaTodo o GrabaPorPeticion) se grabaría dependiendo de la configuración del Nodo, la ruta o el objeto en cuestión (preruta, grupo ACD, extension,...).&lt;br /&gt;
&lt;br /&gt;
''''Grabar enrutamiento''''&lt;br /&gt;
&lt;br /&gt;
Se configura en el portal en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Este campo define si van a grabar las llamadas que se enruten en este nodo.&lt;br /&gt;
&lt;br /&gt;
Campo [[BD.COM_NODOS#E_ENRU_GRABAR|E_ENRU_GRABAR]] de la tabla [[BD.COM_NODOS|COM_NODOS]] que usa los valores del enumerado [[BD.ENUM.TTipoEnruGrabar|TTipoEnruGrabar]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''''RecordCentral''''&lt;br /&gt;
&lt;br /&gt;
Se configura en el portal en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Define que instancia del recordCentral es la encargada de tratar las grabaciones de este nodo.&lt;br /&gt;
&lt;br /&gt;
Para aumentar el rendimiento a la hora de traerse las grabaciones, se pueden definir varias instancias de proceso recordCentral, este campo define cual de estas instancias se encargara de este nodo.&lt;br /&gt;
&lt;br /&gt;
====Vivait Tracker====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL LA ÚNICA REFERENCIA A VIVAIT TRACKER EN LA DOCUMENTACIÓN &amp;quot;Vivait supervisor&amp;quot; QUE TENGO DICE LO SIGUIENTE. &amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Desde '''''VIVA'''''it Supervisor,  que es la aplicación dirigida a Supervisores, ofrece la posibilidad de supervisar y gestionar grupos ACD, agentes, asignaciones, prioridades,etc. Se puede obtener acceso directo a las aplicaciones de grabación ('''''VIVA'''''it tracker) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL FIN EXPLICACIÓN. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL De la documentacion creada por ivan. &amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Esquematico actual del proyecto tracker &lt;br /&gt;
[[Archivo:Esquematico_tracker_1.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1º El tracker web llama al web service Remote login para iniciar sesión y determinar si tiene permisos para la escucha y descarga de grabaciones.&lt;br /&gt;
&lt;br /&gt;
2º Si la ubicación de la grabación es local, mira la ruta de esta y se procede a la escucha o descarga de esta.&lt;br /&gt;
&lt;br /&gt;
3º Si la ubicación de la grabación es remota, entra en escena el proxy. Es el que realiza la petición.&lt;br /&gt;
&lt;br /&gt;
4º Si utilizamos el tracker windows, este, como el tracker web, llama primero al web service remote login para la autenticación y tema de Permisos.&lt;br /&gt;
&lt;br /&gt;
5º Para descargar o escuchar una grabación desde el tracker windows, se llama al web service servidor de grabaciones pasándole simplemente el ID de segmento.mp3. Este web service, con el ID de segmento, se encarga de determinar la ubicación de la grabación.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL De la documentación creada por ivan. &amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Esquematico actual del proyecto tracker &lt;br /&gt;
[[Archivo:Esquematico_tracker_2_https.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1º El tracker web llama al web service Remote login para iniciar sesión (comunicación https) y determinar si tiene permisos para la escucha y descarga de grabaciones. Se elimina el proxy&lt;br /&gt;
&lt;br /&gt;
2º Si la ubicación de la grabación es local, mira la ruta de esta y se procede a la escucha o descarga de esta.&lt;br /&gt;
&lt;br /&gt;
3º Si la ubicación de la grabación es remota, se realiza una petición al host remoto. El tipo de petición vendrá fijada por base de datos (http, https, ftp,ftps)&lt;br /&gt;
&lt;br /&gt;
4º Si utilizamos el tracker windows, este, como el tracker web, llama primero al web service remote login para la autenticación y tema de permisos (comunicación https extremo a extremo).&lt;br /&gt;
&lt;br /&gt;
5º Para descargar o escuchar una grabación desde el tracker windows, se llama al web service servidor de grabaciones pasándole simplemente el ID de segmento.mp3. Este web service, con el ID de segmento, se encarga de determinar la ubicación de la grabación.&lt;br /&gt;
&lt;br /&gt;
[[#Grabación_(Vivait_Tracker)| Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operación_plataforma_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
=== Enrutamiento ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Enrutamiento.png|885px |center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Enfoque inicial ====&lt;br /&gt;
&lt;br /&gt;
[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Enfoque_inicial Acceso]&lt;br /&gt;
&lt;br /&gt;
==== Funcionamiento ====&lt;br /&gt;
El proceso de enrutamiento, como vimos en el esquemático, se compone de dos fases:&lt;br /&gt;
&lt;br /&gt;
# Preenrutameinto, que se encarga de tratar todas las llamadas&lt;br /&gt;
# Enrutamiento externo, que tiene módulos dedicados al enrutamiento hacia:&lt;br /&gt;
:*Enlaces externos. &lt;br /&gt;
:*Extensiones. &lt;br /&gt;
:*Usuarios de telefonía corporativa. &lt;br /&gt;
:*Facilidades. &lt;br /&gt;
:*Salas de conferencia. &lt;br /&gt;
:*Agentes de grupos ACD. &lt;br /&gt;
:*Grupos ACD. &lt;br /&gt;
:*Vdn. &lt;br /&gt;
:*Buzones para dejar mensaje. &lt;br /&gt;
:*Buzones para su gestión.&lt;br /&gt;
&lt;br /&gt;
Se asume que existen rutas directas entre todos los nodos de la red.&lt;br /&gt;
&lt;br /&gt;
Se asume que están directamente enrutadas todas las direcciones IP involucradas, tanto nodos, como terminales.&lt;br /&gt;
&lt;br /&gt;
Se asume que todas las facilidades están disponibles en todos los nodos, aunque es posible que la implementación sea diferente entre ellos.&lt;br /&gt;
&lt;br /&gt;
Los datos de entrada básicos al proceso de enrutamiento (pdEntr) son:&lt;br /&gt;
* Dispositivo&lt;br /&gt;
* Cola&lt;br /&gt;
* Origen&lt;br /&gt;
* Nodo entrada&lt;br /&gt;
* UCID&lt;br /&gt;
* CALLER_ID_NAME&lt;br /&gt;
* CALLER_ID_NUM&lt;br /&gt;
* DNIS&lt;br /&gt;
* Desvío por dialplan&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A partir de los datos de entrada básicos anteriores se pueden deducir los siguientes valores:&lt;br /&gt;
* Sede del dispositivo de entrada&lt;br /&gt;
* Sede del nodo de entrada&lt;br /&gt;
* Ancho de banda disponible en la sede del dispositivo&lt;br /&gt;
* Ancho de banda disponible en la sede del nodo&lt;br /&gt;
* Categoría entrante&lt;br /&gt;
* Valor del eje1 asignado a la llamadas&lt;br /&gt;
* CALLER_ID_NUM_EXTERNO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los datos de salida globales del proceso de enrutamiento (pdSale) son:&lt;br /&gt;
* Categoría saliente&lt;br /&gt;
* Código de cliente (opcional)&lt;br /&gt;
* Tipo de destino:	&lt;br /&gt;
:* No existe&lt;br /&gt;
:* Ruta externa&lt;br /&gt;
:* Extensión&lt;br /&gt;
:* Usuario de telefonía corporativa&lt;br /&gt;
:* Facilidad&lt;br /&gt;
:* Salas de conferencia&lt;br /&gt;
:* Agentes de grupos ACD&lt;br /&gt;
:* Grupos ACD&lt;br /&gt;
:* VDN&lt;br /&gt;
:* Buzón para dejar mensaje. &lt;br /&gt;
:* Buzón para dejar mensaje por ocupado. &lt;br /&gt;
:* Buzón para dejar mensaje por no contestación. &lt;br /&gt;
:* Buzón para su gestión.&lt;br /&gt;
* Destinatario (cuando se trata de un usuario o de un agente)&lt;br /&gt;
* Valor del eje1 asignado a la llamada&lt;br /&gt;
* Buzón de las extensiones y usuarios que los tengan asignados&lt;br /&gt;
* Si el buzón está en nodo distinto al de entrada&lt;br /&gt;
* DESVIO_INCONDICIONAL (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable) &lt;br /&gt;
* DESVIO_NO_CONTESTA (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable) &lt;br /&gt;
* DESVIO_OCUPADO (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable) &lt;br /&gt;
* DESVIO_FUERA_SERV (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los datos de salida para cada una de las posibles rutas en orden son (nn va de 01 maxRutas [nn son dos dígitos decimales]):&lt;br /&gt;
* CONTADOR_ABDE_nn (contador para control de ancho de banda en sede de dispositivo de entrada).  &lt;br /&gt;
* CONTADOR_ABNE_nn (contador para control de ancho de banda en sede de nodo de entrada).  &lt;br /&gt;
* CONTADOR_ABDS_nn (contador para control de ancho de banda en sede de dispositivo de salida).  &lt;br /&gt;
* CONTADOR_ABNS_nn (contador para control de ancho de banda en sede de nodo de salida).  &lt;br /&gt;
* CALLER_NAME_SAL_nn , puede salir de una extensión, un usuario o de un agente. &lt;br /&gt;
* CALLER_NUM_SAL_nn, puede salir de una extensión, un usuario o de un agente.  &lt;br /&gt;
* DESTINO_SAL_nn , en general, el valor C_NOMBRE o destino de salida.  &lt;br /&gt;
* RUTA_NODO_nn , Cadena de marcación para ir la nodo que soporta DESTINO_SAL_nn, si es distinto del nodo de entrada.  &lt;br /&gt;
* RUTA_SAL_nn &lt;br /&gt;
:* Extensión: cadena marcación. &lt;br /&gt;
:* Facilidad: E_CODIGO_FACILIDAD obtenido de la tabla CEN_FACILIDADES. &lt;br /&gt;
:* Usuario: cadena marcación de la extensión asignada al usuario en movilidad o en propiedad. &lt;br /&gt;
:* Agente: cadena marcación de la extensión a la que está conectado el agente. &lt;br /&gt;
:* Ruta externa: contexto que gestiona la llamada saliente.&lt;br /&gt;
&lt;br /&gt;
=====Fase preenrutamiento =====&lt;br /&gt;
&lt;br /&gt;
La fase de preenrutamiento (basada en la tabla CEN_PRE_RUTA) se usa en todas las llamadas entrantes, tanto internas, como externas. Permite desarrollar un “prerouting” estándar para ACD y para telefonía corporativa.&lt;br /&gt;
&lt;br /&gt;
Los datos de entrada al proceso de enrutamiento son iguales a los del proceso global de enrutamiento, excepto en que este proceso no usa el nodo de entrada ya que es independiente de éste.&lt;br /&gt;
&lt;br /&gt;
Los datos de salida de la fase de preenrutamiento:&lt;br /&gt;
* D_CATEGORIA_SAL &lt;br /&gt;
* COD_CLIENTE (opcional) &lt;br /&gt;
* TIPO_DESTINO_SAL&lt;br /&gt;
:* No existe.   &lt;br /&gt;
:* Volver a preenrutar.   &lt;br /&gt;
:* Ruta externa.   &lt;br /&gt;
:* Extensión.   &lt;br /&gt;
:* Usuario de telefonía corporativa.   &lt;br /&gt;
:* Facilidad.   &lt;br /&gt;
:* Sala de conferencia.   &lt;br /&gt;
:* Agente de grupos ACD.   &lt;br /&gt;
:* Grupos ACD.   &lt;br /&gt;
:* VDN.   &lt;br /&gt;
:* Buzón para dejar mensaje.   &lt;br /&gt;
:* Buzón para dejar mensaje por ocupado.   &lt;br /&gt;
:* Buzón para dejar mensaje por no contestación.   &lt;br /&gt;
:* Buzón para su gestión. &lt;br /&gt;
* COD_CLIENTE &lt;br /&gt;
* Valor del eje1 asignado a la llamada &lt;br /&gt;
* CALLER_NAME &lt;br /&gt;
* CALLER_NUM &lt;br /&gt;
* DESTINO&lt;br /&gt;
&lt;br /&gt;
El proceso de preenrutamiento consiste en seleccionar un único registro de la tabla CEN_PRE_RUTA y, con sus valores y con los valores de entrada al proceso, generar los datos de salida.&lt;br /&gt;
&lt;br /&gt;
Un posible tipo de salida es &amp;quot;Volver a preenrutar&amp;quot;. Esto permite realimentar el proceso un máximo de &amp;quot;max_pre_ruta_regs&amp;quot; veces (en archivo .conf) para simplificar configuración. Sólo tiene sentido realimentar si se ha hecho alguna modificación en los datos de selección de registro, ya que en caso contrario se produciría un bucle que el proceso de preenrutamiento es capaz de detectar y evitar.&lt;br /&gt;
&lt;br /&gt;
Para elegir el registro de CEN_PRE_RUTA, se tienen en cuenta los datos de entrada de la llamada, de modo que se cumpla con todos los puntos siguientes: &lt;br /&gt;
* ID_CATEGORIA_ENT igual a la del dispositivo de entrada.  &lt;br /&gt;
* CALLER_NUM de entrada  &lt;br /&gt;
:* Debe comenzar por la cadena C_ORIGEN_ENT_PREF o C_ORIGEN_ENT_PREF=NULL, con menos prioridad. Es conveniente rellenar este dato del modo más restrictivo que sea posible, independientemente de C_ORIGEN_ENT_EXPR. Ello permite disminuir el uso innecesario de recursos de evaluación de expresiones regulares.    &lt;br /&gt;
:* Debe de tener un número de dígitos igual o superior a N_ORIGEN_ENT_MIN_DIGITOS, si este valor no es NULL o cero.    &lt;br /&gt;
:* Debe de tener un número de dígitos igual o inferior a N_ORIGEN_ENT_MAX_DIGITOS, si este valor no es NULL o cero.    &lt;br /&gt;
:* Debe cumplir la expresión regular C_ORIGEN_ENT_EXPR, si ésta no es NULL.  &lt;br /&gt;
* DNIS empiece con C_DESTINO_ENT_PREF o C_DESTINO_ENT_PREF=NULL. Es conveniente rellenar este dato del modo más restrictivo que sea posible, independientemente de C_DESTINO_ENT_EXPR. Ello permite disminuir el uso innecesario de recursos de evaluación de expresiones regulares.  &lt;br /&gt;
* Si varias entradas cumplen la condición anterior, se prueba primero la que el campo C_DESTINO_ENT_PREF tenga una longitud mayor y, de entre éstas, la que C_ORIGEN_ENT_PREF tenga una longitud mayor.  &lt;br /&gt;
* DNIS tenga un número de dígitos igual o superior a N_DESTINO_ENT_MIN_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* DNIS tenga un número de dígitos igual o inferior a N_ORIGEN_ENT_MIN_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* DNIS cumpla la expresión regular C_DESTINO_ENT_EXPR, si ésta no es NULL. &lt;br /&gt;
&lt;br /&gt;
Si no se encuentra ninguna entrada adecuada, quiere decir que es una llamada prohibida y se devuelve el tipo de destino &amp;quot;No existe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Puede conseguirse un destino &amp;quot;por defecto&amp;quot; diferente, creando una entrada que encaje siempre para cada categoría: C_ORIGEN_ENT, C_ORIGEN_ENT_MIN_DIGITOS, C_ORIGEN_ENT_MAX_DIGITOS, C_ORIGEN_ENT_EXPR, C_DESTINO_ENT_PREF, N_DESTINO_ENT_MIN_DIGITOS, N_DESTINO_ENT_MAX_DIGITOS y C_DESTINO_ENT_EXPR a valor NULL.&lt;br /&gt;
&lt;br /&gt;
Una vez elegida una entrada, ésta puede transformar o sustituir el valor de ID_CATEGORIA, CALLER_NAME, CALLER_NUM, DESTINO, COD_CLIENTE y/o EJE1_MSK a la salida del proceso. &lt;br /&gt;
&lt;br /&gt;
Si ID_CATEGORIA_SAL es cero, se propaga a la salida el valor de la entrada. En caso contrario, se sustituye. &lt;br /&gt;
&lt;br /&gt;
Si C_CALLER_NAME está vacío, se mantiene el valor hubiese a la entrada. En caso contrario, se sustituye. &lt;br /&gt;
&lt;br /&gt;
C_CALLER_NUM puede contener una cadena que identifica el nuevo CALLER_NUM. Además, si la cadena comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo CALLER_NUM es igual al de entrada al proceso. &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo CALLER_NUM es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo. &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;. &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al CALLER_NUM de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo CALLER_NUM de salida. Si la expresión regular no se cumpliese, se propagará el valor de entrada al proceso. &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante que sustituye el valor a la entrada.&lt;br /&gt;
&lt;br /&gt;
Cada vez que se utilice una preruta, se incrementará el valor de N_CONTA si el valor de N_UMBRAL es mayor que cero.&lt;br /&gt;
&lt;br /&gt;
Un valor N_UMBRAL mayor que cero permite modificar el destino de salida cuando el valor de actual de N_CONTA (antes de incrementarse) supere o sea igual el valor de N_UMBRAL. Si se cumple la condición indicada, se usa como destino tras el preenrutamiento, los valores de los campos E_TIPO_DESTINO_SAL_2 y C_DESTINO_SAL_2.&lt;br /&gt;
&lt;br /&gt;
Si el valor de N_UMBRAL es menor o igual a cero o si N_CONTA es inferior a N_UMBRAL, se usa como destino tras el preenrutamiento, los valores de los campos E_TIPO_DESTINO_SAL_1 y C_DESTINO_SAL_1.&lt;br /&gt;
Con este mecanismo de N_CONTA y N_UMBRAL, se pretende facilitar el discriminar a los llamantes reincidentes, cuando sea necesario. &lt;br /&gt;
&lt;br /&gt;
Un proceso periódico externo debe encargarse de poner a cero o decrementar el valor de N_CONTA.&lt;br /&gt;
Como resultado de los procesos de filtrado y de verificación anteriores, se habrá obtenido un TIPO_DESTINO_SAL y un C_DESTINO_SAL a partir de los campos con sufijo &amp;quot;_1&amp;quot; o &amp;quot;_2&amp;quot;, con una metodología similar al caso C_CALLER_NUM.&lt;br /&gt;
&lt;br /&gt;
C_DESTINO_SAL_x puede contener cadena que permite obtener el nuevo destino. Además, si la cadena comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo destino es igual al de entrada al proceso.  &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo destino es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo.  &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;.  &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al destino de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo destino de salida. Si la expresión regular no se cumpliese, quiere decir que es una llamada prohibida y se encaminará hacia una facilidad por defecto.  &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante que sustituye el valor a la entrada. &lt;br /&gt;
Información de salida del proceso de preenrutamiento: Cuando TIPO_DESTINO_SAL_x toma los valores que se indican, el proceso global de enrutamiento sólo requiere de preenrutamiento y la información a devolver se obtiene dependiendo de TIPO_DESTINO_SAL_x: &lt;br /&gt;
* No existe: Se asume que no se conoce un destino para los datos de entrada, por lo que la llamada se encamina hacia una facilidad por defecto que gestiona su tratamiento.  &lt;br /&gt;
* Extensión: A partir de las tablas CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar la extensión en el nodo principal y en el secundario.  &lt;br /&gt;
* Facilidad: A partir de las tablas CEN_DISPOSITIVOS, CEN_FACILIDADES y CEN_NODOS.  &lt;br /&gt;
* Usuario de telefonía corporativa: A partir de las tablas CEN_USUARIOS, CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar al usuario en el nodo principal y en el secundario de la extensión que corresponde en base a movilidad, con prioridad, o en base a propiedad.  El caso de movilidad no se tiene en cuenta si el proceso de enrutamiento se realiza en &amp;quot;modo supervivencia&amp;quot;.  &lt;br /&gt;
* Sala conferencia: A partir de las tablas CEN_SALAS_CONFERENCIAS y CEN_NODOS.  &lt;br /&gt;
* Agente de ACD: A partir de las tablas ACD_USUARIOS, DAT_TR_ACD_EXTENSIONES, CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar al agente en el nodo principal y en el secundario.  &lt;br /&gt;
* VDN: A partir de las tablas ACD_VDN y CEN_NODOS, se devolverán los valores que permiten alcanzar al VDN en su nodo.  &lt;br /&gt;
* Grupo ACD: A partir de las tablas ACD_COLAS y CEN_NODOS, se devolverán los valores que permiten alcanzar al grupo ACD en su nodo. &lt;br /&gt;
&lt;br /&gt;
El campo B_GENERAR_SEGMENTO de la tabla CEN_PRE_RUTA indica al proceso de preenrutamiento que es preciso generar un segmento de tipo &amp;quot;preenrutamiento&amp;quot;. En el segmento generado, se rellena el campo C_ETIQUETA1 del nuevo segmento con el valor que contiene el campo homónimo del registro asociado en la tabla CEN_LISTA_PRE_RUTAS.&lt;br /&gt;
&lt;br /&gt;
===== Fase de enrutamiento en casos en que el destino no es externo =====&lt;br /&gt;
Datos de entrada al proceso de enrutamiento externo: iguales a los de salida del proceso de preenrutamiento (pdPreSale), uniéndose a éstos los datos globales de entrada al proceso (pdEntr). &lt;br /&gt;
&lt;br /&gt;
Datos de salida de la fase de enrutamiento: iguales que los del proceso global de enrutamiento (pdSale). &lt;br /&gt;
&lt;br /&gt;
Específicamente y sólo para los casos en que el destino es una extensión (tipo de destino extensión, usuario de telefonía corporativa o agente) es cuando son válidos los datos correspondientes al buzón asociado y los datos de los posibles desvíos previstos. &lt;br /&gt;
&lt;br /&gt;
También en este caso, se prevén dos posibles rutas, una se corresponde con el acceso a la extensión en el nodo principal de ésta y la otra en el nodo secundario. &lt;br /&gt;
&lt;br /&gt;
En el resto de tipos de destino, sólo se prevé una ruta que puede incluir o no un enlace internodal. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Fase de enrutamiento en el caso de destino externo =====&lt;br /&gt;
Datos de entrada al proceso de enrutamiento externo: iguales a los de salida del proceso de preenrutamiento (pdPreSale), uniéndose a éstos los datos globales de entrada al proceso (pdEntr). &lt;br /&gt;
Datos de salida de la fase de enrutamiento: iguales que los del proceso global de enrutamiento (pdSale). &lt;br /&gt;
&lt;br /&gt;
Se elige los primeros &amp;quot;max_ruta&amp;quot; registros (configurado en archivo .conf) en CEN_DESTINOS_EXTERNOS unido con CEN_RELACION_DESTINOS_ENLACES_EXTERNOS que, teniendo en cuenta los datos de entrada al proceso de enrutamiento, cumpla con todos los puntos siguientes: &lt;br /&gt;
* ID_CATEGORIA_ENT igual a la de salida del proceso de preenrutamiento.  &lt;br /&gt;
* C_DESTINO_SAL de proceso de preenrutamiento empiece con C_DESTINO_ENT_PREF. &lt;br /&gt;
* Si varias entradas cumplen la condicion anterior, se prueba primero la que el campo C_DESTINO_ENT_PREF tenga una longitud mayor.  &lt;br /&gt;
* C_DESTINO_SAL tenga un número de dígitos igual o superior a N_DESTINO_ENT_MIN_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* C_DESTINO_SAL tenga un número de dígitos igual o inferior a N_DESTINO_ENT_MAX_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* C_DESTINO_SAL cumpla la expresión regular C_DESTINO_ENT_EXPR, si ésta no es NULL. &lt;br /&gt;
&lt;br /&gt;
Aparte de la longitud del campo C_DESTINO_ENT_PREF, se usa N_PRIORIDAD como campo para ordenar los registros y seleccionar lo &amp;quot;max_ruta&amp;quot; primeros. &lt;br /&gt;
&lt;br /&gt;
Una vez que un registro es válido, se descartan todos los registros cuyo C_DESTINO_ENT_PREF es diferente del primero seleccionado. &lt;br /&gt;
&lt;br /&gt;
Como resultado de los procesos de filtrado y de verificación anteriores, se habrá obtenido hasta un máximo de &amp;quot;max_rutas&amp;quot; valores para posibles rutas. Las posibles propagaciones y transformaciones en los datos de cada ruta son función de los datos de cada registro seleccionado: &lt;br /&gt;
&lt;br /&gt;
CALLER_NAME_nn: Si C_CALLER_NAME está vacío, se propaga el valor de entrada. En caso contrario, se sustituye. &lt;br /&gt;
&lt;br /&gt;
CALLER_NUM_nn: Sale de C_CALLER_NUM que puede contener una cadena que identifica el nuevo CALLER_NUM_n. Además, si C_CALLER_NUM comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo CALLER_NUM_nn es igual al de entrada al proceso.  &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo CALLER_NUM_nn es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo.  &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;.  &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al CALLER_NUM de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo CALLER_NUM de salida. Si la expresión regular no se cumpliese, se propaga el valor de entrada al proceso.  &lt;br /&gt;
* &amp;quot;&amp;gt;&amp;quot; Si existe valor para CALLER_NUM_EXTERNO, se propagará éste a la salida. En caso contrario y si no está vacía la cadena que queda al eliminar el prefijo &amp;quot;&amp;gt;&amp;quot;, se susituye en la salida por el valor de la cadena sin prefijo. Si la cadena estuviese únicamente constituida por el valor &amp;quot;&amp;gt;&amp;quot;, se propaga el valor de entrada.  &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante sin ninguna modificación. &lt;br /&gt;
&lt;br /&gt;
C_DESTINO_SAL_nn: Se obtiene a partir de C_DESTINO_SAL que puede contener una cadena que identifica el nuevo destino. Además, si la cadena comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo destino es igual al de entrada al proceso. &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo destino es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo. &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;. &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al destino de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo destino de salida. Si la expresión regular no se cumpliese, se propaga el valor de entrada al proceso. &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante sin ninguna modificación. &lt;br /&gt;
&lt;br /&gt;
RUTA_NODO_nn: Sólo se usa si el nodo de salida es diferente del nodo de entrada. Contiene la cadena de marcación para ir la nodo que soporta DESTINO_SAL_nn. Sale del campo C_FORMATO_DIAL (sustituyendo variables) correspondiente al tipo de dispositivo del enlace exterior. &lt;br /&gt;
&lt;br /&gt;
RUTA_SAL_nn: Es el campo C_DATO_ASTERISK obtenido a partir del registro en la tabla CEN_ENLACE_EXTERIOR que se corresponde con ID_ENLACE_EXTERIOR de la tabla CEN_RELACION_DESTINOS_ENLACES_EXTERNOS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Control de ancho de banda ===&lt;br /&gt;
&lt;br /&gt;
Para el control de ancho de banda, primero hemos de tener en consideración que una llamada puede tener asociadas hasta cuatro sedes&lt;br /&gt;
:* Sede del terminal origen (terminal A)&lt;br /&gt;
:* Sede del nodo de registro del terminal origen (nodo A)&lt;br /&gt;
:* Sede del terminal destino (terminal B)&lt;br /&gt;
:* Sede del nodo de registro del terminal destino (nodo B)&lt;br /&gt;
&lt;br /&gt;
Además hemos de tener en cuenta que el audio de la conversación podrá ir:&lt;br /&gt;
:* De manera directa entre terminal A y terminal B&lt;br /&gt;
:* De manera indirecta, a través de los nodos A y B&lt;br /&gt;
&lt;br /&gt;
[[Archivo:ancho de banda.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Cuando se va a cursar una llamada de terminal A a terminal B, el proceso de enrutamiento del nodo A devuelve 4 variables de canal al dialplan:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! Variable!!Campos &lt;br /&gt;
|- &lt;br /&gt;
|R_ABDE_xx||R = Variable de rutas --- AB = ancho de banda --- D = dispositivo --- E = Entrante --- xx = de 0 a 3&lt;br /&gt;
|-&lt;br /&gt;
|R_ABNE_xx||R = Variable de rutas --- AB = ancho de banda --- N = nodo --- E = Entrante --- xx = de 0 a 3&lt;br /&gt;
|-&lt;br /&gt;
|R_ABDS_xx||R = Variable de rutas --- AB = ancho de banda --- D = dispositivo --- S = Saliente --- xx = de 0 a 3&lt;br /&gt;
|- &lt;br /&gt;
|R_ABNS_xx||R = Variable de rutas --- AB = ancho de banda --- N = nodo --- S = Saliente --- xx = de 0 a 3&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El valor de cada variable es una cadena del tipo '''AB.wwww.xxxx.y.z''' donde cada valor es:&lt;br /&gt;
:* '''wwww''' --&amp;gt; id de sede&lt;br /&gt;
:* '''xxxx''' --&amp;gt; ancho de banda total de la sede&lt;br /&gt;
:* '''y''' --&amp;gt; número de llamadas a sumar si conversación directa&lt;br /&gt;
:* '''z''' --&amp;gt; número de llamadas a sumar si conversación indirecta&lt;br /&gt;
&lt;br /&gt;
Por otro lado tenemos que tener en cuenta que el dialplan tiene control de las llamadas que cada sede puede cursar&lt;br /&gt;
&lt;br /&gt;
De esta forma, cuando existe una nueva llamada el dialplan aplica la fórmula, suma el resultado al número de llamadas en curso y lo compara con el máximo...si el resultado es mayor que le máximo la llamada no se cursará por congestión&lt;br /&gt;
&lt;br /&gt;
Configuraremos el ancho de banda por sede en el portal de administración y el consumo que hace cada llamada en la variable '''AB_CONSUMO_LLAMADA''' del fichero '''ext_MDtel_particular.conf''' de cada nodo de conmutación; el valor por defecto es 32&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Puesto de trabajo ==&lt;br /&gt;
El puesto de trabajo del agente en la plataforma '''''VIVA'''''it  (para el producto '''''VIVA'''''it Suite) estará compuesto por:&lt;br /&gt;
* PC (típicamente windows) en el que reside la aplicación '''''VIVA'''''it Desk&lt;br /&gt;
* Terminal telefónico con extensión física asociada.&lt;br /&gt;
&lt;br /&gt;
Para más información [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Puestos | ver sección Portal de administración-VIVAit Suite ACD+ - Puestos]].&lt;br /&gt;
&lt;br /&gt;
=== Relación PC/teléfono en puesto de trabajo ===&lt;br /&gt;
&lt;br /&gt;
Existirá una relación única entre nombre PC y extensión física asociada, si bien los agentes se identificarán por su login que les acompaña al puesto de trabajo en el que se loguen&lt;br /&gt;
Existe un procedimiento documentado para la operativa de cambio de puesto de trabajo, en caso de ser necesario el cambio de PC o de teléfono de un puesto de trabajo.&lt;br /&gt;
==== Procedimiento para un cambio de puesto de trabajo ====&lt;br /&gt;
Se basa en una asignación de PC a teléfono relaccionando la extensión telefónica del terminal físico con el nombre del puesto de trabajo. La configuración de dicha asociación se realiza en el portal de administración de la plataforma. &lt;br /&gt;
&lt;br /&gt;
Cualquier cambio que se realice en terminal telefónico o PC de agente ha de mantener la asociación en el portal a efectos de permitir el funcionamiento del sistema.&lt;br /&gt;
&lt;br /&gt;
A continuación se reflejan los cambios más habituales:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cambio !! Procedimiento !! Punto de acción&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| Cambio de ubicación de un PC || Opción 1.- Renombrar el PC para que conserve el nombre que tenía el anterior en esa ubicación || PC de agente&lt;br /&gt;
|-&lt;br /&gt;
|  Opción 2.- Rehacer la asignación extensión/puesto || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot;| Instalación de PC nuevo en puesto existente || Opción 1.- Renombrar el PC para que conserve el nombre que tenía el anterior en esa ubicación || PC de agente&lt;br /&gt;
|-&lt;br /&gt;
| Opción 2.- Rehacer la asignación extensión/puesto || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| Cambio de nombre en un PC || Rehacer asignación extensión/puesto || Rehacer asignación extensión/puesto&lt;br /&gt;
|-&lt;br /&gt;
|Cambio de ubicación de un teléfono  || Rehacer la asignación extensión/puesto&lt;br /&gt;
 || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| Instalación de un teléfono nuevo en puesto existente || Rehacer la asignación extensión/puesto || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| Instalación de un nuevo puesto de agente|| Hacer asignación extensión/puesto || Portal de administración&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:relacion_puesto_agente.png|center|500px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Estructura de aplicaciones en puesto de trabajo ===&lt;br /&gt;
Las aplicaciones del puesto de trabajo pueden estar ubicadas en cualquier carpeta del sistema. Es importante tener en cuenta que los procesos de actualización, logs… escriben en dichas carpetas, por lo que el usuario de windows deberá tener permisos de lectura/escritura y borrado sobre dichas carpetas&lt;br /&gt;
La instalación del puesto de trabajo es muy liviana para el sistema; las aplicaciones ocupan poco espacio y no se modifican ficheros del sistema operativo (registry o similares)&lt;br /&gt;
Los ficheros importantes son&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Fichero !! Descrición&lt;br /&gt;
|-&lt;br /&gt;
| Vivait-desk.exe || Contiene la aplicación '''''VIVA'''''it Desk de agente&lt;br /&gt;
|-&lt;br /&gt;
| vivait_desk_dll.dll||Este fichero contiene controles sobre los formularios (controles de&lt;br /&gt;
texto, algunas reglas de obligatoriedad…)&lt;br /&gt;
|-&lt;br /&gt;
| nimitz.ini || Configuración del puesto de agente&lt;br /&gt;
|-&lt;br /&gt;
| lanzador.exe || Aplicación de actualización de versiones&lt;br /&gt;
|-&lt;br /&gt;
| lanzador.ini || Configuración del actualizador de aplicaciones&lt;br /&gt;
|-&lt;br /&gt;
| Carpeta forms || En esta carpeta están ubicados los formularios que se abren ante llamada entrante o saliente&lt;br /&gt;
|-&lt;br /&gt;
| Carpeta imágenes || Contiene las imágenes izquierda y derecha de la barra de '''''VIVA'''''it Desk&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Secciones de utilidad en nimitz.ini ===&lt;br /&gt;
&lt;br /&gt;
==== Configuración del puesto de agente ====&lt;br /&gt;
&lt;br /&gt;
El fichero nimitz.ini contiene la configuración del puesto de agente; sus principales parámetros son:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| |''' Fichero'''&lt;br /&gt;
|| '''Descripción'''&lt;br /&gt;
|-&lt;br /&gt;
|Sección [bd1]&lt;br /&gt;
||host=&amp;quot;ip_BBDD_tiempo_real&amp;quot;&lt;br /&gt;
puerto=&amp;quot;Nº puerto&amp;quot;&lt;br /&gt;
basedatos=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
usuario=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
clave=&amp;quot;UIk5jMY9PVX6ogg=&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Contiene información para la conexión a BBDD de tiempo real, en la que '''''VIVA'''''it Desk fundamentalmente inserta información&lt;br /&gt;
|-&lt;br /&gt;
|Sección [bd2]&lt;br /&gt;
||host=&amp;quot; ip_BBDD_replica &amp;quot;&lt;br /&gt;
puerto=&amp;quot;Nº puerto&amp;quot;&lt;br /&gt;
basedatos=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
usuario=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
clave=&amp;quot;UIk5jMY9PVX6ogg=&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Contiene información para la conexión a BBDD de réplica, en la que '''''VIVA'''''it Desk solo leerá información&lt;br /&gt;
|-&lt;br /&gt;
|Sección [telefono]&lt;br /&gt;
||pruebas=1 (Valores válidos 0 ó 1)&lt;br /&gt;
Activación de funcionalidad &amp;quot;servicio técnico&amp;quot; en '''''VIVA'''''it Desk.&lt;br /&gt;
&lt;br /&gt;
puesto=&amp;quot;Nombre puesto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Sección [trazas]&lt;br /&gt;
|| nivel=3&lt;br /&gt;
&lt;br /&gt;
archivo=1&lt;br /&gt;
&lt;br /&gt;
consola=0&lt;br /&gt;
&lt;br /&gt;
sobreescribir=1&lt;br /&gt;
&lt;br /&gt;
Activación de generación de ficheros de trazas &amp;quot;viva-desk.log&amp;quot; en carpeta de aplicaciones &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Parámetros en invocación a '''''VIVA'''''it Desk ===&lt;br /&gt;
&lt;br /&gt;
La aplicación '''''VIVA'''''it Desk puede ser invocada con una serie de parámetros que condicionan su funcionamiento; los parámetros son:&lt;br /&gt;
* Primer parámetro: Nombre del archivo .ini; usado como alternativa al fichero por defecto &amp;quot;nimitz.ini&amp;quot;&lt;br /&gt;
* Segundo parámetro: Nombre de puesto; usado como alternativa al nombre de puesto del ordenador&lt;br /&gt;
* Tercer parámetro: Nombre de login; para forzar un usuario; es de utilidad si el sistema está configurado como &amp;quot;confiar en sistema operativo&amp;quot;, en cuyo caso no permite seleccionar un login de agente para acceder a la aplicación&lt;br /&gt;
&lt;br /&gt;
=== Instalación y actualización de aplicaciones de puestos de trabajo ===&lt;br /&gt;
La instalación y actualización de las aplicaciones en el puesto de trabajo pasan por disponer de los ficheros “lanzador.exe” y “lanzador.ini” (debidamente configurado) dentro de la carpeta en la que se desee instalar.&lt;br /&gt;
Lanzando la aplicación “lanzador.exe” se instalará o actualizará el sistema. &lt;br /&gt;
&lt;br /&gt;
El fichero “lanzador.ini” tiene el siguiente aspecto:&lt;br /&gt;
 URL=&amp;quot;http://IP_Servidor:8180/WSActualizaXML/actualizar.xml&amp;quot;&lt;br /&gt;
 BASE_URL_DESCARGAS=&amp;quot;http://IP_servidor:8180/XMLFILES/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Servicio técnico en '''''VIVA'''''it Desk ===&lt;br /&gt;
La activación de la funcionalidad de servicio técnico en '''''VIVA'''''it Desk nos permite realizar sincronizaciones manuales de la aplicación y activar trazas a nivel de Base de Datos o a nivel de log sobre el propio '''''VIVA'''''it Desk. Pulsando el botón derecho del ratón sobre la barra '''''VIVA'''''it Desk accederemos a las capacidades de soporte técnico&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Funcionamiento de la plataforma en modo emergencia ==&lt;br /&gt;
== Accesos Web ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Aplicación !! Enlace&lt;br /&gt;
|-&lt;br /&gt;
|Portal de administración '''''VIVA'''''it Suite || http://ip_admin:8180/Vivait-Call&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker||http://ip_tracker:8180/Vivait-Tracker&lt;br /&gt;
|-&lt;br /&gt;
|Monitor Web||http://ip_monitor:8180/MonitorWeb&lt;br /&gt;
|-&lt;br /&gt;
|Monitorización Zabbix||http://ip_zabbix:80/zabbix&lt;br /&gt;
|-&lt;br /&gt;
|Base de datos tiempo real||http://ip_bbdd_tr:80/phpmyadmin/&lt;br /&gt;
|-&lt;br /&gt;
|Base de datos réplica||http://ip_bbdd_replica:80/phpmyadmin&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Permisos de aplicaciones ===&lt;br /&gt;
Se crean a través del '''portal de administración ''VIVA''it''' . Debe conocerse como funcionan los ejes [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Ejes| ver sección Portal de administracion - General - Ejes]] y que existen cuatro aplicaciones creadas en la plataforma:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:17_2 Pestaña Genera - Usuarios - Explicacion permisos.png|center]]&lt;br /&gt;
&lt;br /&gt;
La forma como dar permisos de aplicaciones a un usuario esta explicada en la [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Asignaci.C3.B3n_de_Permisos_de_Usuario_por_Administrador | sección  Portal de administracion - General - Usuarios ]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elementos monitorizados del sistema ==&lt;br /&gt;
===Generalidades de Zabbix===&lt;br /&gt;
====Zabbix ====&lt;br /&gt;
Zabbix es una solución de código abierto que ofrece características de monitorización avanzada de forma tecnica y para el negocio, para todo tipo de servidores, aplicaciones y equipos que forman parte de una red. La versión que utilizamos en '''md'''tel es Zabbix 2.2.2.&lt;br /&gt;
&lt;br /&gt;
Zabbix  monitoriza los  recursos  de un equipo en forma remota, permite centralizar la información en un servidor que permite visualizar el monitoreo, cuenta con una interfaz de administración vía web y utiliza un mecanismo flexible de la notificación que permita que los usuarios configuren las alarmas basadas email para informar virtualmente cualquier acontecimiento. Esto permite una reacción rápida a los problemas del servidor. &lt;br /&gt;
&lt;br /&gt;
Para acceder al servidor Zabbix abrimos el navegador y ponemos la dirección de red (IP) de la maquina donde se encuentra instalado el servidor de Zabbix seguido de &amp;quot;/Zabbix.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Direccion.IP.Zabbix.Server/zabbix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Zabbix posee documentación tanto en wiki, foros y comunidades.Para ampliar la información se puede visitar:&lt;br /&gt;
[[http://www.zabbix.com Sitio oficial de Zabbix]]&lt;br /&gt;
===== Glosario Zabbix =====&lt;br /&gt;
Se trata de una lista de conceptos básicos de Zabbix, pero para ampliar la información sobre otros términos, visite el [[http://www.zabbix.com Sitio oficial de Zabbix]].&lt;br /&gt;
* '''host''' &lt;br /&gt;
:En Zabbix, un host es una entidad que define el elemento en red que se desea monitorizar/supervisar activamente sus recursos locales y aplicaciones. Este puede ser una impresa, router, switch, sensores de temperatura, un servidor, un ordenador,etc, o también una aplicación. La característica de un host es que debe poseer una dirección de red (IP).&lt;br /&gt;
&lt;br /&gt;
* '''host group'''&lt;br /&gt;
:En Zabbix, un host group (grupo host) es una agrupación lógica de los host, como una forma de organizar los dispositivos &amp;quot;Host&amp;quot; registrados en Zabbix para su monitorización. Puede contener hosts y templates.  Los grupos host se utilizan en la asignación de derechos de acceso a los hosts para diferentes grupos de usuarios.&lt;br /&gt;
&lt;br /&gt;
* '''item'''&lt;br /&gt;
:En Zabbix, un item (medida) es el parámetro que deseamos obtener del host, básicamente es una medida especifica que el servidor Zabbix recogerá de los agentes de Zabbix instalados en los host.&lt;br /&gt;
&lt;br /&gt;
* '''trigger'''&lt;br /&gt;
:En Zabbix, un trigger(disparador) es una entidad que define un umbral para detectar la existencia de un problema en un dispositivo.  Son valores recolectados por los &amp;quot;items&amp;quot;, se usa para &amp;quot;evaluar&amp;quot; los datos recibidos con condiciones definidas. Las condiciones son de tipo aritmético y lógico.&lt;br /&gt;
* '''event'''&lt;br /&gt;
:En Zabbix, un event (evento) es la aparición de un suceso en Zabbix que necesita atención. Por ejemplo, el cambio de estado a raíz de un trigger, el descubrimiento de un nuevo agente (autoregistro),etc.&lt;br /&gt;
* '''action'''&lt;br /&gt;
:En Zabbix, una action(acción) son reglas predefinidas para reaccionar a un evento disparado por los triggers, es decir, define qué hacer ante un evento. Consta de operaciones (por ejemplo, una notificacion, comandos remotos) y condiciones (cuando  la operación se lleva a cabo).&lt;br /&gt;
* '''notification'''&lt;br /&gt;
:En Zabbix, una notification (notificacion) es la entidad con que Zabbix nos puede notificar (Correo Electrónico,mensajes vía &amp;quot;SMS&amp;quot; o Jabber).&lt;br /&gt;
* '''template'''&lt;br /&gt;
:En Zabbix, un témplate (plantilla) viene predefinida en la instalación de Zabbix Server, con el fin de ser aplicada en base al tipo de sistema operativo(Linux, Mac, Window, etc) o en elementos que comparten los mismos parámetros de medición, por ejemplo la carga del procesador, uso de memoria y  uso de recursos de red. Las plantillas son un conjunto de módulos &amp;quot;ITEM, TRIGGERS y GRÁFICAS&amp;quot;, que están preconfigurados y listas para ser aplicadas a uno o varios hosts.&lt;br /&gt;
* '''application'''&lt;br /&gt;
:En Zabbix, una application (aplicación) es una agrupación lógica de los items.&lt;br /&gt;
* '''Zabbix server'''&lt;br /&gt;
:El Zabbix server (servidor de Zabbix) es el proceso central donde están definidas las configuraciones y donde se almacenan todos los datos y estadísticas recogidas de los agentes Zabbix.Consta de una base de datos, una interfaz web y el propio server. Como servidor, se encarga de recoger los datos de los agentes, calcular los triggers, enviar notificaciones, etc. &lt;br /&gt;
* '''Zabbix agent'''&lt;br /&gt;
:El zabbix agent (agente de Zabbix)  es un proceso desplegado en los host que son supervisados, que funciona como un servicio y puede funcionar de forma activa y pasiva simultáneamente.&lt;br /&gt;
&lt;br /&gt;
=====Discovery=====&lt;br /&gt;
La funcionalidad discovery(detección) lista los dispositivos que se integran en nuestra red y el tipo de servicios que proporciona. Por ejemplo, si la empresa tuviera cien colas ACDs, y veinticinco VDNS, y en cada cola como veinte medidas, seria muy laborioso registrar una por uno cada uno.  &lt;br /&gt;
Gracias a esta funcionalidad, se descubre todas las interfaces de red que se tiene, automáticamente y tanto para colas nodos o IVR. Para utilizar esta funcionalidad , se hace el uso de dos script, que se instalan en el momento de instalación de Zabbix en el directorio &amp;quot;/usr/local/sbin&amp;quot;, que son:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
'''zabbixDiscoveryQueues.pl''' : script utilizado para buscar colas ACD.&lt;br /&gt;
&lt;br /&gt;
'''zabbixDiscoveryVDN.pl''' : script utilizado para buscar VDNS.&lt;br /&gt;
|}&lt;br /&gt;
La explicación de como configurarla se encuentra en el manual oficial [[https://www.zabbix.com/documentation/2.2/manual/discovery/network_discovery/rule | Zabbix detección de redes]].&lt;br /&gt;
&lt;br /&gt;
=====Notificaciones=====&lt;br /&gt;
&lt;br /&gt;
Necesariamente, debe darse de alta al usuario y darse de alta el servidor de correo electrónico para poder ser capaz de enviar correos.&lt;br /&gt;
&lt;br /&gt;
Por otro lado, el formato del correo electrónico y las condiciones de envío de correo al usuario se configura en las acciones. Véase  el [[https://www.zabbix.com/documentation/2.2/manual/quickstart/notification  | manual oficial de Zabbix 2.2]]&lt;br /&gt;
&lt;br /&gt;
=====Usuarios=====&lt;br /&gt;
Zabbix permite la organización de usuarios en grupos para establecer los permisos adecuados de acuerdo al tipo de perfil que deseemos crear. Necesariamente un usuario debe permanecer a un grupo o varios grupos.Todos los usuarios acceden a la aplicación de Zabbix a través de la interfaz Web. &lt;br /&gt;
&lt;br /&gt;
Cada usuario Zabbix se le asigna un nombre de usuario único , una contraseña y podemos indicarle que tipo de comunicación que posee, normalmente es vía email, pero puede ser vía a otro tipo de medios. Para mas información ver el [[https://www.zabbix.com/documentation/2.2/manual/web_interface/user_profile || manual oficial ]].&lt;br /&gt;
 &lt;br /&gt;
=====Visualización=====&lt;br /&gt;
Con Zabbix es posible visualizar los datos como  gráficos, pantallas, mapas y hasta presentaciones cambiantes, entre otros. En este apartado solo nombraremos características esenciales que se tendra que completar con el [[https://www.zabbix.com/documentation/2.2/manual/config/visualisation | manual oficial]]&lt;br /&gt;
======Graphs======&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''Nota:''' Debe crearse algun item dentro del host para poder utilizar una gráfica.&lt;br /&gt;
|}&lt;br /&gt;
En Zabbix una gráfica sirve para representar gráficamente los resultados obtenidos de uno item o varios items.&lt;br /&gt;
[[File:EjemploGrafica.png|center|750px]]&lt;br /&gt;
Los valores min / avg / max que Zabbix obtiene y representa son de un registro de datos de la tabla tendencias.&lt;br /&gt;
&lt;br /&gt;
======Screens======&lt;br /&gt;
La pantalla refiere a otra característica adaptable de ZABBIX cuál permite que los usuarios creen las pantallas personalizadas dentro de ZABBIX para exhibir la información. Se considera como una colección de gráficas y no depende del host. Una pantalla puede consistir en gráficos simples, gráficos personalizados, integrar mapas, Alertas, gráficos estadísticos o texto llano tal como los 5 valores pasados de un item particular entre otros; y mostrar la información de forma dinámica.&lt;br /&gt;
&lt;br /&gt;
[[File:EjemploScreen.png|center|750px]]&lt;br /&gt;
&lt;br /&gt;
======Maps======&lt;br /&gt;
En Zabbix, un map (mapa) es una representación gráfica de la situacion de nuestros dispositivos en red. Es un escenario que muestra nuestra red, aplicaciones y servicios a través de figuras o iconos.  Dichas figuras toman vida en respuesta a los eventos que se dan en nuestro entorno.&lt;br /&gt;
[[File:EjemploMaps.png|center|750px]]&lt;br /&gt;
[[File:EstadosMaps.png|center|750px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======Monitorizar el estado de los raid======&lt;br /&gt;
Los siguientes comandos son necesarios para poder monitorizar el estado de los raid.&lt;br /&gt;
La orden:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;hpacucli &amp;quot;ctrl slot=1 logicaldrive 1 show status&amp;quot;&lt;br /&gt;
&lt;br /&gt;
nos proporciona el estado de un raid (p.e. logicaldrive 1 (931.5 GB, 1): Interim Recovery Mode).&lt;br /&gt;
&lt;br /&gt;
La orden:&lt;br /&gt;
 &amp;gt;hpacucli &amp;quot;ctrl slot=1 logicaldrive all show status&amp;quot;&lt;br /&gt;
&lt;br /&gt;
nos proporciona el estado de todos los raid.&lt;br /&gt;
&lt;br /&gt;
p.e.:&lt;br /&gt;
logicaldrive 1 (931.5 GB, 1): Interim Recovery Mode&lt;br /&gt;
&lt;br /&gt;
logicaldrive 2 (1.8 TB, 1): OK.&lt;br /&gt;
&lt;br /&gt;
Para conseguir información genérica el comando&lt;br /&gt;
 &lt;br /&gt;
 ctrl all show config detail&lt;br /&gt;
&lt;br /&gt;
nos muestra mucha información y podemos saber el modelo de disco físico que lleva instalado para poder comprar el modelo antes de &amp;quot;operar&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Zabbix en '''MD'''tel===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Configuraciones de Zabbix ====&lt;br /&gt;
&lt;br /&gt;
===== Agentes Zabbix =====&lt;br /&gt;
{|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 '''Nota:''' Hay que instalar un agente Zabbix en cada maquina que se quiera monitorizar.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El agente de Zabbix puede recoger datos: &lt;br /&gt;
*'''De forma pasiva:''' el server contacta al agente pidiéndole un dato (por ejemplo el consumo de CPU en ese instante) y el agente responde al server con ese dato. A esta acción del agente le llamaremos '''Agente activo'''.&lt;br /&gt;
*'''De forma activa:''' en un primer momento, el server le enviará al agente el listado de items a monitorizar. A partir de ese momento, será el agente que de forma periódica recogerá datos sobre esos ítems y se los hará llegar al server. A esta acción del agente le llamaremos ''''''Agente pasivo''''''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== Configurar agente de forma pasiva======&lt;br /&gt;
Para configurar el agente de Zabbix necesitamos acceder a la maquina que actuará como agente, y en el directorio /etc/zabbix modificar el fichero '''zabbix_agentd.conf''' e indicar cual es la dirección de red (IP) del servidor Zabbix.&lt;br /&gt;
&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 ##### Passive checks related&lt;br /&gt;
 ### Option: Server&lt;br /&gt;
 #       List of comma delimited IP addresses (or hostnames) of Zabbix servers.&lt;br /&gt;
 #       Incoming connections will be accepted only from the hosts listed here.&lt;br /&gt;
 #       If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1'  &lt;br /&gt;
 #       are treated equall$&lt;br /&gt;
 #&lt;br /&gt;
 # Mandatory: no&lt;br /&gt;
 # Default:&lt;br /&gt;
 Server= IP.Server Zabbix.&lt;br /&gt;
|}&lt;br /&gt;
Tras la configuración del fichero, debemos reiniciar el servicio de los agentes.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 sudo service zabbix-agent restart&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====== Configurar agente de forma activa ======&lt;br /&gt;
&lt;br /&gt;
Para configurar el agente de Zabbix necesitamos acceder a la máquina que actuará como agente, y en el directorio /etc/zabbix modificar el fichero '''zabbix_agentd.conf''' e indicar cual es la dirección de red (IP) del servidor Zabbix.&lt;br /&gt;
&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 ##### Active checks related&lt;br /&gt;
 ### Option: ServerActive&lt;br /&gt;
 #       List of comma delimited IP:port (or hostname:port) pairs of Zabbix serv$&lt;br /&gt;
 #       If port is not specified, default port is used.&lt;br /&gt;
 #       IPv6 addresses must be enclosed in square brackets if port for that hos$&lt;br /&gt;
 #       If port is not specified, square brackets for IPv6 addresses are option$&lt;br /&gt;
 #       If this parameter is not specified, active checks are disabled.&lt;br /&gt;
 #       Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12$&lt;br /&gt;
 #&lt;br /&gt;
 # Mandatory: no&lt;br /&gt;
 # Default:&lt;br /&gt;
 ServerActive=127.0.0.1&lt;br /&gt;
 --------------------------sección separada----------------------------&lt;br /&gt;
 ### Option: UserParameter&lt;br /&gt;
 #       User-defined parameter to monitor. There can be several user-defined pa$&lt;br /&gt;
 #       Format: UserParameter=&amp;lt;key&amp;gt;,&amp;lt;shell command&amp;gt;&lt;br /&gt;
 #       See 'zabbix_agentd' directory for examples.&lt;br /&gt;
 #&lt;br /&gt;
 # Mandatory: no&lt;br /&gt;
 # Default:&lt;br /&gt;
 # UserParameter=&lt;br /&gt;
 User_parameters:asterisk.pid, /usr/bin/asterisk -rx 'core show chanels'|grep 'active calls'| cat -d -f 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El parámetro '''User_parameters''' tiene un formato de este estilo:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 User_parameters: NombreMedida, comando.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El nombre de la medida se refiere al nombre que demos a la aplicación , no hace falta que exista una aplicación con ese nombre en Zabbix, y el comando , es el comando remoto que tiene que ejecutar el servidor Zabbix. Posiblemente necesita darse permisos para ejecutar el comando y siempre debe devolver un valor (un numero o un tiempo) que el servidor Zabbix puede manejar.&lt;br /&gt;
Tras la configuración del fichero, debemos reiniciar el servicio de los agentes.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 sudo service zabbix-agent restart&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Scripts del Servidor Zabbix =====&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''': &amp;lt;small&amp;gt;No olvidar que en la misma maquina del server Zabbix, debe configurarse como agente de Zabbix.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Después de realizar la [[# Instalación de Zabbix | Instalación de Zabbix ]] correctamente. Se han creado otros ficheros scripts (''scripts propios de '''md'''tel'') que facilitarán la petición del servidor a los agentes activos, para poder parametrizar todos los elementos del negocio que suelen monitorizarse. &lt;br /&gt;
Dependiendo de lo que vaya a monitorizarse necesitaremos algún script o todos. Algunos nos informan sobre elementos de negocio, saber si asterisk funciona , monitorizar el CTI (lanzara nc localhost 1111) , controlar el Intz-Nimitz, comprobar si funciona motalsal, ect.&lt;br /&gt;
&lt;br /&gt;
Cada script se exportara a los host, para que pueda facilitar los datos que pide el servidor Zabbix y configurarse.&lt;br /&gt;
Por ejemplo,para monitorizar las llamadas en curso del ACD, agentes conectados, agentes desconectados, etc.&lt;br /&gt;
Todos los scripts se deben colocar en el directorio /usr/local/sbin con permisos 755, su nombre es parecido a &amp;quot;zabbixSenderXXXXX.pl&amp;quot;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 ls /usr/local/sbin/ |grep zabbixSender&lt;br /&gt;
 '''zabbixSenderACDBD.pl'''&lt;br /&gt;
 '''zabbixSenderACD.pl'''&lt;br /&gt;
 '''zabbixSenderCTI.pl'''&lt;br /&gt;
 '''zabbixSender-intz-nimitz.pl'''&lt;br /&gt;
 '''zabbixSenderMotorSal.pl'''&lt;br /&gt;
 '''zabbixSenderMyACDSuperv.pl'''&lt;br /&gt;
 '''zabbixSenderRecordNodo.pl'''&lt;br /&gt;
 '''zabbixSenderRecordCentral.pl'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Se crea una tarea programada en linux para poder ejecutarse los scripts, programando el tiempo en que debe ejecutarse.&lt;br /&gt;
&lt;br /&gt;
Si visualizo que &amp;quot;............&amp;quot; aparece:&lt;br /&gt;
&lt;br /&gt;
*****  root zabbix&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderACDBD.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtiene diversos valores por cada cola, estados de agente por cola y estados de agente generales.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor BDTR.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:''' Ruta al archivo de configuración (Por ejemplo: ''/etc/MDtel/zabbixSenderACDBD.pconf'')&lt;br /&gt;
&lt;br /&gt;
'''Archivo de configuración:''' zabbixSenderACDBD.pconf&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''$db:''' Nombre de la BBDD (normalmente nimitz)&lt;br /&gt;
 '''$dbHost:''' Dirección IP del servidor de BBDD de TR (normalmente BDTR)&lt;br /&gt;
 '''$dbPort:''' Puerto MySQL (normalmente 3306)&lt;br /&gt;
 '''$dbUsuario:''' Usuario MySQL (normalmente nimitz)&lt;br /&gt;
 '''$dbClave:''' Clave del usuario&lt;br /&gt;
 '''$sZab:''' Dirección IP del servidor Zabbix&lt;br /&gt;
 '''$hZab:''' Nombre del host Zabbix (normalmente el nombre de máquina, tal y como se configura en &lt;br /&gt;
 zabbix_agentd.conf o en el host en la web de Zabbix)&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderACD.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener el PID de Asterisk para revisar si se ha reiniciado en caso de que cambie.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor ACD.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:''' Ruta al archivo de configuración (Por ejemplo: ''/etc/MDtel/zabbixSenderACD.pconf'').&lt;br /&gt;
&lt;br /&gt;
'''Archivo de configuración:''' zabbixSenderACDBD.pconf.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''$db:''' Nombre de la BBDD (normalmente nimitz)&lt;br /&gt;
 '''$dbHost:''' Dirección IP del servidor de BBDD de TR (normalmente BDTR)&lt;br /&gt;
 '''$dbPort:''' Puerto MySQL (normalmente 3306)&lt;br /&gt;
 '''$dbUsuario:''' Usuario MySQL (normalmente nimitz)&lt;br /&gt;
 '''$dbClave:''' Clave del usuario&lt;br /&gt;
 '''$sZab:''' Dirección IP del servidor Zabbix&lt;br /&gt;
 '''$hZab:''' Nombre del host Zabbix (normalmente el nombre de máquina, tal y como se configura en&lt;br /&gt;
 zabbix_agentd.conf o en el host en la web de Zabbix)&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
======zabbixSenderCTI.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de vivait-cti.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute vivait-cti. Normalmente el servidor ACD.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======zabbixSender-intz-nimitz.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de intz-nimitz.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute intz-nimitz.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
======zabbixSenderMotorSal.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de motorSal.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute motorSal.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderMyACDSuperv.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de myAcdSuperv.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute myAcdSuperv.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderRecordNodo.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de recordNodo.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute recordNodo.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderRecordCentral.pl======&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de recordCentral.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute recordCentral.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A continuación se muestra una tabla resumen de los distintos scripts y sus funcionalidades: &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Zabbix_scripts.png |960px]]&lt;br /&gt;
&lt;br /&gt;
====== Dimensionamiento del servidor (Startpollers) ======&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''': &amp;lt;small&amp;gt;EL parámetro StartPollers es un &amp;lt;u&amp;gt;parámetro numérico&amp;lt;/u&amp;gt; que forma parte del fichero de configuración &lt;br /&gt;
 del servidor Zabbix(zabbix_server.conf). Por defecto el servidor Zabbix está configurado para&lt;br /&gt;
 iniciar con cinco startpollers.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El servidor Zabbix puede hacer peticiones a los agentes de las medidas que necesita o quiere. O en caso contrario los agentes envian en un tiempo determinado la información al servidor. Para recibir todas estas peticiones necesitamos los pollers.  &lt;br /&gt;
&lt;br /&gt;
Los poller son los procesos encargados de recibir todas las peticiones de medidas. Aumentaremos su cantidad dependiendo de la necesitad que tengamos. Para ello podemos observar la queue , que es la encargada de almacenar un listado de todas las cosas que están pedidas para medirse y recibirse.  SI por ejemplo esta cola (queue) muestra mas de mil medidas seguramente estos pollers sean un cuello de botella y habrá que aumentar su numero.&lt;br /&gt;
&lt;br /&gt;
=====Templates=====&lt;br /&gt;
&lt;br /&gt;
Zabbix cuenta con templates (plantillas) que facilitan la tarea de &amp;quot;Registrar Equipos y Dispositivos&amp;quot; y agregarles métricas; acelerar el despliegue de las tareas de supervisión en un host; aplicar cambios masivos a tareas de supervisión. En '''md'''tel hemos creado plantillas propias que facilitan estos procesos, los cuales necesitaremos [[#Importar templates |importar templates]].&lt;br /&gt;
&lt;br /&gt;
Las plantillas están vinculados directamente a los hosts individuales, por tanto se necesitaran utilizar en cada host.&lt;br /&gt;
&lt;br /&gt;
Automáticamente, cada template rellena por item las aplicaciones, trigers, alarmas,gráficos,... etc. &lt;br /&gt;
&lt;br /&gt;
A continuación, se muestran los distintos bloques de funciones de la instalación en función de cada template:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! Se instalan en general &lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| SI (si clúster)&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| si&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| -&lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| si(si no posee ip virtuales de clúster)&lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| si&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ '''Dependiendo del tipo de nodo:'''&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! ACD !! Corporativo/GW&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| Si || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - || Si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - || Si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ '''Dependiendo del tipo de Base de dato'''s:&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! BBDD &amp;lt;br /&amp;gt;Tiempo Real !! BBDD&amp;lt;br /&amp;gt; Réplica !! BBDD Copia&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| Si(si ACD) || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| si || si || si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| si || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! Administración&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - &lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - &lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal||SI (si posee servidor calendarios)&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! Servidor de grabaciones&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - &lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| Si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - &lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal||-&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ '''Monitorización'''&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! General !! Contact Center&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - || - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - || - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| si || - &lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - || - &lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 * El template OS Linux tiene asociado el Template App Zabbix Agent.&lt;br /&gt;
 Una '''base de datos unificada''' es una base de datos de tiempo real junto a  una base de datos de replica&lt;br /&gt;
&lt;br /&gt;
====== Importar templates======&lt;br /&gt;
&lt;br /&gt;
Las plantillas propias de '''md'''tel se encuentran en la ruta &amp;quot;'''/usr/src/nimitz/archivos'''&amp;quot; y empiezan con el nombre de &amp;quot;TemplateXXX.xml&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 ls /usr/src/nimitz/archivos | grep Template&lt;br /&gt;
 '''Template DRBD.xml'''&lt;br /&gt;
 '''Template motorSal.xml'''&lt;br /&gt;
 '''Templates Vivait-Suite_GW.xml'''&lt;br /&gt;
 '''Templates Vivait-Suite.xml'''&lt;br /&gt;
 '''Template Vivait-Call Asterisk.xml'''&lt;br /&gt;
 '''Template Vivait-Call bdCentral.xml'''&lt;br /&gt;
 '''Template Vivait-Call bdNodo.xml'''&lt;br /&gt;
 '''Template Vivait-Call cambiarPerfil_Cal.xml'''&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La importación se realizara una vez a través de la web, no hace falta desde el servidor Zabbix, puede ser en cualquier  computadora con acceso a la interfaz web de Zabbix.&lt;br /&gt;
&lt;br /&gt;
[[File:ImportarTemplates.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
Hay opciones varias opciones a elegir para importación de templates, pero podemos dejar por defecto las señaladas y pulsar el botón &amp;quot;import&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Configuración para un primer funcionamiento de Zabbix===&lt;br /&gt;
Se describe una básica configuracion de Zabbix para cualquier equipo que utilice Windows o linux. Pues  mediante la definición de hosts, items, triggers y acciones, Zabbix permite efectuar un monitoreo efectivo de plataformas IT heterogéneas. &lt;br /&gt;
&lt;br /&gt;
====Configuración de los equipost (host) para la monitorización====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''': Tenga en cuenta que debe de estar previamente configurado el agente Zabbix del &lt;br /&gt;
 dispositivo a ser monitorizado apuntando a la IP del &amp;quot;Servidor Zabbix&amp;quot;.&lt;br /&gt;
|}&lt;br /&gt;
Existen dos tipos de host:&lt;br /&gt;
* '''Host físico''': donde la dirección de red que registramos en Zabbix, corresponde al dispositivo que deseamos monitorizar.&lt;br /&gt;
* '''Host virtual''': es una dirección IP virtual, que puede relacionarse con un servidor Web, clusters, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:CreacionHost.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
﻿Las opciones basicas para configurar un host son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center ;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Host Name'''&lt;br /&gt;
|  | Definir un nombre para el host.&lt;br /&gt;
||Se puede utilizar números, letras, espacios y guiones bajos están permitidos.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Visible Name'''&lt;br /&gt;
|  | Identificar con un nombre, la maquina a la que se refiere el host.&lt;br /&gt;
||Si no tiene valor, se mostrara como nombre &amp;quot;Host Name&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Groups'''&lt;br /&gt;
|  | Seleccionar al grupo de host que pertence.Seleccione uno o varios grupos de la caja derecha.&lt;br /&gt;
|| Los valores que puede seleccionar por defecto:&lt;br /&gt;
Discoverd hosts.&lt;br /&gt;
&lt;br /&gt;
Switches.&lt;br /&gt;
&lt;br /&gt;
Templates.&lt;br /&gt;
&lt;br /&gt;
Templates MDtel.&lt;br /&gt;
&lt;br /&gt;
Zabbix servers.&lt;br /&gt;
&lt;br /&gt;
Linux Servers.&lt;br /&gt;
&lt;br /&gt;
Hypervisors.&lt;br /&gt;
&lt;br /&gt;
Virtual machines.&lt;br /&gt;
&lt;br /&gt;
O crear uno nuevo en '''New group'''.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Agent interfaces'''&lt;br /&gt;
|  |Se recomienda usar una dirección IP, en vez de un nombre de la maquina para resolver por un servidor de DNS que puede fallar.&lt;br /&gt;
|  | 10050 por defecto&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cuando termine, haga clic en nel boton &amp;quot;Save&amp;quot;.  Su nuevo &amp;quot;Host&amp;quot; debe ser visible en la lista de &amp;quot;Host registrados&amp;quot;.Despues el zabbix, intentara configurarse el zabbix para conectarse a la IP.... cada x tiempo hace un barrido. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Comprobación de disponibilidad del host=====&lt;br /&gt;
Para saber si todo esta bien debemos ver la Z de disponibilidad.   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:EstadosZHost.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Indicacion de los colores del icono Z:&lt;br /&gt;
&lt;br /&gt;
* Si el icono Z en la columna de disponibilidad es de color rojo, indica que hay un error en la comunicación - mueva el cursor del ratón sobre él para ver el mensaje de error. &lt;br /&gt;
&lt;br /&gt;
* Si el icono es gris, significa que esta en proceso de comunicación con el &amp;quot;Agente Zabbix&amp;quot;. Compruebe que el servidor Zabbix está en marcha, y pruebe a actualizar la página más tarde.  El tiempo estimado para revisar si existe problemas es de 5 minutos.&lt;br /&gt;
&lt;br /&gt;
* Si el icono es verde, esta funcionando correctamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Indicar que plantilla (template) tendra el host [opcional]====&lt;br /&gt;
Tras [[#Importar templates |importar templates]] nos dirigimos al host ya configurado, y en su pestaña de templates pulsamos &amp;quot;add&amp;quot; y añadimos la plantilla/s adecuadas.&lt;br /&gt;
&lt;br /&gt;
====Asignar items al host ====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''':Un host puede tener un ITEM sin necesitad de tener template.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Todos lo ITEMS se agrupan por HOST, esto significa que cada HOST tiene sus propios &amp;quot;Módulos que recogen datos del Host&amp;quot;.   Para agregar un nuevo módulo vamos a &amp;quot;Configuration → Hosts&amp;quot; y localizamos el &amp;quot;Host&amp;quot; al cual queremos agregarle un nuevo &amp;quot;Item&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:CrearItemEjemplo.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
Parametros o campos a rellenar para una configuración básica :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center ;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Name'''&lt;br /&gt;
|  | Definir un nombre para el item.  Este nombre va a ser nuestro identificador para todas la gestiones en donde lo involucremos como el caso de Triggers.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Type'''&lt;br /&gt;
|| Indicar de que entidad queremos recibir informacion.&lt;br /&gt;
||Puede ser al &amp;quot;Agente Zabbix&amp;quot; o a el Hardware como impresoras, switch o routers.   &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Key'''&lt;br /&gt;
|  | los &amp;quot;Items&amp;quot; utilizan &amp;quot;Key&amp;quot; que son parámetros de Zabbix.  Los &amp;quot;Key&amp;quot; nos permiten indicar específicamente que tipo de información vamos a solicitara a la entidad. Se puede considerar también como el nombre de alguna aplicación.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''host interface'''&lt;br /&gt;
|  |Es la direccion de red del servidor zabbix (puede ser uno o mas)&lt;br /&gt;
|  | &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Units'''&lt;br /&gt;
|  |Es la dirección de red del servidor zabbix (puede ser uno o mas)&lt;br /&gt;
|  | &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Type of information'''&lt;br /&gt;
|  |Tipo de unidades con el que mostrar Zabbix el valor segundos, minutos, euros,....&lt;br /&gt;
|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cuando termine, haga clic en Guardar.   El nuevo elemento debe aparecer en la ITEMLIST. &lt;br /&gt;
Para mas informacion [[http://entation/1.8/manual/config/items#zabbix_agent. ver documentación Zabbix]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Ver la información recolectada por el item =====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' Normalmente para ver la información lo encontraremos en &amp;quot;Monitoring → Latest data&amp;quot;,luego &lt;br /&gt;
 clic en el signo &amp;quot;+&amp;quot; en &amp;quot;other&amp;quot; siempre que no pertenezca a una aplicación. &lt;br /&gt;
 En caso contrario, estará bajo el nombre de la aplicación.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Después de definir el &amp;quot;Item&amp;quot; vamos a revisar la información que esta recolectando.  .  La información comenzará a ser recolectada según el tiempo que le indicamos en el &amp;quot;Item&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:VerInfoITEM.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
La espera para recibir la información varía dependiendo del tiempo de recolección del item, la mayoría suele ser aproximadamente al minuto de generar el &amp;quot;Item&amp;quot;. Zabbix le ofrece la opción de visualizar la información en forma gráfica (sencilla).  En el &amp;quot;Item&amp;quot; en lista haga clic en la columna &amp;quot;History - Graph&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:VIsualGraficaValorItem.png|center|750px]]&lt;br /&gt;
Si en un caso usted no observa información le recomendamos:&lt;br /&gt;
  &lt;br /&gt;
* Ingrese al &amp;quot;Item&amp;quot; y revise que la información del &amp;quot;Key&amp;quot; este igual al ejemplo &amp;quot;system.cpu.load&amp;quot; &lt;br /&gt;
* Verifique que el agente este funcionando en el &amp;quot;Servidor a ser monitoreado&amp;quot; y que &amp;quot;El Servidor recolector Zabbix&amp;quot; este funcionando. &lt;br /&gt;
* El icono &amp;quot;Z&amp;quot; en el host debe estar en color verde. &lt;br /&gt;
* Asegure que esta monitoreando el servidor que le agregó este &amp;quot;Item&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Configurar los Triggers para los host====&lt;br /&gt;
A partir de la información que captura los agentes , el servidor de Zabbix comienza a efectuar la recolección de estos items en la base de datos. Con esto se tiene un registro histórico de tales mediciones, que pueden ser tan simples como un simple ping hasta datos de uso de disco, memoria, cpu, etc.&lt;br /&gt;
A partir de los datos que se reciben de los agentes lo que sigue es definir y configurar Triggers, que son evaluaciones que hace Zabix de estos datos para determinar la existencia de un Problema en un dispositivo.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Nota: Un trigger necesita una accion, que indica que hacer cuando se activa el trigger.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un trigger(disparador) es un tipo de reacción ante unas medidas, como un disparador en el que si pasa algo se activa. Los Trigger en Zabbix son módulos que creamos a uno o múltiples &amp;quot;Items&amp;quot; para evaluar o comparar los valores recolectados por los &amp;quot;Items&amp;quot; con condiciones que nosotros definamos.  Las condiciones son de tipo aritmético y lógico.&lt;br /&gt;
&lt;br /&gt;
Para configurar un &amp;quot;Trigger o Disparador&amp;quot; seleccionamos &amp;quot;Configuration → Hosts&amp;quot; localizamos el &amp;quot;Host&amp;quot; de ejemplo que creamos y luego hacemos clic en &amp;quot;Trigger&amp;quot;, después haga clic en &amp;quot;Create Trigger&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Parametros o campos a rellenar para una configuración básica :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center ;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Name'''&lt;br /&gt;
|  | Definir un nombre para el trigger.  Este nombre va a ser nuestro identificador para todas la gestiones en donde lo involucremos como el caso de los eventos.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Expression'''&lt;br /&gt;
||  Hay que indicar para que medida se crea (item) y sus funciones con los parametros adecuados. '''''Recomendación usar expression constructor que pedirá siempre al crearlo, para que item es y sus funciones...'''''&lt;br /&gt;
||Ejemplo: {New host:system.cpu.load.avg(180)}&amp;gt;2 &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Key'''&lt;br /&gt;
|  | los &amp;quot;Items&amp;quot; utilizan &amp;quot;Key&amp;quot; que son parámetros de Zabbix.  Los &amp;quot;Key&amp;quot; nos permiten indicar específicamente que tipo de información vamos a solicitara a la entidad. Se puede considerar tambien como el nombre de alguna aplicacion.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Una descripción breve sobre el trigger.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Severity'''&lt;br /&gt;
|  | everidad distinguida por colores,&lt;br /&gt;
|| No classified&lt;br /&gt;
 Information&lt;br /&gt;
 Warning&lt;br /&gt;
 Average&lt;br /&gt;
 High&lt;br /&gt;
 Disaster&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Comprobar el estado del trigger =====&lt;br /&gt;
Podemos ver el estado del &amp;quot;Trigger&amp;quot; en &amp;quot;Monitoring → Triggers&amp;quot;.El  color en caso de que se active depende de la severidad definida. Por ejemplo,  si el &amp;quot;Trigger&amp;quot; esta en color verde indica que el resultado de la métrica se mantiene por debajo de la condición que indicamos.  Por el contrario si el resultado esta &amp;quot;sobre lo indicado&amp;quot; su color sera rojo.&lt;br /&gt;
&lt;br /&gt;
[[File:EstadoTrigger.png|center|750px]]&lt;br /&gt;
&lt;br /&gt;
====Asociar un Action al trigger====&lt;br /&gt;
&lt;br /&gt;
Una action(acción) sirve para configurar un mensaje de alerta o una accion para Zabbix, ante un problema. Hay varias formas de gestionar un problema a través de una acción:&lt;br /&gt;
&lt;br /&gt;
# A través de mensajes simples, alertando al instante.&lt;br /&gt;
# Escalar los mensajes hacia el jefe y/o otros grupos.&lt;br /&gt;
# Ejecución de commandos remotos.&lt;br /&gt;
# Notificaciones repetidas hasta que se resuelve el problema.&lt;br /&gt;
# Notificaciones y comandos retardados.&lt;br /&gt;
# Escenario complejo, la combinación de todo lo anterior.&lt;br /&gt;
&lt;br /&gt;
Para crear una configuración en &amp;quot;Configuration-Actions&amp;quot;. La explicación esta en la [[ https://www.zabbix.com/documentation/2.0/manual/config/notifications/action documentación de Zabbix]].&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integraciones con servicios externos ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Presencia con Openfire ===&lt;br /&gt;
'''''VIVA'''''it se integra con servidor XMPP Openfire en su versión 3.10.2 (última probada)&lt;br /&gt;
&lt;br /&gt;
Además del servidor, es necesario instalar un plugin de integración con asterisk 13, denominado &amp;quot;asterisk IM&amp;quot;, versión 1.4.1&lt;br /&gt;
&lt;br /&gt;
La instalación del servidor Openfire es una instalación estándar, realizada de paquete&lt;br /&gt;
&lt;br /&gt;
La instalación del plugin es un &amp;quot;jar&amp;quot; que se carga desde la pagina de plugins de openfire&lt;br /&gt;
&lt;br /&gt;
Con esto conseguiremos comunicar asterisk y OPenfire de manera que:&lt;br /&gt;
*Los estados telefónicos de una extensión '''''VIVA'''''it  se reflejen en Openfire&lt;br /&gt;
*Poder marcar desde los clientes de IM instalados en los puestos&lt;br /&gt;
*Ver en el cliente llamadas entrantes al teléfono&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;Enlaces de interes:&amp;lt;/big&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
[http://www.igniterealtime.org/projects/openfire/ Página proyecto openfire]&lt;br /&gt;
&lt;br /&gt;
[https://community.igniterealtime.org/thread/56076 Página proyecto &amp;quot;asterisk IM&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reuniones virtuales con Openmeetings ===&lt;br /&gt;
'''OpenMeetings''' es un sistema de vídeo web-conferencia en tiempo real. Usando recursos como audio (micrófono), vídeo (cámara web), posibilidad de subir y convertir presentaciones (en PDF , PPT o ODP que se convierten a Flash), compartición de la pantalla de tu ordenador, o pizarra digital compartida, panel de administración, posibilidad de grabar las sesiones… y completo soporte multiplataforma, es decir, que aparte de poder grabar las sesiones, se puede compartir un escritorio también desde una máquina Linux.&lt;br /&gt;
&lt;br /&gt;
Para instalar '''OpenMettings''' debe seguir el [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manuales_de_instalaci%C3%B3n#Instalaci.C3.B3n_de_Openmeetings | manual de Instalación de Openmeetings]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]] &lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:VIVAit Suite]]&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_plataforma_VIVAit&amp;diff=6646</id>
		<title>Manual de operación plataforma VIVAit</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_plataforma_VIVAit&amp;diff=6646"/>
		<updated>2018-04-24T08:42:26Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* motorSal */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!! '''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; ALFREDO: INSISTIR EN EXPLICAR CONCEPTOS&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
En este documento se describe la arquitectura general de la plataforma '''''VIVA'''''it, detallando aquellos procesos principales que componen cada uno de los elementos del sistema, y sus principales elementos de diagnóstico&lt;br /&gt;
Quedan fuera del ámbito de este documento:&lt;br /&gt;
* Uso de aplicación de agente ('''''VIVA'''''it Desk)&lt;br /&gt;
* Uso de aplicación de supervisor ('''''VIVA'''''it Supervisor), incluyendo sus módulos autónomos ('''''VIVA'''''it reporting, '''''VIVA'''''it Tracker)&lt;br /&gt;
* Uso de portal de administración&lt;br /&gt;
* Uso de portal de traceo de llamadas y agentes ('''''VIVA'''''it Tracker web)&lt;br /&gt;
* Uso de portal de monitorización zabbix&lt;br /&gt;
&lt;br /&gt;
== Arquitectura ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura plataforma VIVAit.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Descripción de los elementos, diagnósticos y operaciones ==&lt;br /&gt;
Las siguientes tablas definen los principales elementos software de la plataforma '''''VIVA'''''it, que son detallados en apartados siguientes:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de sistema operativo'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu Server LTS 64 bits || Uno por servidor|| ||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|| Actualmente (Oct-2015) 14.04&lt;br /&gt;
Bajo proyecto puede cambiarse&lt;br /&gt;
|-&lt;br /&gt;
| Almacenamiento de grabaciones|| Uno por sistema|| Almacenamiento de las grabaciones, ya sean de entorno corporativo o de contact center||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|| Típicamente un espacio grande de almacenamiento proporcionado por el cliente y que se monta como un sistema de archivos local en los servidores de la plataforma&lt;br /&gt;
Pueden existir sistemas secundarios de almacenamiento de grabaciones&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de conmutación de voz'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Asterisk 1.4.24 by MDtel||Uno por servidor ACD||Núcleo de conmutación de voz basado en Asterisk 1.4 y modificado por MDtel||'''''VIVA'''''it Suite||Fuertemente modificado por MDtel&lt;br /&gt;
En el futuro migrará a Asterisk 13 Certified&lt;br /&gt;
|-&lt;br /&gt;
|Dialplan ACD by MDtel||Uno por servidor ACD||Configuración de voz||'''''VIVA'''''it Suite||En el futuro se unificará con corporativa&lt;br /&gt;
|-&lt;br /&gt;
|Asterisk 13 Certified by MDtel||Uno por servidor corporativo/gateway||Núcleo de conmutación de voz basado en Asterisk 13 y modificado por MDtel||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Actualmente asterisk estándar (10/15)&lt;br /&gt;
La instalación contempla descargar de la red el más actualizado, siempre CERTIFIED&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Dialplan corporativo||Uno por servidor corporativo/gateway||Configuración de voz||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||En el futuro se unificará con ACD&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de base de datos'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|MySQL 5.5||Donde haya BBDD de cualquier tipo (incluso zabbix)||Motor de Base de Datos||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||A efectos prácticos va a ser en todos los servidores con casi total seguridad&lt;br /&gt;
|-&lt;br /&gt;
|BBDD tiempo real||Una por sistema||Base de Datos sobre la que trabaja todo el entorno de tiempo real||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|BBDD réplica||Una por sistema multinodo||Base de Datos para acceso a información de reporting…y similar||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de una&lt;br /&gt;
En el nodo en el que exista réplica existirá además copia (excepto nodo ACD)&lt;br /&gt;
|-&lt;br /&gt;
|BBDD copia||Uno por servidor corporativo/gateway||Copias de tablas de configuración para respaldo de la misma||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Local en cada nodo&lt;br /&gt;
Los nodos de ACD actualmente no trabajan con copia; en caso de fallo de BBDD TR se usa el modo emergencia&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de procesos ''VIVA''it'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Intz-Nimitz||Donde haya una BBDD de tiempo real o copia||Interfaz entre el dialplan y la base de datos||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||No donde haya BBDD de réplica&lt;br /&gt;
Sistemas grandes pueden contemplar mas de un intz-nimitz central&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|vivait-cti||Uno por servidor ACD||Interfaz entre '''''VIVA'''''it Desk, supervisor y el manager de asterisk||'''''VIVA'''''it Suite||&lt;br /&gt;
|-&lt;br /&gt;
|myAcdSuperv||Uno por servidor ACD||Recopilador de datos de asterisk y actualiza en la BBDD&lt;br /&gt;
Genera llamadas en el marcador&lt;br /&gt;
||'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|motorSal||Uno por sistema con ACD||Motor de marcador saliente automático||'''''VIVA'''''it Suite||Solo si hay marcación saliente&lt;br /&gt;
Junto a la BBDD de tiempo real&lt;br /&gt;
|-&lt;br /&gt;
|recordCentral||Uno por sistema||Servidor de grabaciones, se conectan los agentes a el||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Se arrancan varias instancias en función del número de nodos&lt;br /&gt;
Debe instalarse en un servidor que tenga el almacenamiento de grabaciones en su sistema de archivos&lt;br /&gt;
|-&lt;br /&gt;
|recordNodo||Uno por servidor corporativo/gateway||Agente de grabación||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|bdCentral||Uno, en el nodo con la BBDD de tiempo real||Genera la base de datos que se copiará para respaldo a otros nodos||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|bdNodo||En cada nodo con BBDD de copia||Recoge la base de datos del servidor central con el objeto de tener el respaldo||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|Actualizador||Uno por sistema con ACD||Se encarga de proporcionar las versiones actualizadas de las aplicaciones de puesto de trabajo||'''''VIVA'''''it Suite||En el mismo servidor que el portal de administración&lt;br /&gt;
|-&lt;br /&gt;
|phoneProv-tftp||Uno por sistema||Se encarga del aprovisionamiento masivo de terminales||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||En instalaciones grandes habrá más de uno, quizás uno por sede grande; depende de la infraestructura de DHCP&lt;br /&gt;
|-&lt;br /&gt;
|borraregistrosnimitz||||||||				&lt;br /&gt;
|-&lt;br /&gt;
|Mover grabaciones a nube||||||||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Administración'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Tomcat 7||Uno por servidor con portales||Servidor de aplicaciones JAVA||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|Portal de administración ||Uno por sistema||Portal de administración del sistema||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Portal usuario||Uno por sistema||Portal de usuario, para acceso a buzones, su configuración||'''''VIVA'''''it Call||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Tracker web||Uno por sistema||Portal de seguimiento de llamadas||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Debe instalarse en un servidor que tenga los ficheros de grabación montados en su sistema de archivos&lt;br /&gt;
Ligado a recordCentral&lt;br /&gt;
Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Monitor||Uno por sistema||Portal de monitores de pared de Call Center||'''''VIVA'''''it Suite||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Apache||Uno por servidor de calendarios||Servidor de portales WEB||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|Servidor de calendarios||Uno por sistema||Aloja calendarios para su uso en diferentes entornos de NIMITZ||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Monitorización'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Servidor zabbix||Uno por instalación||Monitorización técnica y de negocio||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de uno&lt;br /&gt;
Tipicamente irá o en BBDD replica o en nodo de gestión en instalaciones grandes&lt;br /&gt;
|-&lt;br /&gt;
|Templates zabbix||Uno por instalación||Adaptaciones específicas||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|Agente Zabbix||Uno por servidor||Agente de monitorización||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
||Scripts monitorización zabbix||Uno por servidor||Agente de monitorización||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Versiones de módulos===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Módulo  !! VSuite &lt;br /&gt;
V.3.10 &lt;br /&gt;
! VSuite &lt;br /&gt;
V.3.2.0 &lt;br /&gt;
! VSuite &lt;br /&gt;
V.3.3.0 &lt;br /&gt;
! VIVAit V.3.0.0&lt;br /&gt;
(VSuite 3.4+VCall3.0) &lt;br /&gt;
!  VIVAit V.3.1.0&lt;br /&gt;
(VSuite 3.5+VCall3.1)&lt;br /&gt;
|-&lt;br /&gt;
| Sistema Operativo || || || || &lt;br /&gt;
|| Ubuntu 14.0.4&lt;br /&gt;
Server 64 Kb&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk || 1.4 || 1.4 || 1.4 || 1.4 Nodo ACD&lt;br /&gt;
13 resto nodos&lt;br /&gt;
|| 1.4 Nodo ACD&lt;br /&gt;
13 resto nodos&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk ACD '''(VS)'''  ||  ||  || || 3.3.1 || 3.4.1 &lt;br /&gt;
|-&lt;br /&gt;
| Dialplan ACD '''(VS)''' || ||  ||  || || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk Corp '''(C)''' ||  ||  ||  || 3.3.4 || 3.4.4&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk Cisco '''(VC)''' ||  ||  ||  || 3.3.4 || 3.4.4&lt;br /&gt;
|-&lt;br /&gt;
| Dialplan Corp '''(C)''' || ||  ||  || 3.3.1 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Lazarus común '''(VS)''' || 3.1.0  || 3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| BD '''(C)''' || 3.2.0 || 3.4.0 || 3.5.0 || 3.6.0 || 3.8.0&lt;br /&gt;
|-&lt;br /&gt;
| Generaconf '''(C)''' || 3.0.0  || 3.0.0  || 3.2.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Instalador '''(C)''' || 3.1.0  || 3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Intz-nimitz '''(C)''' || 2.6.0  || 3.0.1 || 3.0.3 ||  3.4.1 || 3.4.2&lt;br /&gt;
|-&lt;br /&gt;
| recordgwd '''(C)'''  ||  1.3.0 ||  1.3.0 || 3.1.0 ||  ----- || -----&lt;br /&gt;
|-&lt;br /&gt;
| recordNodo '''(C)''' || ----- || ----- || ----- ||  4.0.0 || 4.0.0&lt;br /&gt;
|-&lt;br /&gt;
| recordprocesad '''(C)''' || 1.2.0 ||1.2.0|| 3.0.0 || ----- || -----&lt;br /&gt;
|-&lt;br /&gt;
| recordCentral '''(C)''' || ----- || ----- || -----||  4.0.0 || 4.0.1&lt;br /&gt;
|-&lt;br /&gt;
| MyACDSuperv '''(VS)''' || 5.2.0 || 5.3.0  ||  5.3.0  ||  5.3.2 || 5.3.2&lt;br /&gt;
|-&lt;br /&gt;
| Motorsal '''(VS)''' || 1.4.0 || 3.1.0  || 3.2.0 || 3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| Vivait-cti '''(VS)'''  || 3.0.0 ||  3.0.1  ||  3.0.1  ||  3.0.1 || 3.0.2&lt;br /&gt;
|-&lt;br /&gt;
| Multimonitorweb '''(VS)''' ||  3.0.1 ||  3.0.2  || 3.1.0  || 3.1.0 || 3.2.0&lt;br /&gt;
|-&lt;br /&gt;
| Portal de administración '''(C)''' || 3.1.0  || 3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Tracker Web '''(C)''' || 3.0.2  || 3.1.0 ||  3.2.0 ||  3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
|  VIVA supervisor '''(VS)''' || 3.0.0 ||  3.1.0  ||  3.2.0  ||  3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| Tracker windows '''(C)''' || 3.0.0  || 3.1.0  || 3.2.0 || 3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| VIVA report '''(VS)''' || 1.2.0  || 3.1.0  || 3.2.0  ||  3.2.2 || 3.3.0&lt;br /&gt;
|-&lt;br /&gt;
| VIVA desk '''(VS)''' || 3.0.2 ||  3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| VIVA designer '''(VS)''' || 1.0.23 || 3.0.1  || 3.1.0 ||  3.1.0 || 3.2.0&lt;br /&gt;
|-&lt;br /&gt;
|  Preview '''(VS)''' || 1.0.18 || 3.2.0  || 3.3.0 || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Phone_prov '''(C)''' || ------ || ------ || 3.0.1 || 3.0.3 || 3.0.3&lt;br /&gt;
|-&lt;br /&gt;
| Portal usuario '''(VC)''' || ------ || ------ || ------ || 3.0.0 || 3.1.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''(C)''': Módulo común&lt;br /&gt;
&lt;br /&gt;
'''(VC)''': Módulo de VIVAit Call&lt;br /&gt;
&lt;br /&gt;
'''(VS)''': Módulo de VIVAit Suite&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Sistema Operativo ===&lt;br /&gt;
Los sistemas operativos de nuestra plataforma se corresponden a las versiones de Ubuntu Server LTS , ya que son las versiones estables, con un soporte continuado y mas estables a actualizaciones desde la salida Ubuntu 14.04.1. En concreto el sistema operativo utilizado para la plataforma '''''VIVA'''''it es Ubuntu Server 14.04.4 LTS. Para más información https://help.ubuntu.com/lts/serverguide/index.html.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ubuntu Kernel Release Schedule.png|750px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Funcionamiento en cluster ====&lt;br /&gt;
&lt;br /&gt;
Un clúster es un grupo de múltiples ordenadores unidos mediante una red de alta velocidad, de tal forma que el conjunto es visto como un único ordenador.&lt;br /&gt;
&lt;br /&gt;
De un clúster se espera que presente combinaciones de los siguientes servicios:&lt;br /&gt;
&lt;br /&gt;
# Alto rendimiento &lt;br /&gt;
# Alta disponibilidad&lt;br /&gt;
# Balanceo de carga &lt;br /&gt;
# Escalabilidad &lt;br /&gt;
&lt;br /&gt;
Tal y como esta definido el cluster de MDtel, este comprueba conectividad con la otra máquina que lo forma y con un punto de confianza. Si la máquina no tiene conectividad con la otra y si con el punto de confianza es que el servidor está vivo, mientas que si no tengo conectividad ni con la otra máquina ni con el punto de confianza es que el muerto soy yo, por lo que balanceo.&lt;br /&gt;
&lt;br /&gt;
Por lo que las máquinas balancean en los casos siguientes:&lt;br /&gt;
&lt;br /&gt;
* Todo lo que tenga que ver con la red, es decir, caída de la tarjeta de red, apagado de la máquina, corte en la red..&lt;br /&gt;
&lt;br /&gt;
Y no balancea en los siguientes:&lt;br /&gt;
&lt;br /&gt;
* No balancea en los demás casos, es decir, todo lo que tenga que ver con procesos de una máquina (caída asterisk, base de datos, intz-nimitz)&lt;br /&gt;
&lt;br /&gt;
El funcionamiento en cluster se basa en:&lt;br /&gt;
&lt;br /&gt;
* Heartbeat: IP flotante entre las dos máquinas que componen el cluster; típicamente este &amp;quot;latido&amp;quot; entre máquinas se realizará mediante conexión directa con cable cruzado para asegurar que no existan problemas de comunicaciones tales como retardo, pérdida de paquetes, etc en este latido y pueda ser causa de un balanceo inadecuado.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|  '''Nota 17-11-2015:''' Se ha realizado en un cliente un cluster distribuido, con dos servidores en diferentes sedes, realizando el heartbeat mediante enlace Gigabit. Si bien la solución no está validada por desarrollo, se está observando el funcionamiento.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* DRBD se encargar de mantener una serie de carpetas totalmente replicadas entre los dos nodos; dichas carpetas son:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El cluster es &amp;lt;big&amp;gt;'''activo/pasivo'''&amp;lt;/big&amp;gt;; la máquina activa posee la IP flotante y tiene arrancados los servicios.&lt;br /&gt;
&lt;br /&gt;
==== Configuración del cluster ====&lt;br /&gt;
Para montar un cluster de asterisk partimos de la siguiente situación inicial:&lt;br /&gt;
* Dos maquinas con '''''VIVA'''''it Call 3.0 instalado.&lt;br /&gt;
* El driver bonding de Interfaces de Red en Ubuntu Server.&lt;br /&gt;
&lt;br /&gt;
Los pasos a seguir para la configuración en el Ubuntu Server son los siguientes:&lt;br /&gt;
* Instalar ifenslave: &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 aptitude install ifenslave.&lt;br /&gt;
|}&lt;br /&gt;
: Finalizada la instalación, comprobamos que la instalación de Bonding se ha configurado para empezar desde el arranque del sistema operativo desde el fichero '''/etc/modules''':&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| vi /etc/modules&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 # Parameters can be specified after the module name.&lt;br /&gt;
 lp&lt;br /&gt;
 rtc&lt;br /&gt;
 bonding&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Crear o editar el archivo llamado '''/etc/modprobe.d/bonding.conf''' y añadir la siguiente linea en negrita:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 echo &amp;quot;alias bond0 bonding&amp;quot;&amp;gt; /etc/modprobe.d/bonding.conf&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Editar el fichero /etc/network/interfaces y añadir lo que esta en negrita:&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
 # This file describes the network interfaces available on your system&lt;br /&gt;
 # and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 &lt;br /&gt;
 '''# Bonding'''&lt;br /&gt;
 &lt;br /&gt;
 '''#em1 ip manual y esclavo en el &amp;quot;bond0&amp;quot; NIC'''&lt;br /&gt;
 '''auto em1'''&lt;br /&gt;
 '''iface em1 inet manual'''&lt;br /&gt;
 '''bond-master bond0'''&lt;br /&gt;
 '''bond-primary em0''' &lt;br /&gt;
 &lt;br /&gt;
 '''#em2 ídem, creando así un vínculo de enlace 2.'''&lt;br /&gt;
 '''auto em2'''&lt;br /&gt;
 '''iface em2 inet manual'''&lt;br /&gt;
 '''bond-master bond0'''&lt;br /&gt;
 '''auto bond0'''&lt;br /&gt;
 '''iface bond0 inet static'''&lt;br /&gt;
         '''address 10.255.255.11'''&lt;br /&gt;
        '''netmask 255.255.255.0'''&lt;br /&gt;
        '''gateway 10.255.255.254'''&lt;br /&gt;
 '''bond-mode active-backup'''&lt;br /&gt;
 '''bond-miimon 100'''&lt;br /&gt;
 '''bond-slaves none'''&lt;br /&gt;
 &lt;br /&gt;
 '''# em3 replica entre servidores'''&lt;br /&gt;
 '''auto em3'''&lt;br /&gt;
 '''iface em3 inet static'''&lt;br /&gt;
         '''address 10.255.254.10'''&lt;br /&gt;
        '''netmask 255.255.255.0'''&lt;br /&gt;
 &lt;br /&gt;
 '''# em4 gestion'''&lt;br /&gt;
 '''auto em4'''&lt;br /&gt;
 '''iface em4 inet static'''&lt;br /&gt;
         '''address 172.17.47.255'''&lt;br /&gt;
         '''netmask 255.255.0.0'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Reiniciamos el sistema para que el kernel tome los cambios.&lt;br /&gt;
&lt;br /&gt;
* Comprobación que en las dos maquinas el archivo '''/etc/host''' contenga el los nombre de las dos maquinas a vincular. En el ejemplo el archivo en ambas maquinas es:&lt;br /&gt;
&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 127.0.0.1       localhost&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.11   vivaitcall-CL-UAH-1&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.12   vivaitcall-CL-UAH-2&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.10   vivaitcall-CL-UAH&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.10   BDTR&lt;br /&gt;
 &lt;br /&gt;
 10.255.254.10   vivaitcall-CL-UAH-1-em3&lt;br /&gt;
 &lt;br /&gt;
 10.255.254.11   vivaitcall-CL-UAH-2-em3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Creamos dos particiones iguales en ambos ordenadores , usando el comando '''parted'''.&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# '''parted /dev/sda'''&lt;br /&gt;
 GNU Parted 2.3&lt;br /&gt;
 Using /dev/sda&lt;br /&gt;
 Welcome to GNU Parted! Type 'help' to view a list of commands.&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Number  Start   End     Size    File system     Name  Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 &lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                 boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
        237GB   1000GB  763GB   Free Space&lt;br /&gt;
 &lt;br /&gt;
 (parted) mkpart primary 237GB 1000GB&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Number  Start   End     Size    File system     Name     Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                    boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
 5      237GB   1000GB  763GB                   primary  No File System como ext4&lt;br /&gt;
        1000GB  1000GB  204kB   Free Space&lt;br /&gt;
 (parted)quit&lt;br /&gt;
 mkfs.ext4 /dev/sda5&lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# '''parted /dev/sda'''&lt;br /&gt;
 GNU Parted 2.3&lt;br /&gt;
 Using /dev/sda&lt;br /&gt;
 Welcome to GNU Parted! Type 'help' to view a list of commands.&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Number  Start   End     Size    File system     Name     Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                    boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
 5      237GB   1000GB  763GB                   primary&lt;br /&gt;
        1000GB  1000GB  204kB   Free Space&lt;br /&gt;
 (parted) rm 5&lt;br /&gt;
 (parted) mkpart primary 237GB 1000GB&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 &lt;br /&gt;
 Number  Start   End     Size    File system     Name     Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                    boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
 5      237GB   1000GB  763GB   ext4            primary  Si File Sytem ext4&lt;br /&gt;
        1000GB  1000GB  204kB   Free Space&lt;br /&gt;
 (parted)quit&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Instalar los paquetes necesarios para el drbd. '''En Ubuntu server 14.04 ya está instalado.'''&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 aptitude install drbd8-utils  &lt;br /&gt;
 aptitude update (si no instala el drbd8-utils actualizar)&lt;br /&gt;
 aptitude install drbd8-utils  (volver a lanzar)&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
* Creamos el archivo '''/etc/drbd.conf''' en ambas maquinas:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 # You can find an example in  /usr/share/doc/drbd.../drbd.conf.example&lt;br /&gt;
 include &amp;quot;drbd.d/global_common.conf&amp;quot;;&lt;br /&gt;
 include &amp;quot;drbd.d/*.res&amp;quot;;&lt;br /&gt;
 resource MDcluster {&lt;br /&gt;
         protocol C;&lt;br /&gt;
         on vivaitcall-CL-UAH-1 {&lt;br /&gt;
               device /dev/drbd0;&lt;br /&gt;
               disk /dev/sda5;&lt;br /&gt;
               address 10.255.254.10:7788;&lt;br /&gt;
               meta-disk internal;&lt;br /&gt;
        }&lt;br /&gt;
        on vivaitcall-CL-UAH-2 {&lt;br /&gt;
               device /dev/drbd0;&lt;br /&gt;
               disk /dev/sda5;&lt;br /&gt;
               address 10.255.254.11:7788;&lt;br /&gt;
               meta-disk internal;&lt;br /&gt;
        }&lt;br /&gt;
        disk {&lt;br /&gt;
               on-io-error detach;&lt;br /&gt;
        }&lt;br /&gt;
        net {&lt;br /&gt;
               max-buffers 2048;&lt;br /&gt;
               ko-count 4;&lt;br /&gt;
        }&lt;br /&gt;
        syncer {&lt;br /&gt;
               rate 100M;&lt;br /&gt;
               al-extents 257;&lt;br /&gt;
        }&lt;br /&gt;
        startup {&lt;br /&gt;
                wfc-timeout 0;&lt;br /&gt;
                degr-wfc-timeout 120;&lt;br /&gt;
        }&lt;br /&gt;
 }&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Reiniciamos el sistema para que el kernel tome los cambios.&lt;br /&gt;
* Inicializamos el recurso, para ello primero deberemos crear los recursos DRBD teclearemos en ambas maquinas. Desde /etc.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
  drbdadm create-md MDcluster  (no y yes )&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Si tenemos algún problema porque ya exista sistema de ficheros.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 dd if=/dev/zero of=/dev/sda5 bs=1M count=128&lt;br /&gt;
 drbdadm create-md MDcluster  (no y yes )&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Reiniciamos ambas maquinas para que su kernel tome los cambios.&lt;br /&gt;
* Levantamos el servicio del DRBD en ambos servidores (nos preguntara que si queremos enviar los datos a los desarrolladores de drbd) tecleando no, no se envían.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 service drbd start&lt;br /&gt;
 /etc/init.d/drbd start&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Ahora &amp;lt;u&amp;gt;ambas maquinas son secundarias&amp;lt;/u&amp;gt;.&lt;br /&gt;
: Indicar cual de las dos maquinas usaremos como primaria, por tanto en la maquina elegida habra que ejecutar:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 drbdadm -- --overwrite-data-of-peer primary all (en una máquina)&lt;br /&gt;
:&amp;lt;small&amp;gt;'''Nota:''' La ip virtual que va a estar asignada a la maquina activa es  172.25.129.70.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Podemos teclear el comando '''''cat''''' para ver si esta sincronizando  y su progreso:&lt;br /&gt;
&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 cat /proc/drbd&lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' El servicio DRBD  aparecera como '''''Primary/Secondary'''''  si ejecutamos en el primario ; &lt;br /&gt;
 y aparecerá ''''Secondary/Primary'''' si lo ejecutamos en el secundario. &amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
* Instalación de los script de arranque:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 update-rc.d -f drbd remove (en las dos maquinas)&lt;br /&gt;
 update-rc.d drbd start 13 2 3 4 5 . stop 87 0 1 6 . (en las dos máquinas)&lt;br /&gt;
|}&lt;br /&gt;
* Seleccionar la fuente de sincronización.&lt;br /&gt;
:Formateamos un disco de la maquina que queramos que funcione como fuente del servicio DRBD, para evitar conflictos:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 mkfs.ext4  /dev/drbd0&lt;br /&gt;
|}&lt;br /&gt;
: Creamos el directorio sobre el que vamos a montar el disco, en ambas maquinas.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 mkdir  /HDcluster&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Creamos un archivo dentro '''''/HDcluster''''' de que se verá solo cuando el disco no está montado en ambas maquinas.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 touch sinMontar&lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' Este archivo nos puede servir para monitorizar mediante zabbix, nagios, ... que el disco no está montado.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:  En una de las maquinas montamos el disco (desde fuera del directorio HDcluster) &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 mount  /dev/drbd0 /HDcluster&lt;br /&gt;
|}&lt;br /&gt;
* Procedemos a mover todos los datos que necesitemos en este disco y a crear accesos directos, los directorios que vamos a mover son los siguientes:&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 /etc/asterisk&lt;br /&gt;
 /var/lib/asterisk&lt;br /&gt;
 /usr/lib/asterisk&lt;br /&gt;
 /usr/spool/asterisk&lt;br /&gt;
 /var/lib/mysql&lt;br /&gt;
 /var/tftp/&lt;br /&gt;
|}&lt;br /&gt;
: El procedimiento que vamos a seguir es el siguiente, en el primer ordenador:&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 '''Cd /HDcluster'''&lt;br /&gt;
 '''tar -zcvf etc-asterisk.tgz /etc/asterisk'''&lt;br /&gt;
 '''tar -zxvf  etc-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /etc/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/etc/asterisk /etc/asterisk'''&lt;br /&gt;
 '''tar -zcvf var-lib-asterisk.tgz /var/lib/asterisk'''&lt;br /&gt;
 '''tar -zxvf  var-lib-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /var/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/asterisk /var/lib/asterisk'''&lt;br /&gt;
 '''tar -zcvf usr-lib-asterisk.tgz /usr/lib/asterisk'''&lt;br /&gt;
 '''tar -zxvf  usr-lib-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /usr/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/usr/lib/asterisk /usr/lib/asterisk'''&lt;br /&gt;
 '''tar -zcvf var-spool-asterisk.tgz /var/spool/asterisk'''&lt;br /&gt;
 '''tar -zxvf  var-spool-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /var/spool/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/spool/asterisk /var/spool/asterisk'''&lt;br /&gt;
 '''tar -zcvf var-lib-mysql.tgz /var/lib/mysql'''&lt;br /&gt;
 '''tar -zxvf  var-lib-mysql.tgz'''&lt;br /&gt;
 '''rm -rf /var/lib/mysql'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/mysql /var/lib/mysql'''&lt;br /&gt;
 '''tar -zcvf var-lib-phoneprov-tftp.tgz /var/lib/phoneprov-tftp/'''&lt;br /&gt;
 '''tar -zxvf  var-lib-phoneprov-tftp.tgz'''&lt;br /&gt;
 '''rm -rf /var/lib/phoneprov-tftp/'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/phoneprov-tftp /var/lib/phoneprov-tftp'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: En la segunda maquina debemos borrar los directorios y crear los accesos directos.&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''rm -rf /etc/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/etc/asterisk /etc/asterisk'''&lt;br /&gt;
 '''rm -rf /var/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/asterisk /var/lib/asterisk'''&lt;br /&gt;
 '''rm -rf /usr/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/usr/lib/asterisk /usr/lib/asterisk'''&lt;br /&gt;
 '''rm -rf /var/spool/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/spool/asterisk /var/spool/asterisk'''&lt;br /&gt;
 '''rm -rf /var/lib/mysql'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/mysql /var/lib/mysql'''&lt;br /&gt;
 '''rm -rf /var/lib/phoneprov-tftp'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/phoneprov-tftp /var/lib/phoneprov-tftp'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Configurar heartbeat para las dos maquinas.&lt;br /&gt;
: Instalamos heartbeat en las dos maquinas. '''En UBUNTU Server 14.04 ya está instalado.'''&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 aptitude install heartbeat&lt;br /&gt;
|}&lt;br /&gt;
: Debemos modificar 3 ficheros en cada una de las maquinas, estos se encuentran en '''/etc/ha.d'''. El primer fichero a modificar es '''''ha.cf.''''':&lt;br /&gt;
:: En la maquina ''vivaitcall-CL-UAH-1'' es: &lt;br /&gt;
::{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# cat /etc/ha.d/ha.cf&lt;br /&gt;
 '''# Explicacion en /usr/share/doc/heartbeat/ha.cf.gz'''&lt;br /&gt;
 &lt;br /&gt;
 '''udpport 694'''&lt;br /&gt;
 '''baud 19200'''&lt;br /&gt;
 '''auto_failback off'''&lt;br /&gt;
 '''use_logd yes'''&lt;br /&gt;
 '''crm no'''&lt;br /&gt;
 &lt;br /&gt;
 '''# Temporizaciones en segs'''&lt;br /&gt;
 '''logfacility local0'''&lt;br /&gt;
 '''keepalive 2'''&lt;br /&gt;
 '''deadtime 8'''&lt;br /&gt;
 '''warntime 16'''&lt;br /&gt;
 '''initdead 64'''&lt;br /&gt;
 '''deadping 6'''&lt;br /&gt;
 &lt;br /&gt;
 '''#ucast bond0 vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''ucast bond0 vivaitcall-CL-UAH-2'''&lt;br /&gt;
 &lt;br /&gt;
 '''#ucast em3 vivaitcall-CL-UAH-1-em3'''&lt;br /&gt;
 '''ucast em3 vivaitcall-CL-UAH-2-em3'''&lt;br /&gt;
 &lt;br /&gt;
 '''#Ping a puerta de enlace,gw1,gw2,gw3,gw4'''&lt;br /&gt;
 '''ping_group red_local 10.255.255.12'''&lt;br /&gt;
 &lt;br /&gt;
 '''respawn hacluster /usr/lib/heartbeat/ipfail'''&lt;br /&gt;
 '''apiauth ipfail gid=haclient uid=hacluster'''&lt;br /&gt;
 &lt;br /&gt;
 '''node vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''node vivaitcall-CL-UAH-2'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:: Y en la maquina ''vivaitcall-CL-palacio-2'' es:&lt;br /&gt;
::{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# cat /etc/ha.d/ha.cf&lt;br /&gt;
 '''# Explicacion en /usr/share/doc/heartbeat/ha.cf.gz'''&lt;br /&gt;
 &lt;br /&gt;
 '''udpport 694'''&lt;br /&gt;
 '''baud 19200'''&lt;br /&gt;
 '''auto_failback off'''&lt;br /&gt;
 '''use_logd yes'''&lt;br /&gt;
 '''crm no'''&lt;br /&gt;
 &lt;br /&gt;
 '''# Temporizaciones en segs'''&lt;br /&gt;
 '''logfacility local0'''&lt;br /&gt;
 '''keepalive 2'''&lt;br /&gt;
 '''deadtime 8'''&lt;br /&gt;
 '''warntime 16'''&lt;br /&gt;
 '''initdead 64'''&lt;br /&gt;
 '''deadping 6'''&lt;br /&gt;
 &lt;br /&gt;
 '''ucast bond0 vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''#ucast bond0 vivaitcall-CL-UAH-2'''&lt;br /&gt;
 &lt;br /&gt;
 '''ucast em3 vivaitcall-CL-UAH-1-em3'''&lt;br /&gt;
 '''#ucast em3 vivaitcall-CL-UAH-2-em3'''&lt;br /&gt;
 &lt;br /&gt;
 '''#Ping a puerta de enlace gw1 gw2 gw3 gw4'''&lt;br /&gt;
 '''ping_group red_local 10.255.255.12'''&lt;br /&gt;
 &lt;br /&gt;
 '''respawn hacluster /usr/lib/heartbeat/ipfail'''&lt;br /&gt;
 '''apiauth ipfail gid=haclient uid=hacluster'''&lt;br /&gt;
 &lt;br /&gt;
 '''node vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''node vivaitcall-CL-UAH-2'''&lt;br /&gt;
|}&lt;br /&gt;
::'''Nota:''' El parámetro '''auto_failback''' se utiliza para indicar si queremos que al recuperarse una maquina adquiera los recursos sobre los que tiene prioridad.&lt;br /&gt;
:El segundo fichero es '''''authkeys''''',, este fichero es el mismo en ambas maquinas: &lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 chmod 600 authkeys '''(importante)'''&lt;br /&gt;
 auth 1&lt;br /&gt;
 1 sha1 claveSecretaATope&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:El tercer fichero '''haresources''', donde especificaremos en las dos maquinas que deben apuntar a la maquina que queremos que tenga prioridad en la adquisición de los recursos, este fichero es el mismo en las dos maquinas: &lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 MÁQUINA 1 -&amp;gt; vivaitcall-CL-palacio-1 hb_mdtel&lt;br /&gt;
 MÁQUINA 2-&amp;gt; vivaitcall-CL-palacio-1 hb_mdtel &lt;br /&gt;
|}&lt;br /&gt;
: Copiaremos en el directorio '''/etc/ha.d/resource.d/''' los scripts de arranque con permisos 755 (lo podemos hacer mediante WINSCP). Los scripts se encuentran en '''''C:\Documents and Settings\javier.gutierrez.MDTEL\Mis documentos\Centrales\Asterisk\Cluster\scripts'''''.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 chmod 755 hb_catalina&lt;br /&gt;
 chmod 755 hb_mdtel&lt;br /&gt;
 chmod 755 hb_mdtel_firewall&lt;br /&gt;
|}&lt;br /&gt;
: Deberemos editar  el archivo '''hb_mdtel'''&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 (IP flotante a.b.c.d./mask) 10.255.255.10&lt;br /&gt;
 CAD_IP_FLOTA=10.255.255.10/24/bond0&lt;br /&gt;
|}&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* Paramos el proceso '''myAcdSuperv'''.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 mv /etc/rc2.d/S02myAcdSuperv s02myAcdSuperv&lt;br /&gt;
|}&lt;br /&gt;
* Reiniciamos ambas maquinas para que su kernel tome los cambios.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de buen funcionamiento del cluster ====&lt;br /&gt;
* La maquina activa tiene que tener en HDcluster montado el disco con todos sus directorios y la maquina inactiva no (tenemos que ver el archivo que hemos creado &amp;quot;sinMontar&amp;quot;). &lt;br /&gt;
* La ip virtual tiene que estar en la maquina activa (ifconfig)  y no tiene que estar en la inactiva. &lt;br /&gt;
* El asterisk tiene que estar arrancado en la maquina activa y parado en la inactiva. &lt;br /&gt;
* Tecleando la ip de la maquina activa en un navegador debemos acceder al portal de vivait-call y en la inactiva no debe de estar activo. &lt;br /&gt;
* Para cambiar el cluster manualmente podemos utilizar los siguientes comandos:&lt;br /&gt;
:{|&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
  /usr/share/heartbeat/hb_takeover&lt;br /&gt;
|}&lt;br /&gt;
: La maquina desde la que se ejecuta se convierte en la maquina activa&lt;br /&gt;
:{|&lt;br /&gt;
 |- &lt;br /&gt;
 |&lt;br /&gt;
  /usr/share/heartbeat/hb_standby&lt;br /&gt;
 |}&lt;br /&gt;
: La maquina desde la que se ejecuta deja de ser la maquina activa&lt;br /&gt;
&lt;br /&gt;
==== Notas para MySQL ====&lt;br /&gt;
Si mysql es parte del cluster tenemos que tener en cuenta dos cosas:&lt;br /&gt;
&lt;br /&gt;
* El archivo '''/etc/mysql/debían.cnf''' contiene una clave que debe ser igual en ambas maquinas y debe ser la clave de la máquina de donde cojamos la base de datos.&amp;lt;br&amp;gt;&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 # Automatically generated for Debian scripts. DO NOT TOUCH!&lt;br /&gt;
 [client]&lt;br /&gt;
 host     = localhost&lt;br /&gt;
 user     = debian-sys-maint&lt;br /&gt;
 password = AI6AdPtnhLUrNm1S&lt;br /&gt;
 socket   = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysql_upgrade]&lt;br /&gt;
 user     = debian-sys-maint&lt;br /&gt;
 password = AI6AdPtnhLUrNm1S&lt;br /&gt;
 socket   = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 basedir  = /usr&lt;br /&gt;
|} &amp;lt;br&amp;gt;&lt;br /&gt;
* El archivo '''/etc/apparmor.d/usr.sbin.mysqld''' contiene donde pueden estar ubicados los archivos de mysql, al cambiar su ubicación y poner un enlace directo en /var/lib/mysql si no modificamos este archivo mysql no arrancara al no tener la nueva ubicación entre sus localizaciones permitidas. Este es un ejemplo de las líneas que debemos añadir. &amp;lt;br&amp;gt;&lt;br /&gt;
:{|&lt;br /&gt;
|-  &lt;br /&gt;
|&lt;br /&gt;
 /var/run/mysqld/mysqld.sock w, (copiar después de esta linea)&lt;br /&gt;
 &lt;br /&gt;
 #//!!&lt;br /&gt;
   /HDcluster/var/lib/mysql/ r,&lt;br /&gt;
   /HDcluster/var/lib/mysql/** rwk,&lt;br /&gt;
   #//!!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Notas de desincronización ====&lt;br /&gt;
EL servicio del DRBD esta iniciado pero al teclear el comando cat /proc/drbd para ver si esta sincronizando se presenta &amp;quot;'''primary/unknown&amp;quot; y/o secondary/unknown''' &amp;quot;.&lt;br /&gt;
* En el nodo primary  &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 drbdadm connect all &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* En el nodo secondary  &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 drbdadm disconnect all  &lt;br /&gt;
 drbdadm -- --discard-my-data connect all&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Adaptar red a cliente ====&lt;br /&gt;
Para adaptar la red de los equipos al entorno del cliente hay que editar los siguientes ficheros:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 /etc/network/interfaces&lt;br /&gt;
 /etc/resolv.conf&lt;br /&gt;
 /etc/hosts&lt;br /&gt;
 /etc/ha.d/resource.d/hb_mdtel&lt;br /&gt;
 /etc/ha.d/ha.cf &lt;br /&gt;
 - TFTP: &lt;br /&gt;
 /etc/inetd.conf (IP del cluster)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
Tras la modificaciones oportunas, se debe reiniciar las dos máquinas para cargar las nuevas configuraciones.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Matriz de conmutación ===&lt;br /&gt;
&lt;br /&gt;
Encontramos dos diferentes núcleos de conmutación en la plataforma VIVAit:&lt;br /&gt;
&lt;br /&gt;
* Para los nodos de procesamiento ACD el núcleo de conmutación es asterisk 1.4 RSP con fuertes modificaciones realizadas por MDtel en determinados módulos (queues, chan_spy entre otros)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Para los nodos que realizan funcionalidad de gateway y/o procesamiento de telefonía corporativa, se utiliza como núcleo de conmutación asterisk 13, versión certified&lt;br /&gt;
https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Documentation&lt;br /&gt;
&lt;br /&gt;
==== Modificaciones realizadas sobre Asterisk 13 certified 2 ====&lt;br /&gt;
&lt;br /&gt;
===== Archivos añadidos por '''MD'''tel =====&lt;br /&gt;
Los archivos añadidos son los siguientes:&lt;br /&gt;
&lt;br /&gt;
* '''apps/app_ucid.c'''&lt;br /&gt;
* '''apps/app_cli.c'''&lt;br /&gt;
* '''apps/app_crash.c'''&lt;br /&gt;
* '''apps/app_mdintz.c'''&lt;br /&gt;
* '''apps/app_mdintz.exports.in'''&lt;br /&gt;
* '''include/asterisk/mdintz.h'''&lt;br /&gt;
* '''include/asterisk/ucid.h'''&lt;br /&gt;
* '''res/res_mdcal.c'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ apps/app_mdintz.exports.in '''&lt;br /&gt;
&lt;br /&gt;
Este archivo sirve para la exportación de funciones del mdintz para el uso por aplicaciones externas&lt;br /&gt;
&lt;br /&gt;
===== Modificaciones de archivos =====&lt;br /&gt;
&lt;br /&gt;
Los archivos modificados por '''MD'''tel son los mostrados a continuación:&lt;br /&gt;
&lt;br /&gt;
* '''apps/app_mixmonitor.c''' &lt;br /&gt;
* '''res/res_calendar_caldav.c'''&lt;br /&gt;
* '''contrib/scripts/safe_asterisk'''&lt;br /&gt;
* '''contrib/init.d/rc.debian.asterisk'''&lt;br /&gt;
* '''channels/sig_pri.c'''&lt;br /&gt;
* '''channels/chan_sip.c'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ main/audiohook.c''' &amp;lt;!--style=&amp;quot;color:#0000ff&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''audiohook.c''' ha sido modificado para solucionar un crash de asterisk al utilizar en el mixmonitor las opciónes r y t &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ app_crash.c '''&lt;br /&gt;
&lt;br /&gt;
Esta nueva aplicación es sólo compatible con '''Asterisk 13'''. &lt;br /&gt;
&lt;br /&gt;
La documentación de la misma se encuentra en el comando: '''&amp;quot;core show application Crash&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
Esta nueva aplicación ''permite añadir'' al plan de pruebas:&lt;br /&gt;
&lt;br /&gt;
* Generación de una parada de asterisk. (Crash(IwantToGetAnAccessViolation) ó Crash(IwantToGetADoubleFreeMem))&lt;br /&gt;
* Verificación de su impacto. Por ejemplo, no deben cortarse las llamadas en curso, si así está previsto por la topología.&lt;br /&gt;
* Correcta generación de los &amp;quot;core&amp;quot;, comprobando que funciona &amp;quot;backtrace&amp;quot; (bt).&lt;br /&gt;
&lt;br /&gt;
 '''Nota.-''' Esta aplicación no debería estar presente en una instalación de '''Asterisk 13'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ app_mdintz.c y mdintz.h''' &amp;lt;!--style=&amp;quot;color:#0000ff&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esta aplicación sirve como interfaz a entornos (funcionalidades) creados por MDtel&lt;br /&gt;
&lt;br /&gt;
Para mas información consultar la página de [[MDintz|MDintz]].&lt;br /&gt;
&lt;br /&gt;
Las rutas de estos archivos son las siguientes:&lt;br /&gt;
&lt;br /&gt;
'''apps/app_mdintz.c''' &amp;lt;br/&amp;gt;&lt;br /&gt;
'''include/asterisk/mdintz.h '''&lt;br /&gt;
&lt;br /&gt;
 '''app_mdintz.c''' :&lt;br /&gt;
&lt;br /&gt;
'''app_mdintz.c''' orientada al proceso de enrutamiento a implementar en ''intz-nimitz.''&lt;br /&gt;
&lt;br /&gt;
El archivo '''.c''' es casi igual para asterisk 1.4.24 y asterisk 13. &lt;br /&gt;
 '''Nota.-''' Cuando se compila para asterisk 13, es necesario comentar la línea que pone&amp;lt;br /&amp;gt; '''&amp;quot;#define ASTERISK_OLD&amp;quot;.'''&lt;br /&gt;
&lt;br /&gt;
Los cambios implementados son:&lt;br /&gt;
&lt;br /&gt;
* Unificación de código entre las versiones de asterisk&lt;br /&gt;
* Nuevo comando &amp;quot;qry&amp;quot;&lt;br /&gt;
* Posible resolución de &amp;quot;Mal write&amp;quot; en intz-nimitz (a verificar)&lt;br /&gt;
&lt;br /&gt;
En cuanto al nuevo comando, el formato es:&lt;br /&gt;
&lt;br /&gt;
 '''mdintz qry &amp;lt;nHostFijo&amp;gt; &amp;lt;entorno&amp;gt; &amp;lt;servicio&amp;gt; &amp;lt;par1&amp;gt;...&amp;lt;parN&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Permite interrogar a un servidor de igual modo que hace el dialplan con '''fines de diagnóstico'''. La única diferencia es que se ha añadido el parámetro '''&amp;quot;nHostFijo&amp;quot;''' que puede tomar como valor '''&amp;quot;*&amp;quot;''' (lo que solicita una interrogación secuencial a todos los servidores definidos, igual a la funcionalidad del dialplan) ó '''&amp;quot;0&amp;quot;''' a '''&amp;quot;3&amp;quot;''' (que solicita un interrogación dirigida el host indicado como hostN, y sólo a él, en archivo de configuración).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para instalarlo, es necesario copiar:&lt;br /&gt;
&lt;br /&gt;
* '''asterisk/apps/app_mdintz.c'''&lt;br /&gt;
* '''asterisk/include/asterisk/mdintz.h'''&lt;br /&gt;
* En asterisk 1.4.24 conviene asegurar que se ha actualizado '''&amp;quot;asterisk/apps/app_queue.o&amp;quot;''' y '''&amp;quot;asterisk/apps/app_queue.so&amp;quot;'''&lt;br /&gt;
* Luego '''&amp;quot;make&amp;quot;, &amp;quot;make install&amp;quot;''' y module '''&amp;quot;unload/load&amp;quot;''' (mejor &amp;quot;stop now&amp;quot; y start)&lt;br /&gt;
&lt;br /&gt;
'''→ scripts y rc.debian.asterisk'''&lt;br /&gt;
&lt;br /&gt;
cambiado contrib/scripts por el modificado por MDtel&amp;lt;br /&amp;gt;&lt;br /&gt;
cambiado contrib/init.d/rc.debian.asterisk por el modificado por MDtel &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ Carpeta mp3 añadida al directorio addons'''&lt;br /&gt;
&lt;br /&gt;
La carpeta mp3 en addons permite la reproducción desde el diaplan de los mensajes en mp3. En make menuselect hay que marcar el format_mp3 y app_mp3 e instalar el paquete mpg123 de ubuntu &lt;br /&gt;
&lt;br /&gt;
'''→ sig_pri.c'''&lt;br /&gt;
&lt;br /&gt;
Modificado para enviar/recibir el ucid en un primario qsig &lt;br /&gt;
&lt;br /&gt;
Para que se envie el ucis tenemos que habilitar el envio de facilidades en el chan_dahdi.conf&lt;br /&gt;
&lt;br /&gt;
facilityenable = yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ init.d''' &amp;lt;!--style=&amp;quot;color:#0000ff&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Uno de los archivos modificados ha sido '''init.d''', se encuentra en la ruta: '''/etc/init.d/asterisk'''. La modificación realizada es la siguiente:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;background-color:#ffffcc;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| SAFE_ASTEISK=/usr/sbin/safe_asterisk &amp;lt;br/&amp;gt;&lt;br /&gt;
if [ -x $SAFE_ASTERISK ] ; then&amp;lt;br/&amp;gt;&lt;br /&gt;
:# //!! wkw&amp;lt;br/&amp;gt;&lt;br /&gt;
:DAEMON=$SAFE_ASTERISK&amp;lt;br/&amp;gt;&lt;br /&gt;
fi&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--archivo--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''→ safe-asterisk'''&lt;br /&gt;
* Se encuentra en la siguiente ruta:'''/usr/sbin/safe-asterisk''' .En este archivo se ha modificado MAXFILES=32768&lt;br /&gt;
&lt;br /&gt;
'''→ default'''&lt;br /&gt;
&lt;br /&gt;
* Este fichero podemos encontrarlo en: '''/etc/default/asterisk'''. La finalidad de la modificación de este fichero es poder correr como usuario Asterisk, grupo asterisk y generar cores (descomentar línea)&lt;br /&gt;
Las modificaciones realizadas han sido:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;background-color:#ffffcc;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| AST_USER=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
AST_GROUP=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
COREDUMP=yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Nueva función de asterisk: app_cli.so =====&lt;br /&gt;
&lt;br /&gt;
Esta función permite ejecutar desde el '''dialplan''' un comando de línea de consola de '''asterisk (CLI).''' Su primer uso (y esperamos que no último) será para lanzar los '''notify''' que los teléfonos necesitan para el ''reaprovisionamiento'' desde el portal o desde la facilidad de movilidad de usuario.&lt;br /&gt;
&lt;br /&gt;
Básicamente ejecuta un comando y devuelve su salida. Utiliza un archivo intermedio que puede ser:&lt;br /&gt;
&lt;br /&gt;
* '''/dev/null''' si el campo se deja vacío, por tanto, no se puede recuperar la salida.&lt;br /&gt;
* '''TEMP''', en cuyo caso se crea un archivo temporal que se borra antes de finalizar la ejecución de la función.&lt;br /&gt;
* Un nombre de fichero que es responsabilidad del dialplan el borrarlo cuando proceda.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para instalarlo basta copiar '''apps/app_cli.c''' en el directorio ''' &amp;quot;apps&amp;quot; ''' de los fuentes y luego  ejecutar '''&amp;quot;make&amp;quot; y &amp;quot;make install&amp;quot;.'''&lt;br /&gt;
&lt;br /&gt;
A continuación se pasa el resultado de '''&amp;quot;core show function CLI&amp;quot; '''&lt;br /&gt;
&lt;br /&gt;
'''[Synopsis]'''&lt;br /&gt;
&lt;br /&gt;
 Lanza un comando CLI desde dialplan&lt;br /&gt;
&lt;br /&gt;
'''[Description]''' &amp;lt;br /&amp;gt;&lt;br /&gt;
 - CLI(nomArchSal,cmd)&amp;lt;br /&amp;gt;&lt;br /&gt;
 - Si 'nomArchSal' está vacio, se usa '/dev/null' y no se recupera resultado&amp;lt;br /&amp;gt;&lt;br /&gt;
 - Si 'nomArchSal'=TEMP, Se crea un archivo temporal que se borra al final&amp;lt;br /&amp;gt;&lt;br /&gt;
 - En otro caso, se crea el archivo y no se borra&lt;br /&gt;
&lt;br /&gt;
'''[Syntax]'''&amp;lt;br /&amp;gt;&lt;br /&gt;
 CLI(nomArchSal,cmd)&lt;br /&gt;
&lt;br /&gt;
'''[Arguments]'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''nomArchSal'''&lt;br /&gt;
    Archivo de salida (si se omite, /dev/null)&lt;br /&gt;
'''cmd'''&lt;br /&gt;
    Comando a ejecutar via CLI&lt;br /&gt;
&lt;br /&gt;
==== Dialplan  ====&lt;br /&gt;
&lt;br /&gt;
El Dialplan podría considerarse la columna vertebral del sistema ''Asterisk''.&lt;br /&gt;
&lt;br /&gt;
Es una colección ordenada de acciones que se llevan a cabo cuando un usuario marca una serie de números. Hace la función de una tabla de enrutamiento de llamadas.&lt;br /&gt;
&lt;br /&gt;
Todas las configuraciones generales de Asterisk están accesibles en la ruta '''/etc/asterisk'''&lt;br /&gt;
&lt;br /&gt;
'''CONCEPTOS BÁSICOS'''&lt;br /&gt;
&lt;br /&gt;
♦ '''EXTENSIONES'''&lt;br /&gt;
&lt;br /&gt;
Una extensión es una marcación en el teclado de un teléfono. Dicha configuración podemos encontrarla en el archivo '''extensions.conf''' &lt;br /&gt;
&lt;br /&gt;
Por ejemplo, un usuario podría marcar “3001” en su teléfono, y eso sería una extensión. También podría marcar un número de teléfono nacional, como por ejemplo “915881000”, y también sería una extensión.&lt;br /&gt;
&lt;br /&gt;
En Asterisk pueden definirse también extensiones como texto, por tanto no debemos relacionar las extensiones únicamente con números.&lt;br /&gt;
&lt;br /&gt;
Algunas reglas que sería interesante conocer serían las siguientes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Regla''' !! '''Descripción'''&lt;br /&gt;
|-&lt;br /&gt;
| '''X''' || Cualquier cifra de 0 a 9&lt;br /&gt;
|-&lt;br /&gt;
|'''Z'''||Cualquier cifra de 1 a 9&lt;br /&gt;
|-&lt;br /&gt;
|'''N'''||Cualquier cifra de 2 a 9&lt;br /&gt;
|-&lt;br /&gt;
|'''[x-y]'''||Cualquier cifra de &amp;quot;x&amp;quot; a &amp;quot;y&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''[xyz]'''|| 	Las cifras &amp;quot;x&amp;quot;, &amp;quot;y&amp;quot; o &amp;quot;z&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''.'''||Una o más repeticiones del símbolo anterior&lt;br /&gt;
|-&lt;br /&gt;
|'''!'''||Cero o más repeticiones del símbolo anterior&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Estas reglas son necesarias a la hora de definir por ejemplo todos los números de teléfono posibles en España &lt;br /&gt;
&lt;br /&gt;
♦ '''PRIORIDADES'''&lt;br /&gt;
&lt;br /&gt;
En lenguaje scripting, las acciones se van ejecutando de arriba a abajo en orden. En cambio, en Asterisk, el orden en el que se ejecutan las acciones es el indicado mediante números.&lt;br /&gt;
Primero se ejecutará la acción 1, luego la 2...así sucesivamente.&lt;br /&gt;
&lt;br /&gt;
Es decir no basta con definir las acciones que se llevarán a cabo, también debemos indicar el orden en el que se llevarán a cabo.&lt;br /&gt;
&lt;br /&gt;
♦ '''CONTEXTOS'''&lt;br /&gt;
&lt;br /&gt;
Es mecanismo que nos permite variar el comportamiento del sistema en función del número que se marque. Su misión es aumentar la seguridad del sistema ofreciendo servicios diferenciados en función del usuario.&lt;br /&gt;
&lt;br /&gt;
La sintaxis típica es el nombre del contexto englobado entre corchetes [nombre_contexto]. Si un dispositivo no tiene un contexto definido se redirige directamente al contexto por defecto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los ficheros que conforman el Dialplan se clasifican en:&lt;br /&gt;
&lt;br /&gt;
* '''Generales'''&lt;br /&gt;
* '''Particulares'''&lt;br /&gt;
* '''Web'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Fichero''' !! '''Función'''&lt;br /&gt;
|-&lt;br /&gt;
| '''Generales''' || Se encuentran los ficheros de propios de MDtel y Asterisk. Es importante remarcar que estos ficheros NO pueden ser modificados por el usuario.&lt;br /&gt;
|-&lt;br /&gt;
|'''Particular'''||Estos ficheros son los únicos que puede modificar el usuario&lt;br /&gt;
|-&lt;br /&gt;
|'''Web'''|| Se encierran aquí los archivos generados automáticamente por la plataforma, a través del portal&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
En función del nodo en el que estemos trabajando, encontraremos dos tipos de dialplan:&lt;br /&gt;
&lt;br /&gt;
'''* Dialplan ACD''' --&amp;gt; Dialplan que aplica a nodos ACD&lt;br /&gt;
&lt;br /&gt;
'''* Dialplan corporativa''' --&amp;gt; Dialplan que aplica a nodos de corporativa o gateways (ya sean de corporativa o ACD)&lt;br /&gt;
&lt;br /&gt;
A continuación se muestran las tablas con los ficheros correspondientes a cada Dialplan.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;FloralWhite&amp;quot;&lt;br /&gt;
|+ '''Ficheros de configuración Dialplan Corporativo'''&lt;br /&gt;
| '''GENERALES'''&lt;br /&gt;
| '''PARTICULARES'''&lt;br /&gt;
| '''WEB'''&lt;br /&gt;
|-&lt;br /&gt;
| ext_Grabaciones.conf &amp;lt;br /&amp;gt;ext_InicioLlamada.conf &amp;lt;br /&amp;gt; ext_InicioLlamada_Dahdi.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP.conf &amp;lt;br/&amp;gt;ext_InicioLlamada_TrunkSIP.conf &amp;lt;br /&amp;gt;ext_MARCAR_ColaCentralita.conf &amp;lt;br /&amp;gt; ext_MARCAR_ColaCentralita_Dial.conf&amp;lt;br /&amp;gt; ext_MARCAR_Cola.conf &amp;lt;br /&amp;gt;ext_MARCAR_Cola_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR.conf  &amp;lt;br /&amp;gt; ext_MARCAR_DejarMensaje.conf &amp;lt;br /&amp;gt; ext_MARCAR_DejarMensaje_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Extension.conf&amp;lt;br /&amp;gt;ext_MARCAR_Extension_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_nimitz.conf&amp;lt;br /&amp;gt;ext_MARCAR_Interno.conf &amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje.conf &amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR_Nodo.conf&amp;lt;br /&amp;gt;ext_MARCAR_Nodo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Servicios.conf &amp;lt;br /&amp;gt;ext_MARCAR_VDN.conf &amp;lt;br /&amp;gt;MARCAR_VDN_Dial.conf&amp;lt;br /&amp;gt;ext_MDtel.conf &amp;lt;br /&amp;gt;ext_MDtel_Var.conf &amp;lt;br /&amp;gt;ext_Subrutinas_AnchoBanda.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD_Facilidad.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD_Facilidad.conf &amp;lt;br /&amp;gt; ext_Subrutinas_Colas.conf &amp;lt;br /&amp;gt;ext_Subrutinas.conf &amp;lt;br /&amp;gt;ext_Subrutinas_Enrutamiento.conf &amp;lt;br /&amp;gt;ext_Subrutinas_finLlamada.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Grabacion.conf&amp;lt;br /&amp;gt;ext_Subrutinas_nimitz.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Varias.conf&amp;lt;br /&amp;gt;ext_Subscribe.conf&amp;lt;br /&amp;gt;ext_Transfer.conf &amp;lt;br /&amp;gt;ext_Transfer_ExtSIP.conf&amp;lt;br /&amp;gt;ext_Transfer_TrunkInternos.conf &amp;lt;br /&amp;gt;ext_TrunkInternos.conf&amp;lt;br /&amp;gt;ext_TrunkInternos_Dial.conf &amp;lt;br /&amp;gt;sip_Estatico.conf&amp;lt;br /&amp;gt; sip_GENCUST.conf &amp;lt;br /&amp;gt;sip_notify.conf &amp;lt;br /&amp;gt;queues.conf &amp;lt;br /&amp;gt; queues_GENERAL.conf &amp;lt;br /&amp;gt;queues_PLANTILLACOLAS.conf&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| ext_Enrutador_Particular.conf&amp;lt;br /&amp;gt; ext_InicioLlamada_Dahdi_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_Particular.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_TrunkSIP_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_Extension_Particular.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo_Particular.conf &amp;lt;br/&amp;gt; ext_MARCAR_Facilidad_Particular.conf&amp;lt;br /&amp;gt; ext_MARCAR_VDN_Particular.conf &amp;lt;br /&amp;gt;ext_MDtel_Particular.conf &amp;lt;br/&amp;gt; ext_TrunkInternos_Particular.conf &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|asterisk_WEB.conf &amp;lt;br /&amp;gt; ext_MDtel_WEB.conf &amp;lt;br /&amp;gt; sip_trunkExt_WEB.conf &amp;lt;br /&amp;gt;sip_trunkInt_WEB.conf &amp;lt;br /&amp;gt;sip_trunk_WEB.conf &amp;lt;br /&amp;gt; sip_WEB.conf &amp;lt;br /&amp;gt; queues_WEB.conf&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;FloralWhite&amp;quot;&lt;br /&gt;
|+ '''Ficheros de configuración Dialplan ACD'''&lt;br /&gt;
| '''GENERALES'''&lt;br /&gt;
| '''PARTICULARES'''&lt;br /&gt;
| '''WEB'''&lt;br /&gt;
|-&lt;br /&gt;
| ext_Enrutador.conf&amp;lt;br /&amp;gt;ext_Grabaciones.conf &amp;lt;br /&amp;gt; ext_InicioLlamada.conf &amp;lt;br /&amp;gt; ext_InicioLlamada_CTI.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_Dahdi.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_Marcador.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_TrunkSIP.conf &amp;lt;br /&amp;gt;ext_MARCAR_ColaCentralita.conf &amp;lt;br /&amp;gt;ext_MARCAR_ColaCentralita_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR_Cola.conf &amp;lt;br /&amp;gt;ext_MARCAR_Cola_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR.conf &amp;lt;br /&amp;gt;ext_MARCAR_DejarMensaje.conf &amp;lt;br /&amp;gt;ext_MARCAR_DejarMensaje_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Extension.conf &amp;lt;br /&amp;gt;ext_MARCAR_Extension_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_nimitz.conf&amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje.conf &amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Nodo.conf &amp;lt;br /&amp;gt;ext_MARCAR_Nodo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR_Servicios.conf &amp;lt;br /&amp;gt;ext_MARCAR_VDN.conf &amp;lt;br /&amp;gt;ext_MARCAR_VDN_Dial.conf&amp;lt;br /&amp;gt;ext_MDtel.conf &amp;lt;br /&amp;gt;ext_MDtel_Var.conf &amp;lt;br /&amp;gt;ext_Subrutinas_AnchoBanda.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD_Facilidad.conf &amp;lt;br /&amp;gt; ext_Subrutinas_Colas.conf &amp;lt;br /&amp;gt;ext_Subrutinas.conf &amp;lt;br /&amp;gt;ext_Subrutinas_Enrutamiento.conf &amp;lt;br /&amp;gt; ext_Subrutinas_finLlamada.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Grabacion.conf &amp;lt;br /&amp;gt;ext_Subrutinas_nimitz.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Varias.conf &amp;lt;br /&amp;gt;ext_Subscribe.conf&amp;lt;br /&amp;gt;ext_Transfer.conf &amp;lt;br /&amp;gt;ext_Transfer_ExtSIP.conf&amp;lt;br /&amp;gt;ext_Transfer_TrunkInternos.conf &amp;lt;br /&amp;gt;ext_TrunkInternos.conf &amp;lt;br /&amp;gt;ext_TrunkInternos_Dial.conf &amp;lt;br /&amp;gt;queues_GENERAL.conf&amp;lt;br /&amp;gt;queues_PLANTILLACOLAS.conf &amp;lt;br /&amp;gt;sip_GENCUST.conf &amp;lt;br /&amp;gt;sip_GENERAL.conf &amp;lt;br /&amp;gt;sip_notify.conf &amp;lt;br /&amp;gt;sip_PLANTILLAEXT.conf&amp;lt;br /&amp;gt;sip_supervision.conf &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| ext_Enrutador_Particular.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_CTI_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_Dahdi_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_Marcador_Particular.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_Particular.conf.&amp;lt;br /&amp;gt;ext_InicioLlamada_TrunkSIP_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_Externo_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_VDN_Particular.conf&amp;lt;br /&amp;gt; ext_MDtel_Particular.conf&amp;lt;br /&amp;gt;ext_TrunkInternos_Particular.conf&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
|asterisk_WEB.conf &amp;lt;br /&amp;gt; ext_MDtel_WEB.conf &amp;lt;br /&amp;gt;queues_WEB.conf&amp;lt;br /&amp;gt; sip_trunkInt_WEB.conf &amp;lt;br /&amp;gt;sip_WEB.conf &amp;lt;br /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Servicios networking ===&lt;br /&gt;
Son muy importantes las configuraciones adecuadas de los servicios de:&lt;br /&gt;
&lt;br /&gt;
* '''NTP''': El sistema en global ha de estar sincronizado; todos los servidores y puestos de trabajo (en el caso de ''VIVA''it Suite) han de estar perfectamente sincronizados; los servidores de la plataforma se sincronizarán con el NTP del cliente; si el cliente no tiene NTP será necesario que un servidor de la plataforma se sincronice con un NTP externo y este sea el servidor para el resto de la plataforma&lt;br /&gt;
&lt;br /&gt;
* '''DNS''': La configuración de DNS de la plataforma será coherente con el resto de la plataforma IT del cliente&lt;br /&gt;
&lt;br /&gt;
* '''DHCP''': Es necesario coordinar con el cliente la asignación de direcciones para los diferentes elementos de la plataforma '''''VIVA'''''it, fundamentalmente para terminales telefónicos; en este caso además será necesario activa la opción 66 que permitirá definir el servidor TFTP del que los terminales cogerán sus ficheros de aprovisionamiento&lt;br /&gt;
&lt;br /&gt;
=== Bases de datos (BBDD)===&lt;br /&gt;
&lt;br /&gt;
La base de datos del sistema se basa en el motor de base de datos MySQL, es un elemento crítico del sistema, en el que insertan y del que obtiene mucha información múltiples procesos.&lt;br /&gt;
Muchas comunicaciones entre procesos se realizan vía Base de Datos (tabla COM_COMUNICADOS). Pueden existir distintas instancias de base de datos que explicadas en las siguientes secciones, nuestra base de datos tiene la siguiente estructura: [[Base de datos|Información completa de la BD]]. Podéis ampliar más información en https://dev.mysql.com/doc/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== BBDD Tiempo Real ====&lt;br /&gt;
En la base de datos de tiempo real insertan información todos los procesos del sistema, y se realizan los cambios en configuración utilizando como herramienta el portal de administración y '''''VIVA'''''it Supervisor&lt;br /&gt;
&lt;br /&gt;
De la base de datos de tiempo real leen los procesos que requieren información, y las aplicaciones:&lt;br /&gt;
*'''''VIVA'''''it Supervisor (para reporting de tiempo real)&lt;br /&gt;
*PanelWeb&lt;br /&gt;
*Datos de sesión de '''''VIVA'''''it Desk&lt;br /&gt;
*Monitorización Zabbix&lt;br /&gt;
* Otros&lt;br /&gt;
&lt;br /&gt;
El portal de administración se encarga de escribir las configuraciones añadidas o modificadas en la base de datos&lt;br /&gt;
&lt;br /&gt;
Para cuando la BDTR contienen un número masivo de datos, existe un script que borra el contenido de ciertas tablas de la BD (tablas DAT_) dejando solamente datos de un cierto número de días configurable.&lt;br /&gt;
Este script se llama borraRegistrosNimitz.pl; para más información consultar el apartado de Howto's.&lt;br /&gt;
&lt;br /&gt;
'''Por defecto, a partir de la versión 3.2.0 de la plataforma, los registros se mantedrán 2 meses.'''&lt;br /&gt;
&lt;br /&gt;
==== BBDD Réplica ====&lt;br /&gt;
A efectos de asegurar las prestaciones del sistema, se establece una réplica de la base de datos, sincronizada con la de tiempo real; los procesos y aplicaciones pesados, que realicen consultas a las base de datos que puedan comprometer las prestaciones del sistema atacan a la réplica y nunca a la base de datos de tiempo real&lt;br /&gt;
&lt;br /&gt;
Es posible que en instalaciones pequeñas no exista réplica, en cuyo caso se establece una base de datos unificada sobre la de tiempo real, en la que se añaden índices y procedimientos almacenados que típicamente residen en la de réplica.&lt;br /&gt;
&lt;br /&gt;
Es posible establecer tantas réplicas como sean necesarias si diferentes procesos pesados se penalizan en exceso, si bien una implantación tipo contemplará una sola&lt;br /&gt;
&lt;br /&gt;
Algunos procesos que utilizan la base de datos de réplica son:&lt;br /&gt;
*'''''VIVA'''''it Reporting&lt;br /&gt;
*'''''VIVA'''''it Tracker&lt;br /&gt;
*Histórico en tiempo real de '''''VIVA'''''it Supervisor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANTE: Ningún proceso, programa, aplicación, etc. escribe en la base de datos de réplica; tan solo se extrae información'''&lt;br /&gt;
&lt;br /&gt;
==== BBDD de copia ====&lt;br /&gt;
A efectos de asegurar el funcionamiento y como medida de contingencia ante un problema puntual de comunicación con la BD de tiempo real, en cada nodo disponemos de una BD de copia local. Posiblemente de un tamaño menor que la BD de tiempo real, dependiendo de cuanto tiempo pase hasta la próxima sincronización con la base de tiempo real.Esta base de datos llamada '''nimitzCopia'''.&lt;br /&gt;
  &lt;br /&gt;
Solo entrara en funcionamiento,cuando se produzca el problema mencionado, dejando acceder a los datos y poder dar servicio a la empresa mientras se soluciona el problema.&lt;br /&gt;
&lt;br /&gt;
===== Backup y restore =====&lt;br /&gt;
&lt;br /&gt;
Se utilizan dos script, para realizar la copia de seguridad y restaurar en la base de datos de copia local que son:&lt;br /&gt;
&lt;br /&gt;
* El proceso '''bdCentral.sh''' que es el encargado de realizar la copia de seguridad. Tiene un archivo de configuración bdCentral.conf. En este archivo hay un parámetro (IGNORE_TABLAS) que indica las tablas de las que NO se realizará copia de seguridad. Toda tabla que no se indique formará parte de la copia de seguridad. Vuelca los resultados en /var/log/bdCentral.log&lt;br /&gt;
* El proceso '''bdNodo.sh''' que es el encargado de descargar la copia de seguridad y restaurarla en local. Tiene un archivo de configuración bdNodo.conf. Vuelca los resultados en /var/log/bdNodo.log. El fichero de backup se copia mediante el usuario sincroniza, que deberá poder acceder sin contraseña al servidor donde reside la copia.&lt;br /&gt;
&lt;br /&gt;
En caso de producirse algún error en alguno de los procesos, marcarán dicho error en el log con una línea que comienza con la cadena &amp;quot;*ERROR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Diagnósticos y operaciones sobre bases de datos ====&lt;br /&gt;
&lt;br /&gt;
=====Comprobación que una base de datos está arrancada=====&lt;br /&gt;
Para comprobar si la base de datos está arrancada debemos poner en el terminal : '''ps aux | grep mysql'''&lt;br /&gt;
&lt;br /&gt;
Si la base de datos está arrancada y funcionando correctamente se nos mostrará en el terminal:&lt;br /&gt;
[[Archivo:Base_Datos_bien.png‎ |500px|center]]&lt;br /&gt;
&lt;br /&gt;
Por el contrario, si la base de datos presenta algun problema el mensaje mostrado será:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Base_datos_mal.png |center]]&lt;br /&gt;
&lt;br /&gt;
=====Comprobación que la base de datos de réplica está sincronizada con la base de datos de tiempo real.=====&lt;br /&gt;
&lt;br /&gt;
Si se necesita verificar que la base de réplica está sincronizada con la base de datos en tiempo real basta con acudir al comando : '''show slave status\G'''.&lt;br /&gt;
&lt;br /&gt;
Una vez introducido veremos:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Replica.png |980px|center]]&lt;br /&gt;
&lt;br /&gt;
Comandos importantes, desde dentro consola de Mysql:&lt;br /&gt;
&lt;br /&gt;
 '''show master status''': Realizado desde el master&lt;br /&gt;
 '''show slave status''': Realizado desde el esclavo; el valor &amp;quot;seconds behind master&amp;quot; nos indica&lt;br /&gt;
 cuanto está retrasada la réplica con respecto a la base de datos de tiempo real. Si el valor de este campo es elevado nos indicará &lt;br /&gt;
 que la base de datos real con la réplica no estará sincronizada, por tanto, nos interesa que este valor sea lo más pequeño posible.&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Procesos propios ===&lt;br /&gt;
&lt;br /&gt;
==== bdCentral ====&lt;br /&gt;
&lt;br /&gt;
El proceso ''bdCentral.sh'' es el encargado de realizar la copia de seguridad. Tiene un archivo de configuración ''bdCentral.conf'' el cual puede encontrarse en la ruta '''/etc/MDtel/bdCentral.conf'''. En este archivo hay un parámetro (IGNORE_TABLAS) que indica las tablas de las que NO se realizará copia de seguridad. Toda tabla que no se indique formará parte de la copia de seguridad. Vuelca los resultados en /var/log/bdCentral.log&lt;br /&gt;
&lt;br /&gt;
En caso de producirse algún error, se marcará dicho error en el log con una línea que comienza con la cadena &amp;quot;*ERROR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Para ejecutar bdCentral:&lt;br /&gt;
 bdCentral.sh /etc/MDtel/bdCentral.conf&lt;br /&gt;
&lt;br /&gt;
Estos procesos se ejecutan automáticamente. Para ello está copiado el fichero bdCentral a /etc/cron.d.&lt;br /&gt;
&lt;br /&gt;
Por defecto la programación vienen comentada por lo que será necesario activarlo.&lt;br /&gt;
&lt;br /&gt;
Para que se roten los logs hay que copiar el fichero bdCentral.logrotate a /etc/logrotate.d (como bdCentral)&lt;br /&gt;
La ruta donde se encuentran los logs es la siguiente: '''/var/log/myAcdSuperv.log'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
*A continuación se explica la utilidad de los campos mas relevantes del fichero de configuración bdCentral.conf. &lt;br /&gt;
ARCH_LOG : &lt;br /&gt;
BDHOST: Localización de la base de datos&lt;br /&gt;
BDUSU: Usuario para la base de datos&lt;br /&gt;
BDRUTA: Ruta donde se encuentra la base de datos&lt;br /&gt;
IGNORE_TABLAS:&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== bdNodo ====&lt;br /&gt;
El proceso bdNodo.sh es el encargado de descargar la copia de seguridad y restaurarla en local. Tiene un archivo de configuración bdNodo.conf, este archivo puede encontrarse en la ruta '''/etc/MDtel/bdNodo.conf.''' Vuelca los resultados en /var/log/bdNodo.log. El fichero de backup se copia mediante el usuario sincroniza, que deberá poder acceder sin contraseña al servidor donde reside la copia.&lt;br /&gt;
&lt;br /&gt;
En caso de producirse algún error, se marcará dicho error en el log con una línea que comienza con la cadena &amp;quot;*ERROR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Para ejecutar bdNodo:&lt;br /&gt;
&lt;br /&gt;
 bdNodo.sh /etc/MDtel/bdNodo.conf&lt;br /&gt;
&lt;br /&gt;
Estos procesos se ejecutan automáticamente. Para ello está copiado el fichero bdNodo a /etc/cron.d.&lt;br /&gt;
&lt;br /&gt;
Por defecto la programación vienen comentada por lo que será necesario activarlo.&lt;br /&gt;
&lt;br /&gt;
Para que se roten los logs hay que copiar el fichero bdNodo.logrotate a /etc/logrotate.d (como bdNodo)&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Intz-Nimitz ====&lt;br /&gt;
&lt;br /&gt;
Permite integrar procesos de asterisk (del dialplan) con la base de datos; por ejemplo es el que graba segmentos, inspecciona donde esta registrado un agente…etc. La estabilidad de este proceso es importante para el funcionamiento del sistema, si bien las llamadas entran en caso de no estar disponible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para mas información consultar la página de [[intz-nimitz|intz-nimitz]].&lt;br /&gt;
&lt;br /&gt;
Desde un SSH ejecuta el comando “nc ip_maquina 1115”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1115'''&lt;br /&gt;
 intz-nimitz sis ver='V02.6' inic='20140401 110116' alarmas=21 ultAlar='20140414 171244'&lt;br /&gt;
 intz-nimitz gmp msj=942/1024 buf=1024/1024 tarea=16/102&lt;br /&gt;
 intz-nimitz tmp uptime=1816550 (21d 0h 35m 50s)&lt;br /&gt;
 intz-nimitz vic identif='cms1' entorno='nimitz' conx=0/128 numConx=1018(0)&lt;br /&gt;
 intz-nimitz mys curro=80/0/0/0 soli=1012(0) soliErr=6(0) soliEncol=0(0/0)&lt;br /&gt;
 intz-nimitz cache colas=128/10/0/0 vdn=128/8/0/0 usuExten=10/0/0/0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parámetro!!Descripción&lt;br /&gt;
|-&lt;br /&gt;
|sis/ver||Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|sis/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|Sis/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|Sis/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/msj||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/buf||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/tarea||&lt;br /&gt;
|-&lt;br /&gt;
|Tmp/uptime||Tiempo que lleva el servicio activo&lt;br /&gt;
|-&lt;br /&gt;
|Vic/identif||Etiqueta de identificación del servicio&lt;br /&gt;
|-&lt;br /&gt;
|Vic/entorno||Entorno de base de datos&lt;br /&gt;
|-&lt;br /&gt;
|Vic/conx||Conexiones activas/conexiones máximas&lt;br /&gt;
|-&lt;br /&gt;
|Vic/numConx||Conexiones totales (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|Mys/curro||Número de hilos contra la base de datos&lt;br /&gt;
|-&lt;br /&gt;
|Mys/soli||Conexiones solicitadas (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|Mys/soliErr||Conexiones solicitadas con error (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|Mys/soliEncol||Conexiones encoladas&lt;br /&gt;
|-&lt;br /&gt;
|Cache/cola|| Colas monitorizadas/&lt;br /&gt;
|-&lt;br /&gt;
|Cache/vdn||VDN’s monitorizados&lt;br /&gt;
|-&lt;br /&gt;
|Cache/usuExten||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en  '''/etc/MDtel/intz-nimitz.conf'''&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/intz-nimitz.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
A continuación se muestran los campos mas importantes del fichero de configuración intz-nimitz.conf:&lt;br /&gt;
&lt;br /&gt;
enrutamiento &lt;br /&gt;
{ &lt;br /&gt;
        hay_enrutamiento = 1 &lt;br /&gt;
        max_pre_ruta_regs = 4 &lt;br /&gt;
        max_ruta = 4 &lt;br /&gt;
        max_ruta_desvios = 2 &lt;br /&gt;
# Filtro de informacion de ancho de banda &lt;br /&gt;
# MYSDanchoBandaPasoNinguno      0 &lt;br /&gt;
# MYSDanchoBandaPasoSoloDirectos 1 &lt;br /&gt;
# MYSDanchoBandaPasoSoloEnPaso   2 &lt;br /&gt;
# MYSDanchoBandaPasoTodos        3 &lt;br /&gt;
        filtro_ancho_banda = 1 &lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
mysql &lt;br /&gt;
{ &lt;br /&gt;
        hay_mysql = 1   Indica si hay base de datos mysql&lt;br /&gt;
        host = BDTR &lt;br /&gt;
        usuario = nimitz   Usuario base de datos&lt;br /&gt;
        clave = phikau3iwCe4O0PP5b09ng==   clave base de datos&lt;br /&gt;
        base_datos = nimitz &lt;br /&gt;
        bd_supervivencia = 0 &lt;br /&gt;
        num_curro = 10 &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== motorSal ====&lt;br /&gt;
Parte fundamental del proceso de marcación saliente, gestiona como hay que llamar a los diferentes contactos asignados a las campañas. Transforma los contactos en intentos de marcación.&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH ejecuta el comando “nc ip_maquina 1120”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1120'''&lt;br /&gt;
 motorSal sis ver='V01.4' inic='20140725 140832' alarmas=1 ultAlar='20140725 140832'&lt;br /&gt;
 motorSal gmp msj=253/256 buf=256/256 tarea=99/102&lt;br /&gt;
 motorSal tmp uptime=600165 (6d 22h 42m 45s)&lt;br /&gt;
 motorSal mtr mys=1 ocup=0% planif=28(0) intento=26(0)&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parámetro!!Descripción&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ver||Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/msj||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/buf||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/tarea||&lt;br /&gt;
|-&lt;br /&gt;
|Tmp/uptime||Tiempo que lleva corriendo&lt;br /&gt;
|-&lt;br /&gt;
|mtr/mys||Si está conectado al MySQL&lt;br /&gt;
|-&lt;br /&gt;
|mtr/ocup||Porcentaje de ocupación&lt;br /&gt;
|-&lt;br /&gt;
|mtr/planif||Contactos planificados Totales (Último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|mtr/intento||Intentos totales (Ültimo minuto)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Posee un fichero de configuración llamado ''motorSal.conf'' en la ruta '''/etc/MDtel/motorSal.conf'''.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:Las variables que normalmente son modificadas son las siguientes:&lt;br /&gt;
&lt;br /&gt;
mysql&lt;br /&gt;
{&lt;br /&gt;
hay_mysql = 1&lt;br /&gt;
Indica si hay base de datos mysql&lt;br /&gt;
host = localhost&lt;br /&gt;
usuario = nimitz&lt;br /&gt;
Usuario base de datos&lt;br /&gt;
Clave base de datos&lt;br /&gt;
base_datos = nimitz&lt;br /&gt;
}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Respecto a los logs del motorSal consultar el siguiente apartado: [[Trazas motorSal]]. Los logs pueden verse en la ruta '''/var/log/motorSal.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== MyACDSuperv ====&lt;br /&gt;
Refleja el estado de las colas de asterisk en la base de datos; tiene sentido a efectos de estadísticas e informes, pero no a efectos de funcionamiento de la conmutación de voz.&lt;br /&gt;
&lt;br /&gt;
Es el responsable de mostrar información en las ventanes de tiempo real del supervisor.&lt;br /&gt;
&lt;br /&gt;
Es también el proceso que genera las llamadas en el marcador automático de '''''VIVA'''''it Suite.&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando “nc ip_maquina 1112”.&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1112'''&lt;br /&gt;
 myAcdSuperv SIS ver='04.6' inic='20140416 081613' alarmas=6 ultAlar='20140416 121652'&lt;br /&gt;
 myAcdSuperv AMI cnx=1 ocup=28% exten=2/2/511 asig=0/11/4095&lt;br /&gt;
 myAcdSuperv MYSQL cnx=1 ms=316&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parámetro!!Descripción&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ver||Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|AMI/cnx||Conectado (1) a asterisk&lt;br /&gt;
|-&lt;br /&gt;
|AMI/ocup||Porcentaje de ocupación de MyACDSuperv&lt;br /&gt;
|-&lt;br /&gt;
|AMI/exten||Extensiones/Extensiones/Extensiones monitorizadas|-&lt;br /&gt;
|-&lt;br /&gt;
|AMI/asig||&lt;br /&gt;
|-&lt;br /&gt;
|MYSQL/cnx||Conectado (1) a MySQL&lt;br /&gt;
|-&lt;br /&gt;
|MYSQL/ms||Tiempo de última operación en ejecutarse&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/myAcdSuperv.cnf'''&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/myAcdSuperv.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Proceso escoba ====&lt;br /&gt;
El proceso escoba se encarga de resolver y consolidar todos aquellos segmentos de grabación que han quedado almacenados en los gateways por falta de información o incoherencias. Existen dos tipos de procesos escobas:&lt;br /&gt;
# Proceso escoba perteneciente a nodo con agente de grabación (recordNodo) llamado '''''escobaGW.pl'''''.&lt;br /&gt;
# Proceso escoba perteneciente o no a un servidor de grabación (recordCentral) llamado '''''escobaGrabsBd.pl'''''.&lt;br /&gt;
&lt;br /&gt;
===== escobaGW.pl =====&lt;br /&gt;
Proceso que se ejecuta en los nodos busca en el disco RAM , las grabaciones de segmentos cuya antigüedad sea superior a mas de un día, es decir, si el proceso por ejemplo se ejecuta a la 01:00 a.m. del día 24/03/2016 buscara todas aquellas grabacionesn de segmentos realizadas antes de la 01:00 a.m del día 22/03/2016.&lt;br /&gt;
Una vez realizada la busqueda, obtendra el UCID a traves del nombre del fichero, y comprobara su correspondencia con la tabla DAT_LLAMADAS. Si existe una llamada con ese UCID, cambiara el estado de la llamada para que sea procesada correctamente. En caso contrario, es movida a la carpeta ''/var/lib/recordNodo/grabError''.&lt;br /&gt;
&lt;br /&gt;
===== escobaGrabsBd.pl =====&lt;br /&gt;
Se ejecuta sobre la base de datos de histórico, normalmente se ejecuta en un servidor de grabación (recordCentral). El proceso hace una búsqueda en dos tablas:&lt;br /&gt;
* En DAT_SEGMENTOS obtiene todos aquellos segmentos con grabaciones que dieron error, su estado tendrá valor 120.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
* En DAT_LLAMADAS obtendremos todos los registros correspondiente al segmentos anteriores.&lt;br /&gt;
Después hace una búsqueda en el sistema, usando como ruta el campo D_HORA_INICIO de cada llamada, que indica la ruta entera donde se encuentra el archivo. Una vez encontrado el archivo cambia el estado del segmento que tenia un error a estado de grabación disponible , que tendrá valor 100. Si no encontramos el segmento, no realizara nada.&lt;br /&gt;
&lt;br /&gt;
==== recordCentral ====&lt;br /&gt;
Se considera como un servidor de grabaciones. Todas las grabaciones de llamadas son un activo importante y una empresa con Contact Center pueda recibir millones de llamadas que necesitan estar registradas y almacenadas en discos duros con gran capacidad, las máquinas donde suelen alojarse estos servidores poseen discos duros limitados, lo que hace necesario en algunos casos incorporar ''dispositivos NAS''.&lt;br /&gt;
&lt;br /&gt;
Los ''dispositivos NAS'' son dispositivos de almacenamiento conectados a una red que permite el almacenamiento y la recuperación de datos desde una ubicación centralizada, flexibles y escalables, lo que significa que a medida que necesite almacenamiento adicional, puede añadirlo al que tiene. Esto no significa que sea necesario tener ''dispositivos NAS'' para funcionar, sino que puede tomar datos de diferentes sitios.&lt;br /&gt;
&lt;br /&gt;
En '''recordCentral''' pueden existir tres tipos de dispositivos NAS:&lt;br /&gt;
* Uno dedicado para las llamadas &lt;br /&gt;
* Uno dedicado para los segmentos &lt;br /&gt;
* Uno mixto para todas las llamadas y segmentos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El '''recordCentral''' se encarga de recoger todas las grabaciones de segmentos que tienen de estado proceso(3) en cada nodo gestionado, es decir, coger aquellos segmentos de llamadas marcados como llamadas disponibles, intenta descargar los segmentos de las llamadas y convertirlas al formato adecuado (MP3).&lt;br /&gt;
Como una característica particular cada diez minutos, siempre que no tenga ninguna otra tarea, intenta ver si puede establecer conexión con un nodo en cuarentena, para sacarlos de cuarentena y recoger todas las grabaciones de segmentos disponibles, para intentar convertir y descargar todas las grabaciones.  &lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando '''''nc ip_maquina 1114''''' en la maquina donde creamos que debe estar ejecutando el proceso recordCentral. Ejemplo:&lt;br /&gt;
 '''root@smadavacdrecord1:~# nc localhost 1114'''&lt;br /&gt;
 recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423 160112'&lt;br /&gt;
 recordCentral MYSQL cnx=1&lt;br /&gt;
 recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
 recordCentral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
 recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10'&lt;br /&gt;
La explicación de los campos se muestra en la tabla siguiente:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parámetro !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ver || Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/inic || Fecha de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/alarmas || Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ultAlar || Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
| MYSQL/cnx || Conectado (1) a MySQL&lt;br /&gt;
|-&lt;br /&gt;
| NAS/llamadas || Alojamiento en NAS de llamadas activo (grabación de llamada completa en un único archivo)&lt;br /&gt;
|-&lt;br /&gt;
| NAS/segmentos || Alojamiento en NAS de segmentos activo&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamNum || Llamadas procesadas&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamErr || Llamadas con error&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmNum || Segmentos procesados&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmErr || Segmentos con error&lt;br /&gt;
|-&lt;br /&gt;
| NODO/fase  || Número de proceso de recordCentral&lt;br /&gt;
|-&lt;br /&gt;
| NODO/cuarentena  || Lista de nodos en cuarentena, separada por comas&lt;br /&gt;
|-&lt;br /&gt;
| NODO/descarga || Lista de nodos en descarga, separada por comas&lt;br /&gt;
|-&lt;br /&gt;
| NODO/gestion || Lista de nodos gestionados, separada por comas (cuarentena + descarga = gestión)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/recordCentral.pconf'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:Se explican a continuación las variables más importantes del proceso RecordCentral:&lt;br /&gt;
&lt;br /&gt;
# Conexion de base de datos&lt;br /&gt;
$db='nimitz';&lt;br /&gt;
$dbHost = 'BDTR';&lt;br /&gt;
$dbPort = '3306';&lt;br /&gt;
$dbUsuario = 'nimitz';&lt;br /&gt;
$dbClave = 'ivivanimitz';&lt;br /&gt;
&lt;br /&gt;
# Configuracion de archivos con grabaciones (Orig en nodo)&lt;br /&gt;
$grabHay = 0;&lt;br /&gt;
$grabAudioCalidad = 32;&lt;br /&gt;
$grabAudioFormato = 'ogg';&lt;br /&gt;
$grabAudioExten = 'ogg';&lt;br /&gt;
$grabAudioCifrado = 0;&lt;br /&gt;
$grabRutaUsaTimestamp = 1;&lt;br /&gt;
$grabRutaOrig = '/var/lib/recordNodo/grabaciones';&lt;br /&gt;
$grabRutaTmp = '/var/lib/recordProcesad/grabTmp';&lt;br /&gt;
$grabRutaDest = '/var/lib/recordProcesad/grabRecord';&lt;br /&gt;
$grabRutaError = '/var/lib/recordProcesad/grabError';&lt;br /&gt;
$segmHay = 1;&lt;br /&gt;
$segmUmbralTiempo = 10;&lt;br /&gt;
$segmMargenTiempo = 5;&lt;br /&gt;
$segmAudioCalidad = 32;&lt;br /&gt;
$segmAudioFormato = 'ogg';&lt;br /&gt;
$segmAudioExten = 'ogg';&lt;br /&gt;
$segmAudioCifrado = 0;&lt;br /&gt;
$segmRutaUsaTimestamp = 1;&lt;br /&gt;
$segmRutaTmp = '/var/lib/recordProcesad/segmTmp';&lt;br /&gt;
$segmRutaDest = '/var/lib/recordProcesad/segmRecord';&lt;br /&gt;
$segmRutaError = '/var/lib/recordProcesad/segmError';&lt;br /&gt;
&lt;br /&gt;
# Seleccion de tipos de segmento a grabar separados por comas ('' = todos)&lt;br /&gt;
$tiposSegmentoGrabar = '';&lt;br /&gt;
&lt;br /&gt;
# Indica si se graba ring&lt;br /&gt;
$grabarRing = 0;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/recordCentral.log'''&lt;br /&gt;
&amp;lt;!-- En la versión 3.6.0. del instalador se adjuntan los siguientes archivos en el paquete recordCentral:&lt;br /&gt;
&lt;br /&gt;
borraGrabaciones.pconf: Debe colocarse en /etc/MDtel y contiene los datos de acceso a BBDD así como los días de caducidad de las grabaciones.&lt;br /&gt;
borraGrabaciones.pl: El script. Se ejecuta con el archivo de configuración como parámetro (mueveGrabaciones.pl /etc/MDtel/mueveGrabaciones.pconf)&lt;br /&gt;
borraGrabaciones: Fichero cron. Contiene la programación del script. Debe colocarse en /etc/cron.d&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== recordNodo ====&lt;br /&gt;
Se considera como proceso con función de agente de grabación para un nodo. Solo debe existir uno por maquina o por nodo (configurado como grabador) en el '''portal de administración de ''VIVA''it'''.&lt;br /&gt;
&lt;br /&gt;
Para su funcionamiento utiliza un ''disco RAM''  por que su tiempo de acceso mejora drásticamente, debido a que la memoria RAM es varios órdenes de magnitud más rápida que las unidades de disco reales, haciendo que la velocidad de procesamiento de las grabaciones sea mucho mas rápida.&lt;br /&gt;
&lt;br /&gt;
Este ''disco RAM'' normalmente ocupa la mitad de la memoria RAM de una maquina pero no es obligatorio pues dependerá de la memoria disponible en cada maquina, y además, se configura con un tamaño no superior a 2GB de memoria RAM. Hay que tener especial cuidado en que no se llene en espacio  ni tampoco los i-nodos. Se puede  monitorizar a través de la aplicación '''zabbix'''.&lt;br /&gt;
&lt;br /&gt;
El '''''recordNodo''''' se encarga de recoger todas las grabaciones de segmentos que tienen de estado  ''proceso(2)'', es decir, aquellos segmentos de llamadas que han sido grabadas pero no están siendo procesadas, moviéndolas del ''disco RAM'' a su carpeta correspondiente.&lt;br /&gt;
&lt;br /&gt;
La forma de obtener la carpeta correspondiente es obteniendo el dato del campo D_HORA_INICIO en la tabla DAT_LLAMADAS para cada segmento,tras un tratamiento del campo creara la subruta correspondientes: /año/mes/dia/hora/min. Entonces, la ruta correcta seria /var/lib/recordNodo/grabaciones/año/mes/dia/hora/min, donde año, mes, dia , hora y min son los valores numéricos obtenidos del campo D_HORA_INICIO.&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando '''''nc ip_maquina 1113''''' en la maquina donde creamos que debe estar ejecutando el proceso recordNodo:&lt;br /&gt;
&lt;br /&gt;
 root@smadavgw5:~#nc localhost 1113&lt;br /&gt;
 recordNodo SIS ver='04.00.00' inic='20160326 105137' alarmas=2 ultAlar='20160326 105542'&lt;br /&gt;
 recordNodo MYSQL cnx=1&lt;br /&gt;
 recordNodo REC grabNum=0 grabErr=0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La explicación de los campos se muestra en la tabla siguiente:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parámetro  !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ver || Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/inic  || Fecha de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/amarmas || Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ultAlar || Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
| MYSQL/cnx || Conectado (1) a MySQL&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamNum || Llamadas procesadas&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamErr || Llamadas con error&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmNum || Segmentos procesados&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmErr || Segmentos con error&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/recordNodo.pconf'''&lt;br /&gt;
:Se muestra a continuación el fichero de configuración:&lt;br /&gt;
 #&lt;br /&gt;
 # Configuracion de recordNodo.pl&lt;br /&gt;
 #&lt;br /&gt;
 # 0: Solo alarmas en archivo log - 1: alarmas y trazas&lt;br /&gt;
 $depurar = 1;&lt;br /&gt;
 &lt;br /&gt;
 # 0: Arranca como proceso - 1: arranca como demonio&lt;br /&gt;
 $soyDemonio = 1;&lt;br /&gt;
 &lt;br /&gt;
 # Archivo de log ('': salida estandar)&lt;br /&gt;
 $logArch = '/var/log/record/recordNodo.log';&lt;br /&gt;
 &lt;br /&gt;
 # Archivo para el pid (eliminando el .pid final)&lt;br /&gt;
 $pidArch = '/var/run/record/recordNodo';&lt;br /&gt;
 &lt;br /&gt;
 # 0: El programa se ejecuta indefinidamente - 1: solo una vez (util en depuracion)&lt;br /&gt;
 $unaVezSolo = 0;&lt;br /&gt;
 &lt;br /&gt;
 # Tiempo de espera en segundos cuando no hay conexion o cuando no hay llamadas&lt;br /&gt;
 $toBucle = 5;&lt;br /&gt;
 &lt;br /&gt;
 # Tiempo de guarda en segundos desde D_HORA_FIN hasta que se procesa llamada&lt;br /&gt;
 $toProcesar = 30;&lt;br /&gt;
 &lt;br /&gt;
 # Bytes por segundo en archivos de grabaciones&lt;br /&gt;
 $bytesPorSegundo = 16000;&lt;br /&gt;
 &lt;br /&gt;
 # Bytes a leer en cada accceso a disco&lt;br /&gt;
 $bytesLeerBuf = 1048576;&lt;br /&gt;
 &lt;br /&gt;
 # Conexion de base de datos&lt;br /&gt;
 $db='nimitz';&lt;br /&gt;
 $dbHost = 'BDTR';&lt;br /&gt;
 $dbPort = '3306';&lt;br /&gt;
 $dbUsuario = 'nimitz';&lt;br /&gt;
 $dbClave = 'ivivanimitz';&lt;br /&gt;
 &lt;br /&gt;
 # Configuracion de la supervision&lt;br /&gt;
 $supPort = '1113';&lt;br /&gt;
 &lt;br /&gt;
 # Quien es mi nodo para filtrar grabaciones&lt;br /&gt;
 $miNodo = 2;&lt;br /&gt;
 &lt;br /&gt;
 # Directorio donde se localizan las grabaciones&lt;br /&gt;
 $grabRutaOrig = '/var/spool/asterisk/monitor';&lt;br /&gt;
 $grabRutaDest = '/var/lib/recordNodo/grabaciones';&lt;br /&gt;
 $grabRutaError = '/var/lib/recordNodo/grabError';&lt;br /&gt;
 $grabRutaUsaTimestamp = 1;&lt;br /&gt;
 &lt;br /&gt;
 # Tiempo en segundos limite a truncar en las grabaciones (0=sin limite)&lt;br /&gt;
 $grabLimiteSegs = 0;&lt;br /&gt;
 &lt;br /&gt;
 # Indica si se procesan segmentos de tipo tipoSegmEliminarGrabacion y patron eliminacion&lt;br /&gt;
 $segmEliminarGrabacionTrato = 1;&lt;br /&gt;
 $patronEliminarGrabacion = '/etc/MDtel/null.bin'&lt;br /&gt;
&lt;br /&gt;
A continuación se indican las variables a modificar:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Variable a modificar  !! Comentario&lt;br /&gt;
|-&lt;br /&gt;
|$depurar = 1;||'''0''': Solo alarmas en archivo log&lt;br /&gt;
'''1''': alarmas y trazas&lt;br /&gt;
|-&lt;br /&gt;
|$soyDemonio = 1;||'''0''': Arranca como proceso&lt;br /&gt;
'''1''': arranca como demonio&lt;br /&gt;
|-&lt;br /&gt;
|$logArch = '/var/log/record/recordNodo.log';||Archivo de log ('': salida estándar) $pidArch = '/var/run/record/recordNodo'; 	Archivo para el pid (eliminando el .pid final)&lt;br /&gt;
|-&lt;br /&gt;
|$unaVezSolo = 0;||'''0''': El programa se ejecuta indefinidamente&lt;br /&gt;
'''1''': solo una vez (útil en depuración)&lt;br /&gt;
|-&lt;br /&gt;
|$toBucle = 5;||Tiempo de espera en segundos cuando no hay conexión o cuando no hay llamadas&lt;br /&gt;
|-&lt;br /&gt;
|$toProcesar = 30;||Tiempo de guarda en segundos desde D_HORA_FIN hasta que se procesa llamada&lt;br /&gt;
|-&lt;br /&gt;
|$bytesPorSegundo = 16000;||Bytes por segundo en archivos de grabaciones&lt;br /&gt;
|-&lt;br /&gt;
|$bytesLeerBuf = 1048576;||Bytes a leer en cada acceso a disco&lt;br /&gt;
|-&lt;br /&gt;
|$db='nimitz';||Conexión de base de datos&lt;br /&gt;
|-&lt;br /&gt;
|$dbHost = 'BDTR';||&lt;br /&gt;
|-&lt;br /&gt;
|$dbPort = '3306';||&lt;br /&gt;
|-&lt;br /&gt;
|$dbUsuario = 'nimitz';||&lt;br /&gt;
|-&lt;br /&gt;
|$dbClave = 'ivivanimitz';||&lt;br /&gt;
|-&lt;br /&gt;
|$supPort = '1113';||Configuración de la supervisión&lt;br /&gt;
|-&lt;br /&gt;
|$miNodo = 2;||Quien es mi nodo para filtrar grabaciones&lt;br /&gt;
|-&lt;br /&gt;
|$grabRutaOrig = '/var/spool/asterisk/monitor';	Directorio donde se localizan las grabaciones&lt;br /&gt;
|-&lt;br /&gt;
|$grabRutaDest = '/var/lib/recordNodo/grabaciones';&lt;br /&gt;
|-&lt;br /&gt;
|$grabRutaError = '/var/lib/recordNodo/grabError';&lt;br /&gt;
|-&lt;br /&gt;
|$grabRutaUsaTimestamp = 1;||'''1''': Usa Timestamp&lt;br /&gt;
'''0''': No usa Timestamp&lt;br /&gt;
|-&lt;br /&gt;
|$grabLimiteSegs = 0;||	Tiempo en segundos limite a truncar en las grabaciones (0=sin limite)&lt;br /&gt;
|-&lt;br /&gt;
|$segmEliminarGrabacionTrato = 1;||Indica si se procesan segmentos de tipo tipoSegmEliminarGrabacion y patrón eliminación&lt;br /&gt;
|-&lt;br /&gt;
|$patronEliminarGrabacion = '/etc/MDtel/null.bin'&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:Se muestran a continuación las variables que son modificadas con mayor frecuencia:&lt;br /&gt;
# Conexion de base de datos&lt;br /&gt;
$db='nimitz';&lt;br /&gt;
$dbHost = 'BDTR';&lt;br /&gt;
$dbPort = '3306';&lt;br /&gt;
$dbUsuario = 'nimitz';&lt;br /&gt;
$dbClave = 'ivivanimitz';&lt;br /&gt;
&lt;br /&gt;
# Quien es mi nodo para filtrar grabaciones&lt;br /&gt;
$miNodo = 1;&lt;br /&gt;
&lt;br /&gt;
# Indica si se procesan segmentos de tipo tipoSegmEliminarGrabacion y patron eliminación&lt;br /&gt;
$segmEliminarGrabacionTrato = 1;&lt;br /&gt;
$patronEliminarGrabacion = '/etc/MDtel/null.bin';&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/recordNodo.log'''&lt;br /&gt;
&lt;br /&gt;
==== Vivait-CTI ====&lt;br /&gt;
Permite la comunicación entre la aplicación '''''VIVA'''''it Desk de agente y el asterisk, sincronizando; convierte el protocolo “asterisk manager” a CSTA ('''''VIVA'''''it Desk “habla” CSTA).&lt;br /&gt;
&lt;br /&gt;
Es un proceso importante para que el uso de '''''VIVA'''''it Desk, y que los agentes puedan realizar su operativa normal con la entrada y salida de llamadas… si bien el cursado telefónico de llamadas es factible, no disponer de las facilidades de '''''VIVA'''''it Desk y formularios hace el sistema difícilmente manejable&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando “nc ip_maquina 1111”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1111'''&lt;br /&gt;
 vivait-cti sis ver='V01.5' inic='20140414 104312' alarmas=13 ultAlar='20140415 173152'&lt;br /&gt;
 vivait-cti gmp msj=1018/1024 buf=1023/1024 tarea=97/102&lt;br /&gt;
 vivait-cti tmp uptime=694748 (8d 0h 59m 8s)&lt;br /&gt;
 vivait-cti cti numConx=(0/511) numPend=(0/127) numMakeCallPend=0 numCall=(0/2047)&lt;br /&gt;
 numChan=(0/4095) numAuxStr=(0/511) numMoniColas=(0/511) numMoniDevice=0&lt;br /&gt;
 numMoniCall=0 numMoniCallAuto=0 numMoniCallByDevice=0 numMoni=(0/511)&lt;br /&gt;
 auditCallErr=0 auditAuxStrErr=0 auditMsjReqErr=0 araChanID=0 araUniqueID=0 araMoni=0&lt;br /&gt;
 vivait-cti ami esta=conx resp=652(0) evs=1397(0) descar=556(0) err=16 errConx=16&lt;br /&gt;
 numAct(0/0/127) auditErrAct=0&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!ver!!Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|sis/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|Sis/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|Sis/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/msj||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/buf||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/tarea||&lt;br /&gt;
|-&lt;br /&gt;
|Tmp/uptime||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numConx||Número de conexiones actuales / Número de conexiones máximo&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numPend||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMakeCallPend||Llamadas pendientes de realizar&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numcall||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numChan||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numAuxStr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniColas||Número de colas monitorizadas&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniDevice||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniCall||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniCallAuto||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniCallByDevice||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoni||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/auditCallErr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/auditAuxStrErr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ auditMsjReqErr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ araChanID||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ araUniqueID||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ araMoni||&lt;br /&gt;
|-&lt;br /&gt;
|Ami/esta||Estado de conexión contra manarger de asterisk&lt;br /&gt;
|-&lt;br /&gt;
|Ami/resp||&lt;br /&gt;
|-&lt;br /&gt;
|Ami/evs||Número de eventos (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
||Ami/descar&lt;br /&gt;
|-&lt;br /&gt;
|Ami/err||Errores&lt;br /&gt;
|-&lt;br /&gt;
|Ami/errConx||Errores de conexión&lt;br /&gt;
|-&lt;br /&gt;
|Ami/numAct||&lt;br /&gt;
|-&lt;br /&gt;
|Ami/auditErrAct||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/vivait-cti.conf'''&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/vivait-cti.conf'''&lt;br /&gt;
&lt;br /&gt;
==== Phoneprov-TFTP ====&lt;br /&gt;
&lt;br /&gt;
==== Introducción al aprovisionamiento ====&lt;br /&gt;
&lt;br /&gt;
En cada Centralita Telefónica existente, se puede configurar sus teléfonos IP y asignarles extensiones a cada teléfono. Para hacer un ''aprovisionamiento'' de los teléfonos es necesario que el técnico configure uno a uno manualmente utilizando su interfaz web, esto no es práctico, ya que genera muchos errores y el tiempo de implementación se incrementa drásticamente. Además, es casi imposible la administración cotidiana de los teléfonos IP. Desde '''MD'''tel se utiliza una herramienta que permite que los teléfonos IP soportados y homologados por '''MD'''tel ([[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_3.0#Terminales_telef.C3.B3nicos ver Terminales telefónicos]]) se puedan aprovisionar automáticamente, brindando una fácil implementación y administración cotidiana. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== ¿Qué es aprovisionar? =====&lt;br /&gt;
&lt;br /&gt;
Aprovisionar un teléfono es el proceso de configuración automático de teléfonos IP para su uso con una Centralita Telefónica de forma remota. Una vez que aprovisione un teléfono, el teléfono automáticamente se configurará correctamente y podrá administrar los teléfonos de forma centralizada y remota,  sin tener que iniciar sesión en la interfaz web de cada uno de los teléfonos. &lt;br /&gt;
&lt;br /&gt;
El aprovisionamiento de teléfono facilita enormemente la administración cotidiana de los teléfonos IP. Esto hace que sea fácil de cambiar las contraseñas de extensión,realizar desvíos de llamadas, nombre a mostrar, mensajería y demás configuraciones, ya que puede hacerlo de forma centralizada para todos los teléfonos desde el portal de administración y luego transferir los cambios al teléfono. &lt;br /&gt;
&lt;br /&gt;
===== TFTP =====&lt;br /&gt;
&lt;br /&gt;
'''TFTP''' son las siglas de '''T'''rivial '''F'''ile '''T'''ransfer '''P'''rotocol ''(Protocolo de transferencia de archivos trivial)''. &lt;br /&gt;
&lt;br /&gt;
Es un protocolo de transferencia muy simple semejante a una versión básica de FTP. TFTP a menudo se utiliza para transferir pequeños archivos entre terminales en una red. &lt;br /&gt;
&lt;br /&gt;
Algunos detalles del TFTP: &lt;br /&gt;
&lt;br /&gt;
* Utiliza UDP (puerto 69) como protocolo de transporte (a diferencia de FTP que utiliza los &lt;br /&gt;
puertos 20 y 21 TCP). &lt;br /&gt;
* No puede listar el contenido de los directorios. &lt;br /&gt;
* No existen mecanismos de autenticación o cifrado. &lt;br /&gt;
* Se utiliza para leer o escribir archivos de un servidor remoto. &lt;br /&gt;
* Soporta tres modos diferentes de transferencia, &amp;quot;netascii&amp;quot;, &amp;quot;octet&amp;quot; y &amp;quot;mail”.&lt;br /&gt;
&lt;br /&gt;
===== Funcionamiento del servidor phoneprove-TFTP =====&lt;br /&gt;
&lt;br /&gt;
A continuación se muestra un esquema que facilita el entendimiento del funcionamiento del servidor phoneprove-TFTP:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Funcionamiento_Servidor.png‎ |center]]&lt;br /&gt;
&lt;br /&gt;
El servidor Phoneprove-TFTP se ''encarga del aprovisionamiento masivo de terminales'', es de gran utilidad porque cualquier cambio en los teléfonos pueden ser realizados a nivel DHCP y todos los teléfonos tomarán la nueva configuración luego de reiniciarlos. &lt;br /&gt;
&lt;br /&gt;
Desde phoneprove-TFTP se generara los archivos necesarios para cada teléfono y que sirven para ser aprovisionados automáticamente. &lt;br /&gt;
El servidor phoneprove-TFTP  tiene alojados los ficheros de configuración están ordenados según las direcciones MAC de los teléfonos. El teléfono “preguntará” al servidor cual es su fichero de configuración utilizando su dirección MAC. Este a través de su MAC , consulta en la base de datos para ofrecer al terminal los datos de configuración según su plantilla, cual sera su extensión , cual sera el usuario propietario, entre otras cosas.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
  '''Nota:''' En instalaciones grandes habrá más de uno, quizás uno por sede grande; depende de la infraestructura de DHCP.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Parámetros necesarios de Aprovisionamiento de Teléfonos =====&lt;br /&gt;
&lt;br /&gt;
 '''Notas:''' el aprovisionamiento desarrollador por '''MD'''tel, no emplea un fichero por cada &lt;br /&gt;
 teléfono, sino que emplea una plantilla por cada modelo de teléfono.&lt;br /&gt;
 Debe haber una '''configuración previa del servidor DHCP''' es necesario coordinar con el cliente la asignación de direcciones para &lt;br /&gt;
 los diferentes elementos de la plataforma '''''VIVA'''''it, fundamentalmente para terminales telefónicos; en este caso además será necesario &lt;br /&gt;
 activar la opción 66 que permitirá definir el servidor TFTP del que los terminales cogerán sus ficheros de aprovisionamiento.&lt;br /&gt;
 El aprovisionamiento desde el portal de administración solo es posible para aquellos teléfonos IP homologados y probados desde '''MD'''tel   &lt;br /&gt;
 [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_3.0#Terminales_telef.C3.B3nicos ver Terminales  telefónicos]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como existen parámetros comunes de todos los teléfonos de la misma marca de fabricante, muchos de los parámetros necesarios para el aprovisionamiento  como comentamos se han generado desde MDtel en forma de plantillas, que estarán disponibles en el portal de administración VIVAit [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Plantillas | ver plantilla del portal de administración VIVAit]]. &lt;br /&gt;
&lt;br /&gt;
La configuración de un teléfono SIP es muy sencilla y en no es necesario tener conocimientos avanzados de informática o de telefonía. Cada una de estas plantillas que sirven para aprovisionar un teléfono IP homologado, algunos de los parámetros predeterminados se explicarán a continuación .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== Parámetros de Aprovisionamiento globales ======&lt;br /&gt;
&lt;br /&gt;
* Configuración de la red y MAC. &lt;br /&gt;
* Zona horaria. &lt;br /&gt;
&lt;br /&gt;
====== Parámetros de Aprovisionamiento Personales ======&lt;br /&gt;
&lt;br /&gt;
Además de los parámetros de aprovisionamiento globales, el teléfono también obtendrá información de configuración individual, tales como: &lt;br /&gt;
&lt;br /&gt;
*Número de Extensión.&lt;br /&gt;
*Nombre y Contraseña de usuario SIP. &lt;br /&gt;
*Configuración de Teclas BLF.&lt;br /&gt;
*Contraseña de la Interfaz Web del Teléfono IP.&lt;br /&gt;
*Idioma de la Pantalla.&lt;br /&gt;
*Orden de Preferencia de los Codecs.&lt;br /&gt;
&lt;br /&gt;
===== Aprovisionamiento de teléfonos nivel usuario =====&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
  '''Notas:''' La dirección MAC debe estar especificada en letras mayúsculas.&lt;br /&gt;
  La dirección MAC del teléfono se puede encontrar en la etiqueta adhesiva en la parte inferior del teléfono, o de lo contrario se deberá acceder desde&lt;br /&gt;
  el menú del propio terminal.   &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Los pasos a seguir son los siguientes: &lt;br /&gt;
&lt;br /&gt;
'''1)''' Dar de alta el teléfono en el portal de administración, se debe seleccionar el modelo del teléfono, e indicar la dirección MAC del teléfono a aprovisionar, todo ello desde el portal de administración VIVAit. &lt;br /&gt;
Para mas información ver [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Aprovisionamiento del portal de administracion| aprovisionamiento del portal de administración VIVAit]]. &lt;br /&gt;
&lt;br /&gt;
'''2)''' En el mismo portal de administración se deberá crear una extensión , asignar a la extensión el teléfono que se quiera aprovisionar, elegir la plantilla adecuada del teléfono y el usuario propietario (solo si sera un puesto fijo) desde [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Extensiones | extensiones del portal de administración]]. &lt;br /&gt;
&lt;br /&gt;
'''3)''' Conectar el teléfono a la red LAN informática (conectarlo al router o switch) para que tenga acceso a Internet:&lt;br /&gt;
&lt;br /&gt;
:*El teléfono enviará un mensaje de multidifusión a través de la LAN. &lt;br /&gt;
:*Este será captado por la Central Telefónica siempre que esté en la misma LAN. &lt;br /&gt;
:*Al teléfono se le enviará una URL de aprovisionamiento. &lt;br /&gt;
&lt;br /&gt;
'''4)''' Como la mayoría de teléfonos IP del mercado al arrancar una vez sabiendo la URL de aprovisionamiento piden una serie de archivos de configuración para aprovisionarse vía TFTP. EL servidor phoneprove-TFTP, detectara la petición y a través de la MAC y datos del usuario, consultará en la base de datos los datos necesarios para aprovisionar al teléfono y si todo funciona correctamente mandara al teléfono IP los datos de configuración necesarios para funcionar. &lt;br /&gt;
&lt;br /&gt;
'''5)''' Asegúrese de que el teléfono encuentren el servidor TFTP, para ello esperar un tiempo adecuado para que termine el aprovisionamiento. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''6)''' Finalmente aparecerá  como registrado en la centralita, obtendrá una dirección IP y podra funcionar según la configuración establecida.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
  '''Nota''': Si no se reaprovisiona tras un periodo largo de tiempo, desenchufe el cable de alimentación eléctrica &amp;lt;br /&amp;gt; o el cable Ethernet (si se utiliza la alimentación en línea PoE) para reiniciar los teléfonos. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Aprovisionamiento de teléfonos nivel técnico =====&lt;br /&gt;
&lt;br /&gt;
====== Plantilla de configuración ======&lt;br /&gt;
&lt;br /&gt;
La plantilla de configuración empleadas en el apartado  [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Plantillas | plantilla del portal de administración VIVAit]] de cada modelo está formada por una serie de variables. &lt;br /&gt;
&lt;br /&gt;
Los valores se obtienen de la tabla de la base de datos CEN_TELEFONOS, CEN_USUARIOS, ACD_EXTENSIONES, ACD_NODOS, COM_NODOS... correspondientes a la extensión del teléfono, usuario, nodo, etc. &lt;br /&gt;
&lt;br /&gt;
 variable ${NODO1_C_NOMBRE}='corp-ast13'&lt;br /&gt;
 variable ${EXTEN_C_CLAVE_REGISTRO}='Tel21002'&lt;br /&gt;
 variable ${USU_C_CODIGO_POSTAL}=''28034'&lt;br /&gt;
 variable ${SEDE_C_CODIGO_POSTAL}='28034' &lt;br /&gt;
 variable ${USU_C_NOMBRE}='Juan Antonio'&lt;br /&gt;
 variable ${USU_C_APELLIDO2}='Ramirez'&lt;br /&gt;
 variable ${SEDE_C_NOMBRE}='RED_LAB'&lt;br /&gt;
 variable ${NODO2_C_NOMBRE}= NULL&lt;br /&gt;
 variable ${EXTEN_C_NOMBRE}='' 21002&lt;br /&gt;
 variable ${USU_C_LOCALIDAD}='' &lt;br /&gt;
 variable ${USU_C_NOMBRE_MOSTRAR}='Juan' &lt;br /&gt;
 variable ${NODO1_C_IP}='175.25.129.70' &lt;br /&gt;
 variable ${MODEL_C_PREFIJO_PLANTILLA_MAC}='T28P' &lt;br /&gt;
 variable ${SEDE_C_LOCALIDAD}='Madrid' &lt;br /&gt;
 variable ${USU_C_APELLIDO1}='Casas' &lt;br /&gt;
 variable ${NODO2_C_IP}= NULL&lt;br /&gt;
 variable ${TF_ID_EXTENSION}='5' &lt;br /&gt;
 cargando campos idExten=5&lt;br /&gt;
&lt;br /&gt;
====== Ficheros y paquetes necesarios ======&lt;br /&gt;
&lt;br /&gt;
'''Paquetes previos:''' libnet-tftpd-perl, tftp-hpa, libnet-address-ip-local-perl &lt;br /&gt;
'''Usuario de funcionamiento:''' root &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
   '''Nota:'''  los archivos y directorios que generemos podrian necesitar que se permitiera el acceso al archivo de lectura &amp;lt;br/&amp;gt; y escritura en el servidor TFTP.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Archivos necesarios:''' &lt;br /&gt;
&lt;br /&gt;
 /usr/local/sbin/phoneprov-tftp.pl &lt;br /&gt;
 /usr/local/sbin/phoneprov-tftp.pm&lt;br /&gt;
 /etc/MDtel/phoneprov-tftp.pconf &lt;br /&gt;
 /etc/init/phoneprov-tftp.conf &lt;br /&gt;
 /etc/logrotate.d/phoneprov-tftp &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Directorios a crear:''' &lt;br /&gt;
&lt;br /&gt;
 /var/lib/phoneprov-tftp/plt &lt;br /&gt;
 /var/lib/phoneprov-tftp/bin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Watchdog ====&lt;br /&gt;
&lt;br /&gt;
Se trata de una aplicación del asterisk que monitoriza el SIP y en caso de fallo, pasado un cierto tiempo, reinicia el asterisk y genera un core.&lt;br /&gt;
Si escribimos en CLI de asterisk perro tenemos los siguientes comandos:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Activar||Activar el Watchdog&lt;br /&gt;
|-&lt;br /&gt;
|Desactivar||Desactiva el Watchdog&lt;br /&gt;
|-&lt;br /&gt;
|Parada IWantToStop||Reinicia el asterisk y genera un core para pruebas&lt;br /&gt;
|-&lt;br /&gt;
|Reload||Realiza una recarga del Watchdog y aplica cambios en su configuración&lt;br /&gt;
|-&lt;br /&gt;
|Show||Ver el estado del Watchdog&lt;br /&gt;
&lt;br /&gt;
perro avisado=0 activo=1 segsDormir=1 segsInic=60 segsGuarda=30 maxErr=3&lt;br /&gt;
perro        nombre=sip_monitor_udp lwp=[15437] segsInic=60 segsGuarda=30 hace=11 err=0/5&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El dato &amp;quot;hace&amp;quot; informa de cuanto tiempo ha transcurrido desde el último tick. Facilita la calibración del parámetro de configuración &amp;quot;segs_guarda&amp;quot;, normalmente es 30&lt;br /&gt;
&lt;br /&gt;
Tiene un fichero de configuración ubicado en /etc/asterisk/MDcrash.conf&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Sección [perro]&lt;br /&gt;
||activo=yes (Si esta o no activo)&lt;br /&gt;
segs_dormir=1 (Un tick por segundo)&lt;br /&gt;
&lt;br /&gt;
segs_inic=60&lt;br /&gt;
&lt;br /&gt;
segs_guarda=30 &lt;br /&gt;
&lt;br /&gt;
max_errores=3  &lt;br /&gt;
|-&lt;br /&gt;
|Sección [sip_monitor_udp]&lt;br /&gt;
||segs_inic=60&lt;br /&gt;
&lt;br /&gt;
segs_guarda=30 (Cada 30 segundos si no reciba trafico SIP genera core)&lt;br /&gt;
&lt;br /&gt;
max_errores=5 (Número máximo de errores)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Proceso de Backup ====&lt;br /&gt;
Las plataformas '''''VIVA'''''it Call y '''''VIVA'''''it Suite incluyen un script para realizar un proceso de backup.&lt;br /&gt;
&lt;br /&gt;
Se utilizará el script '''backup.sh''', que se encuentra en el directorio '''etc/MDTel'''.&lt;br /&gt;
&lt;br /&gt;
Se ejecuta automaticamente mediante el uso de un cron&lt;br /&gt;
&lt;br /&gt;
'''texto del cron:'''&lt;br /&gt;
&lt;br /&gt;
 SHELL=/bin/sh&lt;br /&gt;
 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin&lt;br /&gt;
 # m h dom mon dow user command&lt;br /&gt;
 0 2 * * * root  /etc/MDtel/backup.sh /etc/MDtel/backup.cfg&lt;br /&gt;
&lt;br /&gt;
Para activar el script hay que descomentar la línea&lt;br /&gt;
 # m h dom mon dow user command&lt;br /&gt;
&lt;br /&gt;
Los directorios de los que se hace copia son:&lt;br /&gt;
* DIR=var/lib/asterisk/sounds/Particular&lt;br /&gt;
* DIR=var/lib/asterisk/moh&lt;br /&gt;
* DIR=etc&lt;br /&gt;
* DIR=etc/asterisk&lt;br /&gt;
* DIR=etc/cron.d&lt;br /&gt;
* DIR=etc/dahdi&lt;br /&gt;
* DIR=etc/exim4&lt;br /&gt;
* DIR=etc/ha.d&lt;br /&gt;
* DIR=etc/logrotate.d&lt;br /&gt;
* DIR=etc/MDtel&lt;br /&gt;
* DIR=etc/mysql&lt;br /&gt;
* DIR=etc/network&lt;br /&gt;
* DIR=etc/zabbix&lt;br /&gt;
* DIR=usr/local/sbin&lt;br /&gt;
&lt;br /&gt;
Por defecto se realiza un backup cada dos horas en la carpeta '''/var/spool/MDtel/backup'''.&lt;br /&gt;
&lt;br /&gt;
Para cambiar la ruta de destino del backup habrá que modificar el fichero backup.sh, en concreto modificar la variable MDTEL.&lt;br /&gt;
&lt;br /&gt;
El fichero ''' backup.cfg''' que se genera incluye copia de la siguiente información:&lt;br /&gt;
* Ficheros de configuración de la aplicación.&lt;br /&gt;
* Base de Datos.&lt;br /&gt;
* Dialplan.&lt;br /&gt;
&lt;br /&gt;
Se guardarán 10 copias del fichero ''' backup.cfg '''&lt;br /&gt;
&lt;br /&gt;
Los campos disponibles en el fichero son los siguientes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Campo !!Descripción !!Posibles valores (si aplica)&lt;br /&gt;
|-&lt;br /&gt;
|IP_BD ||IP o HOST máquina base de datos de tiempo real||&lt;br /&gt;
|-&lt;br /&gt;
|HAY_SMB ||Si hay o no servidor SAMBA||1 si existe servidor SAMBA o 0 si no existe&lt;br /&gt;
|-&lt;br /&gt;
|HOST_SMB||IP o HOST servidor SAMBA||&lt;br /&gt;
|-&lt;br /&gt;
|USU_SMB||Usuario acceso servidor SAMBA||&lt;br /&gt;
|-&lt;br /&gt;
|CLAVE_SMB||Clave usuario acceso servidor SAMBA||&lt;br /&gt;
|-&lt;br /&gt;
|RUTA_SMB||Ruta donde se guardará el backup en el servidor SAMBA||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Para recuperar una plataforma utilizando el backup, habrá que instalar una máquina nueva y cargar los ficheros de configuración, Base de Datos y Dialplan guardados en el proceso de backup.&lt;br /&gt;
&lt;br /&gt;
===== Información adicional: como funciona un cron =====&lt;br /&gt;
&lt;br /&gt;
La información sobre el fucnionamiento de un cron puede encontrarse en: [http://lasegundapuerta.com/index.php/informatica/linux-y-software-libre/1709-comando-cron-en-linux-ubuntu Información sobre el comando cron]&lt;br /&gt;
&lt;br /&gt;
==== CHAT ====&lt;br /&gt;
La información para configurar el CHAT y su funcionamiento puede encontrarse en:&lt;br /&gt;
&lt;br /&gt;
[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#CHAT CHAT]&lt;br /&gt;
&lt;br /&gt;
=== Requerimientos de conectividad ===&lt;br /&gt;
&lt;br /&gt;
El esquema siguiente muestra como ejemplo todos los flujos de información existentes en un entorno típico de &amp;lt;big&amp;gt;'''telefonía corporativa (sin presencia)'''&amp;lt;/big&amp;gt; ('''''VIVA'''''it Call)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Flujos corporativa.png|cebter]]&lt;br /&gt;
&lt;br /&gt;
En el entorno de &amp;lt;big&amp;gt;'''Contact Center'''&amp;lt;/big&amp;gt;, encontramos los siguientes flujos &amp;lt;big&amp;gt;'''entre servicios'''&amp;lt;/big&amp;gt; (comunicaciones entre servidores, ('''''VIVA'''''it Suite)) &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Flujos Contact servicios.png|650px|center]]&lt;br /&gt;
&lt;br /&gt;
y &amp;lt;big&amp;gt;'''entre usuarios y servicios'''&amp;lt;/big&amp;gt; los reflejados a continuación:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Flujos Contact puestos.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Lado A!!Lado B!!Puertos!!Sentido!!Observ.&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor||TCP 5060||A -&amp;gt; B||Señalización SIP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor||UDP 5060||A -&amp;gt; B||Señalización SIP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor||10000 a 20000||A -&amp;gt; B&lt;br /&gt;
B -&amp;gt; A&lt;br /&gt;
||RTP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor TFTP||UDP 69||A -&amp;gt; B&lt;br /&gt;
B -&amp;gt; A&lt;br /&gt;
||Para actualización de terminales por TFTP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor NTP||UDP 123||A -&amp;gt; B||&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Desk||Servidor||TCP 4500||A -&amp;gt; B||Comunicación CTI&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Desk||Servidor||TCP 3306||A -&amp;gt; B||Acceso a Mysql Base de datos&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Desk||Servidor Syslog||UDP 514||A -&amp;gt; B||Para envio de logs de agente&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Supervisor||Servidor||TCP 3306||A -&amp;gt; B||Acceso a Mysql Base de datos&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker||Servidor||TCP 3306||A -&amp;gt; B||Acceso a Mysql Base de datos&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker||Servidor||TCP 8180||A -&amp;gt; B||&lt;br /&gt;
|-&lt;br /&gt;
|Actualizador||Servidor||TCP 80||A -&amp;gt; B||Necesario para actualizaciones de versiones de aplicaciones de agente y supervisores&lt;br /&gt;
|-&lt;br /&gt;
|Portal de administración||Servidor||TCP 8180||A -&amp;gt; B||Acceso al portal de administración '''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker Web||Servidor||TCP 8180||A -&amp;gt; B||&lt;br /&gt;
|-&lt;br /&gt;
|Monitor||Servidor||TCP 8180||A -&amp;gt; B||Wallboard&lt;br /&gt;
|-&lt;br /&gt;
|Monitorización||Servidor||TCP 80||A -&amp;gt; B||Acceso a portal monitorización (Zabbix)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Gateways ===&lt;br /&gt;
El concepto de gateway como tal no existe en la plataforma '''''VIVA'''''it; existen nodos de ACD y nodos de corporativa.&lt;br /&gt;
&lt;br /&gt;
A efectos de operación un nodo de corporativa es el que en cualquier caso asumirá las funcionalidades de gateway, y recibirá las conexiones (analógicas, digitales o IP) a sistemas externos o a la RTC&lt;br /&gt;
&lt;br /&gt;
El concepto gateway queda pues suscrito a entornos meramente comerciales&lt;br /&gt;
&lt;br /&gt;
Incluimos no obstante en este apartado los diagnósticos y operaciones básicos de conexiones a sistemas externos o RTC&lt;br /&gt;
&lt;br /&gt;
Para verificar los enlaces establecidos ejecutamos el siguiente comando en el terminal: '''sip show peers''' &lt;br /&gt;
&lt;br /&gt;
Al ejecutar este comando obtenemos la salida:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Enlace_Exterior.png |center]]&lt;br /&gt;
&lt;br /&gt;
Las columnas ''Host'' y ''Port'' nos muestran las conexiones establecidas y nos informa de un posible problema de conexión. &lt;br /&gt;
&lt;br /&gt;
Sabremos que ''no existe conexión'' cuando la columna Host tiene el valor '''Unspecified''' y en la columna Port aparece un '''0''' , a continuación se muestra un ejemplo:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ejemplo_no_conexion.png |center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#00FF00&amp;quot;&amp;gt;FALTA AQUI DIAGNOSTICOS Y OPERACIONES DE ENLACES EXTERNOS&amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Servidor de grabación === &lt;br /&gt;
==== Almacenamiento en la nube ====&lt;br /&gt;
Almacenamiento en la nube.&lt;br /&gt;
Existe la posibilidad de que tras un determinado periodo de tiempo las grabaciones sean movidas a un almacenamiento externo. De esta operativa se encarga el proceso /usr/local/sbin/mueveGrabaciones.pl que recibe como parámetro la ruta al archivo de configuración. Dicho archivo tiene los siguientes elementos:&lt;br /&gt;
&lt;br /&gt;
*$db: Nombre de la base de datos.&lt;br /&gt;
*$dbHost: servidor de MySQL&lt;br /&gt;
*$dbPort: Puerto del MySQL.&lt;br /&gt;
*$dbUsuario: Usuario de conexión a MySQL.&lt;br /&gt;
*$dbClave: Clave del usuario anterior.&lt;br /&gt;
*$dirBase: Directorio donde residen las grabaciones&lt;br /&gt;
*$diasCaducidad: Dias de antigüedad para mover las grabaciones&lt;br /&gt;
*$sftpHost: Servidor SFTP de destino&lt;br /&gt;
*$sftpPort: Puerto SFTP.&lt;br /&gt;
*$sftpUsuario: Usuario SFTP.&lt;br /&gt;
*$sftpClave: Clave del usuario SFTP.&lt;br /&gt;
*$simula: Si este campo vale 1, las grabaciones se copian, pero no se borran del directorio original, ni se actualiza su ubicación en la base de datos.&lt;br /&gt;
&lt;br /&gt;
La grabación indica donde se encuentra mediante el campo E_UBICACION_GRABACION, que puede tener los siguientes valores:&lt;br /&gt;
*Sin definir (0)&lt;br /&gt;
*En línea (10): Las grabaciones se encuentran en el servidor de grabaciones.&lt;br /&gt;
*Fuera de línea (20): las grabaciones se encuentran en una ubicación externa.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Reporting ===&lt;br /&gt;
La aplicación de reporting en general no tiene procesos habituales de operación y mantenimiento.&lt;br /&gt;
Los informes son obtenidos desde la interfaz gráfica o mediante un procedimiento de scripting, descritos en “Formato de fichero de intercambio para '''''VIVA'''''it Reporting”.&lt;br /&gt;
&lt;br /&gt;
==== Formato de fichero de intercambio para '''''VIVA'''''it Reporting ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Nombre !! Descripción !! Ejemplo&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;| Selección de registros&lt;br /&gt;
|-&lt;br /&gt;
| SQL_selec || Expresión SQL que se añadirá al where a la SQL principal. || C_ORIGEN like '6%' and C_COD_CLIENTE= '023'&lt;br /&gt;
|-&lt;br /&gt;
| SQL_select_leido || Filtro de selección legible&lt;br /&gt;
 || Skill igual a 60310&lt;br /&gt;
|-&lt;br /&gt;
| SQL_orden || Lista de campos por los que se ordenará, después de los que estén ya definidos en la plantilla. || C_ORIGEN, C_COD_CLIENTE&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Salida&lt;br /&gt;
|-&lt;br /&gt;
| FIC_extension || Extensión de fichero de salida: PDF, XLSX, CSV || PDF&lt;br /&gt;
|-&lt;br /&gt;
| FIC_tipo_entrega || 'P': Pantalla, 'D': Directorio, 'C': Correo || D&lt;br /&gt;
|-&lt;br /&gt;
| FIC_destino || Si 'C', dirección de correo, si 'D', ruta del directorio || D:\informes\&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Plantilla&lt;br /&gt;
|-&lt;br /&gt;
| INF_modelo || Ruta del fichero de plantilla || C:\Modelos\llamadas.rep&lt;br /&gt;
|-&lt;br /&gt;
| INF_descripción || Descripción del informe || Informe detallado de llamadas&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Base de datos&lt;br /&gt;
|-&lt;br /&gt;
| BD_ip || IP o nombre de máquina || &lt;br /&gt;
|-&lt;br /&gt;
| BD_puerto || Puerto de MySQL || &lt;br /&gt;
|-&lt;br /&gt;
| BD_base_datos || Nombre de base de datos || &lt;br /&gt;
|-&lt;br /&gt;
| BD_usuario || Usuario de base de datos || &lt;br /&gt;
|-&lt;br /&gt;
| BD_clave || Clave de acceso cifrada || &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Parámetros&lt;br /&gt;
|-&lt;br /&gt;
| PAR_desde_vis || Fecha inicial de selección en formato legible (o '-' si no hay) || 01/01/2016&lt;br /&gt;
|-&lt;br /&gt;
| PAR_hasta_vis || Fecha final de selección en formato legible (o '-' si no hay) || 31/01/2016&lt;br /&gt;
|-&lt;br /&gt;
| PAR_01 || Parámetro opcional || &lt;br /&gt;
|-&lt;br /&gt;
| .. || .. || &lt;br /&gt;
|-&lt;br /&gt;
| PAR_20 || Parámetro opcional || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El fichero tendrá un nombre único para permitir la generación simultánea de informes.&lt;br /&gt;
El fichero es borrado por la aplicación de forma automática.&lt;br /&gt;
Se pasa a la aplicación de generación de informes como parámetro. Por ejemplo:&lt;br /&gt;
 “C:\Archivos de Programa\MDtel\Nimitz\LanzaInformes\LanzaInformes.exe”&lt;br /&gt;
 “C:\Archivos de Programa\MDtel\Nimitz\LanzaInformes\NIM00001.tmp”&lt;br /&gt;
&lt;br /&gt;
Ejemplo de fichero:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| SQL_selec=(DAT_ACUMULADOS_COLAS.ID_COLA in (11))&lt;br /&gt;
&lt;br /&gt;
SQL_select_leido=Skill igual a 60310&lt;br /&gt;
&lt;br /&gt;
SQL_orden=&lt;br /&gt;
FIC_extension=pdf&lt;br /&gt;
&lt;br /&gt;
FIC_tipo_entrega=P&lt;br /&gt;
&lt;br /&gt;
FIC_destino=C:\&lt;br /&gt;
&lt;br /&gt;
INF_modelo=skill_setsi.rep&lt;br /&gt;
&lt;br /&gt;
INF_descripcion=Skill. SETSI&lt;br /&gt;
&lt;br /&gt;
BD_ip=172.25.1.2&lt;br /&gt;
&lt;br /&gt;
BD_puerto=3306&lt;br /&gt;
&lt;br /&gt;
BD_base_datos=nimitz&lt;br /&gt;
&lt;br /&gt;
BD_usuario=nimitz&lt;br /&gt;
&lt;br /&gt;
BD_clave=UIk5jNY9PVX5ogg=&lt;br /&gt;
&lt;br /&gt;
PAR_desde_vis=-&lt;br /&gt;
&lt;br /&gt;
PAR_hasta_vis=-&lt;br /&gt;
&lt;br /&gt;
PAR_01=&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Resumen de significado de columnas en reporting histórico ====&lt;br /&gt;
Esta información se puede consultar en el siguiente enlace:&lt;br /&gt;
&lt;br /&gt;
http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Documentacion_de_usuario_VIVAit_Suite_3.3#Resumen_del_valor_de_las_columnas_que_aparecen_en_los_informes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===== Agente,asistencia diaria y agente. Asistencia diaria del grupo =====&lt;br /&gt;
&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo de llamado:''' Tiempo de ring en llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo disponible:''' Tiempo que el agente estuvo conectado y no está&lt;br /&gt;
incluido en ninguno de los anteriores.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas transferidas:''' Número de llamadas ACD que fueron&lt;br /&gt;
transferidas por el agente.&lt;br /&gt;
&lt;br /&gt;
===== Agente. Aux y Grupo Aux =====&lt;br /&gt;
&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Desglose de tiempos AUX:''' Tiempo que el agente estuvo en cada uno&lt;br /&gt;
de los motivos de pausa.&lt;br /&gt;
&lt;br /&gt;
===== Agente. Resumen diario =====&lt;br /&gt;
&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo de llamado:''' Tiempo de ring en llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo disponible:''' Tiempo que el agente estuvo conectado y no está&lt;br /&gt;
incluido en ninguno de los anteriores.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas entrada Ext:''' Número de llamadas entrantes NO ACD a la&lt;br /&gt;
extensión.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas salida Ext:''' Número de llamadas salientes NO ACD desde la&lt;br /&gt;
extensión.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas transferidas:''' Número de llamadas ACD que fueron&lt;br /&gt;
transferidas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas retenidas:''' Número de retenciones que sufrieron las&lt;br /&gt;
llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACD:''' Tiempo ACD/ Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACW:''' TiempoACW/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio de entrada a la Ext:''' Tiempo entrada Ext/&lt;br /&gt;
Llamadas entrada Ext.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio de salida a la Ext:''' Tiempo salida Ext/ Llamadas&lt;br /&gt;
salida Ext.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio retención:''' Tiempo retención/Llamadas retenidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % Ocupación con ACW:''' ((Tiempo ACD+ Tiempo retención+ Tiempo&lt;br /&gt;
ACW)/Tiempo con personal)* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % Ocupación sin ACW:''' ((Tiempo ACD+ Tiempo retención)/Tiempo&lt;br /&gt;
con personal)* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % disp.:''' (Tiempo disponible/Tiempo conectado)* 100.&lt;br /&gt;
&lt;br /&gt;
===== Agente. Grupo ACD diario =====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención de un grupo&lt;br /&gt;
ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Ayuda:''' Número de llamadas contestadas por el agente que necesitaron&lt;br /&gt;
de consulta de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas retenidas:''' Número de retenciones que el agente realizó&lt;br /&gt;
sobre las llamadas de ese grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas por&lt;br /&gt;
el agente en ese grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Trans. salida:''' Llamadas que finalizan con una transferencia.&lt;br /&gt;
&lt;br /&gt;
===== Grupo ACD. Reporte diario con AHT =====&lt;br /&gt;
&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACD:''' Tiempo ACD/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACW:''' Tiempo ACW/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención de un grupo&lt;br /&gt;
ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente de un grupo ACD.&lt;br /&gt;
'''• Tiempo de llamado:''' Tiempo de ring en llamadas ACD de un grupo&lt;br /&gt;
ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo disponible:''' Tiempo que el agente estuvo conectado y no está&lt;br /&gt;
incluido en ninguno de los anteriores.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Ayuda:''' Número de llamadas ACD contestadas por el agente en las que&lt;br /&gt;
necesito hacer uso de la consulta.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas retenidas:''' Número de retenciones que el agente realizó&lt;br /&gt;
sobre las llamadas ACD contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas contestadas ACD&lt;br /&gt;
estuvieron retenidas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Trans. salida:''' Número de llamadas ACD que fueron transferidas por el&lt;br /&gt;
agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• AHT:''' (Tiempo ACD+ Tiempo ACW+ Tiempo retención)/Llamadas&lt;br /&gt;
ACD.(Average Handle Time)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Grupo ACD. QOS  =====&lt;br /&gt;
&lt;br /&gt;
'''• Vel. prom. de resp.:''' Tiempo total de espera de llamadas antes de ser&lt;br /&gt;
atendidas/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo prom. de aban.:''' Tiempo abandonadas(tiempo que las&lt;br /&gt;
llamadas abandonadas estuvieron en el grupo ACD)/Llamadas&lt;br /&gt;
abandonadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ofrecidas:''' Número de llamadas entrantes al grupo&lt;br /&gt;
ACD(Llamadas ACD+ Abandonadas+ Desbordadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas contestadas por los agentes.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas abandonadas:''' Número de llamadas colgadas por el cliente&lt;br /&gt;
en el grupo ACD antes de ser contestadas o desbordadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Desconectadas por ACD:''' Número de llamadas desbordadas que al&lt;br /&gt;
salir del grupo ACD se cuelgan.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Desbordadas por ACD:''' Número total de llamadas desbordadas(incluye&lt;br /&gt;
las desconectadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas atendidas en &amp;lt; 20s:'''Número de llamadas contestadas con&lt;br /&gt;
tiempo de respuesta menor a 20 segundos.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo total de espera:''' Tiempo total que las llamadas estuvieron&lt;br /&gt;
esperando antes de ser atendidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % N.A.:''' Llamadas ACD/(Llamadas ACD+ Llamadas abandonadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % N.D.S.:''' (Llamadas atendidas en &amp;lt; 20s/Llamadas ofrecidas)* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• T.M.O:''' (Tiempo ACD+ Tiempo ACW+ Tiempo retención)/Llamadas&lt;br /&gt;
ACD.(Tiempo Medio Operación)&lt;br /&gt;
&lt;br /&gt;
===== Informe conducción (VDN Conducción) =====&lt;br /&gt;
&lt;br /&gt;
'''•Entrantes al grupo ACD:''' Número de llamadas ofrecidas al grupo&lt;br /&gt;
ACD(Contestadas+ Abandonadas+ Desbordadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Llamadas contestadas:''' Número de llamadas contestadas por un agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Contestadas NDS:''' Número de llamadas contestadas en nivel de servicio,&lt;br /&gt;
tiempo de respuesta&amp;lt; 20 segundos.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Abandonadas:''' Número de llamadas abandonadas, colgadas por el cliente&lt;br /&gt;
antes de ser contestadas por un agente o desbordadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Desconectadas:''' Número de llamadas desbordadas que fueron colgadas al&lt;br /&gt;
salir del grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Desbordadas:''' Número total de llamadas desbordadas (incluye desconectadas)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Llamadas retenidas:''' Número de retenciones que el agente realizó sobre las&lt;br /&gt;
llamadas ACD contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•% N.A.:''' (Llamadas contestadas/(Llamadas contestadas+ Abandonadas+&lt;br /&gt;
Desbordadas))* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•% N.D.S.:''' (Contestadas NDS/(Llamadas contestadas+ Abandonadas + Desbordadas))*100&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•% Abandonadas:''' (Abandonadas/(Llamadas contestadas+ Abandonadas+ Desbordadas))* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. RING:''' Tiempo de ring en llamadas ACD(entrantes).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•ACDTIME:''' Tiempo de conversación ACD de las llamadas contestadas o&lt;br /&gt;
realizadas por el agente excluido el tiempo de retención de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. ACW:''' Tiempo dedicado por el agente a tareas administrativas tras&lt;br /&gt;
finalizar las llamadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum HOLD:''' Tiempo que las llamadas contestadas ACD estuvieron retenidas&lt;br /&gt;
por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. OTHER:''' Tiempo total que las llamadas estuvieron esperando en el&lt;br /&gt;
grupo ACD antes de ser atendidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. AVAIL:''' Acum. STAFF- (ACDTIME+ Acum. ACW+ Acum. RING+ Acum.&lt;br /&gt;
HOLD+ Acum. AUX).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. Staff:''' Suma del Tiempo conectado de todos los agentes al grupo&lt;br /&gt;
ACD(Este tiempo se repercute en todos los grupos ACD a los que esta&lt;br /&gt;
conectado el agente).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. AUX:''' Suma del Tiempo en pausa de todos los agentes que estén&lt;br /&gt;
conectados al grupo ACD(Este tiempo se repercute en todos los grupos ACD a&lt;br /&gt;
los que esta conectado el agente).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Prom. ACD:''' ACDTIME/Llamadas contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Prom. ACW:''' Acum. ACW/Llamadas contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Prom. HOLD:''' Acum. HOLD/Llamadas retenidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•AHT:''' (ACDTIME+ Acum. ACW+ Acum. HOLD)/Llamadas contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Vel. prom. de resp.:''' Tiempo total de espera de llamadas antes de ser&lt;br /&gt;
atendidas/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Tiempo máx. de espera:''' Tiempo de la llamada que estuvo mas tiempo en el&lt;br /&gt;
grupo ACD hasta que fue atendida.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Agentes en PH:''' (Acum. Staff- Acum. AUX)/1800(Agentes conectados que no&lt;br /&gt;
están en pausa en el intervalo).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Agentes Staff:''' Acum. Staff/1800(Agentes conectados en el intervalo)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Desglose de tiempos AUX:''' Tiempo que el agente estuvo en cada uno de los&lt;br /&gt;
motivos de pausa.&lt;br /&gt;
&lt;br /&gt;
===== Informe de producción =====&lt;br /&gt;
&lt;br /&gt;
'''• LL. ACD:'''Número de llamadas contestadas por ese agente para ese&lt;br /&gt;
grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. HOLD:''' Número de retenciones efectuadas para las llamadas&lt;br /&gt;
contestadas en ese grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Redir.:''' Número de llamadas no contestadas por un agente que&lt;br /&gt;
fueron redirigidas de nuevo a la cola.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. No colgadas cliente:''' Número de llamadas que terminaron sin el&lt;br /&gt;
colgado del cliente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Aband.:''' Número de llamadas abandonadas en ese grupo ACD, este&lt;br /&gt;
valor es independiente del agente por tanto se repite el valor para todos&lt;br /&gt;
los agentes en un mismo grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Transfer.:''' Número de llamadas ACD que fueron transferidas por el&lt;br /&gt;
agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Conf:''' Número de llamadas ACD en las que el agente estableció&lt;br /&gt;
conferencia.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• S. Extensión:''' Número de llamadas salientes de extensión, este valor es&lt;br /&gt;
independiente del grupo ACD se repite el valor para todos los grupos&lt;br /&gt;
ACD en los que está conectado el agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. Staff:''' Tiempo que el agente estuvo conectado al grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. RING:''' Tiempo de ring en las llamadas ACD(entrantes) que&lt;br /&gt;
fueron contestadas por el agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. ACD:''' Tiempo de conversación de las llamadas ACD(entrantes)&lt;br /&gt;
que fueron contestadas por el agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas que fueron contestadas por él.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum HOLD:''' Tiempo que las llamadas ACD(entrantes) para ese grupo&lt;br /&gt;
ACD que fueron contestadas por el agente estuvieron retenidas.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. AVAIL:''' Acum. STAFF- (Acum. ACD+ Acum. ACW+ Acum. RING+&lt;br /&gt;
Acum. HOLD+ Acum. AUX)..&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. AUX:''' Tiempo que el agente estuvo en pausa este valor es&lt;br /&gt;
independiente del grupo ACD se repite el valor para todos los grupos&lt;br /&gt;
ACD en los que está conectado el agente..&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Desgloses de tiempos AUX, tiempo AUX por cada uno de los&lt;br /&gt;
motivos.''' este valor es independiente del grupo ACD se repite el valor&lt;br /&gt;
para todos los grupos ACD en los que está conectado el agente.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Consideraciones adicionales =====&lt;br /&gt;
&lt;br /&gt;
Los tiempos se insertan en el intervalo en el que se deja ese &amp;quot;estado&amp;quot;, esto provoca que en un intervalo pueda ser mayor el tiempo ACD que el tiempo conectado.&lt;br /&gt;
&lt;br /&gt;
''* Ejemplo:''&lt;br /&gt;
&lt;br /&gt;
 -Llamada: Duración 15 minutos Hora fin de la llamada 13:01&lt;br /&gt;
 -Llamada: Duración 20 minutos Hora fin de la llamada 13:24&lt;br /&gt;
 Suma de las duraciones de las llamadas para el intervalo ''35 minutos'' tiempo&lt;br /&gt;
 conectado del agente en el intervalo ''30 minutos.''&lt;br /&gt;
 Cuando los periodos consultados sean mas amplios (diario, mensual) los&lt;br /&gt;
 desfases tenderán a desaparecer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Otros Diagnósticos y operaciones básicas ==&lt;br /&gt;
=== Arranque y apagado de la plataforma ===&lt;br /&gt;
&lt;br /&gt;
En general el arranque y apagado de cada nodo de una plataforma '''''VIVA'''''it es el estándar de un procedimiento ordenado de apagado en una máquina linux: '''&amp;quot;Shutdown -h now&amp;quot;''' o comando de apagado inmediato o programado equivalente&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El orden de arranque de la plataforma deberá ser:&lt;br /&gt;
# En primer lugar arrancar el nodo con la base de datos de tiempo real&lt;br /&gt;
# Una vez finalizado el arranque del punto 1, arrancar el nodo con la base de datos de réplica&lt;br /&gt;
# Una vez finalizado el arranque del punto 2, arrancar el resto de nodos en cualquier orden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Al respecto del orden de apagado de nodos, es el siguiente:&lt;br /&gt;
# En primer lugar se apagarán, en cualquier orden, los nodos que NO CONTENGAN bases de datos de tiempo real ni bases de datos de réplica&lt;br /&gt;
# Una vez apagados totalmente todos los nodos del punto 1, apagaremos el nodo (o nodos) con bases de datos de réplica&lt;br /&gt;
# Una vez apagados totalmente todos los nodos del punto 2, se apagará el nodo con la base de datos de tiempo real&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== Nivel matriz de conmutación ===&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Grabación ===&lt;br /&gt;
&lt;br /&gt;
==== Configuración de la grabación en la plataforma corporativa ====&lt;br /&gt;
Para que una llamada se grabe, lo primero de todo es que  alguien tenga la capacidad de grabar. Esto se consigue diciendo al nodo que sea grabador. Esto provoca que el nodo llame al mixmonitor para grabar y se inserte un registro en el DAT_GRABACIONES. Esto no significa que ya las llamadas se vayan a grabar, ya que para eso tiene que ser procesadas por un nodo que sea grabador. Hay tres, llamémosle elementos, que se pueden grabar:&lt;br /&gt;
&lt;br /&gt;
* El nodo, es decir todo lo que el nodo enrute&lt;br /&gt;
* Prerutas&lt;br /&gt;
* Objetos: que son las extensiones, usuarios, grupos corporativos, etc.&lt;br /&gt;
&lt;br /&gt;
Tenemos tres formas de grabar:&lt;br /&gt;
&lt;br /&gt;
* Grabar con beep periódico&lt;br /&gt;
* Grabar sin beep periódico&lt;br /&gt;
* Descartar grabación&lt;br /&gt;
&lt;br /&gt;
Si de los tres elementos tenemos que uno grabe, ya sea con o sin beep periódico, esa llamada se va a grabar ya que son OR, en cuanto haya un elemento que diga que grabe se va a grabar.&lt;br /&gt;
&lt;br /&gt;
Al igual pasa si tenemos que un elemento tenga descartar la grabación. La grabación no se inicia.&lt;br /&gt;
&lt;br /&gt;
Referente al campo de Modo de grabación en infraestructura, este no se emplea para la grabación de corporativo, sino que solo tiene validez en ACD. Para grabación en el ACD hay que, como se ha dicho anteriormente poner un nodo que sea grabador y especificar un elemento de los tres que hay cual es el que se va a grabar.&lt;br /&gt;
&lt;br /&gt;
Para que exista una grabación ha de existir un segmento asociado a esta. Los segmentos se tratan en las prerutas. Hay un campo es las prerutas que es Generar segmento al enrutar. Si está se generará el segmento del tipo de la preruta y su correspondiente grabación si esta está configurada. Si le decimos que no genere segmentos al enrutar y el sistema está configurado para que grabe, el recordCentral creará un tipo de segmento llamado externo para esa grabación. Podemos configurar si queremos que se cree o no ese segmento, para eso hay que modificar el fichero de configuración del recordCentral y poner un tiempo muy alto al campo $segmExternoMinSegs. También podemos configurar que segmentos queremos que se graben. Por defecto el recordCentral va configurado para que se graben todos los segmentos. Para decirle que solo grabe cierto tipo de segmentos hay que ponerlos los que queramos que si se graben en la variable $tiposSegmentoGrabar del fichero de configuración del recordCentral.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que el servidor de grabación esta activo ====&lt;br /&gt;
&lt;br /&gt;
Si al ejecutar el comando '''''nc ip_maquina 1114''''',si no se recibe ninguna respuesta, significa el servidor de grabación no estaría activo. &lt;br /&gt;
También usando el comando ''''' ps aux | grep recordCentral ''''', donde si no escribe ningún resultado implica que tampoco esta activo.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que los nodos están conectados al servidor de grabación ====&lt;br /&gt;
&lt;br /&gt;
Debemos fijarnos en la linea de respuesta del comando '''''nc ip_maquina 1114''''', que seria:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| root@smadavacdrecord1:~# nc localhost 1114&lt;br /&gt;
recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423&lt;br /&gt;
160112'&lt;br /&gt;
&lt;br /&gt;
recordCentral MYSQL cnx=1&lt;br /&gt;
&lt;br /&gt;
recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
&lt;br /&gt;
recordCenral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
&lt;br /&gt;
'''recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10''''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el parámetro &amp;quot;fase=0&amp;quot; es el numero que identifica el recordCentral, los demás parámetros nos indicaran los nodos disponibles , que funcionan o no en el servidor. Entonces &amp;quot;gestión=4,6,7,8,9,10&amp;quot; indica el id de los nodos que maneja el proceso.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que un nodo tiene activo el agente de grabación ====&lt;br /&gt;
Si al ejecutar el comando '''''nc ip_maquina 1113''''', no se recibe ninguna respuesta, significa que el nodo no tiene activo el agente de grabación.&lt;br /&gt;
También usando el comando ''''' ps aux | grep recordNodo''''', donde si no escribe ningun resultado implica que tampoco esta activo.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que un nodo está subiendo archivos de grabación al servidor ====&lt;br /&gt;
Debemos fijarnos en la linea de respuesta del comando '''''nc ip_maquina 1114''''', que seria:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| root@smadavacdrecord1:~# nc localhost 1114&lt;br /&gt;
recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423&lt;br /&gt;
160112'&lt;br /&gt;
&lt;br /&gt;
recordCentral MYSQL cnx=1&lt;br /&gt;
&lt;br /&gt;
recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
&lt;br /&gt;
recordCenral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
&lt;br /&gt;
'''recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10''''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Fijándonos en &amp;quot;descarga=8,6,4,7,10,9&amp;quot; nos confirma que todos los nodos que maneja el proceso funcionan perfectamente y el servidor puede manejar las grabaciones.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de grabaciones que se hayan quedado enganchadas en un nodo ====&lt;br /&gt;
Podemos fijarnos en los dos comandos, para '''''nc ip_maquina 1114''''':&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| root@smadavacdrecord1:~# nc localhost 1114&lt;br /&gt;
recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423&lt;br /&gt;
160112'&lt;br /&gt;
&lt;br /&gt;
recordCentral MYSQL cnx=1&lt;br /&gt;
&lt;br /&gt;
recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
&lt;br /&gt;
recordCenral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
&lt;br /&gt;
'''recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10''''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Fijándonos en el campo &amp;quot;cuarentena=''&amp;quot; indica que ninguno de los nodos tiene problemas.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación del estado de ocupación del almacenamiento temporal de grabaciones en un nodo. ====&lt;br /&gt;
&lt;br /&gt;
Desde un SSH ejecuta el comando '''''df - h''''' en la maquina donde creamos que debe estar ejecutando el proceso recordNod:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Filesystem !! Size !! Used !! Avail !! Use% !! Mounted on&lt;br /&gt;
|-&lt;br /&gt;
| udev || 486M || 4,0K || 486M || 1,00% || /dev&lt;br /&gt;
|-&lt;br /&gt;
| tmpfs || 100M || 416K || 99M || 1,00% || /run&lt;br /&gt;
|-&lt;br /&gt;
| '''/dev/vda1''' ||''' 236M''' ||''' 68M''' ||''' 156M''' ||''' 31,00% '''||''' /boot'''&lt;br /&gt;
|-&lt;br /&gt;
| tmpfs || 100M || 48K || 100M || 1,00% || /var/spool/asterisk/monitor&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Nos fijaríamos en la línea marcada en negrita, el campo &amp;quot;Use%&amp;quot; indicara el porcentaje de almacenamiento temporal de grabaciones en un nodo.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Escuchas e intrusiones en asterisk===&lt;br /&gt;
'''CallSpy''' es una aplicación elaborada para asterisk que permite a un usuario realizar escuchas e &lt;br /&gt;
intrusiones en llamadas. &lt;br /&gt;
En realidad tenemos dos aplicaciones en asterisk, CallSpy y CallSpyee. &lt;br /&gt;
====CallSpy ====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 '''Nota:''' Como mucho se pueden tener a dieciséis personas al mismo tiempo usando esta aplicación. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como hemos mencionado anteriormente, esta aplicación permite la escucha de llamadas y, &lt;br /&gt;
opcionalmente, realiza la función de intrusión. Tiene tres opciones de configuración obligatorios &lt;br /&gt;
que mostramos a continuación: &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 CallSpy(&amp;lt;tipoEspiado&amp;gt;,&amp;lt;expRegEspiado&amp;gt;,&amp;lt;parametrosConf&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
La opción '''&amp;lt;tipoEspiado&amp;gt;''' se refiere a que tipo de objeto que podemos espiar correspondiente, solo debe elegirse un único tipo: &lt;br /&gt;
*'''c:''' escuchar una cola&lt;br /&gt;
*'''v:''' escuchar un vdn &lt;br /&gt;
*'''a:''' escuchar a un agente &lt;br /&gt;
*'''e:''' escuchar extensión &lt;br /&gt;
La opción '''&amp;lt;expRegEspiado&amp;gt;''' representa el número de la cola, VDN, agente o extensión que queremos escuchar. Tiene que ser una expresión regular. &lt;br /&gt;
La opción '''&amp;lt;parametrosConf&amp;gt;''' se refiera a los parámetros de configuración para la llamada que podemos espiar, se pueden combinar o juntar : &lt;br /&gt;
*'''q:''' Desactiva el 'beep' al comienzo de cada nueva llamada. &lt;br /&gt;
*'''v([value]):''' Ajusta el volumen en el rango -4 a 4 (más alto, mas volumen). &lt;br /&gt;
*'''e:''' Habilita el que se pueda cambiar a otra llamada de la misma extensión. &lt;br /&gt;
*'''w:''' Habilita el que se pueda activar la intrusión (whisper).&lt;br /&gt;
Una vez iniciada la escucha, solo falta que entre una llamada al objetivo que estemos espiando. Al &lt;br /&gt;
iniciar la escucha, se puede hacer lo siguiente: &lt;br /&gt;
*Pulsando '''#''' modifica el volumen de escucha. &lt;br /&gt;
*Pulsando '''*''' cambia a una nueva llamada. &lt;br /&gt;
*Pulsando '''1''' si esta habilitado, cambia a otra llamada de la misma extensión. &lt;br /&gt;
*Pulsando '''2''' si esta habilitado, inicia la función de intrusión. &lt;br /&gt;
*Pulsando '''3''' desactiva la función de intrusión. &lt;br /&gt;
====CallSpyee (espiado)====&lt;br /&gt;
Mediante esta aplicación indicamos los parámetros que permite a una llamada ser seleccionada para &lt;br /&gt;
escuchar. Las opciones de configuración son: &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 CallSpyee([CID_NUM],[cola],[vdn],[agen],[exten]) &lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:'''No son parámetros obligatorios, por lo que no hace falta rellenar todos los campos pero si respetar sus posiciones separadas por comas.&amp;lt;small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
La explicación de los parámetros es la siguiente:&lt;br /&gt;
*'''CID_NUM:''' representa el call ID de la llamadas &lt;br /&gt;
*'''cola:'''representa el número de la cola que se quiere espiar (${QUEUE} ).&lt;br /&gt;
*'''vdn:'''   representa el número del VDN que se quiere espiar (${VDN} ).&lt;br /&gt;
*'''agen:''' representa el número del agente que se quiere espiar.&lt;br /&gt;
*'''exten:''' representa el número de la extensión que se quiere espiar (${EXTENSION}) .&lt;br /&gt;
&lt;br /&gt;
Por ejemplo si queremos escuchar todas las llamadas en las que participa una extensión determinada pondremos en la macro de extensiones: &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,,,${EXTENSION}) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Cambios para el dialplan de asterisk==== &lt;br /&gt;
El funcionamiento de este tipo de servicio conlleva un cambio en el dialplan de asterisk. En cada macro correspondiente se pondrá los diferentes CallSpyee para VDN, colas  , extensiones y agentes. &lt;br /&gt;
Pasos a seguir: &lt;br /&gt;
*Paso 1. Creación de un código de intrusión para cada tipo según necesidad (cola, VDN, agente y &lt;br /&gt;
extensión). &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Ejemplo '''MD'''tel:  declaramos como código de intrusión a Agente *44*NUMERO &lt;br /&gt;
 ;========================================== &lt;br /&gt;
 ;======== Intrusion a Agente &lt;br /&gt;
 ;========================================== &lt;br /&gt;
 exten =&amp;gt; _*44*X.,1,set(CadMarcar=intrusionEspiado) &lt;br /&gt;
 exten =&amp;gt; _*44*X.,n,set(DesL=SERVICIO) &lt;br /&gt;
 exten =&amp;gt; _*44*X.,n,set(datoServicio=^${EXTEN:4}) &lt;br /&gt;
 exten =&amp;gt; _*44*X.,n,Goto(finMacro,1) &lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' En la tercera línea podemos observar la expresión regular que se le pasara al CallSpy correspondiente con el número marcado por el espia. &amp;lt;small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*Paso 2.Llamar a CallSpy con la configuración deseada.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Ejemplo '''MD'''tel:  llamada a CallSpy especificando que vamos a espiar una cola (la c del primer parámetro, con la&lt;br /&gt;
 extensión introducida en el código de intrusión y con whisper, es decir, función de intrusión habilitada. &lt;br /&gt;
 ;------------------------------------------------------------------------ &lt;br /&gt;
 ; Intrusion a Espiado &lt;br /&gt;
 ;------------------------------------------------------------------------ &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,1,NoOp &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,n,GotoIf($[&amp;quot;${datoServicio}&amp;quot;=&amp;quot;&amp;quot;]?colgar) &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,n,CallSpy(c,${datoServicio},w) &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,n(colgar),Hangup &lt;br /&gt;
|}&lt;br /&gt;
* Paso 3. Llamar a CallSpyee con la configuración de las llamadas candidatas a ser escuchadas.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Ejemplo '''MD'''tel: &lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,,,,${EXTENSION}) → Para extensiones &lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,${QUEUE},,,) → Llamadas espiadas por cola &lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,,${VDN},,) → Llamadas espiadas por VDN &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Calendarios ===&lt;br /&gt;
&lt;br /&gt;
Para la configuración de los Calendarios se hace uso de '''CalDAV''', estándar de Internet que permite a un cliente acceder a información de planificación en un servidor remoto. Permite que varios clientes accedan a la misma información, facilitando la cooperación. Muchas aplicaciones, tanto clientes como servidores, son compatibles con este protocolo.&lt;br /&gt;
&lt;br /&gt;
Si deseamos crear un calendario en la plataforma '''VIVAit''' podemos hacerlo siguiendo el  siguiente enlace:  &lt;br /&gt;
Para comprobar que el servidor de calendarios funciona correctamente bastaría con cargar en la barra de direcciones la siguiente url: [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Calendarios |Calendarios]]&lt;br /&gt;
&lt;br /&gt;
http://${NODO.HOST}/dav/html/cal.php/calendars/${DAV.CUENTA}/${DAV.CALENDARIO}&lt;br /&gt;
&lt;br /&gt;
donde,&lt;br /&gt;
&lt;br /&gt;
* '''NODO.HOST:''' es la ip del servidor calendar&lt;br /&gt;
* '''DAV.CUENTA:''' hace referencia a la cuenta de usuario&lt;br /&gt;
* '''DAV.CALENDARIO:''' hace referencia el nombre de la cuenta&lt;br /&gt;
&lt;br /&gt;
Una vez que se carga la url sabremos que el servidor funciona correctamente si visualizamos lo siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla de 2016-07-21 12_43_58.png || 1020px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si el sistema nos pide usuario y clave querrá decir que el servidor de calendarios está operativo en esa maquina&lt;br /&gt;
&lt;br /&gt;
Para comprobar que funciona en la consola de asterisk usaremos los comandos &lt;br /&gt;
 calendar show calendars&lt;br /&gt;
 calendar show calendar [nombreCalendario]&lt;br /&gt;
&lt;br /&gt;
 '''Nota:''' Debido bugs detectados, el proceso requerirá:&lt;br /&gt;
       - La realización de una sincronización manual de la sección &amp;quot;mdcal&amp;quot; desde el portal de administración&lt;br /&gt;
       - Añadir la línea '''''#include &amp;quot;/etc/asterisk/mdcal.conf&amp;quot;''''' en el fichero calendars.conf y hacer &amp;quot;reload&amp;quot; de asterisk&lt;br /&gt;
       - En la máquina donde esté instalado el servidor de calendarios apuntar a la IP de la BDTR (/var/www/dav/config.php)&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Syslog de agentes ===&lt;br /&gt;
'''''Syslog''''' es un estándar para el envío de mensajes de registro en una red informática IP. Por '''''Syslog''''' se conoce tanto al protocolo de red como a la aplicación o biblioteca que envía los mensajes de registro. Se lanza automáticamente al arrancar un sistema Unix, y es el encargado de guardar informes sobre el funcionamiento de la máquina (eventos, seguridad del sistema, etc) pero puede contener también cualquier información como mensajes de las diferentes partes del sistema (núcleo, programas...) y los envía y/o almacena en diferentes localizaciones transmitiéndose mediante un puerto UDP. Esto permite concentrar los registros de múltiples máquinas en un único punto simplificando la labor de gestión al administrador siendo habitual que múltiples dispositivos lo soporten.&lt;br /&gt;
&lt;br /&gt;
El formato del mensaje se compone de tres campos :&lt;br /&gt;
&lt;br /&gt;
* La cabecera contiene la prioridad, fecha y hora del mensaje, máquina, proceso (nombre e identificador) que lo ha generado y la versión del protocolo utilizado.&lt;br /&gt;
* Una serie de pares clave-valor con metadatos.&lt;br /&gt;
* El texto del mensaje.&lt;br /&gt;
&lt;br /&gt;
Si es necesario podemos activar el registro de todos los eventos telefónicos que realiza un agente ACD llamado '''Syslog de agentes'''. Su activación se realiza mediante el '''portal de administración ''VIVA''it'''  configurando unos parámetros para un usuario llamado ''Rastreo BBDD&amp;quot; y ''Rastreo Syslog''. Para más información[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Pesta.C3.B1a_ACD | ver sección  Portal de administración - General - Usuarios - Pestaña ACD  ]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot;  align=&amp;quot;top&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot; |&amp;lt;big&amp;gt;'''Elemento'''&amp;lt;/big&amp;gt; &lt;br /&gt;
|align=&amp;quot;center&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot; | &amp;lt;big&amp;gt;'''Procedimiento'''&amp;lt;/big&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Operacion&lt;br /&gt;
|-&lt;br /&gt;
|Ubicación del proceso||Script arranque: /etc/init/ rsyslog.conf&lt;br /&gt;
Configuración :&lt;br /&gt;
/etc/rsyslog.d/30-vivait-&lt;br /&gt;
desk.conf&lt;br /&gt;
|-&lt;br /&gt;
|Arranque||service rsyslog start&lt;br /&gt;
|-&lt;br /&gt;
|Parada||service rsyslog stop&lt;br /&gt;
|-&lt;br /&gt;
|Reinicio||service rsyslog reload&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Diagnostico&lt;br /&gt;
|-&lt;br /&gt;
|Registro de logs||/var/log/MDtel/vivait-desk.log&lt;br /&gt;
Fichero del día actual. se guardan los 30&lt;br /&gt;
anteriores comprimidos en tar.g&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Generación de un Core ===&lt;br /&gt;
Un Core es la memoria de un programa.&lt;br /&gt;
&lt;br /&gt;
Para generar un Core rápido con Asterisk hay que hacer lo siguiente:&lt;br /&gt;
&lt;br /&gt;
    Ejecutar ps aux | grep asterisk y coger el PID del programa&lt;br /&gt;
    gdb /usr/sbin/asterisk [PID]&lt;br /&gt;
    gcore [file]&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==Funcionalidades específicas ==&lt;br /&gt;
=== Mecanismo de prioridad adaptativa ===&lt;br /&gt;
&lt;br /&gt;
El mecanismo de prioridad adaptativa permite en una plataforma '''''VIVA'''''it Suite establecer prioridades en las que se tenga en cuenta el tiempo de espera de las llamadas en cola, proporcionando una alternativa al mecanismo de prioridad absoluta que existe por defecto&lt;br /&gt;
&lt;br /&gt;
==== Introducción ====&lt;br /&gt;
&lt;br /&gt;
Este documento presenta una propuesta de mecanismo de asignación de llamadas en colas a agentes basado no solo en las prioridades de agente a cola,&lt;br /&gt;
sino en un factor de corrección de prioridad derivado del tiempo de espera de una llamada&lt;br /&gt;
&lt;br /&gt;
==== Terminología ====&lt;br /&gt;
&lt;br /&gt;
* '''Prioridad de llamada:''' A cada llamada susceptible de ser atendida en el ''Call Center'' se le asignará una prioridad de llamada; dicha prioridad será asignada cada vez que un agente quede disponible.&lt;br /&gt;
* '''Prioridad de grupo ACD:''' Los agentes del ''Call Center'' tendrán configurada una prioridad para cada grupo ACD al que pertenecen&lt;br /&gt;
* '''Tiempo de espera:''' Tiempo que una llamada lleva en espera en un determinado grupo ACD; si la llamada cambia de un grupo ACD a otro el tiempo de espera pasa a cero&lt;br /&gt;
* '''Objetivo de servicio:''' Tiempo objetivo máximo de espera por cada grupo ACD&lt;br /&gt;
&lt;br /&gt;
 '''Nota.-''' ''En terminología Asterisk el aumento de prioridad corresponde con números descendentes, es decir,&amp;lt;br /&amp;gt;&lt;br /&gt;
 prioridad 50 es mejor que prioridad 70''&lt;br /&gt;
&lt;br /&gt;
==== Mecanismo de asignación de llamadas ====&lt;br /&gt;
&lt;br /&gt;
En el momento en que exista un agente disponible para recibir llamada, el agente recepcionará la llamada con mejor prioridad de llamada (menor número). La prioridad de llamada para cada llamada se establecerá de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
- Agentes con prioridad de grupo ACD de 1 a 99 utilizarán el mecanismo convencional de asterisk de prioridad absoluta; será útil para grupos ACD críticos o en Call Centers muy convencionales&lt;br /&gt;
&lt;br /&gt;
'''Si un agente tiene prioridad menor de 100 en grupos ACD y hay llamadas en dichos grupos, estas llamadas serán atendidas por el agente con prioridad absoluta.'''&lt;br /&gt;
&lt;br /&gt;
- Agentes con prioridad de colas de 100 en adelante; se utilizará el siguiente mecanismo de prioridad ponderada:&lt;br /&gt;
&lt;br /&gt;
:*Si el grupo ACD de la llamada está dentro del objetivo de servicio, la prioridad de llamada será la prioridad de grupo ACD (a efectos prácticos se aplicará el mecanismo convencional de asignación de llamada a agente, equitativo entre grupos ACD con misma prioridad)&lt;br /&gt;
&lt;br /&gt;
:*Si el grupo ACD de la llamada está fuera del objetivo de servicio, se aplicará una ponderación que mejorará la prioridad de la llamada a medida que aumente el tiempo de espera:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Formula.png |center]]&lt;br /&gt;
&lt;br /&gt;
En una configuración de igualdad de prioridad de agente y objetivo de servicio, el tiempo de espera influiría de manera determinante (más o menos en&lt;br /&gt;
función del peso) en la asignación de la siguiente llamada&lt;br /&gt;
El peso podrá adquirir tres posibles valores: 0, 1 y 10&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Esquema.png |center]]&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;span style=&amp;quot;color:#000080&amp;quot;&amp;gt;- Calculo prioridad de llamada: se calcula por llamada cada vez que un agente queda libre&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span style=&amp;quot;color:#000080&amp;quot;&amp;gt;- Agente atiende llamada con mejor prioridad de llamada&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Medio:Asignación de llamadas por prioridad adaptativa.pdf|Asignación de llamadas por prioridad adaptativa]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Marcación saliente ===&lt;br /&gt;
Dentro del ACD hay un comportamiento especial que es la marcación saliente. Esta puede ser de tres tipos:&lt;br /&gt;
* '''Vista previa''': El agente demanda la siguiente llamada a realizar.&lt;br /&gt;
* '''Progresivo''': Se llama al agente y se lanza la llamada al contacto.&lt;br /&gt;
* '''Predictivo''': El sistema calcula cuando va a estar libre el agente y se adelanta lanzando varias llamadas (configurables por parámetros). La llamada que es contestada primero, se pasa a una cola (el resto se cuelgan) a la espera que el agente se quede libre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Esquema de funcionamiento====&lt;br /&gt;
[[Archivo:esquema funcionamiento marcador.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
Los contactos se agrupan en listas para su facilidad de asignación a campañas, aunque finalmente lo que se asigna a una campaña es un contacto.&lt;br /&gt;
&lt;br /&gt;
Las campañas tienen estrategias. Las estrategias definen como se ha de llamar (del primero al último, sólo los pares, etc.). Tienen una serie de parámetros que  dependiendo de la estrategia pueden tener distinta utilidad. Desde el punto de vista de la base de datos, las estrategias se definirían en la tabla ACD_CLASES_ESTRATEGIAS y se les da valor en la tabla ACD_ESTRATEGIAS_MARCADOR.&lt;br /&gt;
Una vez establecida la campaña y asignados sus contactos y dependiendo del modo de marcación (que se define en las colas) el proceso motorSal crea los intentos de marcación (siempre y cuando no estén en las listas Robinson), que serán leídos por el proceso myAcdSuperv que los convierte en llamadas para el Asterisk.&lt;br /&gt;
&lt;br /&gt;
====Flujo de estados====&lt;br /&gt;
&lt;br /&gt;
El flujo de estados es el reflejado en la figura siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:diagrama de flujo motorsal.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
Los diferentes estados de un contacto son:&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Estado !! ID_Estado!! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| Planificable || 0|| El contacto está preparado para que lo gestione motorSal y según la estrategia definida se establece el campo ACD_CONTACTOS_CAMPANNAS.D_HORA_PROXIMA&lt;br /&gt;
|-&lt;br /&gt;
|Planificado||10||Cuando ha llegado el tiempo marcado en HORA PROXIMA, motorSal ejecuta la 2ª fase de la estrategia, generando el intento de marcación.&lt;br /&gt;
|-&lt;br /&gt;
|Intento||20||El control pasa a myAcdSuperv, que a su vez genera la llamada en Asterisk. Cuando termina, se pasa a Planificable o Finalizado.&lt;br /&gt;
|-&lt;br /&gt;
|Finalizado||100||Las gestiones con este contacto han terminado.&lt;br /&gt;
|-&lt;br /&gt;
|Abortado||110||&lt;br /&gt;
|-&lt;br /&gt;
|Obsoleto||200||Se ha agotado el tiempo para contactar sin agotar todos los intentos. No se le vuelve a llamar nunca.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Carga de contactos====&lt;br /&gt;
&lt;br /&gt;
===== Descripción =====&lt;br /&gt;
&lt;br /&gt;
A continuación se explica la configuración y funcionamiento de la utilidad encargada de asignar contactos a campañas.&lt;br /&gt;
&lt;br /&gt;
===== Configuración =====&lt;br /&gt;
&lt;br /&gt;
El archivo de configuración recibe el nombre de '''cargaContactos.pconf.''' Este archivo reside en '''/etc/MDtel.''' El formato se describe en la tabla siguiente. Hay que tener en cuenta que las columnas empiezan a numerarse en 0.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Parámetro !! Valor !! Obligatorio !! Defecto&lt;br /&gt;
|- &lt;br /&gt;
| db|| Nombre de la base de datos|| SI || nimitz&lt;br /&gt;
|- &lt;br /&gt;
| dbHost|| Host MySQL || SI || localhost&lt;br /&gt;
|- &lt;br /&gt;
| dbPort|| Puerto MySQL || NO || 3306&lt;br /&gt;
|- &lt;br /&gt;
| dbUsuario || Usuario de acceso a la base de datos|| SI ||&lt;br /&gt;
|- &lt;br /&gt;
| dbClave || Clave del usuario || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| rutaContactos || Ruta hasta el archivo de contactos || NO || /var/spool/MDtel/contactos&lt;br /&gt;
|- &lt;br /&gt;
| obsoletos || Si vale 1, marcar como obsoletos los contactos anteriores || NO || 0&lt;br /&gt;
|- &lt;br /&gt;
| diasCaducidad || Número de dias a partir de los cuales caducarán los contactos || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| idCampanna || Número de columna que contiene el ID de la campaña || SI||&lt;br /&gt;
|- &lt;br /&gt;
| idLista || Numero de columna que contiene el ID de la lista || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| prioridad || Número de columna que contiene la prioridad || NO || Nota: El valor es de 0 a 99. A mayor número mayor prioridad (se le llamará '''ANTES''')&lt;br /&gt;
|- &lt;br /&gt;
| tipoTarea|| Número de columna que contiene el tipo de tarea || NO || Nota: los posibles valores de la columna son : &amp;lt;br /&amp;gt; *A: Alta &amp;lt;br /&amp;gt; *M: Modificación &amp;lt;br /&amp;gt; *B: Baja&amp;lt;br /&amp;gt; Por defecto el valor es A&lt;br /&gt;
|- &lt;br /&gt;
| codCli || Número de columna del CSV que contiene el código de cliente || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| nombreCon || Número de columna del CSV que contiene el nombre || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| apellido1 || Número de columna del CSV que contiene el primer apellido|| NO ||&lt;br /&gt;
|- &lt;br /&gt;
| apellido2 || Número de columna del CSV que contiene el segundo apellido || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| empresa || Número de columna del CSV que contiene la empresa || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| direccion1 || Número de columna del CSV que contiene la dirección || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| direccion2 || Número de columna del CSV que contiene la dirección 2 || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| codPostal || Número de columna del CSV que contiene el código postal || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| localidad || Número de columna del CSV que contiene la localidad || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| provin || Número de columna del CSV que contiene la provincia || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| email || Número de columna del CSV que contiene el email || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_1 || Número de columna del CSV que contiene el primer número fijo del contacto || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_2 || Número de columna del CSV que contiene el segundo número fijo del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_3 || Número de columna del CSV que contiene el tercer número fijo del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_4 || Número de columna del CSV que contiene el cuarto número fijo del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_1 || Número de columna del CSV que contiene el primer número móvil del contacto || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_2 || Número de columna del CSV que contiene el segundo número móvil del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_3 || Número de columna del CSV que contiene el tercer número móvil del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_4 || Número de columna del CSV que contiene el CUARTO número móvil del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| edad || Número de columna del CSV que contiene la edad || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc1|| Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc2 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc3 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc4 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc5 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc6 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc7 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc8 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc1 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc2 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc3 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc4 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc5 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc6 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc7 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc8 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|-&lt;br /&gt;
| Idioma || Idioma del contacto || NO ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Funcionamiento =====&lt;br /&gt;
&lt;br /&gt;
Para ejecutar la utilidad se debe teclear la siguiente orden en la línea de comandos:&lt;br /&gt;
&lt;br /&gt;
'''cmd# cargaContactos.pl /&amp;lt;ruta hasta el conf&amp;gt;/cargaContactos.pconf &amp;lt;archivo CSV&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
El archivo con los contactos deberá ser un CSV con los campos separados por ';'. La utilidad parsea el archivo conforme a la distribución indicada en la configuración y crea las correspondientes entradas en las tablas '''ACD_CONTACTOS''' y '''ACD_CONTACTOS_CAMPANNAS.'''&lt;br /&gt;
&lt;br /&gt;
La utilidad crea un log en '''/var/log/cargaContactos.log''' en el que vuelca toda la operativa.&lt;br /&gt;
Por pantalla se va mostrando un lista con el ID asignado al contacto y el ID de campaña al que se le ha asignado.&lt;br /&gt;
&lt;br /&gt;
Un ejemplo de fichero de carga de contactos sería el siguiente: &lt;br /&gt;
&lt;br /&gt;
 #&lt;br /&gt;
 # Configuracion de recordGwd.pl&lt;br /&gt;
 #&lt;br /&gt;
 # Conexion de base de datos&lt;br /&gt;
 $db='nimitz';&lt;br /&gt;
 $dbHost = 'localhost';&lt;br /&gt;
 $dbPort = '3306';&lt;br /&gt;
 $dbUsuario = 'nimitz';&lt;br /&gt;
 $dbClave = 'LA QUE SEA';&lt;br /&gt;
 $diasCaducidad='300';&lt;br /&gt;
 $rutaGrab = '/var/spool/MDtel/contactos';&lt;br /&gt;
 $idCampanna = '31';&lt;br /&gt;
 $idLista = '32';&lt;br /&gt;
 $obsoletos = 0;&lt;br /&gt;
 $codCli = '1';&lt;br /&gt;
 $nombreCon = '2';&lt;br /&gt;
 $apellido1 = '3';&lt;br /&gt;
 $apellido2 = '4';&lt;br /&gt;
 $empresa = '5';&lt;br /&gt;
 $direccion1 = '6';&lt;br /&gt;
 $direccion2 = '7';&lt;br /&gt;
 $codPostal = '8';&lt;br /&gt;
 $localidad = '9';&lt;br /&gt;
 $provin = '10';&lt;br /&gt;
 $email = '11';&lt;br /&gt;
 $valFijo_1 = '12';&lt;br /&gt;
 $valFijo_2 = '13';&lt;br /&gt;
 $valFijo_3 = '14';&lt;br /&gt;
 $valFijo_4 = '15';&lt;br /&gt;
 $valMovil_1 = '16';&lt;br /&gt;
 $valMovil_2 = '17';&lt;br /&gt;
 $valMovil_3 = '18';&lt;br /&gt;
 $valMovil_4 = '19';&lt;br /&gt;
 $edad = '20';&lt;br /&gt;
 $nOpc1 = '21';&lt;br /&gt;
 $nOpc2 = '22';&lt;br /&gt;
 $nOpc3 = '23';&lt;br /&gt;
 $nOpc4 = '24';&lt;br /&gt;
 $cOpc1 = '25';&lt;br /&gt;
 $cOpc2 = '26';&lt;br /&gt;
 $cOpc3 = '27';&lt;br /&gt;
 $cOpc4 = '28';&lt;br /&gt;
 $prioridad = '29';&lt;br /&gt;
 $tipoTarea = '30';&lt;br /&gt;
&lt;br /&gt;
====Comportamiento de reprogramaciones de llamadas en función del estado del agente====&lt;br /&gt;
&lt;br /&gt;
Se ha preparado la siguiente maqueta:&lt;br /&gt;
&lt;br /&gt;
Campaña saliente.&lt;br /&gt;
Cola saliente progresiva.&lt;br /&gt;
Dos agentes logados en VIVAit Suite.&lt;br /&gt;
&lt;br /&gt;
En el formulario de la llamada se indica: llamada redirigida&lt;br /&gt;
Se selecciona el &amp;quot;check dirigida&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Las posibilidades de prueba son dos: &amp;quot;'''Cualquier agente'''&amp;quot; y &amp;quot;'''Solo agente'''&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Resultados son los siguientes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''Estado del agente''' || '''Modo Cualquier Agente'''|| '''Modo Solo Agente'''&lt;br /&gt;
|-&lt;br /&gt;
| '''Agente Preparado''' || Entra llamada a agente|| Entra llamada a agente&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente en Pausa'''||Entra llamada a otro agente disponible||Espera a agente y entra llamada.&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente Hablando'''||Espera a agente y entra llamada||Espera a agente y entra llamada.&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente en Tiempo administrativo'''||Espera a agente y entra llamada||Espera a agente y entra llamada.&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente no logado'''||Entra llamada a otro agenete disponible||Consume intento.&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente con una pestaña de chat abierta y el otro agente en pausa'''||Entra llamada a otro agente disponible||Espera a agente y entra llamada.&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente con dos pestañas de chat abiertas'''||Espera a agente y entra llamada||Espera a agente y entra llamada.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Movilidad ===&lt;br /&gt;
La movilidad es una función integral de las comunicaciones en la empresa. Cualquier empleado (usuario) es móvil en cierto grado, ya sea dentro o fuera de la organización. La solución óptima debe proporcionar continuidad de servicios y acceso a nuestros servicios, sin importar donde estemos.&lt;br /&gt;
&lt;br /&gt;
==== Ofrecer movilidad a un usuario ====&lt;br /&gt;
&amp;lt;!--parte daniel--&amp;gt;&lt;br /&gt;
Para permitir la movilidad a un usuario, puede ser en el momento de crear o editar un usuario en el apartado ''Administración de usuario'' en ''General'' del '''portal de administración ''VIVA''it'''.  Asignándole un '''''numero login''''' (numero personal corporativo para el usuario) y una '''''clave login''''' ( se debe asignar una clave por defecto, pero puede cambiarla en el [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_3.0#Portal_de_usuario |portal de usuario]]). &amp;lt;br/&amp;gt;Para más información[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Pesta.C3.B1a_Centralita | ver sección Portal de administración - General - Usuarios - administración de usuarios - Pestaña Centralita]].&lt;br /&gt;
&lt;br /&gt;
Además, de crear un permiso de la '''aplicación ''Centralita''''' a cualquier nivel, desde el apartado ''Permisos de usuarios'' en ''General'' del '''portal de administración ''VIVA''it'''.&amp;lt;br/&amp;gt;Para más información[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Asignaci.C3.B3n_de_Permisos_de_Usuario_por_Administrador | ver sección  Portal de administración - General - Usuarios - Permisos a usuarios]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''La movilidad permite''' disponer de las extensiones telefónicas empresariales en cualquier lugar. Por&lt;br /&gt;
ejemplo, con un ordenador portátil o smartphone en una ubicación remota con conexión a Internet,&lt;br /&gt;
podríamos tener registrada nuestra extensión remotamente, y así las llamadas hacia/desde nuestra&lt;br /&gt;
oficina serían enrutadas por Internet hasta el equipo en cuestión sin coste alguno.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--parte daniel--&amp;gt;&lt;br /&gt;
Todo terminal tiene asociado una extensión y deberá permitir la movilidad de usuarios. La extensión se configura cambiando a '''''SI''''' el campo '''''Hay Movilidad''''' desde el apartado ''Extensiones'' de ''Dispositivos'' en ''VIVAit Call'' del '''portal de administración ''VIVA''it'''. Para más información [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Extensiones | ver sección Portal de administración - VIVAit Call - Dispositivos - Extensiones]]&lt;br /&gt;
&lt;br /&gt;
==== ¿Cómo funcionan las extensiones? ====&lt;br /&gt;
&lt;br /&gt;
Primeramente el usuario debe tener los ejes apropiados en la tabla '''COM_USUARIOS_APLICACION''' (aplicación centralita).&lt;br /&gt;
&lt;br /&gt;
La extensión debe de tener ''un teléfono'' y por tanto ''un modelo de teléfono asociado.''&lt;br /&gt;
&lt;br /&gt;
Es tan simple como especificar '''la extensión, el usuario y la clave de este.'''&lt;br /&gt;
&lt;br /&gt;
Para corroborar el funcionamiento de esta hay ''dos métodos'':&lt;br /&gt;
&lt;br /&gt;
'''* CLI asterisk:'''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenEntraUsuarioMovil 25001 20001 1234'''&lt;br /&gt;
&lt;br /&gt;
Y como resultado obtenemos lo siguiente:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br /&amp;gt;&lt;br /&gt;
 MOVIL_TIPO_RESET='10'&amp;lt;br /&amp;gt;&lt;br /&gt;
 MOVIL_CAD_RESET='notify_yealink'&amp;lt;br /&amp;gt;&lt;br /&gt;
 MdintzRes='OK'&lt;br /&gt;
&lt;br /&gt;
El usuario con el login numérico 20001 se ha &amp;quot;movido&amp;quot; a la extensión 25001&lt;br /&gt;
&lt;br /&gt;
Ahora ''nos quitamos de esa extensión mediante el siguiente comando:''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenSaleUsuarioMovil 25001'''&lt;br /&gt;
&lt;br /&gt;
Resultado del comando:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MOVIL_TIPO_RESET='10'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MOVIL_CAD_RESET='notify_yealink'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzRes='OK'&lt;br /&gt;
&lt;br /&gt;
Las pruebas anteriores han sido '''con extensiones con movilidad y con usuario con/sin&lt;br /&gt;
propietario.'''&lt;br /&gt;
&lt;br /&gt;
Ahora las realizamos '''con extensiones sin movilidad'''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenEntraUsuarioMovil 25002 20001 1234'''&lt;br /&gt;
&lt;br /&gt;
Obteniendo:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzRes='movil_error_datos'&lt;br /&gt;
&lt;br /&gt;
Como era lo previsible no nos deja &amp;quot;movernos&amp;quot; a esa extensión ya que no tiene movilidad.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''&amp;lt;u&amp;gt;Si un usuario ya se ha movido a una extensión no se puede mover a otra si no es deslogandose de esta antes.&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Esta línea se comenta porque se ha preparado el sistema para que los ususarios se puedan logar en una nueva extensión y el sistema lo deslogue de la primera a la que se movió. La variable que controla este funcionamiento es MD_AUTODES, con dos posibles valores:&lt;br /&gt;
0, para que el usuario deba deslogarse de una extensión para logarse en otra.&lt;br /&gt;
1, para que sea el sistema el que deslogue automátiamente al usuario cuando cambia de una extensión de movilidad a otra.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;Si un usuario ya se ha movido a una extensión y se mueve a otra, el sistema lo deslogará de la primera para logarlo en la segunda.&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenEntraUsuarioMovil 21000 20001 1234'''&lt;br /&gt;
&lt;br /&gt;
Con salida:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MOVIL_EXTEN='25001'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MDintzRes='movil_ya_login'&lt;br /&gt;
&lt;br /&gt;
'''* Dialplan'''&lt;br /&gt;
&lt;br /&gt;
Para llamar a la función de movilidad hay que marcar el '''9992.'''&lt;br /&gt;
&lt;br /&gt;
 Nota.- Para comprobar que se realiza todo correctamente habría que mirar las trazas de Asterisk&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Grabación ===&lt;br /&gt;
&lt;br /&gt;
La grabación en '''''VIVA'''''it Call está diseñada para ser lo mas flexible posible.&lt;br /&gt;
&lt;br /&gt;
====Configuración====&lt;br /&gt;
&lt;br /&gt;
Si deseamos grabar, debemos activar que alguno de los dispositivos/elementos que intervienen en la llamada se grabe.&lt;br /&gt;
&lt;br /&gt;
Estos dispositivos/elementos son:&lt;br /&gt;
&lt;br /&gt;
* Nodo.&lt;br /&gt;
* Usuario con Centralita.&lt;br /&gt;
* Agente.&lt;br /&gt;
* Grupo ACD corporativo y de Contact Center.&lt;br /&gt;
* Enlace exterior.&lt;br /&gt;
* Extensión.&lt;br /&gt;
* Facilidades.&lt;br /&gt;
* Grupo: grupo de salto o grupo de operadoras.&lt;br /&gt;
* Sala de conferencia.&lt;br /&gt;
* VDN corporativo y de Contact Center.&lt;br /&gt;
* Pre-rutas.&lt;br /&gt;
&lt;br /&gt;
Por otro lado necesitaremos que la llamada pase por un nodo que sea grabador, es decir, que si la llamada esta configurada para que se grabe pero no pasa por ningún nodo grabador, la llamada no se grabará.&lt;br /&gt;
&lt;br /&gt;
Al configurar un nodo existen cuatro campos que intervienen en la grabación.&lt;br /&gt;
&lt;br /&gt;
''''Grabador''''&lt;br /&gt;
&lt;br /&gt;
Se configura en el portal en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Este campo corresponde con el campo [[BD.COM_NODOS#B_ES_GRABADOR|B_ES_GRABADOR]] de la tabla [[BD.COM_NODOS|COM_NODOS]] , este campo define si el nodo va a grabar las llamas que pasen por el que necesiten ser grabadas y no se estén grabando ya.&lt;br /&gt;
&lt;br /&gt;
Es un campo booleano los posibles valores en el portal son si/no y en la base de datos 1/0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''''Modo grabación infraestructura''''&lt;br /&gt;
&lt;br /&gt;
Su configuración se realiza en el portal, en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Este campo define como está configurada la infraestructura, este campo existe por compatibilidad con '''''VIVA'''''it suite y para poder configurar la grabación bajo demanda.&lt;br /&gt;
&lt;br /&gt;
Este campo corresponde con el campo [[BD.COM_NODOS#E_MODO_GRABACION_INFRAESTRUCTURA|E_MODO_GRABACION_INFRAESTRUCTURA]] de la tabla [[BD.COM_NODOS|COM_NODOS]], Este campo usa los valores del enumerado BD.ENUM.TModoGrabacionInfraestructura|TModoGrabacionInfraestructura]].&lt;br /&gt;
&lt;br /&gt;
La formula que se seguiría para ver si una llamada se graba en ese nodo es:&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 (NODO.E_MODO_GRABACION_INFRAESTRUCTURA) AND (NODO.B_ENRU_GRABAR OR CEN_PRE_RUTA.B_ENRU_GRABAR OR &amp;quot;OBJETO&amp;quot;.B_ENRU_GRABAR)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Que sería que si la infraestructura esta en NoGraba no se graba nada de lo que se rute en ese nodo y en cualquiera de los 2 otros caso (GrabaTodo o GrabaPorPeticion) se grabaría dependiendo de la configuración del Nodo, la ruta o el objeto en cuestión (preruta, grupo ACD, extension,...).&lt;br /&gt;
&lt;br /&gt;
''''Grabar enrutamiento''''&lt;br /&gt;
&lt;br /&gt;
Se configura en el portal en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Este campo define si van a grabar las llamadas que se enruten en este nodo.&lt;br /&gt;
&lt;br /&gt;
Campo [[BD.COM_NODOS#E_ENRU_GRABAR|E_ENRU_GRABAR]] de la tabla [[BD.COM_NODOS|COM_NODOS]] que usa los valores del enumerado [[BD.ENUM.TTipoEnruGrabar|TTipoEnruGrabar]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''''RecordCentral''''&lt;br /&gt;
&lt;br /&gt;
Se configura en el portal en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Define que instancia del recordCentral es la encargada de tratar las grabaciones de este nodo.&lt;br /&gt;
&lt;br /&gt;
Para aumentar el rendimiento a la hora de traerse las grabaciones, se pueden definir varias instancias de proceso recordCentral, este campo define cual de estas instancias se encargara de este nodo.&lt;br /&gt;
&lt;br /&gt;
====Vivait Tracker====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL LA ÚNICA REFERENCIA A VIVAIT TRACKER EN LA DOCUMENTACIÓN &amp;quot;Vivait supervisor&amp;quot; QUE TENGO DICE LO SIGUIENTE. &amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Desde '''''VIVA'''''it Supervisor,  que es la aplicación dirigida a Supervisores, ofrece la posibilidad de supervisar y gestionar grupos ACD, agentes, asignaciones, prioridades,etc. Se puede obtener acceso directo a las aplicaciones de grabación ('''''VIVA'''''it tracker) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL FIN EXPLICACIÓN. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL De la documentacion creada por ivan. &amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Esquematico actual del proyecto tracker &lt;br /&gt;
[[Archivo:Esquematico_tracker_1.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1º El tracker web llama al web service Remote login para iniciar sesión y determinar si tiene permisos para la escucha y descarga de grabaciones.&lt;br /&gt;
&lt;br /&gt;
2º Si la ubicación de la grabación es local, mira la ruta de esta y se procede a la escucha o descarga de esta.&lt;br /&gt;
&lt;br /&gt;
3º Si la ubicación de la grabación es remota, entra en escena el proxy. Es el que realiza la petición.&lt;br /&gt;
&lt;br /&gt;
4º Si utilizamos el tracker windows, este, como el tracker web, llama primero al web service remote login para la autenticación y tema de Permisos.&lt;br /&gt;
&lt;br /&gt;
5º Para descargar o escuchar una grabación desde el tracker windows, se llama al web service servidor de grabaciones pasándole simplemente el ID de segmento.mp3. Este web service, con el ID de segmento, se encarga de determinar la ubicación de la grabación.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL De la documentación creada por ivan. &amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Esquematico actual del proyecto tracker &lt;br /&gt;
[[Archivo:Esquematico_tracker_2_https.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1º El tracker web llama al web service Remote login para iniciar sesión (comunicación https) y determinar si tiene permisos para la escucha y descarga de grabaciones. Se elimina el proxy&lt;br /&gt;
&lt;br /&gt;
2º Si la ubicación de la grabación es local, mira la ruta de esta y se procede a la escucha o descarga de esta.&lt;br /&gt;
&lt;br /&gt;
3º Si la ubicación de la grabación es remota, se realiza una petición al host remoto. El tipo de petición vendrá fijada por base de datos (http, https, ftp,ftps)&lt;br /&gt;
&lt;br /&gt;
4º Si utilizamos el tracker windows, este, como el tracker web, llama primero al web service remote login para la autenticación y tema de permisos (comunicación https extremo a extremo).&lt;br /&gt;
&lt;br /&gt;
5º Para descargar o escuchar una grabación desde el tracker windows, se llama al web service servidor de grabaciones pasándole simplemente el ID de segmento.mp3. Este web service, con el ID de segmento, se encarga de determinar la ubicación de la grabación.&lt;br /&gt;
&lt;br /&gt;
[[#Grabación_(Vivait_Tracker)| Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operación_plataforma_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
=== Enrutamiento ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Enrutamiento.png|885px |center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Enfoque inicial ====&lt;br /&gt;
&lt;br /&gt;
[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Enfoque_inicial Acceso]&lt;br /&gt;
&lt;br /&gt;
==== Funcionamiento ====&lt;br /&gt;
El proceso de enrutamiento, como vimos en el esquemático, se compone de dos fases:&lt;br /&gt;
&lt;br /&gt;
# Preenrutameinto, que se encarga de tratar todas las llamadas&lt;br /&gt;
# Enrutamiento externo, que tiene módulos dedicados al enrutamiento hacia:&lt;br /&gt;
:*Enlaces externos. &lt;br /&gt;
:*Extensiones. &lt;br /&gt;
:*Usuarios de telefonía corporativa. &lt;br /&gt;
:*Facilidades. &lt;br /&gt;
:*Salas de conferencia. &lt;br /&gt;
:*Agentes de grupos ACD. &lt;br /&gt;
:*Grupos ACD. &lt;br /&gt;
:*Vdn. &lt;br /&gt;
:*Buzones para dejar mensaje. &lt;br /&gt;
:*Buzones para su gestión.&lt;br /&gt;
&lt;br /&gt;
Se asume que existen rutas directas entre todos los nodos de la red.&lt;br /&gt;
&lt;br /&gt;
Se asume que están directamente enrutadas todas las direcciones IP involucradas, tanto nodos, como terminales.&lt;br /&gt;
&lt;br /&gt;
Se asume que todas las facilidades están disponibles en todos los nodos, aunque es posible que la implementación sea diferente entre ellos.&lt;br /&gt;
&lt;br /&gt;
Los datos de entrada básicos al proceso de enrutamiento (pdEntr) son:&lt;br /&gt;
* Dispositivo&lt;br /&gt;
* Cola&lt;br /&gt;
* Origen&lt;br /&gt;
* Nodo entrada&lt;br /&gt;
* UCID&lt;br /&gt;
* CALLER_ID_NAME&lt;br /&gt;
* CALLER_ID_NUM&lt;br /&gt;
* DNIS&lt;br /&gt;
* Desvío por dialplan&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A partir de los datos de entrada básicos anteriores se pueden deducir los siguientes valores:&lt;br /&gt;
* Sede del dispositivo de entrada&lt;br /&gt;
* Sede del nodo de entrada&lt;br /&gt;
* Ancho de banda disponible en la sede del dispositivo&lt;br /&gt;
* Ancho de banda disponible en la sede del nodo&lt;br /&gt;
* Categoría entrante&lt;br /&gt;
* Valor del eje1 asignado a la llamadas&lt;br /&gt;
* CALLER_ID_NUM_EXTERNO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los datos de salida globales del proceso de enrutamiento (pdSale) son:&lt;br /&gt;
* Categoría saliente&lt;br /&gt;
* Código de cliente (opcional)&lt;br /&gt;
* Tipo de destino:	&lt;br /&gt;
:* No existe&lt;br /&gt;
:* Ruta externa&lt;br /&gt;
:* Extensión&lt;br /&gt;
:* Usuario de telefonía corporativa&lt;br /&gt;
:* Facilidad&lt;br /&gt;
:* Salas de conferencia&lt;br /&gt;
:* Agentes de grupos ACD&lt;br /&gt;
:* Grupos ACD&lt;br /&gt;
:* VDN&lt;br /&gt;
:* Buzón para dejar mensaje. &lt;br /&gt;
:* Buzón para dejar mensaje por ocupado. &lt;br /&gt;
:* Buzón para dejar mensaje por no contestación. &lt;br /&gt;
:* Buzón para su gestión.&lt;br /&gt;
* Destinatario (cuando se trata de un usuario o de un agente)&lt;br /&gt;
* Valor del eje1 asignado a la llamada&lt;br /&gt;
* Buzón de las extensiones y usuarios que los tengan asignados&lt;br /&gt;
* Si el buzón está en nodo distinto al de entrada&lt;br /&gt;
* DESVIO_INCONDICIONAL (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable) &lt;br /&gt;
* DESVIO_NO_CONTESTA (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable) &lt;br /&gt;
* DESVIO_OCUPADO (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable) &lt;br /&gt;
* DESVIO_FUERA_SERV (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los datos de salida para cada una de las posibles rutas en orden son (nn va de 01 maxRutas [nn son dos dígitos decimales]):&lt;br /&gt;
* CONTADOR_ABDE_nn (contador para control de ancho de banda en sede de dispositivo de entrada).  &lt;br /&gt;
* CONTADOR_ABNE_nn (contador para control de ancho de banda en sede de nodo de entrada).  &lt;br /&gt;
* CONTADOR_ABDS_nn (contador para control de ancho de banda en sede de dispositivo de salida).  &lt;br /&gt;
* CONTADOR_ABNS_nn (contador para control de ancho de banda en sede de nodo de salida).  &lt;br /&gt;
* CALLER_NAME_SAL_nn , puede salir de una extensión, un usuario o de un agente. &lt;br /&gt;
* CALLER_NUM_SAL_nn, puede salir de una extensión, un usuario o de un agente.  &lt;br /&gt;
* DESTINO_SAL_nn , en general, el valor C_NOMBRE o destino de salida.  &lt;br /&gt;
* RUTA_NODO_nn , Cadena de marcación para ir la nodo que soporta DESTINO_SAL_nn, si es distinto del nodo de entrada.  &lt;br /&gt;
* RUTA_SAL_nn &lt;br /&gt;
:* Extensión: cadena marcación. &lt;br /&gt;
:* Facilidad: E_CODIGO_FACILIDAD obtenido de la tabla CEN_FACILIDADES. &lt;br /&gt;
:* Usuario: cadena marcación de la extensión asignada al usuario en movilidad o en propiedad. &lt;br /&gt;
:* Agente: cadena marcación de la extensión a la que está conectado el agente. &lt;br /&gt;
:* Ruta externa: contexto que gestiona la llamada saliente.&lt;br /&gt;
&lt;br /&gt;
=====Fase preenrutamiento =====&lt;br /&gt;
&lt;br /&gt;
La fase de preenrutamiento (basada en la tabla CEN_PRE_RUTA) se usa en todas las llamadas entrantes, tanto internas, como externas. Permite desarrollar un “prerouting” estándar para ACD y para telefonía corporativa.&lt;br /&gt;
&lt;br /&gt;
Los datos de entrada al proceso de enrutamiento son iguales a los del proceso global de enrutamiento, excepto en que este proceso no usa el nodo de entrada ya que es independiente de éste.&lt;br /&gt;
&lt;br /&gt;
Los datos de salida de la fase de preenrutamiento:&lt;br /&gt;
* D_CATEGORIA_SAL &lt;br /&gt;
* COD_CLIENTE (opcional) &lt;br /&gt;
* TIPO_DESTINO_SAL&lt;br /&gt;
:* No existe.   &lt;br /&gt;
:* Volver a preenrutar.   &lt;br /&gt;
:* Ruta externa.   &lt;br /&gt;
:* Extensión.   &lt;br /&gt;
:* Usuario de telefonía corporativa.   &lt;br /&gt;
:* Facilidad.   &lt;br /&gt;
:* Sala de conferencia.   &lt;br /&gt;
:* Agente de grupos ACD.   &lt;br /&gt;
:* Grupos ACD.   &lt;br /&gt;
:* VDN.   &lt;br /&gt;
:* Buzón para dejar mensaje.   &lt;br /&gt;
:* Buzón para dejar mensaje por ocupado.   &lt;br /&gt;
:* Buzón para dejar mensaje por no contestación.   &lt;br /&gt;
:* Buzón para su gestión. &lt;br /&gt;
* COD_CLIENTE &lt;br /&gt;
* Valor del eje1 asignado a la llamada &lt;br /&gt;
* CALLER_NAME &lt;br /&gt;
* CALLER_NUM &lt;br /&gt;
* DESTINO&lt;br /&gt;
&lt;br /&gt;
El proceso de preenrutamiento consiste en seleccionar un único registro de la tabla CEN_PRE_RUTA y, con sus valores y con los valores de entrada al proceso, generar los datos de salida.&lt;br /&gt;
&lt;br /&gt;
Un posible tipo de salida es &amp;quot;Volver a preenrutar&amp;quot;. Esto permite realimentar el proceso un máximo de &amp;quot;max_pre_ruta_regs&amp;quot; veces (en archivo .conf) para simplificar configuración. Sólo tiene sentido realimentar si se ha hecho alguna modificación en los datos de selección de registro, ya que en caso contrario se produciría un bucle que el proceso de preenrutamiento es capaz de detectar y evitar.&lt;br /&gt;
&lt;br /&gt;
Para elegir el registro de CEN_PRE_RUTA, se tienen en cuenta los datos de entrada de la llamada, de modo que se cumpla con todos los puntos siguientes: &lt;br /&gt;
* ID_CATEGORIA_ENT igual a la del dispositivo de entrada.  &lt;br /&gt;
* CALLER_NUM de entrada  &lt;br /&gt;
:* Debe comenzar por la cadena C_ORIGEN_ENT_PREF o C_ORIGEN_ENT_PREF=NULL, con menos prioridad. Es conveniente rellenar este dato del modo más restrictivo que sea posible, independientemente de C_ORIGEN_ENT_EXPR. Ello permite disminuir el uso innecesario de recursos de evaluación de expresiones regulares.    &lt;br /&gt;
:* Debe de tener un número de dígitos igual o superior a N_ORIGEN_ENT_MIN_DIGITOS, si este valor no es NULL o cero.    &lt;br /&gt;
:* Debe de tener un número de dígitos igual o inferior a N_ORIGEN_ENT_MAX_DIGITOS, si este valor no es NULL o cero.    &lt;br /&gt;
:* Debe cumplir la expresión regular C_ORIGEN_ENT_EXPR, si ésta no es NULL.  &lt;br /&gt;
* DNIS empiece con C_DESTINO_ENT_PREF o C_DESTINO_ENT_PREF=NULL. Es conveniente rellenar este dato del modo más restrictivo que sea posible, independientemente de C_DESTINO_ENT_EXPR. Ello permite disminuir el uso innecesario de recursos de evaluación de expresiones regulares.  &lt;br /&gt;
* Si varias entradas cumplen la condición anterior, se prueba primero la que el campo C_DESTINO_ENT_PREF tenga una longitud mayor y, de entre éstas, la que C_ORIGEN_ENT_PREF tenga una longitud mayor.  &lt;br /&gt;
* DNIS tenga un número de dígitos igual o superior a N_DESTINO_ENT_MIN_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* DNIS tenga un número de dígitos igual o inferior a N_ORIGEN_ENT_MIN_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* DNIS cumpla la expresión regular C_DESTINO_ENT_EXPR, si ésta no es NULL. &lt;br /&gt;
&lt;br /&gt;
Si no se encuentra ninguna entrada adecuada, quiere decir que es una llamada prohibida y se devuelve el tipo de destino &amp;quot;No existe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Puede conseguirse un destino &amp;quot;por defecto&amp;quot; diferente, creando una entrada que encaje siempre para cada categoría: C_ORIGEN_ENT, C_ORIGEN_ENT_MIN_DIGITOS, C_ORIGEN_ENT_MAX_DIGITOS, C_ORIGEN_ENT_EXPR, C_DESTINO_ENT_PREF, N_DESTINO_ENT_MIN_DIGITOS, N_DESTINO_ENT_MAX_DIGITOS y C_DESTINO_ENT_EXPR a valor NULL.&lt;br /&gt;
&lt;br /&gt;
Una vez elegida una entrada, ésta puede transformar o sustituir el valor de ID_CATEGORIA, CALLER_NAME, CALLER_NUM, DESTINO, COD_CLIENTE y/o EJE1_MSK a la salida del proceso. &lt;br /&gt;
&lt;br /&gt;
Si ID_CATEGORIA_SAL es cero, se propaga a la salida el valor de la entrada. En caso contrario, se sustituye. &lt;br /&gt;
&lt;br /&gt;
Si C_CALLER_NAME está vacío, se mantiene el valor hubiese a la entrada. En caso contrario, se sustituye. &lt;br /&gt;
&lt;br /&gt;
C_CALLER_NUM puede contener una cadena que identifica el nuevo CALLER_NUM. Además, si la cadena comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo CALLER_NUM es igual al de entrada al proceso. &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo CALLER_NUM es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo. &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;. &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al CALLER_NUM de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo CALLER_NUM de salida. Si la expresión regular no se cumpliese, se propagará el valor de entrada al proceso. &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante que sustituye el valor a la entrada.&lt;br /&gt;
&lt;br /&gt;
Cada vez que se utilice una preruta, se incrementará el valor de N_CONTA si el valor de N_UMBRAL es mayor que cero.&lt;br /&gt;
&lt;br /&gt;
Un valor N_UMBRAL mayor que cero permite modificar el destino de salida cuando el valor de actual de N_CONTA (antes de incrementarse) supere o sea igual el valor de N_UMBRAL. Si se cumple la condición indicada, se usa como destino tras el preenrutamiento, los valores de los campos E_TIPO_DESTINO_SAL_2 y C_DESTINO_SAL_2.&lt;br /&gt;
&lt;br /&gt;
Si el valor de N_UMBRAL es menor o igual a cero o si N_CONTA es inferior a N_UMBRAL, se usa como destino tras el preenrutamiento, los valores de los campos E_TIPO_DESTINO_SAL_1 y C_DESTINO_SAL_1.&lt;br /&gt;
Con este mecanismo de N_CONTA y N_UMBRAL, se pretende facilitar el discriminar a los llamantes reincidentes, cuando sea necesario. &lt;br /&gt;
&lt;br /&gt;
Un proceso periódico externo debe encargarse de poner a cero o decrementar el valor de N_CONTA.&lt;br /&gt;
Como resultado de los procesos de filtrado y de verificación anteriores, se habrá obtenido un TIPO_DESTINO_SAL y un C_DESTINO_SAL a partir de los campos con sufijo &amp;quot;_1&amp;quot; o &amp;quot;_2&amp;quot;, con una metodología similar al caso C_CALLER_NUM.&lt;br /&gt;
&lt;br /&gt;
C_DESTINO_SAL_x puede contener cadena que permite obtener el nuevo destino. Además, si la cadena comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo destino es igual al de entrada al proceso.  &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo destino es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo.  &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;.  &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al destino de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo destino de salida. Si la expresión regular no se cumpliese, quiere decir que es una llamada prohibida y se encaminará hacia una facilidad por defecto.  &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante que sustituye el valor a la entrada. &lt;br /&gt;
Información de salida del proceso de preenrutamiento: Cuando TIPO_DESTINO_SAL_x toma los valores que se indican, el proceso global de enrutamiento sólo requiere de preenrutamiento y la información a devolver se obtiene dependiendo de TIPO_DESTINO_SAL_x: &lt;br /&gt;
* No existe: Se asume que no se conoce un destino para los datos de entrada, por lo que la llamada se encamina hacia una facilidad por defecto que gestiona su tratamiento.  &lt;br /&gt;
* Extensión: A partir de las tablas CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar la extensión en el nodo principal y en el secundario.  &lt;br /&gt;
* Facilidad: A partir de las tablas CEN_DISPOSITIVOS, CEN_FACILIDADES y CEN_NODOS.  &lt;br /&gt;
* Usuario de telefonía corporativa: A partir de las tablas CEN_USUARIOS, CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar al usuario en el nodo principal y en el secundario de la extensión que corresponde en base a movilidad, con prioridad, o en base a propiedad.  El caso de movilidad no se tiene en cuenta si el proceso de enrutamiento se realiza en &amp;quot;modo supervivencia&amp;quot;.  &lt;br /&gt;
* Sala conferencia: A partir de las tablas CEN_SALAS_CONFERENCIAS y CEN_NODOS.  &lt;br /&gt;
* Agente de ACD: A partir de las tablas ACD_USUARIOS, DAT_TR_ACD_EXTENSIONES, CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar al agente en el nodo principal y en el secundario.  &lt;br /&gt;
* VDN: A partir de las tablas ACD_VDN y CEN_NODOS, se devolverán los valores que permiten alcanzar al VDN en su nodo.  &lt;br /&gt;
* Grupo ACD: A partir de las tablas ACD_COLAS y CEN_NODOS, se devolverán los valores que permiten alcanzar al grupo ACD en su nodo. &lt;br /&gt;
&lt;br /&gt;
El campo B_GENERAR_SEGMENTO de la tabla CEN_PRE_RUTA indica al proceso de preenrutamiento que es preciso generar un segmento de tipo &amp;quot;preenrutamiento&amp;quot;. En el segmento generado, se rellena el campo C_ETIQUETA1 del nuevo segmento con el valor que contiene el campo homónimo del registro asociado en la tabla CEN_LISTA_PRE_RUTAS.&lt;br /&gt;
&lt;br /&gt;
===== Fase de enrutamiento en casos en que el destino no es externo =====&lt;br /&gt;
Datos de entrada al proceso de enrutamiento externo: iguales a los de salida del proceso de preenrutamiento (pdPreSale), uniéndose a éstos los datos globales de entrada al proceso (pdEntr). &lt;br /&gt;
&lt;br /&gt;
Datos de salida de la fase de enrutamiento: iguales que los del proceso global de enrutamiento (pdSale). &lt;br /&gt;
&lt;br /&gt;
Específicamente y sólo para los casos en que el destino es una extensión (tipo de destino extensión, usuario de telefonía corporativa o agente) es cuando son válidos los datos correspondientes al buzón asociado y los datos de los posibles desvíos previstos. &lt;br /&gt;
&lt;br /&gt;
También en este caso, se prevén dos posibles rutas, una se corresponde con el acceso a la extensión en el nodo principal de ésta y la otra en el nodo secundario. &lt;br /&gt;
&lt;br /&gt;
En el resto de tipos de destino, sólo se prevé una ruta que puede incluir o no un enlace internodal. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Fase de enrutamiento en el caso de destino externo =====&lt;br /&gt;
Datos de entrada al proceso de enrutamiento externo: iguales a los de salida del proceso de preenrutamiento (pdPreSale), uniéndose a éstos los datos globales de entrada al proceso (pdEntr). &lt;br /&gt;
Datos de salida de la fase de enrutamiento: iguales que los del proceso global de enrutamiento (pdSale). &lt;br /&gt;
&lt;br /&gt;
Se elige los primeros &amp;quot;max_ruta&amp;quot; registros (configurado en archivo .conf) en CEN_DESTINOS_EXTERNOS unido con CEN_RELACION_DESTINOS_ENLACES_EXTERNOS que, teniendo en cuenta los datos de entrada al proceso de enrutamiento, cumpla con todos los puntos siguientes: &lt;br /&gt;
* ID_CATEGORIA_ENT igual a la de salida del proceso de preenrutamiento.  &lt;br /&gt;
* C_DESTINO_SAL de proceso de preenrutamiento empiece con C_DESTINO_ENT_PREF. &lt;br /&gt;
* Si varias entradas cumplen la condicion anterior, se prueba primero la que el campo C_DESTINO_ENT_PREF tenga una longitud mayor.  &lt;br /&gt;
* C_DESTINO_SAL tenga un número de dígitos igual o superior a N_DESTINO_ENT_MIN_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* C_DESTINO_SAL tenga un número de dígitos igual o inferior a N_DESTINO_ENT_MAX_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* C_DESTINO_SAL cumpla la expresión regular C_DESTINO_ENT_EXPR, si ésta no es NULL. &lt;br /&gt;
&lt;br /&gt;
Aparte de la longitud del campo C_DESTINO_ENT_PREF, se usa N_PRIORIDAD como campo para ordenar los registros y seleccionar lo &amp;quot;max_ruta&amp;quot; primeros. &lt;br /&gt;
&lt;br /&gt;
Una vez que un registro es válido, se descartan todos los registros cuyo C_DESTINO_ENT_PREF es diferente del primero seleccionado. &lt;br /&gt;
&lt;br /&gt;
Como resultado de los procesos de filtrado y de verificación anteriores, se habrá obtenido hasta un máximo de &amp;quot;max_rutas&amp;quot; valores para posibles rutas. Las posibles propagaciones y transformaciones en los datos de cada ruta son función de los datos de cada registro seleccionado: &lt;br /&gt;
&lt;br /&gt;
CALLER_NAME_nn: Si C_CALLER_NAME está vacío, se propaga el valor de entrada. En caso contrario, se sustituye. &lt;br /&gt;
&lt;br /&gt;
CALLER_NUM_nn: Sale de C_CALLER_NUM que puede contener una cadena que identifica el nuevo CALLER_NUM_n. Además, si C_CALLER_NUM comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo CALLER_NUM_nn es igual al de entrada al proceso.  &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo CALLER_NUM_nn es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo.  &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;.  &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al CALLER_NUM de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo CALLER_NUM de salida. Si la expresión regular no se cumpliese, se propaga el valor de entrada al proceso.  &lt;br /&gt;
* &amp;quot;&amp;gt;&amp;quot; Si existe valor para CALLER_NUM_EXTERNO, se propagará éste a la salida. En caso contrario y si no está vacía la cadena que queda al eliminar el prefijo &amp;quot;&amp;gt;&amp;quot;, se susituye en la salida por el valor de la cadena sin prefijo. Si la cadena estuviese únicamente constituida por el valor &amp;quot;&amp;gt;&amp;quot;, se propaga el valor de entrada.  &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante sin ninguna modificación. &lt;br /&gt;
&lt;br /&gt;
C_DESTINO_SAL_nn: Se obtiene a partir de C_DESTINO_SAL que puede contener una cadena que identifica el nuevo destino. Además, si la cadena comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo destino es igual al de entrada al proceso. &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo destino es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo. &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;. &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al destino de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo destino de salida. Si la expresión regular no se cumpliese, se propaga el valor de entrada al proceso. &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante sin ninguna modificación. &lt;br /&gt;
&lt;br /&gt;
RUTA_NODO_nn: Sólo se usa si el nodo de salida es diferente del nodo de entrada. Contiene la cadena de marcación para ir la nodo que soporta DESTINO_SAL_nn. Sale del campo C_FORMATO_DIAL (sustituyendo variables) correspondiente al tipo de dispositivo del enlace exterior. &lt;br /&gt;
&lt;br /&gt;
RUTA_SAL_nn: Es el campo C_DATO_ASTERISK obtenido a partir del registro en la tabla CEN_ENLACE_EXTERIOR que se corresponde con ID_ENLACE_EXTERIOR de la tabla CEN_RELACION_DESTINOS_ENLACES_EXTERNOS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Control de ancho de banda ===&lt;br /&gt;
&lt;br /&gt;
Para el control de ancho de banda, primero hemos de tener en consideración que una llamada puede tener asociadas hasta cuatro sedes&lt;br /&gt;
:* Sede del terminal origen (terminal A)&lt;br /&gt;
:* Sede del nodo de registro del terminal origen (nodo A)&lt;br /&gt;
:* Sede del terminal destino (terminal B)&lt;br /&gt;
:* Sede del nodo de registro del terminal destino (nodo B)&lt;br /&gt;
&lt;br /&gt;
Además hemos de tener en cuenta que el audio de la conversación podrá ir:&lt;br /&gt;
:* De manera directa entre terminal A y terminal B&lt;br /&gt;
:* De manera indirecta, a través de los nodos A y B&lt;br /&gt;
&lt;br /&gt;
[[Archivo:ancho de banda.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Cuando se va a cursar una llamada de terminal A a terminal B, el proceso de enrutamiento del nodo A devuelve 4 variables de canal al dialplan:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! Variable!!Campos &lt;br /&gt;
|- &lt;br /&gt;
|R_ABDE_xx||R = Variable de rutas --- AB = ancho de banda --- D = dispositivo --- E = Entrante --- xx = de 0 a 3&lt;br /&gt;
|-&lt;br /&gt;
|R_ABNE_xx||R = Variable de rutas --- AB = ancho de banda --- N = nodo --- E = Entrante --- xx = de 0 a 3&lt;br /&gt;
|-&lt;br /&gt;
|R_ABDS_xx||R = Variable de rutas --- AB = ancho de banda --- D = dispositivo --- S = Saliente --- xx = de 0 a 3&lt;br /&gt;
|- &lt;br /&gt;
|R_ABNS_xx||R = Variable de rutas --- AB = ancho de banda --- N = nodo --- S = Saliente --- xx = de 0 a 3&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El valor de cada variable es una cadena del tipo '''AB.wwww.xxxx.y.z''' donde cada valor es:&lt;br /&gt;
:* '''wwww''' --&amp;gt; id de sede&lt;br /&gt;
:* '''xxxx''' --&amp;gt; ancho de banda total de la sede&lt;br /&gt;
:* '''y''' --&amp;gt; número de llamadas a sumar si conversación directa&lt;br /&gt;
:* '''z''' --&amp;gt; número de llamadas a sumar si conversación indirecta&lt;br /&gt;
&lt;br /&gt;
Por otro lado tenemos que tener en cuenta que el dialplan tiene control de las llamadas que cada sede puede cursar&lt;br /&gt;
&lt;br /&gt;
De esta forma, cuando existe una nueva llamada el dialplan aplica la fórmula, suma el resultado al número de llamadas en curso y lo compara con el máximo...si el resultado es mayor que le máximo la llamada no se cursará por congestión&lt;br /&gt;
&lt;br /&gt;
Configuraremos el ancho de banda por sede en el portal de administración y el consumo que hace cada llamada en la variable '''AB_CONSUMO_LLAMADA''' del fichero '''ext_MDtel_particular.conf''' de cada nodo de conmutación; el valor por defecto es 32&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Puesto de trabajo ==&lt;br /&gt;
El puesto de trabajo del agente en la plataforma '''''VIVA'''''it  (para el producto '''''VIVA'''''it Suite) estará compuesto por:&lt;br /&gt;
* PC (típicamente windows) en el que reside la aplicación '''''VIVA'''''it Desk&lt;br /&gt;
* Terminal telefónico con extensión física asociada.&lt;br /&gt;
&lt;br /&gt;
Para más información [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Puestos | ver sección Portal de administración-VIVAit Suite ACD+ - Puestos]].&lt;br /&gt;
&lt;br /&gt;
=== Relación PC/teléfono en puesto de trabajo ===&lt;br /&gt;
&lt;br /&gt;
Existirá una relación única entre nombre PC y extensión física asociada, si bien los agentes se identificarán por su login que les acompaña al puesto de trabajo en el que se loguen&lt;br /&gt;
Existe un procedimiento documentado para la operativa de cambio de puesto de trabajo, en caso de ser necesario el cambio de PC o de teléfono de un puesto de trabajo.&lt;br /&gt;
==== Procedimiento para un cambio de puesto de trabajo ====&lt;br /&gt;
Se basa en una asignación de PC a teléfono relaccionando la extensión telefónica del terminal físico con el nombre del puesto de trabajo. La configuración de dicha asociación se realiza en el portal de administración de la plataforma. &lt;br /&gt;
&lt;br /&gt;
Cualquier cambio que se realice en terminal telefónico o PC de agente ha de mantener la asociación en el portal a efectos de permitir el funcionamiento del sistema.&lt;br /&gt;
&lt;br /&gt;
A continuación se reflejan los cambios más habituales:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cambio !! Procedimiento !! Punto de acción&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| Cambio de ubicación de un PC || Opción 1.- Renombrar el PC para que conserve el nombre que tenía el anterior en esa ubicación || PC de agente&lt;br /&gt;
|-&lt;br /&gt;
|  Opción 2.- Rehacer la asignación extensión/puesto || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot;| Instalación de PC nuevo en puesto existente || Opción 1.- Renombrar el PC para que conserve el nombre que tenía el anterior en esa ubicación || PC de agente&lt;br /&gt;
|-&lt;br /&gt;
| Opción 2.- Rehacer la asignación extensión/puesto || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| Cambio de nombre en un PC || Rehacer asignación extensión/puesto || Rehacer asignación extensión/puesto&lt;br /&gt;
|-&lt;br /&gt;
|Cambio de ubicación de un teléfono  || Rehacer la asignación extensión/puesto&lt;br /&gt;
 || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| Instalación de un teléfono nuevo en puesto existente || Rehacer la asignación extensión/puesto || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| Instalación de un nuevo puesto de agente|| Hacer asignación extensión/puesto || Portal de administración&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:relacion_puesto_agente.png|center|500px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Estructura de aplicaciones en puesto de trabajo ===&lt;br /&gt;
Las aplicaciones del puesto de trabajo pueden estar ubicadas en cualquier carpeta del sistema. Es importante tener en cuenta que los procesos de actualización, logs… escriben en dichas carpetas, por lo que el usuario de windows deberá tener permisos de lectura/escritura y borrado sobre dichas carpetas&lt;br /&gt;
La instalación del puesto de trabajo es muy liviana para el sistema; las aplicaciones ocupan poco espacio y no se modifican ficheros del sistema operativo (registry o similares)&lt;br /&gt;
Los ficheros importantes son&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Fichero !! Descrición&lt;br /&gt;
|-&lt;br /&gt;
| Vivait-desk.exe || Contiene la aplicación '''''VIVA'''''it Desk de agente&lt;br /&gt;
|-&lt;br /&gt;
| vivait_desk_dll.dll||Este fichero contiene controles sobre los formularios (controles de&lt;br /&gt;
texto, algunas reglas de obligatoriedad…)&lt;br /&gt;
|-&lt;br /&gt;
| nimitz.ini || Configuración del puesto de agente&lt;br /&gt;
|-&lt;br /&gt;
| lanzador.exe || Aplicación de actualización de versiones&lt;br /&gt;
|-&lt;br /&gt;
| lanzador.ini || Configuración del actualizador de aplicaciones&lt;br /&gt;
|-&lt;br /&gt;
| Carpeta forms || En esta carpeta están ubicados los formularios que se abren ante llamada entrante o saliente&lt;br /&gt;
|-&lt;br /&gt;
| Carpeta imágenes || Contiene las imágenes izquierda y derecha de la barra de '''''VIVA'''''it Desk&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Secciones de utilidad en nimitz.ini ===&lt;br /&gt;
&lt;br /&gt;
==== Configuración del puesto de agente ====&lt;br /&gt;
&lt;br /&gt;
El fichero nimitz.ini contiene la configuración del puesto de agente; sus principales parámetros son:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| |''' Fichero'''&lt;br /&gt;
|| '''Descripción'''&lt;br /&gt;
|-&lt;br /&gt;
|Sección [bd1]&lt;br /&gt;
||host=&amp;quot;ip_BBDD_tiempo_real&amp;quot;&lt;br /&gt;
puerto=&amp;quot;Nº puerto&amp;quot;&lt;br /&gt;
basedatos=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
usuario=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
clave=&amp;quot;UIk5jMY9PVX6ogg=&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Contiene información para la conexión a BBDD de tiempo real, en la que '''''VIVA'''''it Desk fundamentalmente inserta información&lt;br /&gt;
|-&lt;br /&gt;
|Sección [bd2]&lt;br /&gt;
||host=&amp;quot; ip_BBDD_replica &amp;quot;&lt;br /&gt;
puerto=&amp;quot;Nº puerto&amp;quot;&lt;br /&gt;
basedatos=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
usuario=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
clave=&amp;quot;UIk5jMY9PVX6ogg=&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Contiene información para la conexión a BBDD de réplica, en la que '''''VIVA'''''it Desk solo leerá información&lt;br /&gt;
|-&lt;br /&gt;
|Sección [telefono]&lt;br /&gt;
||pruebas=1 (Valores válidos 0 ó 1)&lt;br /&gt;
Activación de funcionalidad &amp;quot;servicio técnico&amp;quot; en '''''VIVA'''''it Desk.&lt;br /&gt;
&lt;br /&gt;
puesto=&amp;quot;Nombre puesto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Sección [trazas]&lt;br /&gt;
|| nivel=3&lt;br /&gt;
&lt;br /&gt;
archivo=1&lt;br /&gt;
&lt;br /&gt;
consola=0&lt;br /&gt;
&lt;br /&gt;
sobreescribir=1&lt;br /&gt;
&lt;br /&gt;
Activación de generación de ficheros de trazas &amp;quot;viva-desk.log&amp;quot; en carpeta de aplicaciones &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Parámetros en invocación a '''''VIVA'''''it Desk ===&lt;br /&gt;
&lt;br /&gt;
La aplicación '''''VIVA'''''it Desk puede ser invocada con una serie de parámetros que condicionan su funcionamiento; los parámetros son:&lt;br /&gt;
* Primer parámetro: Nombre del archivo .ini; usado como alternativa al fichero por defecto &amp;quot;nimitz.ini&amp;quot;&lt;br /&gt;
* Segundo parámetro: Nombre de puesto; usado como alternativa al nombre de puesto del ordenador&lt;br /&gt;
* Tercer parámetro: Nombre de login; para forzar un usuario; es de utilidad si el sistema está configurado como &amp;quot;confiar en sistema operativo&amp;quot;, en cuyo caso no permite seleccionar un login de agente para acceder a la aplicación&lt;br /&gt;
&lt;br /&gt;
=== Instalación y actualización de aplicaciones de puestos de trabajo ===&lt;br /&gt;
La instalación y actualización de las aplicaciones en el puesto de trabajo pasan por disponer de los ficheros “lanzador.exe” y “lanzador.ini” (debidamente configurado) dentro de la carpeta en la que se desee instalar.&lt;br /&gt;
Lanzando la aplicación “lanzador.exe” se instalará o actualizará el sistema. &lt;br /&gt;
&lt;br /&gt;
El fichero “lanzador.ini” tiene el siguiente aspecto:&lt;br /&gt;
 URL=&amp;quot;http://IP_Servidor:8180/WSActualizaXML/actualizar.xml&amp;quot;&lt;br /&gt;
 BASE_URL_DESCARGAS=&amp;quot;http://IP_servidor:8180/XMLFILES/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Servicio técnico en '''''VIVA'''''it Desk ===&lt;br /&gt;
La activación de la funcionalidad de servicio técnico en '''''VIVA'''''it Desk nos permite realizar sincronizaciones manuales de la aplicación y activar trazas a nivel de Base de Datos o a nivel de log sobre el propio '''''VIVA'''''it Desk. Pulsando el botón derecho del ratón sobre la barra '''''VIVA'''''it Desk accederemos a las capacidades de soporte técnico&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Funcionamiento de la plataforma en modo emergencia ==&lt;br /&gt;
== Accesos Web ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Aplicación !! Enlace&lt;br /&gt;
|-&lt;br /&gt;
|Portal de administración '''''VIVA'''''it Suite || http://ip_admin:8180/Vivait-Call&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker||http://ip_tracker:8180/Vivait-Tracker&lt;br /&gt;
|-&lt;br /&gt;
|Monitor Web||http://ip_monitor:8180/MonitorWeb&lt;br /&gt;
|-&lt;br /&gt;
|Monitorización Zabbix||http://ip_zabbix:80/zabbix&lt;br /&gt;
|-&lt;br /&gt;
|Base de datos tiempo real||http://ip_bbdd_tr:80/phpmyadmin/&lt;br /&gt;
|-&lt;br /&gt;
|Base de datos réplica||http://ip_bbdd_replica:80/phpmyadmin&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Permisos de aplicaciones ===&lt;br /&gt;
Se crean a través del '''portal de administración ''VIVA''it''' . Debe conocerse como funcionan los ejes [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Ejes| ver sección Portal de administracion - General - Ejes]] y que existen cuatro aplicaciones creadas en la plataforma:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:17_2 Pestaña Genera - Usuarios - Explicacion permisos.png|center]]&lt;br /&gt;
&lt;br /&gt;
La forma como dar permisos de aplicaciones a un usuario esta explicada en la [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Asignaci.C3.B3n_de_Permisos_de_Usuario_por_Administrador | sección  Portal de administracion - General - Usuarios ]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elementos monitorizados del sistema ==&lt;br /&gt;
===Generalidades de Zabbix===&lt;br /&gt;
====Zabbix ====&lt;br /&gt;
Zabbix es una solución de código abierto que ofrece características de monitorización avanzada de forma tecnica y para el negocio, para todo tipo de servidores, aplicaciones y equipos que forman parte de una red. La versión que utilizamos en '''md'''tel es Zabbix 2.2.2.&lt;br /&gt;
&lt;br /&gt;
Zabbix  monitoriza los  recursos  de un equipo en forma remota, permite centralizar la información en un servidor que permite visualizar el monitoreo, cuenta con una interfaz de administración vía web y utiliza un mecanismo flexible de la notificación que permita que los usuarios configuren las alarmas basadas email para informar virtualmente cualquier acontecimiento. Esto permite una reacción rápida a los problemas del servidor. &lt;br /&gt;
&lt;br /&gt;
Para acceder al servidor Zabbix abrimos el navegador y ponemos la dirección de red (IP) de la maquina donde se encuentra instalado el servidor de Zabbix seguido de &amp;quot;/Zabbix.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Direccion.IP.Zabbix.Server/zabbix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Zabbix posee documentación tanto en wiki, foros y comunidades.Para ampliar la información se puede visitar:&lt;br /&gt;
[[http://www.zabbix.com Sitio oficial de Zabbix]]&lt;br /&gt;
===== Glosario Zabbix =====&lt;br /&gt;
Se trata de una lista de conceptos básicos de Zabbix, pero para ampliar la información sobre otros términos, visite el [[http://www.zabbix.com Sitio oficial de Zabbix]].&lt;br /&gt;
* '''host''' &lt;br /&gt;
:En Zabbix, un host es una entidad que define el elemento en red que se desea monitorizar/supervisar activamente sus recursos locales y aplicaciones. Este puede ser una impresa, router, switch, sensores de temperatura, un servidor, un ordenador,etc, o también una aplicación. La característica de un host es que debe poseer una dirección de red (IP).&lt;br /&gt;
&lt;br /&gt;
* '''host group'''&lt;br /&gt;
:En Zabbix, un host group (grupo host) es una agrupación lógica de los host, como una forma de organizar los dispositivos &amp;quot;Host&amp;quot; registrados en Zabbix para su monitorización. Puede contener hosts y templates.  Los grupos host se utilizan en la asignación de derechos de acceso a los hosts para diferentes grupos de usuarios.&lt;br /&gt;
&lt;br /&gt;
* '''item'''&lt;br /&gt;
:En Zabbix, un item (medida) es el parámetro que deseamos obtener del host, básicamente es una medida especifica que el servidor Zabbix recogerá de los agentes de Zabbix instalados en los host.&lt;br /&gt;
&lt;br /&gt;
* '''trigger'''&lt;br /&gt;
:En Zabbix, un trigger(disparador) es una entidad que define un umbral para detectar la existencia de un problema en un dispositivo.  Son valores recolectados por los &amp;quot;items&amp;quot;, se usa para &amp;quot;evaluar&amp;quot; los datos recibidos con condiciones definidas. Las condiciones son de tipo aritmético y lógico.&lt;br /&gt;
* '''event'''&lt;br /&gt;
:En Zabbix, un event (evento) es la aparición de un suceso en Zabbix que necesita atención. Por ejemplo, el cambio de estado a raíz de un trigger, el descubrimiento de un nuevo agente (autoregistro),etc.&lt;br /&gt;
* '''action'''&lt;br /&gt;
:En Zabbix, una action(acción) son reglas predefinidas para reaccionar a un evento disparado por los triggers, es decir, define qué hacer ante un evento. Consta de operaciones (por ejemplo, una notificacion, comandos remotos) y condiciones (cuando  la operación se lleva a cabo).&lt;br /&gt;
* '''notification'''&lt;br /&gt;
:En Zabbix, una notification (notificacion) es la entidad con que Zabbix nos puede notificar (Correo Electrónico,mensajes vía &amp;quot;SMS&amp;quot; o Jabber).&lt;br /&gt;
* '''template'''&lt;br /&gt;
:En Zabbix, un témplate (plantilla) viene predefinida en la instalación de Zabbix Server, con el fin de ser aplicada en base al tipo de sistema operativo(Linux, Mac, Window, etc) o en elementos que comparten los mismos parámetros de medición, por ejemplo la carga del procesador, uso de memoria y  uso de recursos de red. Las plantillas son un conjunto de módulos &amp;quot;ITEM, TRIGGERS y GRÁFICAS&amp;quot;, que están preconfigurados y listas para ser aplicadas a uno o varios hosts.&lt;br /&gt;
* '''application'''&lt;br /&gt;
:En Zabbix, una application (aplicación) es una agrupación lógica de los items.&lt;br /&gt;
* '''Zabbix server'''&lt;br /&gt;
:El Zabbix server (servidor de Zabbix) es el proceso central donde están definidas las configuraciones y donde se almacenan todos los datos y estadísticas recogidas de los agentes Zabbix.Consta de una base de datos, una interfaz web y el propio server. Como servidor, se encarga de recoger los datos de los agentes, calcular los triggers, enviar notificaciones, etc. &lt;br /&gt;
* '''Zabbix agent'''&lt;br /&gt;
:El zabbix agent (agente de Zabbix)  es un proceso desplegado en los host que son supervisados, que funciona como un servicio y puede funcionar de forma activa y pasiva simultáneamente.&lt;br /&gt;
&lt;br /&gt;
=====Discovery=====&lt;br /&gt;
La funcionalidad discovery(detección) lista los dispositivos que se integran en nuestra red y el tipo de servicios que proporciona. Por ejemplo, si la empresa tuviera cien colas ACDs, y veinticinco VDNS, y en cada cola como veinte medidas, seria muy laborioso registrar una por uno cada uno.  &lt;br /&gt;
Gracias a esta funcionalidad, se descubre todas las interfaces de red que se tiene, automáticamente y tanto para colas nodos o IVR. Para utilizar esta funcionalidad , se hace el uso de dos script, que se instalan en el momento de instalación de Zabbix en el directorio &amp;quot;/usr/local/sbin&amp;quot;, que son:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
'''zabbixDiscoveryQueues.pl''' : script utilizado para buscar colas ACD.&lt;br /&gt;
&lt;br /&gt;
'''zabbixDiscoveryVDN.pl''' : script utilizado para buscar VDNS.&lt;br /&gt;
|}&lt;br /&gt;
La explicación de como configurarla se encuentra en el manual oficial [[https://www.zabbix.com/documentation/2.2/manual/discovery/network_discovery/rule | Zabbix detección de redes]].&lt;br /&gt;
&lt;br /&gt;
=====Notificaciones=====&lt;br /&gt;
&lt;br /&gt;
Necesariamente, debe darse de alta al usuario y darse de alta el servidor de correo electrónico para poder ser capaz de enviar correos.&lt;br /&gt;
&lt;br /&gt;
Por otro lado, el formato del correo electrónico y las condiciones de envío de correo al usuario se configura en las acciones. Véase  el [[https://www.zabbix.com/documentation/2.2/manual/quickstart/notification  | manual oficial de Zabbix 2.2]]&lt;br /&gt;
&lt;br /&gt;
=====Usuarios=====&lt;br /&gt;
Zabbix permite la organización de usuarios en grupos para establecer los permisos adecuados de acuerdo al tipo de perfil que deseemos crear. Necesariamente un usuario debe permanecer a un grupo o varios grupos.Todos los usuarios acceden a la aplicación de Zabbix a través de la interfaz Web. &lt;br /&gt;
&lt;br /&gt;
Cada usuario Zabbix se le asigna un nombre de usuario único , una contraseña y podemos indicarle que tipo de comunicación que posee, normalmente es vía email, pero puede ser vía a otro tipo de medios. Para mas información ver el [[https://www.zabbix.com/documentation/2.2/manual/web_interface/user_profile || manual oficial ]].&lt;br /&gt;
 &lt;br /&gt;
=====Visualización=====&lt;br /&gt;
Con Zabbix es posible visualizar los datos como  gráficos, pantallas, mapas y hasta presentaciones cambiantes, entre otros. En este apartado solo nombraremos características esenciales que se tendra que completar con el [[https://www.zabbix.com/documentation/2.2/manual/config/visualisation | manual oficial]]&lt;br /&gt;
======Graphs======&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''Nota:''' Debe crearse algun item dentro del host para poder utilizar una gráfica.&lt;br /&gt;
|}&lt;br /&gt;
En Zabbix una gráfica sirve para representar gráficamente los resultados obtenidos de uno item o varios items.&lt;br /&gt;
[[File:EjemploGrafica.png|center|750px]]&lt;br /&gt;
Los valores min / avg / max que Zabbix obtiene y representa son de un registro de datos de la tabla tendencias.&lt;br /&gt;
&lt;br /&gt;
======Screens======&lt;br /&gt;
La pantalla refiere a otra característica adaptable de ZABBIX cuál permite que los usuarios creen las pantallas personalizadas dentro de ZABBIX para exhibir la información. Se considera como una colección de gráficas y no depende del host. Una pantalla puede consistir en gráficos simples, gráficos personalizados, integrar mapas, Alertas, gráficos estadísticos o texto llano tal como los 5 valores pasados de un item particular entre otros; y mostrar la información de forma dinámica.&lt;br /&gt;
&lt;br /&gt;
[[File:EjemploScreen.png|center|750px]]&lt;br /&gt;
&lt;br /&gt;
======Maps======&lt;br /&gt;
En Zabbix, un map (mapa) es una representación gráfica de la situacion de nuestros dispositivos en red. Es un escenario que muestra nuestra red, aplicaciones y servicios a través de figuras o iconos.  Dichas figuras toman vida en respuesta a los eventos que se dan en nuestro entorno.&lt;br /&gt;
[[File:EjemploMaps.png|center|750px]]&lt;br /&gt;
[[File:EstadosMaps.png|center|750px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======Monitorizar el estado de los raid======&lt;br /&gt;
Los siguientes comandos son necesarios para poder monitorizar el estado de los raid.&lt;br /&gt;
La orden:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;hpacucli &amp;quot;ctrl slot=1 logicaldrive 1 show status&amp;quot;&lt;br /&gt;
&lt;br /&gt;
nos proporciona el estado de un raid (p.e. logicaldrive 1 (931.5 GB, 1): Interim Recovery Mode).&lt;br /&gt;
&lt;br /&gt;
La orden:&lt;br /&gt;
 &amp;gt;hpacucli &amp;quot;ctrl slot=1 logicaldrive all show status&amp;quot;&lt;br /&gt;
&lt;br /&gt;
nos proporciona el estado de todos los raid.&lt;br /&gt;
&lt;br /&gt;
p.e.:&lt;br /&gt;
logicaldrive 1 (931.5 GB, 1): Interim Recovery Mode&lt;br /&gt;
&lt;br /&gt;
logicaldrive 2 (1.8 TB, 1): OK.&lt;br /&gt;
&lt;br /&gt;
Para conseguir información genérica el comando&lt;br /&gt;
 &lt;br /&gt;
 ctrl all show config detail&lt;br /&gt;
&lt;br /&gt;
nos muestra mucha información y podemos saber el modelo de disco físico que lleva instalado para poder comprar el modelo antes de &amp;quot;operar&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Zabbix en '''MD'''tel===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Configuraciones de Zabbix ====&lt;br /&gt;
&lt;br /&gt;
===== Agentes Zabbix =====&lt;br /&gt;
{|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 '''Nota:''' Hay que instalar un agente Zabbix en cada maquina que se quiera monitorizar.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El agente de Zabbix puede recoger datos: &lt;br /&gt;
*'''De forma pasiva:''' el server contacta al agente pidiéndole un dato (por ejemplo el consumo de CPU en ese instante) y el agente responde al server con ese dato. A esta acción del agente le llamaremos '''Agente activo'''.&lt;br /&gt;
*'''De forma activa:''' en un primer momento, el server le enviará al agente el listado de items a monitorizar. A partir de ese momento, será el agente que de forma periódica recogerá datos sobre esos ítems y se los hará llegar al server. A esta acción del agente le llamaremos ''''''Agente pasivo''''''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== Configurar agente de forma pasiva======&lt;br /&gt;
Para configurar el agente de Zabbix necesitamos acceder a la maquina que actuará como agente, y en el directorio /etc/zabbix modificar el fichero '''zabbix_agentd.conf''' e indicar cual es la dirección de red (IP) del servidor Zabbix.&lt;br /&gt;
&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 ##### Passive checks related&lt;br /&gt;
 ### Option: Server&lt;br /&gt;
 #       List of comma delimited IP addresses (or hostnames) of Zabbix servers.&lt;br /&gt;
 #       Incoming connections will be accepted only from the hosts listed here.&lt;br /&gt;
 #       If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1'  &lt;br /&gt;
 #       are treated equall$&lt;br /&gt;
 #&lt;br /&gt;
 # Mandatory: no&lt;br /&gt;
 # Default:&lt;br /&gt;
 Server= IP.Server Zabbix.&lt;br /&gt;
|}&lt;br /&gt;
Tras la configuración del fichero, debemos reiniciar el servicio de los agentes.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 sudo service zabbix-agent restart&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====== Configurar agente de forma activa ======&lt;br /&gt;
&lt;br /&gt;
Para configurar el agente de Zabbix necesitamos acceder a la máquina que actuará como agente, y en el directorio /etc/zabbix modificar el fichero '''zabbix_agentd.conf''' e indicar cual es la dirección de red (IP) del servidor Zabbix.&lt;br /&gt;
&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 ##### Active checks related&lt;br /&gt;
 ### Option: ServerActive&lt;br /&gt;
 #       List of comma delimited IP:port (or hostname:port) pairs of Zabbix serv$&lt;br /&gt;
 #       If port is not specified, default port is used.&lt;br /&gt;
 #       IPv6 addresses must be enclosed in square brackets if port for that hos$&lt;br /&gt;
 #       If port is not specified, square brackets for IPv6 addresses are option$&lt;br /&gt;
 #       If this parameter is not specified, active checks are disabled.&lt;br /&gt;
 #       Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12$&lt;br /&gt;
 #&lt;br /&gt;
 # Mandatory: no&lt;br /&gt;
 # Default:&lt;br /&gt;
 ServerActive=127.0.0.1&lt;br /&gt;
 --------------------------sección separada----------------------------&lt;br /&gt;
 ### Option: UserParameter&lt;br /&gt;
 #       User-defined parameter to monitor. There can be several user-defined pa$&lt;br /&gt;
 #       Format: UserParameter=&amp;lt;key&amp;gt;,&amp;lt;shell command&amp;gt;&lt;br /&gt;
 #       See 'zabbix_agentd' directory for examples.&lt;br /&gt;
 #&lt;br /&gt;
 # Mandatory: no&lt;br /&gt;
 # Default:&lt;br /&gt;
 # UserParameter=&lt;br /&gt;
 User_parameters:asterisk.pid, /usr/bin/asterisk -rx 'core show chanels'|grep 'active calls'| cat -d -f 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El parámetro '''User_parameters''' tiene un formato de este estilo:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 User_parameters: NombreMedida, comando.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El nombre de la medida se refiere al nombre que demos a la aplicación , no hace falta que exista una aplicación con ese nombre en Zabbix, y el comando , es el comando remoto que tiene que ejecutar el servidor Zabbix. Posiblemente necesita darse permisos para ejecutar el comando y siempre debe devolver un valor (un numero o un tiempo) que el servidor Zabbix puede manejar.&lt;br /&gt;
Tras la configuración del fichero, debemos reiniciar el servicio de los agentes.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 sudo service zabbix-agent restart&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Scripts del Servidor Zabbix =====&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''': &amp;lt;small&amp;gt;No olvidar que en la misma maquina del server Zabbix, debe configurarse como agente de Zabbix.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Después de realizar la [[# Instalación de Zabbix | Instalación de Zabbix ]] correctamente. Se han creado otros ficheros scripts (''scripts propios de '''md'''tel'') que facilitarán la petición del servidor a los agentes activos, para poder parametrizar todos los elementos del negocio que suelen monitorizarse. &lt;br /&gt;
Dependiendo de lo que vaya a monitorizarse necesitaremos algún script o todos. Algunos nos informan sobre elementos de negocio, saber si asterisk funciona , monitorizar el CTI (lanzara nc localhost 1111) , controlar el Intz-Nimitz, comprobar si funciona motalsal, ect.&lt;br /&gt;
&lt;br /&gt;
Cada script se exportara a los host, para que pueda facilitar los datos que pide el servidor Zabbix y configurarse.&lt;br /&gt;
Por ejemplo,para monitorizar las llamadas en curso del ACD, agentes conectados, agentes desconectados, etc.&lt;br /&gt;
Todos los scripts se deben colocar en el directorio /usr/local/sbin con permisos 755, su nombre es parecido a &amp;quot;zabbixSenderXXXXX.pl&amp;quot;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 ls /usr/local/sbin/ |grep zabbixSender&lt;br /&gt;
 '''zabbixSenderACDBD.pl'''&lt;br /&gt;
 '''zabbixSenderACD.pl'''&lt;br /&gt;
 '''zabbixSenderCTI.pl'''&lt;br /&gt;
 '''zabbixSender-intz-nimitz.pl'''&lt;br /&gt;
 '''zabbixSenderMotorSal.pl'''&lt;br /&gt;
 '''zabbixSenderMyACDSuperv.pl'''&lt;br /&gt;
 '''zabbixSenderRecordNodo.pl'''&lt;br /&gt;
 '''zabbixSenderRecordCentral.pl'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Se crea una tarea programada en linux para poder ejecutarse los scripts, programando el tiempo en que debe ejecutarse.&lt;br /&gt;
&lt;br /&gt;
Si visualizo que &amp;quot;............&amp;quot; aparece:&lt;br /&gt;
&lt;br /&gt;
*****  root zabbix&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderACDBD.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtiene diversos valores por cada cola, estados de agente por cola y estados de agente generales.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor BDTR.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:''' Ruta al archivo de configuración (Por ejemplo: ''/etc/MDtel/zabbixSenderACDBD.pconf'')&lt;br /&gt;
&lt;br /&gt;
'''Archivo de configuración:''' zabbixSenderACDBD.pconf&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''$db:''' Nombre de la BBDD (normalmente nimitz)&lt;br /&gt;
 '''$dbHost:''' Dirección IP del servidor de BBDD de TR (normalmente BDTR)&lt;br /&gt;
 '''$dbPort:''' Puerto MySQL (normalmente 3306)&lt;br /&gt;
 '''$dbUsuario:''' Usuario MySQL (normalmente nimitz)&lt;br /&gt;
 '''$dbClave:''' Clave del usuario&lt;br /&gt;
 '''$sZab:''' Dirección IP del servidor Zabbix&lt;br /&gt;
 '''$hZab:''' Nombre del host Zabbix (normalmente el nombre de máquina, tal y como se configura en &lt;br /&gt;
 zabbix_agentd.conf o en el host en la web de Zabbix)&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderACD.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener el PID de Asterisk para revisar si se ha reiniciado en caso de que cambie.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor ACD.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:''' Ruta al archivo de configuración (Por ejemplo: ''/etc/MDtel/zabbixSenderACD.pconf'').&lt;br /&gt;
&lt;br /&gt;
'''Archivo de configuración:''' zabbixSenderACDBD.pconf.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''$db:''' Nombre de la BBDD (normalmente nimitz)&lt;br /&gt;
 '''$dbHost:''' Dirección IP del servidor de BBDD de TR (normalmente BDTR)&lt;br /&gt;
 '''$dbPort:''' Puerto MySQL (normalmente 3306)&lt;br /&gt;
 '''$dbUsuario:''' Usuario MySQL (normalmente nimitz)&lt;br /&gt;
 '''$dbClave:''' Clave del usuario&lt;br /&gt;
 '''$sZab:''' Dirección IP del servidor Zabbix&lt;br /&gt;
 '''$hZab:''' Nombre del host Zabbix (normalmente el nombre de máquina, tal y como se configura en&lt;br /&gt;
 zabbix_agentd.conf o en el host en la web de Zabbix)&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
======zabbixSenderCTI.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de vivait-cti.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute vivait-cti. Normalmente el servidor ACD.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======zabbixSender-intz-nimitz.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de intz-nimitz.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute intz-nimitz.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
======zabbixSenderMotorSal.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de motorSal.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute motorSal.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderMyACDSuperv.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de myAcdSuperv.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute myAcdSuperv.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderRecordNodo.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de recordNodo.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute recordNodo.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderRecordCentral.pl======&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de recordCentral.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute recordCentral.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A continuación se muestra una tabla resumen de los distintos scripts y sus funcionalidades: &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Zabbix_scripts.png |960px]]&lt;br /&gt;
&lt;br /&gt;
====== Dimensionamiento del servidor (Startpollers) ======&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''': &amp;lt;small&amp;gt;EL parámetro StartPollers es un &amp;lt;u&amp;gt;parámetro numérico&amp;lt;/u&amp;gt; que forma parte del fichero de configuración &lt;br /&gt;
 del servidor Zabbix(zabbix_server.conf). Por defecto el servidor Zabbix está configurado para&lt;br /&gt;
 iniciar con cinco startpollers.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El servidor Zabbix puede hacer peticiones a los agentes de las medidas que necesita o quiere. O en caso contrario los agentes envian en un tiempo determinado la información al servidor. Para recibir todas estas peticiones necesitamos los pollers.  &lt;br /&gt;
&lt;br /&gt;
Los poller son los procesos encargados de recibir todas las peticiones de medidas. Aumentaremos su cantidad dependiendo de la necesitad que tengamos. Para ello podemos observar la queue , que es la encargada de almacenar un listado de todas las cosas que están pedidas para medirse y recibirse.  SI por ejemplo esta cola (queue) muestra mas de mil medidas seguramente estos pollers sean un cuello de botella y habrá que aumentar su numero.&lt;br /&gt;
&lt;br /&gt;
=====Templates=====&lt;br /&gt;
&lt;br /&gt;
Zabbix cuenta con templates (plantillas) que facilitan la tarea de &amp;quot;Registrar Equipos y Dispositivos&amp;quot; y agregarles métricas; acelerar el despliegue de las tareas de supervisión en un host; aplicar cambios masivos a tareas de supervisión. En '''md'''tel hemos creado plantillas propias que facilitan estos procesos, los cuales necesitaremos [[#Importar templates |importar templates]].&lt;br /&gt;
&lt;br /&gt;
Las plantillas están vinculados directamente a los hosts individuales, por tanto se necesitaran utilizar en cada host.&lt;br /&gt;
&lt;br /&gt;
Automáticamente, cada template rellena por item las aplicaciones, trigers, alarmas,gráficos,... etc. &lt;br /&gt;
&lt;br /&gt;
A continuación, se muestran los distintos bloques de funciones de la instalación en función de cada template:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! Se instalan en general &lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| SI (si clúster)&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| si&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| -&lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| si(si no posee ip virtuales de clúster)&lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| si&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ '''Dependiendo del tipo de nodo:'''&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! ACD !! Corporativo/GW&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| Si || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - || Si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - || Si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ '''Dependiendo del tipo de Base de dato'''s:&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! BBDD &amp;lt;br /&amp;gt;Tiempo Real !! BBDD&amp;lt;br /&amp;gt; Réplica !! BBDD Copia&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| Si(si ACD) || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| si || si || si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| si || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! Administración&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - &lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - &lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal||SI (si posee servidor calendarios)&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! Servidor de grabaciones&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - &lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| Si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - &lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal||-&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ '''Monitorización'''&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! General !! Contact Center&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - || - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - || - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| si || - &lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - || - &lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 * El template OS Linux tiene asociado el Template App Zabbix Agent.&lt;br /&gt;
 Una '''base de datos unificada''' es una base de datos de tiempo real junto a  una base de datos de replica&lt;br /&gt;
&lt;br /&gt;
====== Importar templates======&lt;br /&gt;
&lt;br /&gt;
Las plantillas propias de '''md'''tel se encuentran en la ruta &amp;quot;'''/usr/src/nimitz/archivos'''&amp;quot; y empiezan con el nombre de &amp;quot;TemplateXXX.xml&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 ls /usr/src/nimitz/archivos | grep Template&lt;br /&gt;
 '''Template DRBD.xml'''&lt;br /&gt;
 '''Template motorSal.xml'''&lt;br /&gt;
 '''Templates Vivait-Suite_GW.xml'''&lt;br /&gt;
 '''Templates Vivait-Suite.xml'''&lt;br /&gt;
 '''Template Vivait-Call Asterisk.xml'''&lt;br /&gt;
 '''Template Vivait-Call bdCentral.xml'''&lt;br /&gt;
 '''Template Vivait-Call bdNodo.xml'''&lt;br /&gt;
 '''Template Vivait-Call cambiarPerfil_Cal.xml'''&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La importación se realizara una vez a través de la web, no hace falta desde el servidor Zabbix, puede ser en cualquier  computadora con acceso a la interfaz web de Zabbix.&lt;br /&gt;
&lt;br /&gt;
[[File:ImportarTemplates.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
Hay opciones varias opciones a elegir para importación de templates, pero podemos dejar por defecto las señaladas y pulsar el botón &amp;quot;import&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Configuración para un primer funcionamiento de Zabbix===&lt;br /&gt;
Se describe una básica configuracion de Zabbix para cualquier equipo que utilice Windows o linux. Pues  mediante la definición de hosts, items, triggers y acciones, Zabbix permite efectuar un monitoreo efectivo de plataformas IT heterogéneas. &lt;br /&gt;
&lt;br /&gt;
====Configuración de los equipost (host) para la monitorización====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''': Tenga en cuenta que debe de estar previamente configurado el agente Zabbix del &lt;br /&gt;
 dispositivo a ser monitorizado apuntando a la IP del &amp;quot;Servidor Zabbix&amp;quot;.&lt;br /&gt;
|}&lt;br /&gt;
Existen dos tipos de host:&lt;br /&gt;
* '''Host físico''': donde la dirección de red que registramos en Zabbix, corresponde al dispositivo que deseamos monitorizar.&lt;br /&gt;
* '''Host virtual''': es una dirección IP virtual, que puede relacionarse con un servidor Web, clusters, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:CreacionHost.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
﻿Las opciones basicas para configurar un host son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center ;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Host Name'''&lt;br /&gt;
|  | Definir un nombre para el host.&lt;br /&gt;
||Se puede utilizar números, letras, espacios y guiones bajos están permitidos.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Visible Name'''&lt;br /&gt;
|  | Identificar con un nombre, la maquina a la que se refiere el host.&lt;br /&gt;
||Si no tiene valor, se mostrara como nombre &amp;quot;Host Name&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Groups'''&lt;br /&gt;
|  | Seleccionar al grupo de host que pertence.Seleccione uno o varios grupos de la caja derecha.&lt;br /&gt;
|| Los valores que puede seleccionar por defecto:&lt;br /&gt;
Discoverd hosts.&lt;br /&gt;
&lt;br /&gt;
Switches.&lt;br /&gt;
&lt;br /&gt;
Templates.&lt;br /&gt;
&lt;br /&gt;
Templates MDtel.&lt;br /&gt;
&lt;br /&gt;
Zabbix servers.&lt;br /&gt;
&lt;br /&gt;
Linux Servers.&lt;br /&gt;
&lt;br /&gt;
Hypervisors.&lt;br /&gt;
&lt;br /&gt;
Virtual machines.&lt;br /&gt;
&lt;br /&gt;
O crear uno nuevo en '''New group'''.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Agent interfaces'''&lt;br /&gt;
|  |Se recomienda usar una dirección IP, en vez de un nombre de la maquina para resolver por un servidor de DNS que puede fallar.&lt;br /&gt;
|  | 10050 por defecto&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cuando termine, haga clic en nel boton &amp;quot;Save&amp;quot;.  Su nuevo &amp;quot;Host&amp;quot; debe ser visible en la lista de &amp;quot;Host registrados&amp;quot;.Despues el zabbix, intentara configurarse el zabbix para conectarse a la IP.... cada x tiempo hace un barrido. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Comprobación de disponibilidad del host=====&lt;br /&gt;
Para saber si todo esta bien debemos ver la Z de disponibilidad.   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:EstadosZHost.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Indicacion de los colores del icono Z:&lt;br /&gt;
&lt;br /&gt;
* Si el icono Z en la columna de disponibilidad es de color rojo, indica que hay un error en la comunicación - mueva el cursor del ratón sobre él para ver el mensaje de error. &lt;br /&gt;
&lt;br /&gt;
* Si el icono es gris, significa que esta en proceso de comunicación con el &amp;quot;Agente Zabbix&amp;quot;. Compruebe que el servidor Zabbix está en marcha, y pruebe a actualizar la página más tarde.  El tiempo estimado para revisar si existe problemas es de 5 minutos.&lt;br /&gt;
&lt;br /&gt;
* Si el icono es verde, esta funcionando correctamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Indicar que plantilla(template) tendra el host [opcional]====&lt;br /&gt;
Tras [[#Importar templates |importar templates]] nos dirigimos al host ya configurado, y en su pestaña de templates pulsamos &amp;quot;add&amp;quot; y añadimos la plantilla/s adecuadas.&lt;br /&gt;
&lt;br /&gt;
====Asignar items al host ====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''':Un host puede tener un ITEM sin necesitad de tener template.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Todos lo ITEMS se agrupan por HOST, esto significa que cada HOST tiene sus propios &amp;quot;Módulos que recogen datos del Host&amp;quot;.   Para agregar un nuevo módulo vamos a &amp;quot;Configuration → Hosts&amp;quot; y localizamos el &amp;quot;Host&amp;quot; al cual queremos agregarle un nuevo &amp;quot;Item&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:CrearItemEjemplo.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
Parametros o campos a rellenar para una configuración básica :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center ;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Name'''&lt;br /&gt;
|  | Definir un nombre para el item.  Este nombre va a ser nuestro identificador para todas la gestiones en donde lo involucremos como el caso de Triggers.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Type'''&lt;br /&gt;
|| Indicar de que entidad queremos recibir informacion.&lt;br /&gt;
||Puede ser al &amp;quot;Agente Zabbix&amp;quot; o a el Hardware como impresoras, switch o routers.   &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Key'''&lt;br /&gt;
|  | los &amp;quot;Items&amp;quot; utilizan &amp;quot;Key&amp;quot; que son parámetros de Zabbix.  Los &amp;quot;Key&amp;quot; nos permiten indicar específicamente que tipo de información vamos a solicitara a la entidad. Se puede considerar también como el nombre de alguna aplicación.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''host interface'''&lt;br /&gt;
|  |Es la direccion de red del servidor zabbix (puede ser uno o mas)&lt;br /&gt;
|  | &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Units'''&lt;br /&gt;
|  |Es la dirección de red del servidor zabbix (puede ser uno o mas)&lt;br /&gt;
|  | &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Type of information'''&lt;br /&gt;
|  |Tipo de unidades con el que mostrar Zabbix el valor segundos, minutos, euros,....&lt;br /&gt;
|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cuando termine, haga clic en Guardar.   El nuevo elemento debe aparecer en la ITEMLIST. &lt;br /&gt;
Para mas informacion [[http://entation/1.8/manual/config/items#zabbix_agent. ver documentación Zabbix]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Ver la información recolectada por el item =====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' Normalmente para ver la información lo encontraremos en &amp;quot;Monitoring → Latest data&amp;quot;,luego &lt;br /&gt;
 clic en el signo &amp;quot;+&amp;quot; en &amp;quot;other&amp;quot; siempre que no pertenezca a una aplicación. &lt;br /&gt;
 En caso contrario, estará bajo el nombre de la aplicación.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Después de definir el &amp;quot;Item&amp;quot; vamos a revisar la información que esta recolectando.  .  La información comenzará a ser recolectada según el tiempo que le indicamos en el &amp;quot;Item&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:VerInfoITEM.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
La espera para recibir la información varía dependiendo del tiempo de recolección del item, la mayoría suele ser aproximadamente al minuto de generar el &amp;quot;Item&amp;quot;. Zabbix le ofrece la opción de visualizar la información en forma gráfica (sencilla).  En el &amp;quot;Item&amp;quot; en lista haga clic en la columna &amp;quot;History - Graph&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:VIsualGraficaValorItem.png|center|750px]]&lt;br /&gt;
Si en un caso usted no observa información le recomendamos:&lt;br /&gt;
  &lt;br /&gt;
* Ingrese al &amp;quot;Item&amp;quot; y revise que la información del &amp;quot;Key&amp;quot; este igual al ejemplo &amp;quot;system.cpu.load&amp;quot; &lt;br /&gt;
* Verifique que el agente este funcionando en el &amp;quot;Servidor a ser monitoreado&amp;quot; y que &amp;quot;El Servidor recolector Zabbix&amp;quot; este funcionando. &lt;br /&gt;
* El icono &amp;quot;Z&amp;quot; en el host debe estar en color verde. &lt;br /&gt;
* Asegure que esta monitoreando el servidor que le agregó este &amp;quot;Item&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Configurar los Triggers para los host====&lt;br /&gt;
A partir de la información que captura los agentes , el servidor de Zabbix comienza a efectuar la recolección de estos items en la base de datos. Con esto se tiene un registro histórico de tales mediciones, que pueden ser tan simples como un simple ping hasta datos de uso de disco, memoria, cpu, etc.&lt;br /&gt;
A partir de los datos que se reciben de los agentes lo que sigue es definir y configurar Triggers, que son evaluaciones que hace Zabix de estos datos para determinar la existencia de un Problema en un dispositivo.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Nota: Un trigger necesita una accion, que indica que hacer cuando se activa el trigger.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un trigger(disparador) es un tipo de reacción ante unas medidas, como un disparador en el que si pasa algo se activa. Los Trigger en Zabbix son módulos que creamos a uno o múltiples &amp;quot;Items&amp;quot; para evaluar o comparar los valores recolectados por los &amp;quot;Items&amp;quot; con condiciones que nosotros definamos.  Las condiciones son de tipo aritmético y lógico.&lt;br /&gt;
&lt;br /&gt;
Para configurar un &amp;quot;Trigger o Disparador&amp;quot; seleccionamos &amp;quot;Configuration → Hosts&amp;quot; localizamos el &amp;quot;Host&amp;quot; de ejemplo que creamos y luego hacemos clic en &amp;quot;Trigger&amp;quot;, después haga clic en &amp;quot;Create Trigger&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Parametros o campos a rellenar para una configuración básica :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center ;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Name'''&lt;br /&gt;
|  | Definir un nombre para el trigger.  Este nombre va a ser nuestro identificador para todas la gestiones en donde lo involucremos como el caso de los eventos.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Expression'''&lt;br /&gt;
||  Hay que indicar para que medida se crea (item) y sus funciones con los parametros adecuados. '''''Recomendación usar expression constructor que pedirá siempre al crearlo, para que item es y sus funciones...'''''&lt;br /&gt;
||Ejemplo: {New host:system.cpu.load.avg(180)}&amp;gt;2 &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Key'''&lt;br /&gt;
|  | los &amp;quot;Items&amp;quot; utilizan &amp;quot;Key&amp;quot; que son parámetros de Zabbix.  Los &amp;quot;Key&amp;quot; nos permiten indicar específicamente que tipo de información vamos a solicitara a la entidad. Se puede considerar tambien como el nombre de alguna aplicacion.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Una descripción breve sobre el trigger.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Severity'''&lt;br /&gt;
|  | everidad distinguida por colores,&lt;br /&gt;
|| No classified&lt;br /&gt;
 Information&lt;br /&gt;
 Warning&lt;br /&gt;
 Average&lt;br /&gt;
 High&lt;br /&gt;
 Disaster&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Comprobar el estado del trigger =====&lt;br /&gt;
Podemos ver el estado del &amp;quot;Trigger&amp;quot; en &amp;quot;Monitoring → Triggers&amp;quot;.El  color en caso de que se active depende de la severidad definida. Por ejemplo,  si el &amp;quot;Trigger&amp;quot; esta en color verde indica que el resultado de la métrica se mantiene por debajo de la condición que indicamos.  Por el contrario si el resultado esta &amp;quot;sobre lo indicado&amp;quot; su color sera rojo.&lt;br /&gt;
&lt;br /&gt;
[[File:EstadoTrigger.png|center|750px]]&lt;br /&gt;
&lt;br /&gt;
====Asociar un Action al trigger====&lt;br /&gt;
&lt;br /&gt;
Una action(acción) sirve para configurar un mensaje de alerta o una accion para Zabbix, ante un problema. Hay varias formas de gestionar un problema a través de una acción:&lt;br /&gt;
&lt;br /&gt;
# A través de mensajes simples, alertando al instante.&lt;br /&gt;
# Escalar los mensajes hacia el jefe y/o otros grupos.&lt;br /&gt;
# Ejecución de commandos remotos.&lt;br /&gt;
# Notificaciones repetidas hasta que se resuelve el problema.&lt;br /&gt;
# Notificaciones y comandos retardados.&lt;br /&gt;
# Escenario complejo, la combinación de todo lo anterior.&lt;br /&gt;
&lt;br /&gt;
Para crear una configuración en &amp;quot;Configuration-Actions&amp;quot;. La explicación esta en la [[ https://www.zabbix.com/documentation/2.0/manual/config/notifications/action documentación de Zabbix]].&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integraciones con servicios externos ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Presencia con Openfire ===&lt;br /&gt;
'''''VIVA'''''it se integra con servidor XMPP Openfire en su versión 3.10.2 (última probada)&lt;br /&gt;
&lt;br /&gt;
Además del servidor, es necesario instalar un plugin de integración con asterisk 13, denominado &amp;quot;asterisk IM&amp;quot;, versión 1.4.1&lt;br /&gt;
&lt;br /&gt;
La instalación del servidor Openfire es una instalación estándar, realizada de paquete&lt;br /&gt;
&lt;br /&gt;
La instalación del plugin es un &amp;quot;jar&amp;quot; que se carga desde la pagina de plugins de openfire&lt;br /&gt;
&lt;br /&gt;
Con esto conseguiremos comunicar asterisk y OPenfire de manera que:&lt;br /&gt;
*Los estados telefónicos de una extensión '''''VIVA'''''it  se reflejen en Openfire&lt;br /&gt;
*Poder marcar desde los clientes de IM instalados en los puestos&lt;br /&gt;
*Ver en el cliente llamadas entrantes al teléfono&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;Enlaces de interes:&amp;lt;/big&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
[http://www.igniterealtime.org/projects/openfire/ Página proyecto openfire]&lt;br /&gt;
&lt;br /&gt;
[https://community.igniterealtime.org/thread/56076 Página proyecto &amp;quot;asterisk IM&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reuniones virtuales con Openmeetings ===&lt;br /&gt;
'''OpenMeetings''' es un sistema de vídeo web-conferencia en tiempo real. Usando recursos como audio (micrófono), vídeo (cámara web), posibilidad de subir y convertir presentaciones (en PDF , PPT o ODP que se convierten a Flash), compartición de la pantalla de tu ordenador, o pizarra digital compartida, panel de administración, posibilidad de grabar las sesiones… y completo soporte multiplataforma, es decir, que aparte de poder grabar las sesiones, se puede compartir un escritorio también desde una máquina Linux.&lt;br /&gt;
&lt;br /&gt;
Para instalar '''OpenMettings''' debe seguir el [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manuales_de_instalaci%C3%B3n#Instalaci.C3.B3n_de_Openmeetings | manual de Instalación de Openmeetings]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]] &lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:VIVAit Suite]]&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_plataforma_VIVAit&amp;diff=6645</id>
		<title>Manual de operación plataforma VIVAit</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_plataforma_VIVAit&amp;diff=6645"/>
		<updated>2018-04-23T10:45:18Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* Modificaciones de archivos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!! '''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; ALFREDO: INSISTIR EN EXPLICAR CONCEPTOS&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
En este documento se describe la arquitectura general de la plataforma '''''VIVA'''''it, detallando aquellos procesos principales que componen cada uno de los elementos del sistema, y sus principales elementos de diagnóstico&lt;br /&gt;
Quedan fuera del ámbito de este documento:&lt;br /&gt;
* Uso de aplicación de agente ('''''VIVA'''''it Desk)&lt;br /&gt;
* Uso de aplicación de supervisor ('''''VIVA'''''it Supervisor), incluyendo sus módulos autónomos ('''''VIVA'''''it reporting, '''''VIVA'''''it Tracker)&lt;br /&gt;
* Uso de portal de administración&lt;br /&gt;
* Uso de portal de traceo de llamadas y agentes ('''''VIVA'''''it Tracker web)&lt;br /&gt;
* Uso de portal de monitorización zabbix&lt;br /&gt;
&lt;br /&gt;
== Arquitectura ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura plataforma VIVAit.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Descripción de los elementos, diagnósticos y operaciones ==&lt;br /&gt;
Las siguientes tablas definen los principales elementos software de la plataforma '''''VIVA'''''it, que son detallados en apartados siguientes:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de sistema operativo'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu Server LTS 64 bits || Uno por servidor|| ||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|| Actualmente (Oct-2015) 14.04&lt;br /&gt;
Bajo proyecto puede cambiarse&lt;br /&gt;
|-&lt;br /&gt;
| Almacenamiento de grabaciones|| Uno por sistema|| Almacenamiento de las grabaciones, ya sean de entorno corporativo o de contact center||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|| Típicamente un espacio grande de almacenamiento proporcionado por el cliente y que se monta como un sistema de archivos local en los servidores de la plataforma&lt;br /&gt;
Pueden existir sistemas secundarios de almacenamiento de grabaciones&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de conmutación de voz'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Asterisk 1.4.24 by MDtel||Uno por servidor ACD||Núcleo de conmutación de voz basado en Asterisk 1.4 y modificado por MDtel||'''''VIVA'''''it Suite||Fuertemente modificado por MDtel&lt;br /&gt;
En el futuro migrará a Asterisk 13 Certified&lt;br /&gt;
|-&lt;br /&gt;
|Dialplan ACD by MDtel||Uno por servidor ACD||Configuración de voz||'''''VIVA'''''it Suite||En el futuro se unificará con corporativa&lt;br /&gt;
|-&lt;br /&gt;
|Asterisk 13 Certified by MDtel||Uno por servidor corporativo/gateway||Núcleo de conmutación de voz basado en Asterisk 13 y modificado por MDtel||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Actualmente asterisk estándar (10/15)&lt;br /&gt;
La instalación contempla descargar de la red el más actualizado, siempre CERTIFIED&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Dialplan corporativo||Uno por servidor corporativo/gateway||Configuración de voz||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||En el futuro se unificará con ACD&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de base de datos'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|MySQL 5.5||Donde haya BBDD de cualquier tipo (incluso zabbix)||Motor de Base de Datos||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||A efectos prácticos va a ser en todos los servidores con casi total seguridad&lt;br /&gt;
|-&lt;br /&gt;
|BBDD tiempo real||Una por sistema||Base de Datos sobre la que trabaja todo el entorno de tiempo real||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|BBDD réplica||Una por sistema multinodo||Base de Datos para acceso a información de reporting…y similar||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de una&lt;br /&gt;
En el nodo en el que exista réplica existirá además copia (excepto nodo ACD)&lt;br /&gt;
|-&lt;br /&gt;
|BBDD copia||Uno por servidor corporativo/gateway||Copias de tablas de configuración para respaldo de la misma||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Local en cada nodo&lt;br /&gt;
Los nodos de ACD actualmente no trabajan con copia; en caso de fallo de BBDD TR se usa el modo emergencia&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de procesos ''VIVA''it'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Intz-Nimitz||Donde haya una BBDD de tiempo real o copia||Interfaz entre el dialplan y la base de datos||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||No donde haya BBDD de réplica&lt;br /&gt;
Sistemas grandes pueden contemplar mas de un intz-nimitz central&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|vivait-cti||Uno por servidor ACD||Interfaz entre '''''VIVA'''''it Desk, supervisor y el manager de asterisk||'''''VIVA'''''it Suite||&lt;br /&gt;
|-&lt;br /&gt;
|myAcdSuperv||Uno por servidor ACD||Recopilador de datos de asterisk y actualiza en la BBDD&lt;br /&gt;
Genera llamadas en el marcador&lt;br /&gt;
||'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|motorSal||Uno por sistema con ACD||Motor de marcador saliente automático||'''''VIVA'''''it Suite||Solo si hay marcación saliente&lt;br /&gt;
Junto a la BBDD de tiempo real&lt;br /&gt;
|-&lt;br /&gt;
|recordCentral||Uno por sistema||Servidor de grabaciones, se conectan los agentes a el||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Se arrancan varias instancias en función del número de nodos&lt;br /&gt;
Debe instalarse en un servidor que tenga el almacenamiento de grabaciones en su sistema de archivos&lt;br /&gt;
|-&lt;br /&gt;
|recordNodo||Uno por servidor corporativo/gateway||Agente de grabación||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|bdCentral||Uno, en el nodo con la BBDD de tiempo real||Genera la base de datos que se copiará para respaldo a otros nodos||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|bdNodo||En cada nodo con BBDD de copia||Recoge la base de datos del servidor central con el objeto de tener el respaldo||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|Actualizador||Uno por sistema con ACD||Se encarga de proporcionar las versiones actualizadas de las aplicaciones de puesto de trabajo||'''''VIVA'''''it Suite||En el mismo servidor que el portal de administración&lt;br /&gt;
|-&lt;br /&gt;
|phoneProv-tftp||Uno por sistema||Se encarga del aprovisionamiento masivo de terminales||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||En instalaciones grandes habrá más de uno, quizás uno por sede grande; depende de la infraestructura de DHCP&lt;br /&gt;
|-&lt;br /&gt;
|borraregistrosnimitz||||||||				&lt;br /&gt;
|-&lt;br /&gt;
|Mover grabaciones a nube||||||||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Administración'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Tomcat 7||Uno por servidor con portales||Servidor de aplicaciones JAVA||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|Portal de administración ||Uno por sistema||Portal de administración del sistema||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Portal usuario||Uno por sistema||Portal de usuario, para acceso a buzones, su configuración||'''''VIVA'''''it Call||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Tracker web||Uno por sistema||Portal de seguimiento de llamadas||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Debe instalarse en un servidor que tenga los ficheros de grabación montados en su sistema de archivos&lt;br /&gt;
Ligado a recordCentral&lt;br /&gt;
Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Monitor||Uno por sistema||Portal de monitores de pared de Call Center||'''''VIVA'''''it Suite||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Apache||Uno por servidor de calendarios||Servidor de portales WEB||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|Servidor de calendarios||Uno por sistema||Aloja calendarios para su uso en diferentes entornos de NIMITZ||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Monitorización'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Servidor zabbix||Uno por instalación||Monitorización técnica y de negocio||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de uno&lt;br /&gt;
Tipicamente irá o en BBDD replica o en nodo de gestión en instalaciones grandes&lt;br /&gt;
|-&lt;br /&gt;
|Templates zabbix||Uno por instalación||Adaptaciones específicas||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|Agente Zabbix||Uno por servidor||Agente de monitorización||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
||Scripts monitorización zabbix||Uno por servidor||Agente de monitorización||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Versiones de módulos===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Módulo  !! VSuite &lt;br /&gt;
V.3.10 &lt;br /&gt;
! VSuite &lt;br /&gt;
V.3.2.0 &lt;br /&gt;
! VSuite &lt;br /&gt;
V.3.3.0 &lt;br /&gt;
! VIVAit V.3.0.0&lt;br /&gt;
(VSuite 3.4+VCall3.0) &lt;br /&gt;
!  VIVAit V.3.1.0&lt;br /&gt;
(VSuite 3.5+VCall3.1)&lt;br /&gt;
|-&lt;br /&gt;
| Sistema Operativo || || || || &lt;br /&gt;
|| Ubuntu 14.0.4&lt;br /&gt;
Server 64 Kb&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk || 1.4 || 1.4 || 1.4 || 1.4 Nodo ACD&lt;br /&gt;
13 resto nodos&lt;br /&gt;
|| 1.4 Nodo ACD&lt;br /&gt;
13 resto nodos&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk ACD '''(VS)'''  ||  ||  || || 3.3.1 || 3.4.1 &lt;br /&gt;
|-&lt;br /&gt;
| Dialplan ACD '''(VS)''' || ||  ||  || || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk Corp '''(C)''' ||  ||  ||  || 3.3.4 || 3.4.4&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk Cisco '''(VC)''' ||  ||  ||  || 3.3.4 || 3.4.4&lt;br /&gt;
|-&lt;br /&gt;
| Dialplan Corp '''(C)''' || ||  ||  || 3.3.1 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Lazarus común '''(VS)''' || 3.1.0  || 3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| BD '''(C)''' || 3.2.0 || 3.4.0 || 3.5.0 || 3.6.0 || 3.8.0&lt;br /&gt;
|-&lt;br /&gt;
| Generaconf '''(C)''' || 3.0.0  || 3.0.0  || 3.2.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Instalador '''(C)''' || 3.1.0  || 3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Intz-nimitz '''(C)''' || 2.6.0  || 3.0.1 || 3.0.3 ||  3.4.1 || 3.4.2&lt;br /&gt;
|-&lt;br /&gt;
| recordgwd '''(C)'''  ||  1.3.0 ||  1.3.0 || 3.1.0 ||  ----- || -----&lt;br /&gt;
|-&lt;br /&gt;
| recordNodo '''(C)''' || ----- || ----- || ----- ||  4.0.0 || 4.0.0&lt;br /&gt;
|-&lt;br /&gt;
| recordprocesad '''(C)''' || 1.2.0 ||1.2.0|| 3.0.0 || ----- || -----&lt;br /&gt;
|-&lt;br /&gt;
| recordCentral '''(C)''' || ----- || ----- || -----||  4.0.0 || 4.0.1&lt;br /&gt;
|-&lt;br /&gt;
| MyACDSuperv '''(VS)''' || 5.2.0 || 5.3.0  ||  5.3.0  ||  5.3.2 || 5.3.2&lt;br /&gt;
|-&lt;br /&gt;
| Motorsal '''(VS)''' || 1.4.0 || 3.1.0  || 3.2.0 || 3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| Vivait-cti '''(VS)'''  || 3.0.0 ||  3.0.1  ||  3.0.1  ||  3.0.1 || 3.0.2&lt;br /&gt;
|-&lt;br /&gt;
| Multimonitorweb '''(VS)''' ||  3.0.1 ||  3.0.2  || 3.1.0  || 3.1.0 || 3.2.0&lt;br /&gt;
|-&lt;br /&gt;
| Portal de administración '''(C)''' || 3.1.0  || 3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Tracker Web '''(C)''' || 3.0.2  || 3.1.0 ||  3.2.0 ||  3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
|  VIVA supervisor '''(VS)''' || 3.0.0 ||  3.1.0  ||  3.2.0  ||  3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| Tracker windows '''(C)''' || 3.0.0  || 3.1.0  || 3.2.0 || 3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| VIVA report '''(VS)''' || 1.2.0  || 3.1.0  || 3.2.0  ||  3.2.2 || 3.3.0&lt;br /&gt;
|-&lt;br /&gt;
| VIVA desk '''(VS)''' || 3.0.2 ||  3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| VIVA designer '''(VS)''' || 1.0.23 || 3.0.1  || 3.1.0 ||  3.1.0 || 3.2.0&lt;br /&gt;
|-&lt;br /&gt;
|  Preview '''(VS)''' || 1.0.18 || 3.2.0  || 3.3.0 || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Phone_prov '''(C)''' || ------ || ------ || 3.0.1 || 3.0.3 || 3.0.3&lt;br /&gt;
|-&lt;br /&gt;
| Portal usuario '''(VC)''' || ------ || ------ || ------ || 3.0.0 || 3.1.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''(C)''': Módulo común&lt;br /&gt;
&lt;br /&gt;
'''(VC)''': Módulo de VIVAit Call&lt;br /&gt;
&lt;br /&gt;
'''(VS)''': Módulo de VIVAit Suite&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Sistema Operativo ===&lt;br /&gt;
Los sistemas operativos de nuestra plataforma se corresponden a las versiones de Ubuntu Server LTS , ya que son las versiones estables, con un soporte continuado y mas estables a actualizaciones desde la salida Ubuntu 14.04.1. En concreto el sistema operativo utilizado para la plataforma '''''VIVA'''''it es Ubuntu Server 14.04.4 LTS. Para más información https://help.ubuntu.com/lts/serverguide/index.html.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ubuntu Kernel Release Schedule.png|750px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Funcionamiento en cluster ====&lt;br /&gt;
&lt;br /&gt;
Un clúster es un grupo de múltiples ordenadores unidos mediante una red de alta velocidad, de tal forma que el conjunto es visto como un único ordenador.&lt;br /&gt;
&lt;br /&gt;
De un clúster se espera que presente combinaciones de los siguientes servicios:&lt;br /&gt;
&lt;br /&gt;
# Alto rendimiento &lt;br /&gt;
# Alta disponibilidad&lt;br /&gt;
# Balanceo de carga &lt;br /&gt;
# Escalabilidad &lt;br /&gt;
&lt;br /&gt;
Tal y como esta definido el cluster de MDtel, este comprueba conectividad con la otra máquina que lo forma y con un punto de confianza. Si la máquina no tiene conectividad con la otra y si con el punto de confianza es que el servidor está vivo, mientas que si no tengo conectividad ni con la otra máquina ni con el punto de confianza es que el muerto soy yo, por lo que balanceo.&lt;br /&gt;
&lt;br /&gt;
Por lo que las máquinas balancean en los casos siguientes:&lt;br /&gt;
&lt;br /&gt;
* Todo lo que tenga que ver con la red, es decir, caída de la tarjeta de red, apagado de la máquina, corte en la red..&lt;br /&gt;
&lt;br /&gt;
Y no balancea en los siguientes:&lt;br /&gt;
&lt;br /&gt;
* No balancea en los demás casos, es decir, todo lo que tenga que ver con procesos de una máquina (caída asterisk, base de datos, intz-nimitz)&lt;br /&gt;
&lt;br /&gt;
El funcionamiento en cluster se basa en:&lt;br /&gt;
&lt;br /&gt;
* Heartbeat: IP flotante entre las dos máquinas que componen el cluster; típicamente este &amp;quot;latido&amp;quot; entre máquinas se realizará mediante conexión directa con cable cruzado para asegurar que no existan problemas de comunicaciones tales como retardo, pérdida de paquetes, etc en este latido y pueda ser causa de un balanceo inadecuado.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|  '''Nota 17-11-2015:''' Se ha realizado en un cliente un cluster distribuido, con dos servidores en diferentes sedes, realizando el heartbeat mediante enlace Gigabit. Si bien la solución no está validada por desarrollo, se está observando el funcionamiento.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* DRBD se encargar de mantener una serie de carpetas totalmente replicadas entre los dos nodos; dichas carpetas son:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El cluster es &amp;lt;big&amp;gt;'''activo/pasivo'''&amp;lt;/big&amp;gt;; la máquina activa posee la IP flotante y tiene arrancados los servicios.&lt;br /&gt;
&lt;br /&gt;
==== Configuración del cluster ====&lt;br /&gt;
Para montar un cluster de asterisk partimos de la siguiente situación inicial:&lt;br /&gt;
* Dos maquinas con '''''VIVA'''''it Call 3.0 instalado.&lt;br /&gt;
* El driver bonding de Interfaces de Red en Ubuntu Server.&lt;br /&gt;
&lt;br /&gt;
Los pasos a seguir para la configuración en el Ubuntu Server son los siguientes:&lt;br /&gt;
* Instalar ifenslave: &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 aptitude install ifenslave.&lt;br /&gt;
|}&lt;br /&gt;
: Finalizada la instalación, comprobamos que la instalación de Bonding se ha configurado para empezar desde el arranque del sistema operativo desde el fichero '''/etc/modules''':&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| vi /etc/modules&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 # Parameters can be specified after the module name.&lt;br /&gt;
 lp&lt;br /&gt;
 rtc&lt;br /&gt;
 bonding&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Crear o editar el archivo llamado '''/etc/modprobe.d/bonding.conf''' y añadir la siguiente linea en negrita:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 echo &amp;quot;alias bond0 bonding&amp;quot;&amp;gt; /etc/modprobe.d/bonding.conf&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Editar el fichero /etc/network/interfaces y añadir lo que esta en negrita:&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
 # This file describes the network interfaces available on your system&lt;br /&gt;
 # and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 &lt;br /&gt;
 '''# Bonding'''&lt;br /&gt;
 &lt;br /&gt;
 '''#em1 ip manual y esclavo en el &amp;quot;bond0&amp;quot; NIC'''&lt;br /&gt;
 '''auto em1'''&lt;br /&gt;
 '''iface em1 inet manual'''&lt;br /&gt;
 '''bond-master bond0'''&lt;br /&gt;
 '''bond-primary em0''' &lt;br /&gt;
 &lt;br /&gt;
 '''#em2 ídem, creando así un vínculo de enlace 2.'''&lt;br /&gt;
 '''auto em2'''&lt;br /&gt;
 '''iface em2 inet manual'''&lt;br /&gt;
 '''bond-master bond0'''&lt;br /&gt;
 '''auto bond0'''&lt;br /&gt;
 '''iface bond0 inet static'''&lt;br /&gt;
         '''address 10.255.255.11'''&lt;br /&gt;
        '''netmask 255.255.255.0'''&lt;br /&gt;
        '''gateway 10.255.255.254'''&lt;br /&gt;
 '''bond-mode active-backup'''&lt;br /&gt;
 '''bond-miimon 100'''&lt;br /&gt;
 '''bond-slaves none'''&lt;br /&gt;
 &lt;br /&gt;
 '''# em3 replica entre servidores'''&lt;br /&gt;
 '''auto em3'''&lt;br /&gt;
 '''iface em3 inet static'''&lt;br /&gt;
         '''address 10.255.254.10'''&lt;br /&gt;
        '''netmask 255.255.255.0'''&lt;br /&gt;
 &lt;br /&gt;
 '''# em4 gestion'''&lt;br /&gt;
 '''auto em4'''&lt;br /&gt;
 '''iface em4 inet static'''&lt;br /&gt;
         '''address 172.17.47.255'''&lt;br /&gt;
         '''netmask 255.255.0.0'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Reiniciamos el sistema para que el kernel tome los cambios.&lt;br /&gt;
&lt;br /&gt;
* Comprobación que en las dos maquinas el archivo '''/etc/host''' contenga el los nombre de las dos maquinas a vincular. En el ejemplo el archivo en ambas maquinas es:&lt;br /&gt;
&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 127.0.0.1       localhost&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.11   vivaitcall-CL-UAH-1&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.12   vivaitcall-CL-UAH-2&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.10   vivaitcall-CL-UAH&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.10   BDTR&lt;br /&gt;
 &lt;br /&gt;
 10.255.254.10   vivaitcall-CL-UAH-1-em3&lt;br /&gt;
 &lt;br /&gt;
 10.255.254.11   vivaitcall-CL-UAH-2-em3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Creamos dos particiones iguales en ambos ordenadores , usando el comando '''parted'''.&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# '''parted /dev/sda'''&lt;br /&gt;
 GNU Parted 2.3&lt;br /&gt;
 Using /dev/sda&lt;br /&gt;
 Welcome to GNU Parted! Type 'help' to view a list of commands.&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Number  Start   End     Size    File system     Name  Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 &lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                 boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
        237GB   1000GB  763GB   Free Space&lt;br /&gt;
 &lt;br /&gt;
 (parted) mkpart primary 237GB 1000GB&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Number  Start   End     Size    File system     Name     Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                    boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
 5      237GB   1000GB  763GB                   primary  No File System como ext4&lt;br /&gt;
        1000GB  1000GB  204kB   Free Space&lt;br /&gt;
 (parted)quit&lt;br /&gt;
 mkfs.ext4 /dev/sda5&lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# '''parted /dev/sda'''&lt;br /&gt;
 GNU Parted 2.3&lt;br /&gt;
 Using /dev/sda&lt;br /&gt;
 Welcome to GNU Parted! Type 'help' to view a list of commands.&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Number  Start   End     Size    File system     Name     Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                    boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
 5      237GB   1000GB  763GB                   primary&lt;br /&gt;
        1000GB  1000GB  204kB   Free Space&lt;br /&gt;
 (parted) rm 5&lt;br /&gt;
 (parted) mkpart primary 237GB 1000GB&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 &lt;br /&gt;
 Number  Start   End     Size    File system     Name     Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                    boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
 5      237GB   1000GB  763GB   ext4            primary  Si File Sytem ext4&lt;br /&gt;
        1000GB  1000GB  204kB   Free Space&lt;br /&gt;
 (parted)quit&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Instalar los paquetes necesarios para el drbd. '''En Ubuntu server 14.04 ya está instalado.'''&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 aptitude install drbd8-utils  &lt;br /&gt;
 aptitude update (si no instala el drbd8-utils actualizar)&lt;br /&gt;
 aptitude install drbd8-utils  (volver a lanzar)&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
* Creamos el archivo '''/etc/drbd.conf''' en ambas maquinas:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 # You can find an example in  /usr/share/doc/drbd.../drbd.conf.example&lt;br /&gt;
 include &amp;quot;drbd.d/global_common.conf&amp;quot;;&lt;br /&gt;
 include &amp;quot;drbd.d/*.res&amp;quot;;&lt;br /&gt;
 resource MDcluster {&lt;br /&gt;
         protocol C;&lt;br /&gt;
         on vivaitcall-CL-UAH-1 {&lt;br /&gt;
               device /dev/drbd0;&lt;br /&gt;
               disk /dev/sda5;&lt;br /&gt;
               address 10.255.254.10:7788;&lt;br /&gt;
               meta-disk internal;&lt;br /&gt;
        }&lt;br /&gt;
        on vivaitcall-CL-UAH-2 {&lt;br /&gt;
               device /dev/drbd0;&lt;br /&gt;
               disk /dev/sda5;&lt;br /&gt;
               address 10.255.254.11:7788;&lt;br /&gt;
               meta-disk internal;&lt;br /&gt;
        }&lt;br /&gt;
        disk {&lt;br /&gt;
               on-io-error detach;&lt;br /&gt;
        }&lt;br /&gt;
        net {&lt;br /&gt;
               max-buffers 2048;&lt;br /&gt;
               ko-count 4;&lt;br /&gt;
        }&lt;br /&gt;
        syncer {&lt;br /&gt;
               rate 100M;&lt;br /&gt;
               al-extents 257;&lt;br /&gt;
        }&lt;br /&gt;
        startup {&lt;br /&gt;
                wfc-timeout 0;&lt;br /&gt;
                degr-wfc-timeout 120;&lt;br /&gt;
        }&lt;br /&gt;
 }&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Reiniciamos el sistema para que el kernel tome los cambios.&lt;br /&gt;
* Inicializamos el recurso, para ello primero deberemos crear los recursos DRBD teclearemos en ambas maquinas. Desde /etc.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
  drbdadm create-md MDcluster  (no y yes )&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Si tenemos algún problema porque ya exista sistema de ficheros.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 dd if=/dev/zero of=/dev/sda5 bs=1M count=128&lt;br /&gt;
 drbdadm create-md MDcluster  (no y yes )&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Reiniciamos ambas maquinas para que su kernel tome los cambios.&lt;br /&gt;
* Levantamos el servicio del DRBD en ambos servidores (nos preguntara que si queremos enviar los datos a los desarrolladores de drbd) tecleando no, no se envían.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 service drbd start&lt;br /&gt;
 /etc/init.d/drbd start&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Ahora &amp;lt;u&amp;gt;ambas maquinas son secundarias&amp;lt;/u&amp;gt;.&lt;br /&gt;
: Indicar cual de las dos maquinas usaremos como primaria, por tanto en la maquina elegida habra que ejecutar:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 drbdadm -- --overwrite-data-of-peer primary all (en una máquina)&lt;br /&gt;
:&amp;lt;small&amp;gt;'''Nota:''' La ip virtual que va a estar asignada a la maquina activa es  172.25.129.70.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Podemos teclear el comando '''''cat''''' para ver si esta sincronizando  y su progreso:&lt;br /&gt;
&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 cat /proc/drbd&lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' El servicio DRBD  aparecera como '''''Primary/Secondary'''''  si ejecutamos en el primario ; &lt;br /&gt;
 y aparecerá ''''Secondary/Primary'''' si lo ejecutamos en el secundario. &amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
* Instalación de los script de arranque:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 update-rc.d -f drbd remove (en las dos maquinas)&lt;br /&gt;
 update-rc.d drbd start 13 2 3 4 5 . stop 87 0 1 6 . (en las dos máquinas)&lt;br /&gt;
|}&lt;br /&gt;
* Seleccionar la fuente de sincronización.&lt;br /&gt;
:Formateamos un disco de la maquina que queramos que funcione como fuente del servicio DRBD, para evitar conflictos:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 mkfs.ext4  /dev/drbd0&lt;br /&gt;
|}&lt;br /&gt;
: Creamos el directorio sobre el que vamos a montar el disco, en ambas maquinas.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 mkdir  /HDcluster&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Creamos un archivo dentro '''''/HDcluster''''' de que se verá solo cuando el disco no está montado en ambas maquinas.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 touch sinMontar&lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' Este archivo nos puede servir para monitorizar mediante zabbix, nagios, ... que el disco no está montado.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:  En una de las maquinas montamos el disco (desde fuera del directorio HDcluster) &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 mount  /dev/drbd0 /HDcluster&lt;br /&gt;
|}&lt;br /&gt;
* Procedemos a mover todos los datos que necesitemos en este disco y a crear accesos directos, los directorios que vamos a mover son los siguientes:&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 /etc/asterisk&lt;br /&gt;
 /var/lib/asterisk&lt;br /&gt;
 /usr/lib/asterisk&lt;br /&gt;
 /usr/spool/asterisk&lt;br /&gt;
 /var/lib/mysql&lt;br /&gt;
 /var/tftp/&lt;br /&gt;
|}&lt;br /&gt;
: El procedimiento que vamos a seguir es el siguiente, en el primer ordenador:&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 '''Cd /HDcluster'''&lt;br /&gt;
 '''tar -zcvf etc-asterisk.tgz /etc/asterisk'''&lt;br /&gt;
 '''tar -zxvf  etc-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /etc/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/etc/asterisk /etc/asterisk'''&lt;br /&gt;
 '''tar -zcvf var-lib-asterisk.tgz /var/lib/asterisk'''&lt;br /&gt;
 '''tar -zxvf  var-lib-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /var/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/asterisk /var/lib/asterisk'''&lt;br /&gt;
 '''tar -zcvf usr-lib-asterisk.tgz /usr/lib/asterisk'''&lt;br /&gt;
 '''tar -zxvf  usr-lib-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /usr/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/usr/lib/asterisk /usr/lib/asterisk'''&lt;br /&gt;
 '''tar -zcvf var-spool-asterisk.tgz /var/spool/asterisk'''&lt;br /&gt;
 '''tar -zxvf  var-spool-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /var/spool/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/spool/asterisk /var/spool/asterisk'''&lt;br /&gt;
 '''tar -zcvf var-lib-mysql.tgz /var/lib/mysql'''&lt;br /&gt;
 '''tar -zxvf  var-lib-mysql.tgz'''&lt;br /&gt;
 '''rm -rf /var/lib/mysql'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/mysql /var/lib/mysql'''&lt;br /&gt;
 '''tar -zcvf var-lib-phoneprov-tftp.tgz /var/lib/phoneprov-tftp/'''&lt;br /&gt;
 '''tar -zxvf  var-lib-phoneprov-tftp.tgz'''&lt;br /&gt;
 '''rm -rf /var/lib/phoneprov-tftp/'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/phoneprov-tftp /var/lib/phoneprov-tftp'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: En la segunda maquina debemos borrar los directorios y crear los accesos directos.&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''rm -rf /etc/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/etc/asterisk /etc/asterisk'''&lt;br /&gt;
 '''rm -rf /var/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/asterisk /var/lib/asterisk'''&lt;br /&gt;
 '''rm -rf /usr/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/usr/lib/asterisk /usr/lib/asterisk'''&lt;br /&gt;
 '''rm -rf /var/spool/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/spool/asterisk /var/spool/asterisk'''&lt;br /&gt;
 '''rm -rf /var/lib/mysql'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/mysql /var/lib/mysql'''&lt;br /&gt;
 '''rm -rf /var/lib/phoneprov-tftp'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/phoneprov-tftp /var/lib/phoneprov-tftp'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Configurar heartbeat para las dos maquinas.&lt;br /&gt;
: Instalamos heartbeat en las dos maquinas. '''En UBUNTU Server 14.04 ya está instalado.'''&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 aptitude install heartbeat&lt;br /&gt;
|}&lt;br /&gt;
: Debemos modificar 3 ficheros en cada una de las maquinas, estos se encuentran en '''/etc/ha.d'''. El primer fichero a modificar es '''''ha.cf.''''':&lt;br /&gt;
:: En la maquina ''vivaitcall-CL-UAH-1'' es: &lt;br /&gt;
::{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# cat /etc/ha.d/ha.cf&lt;br /&gt;
 '''# Explicacion en /usr/share/doc/heartbeat/ha.cf.gz'''&lt;br /&gt;
 &lt;br /&gt;
 '''udpport 694'''&lt;br /&gt;
 '''baud 19200'''&lt;br /&gt;
 '''auto_failback off'''&lt;br /&gt;
 '''use_logd yes'''&lt;br /&gt;
 '''crm no'''&lt;br /&gt;
 &lt;br /&gt;
 '''# Temporizaciones en segs'''&lt;br /&gt;
 '''logfacility local0'''&lt;br /&gt;
 '''keepalive 2'''&lt;br /&gt;
 '''deadtime 8'''&lt;br /&gt;
 '''warntime 16'''&lt;br /&gt;
 '''initdead 64'''&lt;br /&gt;
 '''deadping 6'''&lt;br /&gt;
 &lt;br /&gt;
 '''#ucast bond0 vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''ucast bond0 vivaitcall-CL-UAH-2'''&lt;br /&gt;
 &lt;br /&gt;
 '''#ucast em3 vivaitcall-CL-UAH-1-em3'''&lt;br /&gt;
 '''ucast em3 vivaitcall-CL-UAH-2-em3'''&lt;br /&gt;
 &lt;br /&gt;
 '''#Ping a puerta de enlace,gw1,gw2,gw3,gw4'''&lt;br /&gt;
 '''ping_group red_local 10.255.255.12'''&lt;br /&gt;
 &lt;br /&gt;
 '''respawn hacluster /usr/lib/heartbeat/ipfail'''&lt;br /&gt;
 '''apiauth ipfail gid=haclient uid=hacluster'''&lt;br /&gt;
 &lt;br /&gt;
 '''node vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''node vivaitcall-CL-UAH-2'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:: Y en la maquina ''vivaitcall-CL-palacio-2'' es:&lt;br /&gt;
::{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# cat /etc/ha.d/ha.cf&lt;br /&gt;
 '''# Explicacion en /usr/share/doc/heartbeat/ha.cf.gz'''&lt;br /&gt;
 &lt;br /&gt;
 '''udpport 694'''&lt;br /&gt;
 '''baud 19200'''&lt;br /&gt;
 '''auto_failback off'''&lt;br /&gt;
 '''use_logd yes'''&lt;br /&gt;
 '''crm no'''&lt;br /&gt;
 &lt;br /&gt;
 '''# Temporizaciones en segs'''&lt;br /&gt;
 '''logfacility local0'''&lt;br /&gt;
 '''keepalive 2'''&lt;br /&gt;
 '''deadtime 8'''&lt;br /&gt;
 '''warntime 16'''&lt;br /&gt;
 '''initdead 64'''&lt;br /&gt;
 '''deadping 6'''&lt;br /&gt;
 &lt;br /&gt;
 '''ucast bond0 vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''#ucast bond0 vivaitcall-CL-UAH-2'''&lt;br /&gt;
 &lt;br /&gt;
 '''ucast em3 vivaitcall-CL-UAH-1-em3'''&lt;br /&gt;
 '''#ucast em3 vivaitcall-CL-UAH-2-em3'''&lt;br /&gt;
 &lt;br /&gt;
 '''#Ping a puerta de enlace gw1 gw2 gw3 gw4'''&lt;br /&gt;
 '''ping_group red_local 10.255.255.12'''&lt;br /&gt;
 &lt;br /&gt;
 '''respawn hacluster /usr/lib/heartbeat/ipfail'''&lt;br /&gt;
 '''apiauth ipfail gid=haclient uid=hacluster'''&lt;br /&gt;
 &lt;br /&gt;
 '''node vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''node vivaitcall-CL-UAH-2'''&lt;br /&gt;
|}&lt;br /&gt;
::'''Nota:''' El parámetro '''auto_failback''' se utiliza para indicar si queremos que al recuperarse una maquina adquiera los recursos sobre los que tiene prioridad.&lt;br /&gt;
:El segundo fichero es '''''authkeys''''',, este fichero es el mismo en ambas maquinas: &lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 chmod 600 authkeys '''(importante)'''&lt;br /&gt;
 auth 1&lt;br /&gt;
 1 sha1 claveSecretaATope&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:El tercer fichero '''haresources''', donde especificaremos en las dos maquinas que deben apuntar a la maquina que queremos que tenga prioridad en la adquisición de los recursos, este fichero es el mismo en las dos maquinas: &lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 MÁQUINA 1 -&amp;gt; vivaitcall-CL-palacio-1 hb_mdtel&lt;br /&gt;
 MÁQUINA 2-&amp;gt; vivaitcall-CL-palacio-1 hb_mdtel &lt;br /&gt;
|}&lt;br /&gt;
: Copiaremos en el directorio '''/etc/ha.d/resource.d/''' los scripts de arranque con permisos 755 (lo podemos hacer mediante WINSCP). Los scripts se encuentran en '''''C:\Documents and Settings\javier.gutierrez.MDTEL\Mis documentos\Centrales\Asterisk\Cluster\scripts'''''.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 chmod 755 hb_catalina&lt;br /&gt;
 chmod 755 hb_mdtel&lt;br /&gt;
 chmod 755 hb_mdtel_firewall&lt;br /&gt;
|}&lt;br /&gt;
: Deberemos editar  el archivo '''hb_mdtel'''&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 (IP flotante a.b.c.d./mask) 10.255.255.10&lt;br /&gt;
 CAD_IP_FLOTA=10.255.255.10/24/bond0&lt;br /&gt;
|}&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* Paramos el proceso '''myAcdSuperv'''.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 mv /etc/rc2.d/S02myAcdSuperv s02myAcdSuperv&lt;br /&gt;
|}&lt;br /&gt;
* Reiniciamos ambas maquinas para que su kernel tome los cambios.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de buen funcionamiento del cluster ====&lt;br /&gt;
* La maquina activa tiene que tener en HDcluster montado el disco con todos sus directorios y la maquina inactiva no (tenemos que ver el archivo que hemos creado &amp;quot;sinMontar&amp;quot;). &lt;br /&gt;
* La ip virtual tiene que estar en la maquina activa (ifconfig)  y no tiene que estar en la inactiva. &lt;br /&gt;
* El asterisk tiene que estar arrancado en la maquina activa y parado en la inactiva. &lt;br /&gt;
* Tecleando la ip de la maquina activa en un navegador debemos acceder al portal de vivait-call y en la inactiva no debe de estar activo. &lt;br /&gt;
* Para cambiar el cluster manualmente podemos utilizar los siguientes comandos:&lt;br /&gt;
:{|&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
  /usr/share/heartbeat/hb_takeover&lt;br /&gt;
|}&lt;br /&gt;
: La maquina desde la que se ejecuta se convierte en la maquina activa&lt;br /&gt;
:{|&lt;br /&gt;
 |- &lt;br /&gt;
 |&lt;br /&gt;
  /usr/share/heartbeat/hb_standby&lt;br /&gt;
 |}&lt;br /&gt;
: La maquina desde la que se ejecuta deja de ser la maquina activa&lt;br /&gt;
&lt;br /&gt;
==== Notas para MySQL ====&lt;br /&gt;
Si mysql es parte del cluster tenemos que tener en cuenta dos cosas:&lt;br /&gt;
&lt;br /&gt;
* El archivo '''/etc/mysql/debían.cnf''' contiene una clave que debe ser igual en ambas maquinas y debe ser la clave de la máquina de donde cojamos la base de datos.&amp;lt;br&amp;gt;&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 # Automatically generated for Debian scripts. DO NOT TOUCH!&lt;br /&gt;
 [client]&lt;br /&gt;
 host     = localhost&lt;br /&gt;
 user     = debian-sys-maint&lt;br /&gt;
 password = AI6AdPtnhLUrNm1S&lt;br /&gt;
 socket   = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysql_upgrade]&lt;br /&gt;
 user     = debian-sys-maint&lt;br /&gt;
 password = AI6AdPtnhLUrNm1S&lt;br /&gt;
 socket   = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 basedir  = /usr&lt;br /&gt;
|} &amp;lt;br&amp;gt;&lt;br /&gt;
* El archivo '''/etc/apparmor.d/usr.sbin.mysqld''' contiene donde pueden estar ubicados los archivos de mysql, al cambiar su ubicación y poner un enlace directo en /var/lib/mysql si no modificamos este archivo mysql no arrancara al no tener la nueva ubicación entre sus localizaciones permitidas. Este es un ejemplo de las líneas que debemos añadir. &amp;lt;br&amp;gt;&lt;br /&gt;
:{|&lt;br /&gt;
|-  &lt;br /&gt;
|&lt;br /&gt;
 /var/run/mysqld/mysqld.sock w, (copiar después de esta linea)&lt;br /&gt;
 &lt;br /&gt;
 #//!!&lt;br /&gt;
   /HDcluster/var/lib/mysql/ r,&lt;br /&gt;
   /HDcluster/var/lib/mysql/** rwk,&lt;br /&gt;
   #//!!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Notas de desincronización ====&lt;br /&gt;
EL servicio del DRBD esta iniciado pero al teclear el comando cat /proc/drbd para ver si esta sincronizando se presenta &amp;quot;'''primary/unknown&amp;quot; y/o secondary/unknown''' &amp;quot;.&lt;br /&gt;
* En el nodo primary  &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 drbdadm connect all &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* En el nodo secondary  &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 drbdadm disconnect all  &lt;br /&gt;
 drbdadm -- --discard-my-data connect all&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Adaptar red a cliente ====&lt;br /&gt;
Para adaptar la red de los equipos al entorno del cliente hay que editar los siguientes ficheros:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 /etc/network/interfaces&lt;br /&gt;
 /etc/resolv.conf&lt;br /&gt;
 /etc/hosts&lt;br /&gt;
 /etc/ha.d/resource.d/hb_mdtel&lt;br /&gt;
 /etc/ha.d/ha.cf &lt;br /&gt;
 - TFTP: &lt;br /&gt;
 /etc/inetd.conf (IP del cluster)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
Tras la modificaciones oportunas, se debe reiniciar las dos máquinas para cargar las nuevas configuraciones.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Matriz de conmutación ===&lt;br /&gt;
&lt;br /&gt;
Encontramos dos diferentes núcleos de conmutación en la plataforma VIVAit:&lt;br /&gt;
&lt;br /&gt;
* Para los nodos de procesamiento ACD el núcleo de conmutación es asterisk 1.4 RSP con fuertes modificaciones realizadas por MDtel en determinados módulos (queues, chan_spy entre otros)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Para los nodos que realizan funcionalidad de gateway y/o procesamiento de telefonía corporativa, se utiliza como núcleo de conmutación asterisk 13, versión certified&lt;br /&gt;
https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Documentation&lt;br /&gt;
&lt;br /&gt;
==== Modificaciones realizadas sobre Asterisk 13 certified 2 ====&lt;br /&gt;
&lt;br /&gt;
===== Archivos añadidos por '''MD'''tel =====&lt;br /&gt;
Los archivos añadidos son los siguientes:&lt;br /&gt;
&lt;br /&gt;
* '''apps/app_ucid.c'''&lt;br /&gt;
* '''apps/app_cli.c'''&lt;br /&gt;
* '''apps/app_crash.c'''&lt;br /&gt;
* '''apps/app_mdintz.c'''&lt;br /&gt;
* '''apps/app_mdintz.exports.in'''&lt;br /&gt;
* '''include/asterisk/mdintz.h'''&lt;br /&gt;
* '''include/asterisk/ucid.h'''&lt;br /&gt;
* '''res/res_mdcal.c'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ apps/app_mdintz.exports.in '''&lt;br /&gt;
&lt;br /&gt;
Este archivo sirve para la exportación de funciones del mdintz para el uso por aplicaciones externas&lt;br /&gt;
&lt;br /&gt;
===== Modificaciones de archivos =====&lt;br /&gt;
&lt;br /&gt;
Los archivos modificados por '''MD'''tel son los mostrados a continuación:&lt;br /&gt;
&lt;br /&gt;
* '''apps/app_mixmonitor.c''' &lt;br /&gt;
* '''res/res_calendar_caldav.c'''&lt;br /&gt;
* '''contrib/scripts/safe_asterisk'''&lt;br /&gt;
* '''contrib/init.d/rc.debian.asterisk'''&lt;br /&gt;
* '''channels/sig_pri.c'''&lt;br /&gt;
* '''channels/chan_sip.c'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ main/audiohook.c''' &amp;lt;!--style=&amp;quot;color:#0000ff&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''audiohook.c''' ha sido modificado para solucionar un crash de asterisk al utilizar en el mixmonitor las opciónes r y t &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ app_crash.c '''&lt;br /&gt;
&lt;br /&gt;
Esta nueva aplicación es sólo compatible con '''Asterisk 13'''. &lt;br /&gt;
&lt;br /&gt;
La documentación de la misma se encuentra en el comando: '''&amp;quot;core show application Crash&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
Esta nueva aplicación ''permite añadir'' al plan de pruebas:&lt;br /&gt;
&lt;br /&gt;
* Generación de una parada de asterisk. (Crash(IwantToGetAnAccessViolation) ó Crash(IwantToGetADoubleFreeMem))&lt;br /&gt;
* Verificación de su impacto. Por ejemplo, no deben cortarse las llamadas en curso, si así está previsto por la topología.&lt;br /&gt;
* Correcta generación de los &amp;quot;core&amp;quot;, comprobando que funciona &amp;quot;backtrace&amp;quot; (bt).&lt;br /&gt;
&lt;br /&gt;
 '''Nota.-''' Esta aplicación no debería estar presente en una instalación de '''Asterisk 13'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ app_mdintz.c y mdintz.h''' &amp;lt;!--style=&amp;quot;color:#0000ff&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esta aplicación sirve como interfaz a entornos (funcionalidades) creados por MDtel&lt;br /&gt;
&lt;br /&gt;
Para mas información consultar la página de [[MDintz|MDintz]].&lt;br /&gt;
&lt;br /&gt;
Las rutas de estos archivos son las siguientes:&lt;br /&gt;
&lt;br /&gt;
'''apps/app_mdintz.c''' &amp;lt;br/&amp;gt;&lt;br /&gt;
'''include/asterisk/mdintz.h '''&lt;br /&gt;
&lt;br /&gt;
 '''app_mdintz.c''' :&lt;br /&gt;
&lt;br /&gt;
'''app_mdintz.c''' orientada al proceso de enrutamiento a implementar en ''intz-nimitz.''&lt;br /&gt;
&lt;br /&gt;
El archivo '''.c''' es casi igual para asterisk 1.4.24 y asterisk 13. &lt;br /&gt;
 '''Nota.-''' Cuando se compila para asterisk 13, es necesario comentar la línea que pone&amp;lt;br /&amp;gt; '''&amp;quot;#define ASTERISK_OLD&amp;quot;.'''&lt;br /&gt;
&lt;br /&gt;
Los cambios implementados son:&lt;br /&gt;
&lt;br /&gt;
* Unificación de código entre las versiones de asterisk&lt;br /&gt;
* Nuevo comando &amp;quot;qry&amp;quot;&lt;br /&gt;
* Posible resolución de &amp;quot;Mal write&amp;quot; en intz-nimitz (a verificar)&lt;br /&gt;
&lt;br /&gt;
En cuanto al nuevo comando, el formato es:&lt;br /&gt;
&lt;br /&gt;
 '''mdintz qry &amp;lt;nHostFijo&amp;gt; &amp;lt;entorno&amp;gt; &amp;lt;servicio&amp;gt; &amp;lt;par1&amp;gt;...&amp;lt;parN&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Permite interrogar a un servidor de igual modo que hace el dialplan con '''fines de diagnóstico'''. La única diferencia es que se ha añadido el parámetro '''&amp;quot;nHostFijo&amp;quot;''' que puede tomar como valor '''&amp;quot;*&amp;quot;''' (lo que solicita una interrogación secuencial a todos los servidores definidos, igual a la funcionalidad del dialplan) ó '''&amp;quot;0&amp;quot;''' a '''&amp;quot;3&amp;quot;''' (que solicita un interrogación dirigida el host indicado como hostN, y sólo a él, en archivo de configuración).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para instalarlo, es necesario copiar:&lt;br /&gt;
&lt;br /&gt;
* '''asterisk/apps/app_mdintz.c'''&lt;br /&gt;
* '''asterisk/include/asterisk/mdintz.h'''&lt;br /&gt;
* En asterisk 1.4.24 conviene asegurar que se ha actualizado '''&amp;quot;asterisk/apps/app_queue.o&amp;quot;''' y '''&amp;quot;asterisk/apps/app_queue.so&amp;quot;'''&lt;br /&gt;
* Luego '''&amp;quot;make&amp;quot;, &amp;quot;make install&amp;quot;''' y module '''&amp;quot;unload/load&amp;quot;''' (mejor &amp;quot;stop now&amp;quot; y start)&lt;br /&gt;
&lt;br /&gt;
'''→ scripts y rc.debian.asterisk'''&lt;br /&gt;
&lt;br /&gt;
cambiado contrib/scripts por el modificado por MDtel&amp;lt;br /&amp;gt;&lt;br /&gt;
cambiado contrib/init.d/rc.debian.asterisk por el modificado por MDtel &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ Carpeta mp3 añadida al directorio addons'''&lt;br /&gt;
&lt;br /&gt;
La carpeta mp3 en addons permite la reproducción desde el diaplan de los mensajes en mp3. En make menuselect hay que marcar el format_mp3 y app_mp3 e instalar el paquete mpg123 de ubuntu &lt;br /&gt;
&lt;br /&gt;
'''→ sig_pri.c'''&lt;br /&gt;
&lt;br /&gt;
Modificado para enviar/recibir el ucid en un primario qsig &lt;br /&gt;
&lt;br /&gt;
Para que se envie el ucis tenemos que habilitar el envio de facilidades en el chan_dahdi.conf&lt;br /&gt;
&lt;br /&gt;
facilityenable = yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ init.d''' &amp;lt;!--style=&amp;quot;color:#0000ff&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Uno de los archivos modificados ha sido '''init.d''', se encuentra en la ruta: '''/etc/init.d/asterisk'''. La modificación realizada es la siguiente:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;background-color:#ffffcc;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| SAFE_ASTEISK=/usr/sbin/safe_asterisk &amp;lt;br/&amp;gt;&lt;br /&gt;
if [ -x $SAFE_ASTERISK ] ; then&amp;lt;br/&amp;gt;&lt;br /&gt;
:# //!! wkw&amp;lt;br/&amp;gt;&lt;br /&gt;
:DAEMON=$SAFE_ASTERISK&amp;lt;br/&amp;gt;&lt;br /&gt;
fi&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--archivo--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''→ safe-asterisk'''&lt;br /&gt;
* Se encuentra en la siguiente ruta:'''/usr/sbin/safe-asterisk''' .En este archivo se ha modificado MAXFILES=32768&lt;br /&gt;
&lt;br /&gt;
'''→ default'''&lt;br /&gt;
&lt;br /&gt;
* Este fichero podemos encontrarlo en: '''/etc/default/asterisk'''. La finalidad de la modificación de este fichero es poder correr como usuario Asterisk, grupo asterisk y generar cores (descomentar línea)&lt;br /&gt;
Las modificaciones realizadas han sido:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;background-color:#ffffcc;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| AST_USER=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
AST_GROUP=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
COREDUMP=yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Nueva función de asterisk: app_cli.so =====&lt;br /&gt;
&lt;br /&gt;
Esta función permite ejecutar desde el '''dialplan''' un comando de línea de consola de '''asterisk (CLI).''' Su primer uso (y esperamos que no último) será para lanzar los '''notify''' que los teléfonos necesitan para el ''reaprovisionamiento'' desde el portal o desde la facilidad de movilidad de usuario.&lt;br /&gt;
&lt;br /&gt;
Básicamente ejecuta un comando y devuelve su salida. Utiliza un archivo intermedio que puede ser:&lt;br /&gt;
&lt;br /&gt;
* '''/dev/null''' si el campo se deja vacío, por tanto, no se puede recuperar la salida.&lt;br /&gt;
* '''TEMP''', en cuyo caso se crea un archivo temporal que se borra antes de finalizar la ejecución de la función.&lt;br /&gt;
* Un nombre de fichero que es responsabilidad del dialplan el borrarlo cuando proceda.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para instalarlo basta copiar '''apps/app_cli.c''' en el directorio ''' &amp;quot;apps&amp;quot; ''' de los fuentes y luego  ejecutar '''&amp;quot;make&amp;quot; y &amp;quot;make install&amp;quot;.'''&lt;br /&gt;
&lt;br /&gt;
A continuación se pasa el resultado de '''&amp;quot;core show function CLI&amp;quot; '''&lt;br /&gt;
&lt;br /&gt;
'''[Synopsis]'''&lt;br /&gt;
&lt;br /&gt;
 Lanza un comando CLI desde dialplan&lt;br /&gt;
&lt;br /&gt;
'''[Description]''' &amp;lt;br /&amp;gt;&lt;br /&gt;
 - CLI(nomArchSal,cmd)&amp;lt;br /&amp;gt;&lt;br /&gt;
 - Si 'nomArchSal' está vacio, se usa '/dev/null' y no se recupera resultado&amp;lt;br /&amp;gt;&lt;br /&gt;
 - Si 'nomArchSal'=TEMP, Se crea un archivo temporal que se borra al final&amp;lt;br /&amp;gt;&lt;br /&gt;
 - En otro caso, se crea el archivo y no se borra&lt;br /&gt;
&lt;br /&gt;
'''[Syntax]'''&amp;lt;br /&amp;gt;&lt;br /&gt;
 CLI(nomArchSal,cmd)&lt;br /&gt;
&lt;br /&gt;
'''[Arguments]'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''nomArchSal'''&lt;br /&gt;
    Archivo de salida (si se omite, /dev/null)&lt;br /&gt;
'''cmd'''&lt;br /&gt;
    Comando a ejecutar via CLI&lt;br /&gt;
&lt;br /&gt;
==== Dialplan  ====&lt;br /&gt;
&lt;br /&gt;
El Dialplan podría considerarse la columna vertebral del sistema ''Asterisk''.&lt;br /&gt;
&lt;br /&gt;
Es una colección ordenada de acciones que se llevan a cabo cuando un usuario marca una serie de números. Hace la función de una tabla de enrutamiento de llamadas.&lt;br /&gt;
&lt;br /&gt;
Todas las configuraciones generales de Asterisk están accesibles en la ruta '''/etc/asterisk'''&lt;br /&gt;
&lt;br /&gt;
'''CONCEPTOS BÁSICOS'''&lt;br /&gt;
&lt;br /&gt;
♦ '''EXTENSIONES'''&lt;br /&gt;
&lt;br /&gt;
Una extensión es una marcación en el teclado de un teléfono. Dicha configuración podemos encontrarla en el archivo '''extensions.conf''' &lt;br /&gt;
&lt;br /&gt;
Por ejemplo, un usuario podría marcar “3001” en su teléfono, y eso sería una extensión. También podría marcar un número de teléfono nacional, como por ejemplo “915881000”, y también sería una extensión.&lt;br /&gt;
&lt;br /&gt;
En Asterisk pueden definirse también extensiones como texto, por tanto no debemos relacionar las extensiones únicamente con números.&lt;br /&gt;
&lt;br /&gt;
Algunas reglas que sería interesante conocer serían las siguientes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Regla''' !! '''Descripción'''&lt;br /&gt;
|-&lt;br /&gt;
| '''X''' || Cualquier cifra de 0 a 9&lt;br /&gt;
|-&lt;br /&gt;
|'''Z'''||Cualquier cifra de 1 a 9&lt;br /&gt;
|-&lt;br /&gt;
|'''N'''||Cualquier cifra de 2 a 9&lt;br /&gt;
|-&lt;br /&gt;
|'''[x-y]'''||Cualquier cifra de &amp;quot;x&amp;quot; a &amp;quot;y&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''[xyz]'''|| 	Las cifras &amp;quot;x&amp;quot;, &amp;quot;y&amp;quot; o &amp;quot;z&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''.'''||Una o más repeticiones del símbolo anterior&lt;br /&gt;
|-&lt;br /&gt;
|'''!'''||Cero o más repeticiones del símbolo anterior&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Estas reglas son necesarias a la hora de definir por ejemplo todos los números de teléfono posibles en España &lt;br /&gt;
&lt;br /&gt;
♦ '''PRIORIDADES'''&lt;br /&gt;
&lt;br /&gt;
En lenguaje scripting, las acciones se van ejecutando de arriba a abajo en orden. En cambio, en Asterisk, el orden en el que se ejecutan las acciones es el indicado mediante números.&lt;br /&gt;
Primero se ejecutará la acción 1, luego la 2...así sucesivamente.&lt;br /&gt;
&lt;br /&gt;
Es decir no basta con definir las acciones que se llevarán a cabo, también debemos indicar el orden en el que se llevarán a cabo.&lt;br /&gt;
&lt;br /&gt;
♦ '''CONTEXTOS'''&lt;br /&gt;
&lt;br /&gt;
Es mecanismo que nos permite variar el comportamiento del sistema en función del número que se marque. Su misión es aumentar la seguridad del sistema ofreciendo servicios diferenciados en función del usuario.&lt;br /&gt;
&lt;br /&gt;
La sintaxis típica es el nombre del contexto englobado entre corchetes [nombre_contexto]. Si un dispositivo no tiene un contexto definido se redirige directamente al contexto por defecto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los ficheros que conforman el Dialplan se clasifican en:&lt;br /&gt;
&lt;br /&gt;
* '''Generales'''&lt;br /&gt;
* '''Particulares'''&lt;br /&gt;
* '''Web'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Fichero''' !! '''Función'''&lt;br /&gt;
|-&lt;br /&gt;
| '''Generales''' || Se encuentran los ficheros de propios de MDtel y Asterisk. Es importante remarcar que estos ficheros NO pueden ser modificados por el usuario.&lt;br /&gt;
|-&lt;br /&gt;
|'''Particular'''||Estos ficheros son los únicos que puede modificar el usuario&lt;br /&gt;
|-&lt;br /&gt;
|'''Web'''|| Se encierran aquí los archivos generados automáticamente por la plataforma, a través del portal&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
En función del nodo en el que estemos trabajando, encontraremos dos tipos de dialplan:&lt;br /&gt;
&lt;br /&gt;
'''* Dialplan ACD''' --&amp;gt; Dialplan que aplica a nodos ACD&lt;br /&gt;
&lt;br /&gt;
'''* Dialplan corporativa''' --&amp;gt; Dialplan que aplica a nodos de corporativa o gateways (ya sean de corporativa o ACD)&lt;br /&gt;
&lt;br /&gt;
A continuación se muestran las tablas con los ficheros correspondientes a cada Dialplan.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;FloralWhite&amp;quot;&lt;br /&gt;
|+ '''Ficheros de configuración Dialplan Corporativo'''&lt;br /&gt;
| '''GENERALES'''&lt;br /&gt;
| '''PARTICULARES'''&lt;br /&gt;
| '''WEB'''&lt;br /&gt;
|-&lt;br /&gt;
| ext_Grabaciones.conf &amp;lt;br /&amp;gt;ext_InicioLlamada.conf &amp;lt;br /&amp;gt; ext_InicioLlamada_Dahdi.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP.conf &amp;lt;br/&amp;gt;ext_InicioLlamada_TrunkSIP.conf &amp;lt;br /&amp;gt;ext_MARCAR_ColaCentralita.conf &amp;lt;br /&amp;gt; ext_MARCAR_ColaCentralita_Dial.conf&amp;lt;br /&amp;gt; ext_MARCAR_Cola.conf &amp;lt;br /&amp;gt;ext_MARCAR_Cola_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR.conf  &amp;lt;br /&amp;gt; ext_MARCAR_DejarMensaje.conf &amp;lt;br /&amp;gt; ext_MARCAR_DejarMensaje_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Extension.conf&amp;lt;br /&amp;gt;ext_MARCAR_Extension_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_nimitz.conf&amp;lt;br /&amp;gt;ext_MARCAR_Interno.conf &amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje.conf &amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR_Nodo.conf&amp;lt;br /&amp;gt;ext_MARCAR_Nodo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Servicios.conf &amp;lt;br /&amp;gt;ext_MARCAR_VDN.conf &amp;lt;br /&amp;gt;MARCAR_VDN_Dial.conf&amp;lt;br /&amp;gt;ext_MDtel.conf &amp;lt;br /&amp;gt;ext_MDtel_Var.conf &amp;lt;br /&amp;gt;ext_Subrutinas_AnchoBanda.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD_Facilidad.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD_Facilidad.conf &amp;lt;br /&amp;gt; ext_Subrutinas_Colas.conf &amp;lt;br /&amp;gt;ext_Subrutinas.conf &amp;lt;br /&amp;gt;ext_Subrutinas_Enrutamiento.conf &amp;lt;br /&amp;gt;ext_Subrutinas_finLlamada.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Grabacion.conf&amp;lt;br /&amp;gt;ext_Subrutinas_nimitz.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Varias.conf&amp;lt;br /&amp;gt;ext_Subscribe.conf&amp;lt;br /&amp;gt;ext_Transfer.conf &amp;lt;br /&amp;gt;ext_Transfer_ExtSIP.conf&amp;lt;br /&amp;gt;ext_Transfer_TrunkInternos.conf &amp;lt;br /&amp;gt;ext_TrunkInternos.conf&amp;lt;br /&amp;gt;ext_TrunkInternos_Dial.conf &amp;lt;br /&amp;gt;sip_Estatico.conf&amp;lt;br /&amp;gt; sip_GENCUST.conf &amp;lt;br /&amp;gt;sip_notify.conf &amp;lt;br /&amp;gt;queues.conf &amp;lt;br /&amp;gt; queues_GENERAL.conf &amp;lt;br /&amp;gt;queues_PLANTILLACOLAS.conf&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| ext_Enrutador_Particular.conf&amp;lt;br /&amp;gt; ext_InicioLlamada_Dahdi_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_Particular.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_TrunkSIP_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_Extension_Particular.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo_Particular.conf &amp;lt;br/&amp;gt; ext_MARCAR_Facilidad_Particular.conf&amp;lt;br /&amp;gt; ext_MARCAR_VDN_Particular.conf &amp;lt;br /&amp;gt;ext_MDtel_Particular.conf &amp;lt;br/&amp;gt; ext_TrunkInternos_Particular.conf &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|asterisk_WEB.conf &amp;lt;br /&amp;gt; ext_MDtel_WEB.conf &amp;lt;br /&amp;gt; sip_trunkExt_WEB.conf &amp;lt;br /&amp;gt;sip_trunkInt_WEB.conf &amp;lt;br /&amp;gt;sip_trunk_WEB.conf &amp;lt;br /&amp;gt; sip_WEB.conf &amp;lt;br /&amp;gt; queues_WEB.conf&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;FloralWhite&amp;quot;&lt;br /&gt;
|+ '''Ficheros de configuración Dialplan ACD'''&lt;br /&gt;
| '''GENERALES'''&lt;br /&gt;
| '''PARTICULARES'''&lt;br /&gt;
| '''WEB'''&lt;br /&gt;
|-&lt;br /&gt;
| ext_Enrutador.conf&amp;lt;br /&amp;gt;ext_Grabaciones.conf &amp;lt;br /&amp;gt; ext_InicioLlamada.conf &amp;lt;br /&amp;gt; ext_InicioLlamada_CTI.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_Dahdi.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_Marcador.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_TrunkSIP.conf &amp;lt;br /&amp;gt;ext_MARCAR_ColaCentralita.conf &amp;lt;br /&amp;gt;ext_MARCAR_ColaCentralita_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR_Cola.conf &amp;lt;br /&amp;gt;ext_MARCAR_Cola_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR.conf &amp;lt;br /&amp;gt;ext_MARCAR_DejarMensaje.conf &amp;lt;br /&amp;gt;ext_MARCAR_DejarMensaje_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Extension.conf &amp;lt;br /&amp;gt;ext_MARCAR_Extension_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_nimitz.conf&amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje.conf &amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Nodo.conf &amp;lt;br /&amp;gt;ext_MARCAR_Nodo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR_Servicios.conf &amp;lt;br /&amp;gt;ext_MARCAR_VDN.conf &amp;lt;br /&amp;gt;ext_MARCAR_VDN_Dial.conf&amp;lt;br /&amp;gt;ext_MDtel.conf &amp;lt;br /&amp;gt;ext_MDtel_Var.conf &amp;lt;br /&amp;gt;ext_Subrutinas_AnchoBanda.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD_Facilidad.conf &amp;lt;br /&amp;gt; ext_Subrutinas_Colas.conf &amp;lt;br /&amp;gt;ext_Subrutinas.conf &amp;lt;br /&amp;gt;ext_Subrutinas_Enrutamiento.conf &amp;lt;br /&amp;gt; ext_Subrutinas_finLlamada.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Grabacion.conf &amp;lt;br /&amp;gt;ext_Subrutinas_nimitz.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Varias.conf &amp;lt;br /&amp;gt;ext_Subscribe.conf&amp;lt;br /&amp;gt;ext_Transfer.conf &amp;lt;br /&amp;gt;ext_Transfer_ExtSIP.conf&amp;lt;br /&amp;gt;ext_Transfer_TrunkInternos.conf &amp;lt;br /&amp;gt;ext_TrunkInternos.conf &amp;lt;br /&amp;gt;ext_TrunkInternos_Dial.conf &amp;lt;br /&amp;gt;queues_GENERAL.conf&amp;lt;br /&amp;gt;queues_PLANTILLACOLAS.conf &amp;lt;br /&amp;gt;sip_GENCUST.conf &amp;lt;br /&amp;gt;sip_GENERAL.conf &amp;lt;br /&amp;gt;sip_notify.conf &amp;lt;br /&amp;gt;sip_PLANTILLAEXT.conf&amp;lt;br /&amp;gt;sip_supervision.conf &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| ext_Enrutador_Particular.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_CTI_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_Dahdi_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_Marcador_Particular.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_Particular.conf.&amp;lt;br /&amp;gt;ext_InicioLlamada_TrunkSIP_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_Externo_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_VDN_Particular.conf&amp;lt;br /&amp;gt; ext_MDtel_Particular.conf&amp;lt;br /&amp;gt;ext_TrunkInternos_Particular.conf&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
|asterisk_WEB.conf &amp;lt;br /&amp;gt; ext_MDtel_WEB.conf &amp;lt;br /&amp;gt;queues_WEB.conf&amp;lt;br /&amp;gt; sip_trunkInt_WEB.conf &amp;lt;br /&amp;gt;sip_WEB.conf &amp;lt;br /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Servicios networking ===&lt;br /&gt;
Son muy importantes las configuraciones adecuadas de los servicios de:&lt;br /&gt;
&lt;br /&gt;
* '''NTP''': El sistema en global ha de estar sincronizado; todos los servidores y puestos de trabajo (en el caso de ''VIVA''it Suite) han de estar perfectamente sincronizados; los servidores de la plataforma se sincronizarán con el NTP del cliente; si el cliente no tiene NTP será necesario que un servidor de la plataforma se sincronice con un NTP externo y este sea el servidor para el resto de la plataforma&lt;br /&gt;
&lt;br /&gt;
* '''DNS''': La configuración de DNS de la plataforma será coherente con el resto de la plataforma IT del cliente&lt;br /&gt;
&lt;br /&gt;
* '''DHCP''': Es necesario coordinar con el cliente la asignación de direcciones para los diferentes elementos de la plataforma '''''VIVA'''''it, fundamentalmente para terminales telefónicos; en este caso además será necesario activa la opción 66 que permitirá definir el servidor TFTP del que los terminales cogerán sus ficheros de aprovisionamiento&lt;br /&gt;
&lt;br /&gt;
=== Bases de datos (BBDD)===&lt;br /&gt;
&lt;br /&gt;
La base de datos del sistema se basa en el motor de base de datos MySQL, es un elemento crítico del sistema, en el que insertan y del que obtiene mucha información múltiples procesos.&lt;br /&gt;
Muchas comunicaciones entre procesos se realizan vía Base de Datos (tabla COM_COMUNICADOS). Pueden existir distintas instancias de base de datos que explicadas en las siguientes secciones, nuestra base de datos tiene la siguiente estructura: [[Base de datos|Información completa de la BD]]. Podéis ampliar más información en https://dev.mysql.com/doc/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== BBDD Tiempo Real ====&lt;br /&gt;
En la base de datos de tiempo real insertan información todos los procesos del sistema, y se realizan los cambios en configuración utilizando como herramienta el portal de administración y '''''VIVA'''''it Supervisor&lt;br /&gt;
&lt;br /&gt;
De la base de datos de tiempo real leen los procesos que requieren información, y las aplicaciones:&lt;br /&gt;
*'''''VIVA'''''it Supervisor (para reporting de tiempo real)&lt;br /&gt;
*PanelWeb&lt;br /&gt;
*Datos de sesión de '''''VIVA'''''it Desk&lt;br /&gt;
*Monitorización Zabbix&lt;br /&gt;
* Otros&lt;br /&gt;
&lt;br /&gt;
El portal de administración se encarga de escribir las configuraciones añadidas o modificadas en la base de datos&lt;br /&gt;
&lt;br /&gt;
Para cuando la BDTR contienen un número masivo de datos, existe un script que borra el contenido de ciertas tablas de la BD (tablas DAT_) dejando solamente datos de un cierto número de días configurable.&lt;br /&gt;
Este script se llama borraRegistrosNimitz.pl; para más información consultar el apartado de Howto's.&lt;br /&gt;
&lt;br /&gt;
'''Por defecto, a partir de la versión 3.2.0 de la plataforma, los registros se mantedrán 2 meses.'''&lt;br /&gt;
&lt;br /&gt;
==== BBDD Réplica ====&lt;br /&gt;
A efectos de asegurar las prestaciones del sistema, se establece una réplica de la base de datos, sincronizada con la de tiempo real; los procesos y aplicaciones pesados, que realicen consultas a las base de datos que puedan comprometer las prestaciones del sistema atacan a la réplica y nunca a la base de datos de tiempo real&lt;br /&gt;
&lt;br /&gt;
Es posible que en instalaciones pequeñas no exista réplica, en cuyo caso se establece una base de datos unificada sobre la de tiempo real, en la que se añaden índices y procedimientos almacenados que típicamente residen en la de réplica.&lt;br /&gt;
&lt;br /&gt;
Es posible establecer tantas réplicas como sean necesarias si diferentes procesos pesados se penalizan en exceso, si bien una implantación tipo contemplará una sola&lt;br /&gt;
&lt;br /&gt;
Algunos procesos que utilizan la base de datos de réplica son:&lt;br /&gt;
*'''''VIVA'''''it Reporting&lt;br /&gt;
*'''''VIVA'''''it Tracker&lt;br /&gt;
*Histórico en tiempo real de '''''VIVA'''''it Supervisor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANTE: Ningún proceso, programa, aplicación, etc. escribe en la base de datos de réplica; tan solo se extrae información'''&lt;br /&gt;
&lt;br /&gt;
==== BBDD de copia ====&lt;br /&gt;
A efectos de asegurar el funcionamiento y como medida de contingencia ante un problema puntual de comunicación con la BD de tiempo real, en cada nodo disponemos de una BD de copia local. Posiblemente de un tamaño menor que la BD de tiempo real, dependiendo de cuanto tiempo pase hasta la próxima sincronización con la base de tiempo real.Esta base de datos llamada '''nimitzCopia'''.&lt;br /&gt;
  &lt;br /&gt;
Solo entrara en funcionamiento,cuando se produzca el problema mencionado, dejando acceder a los datos y poder dar servicio a la empresa mientras se soluciona el problema.&lt;br /&gt;
&lt;br /&gt;
===== Backup y restore =====&lt;br /&gt;
&lt;br /&gt;
Se utilizan dos script, para realizar la copia de seguridad y restaurar en la base de datos de copia local que son:&lt;br /&gt;
&lt;br /&gt;
* El proceso '''bdCentral.sh''' que es el encargado de realizar la copia de seguridad. Tiene un archivo de configuración bdCentral.conf. En este archivo hay un parámetro (IGNORE_TABLAS) que indica las tablas de las que NO se realizará copia de seguridad. Toda tabla que no se indique formará parte de la copia de seguridad. Vuelca los resultados en /var/log/bdCentral.log&lt;br /&gt;
* El proceso '''bdNodo.sh''' que es el encargado de descargar la copia de seguridad y restaurarla en local. Tiene un archivo de configuración bdNodo.conf. Vuelca los resultados en /var/log/bdNodo.log. El fichero de backup se copia mediante el usuario sincroniza, que deberá poder acceder sin contraseña al servidor donde reside la copia.&lt;br /&gt;
&lt;br /&gt;
En caso de producirse algún error en alguno de los procesos, marcarán dicho error en el log con una línea que comienza con la cadena &amp;quot;*ERROR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Diagnósticos y operaciones sobre bases de datos ====&lt;br /&gt;
&lt;br /&gt;
=====Comprobación que una base de datos está arrancada=====&lt;br /&gt;
Para comprobar si la base de datos está arrancada debemos poner en el terminal : '''ps aux | grep mysql'''&lt;br /&gt;
&lt;br /&gt;
Si la base de datos está arrancada y funcionando correctamente se nos mostrará en el terminal:&lt;br /&gt;
[[Archivo:Base_Datos_bien.png‎ |500px|center]]&lt;br /&gt;
&lt;br /&gt;
Por el contrario, si la base de datos presenta algun problema el mensaje mostrado será:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Base_datos_mal.png |center]]&lt;br /&gt;
&lt;br /&gt;
=====Comprobación que la base de datos de réplica está sincronizada con la base de datos de tiempo real.=====&lt;br /&gt;
&lt;br /&gt;
Si se necesita verificar que la base de réplica está sincronizada con la base de datos en tiempo real basta con acudir al comando : '''show slave status\G'''.&lt;br /&gt;
&lt;br /&gt;
Una vez introducido veremos:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Replica.png |980px|center]]&lt;br /&gt;
&lt;br /&gt;
Comandos importantes, desde dentro consola de Mysql:&lt;br /&gt;
&lt;br /&gt;
 '''show master status''': Realizado desde el master&lt;br /&gt;
 '''show slave status''': Realizado desde el esclavo; el valor &amp;quot;seconds behind master&amp;quot; nos indica&lt;br /&gt;
 cuanto está retrasada la réplica con respecto a la base de datos de tiempo real. Si el valor de este campo es elevado nos indicará &lt;br /&gt;
 que la base de datos real con la réplica no estará sincronizada, por tanto, nos interesa que este valor sea lo más pequeño posible.&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Procesos propios ===&lt;br /&gt;
&lt;br /&gt;
==== bdCentral ====&lt;br /&gt;
&lt;br /&gt;
El proceso ''bdCentral.sh'' es el encargado de realizar la copia de seguridad. Tiene un archivo de configuración ''bdCentral.conf'' el cual puede encontrarse en la ruta '''/etc/MDtel/bdCentral.conf'''. En este archivo hay un parámetro (IGNORE_TABLAS) que indica las tablas de las que NO se realizará copia de seguridad. Toda tabla que no se indique formará parte de la copia de seguridad. Vuelca los resultados en /var/log/bdCentral.log&lt;br /&gt;
&lt;br /&gt;
En caso de producirse algún error, se marcará dicho error en el log con una línea que comienza con la cadena &amp;quot;*ERROR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Para ejecutar bdCentral:&lt;br /&gt;
 bdCentral.sh /etc/MDtel/bdCentral.conf&lt;br /&gt;
&lt;br /&gt;
Estos procesos se ejecutan automáticamente. Para ello está copiado el fichero bdCentral a /etc/cron.d.&lt;br /&gt;
&lt;br /&gt;
Por defecto la programación vienen comentada por lo que será necesario activarlo.&lt;br /&gt;
&lt;br /&gt;
Para que se roten los logs hay que copiar el fichero bdCentral.logrotate a /etc/logrotate.d (como bdCentral)&lt;br /&gt;
La ruta donde se encuentran los logs es la siguiente: '''/var/log/myAcdSuperv.log'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
*A continuación se explica la utilidad de los campos mas relevantes del fichero de configuración bdCentral.conf. &lt;br /&gt;
ARCH_LOG : &lt;br /&gt;
BDHOST: Localización de la base de datos&lt;br /&gt;
BDUSU: Usuario para la base de datos&lt;br /&gt;
BDRUTA: Ruta donde se encuentra la base de datos&lt;br /&gt;
IGNORE_TABLAS:&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== bdNodo ====&lt;br /&gt;
El proceso bdNodo.sh es el encargado de descargar la copia de seguridad y restaurarla en local. Tiene un archivo de configuración bdNodo.conf, este archivo puede encontrarse en la ruta '''/etc/MDtel/bdNodo.conf.''' Vuelca los resultados en /var/log/bdNodo.log. El fichero de backup se copia mediante el usuario sincroniza, que deberá poder acceder sin contraseña al servidor donde reside la copia.&lt;br /&gt;
&lt;br /&gt;
En caso de producirse algún error, se marcará dicho error en el log con una línea que comienza con la cadena &amp;quot;*ERROR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Para ejecutar bdNodo:&lt;br /&gt;
&lt;br /&gt;
 bdNodo.sh /etc/MDtel/bdNodo.conf&lt;br /&gt;
&lt;br /&gt;
Estos procesos se ejecutan automáticamente. Para ello está copiado el fichero bdNodo a /etc/cron.d.&lt;br /&gt;
&lt;br /&gt;
Por defecto la programación vienen comentada por lo que será necesario activarlo.&lt;br /&gt;
&lt;br /&gt;
Para que se roten los logs hay que copiar el fichero bdNodo.logrotate a /etc/logrotate.d (como bdNodo)&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Intz-Nimitz ====&lt;br /&gt;
&lt;br /&gt;
Permite integrar procesos de asterisk (del dialplan) con la base de datos; por ejemplo es el que graba segmentos, inspecciona donde esta registrado un agente…etc. La estabilidad de este proceso es importante para el funcionamiento del sistema, si bien las llamadas entran en caso de no estar disponible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para mas información consultar la página de [[intz-nimitz|intz-nimitz]].&lt;br /&gt;
&lt;br /&gt;
Desde un SSH ejecuta el comando “nc ip_maquina 1115”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1115'''&lt;br /&gt;
 intz-nimitz sis ver='V02.6' inic='20140401 110116' alarmas=21 ultAlar='20140414 171244'&lt;br /&gt;
 intz-nimitz gmp msj=942/1024 buf=1024/1024 tarea=16/102&lt;br /&gt;
 intz-nimitz tmp uptime=1816550 (21d 0h 35m 50s)&lt;br /&gt;
 intz-nimitz vic identif='cms1' entorno='nimitz' conx=0/128 numConx=1018(0)&lt;br /&gt;
 intz-nimitz mys curro=80/0/0/0 soli=1012(0) soliErr=6(0) soliEncol=0(0/0)&lt;br /&gt;
 intz-nimitz cache colas=128/10/0/0 vdn=128/8/0/0 usuExten=10/0/0/0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parámetro!!Descripción&lt;br /&gt;
|-&lt;br /&gt;
|sis/ver||Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|sis/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|Sis/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|Sis/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/msj||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/buf||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/tarea||&lt;br /&gt;
|-&lt;br /&gt;
|Tmp/uptime||Tiempo que lleva el servicio activo&lt;br /&gt;
|-&lt;br /&gt;
|Vic/identif||Etiqueta de identificación del servicio&lt;br /&gt;
|-&lt;br /&gt;
|Vic/entorno||Entorno de base de datos&lt;br /&gt;
|-&lt;br /&gt;
|Vic/conx||Conexiones activas/conexiones máximas&lt;br /&gt;
|-&lt;br /&gt;
|Vic/numConx||Conexiones totales (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|Mys/curro||Número de hilos contra la base de datos&lt;br /&gt;
|-&lt;br /&gt;
|Mys/soli||Conexiones solicitadas (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|Mys/soliErr||Conexiones solicitadas con error (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|Mys/soliEncol||Conexiones encoladas&lt;br /&gt;
|-&lt;br /&gt;
|Cache/cola|| Colas monitorizadas/&lt;br /&gt;
|-&lt;br /&gt;
|Cache/vdn||VDN’s monitorizados&lt;br /&gt;
|-&lt;br /&gt;
|Cache/usuExten||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en  '''/etc/MDtel/intz-nimitz.conf'''&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/intz-nimitz.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
A continuación se muestran los campos mas importantes del fichero de configuración intz-nimitz.conf:&lt;br /&gt;
&lt;br /&gt;
enrutamiento &lt;br /&gt;
{ &lt;br /&gt;
        hay_enrutamiento = 1 &lt;br /&gt;
        max_pre_ruta_regs = 4 &lt;br /&gt;
        max_ruta = 4 &lt;br /&gt;
        max_ruta_desvios = 2 &lt;br /&gt;
# Filtro de informacion de ancho de banda &lt;br /&gt;
# MYSDanchoBandaPasoNinguno      0 &lt;br /&gt;
# MYSDanchoBandaPasoSoloDirectos 1 &lt;br /&gt;
# MYSDanchoBandaPasoSoloEnPaso   2 &lt;br /&gt;
# MYSDanchoBandaPasoTodos        3 &lt;br /&gt;
        filtro_ancho_banda = 1 &lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
mysql &lt;br /&gt;
{ &lt;br /&gt;
        hay_mysql = 1   Indica si hay base de datos mysql&lt;br /&gt;
        host = BDTR &lt;br /&gt;
        usuario = nimitz   Usuario base de datos&lt;br /&gt;
        clave = phikau3iwCe4O0PP5b09ng==   clave base de datos&lt;br /&gt;
        base_datos = nimitz &lt;br /&gt;
        bd_supervivencia = 0 &lt;br /&gt;
        num_curro = 10 &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== motorSal ====&lt;br /&gt;
Parte fundamental del proceso de marcación saliente, gestiona como hay que llamar a los diferentes contactos asignados a las campañas. Transforma los contactos en intentos de marcación.&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH ejecuta el comando “nc ip_maquina 1120”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1120'''&lt;br /&gt;
 motorSal sis ver='V01.4' inic='20140725 140832' alarmas=1 ultAlar='20140725 140832'&lt;br /&gt;
 motorSal gmp msj=253/256 buf=256/256 tarea=99/102&lt;br /&gt;
 motorSal tmp uptime=600165 (6d 22h 42m 45s)&lt;br /&gt;
 motorSal mtr mys=1 ocup=0% planif=28(0) intento=26(0)&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parámetro!!Descripción&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ver||Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/msj||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/buf||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/tarea||&lt;br /&gt;
|-&lt;br /&gt;
|Tmp/uptime||Tiempo que lleva corriendo&lt;br /&gt;
|-&lt;br /&gt;
|mtr/mys||Si está conectado al MySQL&lt;br /&gt;
|-&lt;br /&gt;
|mtr/ocup||Porcentaje de ocupación&lt;br /&gt;
|-&lt;br /&gt;
|mtr/planif||Contactos planificados Totales (Último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|mtr/intento||Intentos totales (Ültimo minuto)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Posee un fichero de configuración llamado ''motorSal.conf'' en la ruta '''/etc/MDtel/motorSal.conf'''.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:Las variables que normalmente son modificadas son las siguientes:&lt;br /&gt;
&lt;br /&gt;
mysql&lt;br /&gt;
{&lt;br /&gt;
hay_mysql = 1&lt;br /&gt;
Indica si hay base de datos mysql&lt;br /&gt;
host = localhost&lt;br /&gt;
usuario = nimitz&lt;br /&gt;
Usuario base de datos&lt;br /&gt;
Clave base de datos&lt;br /&gt;
base_datos = nimitz&lt;br /&gt;
}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Respecto a los logs del motorSal consultar el siguiente apartado: [[Trazas motorSal]]. Los logs pueden verse en la ruta '''/var/log/intz-nimitz.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== MyACDSuperv ====&lt;br /&gt;
Refleja el estado de las colas de asterisk en la base de datos; tiene sentido a efectos de estadísticas e informes, pero no a efectos de funcionamiento de la conmutación de voz.&lt;br /&gt;
&lt;br /&gt;
Es el responsable de mostrar información en las ventanes de tiempo real del supervisor.&lt;br /&gt;
&lt;br /&gt;
Es también el proceso que genera las llamadas en el marcador automático de '''''VIVA'''''it Suite.&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando “nc ip_maquina 1112”.&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1112'''&lt;br /&gt;
 myAcdSuperv SIS ver='04.6' inic='20140416 081613' alarmas=6 ultAlar='20140416 121652'&lt;br /&gt;
 myAcdSuperv AMI cnx=1 ocup=28% exten=2/2/511 asig=0/11/4095&lt;br /&gt;
 myAcdSuperv MYSQL cnx=1 ms=316&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parámetro!!Descripción&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ver||Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|AMI/cnx||Conectado (1) a asterisk&lt;br /&gt;
|-&lt;br /&gt;
|AMI/ocup||Porcentaje de ocupación de MyACDSuperv&lt;br /&gt;
|-&lt;br /&gt;
|AMI/exten||Extensiones/Extensiones/Extensiones monitorizadas|-&lt;br /&gt;
|-&lt;br /&gt;
|AMI/asig||&lt;br /&gt;
|-&lt;br /&gt;
|MYSQL/cnx||Conectado (1) a MySQL&lt;br /&gt;
|-&lt;br /&gt;
|MYSQL/ms||Tiempo de última operación en ejecutarse&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/myAcdSuperv.cnf'''&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/myAcdSuperv.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Proceso escoba ====&lt;br /&gt;
El proceso escoba se encarga de resolver y consolidar todos aquellos segmentos de grabación que han quedado almacenados en los gateways por falta de información o incoherencias. Existen dos tipos de procesos escobas:&lt;br /&gt;
# Proceso escoba perteneciente a nodo con agente de grabación (recordNodo) llamado '''''escobaGW.pl'''''.&lt;br /&gt;
# Proceso escoba perteneciente o no a un servidor de grabación (recordCentral) llamado '''''escobaGrabsBd.pl'''''.&lt;br /&gt;
&lt;br /&gt;
===== escobaGW.pl =====&lt;br /&gt;
Proceso que se ejecuta en los nodos busca en el disco RAM , las grabaciones de segmentos cuya antigüedad sea superior a mas de un día, es decir, si el proceso por ejemplo se ejecuta a la 01:00 a.m. del día 24/03/2016 buscara todas aquellas grabacionesn de segmentos realizadas antes de la 01:00 a.m del día 22/03/2016.&lt;br /&gt;
Una vez realizada la busqueda, obtendra el UCID a traves del nombre del fichero, y comprobara su correspondencia con la tabla DAT_LLAMADAS. Si existe una llamada con ese UCID, cambiara el estado de la llamada para que sea procesada correctamente. En caso contrario, es movida a la carpeta ''/var/lib/recordNodo/grabError''.&lt;br /&gt;
&lt;br /&gt;
===== escobaGrabsBd.pl =====&lt;br /&gt;
Se ejecuta sobre la base de datos de histórico, normalmente se ejecuta en un servidor de grabación (recordCentral). El proceso hace una búsqueda en dos tablas:&lt;br /&gt;
* En DAT_SEGMENTOS obtiene todos aquellos segmentos con grabaciones que dieron error, su estado tendrá valor 120.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
* En DAT_LLAMADAS obtendremos todos los registros correspondiente al segmentos anteriores.&lt;br /&gt;
Después hace una búsqueda en el sistema, usando como ruta el campo D_HORA_INICIO de cada llamada, que indica la ruta entera donde se encuentra el archivo. Una vez encontrado el archivo cambia el estado del segmento que tenia un error a estado de grabación disponible , que tendrá valor 100. Si no encontramos el segmento, no realizara nada.&lt;br /&gt;
&lt;br /&gt;
==== recordCentral ====&lt;br /&gt;
Se considera como un servidor de grabaciones. Todas las grabaciones de llamadas son un activo importante y una empresa con Contact Center pueda recibir millones de llamadas que necesitan estar registradas y almacenadas en discos duros con gran capacidad, las máquinas donde suelen alojarse estos servidores poseen discos duros limitados, lo que hace necesario en algunos casos incorporar ''dispositivos NAS''.&lt;br /&gt;
&lt;br /&gt;
Los ''dispositivos NAS'' son dispositivos de almacenamiento conectados a una red que permite el almacenamiento y la recuperación de datos desde una ubicación centralizada, flexibles y escalables, lo que significa que a medida que necesite almacenamiento adicional, puede añadirlo al que tiene. Esto no significa que sea necesario tener ''dispositivos NAS'' para funcionar, sino que puede tomar datos de diferentes sitios.&lt;br /&gt;
&lt;br /&gt;
En '''recordCentral''' pueden existir tres tipos de dispositivos NAS:&lt;br /&gt;
* Uno dedicado para las llamadas &lt;br /&gt;
* Uno dedicado para los segmentos &lt;br /&gt;
* Uno mixto para todas las llamadas y segmentos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El '''recordCentral''' se encarga de recoger todas las grabaciones de segmentos que tienen de estado proceso(3) en cada nodo gestionado, es decir, coger aquellos segmentos de llamadas marcados como llamadas disponibles, intenta descargar los segmentos de las llamadas y convertirlas al formato adecuado (MP3).&lt;br /&gt;
Como una característica particular cada diez minutos, siempre que no tenga ninguna otra tarea, intenta ver si puede establecer conexión con un nodo en cuarentena, para sacarlos de cuarentena y recoger todas las grabaciones de segmentos disponibles, para intentar convertir y descargar todas las grabaciones.  &lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando '''''nc ip_maquina 1114''''' en la maquina donde creamos que debe estar ejecutando el proceso recordCentral. Ejemplo:&lt;br /&gt;
 '''root@smadavacdrecord1:~# nc localhost 1114'''&lt;br /&gt;
 recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423 160112'&lt;br /&gt;
 recordCentral MYSQL cnx=1&lt;br /&gt;
 recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
 recordCentral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
 recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10'&lt;br /&gt;
La explicación de los campos se muestra en la tabla siguiente:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parámetro !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ver || Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/inic || Fecha de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/alarmas || Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ultAlar || Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
| MYSQL/cnx || Conectado (1) a MySQL&lt;br /&gt;
|-&lt;br /&gt;
| NAS/llamadas || Alojamiento en NAS de llamadas activo (grabación de llamada completa en un único archivo)&lt;br /&gt;
|-&lt;br /&gt;
| NAS/segmentos || Alojamiento en NAS de segmentos activo&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamNum || Llamadas procesadas&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamErr || Llamadas con error&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmNum || Segmentos procesados&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmErr || Segmentos con error&lt;br /&gt;
|-&lt;br /&gt;
| NODO/fase  || Número de proceso de recordCentral&lt;br /&gt;
|-&lt;br /&gt;
| NODO/cuarentena  || Lista de nodos en cuarentena, separada por comas&lt;br /&gt;
|-&lt;br /&gt;
| NODO/descarga || Lista de nodos en descarga, separada por comas&lt;br /&gt;
|-&lt;br /&gt;
| NODO/gestion || Lista de nodos gestionados, separada por comas (cuarentena + descarga = gestión)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/recordCentral.pconf'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:Se explican a continuación las variables más importantes del proceso RecordCentral:&lt;br /&gt;
&lt;br /&gt;
# Conexion de base de datos&lt;br /&gt;
$db='nimitz';&lt;br /&gt;
$dbHost = 'BDTR';&lt;br /&gt;
$dbPort = '3306';&lt;br /&gt;
$dbUsuario = 'nimitz';&lt;br /&gt;
$dbClave = 'ivivanimitz';&lt;br /&gt;
&lt;br /&gt;
# Configuracion de archivos con grabaciones (Orig en nodo)&lt;br /&gt;
$grabHay = 0;&lt;br /&gt;
$grabAudioCalidad = 32;&lt;br /&gt;
$grabAudioFormato = 'ogg';&lt;br /&gt;
$grabAudioExten = 'ogg';&lt;br /&gt;
$grabAudioCifrado = 0;&lt;br /&gt;
$grabRutaUsaTimestamp = 1;&lt;br /&gt;
$grabRutaOrig = '/var/lib/recordNodo/grabaciones';&lt;br /&gt;
$grabRutaTmp = '/var/lib/recordProcesad/grabTmp';&lt;br /&gt;
$grabRutaDest = '/var/lib/recordProcesad/grabRecord';&lt;br /&gt;
$grabRutaError = '/var/lib/recordProcesad/grabError';&lt;br /&gt;
$segmHay = 1;&lt;br /&gt;
$segmUmbralTiempo = 10;&lt;br /&gt;
$segmMargenTiempo = 5;&lt;br /&gt;
$segmAudioCalidad = 32;&lt;br /&gt;
$segmAudioFormato = 'ogg';&lt;br /&gt;
$segmAudioExten = 'ogg';&lt;br /&gt;
$segmAudioCifrado = 0;&lt;br /&gt;
$segmRutaUsaTimestamp = 1;&lt;br /&gt;
$segmRutaTmp = '/var/lib/recordProcesad/segmTmp';&lt;br /&gt;
$segmRutaDest = '/var/lib/recordProcesad/segmRecord';&lt;br /&gt;
$segmRutaError = '/var/lib/recordProcesad/segmError';&lt;br /&gt;
&lt;br /&gt;
# Seleccion de tipos de segmento a grabar separados por comas ('' = todos)&lt;br /&gt;
$tiposSegmentoGrabar = '';&lt;br /&gt;
&lt;br /&gt;
# Indica si se graba ring&lt;br /&gt;
$grabarRing = 0;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/recordCentral.log'''&lt;br /&gt;
&amp;lt;!-- En la versión 3.6.0. del instalador se adjuntan los siguientes archivos en el paquete recordCentral:&lt;br /&gt;
&lt;br /&gt;
borraGrabaciones.pconf: Debe colocarse en /etc/MDtel y contiene los datos de acceso a BBDD así como los días de caducidad de las grabaciones.&lt;br /&gt;
borraGrabaciones.pl: El script. Se ejecuta con el archivo de configuración como parámetro (mueveGrabaciones.pl /etc/MDtel/mueveGrabaciones.pconf)&lt;br /&gt;
borraGrabaciones: Fichero cron. Contiene la programación del script. Debe colocarse en /etc/cron.d&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== recordNodo ====&lt;br /&gt;
Se considera como proceso con función de agente de grabación para un nodo. Solo debe existir uno por maquina o por nodo (configurado como grabador) en el '''portal de administración de ''VIVA''it'''.&lt;br /&gt;
&lt;br /&gt;
Para su funcionamiento utiliza un ''disco RAM''  por que su tiempo de acceso mejora drásticamente, debido a que la memoria RAM es varios órdenes de magnitud más rápida que las unidades de disco reales, haciendo que la velocidad de procesamiento de las grabaciones sea mucho mas rápida.&lt;br /&gt;
&lt;br /&gt;
Este ''disco RAM'' normalmente ocupa la mitad de la memoria RAM de una maquina pero no es obligatorio pues dependerá de la memoria disponible en cada maquina, y además, se configura con un tamaño no superior a 2GB de memoria RAM. Hay que tener especial cuidado en que no se llene en espacio  ni tampoco los i-nodos. Se puede  monitorizar a través de la aplicación '''zabbix'''.&lt;br /&gt;
&lt;br /&gt;
El '''''recordNodo''''' se encarga de recoger todas las grabaciones de segmentos que tienen de estado  ''proceso(2)'', es decir, aquellos segmentos de llamadas que han sido grabadas pero no están siendo procesadas, moviéndolas del ''disco RAM'' a su carpeta correspondiente.&lt;br /&gt;
&lt;br /&gt;
La forma de obtener la carpeta correspondiente es obteniendo el dato del campo D_HORA_INICIO en la tabla DAT_LLAMADAS para cada segmento,tras un tratamiento del campo creara la subruta correspondientes: /año/mes/dia/hora/min. Entonces, la ruta correcta seria /var/lib/recordNodo/grabaciones/año/mes/dia/hora/min, donde año, mes, dia , hora y min son los valores numéricos obtenidos del campo D_HORA_INICIO.&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando '''''nc ip_maquina 1113''''' en la maquina donde creamos que debe estar ejecutando el proceso recordNodo:&lt;br /&gt;
&lt;br /&gt;
 root@smadavgw5:~#nc localhost 1113&lt;br /&gt;
 recordNodo SIS ver='04.00.00' inic='20160326 105137' alarmas=2 ultAlar='20160326 105542'&lt;br /&gt;
 recordNodo MYSQL cnx=1&lt;br /&gt;
 recordNodo REC grabNum=0 grabErr=0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La explicación de los campos se muestra en la tabla siguiente:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parámetro  !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ver || Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/inic  || Fecha de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/amarmas || Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ultAlar || Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
| MYSQL/cnx || Conectado (1) a MySQL&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamNum || Llamadas procesadas&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamErr || Llamadas con error&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmNum || Segmentos procesados&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmErr || Segmentos con error&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/recordNodo.pconf'''&lt;br /&gt;
:Se muestra a continuación el fichero de configuración:&lt;br /&gt;
 #&lt;br /&gt;
 # Configuracion de recordNodo.pl&lt;br /&gt;
 #&lt;br /&gt;
 # 0: Solo alarmas en archivo log - 1: alarmas y trazas&lt;br /&gt;
 $depurar = 1;&lt;br /&gt;
 &lt;br /&gt;
 # 0: Arranca como proceso - 1: arranca como demonio&lt;br /&gt;
 $soyDemonio = 1;&lt;br /&gt;
 &lt;br /&gt;
 # Archivo de log ('': salida estandar)&lt;br /&gt;
 $logArch = '/var/log/record/recordNodo.log';&lt;br /&gt;
 &lt;br /&gt;
 # Archivo para el pid (eliminando el .pid final)&lt;br /&gt;
 $pidArch = '/var/run/record/recordNodo';&lt;br /&gt;
 &lt;br /&gt;
 # 0: El programa se ejecuta indefinidamente - 1: solo una vez (util en depuracion)&lt;br /&gt;
 $unaVezSolo = 0;&lt;br /&gt;
 &lt;br /&gt;
 # Tiempo de espera en segundos cuando no hay conexion o cuando no hay llamadas&lt;br /&gt;
 $toBucle = 5;&lt;br /&gt;
 &lt;br /&gt;
 # Tiempo de guarda en segundos desde D_HORA_FIN hasta que se procesa llamada&lt;br /&gt;
 $toProcesar = 30;&lt;br /&gt;
 &lt;br /&gt;
 # Bytes por segundo en archivos de grabaciones&lt;br /&gt;
 $bytesPorSegundo = 16000;&lt;br /&gt;
 &lt;br /&gt;
 # Bytes a leer en cada accceso a disco&lt;br /&gt;
 $bytesLeerBuf = 1048576;&lt;br /&gt;
 &lt;br /&gt;
 # Conexion de base de datos&lt;br /&gt;
 $db='nimitz';&lt;br /&gt;
 $dbHost = 'BDTR';&lt;br /&gt;
 $dbPort = '3306';&lt;br /&gt;
 $dbUsuario = 'nimitz';&lt;br /&gt;
 $dbClave = 'ivivanimitz';&lt;br /&gt;
 &lt;br /&gt;
 # Configuracion de la supervision&lt;br /&gt;
 $supPort = '1113';&lt;br /&gt;
 &lt;br /&gt;
 # Quien es mi nodo para filtrar grabaciones&lt;br /&gt;
 $miNodo = 2;&lt;br /&gt;
 &lt;br /&gt;
 # Directorio donde se localizan las grabaciones&lt;br /&gt;
 $grabRutaOrig = '/var/spool/asterisk/monitor';&lt;br /&gt;
 $grabRutaDest = '/var/lib/recordNodo/grabaciones';&lt;br /&gt;
 $grabRutaError = '/var/lib/recordNodo/grabError';&lt;br /&gt;
 $grabRutaUsaTimestamp = 1;&lt;br /&gt;
 &lt;br /&gt;
 # Tiempo en segundos limite a truncar en las grabaciones (0=sin limite)&lt;br /&gt;
 $grabLimiteSegs = 0;&lt;br /&gt;
 &lt;br /&gt;
 # Indica si se procesan segmentos de tipo tipoSegmEliminarGrabacion y patron eliminacion&lt;br /&gt;
 $segmEliminarGrabacionTrato = 1;&lt;br /&gt;
 $patronEliminarGrabacion = '/etc/MDtel/null.bin'&lt;br /&gt;
&lt;br /&gt;
A continuación se indican las variables a modificar:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Variable a modificar  !! Comentario&lt;br /&gt;
|-&lt;br /&gt;
|$depurar = 1;||'''0''': Solo alarmas en archivo log&lt;br /&gt;
'''1''': alarmas y trazas&lt;br /&gt;
|-&lt;br /&gt;
|$soyDemonio = 1;||'''0''': Arranca como proceso&lt;br /&gt;
'''1''': arranca como demonio&lt;br /&gt;
|-&lt;br /&gt;
|$logArch = '/var/log/record/recordNodo.log';||Archivo de log ('': salida estándar) $pidArch = '/var/run/record/recordNodo'; 	Archivo para el pid (eliminando el .pid final)&lt;br /&gt;
|-&lt;br /&gt;
|$unaVezSolo = 0;||'''0''': El programa se ejecuta indefinidamente&lt;br /&gt;
'''1''': solo una vez (útil en depuración)&lt;br /&gt;
|-&lt;br /&gt;
|$toBucle = 5;||Tiempo de espera en segundos cuando no hay conexión o cuando no hay llamadas&lt;br /&gt;
|-&lt;br /&gt;
|$toProcesar = 30;||Tiempo de guarda en segundos desde D_HORA_FIN hasta que se procesa llamada&lt;br /&gt;
|-&lt;br /&gt;
|$bytesPorSegundo = 16000;||Bytes por segundo en archivos de grabaciones&lt;br /&gt;
|-&lt;br /&gt;
|$bytesLeerBuf = 1048576;||Bytes a leer en cada acceso a disco&lt;br /&gt;
|-&lt;br /&gt;
|$db='nimitz';||Conexión de base de datos&lt;br /&gt;
|-&lt;br /&gt;
|$dbHost = 'BDTR';||&lt;br /&gt;
|-&lt;br /&gt;
|$dbPort = '3306';||&lt;br /&gt;
|-&lt;br /&gt;
|$dbUsuario = 'nimitz';||&lt;br /&gt;
|-&lt;br /&gt;
|$dbClave = 'ivivanimitz';||&lt;br /&gt;
|-&lt;br /&gt;
|$supPort = '1113';||Configuración de la supervisión&lt;br /&gt;
|-&lt;br /&gt;
|$miNodo = 2;||Quien es mi nodo para filtrar grabaciones&lt;br /&gt;
|-&lt;br /&gt;
|$grabRutaOrig = '/var/spool/asterisk/monitor';	Directorio donde se localizan las grabaciones&lt;br /&gt;
|-&lt;br /&gt;
|$grabRutaDest = '/var/lib/recordNodo/grabaciones';&lt;br /&gt;
|-&lt;br /&gt;
|$grabRutaError = '/var/lib/recordNodo/grabError';&lt;br /&gt;
|-&lt;br /&gt;
|$grabRutaUsaTimestamp = 1;||'''1''': Usa Timestamp&lt;br /&gt;
'''0''': No usa Timestamp&lt;br /&gt;
|-&lt;br /&gt;
|$grabLimiteSegs = 0;||	Tiempo en segundos limite a truncar en las grabaciones (0=sin limite)&lt;br /&gt;
|-&lt;br /&gt;
|$segmEliminarGrabacionTrato = 1;||Indica si se procesan segmentos de tipo tipoSegmEliminarGrabacion y patrón eliminación&lt;br /&gt;
|-&lt;br /&gt;
|$patronEliminarGrabacion = '/etc/MDtel/null.bin'&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:Se muestran a continuación las variables que son modificadas con mayor frecuencia:&lt;br /&gt;
# Conexion de base de datos&lt;br /&gt;
$db='nimitz';&lt;br /&gt;
$dbHost = 'BDTR';&lt;br /&gt;
$dbPort = '3306';&lt;br /&gt;
$dbUsuario = 'nimitz';&lt;br /&gt;
$dbClave = 'ivivanimitz';&lt;br /&gt;
&lt;br /&gt;
# Quien es mi nodo para filtrar grabaciones&lt;br /&gt;
$miNodo = 1;&lt;br /&gt;
&lt;br /&gt;
# Indica si se procesan segmentos de tipo tipoSegmEliminarGrabacion y patron eliminación&lt;br /&gt;
$segmEliminarGrabacionTrato = 1;&lt;br /&gt;
$patronEliminarGrabacion = '/etc/MDtel/null.bin';&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/recordNodo.log'''&lt;br /&gt;
&lt;br /&gt;
==== Vivait-CTI ====&lt;br /&gt;
Permite la comunicación entre la aplicación '''''VIVA'''''it Desk de agente y el asterisk, sincronizando; convierte el protocolo “asterisk manager” a CSTA ('''''VIVA'''''it Desk “habla” CSTA).&lt;br /&gt;
&lt;br /&gt;
Es un proceso importante para que el uso de '''''VIVA'''''it Desk, y que los agentes puedan realizar su operativa normal con la entrada y salida de llamadas… si bien el cursado telefónico de llamadas es factible, no disponer de las facilidades de '''''VIVA'''''it Desk y formularios hace el sistema difícilmente manejable&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando “nc ip_maquina 1111”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1111'''&lt;br /&gt;
 vivait-cti sis ver='V01.5' inic='20140414 104312' alarmas=13 ultAlar='20140415 173152'&lt;br /&gt;
 vivait-cti gmp msj=1018/1024 buf=1023/1024 tarea=97/102&lt;br /&gt;
 vivait-cti tmp uptime=694748 (8d 0h 59m 8s)&lt;br /&gt;
 vivait-cti cti numConx=(0/511) numPend=(0/127) numMakeCallPend=0 numCall=(0/2047)&lt;br /&gt;
 numChan=(0/4095) numAuxStr=(0/511) numMoniColas=(0/511) numMoniDevice=0&lt;br /&gt;
 numMoniCall=0 numMoniCallAuto=0 numMoniCallByDevice=0 numMoni=(0/511)&lt;br /&gt;
 auditCallErr=0 auditAuxStrErr=0 auditMsjReqErr=0 araChanID=0 araUniqueID=0 araMoni=0&lt;br /&gt;
 vivait-cti ami esta=conx resp=652(0) evs=1397(0) descar=556(0) err=16 errConx=16&lt;br /&gt;
 numAct(0/0/127) auditErrAct=0&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!ver!!Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|sis/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|Sis/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|Sis/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/msj||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/buf||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/tarea||&lt;br /&gt;
|-&lt;br /&gt;
|Tmp/uptime||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numConx||Número de conexiones actuales / Número de conexiones máximo&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numPend||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMakeCallPend||Llamadas pendientes de realizar&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numcall||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numChan||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numAuxStr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniColas||Número de colas monitorizadas&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniDevice||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniCall||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniCallAuto||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniCallByDevice||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoni||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/auditCallErr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/auditAuxStrErr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ auditMsjReqErr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ araChanID||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ araUniqueID||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ araMoni||&lt;br /&gt;
|-&lt;br /&gt;
|Ami/esta||Estado de conexión contra manarger de asterisk&lt;br /&gt;
|-&lt;br /&gt;
|Ami/resp||&lt;br /&gt;
|-&lt;br /&gt;
|Ami/evs||Número de eventos (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
||Ami/descar&lt;br /&gt;
|-&lt;br /&gt;
|Ami/err||Errores&lt;br /&gt;
|-&lt;br /&gt;
|Ami/errConx||Errores de conexión&lt;br /&gt;
|-&lt;br /&gt;
|Ami/numAct||&lt;br /&gt;
|-&lt;br /&gt;
|Ami/auditErrAct||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/vivait-cti.conf'''&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/vivait-cti.conf'''&lt;br /&gt;
&lt;br /&gt;
==== Phoneprov-TFTP ====&lt;br /&gt;
&lt;br /&gt;
==== Introducción al aprovisionamiento ====&lt;br /&gt;
&lt;br /&gt;
En cada Centralita Telefónica existente, se puede configurar sus teléfonos IP y asignarles extensiones a cada teléfono. Para hacer un ''aprovisionamiento'' de los teléfonos es necesario que el técnico configure uno a uno manualmente utilizando su interfaz web, esto no es práctico, ya que genera muchos errores y el tiempo de implementación se incrementa drásticamente. Además, es casi imposible la administración cotidiana de los teléfonos IP. Desde '''MD'''tel se utiliza una herramienta que permite que los teléfonos IP soportados y homologados por '''MD'''tel ([[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_3.0#Terminales_telef.C3.B3nicos ver Terminales telefónicos]]) se puedan aprovisionar automáticamente, brindando una fácil implementación y administración cotidiana. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== ¿Qué es aprovisionar? =====&lt;br /&gt;
&lt;br /&gt;
Aprovisionar un teléfono es el proceso de configuración automático de teléfonos IP para su uso con una Centralita Telefónica de forma remota. Una vez que aprovisione un teléfono, el teléfono automáticamente se configurará correctamente y podrá administrar los teléfonos de forma centralizada y remota,  sin tener que iniciar sesión en la interfaz web de cada uno de los teléfonos. &lt;br /&gt;
&lt;br /&gt;
El aprovisionamiento de teléfono facilita enormemente la administración cotidiana de los teléfonos IP. Esto hace que sea fácil de cambiar las contraseñas de extensión,realizar desvíos de llamadas, nombre a mostrar, mensajería y demás configuraciones, ya que puede hacerlo de forma centralizada para todos los teléfonos desde el portal de administración y luego transferir los cambios al teléfono. &lt;br /&gt;
&lt;br /&gt;
===== TFTP =====&lt;br /&gt;
&lt;br /&gt;
'''TFTP''' son las siglas de '''T'''rivial '''F'''ile '''T'''ransfer '''P'''rotocol ''(Protocolo de transferencia de archivos trivial)''. &lt;br /&gt;
&lt;br /&gt;
Es un protocolo de transferencia muy simple semejante a una versión básica de FTP. TFTP a menudo se utiliza para transferir pequeños archivos entre terminales en una red. &lt;br /&gt;
&lt;br /&gt;
Algunos detalles del TFTP: &lt;br /&gt;
&lt;br /&gt;
* Utiliza UDP (puerto 69) como protocolo de transporte (a diferencia de FTP que utiliza los &lt;br /&gt;
puertos 20 y 21 TCP). &lt;br /&gt;
* No puede listar el contenido de los directorios. &lt;br /&gt;
* No existen mecanismos de autenticación o cifrado. &lt;br /&gt;
* Se utiliza para leer o escribir archivos de un servidor remoto. &lt;br /&gt;
* Soporta tres modos diferentes de transferencia, &amp;quot;netascii&amp;quot;, &amp;quot;octet&amp;quot; y &amp;quot;mail”.&lt;br /&gt;
&lt;br /&gt;
===== Funcionamiento del servidor phoneprove-TFTP =====&lt;br /&gt;
&lt;br /&gt;
A continuación se muestra un esquema que facilita el entendimiento del funcionamiento del servidor phoneprove-TFTP:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Funcionamiento_Servidor.png‎ |center]]&lt;br /&gt;
&lt;br /&gt;
El servidor Phoneprove-TFTP se ''encarga del aprovisionamiento masivo de terminales'', es de gran utilidad porque cualquier cambio en los teléfonos pueden ser realizados a nivel DHCP y todos los teléfonos tomarán la nueva configuración luego de reiniciarlos. &lt;br /&gt;
&lt;br /&gt;
Desde phoneprove-TFTP se generara los archivos necesarios para cada teléfono y que sirven para ser aprovisionados automáticamente. &lt;br /&gt;
El servidor phoneprove-TFTP  tiene alojados los ficheros de configuración están ordenados según las direcciones MAC de los teléfonos. El teléfono “preguntará” al servidor cual es su fichero de configuración utilizando su dirección MAC. Este a través de su MAC , consulta en la base de datos para ofrecer al terminal los datos de configuración según su plantilla, cual sera su extensión , cual sera el usuario propietario, entre otras cosas.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
  '''Nota:''' En instalaciones grandes habrá más de uno, quizás uno por sede grande; depende de la infraestructura de DHCP.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Parámetros necesarios de Aprovisionamiento de Teléfonos =====&lt;br /&gt;
&lt;br /&gt;
 '''Notas:''' el aprovisionamiento desarrollador por '''MD'''tel, no emplea un fichero por cada &lt;br /&gt;
 teléfono, sino que emplea una plantilla por cada modelo de teléfono.&lt;br /&gt;
 Debe haber una '''configuración previa del servidor DHCP''' es necesario coordinar con el cliente la asignación de direcciones para &lt;br /&gt;
 los diferentes elementos de la plataforma '''''VIVA'''''it, fundamentalmente para terminales telefónicos; en este caso además será necesario &lt;br /&gt;
 activar la opción 66 que permitirá definir el servidor TFTP del que los terminales cogerán sus ficheros de aprovisionamiento.&lt;br /&gt;
 El aprovisionamiento desde el portal de administración solo es posible para aquellos teléfonos IP homologados y probados desde '''MD'''tel   &lt;br /&gt;
 [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_3.0#Terminales_telef.C3.B3nicos ver Terminales  telefónicos]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como existen parámetros comunes de todos los teléfonos de la misma marca de fabricante, muchos de los parámetros necesarios para el aprovisionamiento  como comentamos se han generado desde MDtel en forma de plantillas, que estarán disponibles en el portal de administración VIVAit [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Plantillas | ver plantilla del portal de administración VIVAit]]. &lt;br /&gt;
&lt;br /&gt;
La configuración de un teléfono SIP es muy sencilla y en no es necesario tener conocimientos avanzados de informática o de telefonía. Cada una de estas plantillas que sirven para aprovisionar un teléfono IP homologado, algunos de los parámetros predeterminados se explicarán a continuación .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== Parámetros de Aprovisionamiento globales ======&lt;br /&gt;
&lt;br /&gt;
* Configuración de la red y MAC. &lt;br /&gt;
* Zona horaria. &lt;br /&gt;
&lt;br /&gt;
====== Parámetros de Aprovisionamiento Personales ======&lt;br /&gt;
&lt;br /&gt;
Además de los parámetros de aprovisionamiento globales, el teléfono también obtendrá información de configuración individual, tales como: &lt;br /&gt;
&lt;br /&gt;
*Número de Extensión.&lt;br /&gt;
*Nombre y Contraseña de usuario SIP. &lt;br /&gt;
*Configuración de Teclas BLF.&lt;br /&gt;
*Contraseña de la Interfaz Web del Teléfono IP.&lt;br /&gt;
*Idioma de la Pantalla.&lt;br /&gt;
*Orden de Preferencia de los Codecs.&lt;br /&gt;
&lt;br /&gt;
===== Aprovisionamiento de teléfonos nivel usuario =====&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
  '''Notas:''' La dirección MAC debe estar especificada en letras mayúsculas.&lt;br /&gt;
  La dirección MAC del teléfono se puede encontrar en la etiqueta adhesiva en la parte inferior del teléfono, o de lo contrario se deberá acceder desde&lt;br /&gt;
  el menú del propio terminal.   &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Los pasos a seguir son los siguientes: &lt;br /&gt;
&lt;br /&gt;
'''1)''' Dar de alta el teléfono en el portal de administración, se debe seleccionar el modelo del teléfono, e indicar la dirección MAC del teléfono a aprovisionar, todo ello desde el portal de administración VIVAit. &lt;br /&gt;
Para mas información ver [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Aprovisionamiento del portal de administracion| aprovisionamiento del portal de administración VIVAit]]. &lt;br /&gt;
&lt;br /&gt;
'''2)''' En el mismo portal de administración se deberá crear una extensión , asignar a la extensión el teléfono que se quiera aprovisionar, elegir la plantilla adecuada del teléfono y el usuario propietario (solo si sera un puesto fijo) desde [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Extensiones | extensiones del portal de administración]]. &lt;br /&gt;
&lt;br /&gt;
'''3)''' Conectar el teléfono a la red LAN informática (conectarlo al router o switch) para que tenga acceso a Internet:&lt;br /&gt;
&lt;br /&gt;
:*El teléfono enviará un mensaje de multidifusión a través de la LAN. &lt;br /&gt;
:*Este será captado por la Central Telefónica siempre que esté en la misma LAN. &lt;br /&gt;
:*Al teléfono se le enviará una URL de aprovisionamiento. &lt;br /&gt;
&lt;br /&gt;
'''4)''' Como la mayoría de teléfonos IP del mercado al arrancar una vez sabiendo la URL de aprovisionamiento piden una serie de archivos de configuración para aprovisionarse vía TFTP. EL servidor phoneprove-TFTP, detectara la petición y a través de la MAC y datos del usuario, consultará en la base de datos los datos necesarios para aprovisionar al teléfono y si todo funciona correctamente mandara al teléfono IP los datos de configuración necesarios para funcionar. &lt;br /&gt;
&lt;br /&gt;
'''5)''' Asegúrese de que el teléfono encuentren el servidor TFTP, para ello esperar un tiempo adecuado para que termine el aprovisionamiento. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''6)''' Finalmente aparecerá  como registrado en la centralita, obtendrá una dirección IP y podra funcionar según la configuración establecida.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
  '''Nota''': Si no se reaprovisiona tras un periodo largo de tiempo, desenchufe el cable de alimentación eléctrica &amp;lt;br /&amp;gt; o el cable Ethernet (si se utiliza la alimentación en línea PoE) para reiniciar los teléfonos. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Aprovisionamiento de teléfonos nivel técnico =====&lt;br /&gt;
&lt;br /&gt;
====== Plantilla de configuración ======&lt;br /&gt;
&lt;br /&gt;
La plantilla de configuración empleadas en el apartado  [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Plantillas | plantilla del portal de administración VIVAit]] de cada modelo está formada por una serie de variables. &lt;br /&gt;
&lt;br /&gt;
Los valores se obtienen de la tabla de la base de datos CEN_TELEFONOS, CEN_USUARIOS, ACD_EXTENSIONES, ACD_NODOS, COM_NODOS... correspondientes a la extensión del teléfono, usuario, nodo, etc. &lt;br /&gt;
&lt;br /&gt;
 variable ${NODO1_C_NOMBRE}='corp-ast13'&lt;br /&gt;
 variable ${EXTEN_C_CLAVE_REGISTRO}='Tel21002'&lt;br /&gt;
 variable ${USU_C_CODIGO_POSTAL}=''28034'&lt;br /&gt;
 variable ${SEDE_C_CODIGO_POSTAL}='28034' &lt;br /&gt;
 variable ${USU_C_NOMBRE}='Juan Antonio'&lt;br /&gt;
 variable ${USU_C_APELLIDO2}='Ramirez'&lt;br /&gt;
 variable ${SEDE_C_NOMBRE}='RED_LAB'&lt;br /&gt;
 variable ${NODO2_C_NOMBRE}= NULL&lt;br /&gt;
 variable ${EXTEN_C_NOMBRE}='' 21002&lt;br /&gt;
 variable ${USU_C_LOCALIDAD}='' &lt;br /&gt;
 variable ${USU_C_NOMBRE_MOSTRAR}='Juan' &lt;br /&gt;
 variable ${NODO1_C_IP}='175.25.129.70' &lt;br /&gt;
 variable ${MODEL_C_PREFIJO_PLANTILLA_MAC}='T28P' &lt;br /&gt;
 variable ${SEDE_C_LOCALIDAD}='Madrid' &lt;br /&gt;
 variable ${USU_C_APELLIDO1}='Casas' &lt;br /&gt;
 variable ${NODO2_C_IP}= NULL&lt;br /&gt;
 variable ${TF_ID_EXTENSION}='5' &lt;br /&gt;
 cargando campos idExten=5&lt;br /&gt;
&lt;br /&gt;
====== Ficheros y paquetes necesarios ======&lt;br /&gt;
&lt;br /&gt;
'''Paquetes previos:''' libnet-tftpd-perl, tftp-hpa, libnet-address-ip-local-perl &lt;br /&gt;
'''Usuario de funcionamiento:''' root &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
   '''Nota:'''  los archivos y directorios que generemos podrian necesitar que se permitiera el acceso al archivo de lectura &amp;lt;br/&amp;gt; y escritura en el servidor TFTP.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Archivos necesarios:''' &lt;br /&gt;
&lt;br /&gt;
 /usr/local/sbin/phoneprov-tftp.pl &lt;br /&gt;
 /usr/local/sbin/phoneprov-tftp.pm&lt;br /&gt;
 /etc/MDtel/phoneprov-tftp.pconf &lt;br /&gt;
 /etc/init/phoneprov-tftp.conf &lt;br /&gt;
 /etc/logrotate.d/phoneprov-tftp &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Directorios a crear:''' &lt;br /&gt;
&lt;br /&gt;
 /var/lib/phoneprov-tftp/plt &lt;br /&gt;
 /var/lib/phoneprov-tftp/bin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Watchdog ====&lt;br /&gt;
&lt;br /&gt;
Se trata de una aplicación del asterisk que monitoriza el SIP y en caso de fallo, pasado un cierto tiempo, reinicia el asterisk y genera un core.&lt;br /&gt;
Si escribimos en CLI de asterisk perro tenemos los siguientes comandos:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Activar||Activar el Watchdog&lt;br /&gt;
|-&lt;br /&gt;
|Desactivar||Desactiva el Watchdog&lt;br /&gt;
|-&lt;br /&gt;
|Parada IWantToStop||Reinicia el asterisk y genera un core para pruebas&lt;br /&gt;
|-&lt;br /&gt;
|Reload||Realiza una recarga del Watchdog y aplica cambios en su configuración&lt;br /&gt;
|-&lt;br /&gt;
|Show||Ver el estado del Watchdog&lt;br /&gt;
&lt;br /&gt;
perro avisado=0 activo=1 segsDormir=1 segsInic=60 segsGuarda=30 maxErr=3&lt;br /&gt;
perro        nombre=sip_monitor_udp lwp=[15437] segsInic=60 segsGuarda=30 hace=11 err=0/5&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El dato &amp;quot;hace&amp;quot; informa de cuanto tiempo ha transcurrido desde el último tick. Facilita la calibración del parámetro de configuración &amp;quot;segs_guarda&amp;quot;, normalmente es 30&lt;br /&gt;
&lt;br /&gt;
Tiene un fichero de configuración ubicado en /etc/asterisk/MDcrash.conf&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Sección [perro]&lt;br /&gt;
||activo=yes (Si esta o no activo)&lt;br /&gt;
segs_dormir=1 (Un tick por segundo)&lt;br /&gt;
&lt;br /&gt;
segs_inic=60&lt;br /&gt;
&lt;br /&gt;
segs_guarda=30 &lt;br /&gt;
&lt;br /&gt;
max_errores=3  &lt;br /&gt;
|-&lt;br /&gt;
|Sección [sip_monitor_udp]&lt;br /&gt;
||segs_inic=60&lt;br /&gt;
&lt;br /&gt;
segs_guarda=30 (Cada 30 segundos si no reciba trafico SIP genera core)&lt;br /&gt;
&lt;br /&gt;
max_errores=5 (Número máximo de errores)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Proceso de Backup ====&lt;br /&gt;
Las plataformas '''''VIVA'''''it Call y '''''VIVA'''''it Suite incluyen un script para realizar un proceso de backup.&lt;br /&gt;
&lt;br /&gt;
Se utilizará el script '''backup.sh''', que se encuentra en el directorio '''etc/MDTel'''.&lt;br /&gt;
&lt;br /&gt;
Se ejecuta automaticamente mediante el uso de un cron&lt;br /&gt;
&lt;br /&gt;
'''texto del cron:'''&lt;br /&gt;
&lt;br /&gt;
 SHELL=/bin/sh&lt;br /&gt;
 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin&lt;br /&gt;
 # m h dom mon dow user command&lt;br /&gt;
 0 2 * * * root  /etc/MDtel/backup.sh /etc/MDtel/backup.cfg&lt;br /&gt;
&lt;br /&gt;
Para activar el script hay que descomentar la línea&lt;br /&gt;
 # m h dom mon dow user command&lt;br /&gt;
&lt;br /&gt;
Los directorios de los que se hace copia son:&lt;br /&gt;
* DIR=var/lib/asterisk/sounds/Particular&lt;br /&gt;
* DIR=var/lib/asterisk/moh&lt;br /&gt;
* DIR=etc&lt;br /&gt;
* DIR=etc/asterisk&lt;br /&gt;
* DIR=etc/cron.d&lt;br /&gt;
* DIR=etc/dahdi&lt;br /&gt;
* DIR=etc/exim4&lt;br /&gt;
* DIR=etc/ha.d&lt;br /&gt;
* DIR=etc/logrotate.d&lt;br /&gt;
* DIR=etc/MDtel&lt;br /&gt;
* DIR=etc/mysql&lt;br /&gt;
* DIR=etc/network&lt;br /&gt;
* DIR=etc/zabbix&lt;br /&gt;
* DIR=usr/local/sbin&lt;br /&gt;
&lt;br /&gt;
Por defecto se realiza un backup cada dos horas en la carpeta '''/var/spool/MDtel/backup'''.&lt;br /&gt;
&lt;br /&gt;
Para cambiar la ruta de destino del backup habrá que modificar el fichero backup.sh, en concreto modificar la variable MDTEL.&lt;br /&gt;
&lt;br /&gt;
El fichero ''' backup.cfg''' que se genera incluye copia de la siguiente información:&lt;br /&gt;
* Ficheros de configuración de la aplicación.&lt;br /&gt;
* Base de Datos.&lt;br /&gt;
* Dialplan.&lt;br /&gt;
&lt;br /&gt;
Se guardarán 10 copias del fichero ''' backup.cfg '''&lt;br /&gt;
&lt;br /&gt;
Los campos disponibles en el fichero son los siguientes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Campo !!Descripción !!Posibles valores (si aplica)&lt;br /&gt;
|-&lt;br /&gt;
|IP_BD ||IP o HOST máquina base de datos de tiempo real||&lt;br /&gt;
|-&lt;br /&gt;
|HAY_SMB ||Si hay o no servidor SAMBA||1 si existe servidor SAMBA o 0 si no existe&lt;br /&gt;
|-&lt;br /&gt;
|HOST_SMB||IP o HOST servidor SAMBA||&lt;br /&gt;
|-&lt;br /&gt;
|USU_SMB||Usuario acceso servidor SAMBA||&lt;br /&gt;
|-&lt;br /&gt;
|CLAVE_SMB||Clave usuario acceso servidor SAMBA||&lt;br /&gt;
|-&lt;br /&gt;
|RUTA_SMB||Ruta donde se guardará el backup en el servidor SAMBA||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Para recuperar una plataforma utilizando el backup, habrá que instalar una máquina nueva y cargar los ficheros de configuración, Base de Datos y Dialplan guardados en el proceso de backup.&lt;br /&gt;
&lt;br /&gt;
===== Información adicional: como funciona un cron =====&lt;br /&gt;
&lt;br /&gt;
La información sobre el fucnionamiento de un cron puede encontrarse en: [http://lasegundapuerta.com/index.php/informatica/linux-y-software-libre/1709-comando-cron-en-linux-ubuntu Información sobre el comando cron]&lt;br /&gt;
&lt;br /&gt;
==== CHAT ====&lt;br /&gt;
La información para configurar el CHAT y su funcionamiento puede encontrarse en:&lt;br /&gt;
&lt;br /&gt;
[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#CHAT CHAT]&lt;br /&gt;
&lt;br /&gt;
=== Requerimientos de conectividad ===&lt;br /&gt;
&lt;br /&gt;
El esquema siguiente muestra como ejemplo todos los flujos de información existentes en un entorno típico de &amp;lt;big&amp;gt;'''telefonía corporativa (sin presencia)'''&amp;lt;/big&amp;gt; ('''''VIVA'''''it Call)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Flujos corporativa.png|cebter]]&lt;br /&gt;
&lt;br /&gt;
En el entorno de &amp;lt;big&amp;gt;'''Contact Center'''&amp;lt;/big&amp;gt;, encontramos los siguientes flujos &amp;lt;big&amp;gt;'''entre servicios'''&amp;lt;/big&amp;gt; (comunicaciones entre servidores, ('''''VIVA'''''it Suite)) &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Flujos Contact servicios.png|650px|center]]&lt;br /&gt;
&lt;br /&gt;
y &amp;lt;big&amp;gt;'''entre usuarios y servicios'''&amp;lt;/big&amp;gt; los reflejados a continuación:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Flujos Contact puestos.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Lado A!!Lado B!!Puertos!!Sentido!!Observ.&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor||TCP 5060||A -&amp;gt; B||Señalización SIP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor||UDP 5060||A -&amp;gt; B||Señalización SIP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor||10000 a 20000||A -&amp;gt; B&lt;br /&gt;
B -&amp;gt; A&lt;br /&gt;
||RTP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor TFTP||UDP 69||A -&amp;gt; B&lt;br /&gt;
B -&amp;gt; A&lt;br /&gt;
||Para actualización de terminales por TFTP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor NTP||UDP 123||A -&amp;gt; B||&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Desk||Servidor||TCP 4500||A -&amp;gt; B||Comunicación CTI&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Desk||Servidor||TCP 3306||A -&amp;gt; B||Acceso a Mysql Base de datos&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Desk||Servidor Syslog||UDP 514||A -&amp;gt; B||Para envio de logs de agente&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Supervisor||Servidor||TCP 3306||A -&amp;gt; B||Acceso a Mysql Base de datos&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker||Servidor||TCP 3306||A -&amp;gt; B||Acceso a Mysql Base de datos&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker||Servidor||TCP 8180||A -&amp;gt; B||&lt;br /&gt;
|-&lt;br /&gt;
|Actualizador||Servidor||TCP 80||A -&amp;gt; B||Necesario para actualizaciones de versiones de aplicaciones de agente y supervisores&lt;br /&gt;
|-&lt;br /&gt;
|Portal de administración||Servidor||TCP 8180||A -&amp;gt; B||Acceso al portal de administración '''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker Web||Servidor||TCP 8180||A -&amp;gt; B||&lt;br /&gt;
|-&lt;br /&gt;
|Monitor||Servidor||TCP 8180||A -&amp;gt; B||Wallboard&lt;br /&gt;
|-&lt;br /&gt;
|Monitorización||Servidor||TCP 80||A -&amp;gt; B||Acceso a portal monitorización (Zabbix)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Gateways ===&lt;br /&gt;
El concepto de gateway como tal no existe en la plataforma '''''VIVA'''''it; existen nodos de ACD y nodos de corporativa.&lt;br /&gt;
&lt;br /&gt;
A efectos de operación un nodo de corporativa es el que en cualquier caso asumirá las funcionalidades de gateway, y recibirá las conexiones (analógicas, digitales o IP) a sistemas externos o a la RTC&lt;br /&gt;
&lt;br /&gt;
El concepto gateway queda pues suscrito a entornos meramente comerciales&lt;br /&gt;
&lt;br /&gt;
Incluimos no obstante en este apartado los diagnósticos y operaciones básicos de conexiones a sistemas externos o RTC&lt;br /&gt;
&lt;br /&gt;
Para verificar los enlaces establecidos ejecutamos el siguiente comando en el terminal: '''sip show peers''' &lt;br /&gt;
&lt;br /&gt;
Al ejecutar este comando obtenemos la salida:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Enlace_Exterior.png |center]]&lt;br /&gt;
&lt;br /&gt;
Las columnas ''Host'' y ''Port'' nos muestran las conexiones establecidas y nos informa de un posible problema de conexión. &lt;br /&gt;
&lt;br /&gt;
Sabremos que ''no existe conexión'' cuando la columna Host tiene el valor '''Unspecified''' y en la columna Port aparece un '''0''' , a continuación se muestra un ejemplo:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ejemplo_no_conexion.png |center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#00FF00&amp;quot;&amp;gt;FALTA AQUI DIAGNOSTICOS Y OPERACIONES DE ENLACES EXTERNOS&amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Servidor de grabación === &lt;br /&gt;
==== Almacenamiento en la nube ====&lt;br /&gt;
Almacenamiento en la nube.&lt;br /&gt;
Existe la posibilidad de que tras un determinado periodo de tiempo las grabaciones sean movidas a un almacenamiento externo. De esta operativa se encarga el proceso /usr/local/sbin/mueveGrabaciones.pl que recibe como parámetro la ruta al archivo de configuración. Dicho archivo tiene los siguientes elementos:&lt;br /&gt;
&lt;br /&gt;
*$db: Nombre de la base de datos.&lt;br /&gt;
*$dbHost: servidor de MySQL&lt;br /&gt;
*$dbPort: Puerto del MySQL.&lt;br /&gt;
*$dbUsuario: Usuario de conexión a MySQL.&lt;br /&gt;
*$dbClave: Clave del usuario anterior.&lt;br /&gt;
*$dirBase: Directorio donde residen las grabaciones&lt;br /&gt;
*$diasCaducidad: Dias de antigüedad para mover las grabaciones&lt;br /&gt;
*$sftpHost: Servidor SFTP de destino&lt;br /&gt;
*$sftpPort: Puerto SFTP.&lt;br /&gt;
*$sftpUsuario: Usuario SFTP.&lt;br /&gt;
*$sftpClave: Clave del usuario SFTP.&lt;br /&gt;
*$simula: Si este campo vale 1, las grabaciones se copian, pero no se borran del directorio original, ni se actualiza su ubicación en la base de datos.&lt;br /&gt;
&lt;br /&gt;
La grabación indica donde se encuentra mediante el campo E_UBICACION_GRABACION, que puede tener los siguientes valores:&lt;br /&gt;
*Sin definir (0)&lt;br /&gt;
*En línea (10): Las grabaciones se encuentran en el servidor de grabaciones.&lt;br /&gt;
*Fuera de línea (20): las grabaciones se encuentran en una ubicación externa.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Reporting ===&lt;br /&gt;
La aplicación de reporting en general no tiene procesos habituales de operación y mantenimiento.&lt;br /&gt;
Los informes son obtenidos desde la interfaz gráfica o mediante un procedimiento de scripting, descritos en “Formato de fichero de intercambio para '''''VIVA'''''it Reporting”.&lt;br /&gt;
&lt;br /&gt;
==== Formato de fichero de intercambio para '''''VIVA'''''it Reporting ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Nombre !! Descripción !! Ejemplo&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;| Selección de registros&lt;br /&gt;
|-&lt;br /&gt;
| SQL_selec || Expresión SQL que se añadirá al where a la SQL principal. || C_ORIGEN like '6%' and C_COD_CLIENTE= '023'&lt;br /&gt;
|-&lt;br /&gt;
| SQL_select_leido || Filtro de selección legible&lt;br /&gt;
 || Skill igual a 60310&lt;br /&gt;
|-&lt;br /&gt;
| SQL_orden || Lista de campos por los que se ordenará, después de los que estén ya definidos en la plantilla. || C_ORIGEN, C_COD_CLIENTE&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Salida&lt;br /&gt;
|-&lt;br /&gt;
| FIC_extension || Extensión de fichero de salida: PDF, XLSX, CSV || PDF&lt;br /&gt;
|-&lt;br /&gt;
| FIC_tipo_entrega || 'P': Pantalla, 'D': Directorio, 'C': Correo || D&lt;br /&gt;
|-&lt;br /&gt;
| FIC_destino || Si 'C', dirección de correo, si 'D', ruta del directorio || D:\informes\&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Plantilla&lt;br /&gt;
|-&lt;br /&gt;
| INF_modelo || Ruta del fichero de plantilla || C:\Modelos\llamadas.rep&lt;br /&gt;
|-&lt;br /&gt;
| INF_descripción || Descripción del informe || Informe detallado de llamadas&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Base de datos&lt;br /&gt;
|-&lt;br /&gt;
| BD_ip || IP o nombre de máquina || &lt;br /&gt;
|-&lt;br /&gt;
| BD_puerto || Puerto de MySQL || &lt;br /&gt;
|-&lt;br /&gt;
| BD_base_datos || Nombre de base de datos || &lt;br /&gt;
|-&lt;br /&gt;
| BD_usuario || Usuario de base de datos || &lt;br /&gt;
|-&lt;br /&gt;
| BD_clave || Clave de acceso cifrada || &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Parámetros&lt;br /&gt;
|-&lt;br /&gt;
| PAR_desde_vis || Fecha inicial de selección en formato legible (o '-' si no hay) || 01/01/2016&lt;br /&gt;
|-&lt;br /&gt;
| PAR_hasta_vis || Fecha final de selección en formato legible (o '-' si no hay) || 31/01/2016&lt;br /&gt;
|-&lt;br /&gt;
| PAR_01 || Parámetro opcional || &lt;br /&gt;
|-&lt;br /&gt;
| .. || .. || &lt;br /&gt;
|-&lt;br /&gt;
| PAR_20 || Parámetro opcional || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El fichero tendrá un nombre único para permitir la generación simultánea de informes.&lt;br /&gt;
El fichero es borrado por la aplicación de forma automática.&lt;br /&gt;
Se pasa a la aplicación de generación de informes como parámetro. Por ejemplo:&lt;br /&gt;
 “C:\Archivos de Programa\MDtel\Nimitz\LanzaInformes\LanzaInformes.exe”&lt;br /&gt;
 “C:\Archivos de Programa\MDtel\Nimitz\LanzaInformes\NIM00001.tmp”&lt;br /&gt;
&lt;br /&gt;
Ejemplo de fichero:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| SQL_selec=(DAT_ACUMULADOS_COLAS.ID_COLA in (11))&lt;br /&gt;
&lt;br /&gt;
SQL_select_leido=Skill igual a 60310&lt;br /&gt;
&lt;br /&gt;
SQL_orden=&lt;br /&gt;
FIC_extension=pdf&lt;br /&gt;
&lt;br /&gt;
FIC_tipo_entrega=P&lt;br /&gt;
&lt;br /&gt;
FIC_destino=C:\&lt;br /&gt;
&lt;br /&gt;
INF_modelo=skill_setsi.rep&lt;br /&gt;
&lt;br /&gt;
INF_descripcion=Skill. SETSI&lt;br /&gt;
&lt;br /&gt;
BD_ip=172.25.1.2&lt;br /&gt;
&lt;br /&gt;
BD_puerto=3306&lt;br /&gt;
&lt;br /&gt;
BD_base_datos=nimitz&lt;br /&gt;
&lt;br /&gt;
BD_usuario=nimitz&lt;br /&gt;
&lt;br /&gt;
BD_clave=UIk5jNY9PVX5ogg=&lt;br /&gt;
&lt;br /&gt;
PAR_desde_vis=-&lt;br /&gt;
&lt;br /&gt;
PAR_hasta_vis=-&lt;br /&gt;
&lt;br /&gt;
PAR_01=&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Resumen de significado de columnas en reporting histórico ====&lt;br /&gt;
Esta información se puede consultar en el siguiente enlace:&lt;br /&gt;
&lt;br /&gt;
http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Documentacion_de_usuario_VIVAit_Suite_3.3#Resumen_del_valor_de_las_columnas_que_aparecen_en_los_informes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===== Agente,asistencia diaria y agente. Asistencia diaria del grupo =====&lt;br /&gt;
&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo de llamado:''' Tiempo de ring en llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo disponible:''' Tiempo que el agente estuvo conectado y no está&lt;br /&gt;
incluido en ninguno de los anteriores.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas transferidas:''' Número de llamadas ACD que fueron&lt;br /&gt;
transferidas por el agente.&lt;br /&gt;
&lt;br /&gt;
===== Agente. Aux y Grupo Aux =====&lt;br /&gt;
&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Desglose de tiempos AUX:''' Tiempo que el agente estuvo en cada uno&lt;br /&gt;
de los motivos de pausa.&lt;br /&gt;
&lt;br /&gt;
===== Agente. Resumen diario =====&lt;br /&gt;
&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo de llamado:''' Tiempo de ring en llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo disponible:''' Tiempo que el agente estuvo conectado y no está&lt;br /&gt;
incluido en ninguno de los anteriores.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas entrada Ext:''' Número de llamadas entrantes NO ACD a la&lt;br /&gt;
extensión.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas salida Ext:''' Número de llamadas salientes NO ACD desde la&lt;br /&gt;
extensión.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas transferidas:''' Número de llamadas ACD que fueron&lt;br /&gt;
transferidas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas retenidas:''' Número de retenciones que sufrieron las&lt;br /&gt;
llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACD:''' Tiempo ACD/ Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACW:''' TiempoACW/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio de entrada a la Ext:''' Tiempo entrada Ext/&lt;br /&gt;
Llamadas entrada Ext.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio de salida a la Ext:''' Tiempo salida Ext/ Llamadas&lt;br /&gt;
salida Ext.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio retención:''' Tiempo retención/Llamadas retenidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % Ocupación con ACW:''' ((Tiempo ACD+ Tiempo retención+ Tiempo&lt;br /&gt;
ACW)/Tiempo con personal)* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % Ocupación sin ACW:''' ((Tiempo ACD+ Tiempo retención)/Tiempo&lt;br /&gt;
con personal)* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % disp.:''' (Tiempo disponible/Tiempo conectado)* 100.&lt;br /&gt;
&lt;br /&gt;
===== Agente. Grupo ACD diario =====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención de un grupo&lt;br /&gt;
ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Ayuda:''' Número de llamadas contestadas por el agente que necesitaron&lt;br /&gt;
de consulta de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas retenidas:''' Número de retenciones que el agente realizó&lt;br /&gt;
sobre las llamadas de ese grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas por&lt;br /&gt;
el agente en ese grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Trans. salida:''' Llamadas que finalizan con una transferencia.&lt;br /&gt;
&lt;br /&gt;
===== Grupo ACD. Reporte diario con AHT =====&lt;br /&gt;
&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACD:''' Tiempo ACD/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACW:''' Tiempo ACW/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención de un grupo&lt;br /&gt;
ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente de un grupo ACD.&lt;br /&gt;
'''• Tiempo de llamado:''' Tiempo de ring en llamadas ACD de un grupo&lt;br /&gt;
ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo disponible:''' Tiempo que el agente estuvo conectado y no está&lt;br /&gt;
incluido en ninguno de los anteriores.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Ayuda:''' Número de llamadas ACD contestadas por el agente en las que&lt;br /&gt;
necesito hacer uso de la consulta.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas retenidas:''' Número de retenciones que el agente realizó&lt;br /&gt;
sobre las llamadas ACD contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas contestadas ACD&lt;br /&gt;
estuvieron retenidas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Trans. salida:''' Número de llamadas ACD que fueron transferidas por el&lt;br /&gt;
agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• AHT:''' (Tiempo ACD+ Tiempo ACW+ Tiempo retención)/Llamadas&lt;br /&gt;
ACD.(Average Handle Time)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Grupo ACD. QOS  =====&lt;br /&gt;
&lt;br /&gt;
'''• Vel. prom. de resp.:''' Tiempo total de espera de llamadas antes de ser&lt;br /&gt;
atendidas/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo prom. de aban.:''' Tiempo abandonadas(tiempo que las&lt;br /&gt;
llamadas abandonadas estuvieron en el grupo ACD)/Llamadas&lt;br /&gt;
abandonadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ofrecidas:''' Número de llamadas entrantes al grupo&lt;br /&gt;
ACD(Llamadas ACD+ Abandonadas+ Desbordadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas contestadas por los agentes.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas abandonadas:''' Número de llamadas colgadas por el cliente&lt;br /&gt;
en el grupo ACD antes de ser contestadas o desbordadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Desconectadas por ACD:''' Número de llamadas desbordadas que al&lt;br /&gt;
salir del grupo ACD se cuelgan.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Desbordadas por ACD:''' Número total de llamadas desbordadas(incluye&lt;br /&gt;
las desconectadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas atendidas en &amp;lt; 20s:'''Número de llamadas contestadas con&lt;br /&gt;
tiempo de respuesta menor a 20 segundos.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo total de espera:''' Tiempo total que las llamadas estuvieron&lt;br /&gt;
esperando antes de ser atendidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % N.A.:''' Llamadas ACD/(Llamadas ACD+ Llamadas abandonadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % N.D.S.:''' (Llamadas atendidas en &amp;lt; 20s/Llamadas ofrecidas)* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• T.M.O:''' (Tiempo ACD+ Tiempo ACW+ Tiempo retención)/Llamadas&lt;br /&gt;
ACD.(Tiempo Medio Operación)&lt;br /&gt;
&lt;br /&gt;
===== Informe conducción (VDN Conducción) =====&lt;br /&gt;
&lt;br /&gt;
'''•Entrantes al grupo ACD:''' Número de llamadas ofrecidas al grupo&lt;br /&gt;
ACD(Contestadas+ Abandonadas+ Desbordadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Llamadas contestadas:''' Número de llamadas contestadas por un agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Contestadas NDS:''' Número de llamadas contestadas en nivel de servicio,&lt;br /&gt;
tiempo de respuesta&amp;lt; 20 segundos.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Abandonadas:''' Número de llamadas abandonadas, colgadas por el cliente&lt;br /&gt;
antes de ser contestadas por un agente o desbordadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Desconectadas:''' Número de llamadas desbordadas que fueron colgadas al&lt;br /&gt;
salir del grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Desbordadas:''' Número total de llamadas desbordadas (incluye desconectadas)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Llamadas retenidas:''' Número de retenciones que el agente realizó sobre las&lt;br /&gt;
llamadas ACD contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•% N.A.:''' (Llamadas contestadas/(Llamadas contestadas+ Abandonadas+&lt;br /&gt;
Desbordadas))* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•% N.D.S.:''' (Contestadas NDS/(Llamadas contestadas+ Abandonadas + Desbordadas))*100&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•% Abandonadas:''' (Abandonadas/(Llamadas contestadas+ Abandonadas+ Desbordadas))* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. RING:''' Tiempo de ring en llamadas ACD(entrantes).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•ACDTIME:''' Tiempo de conversación ACD de las llamadas contestadas o&lt;br /&gt;
realizadas por el agente excluido el tiempo de retención de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. ACW:''' Tiempo dedicado por el agente a tareas administrativas tras&lt;br /&gt;
finalizar las llamadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum HOLD:''' Tiempo que las llamadas contestadas ACD estuvieron retenidas&lt;br /&gt;
por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. OTHER:''' Tiempo total que las llamadas estuvieron esperando en el&lt;br /&gt;
grupo ACD antes de ser atendidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. AVAIL:''' Acum. STAFF- (ACDTIME+ Acum. ACW+ Acum. RING+ Acum.&lt;br /&gt;
HOLD+ Acum. AUX).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. Staff:''' Suma del Tiempo conectado de todos los agentes al grupo&lt;br /&gt;
ACD(Este tiempo se repercute en todos los grupos ACD a los que esta&lt;br /&gt;
conectado el agente).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. AUX:''' Suma del Tiempo en pausa de todos los agentes que estén&lt;br /&gt;
conectados al grupo ACD(Este tiempo se repercute en todos los grupos ACD a&lt;br /&gt;
los que esta conectado el agente).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Prom. ACD:''' ACDTIME/Llamadas contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Prom. ACW:''' Acum. ACW/Llamadas contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Prom. HOLD:''' Acum. HOLD/Llamadas retenidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•AHT:''' (ACDTIME+ Acum. ACW+ Acum. HOLD)/Llamadas contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Vel. prom. de resp.:''' Tiempo total de espera de llamadas antes de ser&lt;br /&gt;
atendidas/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Tiempo máx. de espera:''' Tiempo de la llamada que estuvo mas tiempo en el&lt;br /&gt;
grupo ACD hasta que fue atendida.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Agentes en PH:''' (Acum. Staff- Acum. AUX)/1800(Agentes conectados que no&lt;br /&gt;
están en pausa en el intervalo).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Agentes Staff:''' Acum. Staff/1800(Agentes conectados en el intervalo)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Desglose de tiempos AUX:''' Tiempo que el agente estuvo en cada uno de los&lt;br /&gt;
motivos de pausa.&lt;br /&gt;
&lt;br /&gt;
===== Informe de producción =====&lt;br /&gt;
&lt;br /&gt;
'''• LL. ACD:'''Número de llamadas contestadas por ese agente para ese&lt;br /&gt;
grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. HOLD:''' Número de retenciones efectuadas para las llamadas&lt;br /&gt;
contestadas en ese grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Redir.:''' Número de llamadas no contestadas por un agente que&lt;br /&gt;
fueron redirigidas de nuevo a la cola.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. No colgadas cliente:''' Número de llamadas que terminaron sin el&lt;br /&gt;
colgado del cliente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Aband.:''' Número de llamadas abandonadas en ese grupo ACD, este&lt;br /&gt;
valor es independiente del agente por tanto se repite el valor para todos&lt;br /&gt;
los agentes en un mismo grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Transfer.:''' Número de llamadas ACD que fueron transferidas por el&lt;br /&gt;
agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Conf:''' Número de llamadas ACD en las que el agente estableció&lt;br /&gt;
conferencia.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• S. Extensión:''' Número de llamadas salientes de extensión, este valor es&lt;br /&gt;
independiente del grupo ACD se repite el valor para todos los grupos&lt;br /&gt;
ACD en los que está conectado el agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. Staff:''' Tiempo que el agente estuvo conectado al grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. RING:''' Tiempo de ring en las llamadas ACD(entrantes) que&lt;br /&gt;
fueron contestadas por el agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. ACD:''' Tiempo de conversación de las llamadas ACD(entrantes)&lt;br /&gt;
que fueron contestadas por el agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas que fueron contestadas por él.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum HOLD:''' Tiempo que las llamadas ACD(entrantes) para ese grupo&lt;br /&gt;
ACD que fueron contestadas por el agente estuvieron retenidas.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. AVAIL:''' Acum. STAFF- (Acum. ACD+ Acum. ACW+ Acum. RING+&lt;br /&gt;
Acum. HOLD+ Acum. AUX)..&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. AUX:''' Tiempo que el agente estuvo en pausa este valor es&lt;br /&gt;
independiente del grupo ACD se repite el valor para todos los grupos&lt;br /&gt;
ACD en los que está conectado el agente..&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Desgloses de tiempos AUX, tiempo AUX por cada uno de los&lt;br /&gt;
motivos.''' este valor es independiente del grupo ACD se repite el valor&lt;br /&gt;
para todos los grupos ACD en los que está conectado el agente.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Consideraciones adicionales =====&lt;br /&gt;
&lt;br /&gt;
Los tiempos se insertan en el intervalo en el que se deja ese &amp;quot;estado&amp;quot;, esto provoca que en un intervalo pueda ser mayor el tiempo ACD que el tiempo conectado.&lt;br /&gt;
&lt;br /&gt;
''* Ejemplo:''&lt;br /&gt;
&lt;br /&gt;
 -Llamada: Duración 15 minutos Hora fin de la llamada 13:01&lt;br /&gt;
 -Llamada: Duración 20 minutos Hora fin de la llamada 13:24&lt;br /&gt;
 Suma de las duraciones de las llamadas para el intervalo ''35 minutos'' tiempo&lt;br /&gt;
 conectado del agente en el intervalo ''30 minutos.''&lt;br /&gt;
 Cuando los periodos consultados sean mas amplios (diario, mensual) los&lt;br /&gt;
 desfases tenderán a desaparecer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Otros Diagnósticos y operaciones básicas ==&lt;br /&gt;
=== Arranque y apagado de la plataforma ===&lt;br /&gt;
&lt;br /&gt;
En general el arranque y apagado de cada nodo de una plataforma '''''VIVA'''''it es el estándar de un procedimiento ordenado de apagado en una máquina linux: '''&amp;quot;Shutdown -h now&amp;quot;''' o comando de apagado inmediato o programado equivalente&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El orden de arranque de la plataforma deberá ser:&lt;br /&gt;
# En primer lugar arrancar el nodo con la base de datos de tiempo real&lt;br /&gt;
# Una vez finalizado el arranque del punto 1, arrancar el nodo con la base de datos de réplica&lt;br /&gt;
# Una vez finalizado el arranque del punto 2, arrancar el resto de nodos en cualquier orden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Al respecto del orden de apagado de nodos, es el siguiente:&lt;br /&gt;
# En primer lugar se apagarán, en cualquier orden, los nodos que NO CONTENGAN bases de datos de tiempo real ni bases de datos de réplica&lt;br /&gt;
# Una vez apagados totalmente todos los nodos del punto 1, apagaremos el nodo (o nodos) con bases de datos de réplica&lt;br /&gt;
# Una vez apagados totalmente todos los nodos del punto 2, se apagará el nodo con la base de datos de tiempo real&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== Nivel matriz de conmutación ===&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Grabación ===&lt;br /&gt;
&lt;br /&gt;
==== Configuración de la grabación en la plataforma corporativa ====&lt;br /&gt;
Para que una llamada se grabe, lo primero de todo es que  alguien tenga la capacidad de grabar. Esto se consigue diciendo al nodo que sea grabador. Esto provoca que el nodo llame al mixmonitor para grabar y se inserte un registro en el DAT_GRABACIONES. Esto no significa que ya las llamadas se vayan a grabar, ya que para eso tiene que ser procesadas por un nodo que sea grabador. Hay tres, llamémosle elementos, que se pueden grabar:&lt;br /&gt;
&lt;br /&gt;
* El nodo, es decir todo lo que el nodo enrute&lt;br /&gt;
* Prerutas&lt;br /&gt;
* Objetos: que son las extensiones, usuarios, grupos corporativos, etc.&lt;br /&gt;
&lt;br /&gt;
Tenemos tres formas de grabar:&lt;br /&gt;
&lt;br /&gt;
* Grabar con beep periódico&lt;br /&gt;
* Grabar sin beep periódico&lt;br /&gt;
* Descartar grabación&lt;br /&gt;
&lt;br /&gt;
Si de los tres elementos tenemos que uno grabe, ya sea con o sin beep periódico, esa llamada se va a grabar ya que son OR, en cuanto haya un elemento que diga que grabe se va a grabar.&lt;br /&gt;
&lt;br /&gt;
Al igual pasa si tenemos que un elemento tenga descartar la grabación. La grabación no se inicia.&lt;br /&gt;
&lt;br /&gt;
Referente al campo de Modo de grabación en infraestructura, este no se emplea para la grabación de corporativo, sino que solo tiene validez en ACD. Para grabación en el ACD hay que, como se ha dicho anteriormente poner un nodo que sea grabador y especificar un elemento de los tres que hay cual es el que se va a grabar.&lt;br /&gt;
&lt;br /&gt;
Para que exista una grabación ha de existir un segmento asociado a esta. Los segmentos se tratan en las prerutas. Hay un campo es las prerutas que es Generar segmento al enrutar. Si está se generará el segmento del tipo de la preruta y su correspondiente grabación si esta está configurada. Si le decimos que no genere segmentos al enrutar y el sistema está configurado para que grabe, el recordCentral creará un tipo de segmento llamado externo para esa grabación. Podemos configurar si queremos que se cree o no ese segmento, para eso hay que modificar el fichero de configuración del recordCentral y poner un tiempo muy alto al campo $segmExternoMinSegs. También podemos configurar que segmentos queremos que se graben. Por defecto el recordCentral va configurado para que se graben todos los segmentos. Para decirle que solo grabe cierto tipo de segmentos hay que ponerlos los que queramos que si se graben en la variable $tiposSegmentoGrabar del fichero de configuración del recordCentral.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que el servidor de grabación esta activo ====&lt;br /&gt;
&lt;br /&gt;
Si al ejecutar el comando '''''nc ip_maquina 1114''''',si no se recibe ninguna respuesta, significa el servidor de grabación no estaría activo. &lt;br /&gt;
También usando el comando ''''' ps aux | grep recordCentral ''''', donde si no escribe ningún resultado implica que tampoco esta activo.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que los nodos están conectados al servidor de grabación ====&lt;br /&gt;
&lt;br /&gt;
Debemos fijarnos en la linea de respuesta del comando '''''nc ip_maquina 1114''''', que seria:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| root@smadavacdrecord1:~# nc localhost 1114&lt;br /&gt;
recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423&lt;br /&gt;
160112'&lt;br /&gt;
&lt;br /&gt;
recordCentral MYSQL cnx=1&lt;br /&gt;
&lt;br /&gt;
recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
&lt;br /&gt;
recordCenral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
&lt;br /&gt;
'''recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10''''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el parámetro &amp;quot;fase=0&amp;quot; es el numero que identifica el recordCentral, los demás parámetros nos indicaran los nodos disponibles , que funcionan o no en el servidor. Entonces &amp;quot;gestión=4,6,7,8,9,10&amp;quot; indica el id de los nodos que maneja el proceso.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que un nodo tiene activo el agente de grabación ====&lt;br /&gt;
Si al ejecutar el comando '''''nc ip_maquina 1113''''', no se recibe ninguna respuesta, significa que el nodo no tiene activo el agente de grabación.&lt;br /&gt;
También usando el comando ''''' ps aux | grep recordNodo''''', donde si no escribe ningun resultado implica que tampoco esta activo.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que un nodo está subiendo archivos de grabación al servidor ====&lt;br /&gt;
Debemos fijarnos en la linea de respuesta del comando '''''nc ip_maquina 1114''''', que seria:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| root@smadavacdrecord1:~# nc localhost 1114&lt;br /&gt;
recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423&lt;br /&gt;
160112'&lt;br /&gt;
&lt;br /&gt;
recordCentral MYSQL cnx=1&lt;br /&gt;
&lt;br /&gt;
recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
&lt;br /&gt;
recordCenral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
&lt;br /&gt;
'''recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10''''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Fijándonos en &amp;quot;descarga=8,6,4,7,10,9&amp;quot; nos confirma que todos los nodos que maneja el proceso funcionan perfectamente y el servidor puede manejar las grabaciones.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de grabaciones que se hayan quedado enganchadas en un nodo ====&lt;br /&gt;
Podemos fijarnos en los dos comandos, para '''''nc ip_maquina 1114''''':&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| root@smadavacdrecord1:~# nc localhost 1114&lt;br /&gt;
recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423&lt;br /&gt;
160112'&lt;br /&gt;
&lt;br /&gt;
recordCentral MYSQL cnx=1&lt;br /&gt;
&lt;br /&gt;
recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
&lt;br /&gt;
recordCenral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
&lt;br /&gt;
'''recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10''''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Fijándonos en el campo &amp;quot;cuarentena=''&amp;quot; indica que ninguno de los nodos tiene problemas.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación del estado de ocupación del almacenamiento temporal de grabaciones en un nodo. ====&lt;br /&gt;
&lt;br /&gt;
Desde un SSH ejecuta el comando '''''df - h''''' en la maquina donde creamos que debe estar ejecutando el proceso recordNod:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Filesystem !! Size !! Used !! Avail !! Use% !! Mounted on&lt;br /&gt;
|-&lt;br /&gt;
| udev || 486M || 4,0K || 486M || 1,00% || /dev&lt;br /&gt;
|-&lt;br /&gt;
| tmpfs || 100M || 416K || 99M || 1,00% || /run&lt;br /&gt;
|-&lt;br /&gt;
| '''/dev/vda1''' ||''' 236M''' ||''' 68M''' ||''' 156M''' ||''' 31,00% '''||''' /boot'''&lt;br /&gt;
|-&lt;br /&gt;
| tmpfs || 100M || 48K || 100M || 1,00% || /var/spool/asterisk/monitor&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Nos fijaríamos en la línea marcada en negrita, el campo &amp;quot;Use%&amp;quot; indicara el porcentaje de almacenamiento temporal de grabaciones en un nodo.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Escuchas e intrusiones en asterisk===&lt;br /&gt;
'''CallSpy''' es una aplicación elaborada para asterisk que permite a un usuario realizar escuchas e &lt;br /&gt;
intrusiones en llamadas. &lt;br /&gt;
En realidad tenemos dos aplicaciones en asterisk, CallSpy y CallSpyee. &lt;br /&gt;
====CallSpy ====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 '''Nota:''' Como mucho se pueden tener a dieciséis personas al mismo tiempo usando esta aplicación. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como hemos mencionado anteriormente, esta aplicación permite la escucha de llamadas y, &lt;br /&gt;
opcionalmente, realiza la función de intrusión. Tiene tres opciones de configuración obligatorios &lt;br /&gt;
que mostramos a continuación: &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 CallSpy(&amp;lt;tipoEspiado&amp;gt;,&amp;lt;expRegEspiado&amp;gt;,&amp;lt;parametrosConf&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
La opción '''&amp;lt;tipoEspiado&amp;gt;''' se refiere a que tipo de objeto que podemos espiar correspondiente, solo debe elegirse un único tipo: &lt;br /&gt;
*'''c:''' escuchar una cola&lt;br /&gt;
*'''v:''' escuchar un vdn &lt;br /&gt;
*'''a:''' escuchar a un agente &lt;br /&gt;
*'''e:''' escuchar extensión &lt;br /&gt;
La opción '''&amp;lt;expRegEspiado&amp;gt;''' representa el número de la cola, VDN, agente o extensión que queremos escuchar. Tiene que ser una expresión regular. &lt;br /&gt;
La opción '''&amp;lt;parametrosConf&amp;gt;''' se refiera a los parámetros de configuración para la llamada que podemos espiar, se pueden combinar o juntar : &lt;br /&gt;
*'''q:''' Desactiva el 'beep' al comienzo de cada nueva llamada. &lt;br /&gt;
*'''v([value]):''' Ajusta el volumen en el rango -4 a 4 (más alto, mas volumen). &lt;br /&gt;
*'''e:''' Habilita el que se pueda cambiar a otra llamada de la misma extensión. &lt;br /&gt;
*'''w:''' Habilita el que se pueda activar la intrusión (whisper).&lt;br /&gt;
Una vez iniciada la escucha, solo falta que entre una llamada al objetivo que estemos espiando. Al &lt;br /&gt;
iniciar la escucha, se puede hacer lo siguiente: &lt;br /&gt;
*Pulsando '''#''' modifica el volumen de escucha. &lt;br /&gt;
*Pulsando '''*''' cambia a una nueva llamada. &lt;br /&gt;
*Pulsando '''1''' si esta habilitado, cambia a otra llamada de la misma extensión. &lt;br /&gt;
*Pulsando '''2''' si esta habilitado, inicia la función de intrusión. &lt;br /&gt;
*Pulsando '''3''' desactiva la función de intrusión. &lt;br /&gt;
====CallSpyee (espiado)====&lt;br /&gt;
Mediante esta aplicación indicamos los parámetros que permite a una llamada ser seleccionada para &lt;br /&gt;
escuchar. Las opciones de configuración son: &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 CallSpyee([CID_NUM],[cola],[vdn],[agen],[exten]) &lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:'''No son parámetros obligatorios, por lo que no hace falta rellenar todos los campos pero si respetar sus posiciones separadas por comas.&amp;lt;small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
La explicación de los parámetros es la siguiente:&lt;br /&gt;
*'''CID_NUM:''' representa el call ID de la llamadas &lt;br /&gt;
*'''cola:'''representa el número de la cola que se quiere espiar (${QUEUE} ).&lt;br /&gt;
*'''vdn:'''   representa el número del VDN que se quiere espiar (${VDN} ).&lt;br /&gt;
*'''agen:''' representa el número del agente que se quiere espiar.&lt;br /&gt;
*'''exten:''' representa el número de la extensión que se quiere espiar (${EXTENSION}) .&lt;br /&gt;
&lt;br /&gt;
Por ejemplo si queremos escuchar todas las llamadas en las que participa una extensión determinada pondremos en la macro de extensiones: &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,,,${EXTENSION}) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Cambios para el dialplan de asterisk==== &lt;br /&gt;
El funcionamiento de este tipo de servicio conlleva un cambio en el dialplan de asterisk. En cada macro correspondiente se pondrá los diferentes CallSpyee para VDN, colas  , extensiones y agentes. &lt;br /&gt;
Pasos a seguir: &lt;br /&gt;
*Paso 1. Creación de un código de intrusión para cada tipo según necesidad (cola, VDN, agente y &lt;br /&gt;
extensión). &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Ejemplo '''MD'''tel:  declaramos como código de intrusión a Agente *44*NUMERO &lt;br /&gt;
 ;========================================== &lt;br /&gt;
 ;======== Intrusion a Agente &lt;br /&gt;
 ;========================================== &lt;br /&gt;
 exten =&amp;gt; _*44*X.,1,set(CadMarcar=intrusionEspiado) &lt;br /&gt;
 exten =&amp;gt; _*44*X.,n,set(DesL=SERVICIO) &lt;br /&gt;
 exten =&amp;gt; _*44*X.,n,set(datoServicio=^${EXTEN:4}) &lt;br /&gt;
 exten =&amp;gt; _*44*X.,n,Goto(finMacro,1) &lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' En la tercera línea podemos observar la expresión regular que se le pasara al CallSpy correspondiente con el número marcado por el espia. &amp;lt;small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*Paso 2.Llamar a CallSpy con la configuración deseada.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Ejemplo '''MD'''tel:  llamada a CallSpy especificando que vamos a espiar una cola (la c del primer parámetro, con la&lt;br /&gt;
 extensión introducida en el código de intrusión y con whisper, es decir, función de intrusión habilitada. &lt;br /&gt;
 ;------------------------------------------------------------------------ &lt;br /&gt;
 ; Intrusion a Espiado &lt;br /&gt;
 ;------------------------------------------------------------------------ &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,1,NoOp &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,n,GotoIf($[&amp;quot;${datoServicio}&amp;quot;=&amp;quot;&amp;quot;]?colgar) &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,n,CallSpy(c,${datoServicio},w) &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,n(colgar),Hangup &lt;br /&gt;
|}&lt;br /&gt;
* Paso 3. Llamar a CallSpyee con la configuración de las llamadas candidatas a ser escuchadas.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Ejemplo '''MD'''tel: &lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,,,,${EXTENSION}) → Para extensiones &lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,${QUEUE},,,) → Llamadas espiadas por cola &lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,,${VDN},,) → Llamadas espiadas por VDN &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Calendarios ===&lt;br /&gt;
&lt;br /&gt;
Para la configuración de los Calendarios se hace uso de '''CalDAV''', estándar de Internet que permite a un cliente acceder a información de planificación en un servidor remoto. Permite que varios clientes accedan a la misma información, facilitando la cooperación. Muchas aplicaciones, tanto clientes como servidores, son compatibles con este protocolo.&lt;br /&gt;
&lt;br /&gt;
Si deseamos crear un calendario en la plataforma '''VIVAit''' podemos hacerlo siguiendo el  siguiente enlace:  &lt;br /&gt;
Para comprobar que el servidor de calendarios funciona correctamente bastaría con cargar en la barra de direcciones la siguiente url: [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Calendarios |Calendarios]]&lt;br /&gt;
&lt;br /&gt;
http://${NODO.HOST}/dav/html/cal.php/calendars/${DAV.CUENTA}/${DAV.CALENDARIO}&lt;br /&gt;
&lt;br /&gt;
donde,&lt;br /&gt;
&lt;br /&gt;
* '''NODO.HOST:''' es la ip del servidor calendar&lt;br /&gt;
* '''DAV.CUENTA:''' hace referencia a la cuenta de usuario&lt;br /&gt;
* '''DAV.CALENDARIO:''' hace referencia el nombre de la cuenta&lt;br /&gt;
&lt;br /&gt;
Una vez que se carga la url sabremos que el servidor funciona correctamente si visualizamos lo siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla de 2016-07-21 12_43_58.png || 1020px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si el sistema nos pide usuario y clave querrá decir que el servidor de calendarios está operativo en esa maquina&lt;br /&gt;
&lt;br /&gt;
Para comprobar que funciona en la consola de asterisk usaremos los comandos &lt;br /&gt;
 calendar show calendars&lt;br /&gt;
 calendar show calendar [nombreCalendario]&lt;br /&gt;
&lt;br /&gt;
 '''Nota:''' Debido bugs detectados, el proceso requerirá:&lt;br /&gt;
       - La realización de una sincronización manual de la sección &amp;quot;mdcal&amp;quot; desde el portal de administración&lt;br /&gt;
       - Añadir la línea '''''#include &amp;quot;/etc/asterisk/mdcal.conf&amp;quot;''''' en el fichero calendars.conf y hacer &amp;quot;reload&amp;quot; de asterisk&lt;br /&gt;
       - En la máquina donde esté instalado el servidor de calendarios apuntar a la IP de la BDTR (/var/www/dav/config.php)&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Syslog de agentes ===&lt;br /&gt;
'''''Syslog''''' es un estándar para el envío de mensajes de registro en una red informática IP. Por '''''Syslog''''' se conoce tanto al protocolo de red como a la aplicación o biblioteca que envía los mensajes de registro. Se lanza automáticamente al arrancar un sistema Unix, y es el encargado de guardar informes sobre el funcionamiento de la máquina (eventos, seguridad del sistema, etc) pero puede contener también cualquier información como mensajes de las diferentes partes del sistema (núcleo, programas...) y los envía y/o almacena en diferentes localizaciones transmitiéndose mediante un puerto UDP. Esto permite concentrar los registros de múltiples máquinas en un único punto simplificando la labor de gestión al administrador siendo habitual que múltiples dispositivos lo soporten.&lt;br /&gt;
&lt;br /&gt;
El formato del mensaje se compone de tres campos :&lt;br /&gt;
&lt;br /&gt;
* La cabecera contiene la prioridad, fecha y hora del mensaje, máquina, proceso (nombre e identificador) que lo ha generado y la versión del protocolo utilizado.&lt;br /&gt;
* Una serie de pares clave-valor con metadatos.&lt;br /&gt;
* El texto del mensaje.&lt;br /&gt;
&lt;br /&gt;
Si es necesario podemos activar el registro de todos los eventos telefónicos que realiza un agente ACD llamado '''Syslog de agentes'''. Su activación se realiza mediante el '''portal de administración ''VIVA''it'''  configurando unos parámetros para un usuario llamado ''Rastreo BBDD&amp;quot; y ''Rastreo Syslog''. Para más información[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Pesta.C3.B1a_ACD | ver sección  Portal de administración - General - Usuarios - Pestaña ACD  ]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot;  align=&amp;quot;top&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot; |&amp;lt;big&amp;gt;'''Elemento'''&amp;lt;/big&amp;gt; &lt;br /&gt;
|align=&amp;quot;center&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot; | &amp;lt;big&amp;gt;'''Procedimiento'''&amp;lt;/big&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Operacion&lt;br /&gt;
|-&lt;br /&gt;
|Ubicación del proceso||Script arranque: /etc/init/ rsyslog.conf&lt;br /&gt;
Configuración :&lt;br /&gt;
/etc/rsyslog.d/30-vivait-&lt;br /&gt;
desk.conf&lt;br /&gt;
|-&lt;br /&gt;
|Arranque||service rsyslog start&lt;br /&gt;
|-&lt;br /&gt;
|Parada||service rsyslog stop&lt;br /&gt;
|-&lt;br /&gt;
|Reinicio||service rsyslog reload&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Diagnostico&lt;br /&gt;
|-&lt;br /&gt;
|Registro de logs||/var/log/MDtel/vivait-desk.log&lt;br /&gt;
Fichero del día actual. se guardan los 30&lt;br /&gt;
anteriores comprimidos en tar.g&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Generación de un Core ===&lt;br /&gt;
Un Core es la memoria de un programa.&lt;br /&gt;
&lt;br /&gt;
Para generar un Core rápido con Asterisk hay que hacer lo siguiente:&lt;br /&gt;
&lt;br /&gt;
    Ejecutar ps aux | grep asterisk y coger el PID del programa&lt;br /&gt;
    gdb /usr/sbin/asterisk [PID]&lt;br /&gt;
    gcore [file]&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==Funcionalidades específicas ==&lt;br /&gt;
=== Mecanismo de prioridad adaptativa ===&lt;br /&gt;
&lt;br /&gt;
El mecanismo de prioridad adaptativa permite en una plataforma '''''VIVA'''''it Suite establecer prioridades en las que se tenga en cuenta el tiempo de espera de las llamadas en cola, proporcionando una alternativa al mecanismo de prioridad absoluta que existe por defecto&lt;br /&gt;
&lt;br /&gt;
==== Introducción ====&lt;br /&gt;
&lt;br /&gt;
Este documento presenta una propuesta de mecanismo de asignación de llamadas en colas a agentes basado no solo en las prioridades de agente a cola,&lt;br /&gt;
sino en un factor de corrección de prioridad derivado del tiempo de espera de una llamada&lt;br /&gt;
&lt;br /&gt;
==== Terminología ====&lt;br /&gt;
&lt;br /&gt;
* '''Prioridad de llamada:''' A cada llamada susceptible de ser atendida en el ''Call Center'' se le asignará una prioridad de llamada; dicha prioridad será asignada cada vez que un agente quede disponible.&lt;br /&gt;
* '''Prioridad de grupo ACD:''' Los agentes del ''Call Center'' tendrán configurada una prioridad para cada grupo ACD al que pertenecen&lt;br /&gt;
* '''Tiempo de espera:''' Tiempo que una llamada lleva en espera en un determinado grupo ACD; si la llamada cambia de un grupo ACD a otro el tiempo de espera pasa a cero&lt;br /&gt;
* '''Objetivo de servicio:''' Tiempo objetivo máximo de espera por cada grupo ACD&lt;br /&gt;
&lt;br /&gt;
 '''Nota.-''' ''En terminología Asterisk el aumento de prioridad corresponde con números descendentes, es decir,&amp;lt;br /&amp;gt;&lt;br /&gt;
 prioridad 50 es mejor que prioridad 70''&lt;br /&gt;
&lt;br /&gt;
==== Mecanismo de asignación de llamadas ====&lt;br /&gt;
&lt;br /&gt;
En el momento en que exista un agente disponible para recibir llamada, el agente recepcionará la llamada con mejor prioridad de llamada (menor número). La prioridad de llamada para cada llamada se establecerá de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
- Agentes con prioridad de grupo ACD de 1 a 99 utilizarán el mecanismo convencional de asterisk de prioridad absoluta; será útil para grupos ACD críticos o en Call Centers muy convencionales&lt;br /&gt;
&lt;br /&gt;
'''Si un agente tiene prioridad menor de 100 en grupos ACD y hay llamadas en dichos grupos, estas llamadas serán atendidas por el agente con prioridad absoluta.'''&lt;br /&gt;
&lt;br /&gt;
- Agentes con prioridad de colas de 100 en adelante; se utilizará el siguiente mecanismo de prioridad ponderada:&lt;br /&gt;
&lt;br /&gt;
:*Si el grupo ACD de la llamada está dentro del objetivo de servicio, la prioridad de llamada será la prioridad de grupo ACD (a efectos prácticos se aplicará el mecanismo convencional de asignación de llamada a agente, equitativo entre grupos ACD con misma prioridad)&lt;br /&gt;
&lt;br /&gt;
:*Si el grupo ACD de la llamada está fuera del objetivo de servicio, se aplicará una ponderación que mejorará la prioridad de la llamada a medida que aumente el tiempo de espera:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Formula.png |center]]&lt;br /&gt;
&lt;br /&gt;
En una configuración de igualdad de prioridad de agente y objetivo de servicio, el tiempo de espera influiría de manera determinante (más o menos en&lt;br /&gt;
función del peso) en la asignación de la siguiente llamada&lt;br /&gt;
El peso podrá adquirir tres posibles valores: 0, 1 y 10&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Esquema.png |center]]&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;span style=&amp;quot;color:#000080&amp;quot;&amp;gt;- Calculo prioridad de llamada: se calcula por llamada cada vez que un agente queda libre&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span style=&amp;quot;color:#000080&amp;quot;&amp;gt;- Agente atiende llamada con mejor prioridad de llamada&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Medio:Asignación de llamadas por prioridad adaptativa.pdf|Asignación de llamadas por prioridad adaptativa]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Marcación saliente ===&lt;br /&gt;
Dentro del ACD hay un comportamiento especial que es la marcación saliente. Esta puede ser de tres tipos:&lt;br /&gt;
* '''Vista previa''': El agente demanda la siguiente llamada a realizar.&lt;br /&gt;
* '''Progresivo''': Se llama al agente y se lanza la llamada al contacto.&lt;br /&gt;
* '''Predictivo''': El sistema calcula cuando va a estar libre el agente y se adelanta lanzando varias llamadas (configurables por parámetros). La llamada que es contestada primero, se pasa a una cola (el resto se cuelgan) a la espera que el agente se quede libre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Esquema de funcionamiento====&lt;br /&gt;
[[Archivo:esquema funcionamiento marcador.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
Los contactos se agrupan en listas para su facilidad de asignación a campañas, aunque finalmente lo que se asigna a una campaña es un contacto.&lt;br /&gt;
&lt;br /&gt;
Las campañas tienen estrategias. Las estrategias definen como se ha de llamar (del primero al último, sólo los pares, etc.). Tienen una serie de parámetros que  dependiendo de la estrategia pueden tener distinta utilidad. Desde el punto de vista de la base de datos, las estrategias se definirían en la tabla ACD_CLASES_ESTRATEGIAS y se les da valor en la tabla ACD_ESTRATEGIAS_MARCADOR.&lt;br /&gt;
Una vez establecida la campaña y asignados sus contactos y dependiendo del modo de marcación (que se define en las colas) el proceso motorSal crea los intentos de marcación (siempre y cuando no estén en las listas Robinson), que serán leídos por el proceso myAcdSuperv que los convierte en llamadas para el Asterisk.&lt;br /&gt;
&lt;br /&gt;
====Flujo de estados====&lt;br /&gt;
&lt;br /&gt;
El flujo de estados es el reflejado en la figura siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:diagrama de flujo motorsal.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
Los diferentes estados de un contacto son:&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Estado !! ID_Estado!! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| Planificable || 0|| El contacto está preparado para que lo gestione motorSal y según la estrategia definida se establece el campo ACD_CONTACTOS_CAMPANNAS.D_HORA_PROXIMA&lt;br /&gt;
|-&lt;br /&gt;
|Planificado||10||Cuando ha llegado el tiempo marcado en HORA PROXIMA, motorSal ejecuta la 2ª fase de la estrategia, generando el intento de marcación.&lt;br /&gt;
|-&lt;br /&gt;
|Intento||20||El control pasa a myAcdSuperv, que a su vez genera la llamada en Asterisk. Cuando termina, se pasa a Planificable o Finalizado.&lt;br /&gt;
|-&lt;br /&gt;
|Finalizado||100||Las gestiones con este contacto han terminado.&lt;br /&gt;
|-&lt;br /&gt;
|Abortado||110||&lt;br /&gt;
|-&lt;br /&gt;
|Obsoleto||200||Se ha agotado el tiempo para contactar sin agotar todos los intentos. No se le vuelve a llamar nunca.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Carga de contactos====&lt;br /&gt;
&lt;br /&gt;
===== Descripción =====&lt;br /&gt;
&lt;br /&gt;
A continuación se explica la configuración y funcionamiento de la utilidad encargada de asignar contactos a campañas.&lt;br /&gt;
&lt;br /&gt;
===== Configuración =====&lt;br /&gt;
&lt;br /&gt;
El archivo de configuración recibe el nombre de '''cargaContactos.pconf.''' Este archivo reside en '''/etc/MDtel.''' El formato se describe en la tabla siguiente. Hay que tener en cuenta que las columnas empiezan a numerarse en 0.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Parámetro !! Valor !! Obligatorio !! Defecto&lt;br /&gt;
|- &lt;br /&gt;
| db|| Nombre de la base de datos|| SI || nimitz&lt;br /&gt;
|- &lt;br /&gt;
| dbHost|| Host MySQL || SI || localhost&lt;br /&gt;
|- &lt;br /&gt;
| dbPort|| Puerto MySQL || NO || 3306&lt;br /&gt;
|- &lt;br /&gt;
| dbUsuario || Usuario de acceso a la base de datos|| SI ||&lt;br /&gt;
|- &lt;br /&gt;
| dbClave || Clave del usuario || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| rutaContactos || Ruta hasta el archivo de contactos || NO || /var/spool/MDtel/contactos&lt;br /&gt;
|- &lt;br /&gt;
| obsoletos || Si vale 1, marcar como obsoletos los contactos anteriores || NO || 0&lt;br /&gt;
|- &lt;br /&gt;
| diasCaducidad || Número de dias a partir de los cuales caducarán los contactos || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| idCampanna || Número de columna que contiene el ID de la campaña || SI||&lt;br /&gt;
|- &lt;br /&gt;
| idLista || Numero de columna que contiene el ID de la lista || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| prioridad || Número de columna que contiene la prioridad || NO || Nota: El valor es de 0 a 99. A mayor número mayor prioridad (se le llamará '''ANTES''')&lt;br /&gt;
|- &lt;br /&gt;
| tipoTarea|| Número de columna que contiene el tipo de tarea || NO || Nota: los posibles valores de la columna son : &amp;lt;br /&amp;gt; *A: Alta &amp;lt;br /&amp;gt; *M: Modificación &amp;lt;br /&amp;gt; *B: Baja&amp;lt;br /&amp;gt; Por defecto el valor es A&lt;br /&gt;
|- &lt;br /&gt;
| codCli || Número de columna del CSV que contiene el código de cliente || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| nombreCon || Número de columna del CSV que contiene el nombre || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| apellido1 || Número de columna del CSV que contiene el primer apellido|| NO ||&lt;br /&gt;
|- &lt;br /&gt;
| apellido2 || Número de columna del CSV que contiene el segundo apellido || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| empresa || Número de columna del CSV que contiene la empresa || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| direccion1 || Número de columna del CSV que contiene la dirección || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| direccion2 || Número de columna del CSV que contiene la dirección 2 || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| codPostal || Número de columna del CSV que contiene el código postal || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| localidad || Número de columna del CSV que contiene la localidad || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| provin || Número de columna del CSV que contiene la provincia || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| email || Número de columna del CSV que contiene el email || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_1 || Número de columna del CSV que contiene el primer número fijo del contacto || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_2 || Número de columna del CSV que contiene el segundo número fijo del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_3 || Número de columna del CSV que contiene el tercer número fijo del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_4 || Número de columna del CSV que contiene el cuarto número fijo del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_1 || Número de columna del CSV que contiene el primer número móvil del contacto || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_2 || Número de columna del CSV que contiene el segundo número móvil del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_3 || Número de columna del CSV que contiene el tercer número móvil del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_4 || Número de columna del CSV que contiene el CUARTO número móvil del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| edad || Número de columna del CSV que contiene la edad || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc1|| Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc2 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc3 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc4 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc5 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc6 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc7 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc8 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc1 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc2 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc3 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc4 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc5 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc6 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc7 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc8 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|-&lt;br /&gt;
| Idioma || Idioma del contacto || NO ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Funcionamiento =====&lt;br /&gt;
&lt;br /&gt;
Para ejecutar la utilidad se debe teclear la siguiente orden en la línea de comandos:&lt;br /&gt;
&lt;br /&gt;
'''cmd# cargaContactos.pl /&amp;lt;ruta hasta el conf&amp;gt;/cargaContactos.pconf &amp;lt;archivo CSV&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
El archivo con los contactos deberá ser un CSV con los campos separados por ';'. La utilidad parsea el archivo conforme a la distribución indicada en la configuración y crea las correspondientes entradas en las tablas '''ACD_CONTACTOS''' y '''ACD_CONTACTOS_CAMPANNAS.'''&lt;br /&gt;
&lt;br /&gt;
La utilidad crea un log en '''/var/log/cargaContactos.log''' en el que vuelca toda la operativa.&lt;br /&gt;
Por pantalla se va mostrando un lista con el ID asignado al contacto y el ID de campaña al que se le ha asignado.&lt;br /&gt;
&lt;br /&gt;
Un ejemplo de fichero de carga de contactos sería el siguiente: &lt;br /&gt;
&lt;br /&gt;
 #&lt;br /&gt;
 # Configuracion de recordGwd.pl&lt;br /&gt;
 #&lt;br /&gt;
 # Conexion de base de datos&lt;br /&gt;
 $db='nimitz';&lt;br /&gt;
 $dbHost = 'localhost';&lt;br /&gt;
 $dbPort = '3306';&lt;br /&gt;
 $dbUsuario = 'nimitz';&lt;br /&gt;
 $dbClave = 'LA QUE SEA';&lt;br /&gt;
 $diasCaducidad='300';&lt;br /&gt;
 $rutaGrab = '/var/spool/MDtel/contactos';&lt;br /&gt;
 $idCampanna = '31';&lt;br /&gt;
 $idLista = '32';&lt;br /&gt;
 $obsoletos = 0;&lt;br /&gt;
 $codCli = '1';&lt;br /&gt;
 $nombreCon = '2';&lt;br /&gt;
 $apellido1 = '3';&lt;br /&gt;
 $apellido2 = '4';&lt;br /&gt;
 $empresa = '5';&lt;br /&gt;
 $direccion1 = '6';&lt;br /&gt;
 $direccion2 = '7';&lt;br /&gt;
 $codPostal = '8';&lt;br /&gt;
 $localidad = '9';&lt;br /&gt;
 $provin = '10';&lt;br /&gt;
 $email = '11';&lt;br /&gt;
 $valFijo_1 = '12';&lt;br /&gt;
 $valFijo_2 = '13';&lt;br /&gt;
 $valFijo_3 = '14';&lt;br /&gt;
 $valFijo_4 = '15';&lt;br /&gt;
 $valMovil_1 = '16';&lt;br /&gt;
 $valMovil_2 = '17';&lt;br /&gt;
 $valMovil_3 = '18';&lt;br /&gt;
 $valMovil_4 = '19';&lt;br /&gt;
 $edad = '20';&lt;br /&gt;
 $nOpc1 = '21';&lt;br /&gt;
 $nOpc2 = '22';&lt;br /&gt;
 $nOpc3 = '23';&lt;br /&gt;
 $nOpc4 = '24';&lt;br /&gt;
 $cOpc1 = '25';&lt;br /&gt;
 $cOpc2 = '26';&lt;br /&gt;
 $cOpc3 = '27';&lt;br /&gt;
 $cOpc4 = '28';&lt;br /&gt;
 $prioridad = '29';&lt;br /&gt;
 $tipoTarea = '30';&lt;br /&gt;
&lt;br /&gt;
====Comportamiento de reprogramaciones de llamadas en función del estado del agente====&lt;br /&gt;
&lt;br /&gt;
Se ha preparado la siguiente maqueta:&lt;br /&gt;
&lt;br /&gt;
Campaña saliente.&lt;br /&gt;
Cola saliente progresiva.&lt;br /&gt;
Dos agentes logados en VIVAit Suite.&lt;br /&gt;
&lt;br /&gt;
En el formulario de la llamada se indica: llamada redirigida&lt;br /&gt;
Se selecciona el &amp;quot;check dirigida&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Las posibilidades de prueba son dos: &amp;quot;'''Cualquier agente'''&amp;quot; y &amp;quot;'''Solo agente'''&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Resultados son los siguientes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''Estado del agente''' || '''Modo Cualquier Agente'''|| '''Modo Solo Agente'''&lt;br /&gt;
|-&lt;br /&gt;
| '''Agente Preparado''' || Entra llamada a agente|| Entra llamada a agente&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente en Pausa'''||Entra llamada a otro agente disponible||Espera a agente y entra llamada.&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente Hablando'''||Espera a agente y entra llamada||Espera a agente y entra llamada.&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente en Tiempo administrativo'''||Espera a agente y entra llamada||Espera a agente y entra llamada.&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente no logado'''||Entra llamada a otro agenete disponible||Consume intento.&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente con una pestaña de chat abierta y el otro agente en pausa'''||Entra llamada a otro agente disponible||Espera a agente y entra llamada.&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente con dos pestañas de chat abiertas'''||Espera a agente y entra llamada||Espera a agente y entra llamada.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Movilidad ===&lt;br /&gt;
La movilidad es una función integral de las comunicaciones en la empresa. Cualquier empleado (usuario) es móvil en cierto grado, ya sea dentro o fuera de la organización. La solución óptima debe proporcionar continuidad de servicios y acceso a nuestros servicios, sin importar donde estemos.&lt;br /&gt;
&lt;br /&gt;
==== Ofrecer movilidad a un usuario ====&lt;br /&gt;
&amp;lt;!--parte daniel--&amp;gt;&lt;br /&gt;
Para permitir la movilidad a un usuario, puede ser en el momento de crear o editar un usuario en el apartado ''Administración de usuario'' en ''General'' del '''portal de administración ''VIVA''it'''.  Asignándole un '''''numero login''''' (numero personal corporativo para el usuario) y una '''''clave login''''' ( se debe asignar una clave por defecto, pero puede cambiarla en el [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_3.0#Portal_de_usuario |portal de usuario]]). &amp;lt;br/&amp;gt;Para más información[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Pesta.C3.B1a_Centralita | ver sección Portal de administración - General - Usuarios - administración de usuarios - Pestaña Centralita]].&lt;br /&gt;
&lt;br /&gt;
Además, de crear un permiso de la '''aplicación ''Centralita''''' a cualquier nivel, desde el apartado ''Permisos de usuarios'' en ''General'' del '''portal de administración ''VIVA''it'''.&amp;lt;br/&amp;gt;Para más información[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Asignaci.C3.B3n_de_Permisos_de_Usuario_por_Administrador | ver sección  Portal de administración - General - Usuarios - Permisos a usuarios]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''La movilidad permite''' disponer de las extensiones telefónicas empresariales en cualquier lugar. Por&lt;br /&gt;
ejemplo, con un ordenador portátil o smartphone en una ubicación remota con conexión a Internet,&lt;br /&gt;
podríamos tener registrada nuestra extensión remotamente, y así las llamadas hacia/desde nuestra&lt;br /&gt;
oficina serían enrutadas por Internet hasta el equipo en cuestión sin coste alguno.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--parte daniel--&amp;gt;&lt;br /&gt;
Todo terminal tiene asociado una extensión y deberá permitir la movilidad de usuarios. La extensión se configura cambiando a '''''SI''''' el campo '''''Hay Movilidad''''' desde el apartado ''Extensiones'' de ''Dispositivos'' en ''VIVAit Call'' del '''portal de administración ''VIVA''it'''. Para más información [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Extensiones | ver sección Portal de administración - VIVAit Call - Dispositivos - Extensiones]]&lt;br /&gt;
&lt;br /&gt;
==== ¿Cómo funcionan las extensiones? ====&lt;br /&gt;
&lt;br /&gt;
Primeramente el usuario debe tener los ejes apropiados en la tabla '''COM_USUARIOS_APLICACION''' (aplicación centralita).&lt;br /&gt;
&lt;br /&gt;
La extensión debe de tener ''un teléfono'' y por tanto ''un modelo de teléfono asociado.''&lt;br /&gt;
&lt;br /&gt;
Es tan simple como especificar '''la extensión, el usuario y la clave de este.'''&lt;br /&gt;
&lt;br /&gt;
Para corroborar el funcionamiento de esta hay ''dos métodos'':&lt;br /&gt;
&lt;br /&gt;
'''* CLI asterisk:'''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenEntraUsuarioMovil 25001 20001 1234'''&lt;br /&gt;
&lt;br /&gt;
Y como resultado obtenemos lo siguiente:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br /&amp;gt;&lt;br /&gt;
 MOVIL_TIPO_RESET='10'&amp;lt;br /&amp;gt;&lt;br /&gt;
 MOVIL_CAD_RESET='notify_yealink'&amp;lt;br /&amp;gt;&lt;br /&gt;
 MdintzRes='OK'&lt;br /&gt;
&lt;br /&gt;
El usuario con el login numérico 20001 se ha &amp;quot;movido&amp;quot; a la extensión 25001&lt;br /&gt;
&lt;br /&gt;
Ahora ''nos quitamos de esa extensión mediante el siguiente comando:''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenSaleUsuarioMovil 25001'''&lt;br /&gt;
&lt;br /&gt;
Resultado del comando:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MOVIL_TIPO_RESET='10'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MOVIL_CAD_RESET='notify_yealink'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzRes='OK'&lt;br /&gt;
&lt;br /&gt;
Las pruebas anteriores han sido '''con extensiones con movilidad y con usuario con/sin&lt;br /&gt;
propietario.'''&lt;br /&gt;
&lt;br /&gt;
Ahora las realizamos '''con extensiones sin movilidad'''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenEntraUsuarioMovil 25002 20001 1234'''&lt;br /&gt;
&lt;br /&gt;
Obteniendo:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzRes='movil_error_datos'&lt;br /&gt;
&lt;br /&gt;
Como era lo previsible no nos deja &amp;quot;movernos&amp;quot; a esa extensión ya que no tiene movilidad.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''&amp;lt;u&amp;gt;Si un usuario ya se ha movido a una extensión no se puede mover a otra si no es deslogandose de esta antes.&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Esta línea se comenta porque se ha preparado el sistema para que los ususarios se puedan logar en una nueva extensión y el sistema lo deslogue de la primera a la que se movió. La variable que controla este funcionamiento es MD_AUTODES, con dos posibles valores:&lt;br /&gt;
0, para que el usuario deba deslogarse de una extensión para logarse en otra.&lt;br /&gt;
1, para que sea el sistema el que deslogue automátiamente al usuario cuando cambia de una extensión de movilidad a otra.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;Si un usuario ya se ha movido a una extensión y se mueve a otra, el sistema lo deslogará de la primera para logarlo en la segunda.&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenEntraUsuarioMovil 21000 20001 1234'''&lt;br /&gt;
&lt;br /&gt;
Con salida:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MOVIL_EXTEN='25001'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MDintzRes='movil_ya_login'&lt;br /&gt;
&lt;br /&gt;
'''* Dialplan'''&lt;br /&gt;
&lt;br /&gt;
Para llamar a la función de movilidad hay que marcar el '''9992.'''&lt;br /&gt;
&lt;br /&gt;
 Nota.- Para comprobar que se realiza todo correctamente habría que mirar las trazas de Asterisk&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Grabación ===&lt;br /&gt;
&lt;br /&gt;
La grabación en '''''VIVA'''''it Call está diseñada para ser lo mas flexible posible.&lt;br /&gt;
&lt;br /&gt;
====Configuración====&lt;br /&gt;
&lt;br /&gt;
Si deseamos grabar, debemos activar que alguno de los dispositivos/elementos que intervienen en la llamada se grabe.&lt;br /&gt;
&lt;br /&gt;
Estos dispositivos/elementos son:&lt;br /&gt;
&lt;br /&gt;
* Nodo.&lt;br /&gt;
* Usuario con Centralita.&lt;br /&gt;
* Agente.&lt;br /&gt;
* Grupo ACD corporativo y de Contact Center.&lt;br /&gt;
* Enlace exterior.&lt;br /&gt;
* Extensión.&lt;br /&gt;
* Facilidades.&lt;br /&gt;
* Grupo: grupo de salto o grupo de operadoras.&lt;br /&gt;
* Sala de conferencia.&lt;br /&gt;
* VDN corporativo y de Contact Center.&lt;br /&gt;
* Pre-rutas.&lt;br /&gt;
&lt;br /&gt;
Por otro lado necesitaremos que la llamada pase por un nodo que sea grabador, es decir, que si la llamada esta configurada para que se grabe pero no pasa por ningún nodo grabador, la llamada no se grabará.&lt;br /&gt;
&lt;br /&gt;
Al configurar un nodo existen cuatro campos que intervienen en la grabación.&lt;br /&gt;
&lt;br /&gt;
''''Grabador''''&lt;br /&gt;
&lt;br /&gt;
Se configura en el portal en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Este campo corresponde con el campo [[BD.COM_NODOS#B_ES_GRABADOR|B_ES_GRABADOR]] de la tabla [[BD.COM_NODOS|COM_NODOS]] , este campo define si el nodo va a grabar las llamas que pasen por el que necesiten ser grabadas y no se estén grabando ya.&lt;br /&gt;
&lt;br /&gt;
Es un campo booleano los posibles valores en el portal son si/no y en la base de datos 1/0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''''Modo grabación infraestructura''''&lt;br /&gt;
&lt;br /&gt;
Su configuración se realiza en el portal, en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Este campo define como está configurada la infraestructura, este campo existe por compatibilidad con '''''VIVA'''''it suite y para poder configurar la grabación bajo demanda.&lt;br /&gt;
&lt;br /&gt;
Este campo corresponde con el campo [[BD.COM_NODOS#E_MODO_GRABACION_INFRAESTRUCTURA|E_MODO_GRABACION_INFRAESTRUCTURA]] de la tabla [[BD.COM_NODOS|COM_NODOS]], Este campo usa los valores del enumerado BD.ENUM.TModoGrabacionInfraestructura|TModoGrabacionInfraestructura]].&lt;br /&gt;
&lt;br /&gt;
La formula que se seguiría para ver si una llamada se graba en ese nodo es:&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 (NODO.E_MODO_GRABACION_INFRAESTRUCTURA) AND (NODO.B_ENRU_GRABAR OR CEN_PRE_RUTA.B_ENRU_GRABAR OR &amp;quot;OBJETO&amp;quot;.B_ENRU_GRABAR)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Que sería que si la infraestructura esta en NoGraba no se graba nada de lo que se rute en ese nodo y en cualquiera de los 2 otros caso (GrabaTodo o GrabaPorPeticion) se grabaría dependiendo de la configuración del Nodo, la ruta o el objeto en cuestión (preruta, grupo ACD, extension,...).&lt;br /&gt;
&lt;br /&gt;
''''Grabar enrutamiento''''&lt;br /&gt;
&lt;br /&gt;
Se configura en el portal en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Este campo define si van a grabar las llamadas que se enruten en este nodo.&lt;br /&gt;
&lt;br /&gt;
Campo [[BD.COM_NODOS#E_ENRU_GRABAR|E_ENRU_GRABAR]] de la tabla [[BD.COM_NODOS|COM_NODOS]] que usa los valores del enumerado [[BD.ENUM.TTipoEnruGrabar|TTipoEnruGrabar]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''''RecordCentral''''&lt;br /&gt;
&lt;br /&gt;
Se configura en el portal en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Define que instancia del recordCentral es la encargada de tratar las grabaciones de este nodo.&lt;br /&gt;
&lt;br /&gt;
Para aumentar el rendimiento a la hora de traerse las grabaciones, se pueden definir varias instancias de proceso recordCentral, este campo define cual de estas instancias se encargara de este nodo.&lt;br /&gt;
&lt;br /&gt;
====Vivait Tracker====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL LA ÚNICA REFERENCIA A VIVAIT TRACKER EN LA DOCUMENTACIÓN &amp;quot;Vivait supervisor&amp;quot; QUE TENGO DICE LO SIGUIENTE. &amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Desde '''''VIVA'''''it Supervisor,  que es la aplicación dirigida a Supervisores, ofrece la posibilidad de supervisar y gestionar grupos ACD, agentes, asignaciones, prioridades,etc. Se puede obtener acceso directo a las aplicaciones de grabación ('''''VIVA'''''it tracker) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL FIN EXPLICACIÓN. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL De la documentacion creada por ivan. &amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Esquematico actual del proyecto tracker &lt;br /&gt;
[[Archivo:Esquematico_tracker_1.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1º El tracker web llama al web service Remote login para iniciar sesión y determinar si tiene permisos para la escucha y descarga de grabaciones.&lt;br /&gt;
&lt;br /&gt;
2º Si la ubicación de la grabación es local, mira la ruta de esta y se procede a la escucha o descarga de esta.&lt;br /&gt;
&lt;br /&gt;
3º Si la ubicación de la grabación es remota, entra en escena el proxy. Es el que realiza la petición.&lt;br /&gt;
&lt;br /&gt;
4º Si utilizamos el tracker windows, este, como el tracker web, llama primero al web service remote login para la autenticación y tema de Permisos.&lt;br /&gt;
&lt;br /&gt;
5º Para descargar o escuchar una grabación desde el tracker windows, se llama al web service servidor de grabaciones pasándole simplemente el ID de segmento.mp3. Este web service, con el ID de segmento, se encarga de determinar la ubicación de la grabación.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL De la documentación creada por ivan. &amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Esquematico actual del proyecto tracker &lt;br /&gt;
[[Archivo:Esquematico_tracker_2_https.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1º El tracker web llama al web service Remote login para iniciar sesión (comunicación https) y determinar si tiene permisos para la escucha y descarga de grabaciones. Se elimina el proxy&lt;br /&gt;
&lt;br /&gt;
2º Si la ubicación de la grabación es local, mira la ruta de esta y se procede a la escucha o descarga de esta.&lt;br /&gt;
&lt;br /&gt;
3º Si la ubicación de la grabación es remota, se realiza una petición al host remoto. El tipo de petición vendrá fijada por base de datos (http, https, ftp,ftps)&lt;br /&gt;
&lt;br /&gt;
4º Si utilizamos el tracker windows, este, como el tracker web, llama primero al web service remote login para la autenticación y tema de permisos (comunicación https extremo a extremo).&lt;br /&gt;
&lt;br /&gt;
5º Para descargar o escuchar una grabación desde el tracker windows, se llama al web service servidor de grabaciones pasándole simplemente el ID de segmento.mp3. Este web service, con el ID de segmento, se encarga de determinar la ubicación de la grabación.&lt;br /&gt;
&lt;br /&gt;
[[#Grabación_(Vivait_Tracker)| Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operación_plataforma_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
=== Enrutamiento ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Enrutamiento.png|885px |center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Enfoque inicial ====&lt;br /&gt;
&lt;br /&gt;
[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Enfoque_inicial Acceso]&lt;br /&gt;
&lt;br /&gt;
==== Funcionamiento ====&lt;br /&gt;
El proceso de enrutamiento, como vimos en el esquemático, se compone de dos fases:&lt;br /&gt;
&lt;br /&gt;
# Preenrutameinto, que se encarga de tratar todas las llamadas&lt;br /&gt;
# Enrutamiento externo, que tiene módulos dedicados al enrutamiento hacia:&lt;br /&gt;
:*Enlaces externos. &lt;br /&gt;
:*Extensiones. &lt;br /&gt;
:*Usuarios de telefonía corporativa. &lt;br /&gt;
:*Facilidades. &lt;br /&gt;
:*Salas de conferencia. &lt;br /&gt;
:*Agentes de grupos ACD. &lt;br /&gt;
:*Grupos ACD. &lt;br /&gt;
:*Vdn. &lt;br /&gt;
:*Buzones para dejar mensaje. &lt;br /&gt;
:*Buzones para su gestión.&lt;br /&gt;
&lt;br /&gt;
Se asume que existen rutas directas entre todos los nodos de la red.&lt;br /&gt;
&lt;br /&gt;
Se asume que están directamente enrutadas todas las direcciones IP involucradas, tanto nodos, como terminales.&lt;br /&gt;
&lt;br /&gt;
Se asume que todas las facilidades están disponibles en todos los nodos, aunque es posible que la implementación sea diferente entre ellos.&lt;br /&gt;
&lt;br /&gt;
Los datos de entrada básicos al proceso de enrutamiento (pdEntr) son:&lt;br /&gt;
* Dispositivo&lt;br /&gt;
* Cola&lt;br /&gt;
* Origen&lt;br /&gt;
* Nodo entrada&lt;br /&gt;
* UCID&lt;br /&gt;
* CALLER_ID_NAME&lt;br /&gt;
* CALLER_ID_NUM&lt;br /&gt;
* DNIS&lt;br /&gt;
* Desvío por dialplan&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A partir de los datos de entrada básicos anteriores se pueden deducir los siguientes valores:&lt;br /&gt;
* Sede del dispositivo de entrada&lt;br /&gt;
* Sede del nodo de entrada&lt;br /&gt;
* Ancho de banda disponible en la sede del dispositivo&lt;br /&gt;
* Ancho de banda disponible en la sede del nodo&lt;br /&gt;
* Categoría entrante&lt;br /&gt;
* Valor del eje1 asignado a la llamadas&lt;br /&gt;
* CALLER_ID_NUM_EXTERNO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los datos de salida globales del proceso de enrutamiento (pdSale) son:&lt;br /&gt;
* Categoría saliente&lt;br /&gt;
* Código de cliente (opcional)&lt;br /&gt;
* Tipo de destino:	&lt;br /&gt;
:* No existe&lt;br /&gt;
:* Ruta externa&lt;br /&gt;
:* Extensión&lt;br /&gt;
:* Usuario de telefonía corporativa&lt;br /&gt;
:* Facilidad&lt;br /&gt;
:* Salas de conferencia&lt;br /&gt;
:* Agentes de grupos ACD&lt;br /&gt;
:* Grupos ACD&lt;br /&gt;
:* VDN&lt;br /&gt;
:* Buzón para dejar mensaje. &lt;br /&gt;
:* Buzón para dejar mensaje por ocupado. &lt;br /&gt;
:* Buzón para dejar mensaje por no contestación. &lt;br /&gt;
:* Buzón para su gestión.&lt;br /&gt;
* Destinatario (cuando se trata de un usuario o de un agente)&lt;br /&gt;
* Valor del eje1 asignado a la llamada&lt;br /&gt;
* Buzón de las extensiones y usuarios que los tengan asignados&lt;br /&gt;
* Si el buzón está en nodo distinto al de entrada&lt;br /&gt;
* DESVIO_INCONDICIONAL (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable) &lt;br /&gt;
* DESVIO_NO_CONTESTA (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable) &lt;br /&gt;
* DESVIO_OCUPADO (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable) &lt;br /&gt;
* DESVIO_FUERA_SERV (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los datos de salida para cada una de las posibles rutas en orden son (nn va de 01 maxRutas [nn son dos dígitos decimales]):&lt;br /&gt;
* CONTADOR_ABDE_nn (contador para control de ancho de banda en sede de dispositivo de entrada).  &lt;br /&gt;
* CONTADOR_ABNE_nn (contador para control de ancho de banda en sede de nodo de entrada).  &lt;br /&gt;
* CONTADOR_ABDS_nn (contador para control de ancho de banda en sede de dispositivo de salida).  &lt;br /&gt;
* CONTADOR_ABNS_nn (contador para control de ancho de banda en sede de nodo de salida).  &lt;br /&gt;
* CALLER_NAME_SAL_nn , puede salir de una extensión, un usuario o de un agente. &lt;br /&gt;
* CALLER_NUM_SAL_nn, puede salir de una extensión, un usuario o de un agente.  &lt;br /&gt;
* DESTINO_SAL_nn , en general, el valor C_NOMBRE o destino de salida.  &lt;br /&gt;
* RUTA_NODO_nn , Cadena de marcación para ir la nodo que soporta DESTINO_SAL_nn, si es distinto del nodo de entrada.  &lt;br /&gt;
* RUTA_SAL_nn &lt;br /&gt;
:* Extensión: cadena marcación. &lt;br /&gt;
:* Facilidad: E_CODIGO_FACILIDAD obtenido de la tabla CEN_FACILIDADES. &lt;br /&gt;
:* Usuario: cadena marcación de la extensión asignada al usuario en movilidad o en propiedad. &lt;br /&gt;
:* Agente: cadena marcación de la extensión a la que está conectado el agente. &lt;br /&gt;
:* Ruta externa: contexto que gestiona la llamada saliente.&lt;br /&gt;
&lt;br /&gt;
=====Fase preenrutamiento =====&lt;br /&gt;
&lt;br /&gt;
La fase de preenrutamiento (basada en la tabla CEN_PRE_RUTA) se usa en todas las llamadas entrantes, tanto internas, como externas. Permite desarrollar un “prerouting” estándar para ACD y para telefonía corporativa.&lt;br /&gt;
&lt;br /&gt;
Los datos de entrada al proceso de enrutamiento son iguales a los del proceso global de enrutamiento, excepto en que este proceso no usa el nodo de entrada ya que es independiente de éste.&lt;br /&gt;
&lt;br /&gt;
Los datos de salida de la fase de preenrutamiento:&lt;br /&gt;
* D_CATEGORIA_SAL &lt;br /&gt;
* COD_CLIENTE (opcional) &lt;br /&gt;
* TIPO_DESTINO_SAL&lt;br /&gt;
:* No existe.   &lt;br /&gt;
:* Volver a preenrutar.   &lt;br /&gt;
:* Ruta externa.   &lt;br /&gt;
:* Extensión.   &lt;br /&gt;
:* Usuario de telefonía corporativa.   &lt;br /&gt;
:* Facilidad.   &lt;br /&gt;
:* Sala de conferencia.   &lt;br /&gt;
:* Agente de grupos ACD.   &lt;br /&gt;
:* Grupos ACD.   &lt;br /&gt;
:* VDN.   &lt;br /&gt;
:* Buzón para dejar mensaje.   &lt;br /&gt;
:* Buzón para dejar mensaje por ocupado.   &lt;br /&gt;
:* Buzón para dejar mensaje por no contestación.   &lt;br /&gt;
:* Buzón para su gestión. &lt;br /&gt;
* COD_CLIENTE &lt;br /&gt;
* Valor del eje1 asignado a la llamada &lt;br /&gt;
* CALLER_NAME &lt;br /&gt;
* CALLER_NUM &lt;br /&gt;
* DESTINO&lt;br /&gt;
&lt;br /&gt;
El proceso de preenrutamiento consiste en seleccionar un único registro de la tabla CEN_PRE_RUTA y, con sus valores y con los valores de entrada al proceso, generar los datos de salida.&lt;br /&gt;
&lt;br /&gt;
Un posible tipo de salida es &amp;quot;Volver a preenrutar&amp;quot;. Esto permite realimentar el proceso un máximo de &amp;quot;max_pre_ruta_regs&amp;quot; veces (en archivo .conf) para simplificar configuración. Sólo tiene sentido realimentar si se ha hecho alguna modificación en los datos de selección de registro, ya que en caso contrario se produciría un bucle que el proceso de preenrutamiento es capaz de detectar y evitar.&lt;br /&gt;
&lt;br /&gt;
Para elegir el registro de CEN_PRE_RUTA, se tienen en cuenta los datos de entrada de la llamada, de modo que se cumpla con todos los puntos siguientes: &lt;br /&gt;
* ID_CATEGORIA_ENT igual a la del dispositivo de entrada.  &lt;br /&gt;
* CALLER_NUM de entrada  &lt;br /&gt;
:* Debe comenzar por la cadena C_ORIGEN_ENT_PREF o C_ORIGEN_ENT_PREF=NULL, con menos prioridad. Es conveniente rellenar este dato del modo más restrictivo que sea posible, independientemente de C_ORIGEN_ENT_EXPR. Ello permite disminuir el uso innecesario de recursos de evaluación de expresiones regulares.    &lt;br /&gt;
:* Debe de tener un número de dígitos igual o superior a N_ORIGEN_ENT_MIN_DIGITOS, si este valor no es NULL o cero.    &lt;br /&gt;
:* Debe de tener un número de dígitos igual o inferior a N_ORIGEN_ENT_MAX_DIGITOS, si este valor no es NULL o cero.    &lt;br /&gt;
:* Debe cumplir la expresión regular C_ORIGEN_ENT_EXPR, si ésta no es NULL.  &lt;br /&gt;
* DNIS empiece con C_DESTINO_ENT_PREF o C_DESTINO_ENT_PREF=NULL. Es conveniente rellenar este dato del modo más restrictivo que sea posible, independientemente de C_DESTINO_ENT_EXPR. Ello permite disminuir el uso innecesario de recursos de evaluación de expresiones regulares.  &lt;br /&gt;
* Si varias entradas cumplen la condición anterior, se prueba primero la que el campo C_DESTINO_ENT_PREF tenga una longitud mayor y, de entre éstas, la que C_ORIGEN_ENT_PREF tenga una longitud mayor.  &lt;br /&gt;
* DNIS tenga un número de dígitos igual o superior a N_DESTINO_ENT_MIN_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* DNIS tenga un número de dígitos igual o inferior a N_ORIGEN_ENT_MIN_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* DNIS cumpla la expresión regular C_DESTINO_ENT_EXPR, si ésta no es NULL. &lt;br /&gt;
&lt;br /&gt;
Si no se encuentra ninguna entrada adecuada, quiere decir que es una llamada prohibida y se devuelve el tipo de destino &amp;quot;No existe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Puede conseguirse un destino &amp;quot;por defecto&amp;quot; diferente, creando una entrada que encaje siempre para cada categoría: C_ORIGEN_ENT, C_ORIGEN_ENT_MIN_DIGITOS, C_ORIGEN_ENT_MAX_DIGITOS, C_ORIGEN_ENT_EXPR, C_DESTINO_ENT_PREF, N_DESTINO_ENT_MIN_DIGITOS, N_DESTINO_ENT_MAX_DIGITOS y C_DESTINO_ENT_EXPR a valor NULL.&lt;br /&gt;
&lt;br /&gt;
Una vez elegida una entrada, ésta puede transformar o sustituir el valor de ID_CATEGORIA, CALLER_NAME, CALLER_NUM, DESTINO, COD_CLIENTE y/o EJE1_MSK a la salida del proceso. &lt;br /&gt;
&lt;br /&gt;
Si ID_CATEGORIA_SAL es cero, se propaga a la salida el valor de la entrada. En caso contrario, se sustituye. &lt;br /&gt;
&lt;br /&gt;
Si C_CALLER_NAME está vacío, se mantiene el valor hubiese a la entrada. En caso contrario, se sustituye. &lt;br /&gt;
&lt;br /&gt;
C_CALLER_NUM puede contener una cadena que identifica el nuevo CALLER_NUM. Además, si la cadena comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo CALLER_NUM es igual al de entrada al proceso. &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo CALLER_NUM es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo. &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;. &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al CALLER_NUM de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo CALLER_NUM de salida. Si la expresión regular no se cumpliese, se propagará el valor de entrada al proceso. &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante que sustituye el valor a la entrada.&lt;br /&gt;
&lt;br /&gt;
Cada vez que se utilice una preruta, se incrementará el valor de N_CONTA si el valor de N_UMBRAL es mayor que cero.&lt;br /&gt;
&lt;br /&gt;
Un valor N_UMBRAL mayor que cero permite modificar el destino de salida cuando el valor de actual de N_CONTA (antes de incrementarse) supere o sea igual el valor de N_UMBRAL. Si se cumple la condición indicada, se usa como destino tras el preenrutamiento, los valores de los campos E_TIPO_DESTINO_SAL_2 y C_DESTINO_SAL_2.&lt;br /&gt;
&lt;br /&gt;
Si el valor de N_UMBRAL es menor o igual a cero o si N_CONTA es inferior a N_UMBRAL, se usa como destino tras el preenrutamiento, los valores de los campos E_TIPO_DESTINO_SAL_1 y C_DESTINO_SAL_1.&lt;br /&gt;
Con este mecanismo de N_CONTA y N_UMBRAL, se pretende facilitar el discriminar a los llamantes reincidentes, cuando sea necesario. &lt;br /&gt;
&lt;br /&gt;
Un proceso periódico externo debe encargarse de poner a cero o decrementar el valor de N_CONTA.&lt;br /&gt;
Como resultado de los procesos de filtrado y de verificación anteriores, se habrá obtenido un TIPO_DESTINO_SAL y un C_DESTINO_SAL a partir de los campos con sufijo &amp;quot;_1&amp;quot; o &amp;quot;_2&amp;quot;, con una metodología similar al caso C_CALLER_NUM.&lt;br /&gt;
&lt;br /&gt;
C_DESTINO_SAL_x puede contener cadena que permite obtener el nuevo destino. Además, si la cadena comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo destino es igual al de entrada al proceso.  &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo destino es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo.  &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;.  &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al destino de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo destino de salida. Si la expresión regular no se cumpliese, quiere decir que es una llamada prohibida y se encaminará hacia una facilidad por defecto.  &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante que sustituye el valor a la entrada. &lt;br /&gt;
Información de salida del proceso de preenrutamiento: Cuando TIPO_DESTINO_SAL_x toma los valores que se indican, el proceso global de enrutamiento sólo requiere de preenrutamiento y la información a devolver se obtiene dependiendo de TIPO_DESTINO_SAL_x: &lt;br /&gt;
* No existe: Se asume que no se conoce un destino para los datos de entrada, por lo que la llamada se encamina hacia una facilidad por defecto que gestiona su tratamiento.  &lt;br /&gt;
* Extensión: A partir de las tablas CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar la extensión en el nodo principal y en el secundario.  &lt;br /&gt;
* Facilidad: A partir de las tablas CEN_DISPOSITIVOS, CEN_FACILIDADES y CEN_NODOS.  &lt;br /&gt;
* Usuario de telefonía corporativa: A partir de las tablas CEN_USUARIOS, CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar al usuario en el nodo principal y en el secundario de la extensión que corresponde en base a movilidad, con prioridad, o en base a propiedad.  El caso de movilidad no se tiene en cuenta si el proceso de enrutamiento se realiza en &amp;quot;modo supervivencia&amp;quot;.  &lt;br /&gt;
* Sala conferencia: A partir de las tablas CEN_SALAS_CONFERENCIAS y CEN_NODOS.  &lt;br /&gt;
* Agente de ACD: A partir de las tablas ACD_USUARIOS, DAT_TR_ACD_EXTENSIONES, CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar al agente en el nodo principal y en el secundario.  &lt;br /&gt;
* VDN: A partir de las tablas ACD_VDN y CEN_NODOS, se devolverán los valores que permiten alcanzar al VDN en su nodo.  &lt;br /&gt;
* Grupo ACD: A partir de las tablas ACD_COLAS y CEN_NODOS, se devolverán los valores que permiten alcanzar al grupo ACD en su nodo. &lt;br /&gt;
&lt;br /&gt;
El campo B_GENERAR_SEGMENTO de la tabla CEN_PRE_RUTA indica al proceso de preenrutamiento que es preciso generar un segmento de tipo &amp;quot;preenrutamiento&amp;quot;. En el segmento generado, se rellena el campo C_ETIQUETA1 del nuevo segmento con el valor que contiene el campo homónimo del registro asociado en la tabla CEN_LISTA_PRE_RUTAS.&lt;br /&gt;
&lt;br /&gt;
===== Fase de enrutamiento en casos en que el destino no es externo =====&lt;br /&gt;
Datos de entrada al proceso de enrutamiento externo: iguales a los de salida del proceso de preenrutamiento (pdPreSale), uniéndose a éstos los datos globales de entrada al proceso (pdEntr). &lt;br /&gt;
&lt;br /&gt;
Datos de salida de la fase de enrutamiento: iguales que los del proceso global de enrutamiento (pdSale). &lt;br /&gt;
&lt;br /&gt;
Específicamente y sólo para los casos en que el destino es una extensión (tipo de destino extensión, usuario de telefonía corporativa o agente) es cuando son válidos los datos correspondientes al buzón asociado y los datos de los posibles desvíos previstos. &lt;br /&gt;
&lt;br /&gt;
También en este caso, se prevén dos posibles rutas, una se corresponde con el acceso a la extensión en el nodo principal de ésta y la otra en el nodo secundario. &lt;br /&gt;
&lt;br /&gt;
En el resto de tipos de destino, sólo se prevé una ruta que puede incluir o no un enlace internodal. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Fase de enrutamiento en el caso de destino externo =====&lt;br /&gt;
Datos de entrada al proceso de enrutamiento externo: iguales a los de salida del proceso de preenrutamiento (pdPreSale), uniéndose a éstos los datos globales de entrada al proceso (pdEntr). &lt;br /&gt;
Datos de salida de la fase de enrutamiento: iguales que los del proceso global de enrutamiento (pdSale). &lt;br /&gt;
&lt;br /&gt;
Se elige los primeros &amp;quot;max_ruta&amp;quot; registros (configurado en archivo .conf) en CEN_DESTINOS_EXTERNOS unido con CEN_RELACION_DESTINOS_ENLACES_EXTERNOS que, teniendo en cuenta los datos de entrada al proceso de enrutamiento, cumpla con todos los puntos siguientes: &lt;br /&gt;
* ID_CATEGORIA_ENT igual a la de salida del proceso de preenrutamiento.  &lt;br /&gt;
* C_DESTINO_SAL de proceso de preenrutamiento empiece con C_DESTINO_ENT_PREF. &lt;br /&gt;
* Si varias entradas cumplen la condicion anterior, se prueba primero la que el campo C_DESTINO_ENT_PREF tenga una longitud mayor.  &lt;br /&gt;
* C_DESTINO_SAL tenga un número de dígitos igual o superior a N_DESTINO_ENT_MIN_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* C_DESTINO_SAL tenga un número de dígitos igual o inferior a N_DESTINO_ENT_MAX_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* C_DESTINO_SAL cumpla la expresión regular C_DESTINO_ENT_EXPR, si ésta no es NULL. &lt;br /&gt;
&lt;br /&gt;
Aparte de la longitud del campo C_DESTINO_ENT_PREF, se usa N_PRIORIDAD como campo para ordenar los registros y seleccionar lo &amp;quot;max_ruta&amp;quot; primeros. &lt;br /&gt;
&lt;br /&gt;
Una vez que un registro es válido, se descartan todos los registros cuyo C_DESTINO_ENT_PREF es diferente del primero seleccionado. &lt;br /&gt;
&lt;br /&gt;
Como resultado de los procesos de filtrado y de verificación anteriores, se habrá obtenido hasta un máximo de &amp;quot;max_rutas&amp;quot; valores para posibles rutas. Las posibles propagaciones y transformaciones en los datos de cada ruta son función de los datos de cada registro seleccionado: &lt;br /&gt;
&lt;br /&gt;
CALLER_NAME_nn: Si C_CALLER_NAME está vacío, se propaga el valor de entrada. En caso contrario, se sustituye. &lt;br /&gt;
&lt;br /&gt;
CALLER_NUM_nn: Sale de C_CALLER_NUM que puede contener una cadena que identifica el nuevo CALLER_NUM_n. Además, si C_CALLER_NUM comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo CALLER_NUM_nn es igual al de entrada al proceso.  &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo CALLER_NUM_nn es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo.  &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;.  &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al CALLER_NUM de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo CALLER_NUM de salida. Si la expresión regular no se cumpliese, se propaga el valor de entrada al proceso.  &lt;br /&gt;
* &amp;quot;&amp;gt;&amp;quot; Si existe valor para CALLER_NUM_EXTERNO, se propagará éste a la salida. En caso contrario y si no está vacía la cadena que queda al eliminar el prefijo &amp;quot;&amp;gt;&amp;quot;, se susituye en la salida por el valor de la cadena sin prefijo. Si la cadena estuviese únicamente constituida por el valor &amp;quot;&amp;gt;&amp;quot;, se propaga el valor de entrada.  &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante sin ninguna modificación. &lt;br /&gt;
&lt;br /&gt;
C_DESTINO_SAL_nn: Se obtiene a partir de C_DESTINO_SAL que puede contener una cadena que identifica el nuevo destino. Además, si la cadena comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo destino es igual al de entrada al proceso. &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo destino es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo. &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;. &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al destino de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo destino de salida. Si la expresión regular no se cumpliese, se propaga el valor de entrada al proceso. &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante sin ninguna modificación. &lt;br /&gt;
&lt;br /&gt;
RUTA_NODO_nn: Sólo se usa si el nodo de salida es diferente del nodo de entrada. Contiene la cadena de marcación para ir la nodo que soporta DESTINO_SAL_nn. Sale del campo C_FORMATO_DIAL (sustituyendo variables) correspondiente al tipo de dispositivo del enlace exterior. &lt;br /&gt;
&lt;br /&gt;
RUTA_SAL_nn: Es el campo C_DATO_ASTERISK obtenido a partir del registro en la tabla CEN_ENLACE_EXTERIOR que se corresponde con ID_ENLACE_EXTERIOR de la tabla CEN_RELACION_DESTINOS_ENLACES_EXTERNOS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Control de ancho de banda ===&lt;br /&gt;
&lt;br /&gt;
Para el control de ancho de banda, primero hemos de tener en consideración que una llamada puede tener asociadas hasta cuatro sedes&lt;br /&gt;
:* Sede del terminal origen (terminal A)&lt;br /&gt;
:* Sede del nodo de registro del terminal origen (nodo A)&lt;br /&gt;
:* Sede del terminal destino (terminal B)&lt;br /&gt;
:* Sede del nodo de registro del terminal destino (nodo B)&lt;br /&gt;
&lt;br /&gt;
Además hemos de tener en cuenta que el audio de la conversación podrá ir:&lt;br /&gt;
:* De manera directa entre terminal A y terminal B&lt;br /&gt;
:* De manera indirecta, a través de los nodos A y B&lt;br /&gt;
&lt;br /&gt;
[[Archivo:ancho de banda.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Cuando se va a cursar una llamada de terminal A a terminal B, el proceso de enrutamiento del nodo A devuelve 4 variables de canal al dialplan:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! Variable!!Campos &lt;br /&gt;
|- &lt;br /&gt;
|R_ABDE_xx||R = Variable de rutas --- AB = ancho de banda --- D = dispositivo --- E = Entrante --- xx = de 0 a 3&lt;br /&gt;
|-&lt;br /&gt;
|R_ABNE_xx||R = Variable de rutas --- AB = ancho de banda --- N = nodo --- E = Entrante --- xx = de 0 a 3&lt;br /&gt;
|-&lt;br /&gt;
|R_ABDS_xx||R = Variable de rutas --- AB = ancho de banda --- D = dispositivo --- S = Saliente --- xx = de 0 a 3&lt;br /&gt;
|- &lt;br /&gt;
|R_ABNS_xx||R = Variable de rutas --- AB = ancho de banda --- N = nodo --- S = Saliente --- xx = de 0 a 3&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El valor de cada variable es una cadena del tipo '''AB.wwww.xxxx.y.z''' donde cada valor es:&lt;br /&gt;
:* '''wwww''' --&amp;gt; id de sede&lt;br /&gt;
:* '''xxxx''' --&amp;gt; ancho de banda total de la sede&lt;br /&gt;
:* '''y''' --&amp;gt; número de llamadas a sumar si conversación directa&lt;br /&gt;
:* '''z''' --&amp;gt; número de llamadas a sumar si conversación indirecta&lt;br /&gt;
&lt;br /&gt;
Por otro lado tenemos que tener en cuenta que el dialplan tiene control de las llamadas que cada sede puede cursar&lt;br /&gt;
&lt;br /&gt;
De esta forma, cuando existe una nueva llamada el dialplan aplica la fórmula, suma el resultado al número de llamadas en curso y lo compara con el máximo...si el resultado es mayor que le máximo la llamada no se cursará por congestión&lt;br /&gt;
&lt;br /&gt;
Configuraremos el ancho de banda por sede en el portal de administración y el consumo que hace cada llamada en la variable '''AB_CONSUMO_LLAMADA''' del fichero '''ext_MDtel_particular.conf''' de cada nodo de conmutación; el valor por defecto es 32&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Puesto de trabajo ==&lt;br /&gt;
El puesto de trabajo del agente en la plataforma '''''VIVA'''''it  (para el producto '''''VIVA'''''it Suite) estará compuesto por:&lt;br /&gt;
* PC (típicamente windows) en el que reside la aplicación '''''VIVA'''''it Desk&lt;br /&gt;
* Terminal telefónico con extensión física asociada.&lt;br /&gt;
&lt;br /&gt;
Para más información [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Puestos | ver sección Portal de administración-VIVAit Suite ACD+ - Puestos]].&lt;br /&gt;
&lt;br /&gt;
=== Relación PC/teléfono en puesto de trabajo ===&lt;br /&gt;
&lt;br /&gt;
Existirá una relación única entre nombre PC y extensión física asociada, si bien los agentes se identificarán por su login que les acompaña al puesto de trabajo en el que se loguen&lt;br /&gt;
Existe un procedimiento documentado para la operativa de cambio de puesto de trabajo, en caso de ser necesario el cambio de PC o de teléfono de un puesto de trabajo.&lt;br /&gt;
==== Procedimiento para un cambio de puesto de trabajo ====&lt;br /&gt;
Se basa en una asignación de PC a teléfono relaccionando la extensión telefónica del terminal físico con el nombre del puesto de trabajo. La configuración de dicha asociación se realiza en el portal de administración de la plataforma. &lt;br /&gt;
&lt;br /&gt;
Cualquier cambio que se realice en terminal telefónico o PC de agente ha de mantener la asociación en el portal a efectos de permitir el funcionamiento del sistema.&lt;br /&gt;
&lt;br /&gt;
A continuación se reflejan los cambios más habituales:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cambio !! Procedimiento !! Punto de acción&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| Cambio de ubicación de un PC || Opción 1.- Renombrar el PC para que conserve el nombre que tenía el anterior en esa ubicación || PC de agente&lt;br /&gt;
|-&lt;br /&gt;
|  Opción 2.- Rehacer la asignación extensión/puesto || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot;| Instalación de PC nuevo en puesto existente || Opción 1.- Renombrar el PC para que conserve el nombre que tenía el anterior en esa ubicación || PC de agente&lt;br /&gt;
|-&lt;br /&gt;
| Opción 2.- Rehacer la asignación extensión/puesto || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| Cambio de nombre en un PC || Rehacer asignación extensión/puesto || Rehacer asignación extensión/puesto&lt;br /&gt;
|-&lt;br /&gt;
|Cambio de ubicación de un teléfono  || Rehacer la asignación extensión/puesto&lt;br /&gt;
 || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| Instalación de un teléfono nuevo en puesto existente || Rehacer la asignación extensión/puesto || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| Instalación de un nuevo puesto de agente|| Hacer asignación extensión/puesto || Portal de administración&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:relacion_puesto_agente.png|center|500px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Estructura de aplicaciones en puesto de trabajo ===&lt;br /&gt;
Las aplicaciones del puesto de trabajo pueden estar ubicadas en cualquier carpeta del sistema. Es importante tener en cuenta que los procesos de actualización, logs… escriben en dichas carpetas, por lo que el usuario de windows deberá tener permisos de lectura/escritura y borrado sobre dichas carpetas&lt;br /&gt;
La instalación del puesto de trabajo es muy liviana para el sistema; las aplicaciones ocupan poco espacio y no se modifican ficheros del sistema operativo (registry o similares)&lt;br /&gt;
Los ficheros importantes son&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Fichero !! Descrición&lt;br /&gt;
|-&lt;br /&gt;
| Vivait-desk.exe || Contiene la aplicación '''''VIVA'''''it Desk de agente&lt;br /&gt;
|-&lt;br /&gt;
| vivait_desk_dll.dll||Este fichero contiene controles sobre los formularios (controles de&lt;br /&gt;
texto, algunas reglas de obligatoriedad…)&lt;br /&gt;
|-&lt;br /&gt;
| nimitz.ini || Configuración del puesto de agente&lt;br /&gt;
|-&lt;br /&gt;
| lanzador.exe || Aplicación de actualización de versiones&lt;br /&gt;
|-&lt;br /&gt;
| lanzador.ini || Configuración del actualizador de aplicaciones&lt;br /&gt;
|-&lt;br /&gt;
| Carpeta forms || En esta carpeta están ubicados los formularios que se abren ante llamada entrante o saliente&lt;br /&gt;
|-&lt;br /&gt;
| Carpeta imágenes || Contiene las imágenes izquierda y derecha de la barra de '''''VIVA'''''it Desk&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Secciones de utilidad en nimitz.ini ===&lt;br /&gt;
&lt;br /&gt;
==== Configuración del puesto de agente ====&lt;br /&gt;
&lt;br /&gt;
El fichero nimitz.ini contiene la configuración del puesto de agente; sus principales parámetros son:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| |''' Fichero'''&lt;br /&gt;
|| '''Descripción'''&lt;br /&gt;
|-&lt;br /&gt;
|Sección [bd1]&lt;br /&gt;
||host=&amp;quot;ip_BBDD_tiempo_real&amp;quot;&lt;br /&gt;
puerto=&amp;quot;Nº puerto&amp;quot;&lt;br /&gt;
basedatos=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
usuario=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
clave=&amp;quot;UIk5jMY9PVX6ogg=&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Contiene información para la conexión a BBDD de tiempo real, en la que '''''VIVA'''''it Desk fundamentalmente inserta información&lt;br /&gt;
|-&lt;br /&gt;
|Sección [bd2]&lt;br /&gt;
||host=&amp;quot; ip_BBDD_replica &amp;quot;&lt;br /&gt;
puerto=&amp;quot;Nº puerto&amp;quot;&lt;br /&gt;
basedatos=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
usuario=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
clave=&amp;quot;UIk5jMY9PVX6ogg=&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Contiene información para la conexión a BBDD de réplica, en la que '''''VIVA'''''it Desk solo leerá información&lt;br /&gt;
|-&lt;br /&gt;
|Sección [telefono]&lt;br /&gt;
||pruebas=1 (Valores válidos 0 ó 1)&lt;br /&gt;
Activación de funcionalidad &amp;quot;servicio técnico&amp;quot; en '''''VIVA'''''it Desk.&lt;br /&gt;
&lt;br /&gt;
puesto=&amp;quot;Nombre puesto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Sección [trazas]&lt;br /&gt;
|| nivel=3&lt;br /&gt;
&lt;br /&gt;
archivo=1&lt;br /&gt;
&lt;br /&gt;
consola=0&lt;br /&gt;
&lt;br /&gt;
sobreescribir=1&lt;br /&gt;
&lt;br /&gt;
Activación de generación de ficheros de trazas &amp;quot;viva-desk.log&amp;quot; en carpeta de aplicaciones &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Parámetros en invocación a '''''VIVA'''''it Desk ===&lt;br /&gt;
&lt;br /&gt;
La aplicación '''''VIVA'''''it Desk puede ser invocada con una serie de parámetros que condicionan su funcionamiento; los parámetros son:&lt;br /&gt;
* Primer parámetro: Nombre del archivo .ini; usado como alternativa al fichero por defecto &amp;quot;nimitz.ini&amp;quot;&lt;br /&gt;
* Segundo parámetro: Nombre de puesto; usado como alternativa al nombre de puesto del ordenador&lt;br /&gt;
* Tercer parámetro: Nombre de login; para forzar un usuario; es de utilidad si el sistema está configurado como &amp;quot;confiar en sistema operativo&amp;quot;, en cuyo caso no permite seleccionar un login de agente para acceder a la aplicación&lt;br /&gt;
&lt;br /&gt;
=== Instalación y actualización de aplicaciones de puestos de trabajo ===&lt;br /&gt;
La instalación y actualización de las aplicaciones en el puesto de trabajo pasan por disponer de los ficheros “lanzador.exe” y “lanzador.ini” (debidamente configurado) dentro de la carpeta en la que se desee instalar.&lt;br /&gt;
Lanzando la aplicación “lanzador.exe” se instalará o actualizará el sistema. &lt;br /&gt;
&lt;br /&gt;
El fichero “lanzador.ini” tiene el siguiente aspecto:&lt;br /&gt;
 URL=&amp;quot;http://IP_Servidor:8180/WSActualizaXML/actualizar.xml&amp;quot;&lt;br /&gt;
 BASE_URL_DESCARGAS=&amp;quot;http://IP_servidor:8180/XMLFILES/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Servicio técnico en '''''VIVA'''''it Desk ===&lt;br /&gt;
La activación de la funcionalidad de servicio técnico en '''''VIVA'''''it Desk nos permite realizar sincronizaciones manuales de la aplicación y activar trazas a nivel de Base de Datos o a nivel de log sobre el propio '''''VIVA'''''it Desk. Pulsando el botón derecho del ratón sobre la barra '''''VIVA'''''it Desk accederemos a las capacidades de soporte técnico&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Funcionamiento de la plataforma en modo emergencia ==&lt;br /&gt;
== Accesos Web ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Aplicación !! Enlace&lt;br /&gt;
|-&lt;br /&gt;
|Portal de administración '''''VIVA'''''it Suite || http://ip_admin:8180/Vivait-Call&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker||http://ip_tracker:8180/Vivait-Tracker&lt;br /&gt;
|-&lt;br /&gt;
|Monitor Web||http://ip_monitor:8180/MonitorWeb&lt;br /&gt;
|-&lt;br /&gt;
|Monitorización Zabbix||http://ip_zabbix:80/zabbix&lt;br /&gt;
|-&lt;br /&gt;
|Base de datos tiempo real||http://ip_bbdd_tr:80/phpmyadmin/&lt;br /&gt;
|-&lt;br /&gt;
|Base de datos réplica||http://ip_bbdd_replica:80/phpmyadmin&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Permisos de aplicaciones ===&lt;br /&gt;
Se crean a través del '''portal de administración ''VIVA''it''' . Debe conocerse como funcionan los ejes [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Ejes| ver sección Portal de administracion - General - Ejes]] y que existen cuatro aplicaciones creadas en la plataforma:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:17_2 Pestaña Genera - Usuarios - Explicacion permisos.png|center]]&lt;br /&gt;
&lt;br /&gt;
La forma como dar permisos de aplicaciones a un usuario esta explicada en la [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Asignaci.C3.B3n_de_Permisos_de_Usuario_por_Administrador | sección  Portal de administracion - General - Usuarios ]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elementos monitorizados del sistema ==&lt;br /&gt;
===Generalidades de Zabbix===&lt;br /&gt;
====Zabbix ====&lt;br /&gt;
Zabbix es una solución de código abierto que ofrece características de monitorización avanzada de forma tecnica y para el negocio, para todo tipo de servidores, aplicaciones y equipos que forman parte de una red. La versión que utilizamos en '''md'''tel es Zabbix 2.2.2.&lt;br /&gt;
&lt;br /&gt;
Zabbix  monitoriza los  recursos  de un equipo en forma remota, permite centralizar la información en un servidor que permite visualizar el monitoreo, cuenta con una interfaz de administración vía web y utiliza un mecanismo flexible de la notificación que permita que los usuarios configuren las alarmas basadas email para informar virtualmente cualquier acontecimiento. Esto permite una reacción rápida a los problemas del servidor. &lt;br /&gt;
&lt;br /&gt;
Para acceder al servidor Zabbix abrimos el navegador y ponemos la dirección de red (IP) de la maquina donde se encuentra instalado el servidor de Zabbix seguido de &amp;quot;/Zabbix.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Direccion.IP.Zabbix.Server/zabbix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Zabbix posee documentación tanto en wiki, foros y comunidades.Para ampliar la información se puede visitar:&lt;br /&gt;
[[http://www.zabbix.com Sitio oficial de Zabbix]]&lt;br /&gt;
===== Glosario Zabbix =====&lt;br /&gt;
Se trata de una lista de conceptos básicos de Zabbix, pero para ampliar la información sobre otros términos, visite el [[http://www.zabbix.com Sitio oficial de Zabbix]].&lt;br /&gt;
* '''host''' &lt;br /&gt;
:En Zabbix, un host es una entidad que define el elemento en red que se desea monitorizar/supervisar activamente sus recursos locales y aplicaciones. Este puede ser una impresa, router, switch, sensores de temperatura, un servidor, un ordenador,etc, o también una aplicación. La característica de un host es que debe poseer una dirección de red (IP).&lt;br /&gt;
&lt;br /&gt;
* '''host group'''&lt;br /&gt;
:En Zabbix, un host group (grupo host) es una agrupación lógica de los host, como una forma de organizar los dispositivos &amp;quot;Host&amp;quot; registrados en Zabbix para su monitorización. Puede contener hosts y templates.  Los grupos host se utilizan en la asignación de derechos de acceso a los hosts para diferentes grupos de usuarios.&lt;br /&gt;
&lt;br /&gt;
* '''item'''&lt;br /&gt;
:En Zabbix, un item (medida) es el parámetro que deseamos obtener del host, básicamente es una medida especifica que el servidor Zabbix recogerá de los agentes de Zabbix instalados en los host.&lt;br /&gt;
&lt;br /&gt;
* '''trigger'''&lt;br /&gt;
:En Zabbix, un trigger(disparador) es una entidad que define un umbral para detectar la existencia de un problema en un dispositivo.  Son valores recolectados por los &amp;quot;items&amp;quot;, se usa para &amp;quot;evaluar&amp;quot; los datos recibidos con condiciones definidas. Las condiciones son de tipo aritmético y lógico.&lt;br /&gt;
* '''event'''&lt;br /&gt;
:En Zabbix, un event (evento) es la aparición de un suceso en Zabbix que necesita atención. Por ejemplo, el cambio de estado a raíz de un trigger, el descubrimiento de un nuevo agente (autoregistro),etc.&lt;br /&gt;
* '''action'''&lt;br /&gt;
:En Zabbix, una action(acción) son reglas predefinidas para reaccionar a un evento disparado por los triggers, es decir, define qué hacer ante un evento. Consta de operaciones (por ejemplo, una notificacion, comandos remotos) y condiciones (cuando  la operación se lleva a cabo).&lt;br /&gt;
* '''notification'''&lt;br /&gt;
:En Zabbix, una notification (notificacion) es la entidad con que Zabbix nos puede notificar (Correo Electrónico,mensajes vía &amp;quot;SMS&amp;quot; o Jabber).&lt;br /&gt;
* '''template'''&lt;br /&gt;
:En Zabbix, un témplate (plantilla) viene predefinida en la instalación de Zabbix Server, con el fin de ser aplicada en base al tipo de sistema operativo(Linux, Mac, Window, etc) o en elementos que comparten los mismos parámetros de medición, por ejemplo la carga del procesador, uso de memoria y  uso de recursos de red. Las plantillas son un conjunto de módulos &amp;quot;ITEM, TRIGGERS y GRÁFICAS&amp;quot;, que están preconfigurados y listas para ser aplicadas a uno o varios hosts.&lt;br /&gt;
* '''application'''&lt;br /&gt;
:En Zabbix, una application (aplicación) es una agrupación lógica de los items.&lt;br /&gt;
* '''Zabbix server'''&lt;br /&gt;
:El Zabbix server (servidor de Zabbix) es el proceso central donde están definidas las configuraciones y donde se almacenan todos los datos y estadísticas recogidas de los agentes Zabbix.Consta de una base de datos, una interfaz web y el propio server. Como servidor, se encarga de recoger los datos de los agentes, calcular los triggers, enviar notificaciones, etc. &lt;br /&gt;
* '''Zabbix agent'''&lt;br /&gt;
:El zabbix agent (agente de Zabbix)  es un proceso desplegado en los host que son supervisados, que funciona como un servicio y puede funcionar de forma activa y pasiva simultáneamente.&lt;br /&gt;
&lt;br /&gt;
=====Discovery=====&lt;br /&gt;
La funcionalidad discovery(detección) lista los dispositivos que se integran en nuestra red y el tipo de servicios que proporciona. Por ejemplo, si la empresa tuviera cien colas ACDs, y veinticinco VDNS, y en cada cola como veinte medidas, seria muy laborioso registrar una por uno cada uno.  &lt;br /&gt;
Gracias a esta funcionalidad, se descubre todas las interfaces de red que se tiene, automáticamente y tanto para colas nodos o IVR. Para utilizar esta funcionalidad , se hace el uso de dos script, que se instalan en el momento de instalación de Zabbix en el directorio &amp;quot;/usr/local/sbin&amp;quot;, que son:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
'''zabbixDiscoveryQueues.pl''' : script utilizado para buscar colas ACD.&lt;br /&gt;
&lt;br /&gt;
'''zabbixDiscoveryVDN.pl''' : script utilizado para buscar VDNS.&lt;br /&gt;
|}&lt;br /&gt;
La explicación de como configurarla se encuentra en el manual oficial [[https://www.zabbix.com/documentation/2.2/manual/discovery/network_discovery/rule | Zabbix detección de redes]].&lt;br /&gt;
&lt;br /&gt;
=====Notificaciones=====&lt;br /&gt;
&lt;br /&gt;
Necesariamente, debe darse de alta al usuario y darse de alta el servidor de correo electrónico para poder ser capaz de enviar correos.&lt;br /&gt;
&lt;br /&gt;
Por otro lado, el formato del correo electrónico y las condiciones de envío de correo al usuario se configura en las acciones. Véase  el [[https://www.zabbix.com/documentation/2.2/manual/quickstart/notification  | manual oficial de Zabbix 2.2]]&lt;br /&gt;
&lt;br /&gt;
=====Usuarios=====&lt;br /&gt;
Zabbix permite la organización de usuarios en grupos para establecer los permisos adecuados de acuerdo al tipo de perfil que deseemos crear. Necesariamente un usuario debe permanecer a un grupo o varios grupos.Todos los usuarios acceden a la aplicación de Zabbix a través de la interfaz Web. &lt;br /&gt;
&lt;br /&gt;
Cada usuario Zabbix se le asigna un nombre de usuario único , una contraseña y podemos indicarle que tipo de comunicación que posee, normalmente es vía email, pero puede ser vía a otro tipo de medios. Para mas información ver el [[https://www.zabbix.com/documentation/2.2/manual/web_interface/user_profile || manual oficial ]].&lt;br /&gt;
 &lt;br /&gt;
=====Visualización=====&lt;br /&gt;
Con Zabbix es posible visualizar los datos como  gráficos, pantallas, mapas y hasta presentaciones cambiantes, entre otros. En este apartado solo nombraremos características esenciales que se tendra que completar con el [[https://www.zabbix.com/documentation/2.2/manual/config/visualisation | manual oficial]]&lt;br /&gt;
======Graphs======&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''Nota:''' Debe crearse algun item dentro del host para poder utilizar una gráfica.&lt;br /&gt;
|}&lt;br /&gt;
En Zabbix una gráfica sirve para representar gráficamente los resultados obtenidos de uno item o varios items.&lt;br /&gt;
[[File:EjemploGrafica.png|center|750px]]&lt;br /&gt;
Los valores min / avg / max que Zabbix obtiene y representa son de un registro de datos de la tabla tendencias.&lt;br /&gt;
&lt;br /&gt;
======Screens======&lt;br /&gt;
La pantalla refiere a otra característica adaptable de ZABBIX cuál permite que los usuarios creen las pantallas personalizadas dentro de ZABBIX para exhibir la información. Se considera como una colección de gráficas y no depende del host. Una pantalla puede consistir en gráficos simples, gráficos personalizados, integrar mapas, Alertas, gráficos estadísticos o texto llano tal como los 5 valores pasados de un item particular entre otros; y mostrar la información de forma dinámica.&lt;br /&gt;
&lt;br /&gt;
[[File:EjemploScreen.png|center|750px]]&lt;br /&gt;
&lt;br /&gt;
======Maps======&lt;br /&gt;
En Zabbix, un map (mapa) es una representación gráfica de la situacion de nuestros dispositivos en red. Es un escenario que muestra nuestra red, aplicaciones y servicios a través de figuras o iconos.  Dichas figuras toman vida en respuesta a los eventos que se dan en nuestro entorno.&lt;br /&gt;
[[File:EjemploMaps.png|center|750px]]&lt;br /&gt;
[[File:EstadosMaps.png|center|750px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======Monitorizar el estado de los raid======&lt;br /&gt;
Los siguientes comandos son necesarios para poder monitorizar el estado de los raid.&lt;br /&gt;
La orden:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;hpacucli &amp;quot;ctrl slot=1 logicaldrive 1 show status&amp;quot;&lt;br /&gt;
&lt;br /&gt;
nos proporciona el estado de un raid (p.e. logicaldrive 1 (931.5 GB, 1): Interim Recovery Mode).&lt;br /&gt;
&lt;br /&gt;
La orden:&lt;br /&gt;
 &amp;gt;hpacucli &amp;quot;ctrl slot=1 logicaldrive all show status&amp;quot;&lt;br /&gt;
&lt;br /&gt;
nos proporciona el estado de todos los raid.&lt;br /&gt;
&lt;br /&gt;
p.e.:&lt;br /&gt;
logicaldrive 1 (931.5 GB, 1): Interim Recovery Mode&lt;br /&gt;
&lt;br /&gt;
logicaldrive 2 (1.8 TB, 1): OK.&lt;br /&gt;
&lt;br /&gt;
Para conseguir información genérica el comando&lt;br /&gt;
 &lt;br /&gt;
 ctrl all show config detail&lt;br /&gt;
&lt;br /&gt;
nos muestra mucha información y podemos saber el modelo de disco físico que lleva instalado para poder comprar el modelo antes de &amp;quot;operar&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Zabbix en '''MD'''tel===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Configuraciones de Zabbix ====&lt;br /&gt;
&lt;br /&gt;
===== Agentes Zabbix =====&lt;br /&gt;
{|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 '''Nota:''' Hay que instalar un agente Zabbix en cada maquina que se quiera monitorizar.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El agente de Zabbix puede recoger datos: &lt;br /&gt;
*'''De forma pasiva:''' el server contacta al agente pidiéndole un dato (por ejemplo el consumo de CPU en ese instante) y el agente responde al server con ese dato. A esta acción del agente le llamaremos '''Agente activo'''.&lt;br /&gt;
*'''De forma activa:''' en un primer momento, el server le enviará al agente el listado de items a monitorizar. A partir de ese momento, será el agente que de forma periódica recogerá datos sobre esos ítems y se los hará llegar al server. A esta acción del agente le llamaremos ''''''Agente pasivo''''''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== Configurar agente de forma pasiva======&lt;br /&gt;
Para configurar el agente de Zabbix necesitamos acceder a la maquina que actuará como agente, y en el directorio /etc/zabbix modificar el fichero '''zabbix_agentd.conf''' e indicar cual es la dirección de red (IP) del servidor Zabbix.&lt;br /&gt;
&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 ##### Passive checks related&lt;br /&gt;
 ### Option: Server&lt;br /&gt;
 #       List of comma delimited IP addresses (or hostnames) of Zabbix servers.&lt;br /&gt;
 #       Incoming connections will be accepted only from the hosts listed here.&lt;br /&gt;
 #       If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1'  &lt;br /&gt;
 #       are treated equall$&lt;br /&gt;
 #&lt;br /&gt;
 # Mandatory: no&lt;br /&gt;
 # Default:&lt;br /&gt;
 Server= IP.Server Zabbix.&lt;br /&gt;
|}&lt;br /&gt;
Tras la configuración del fichero, debemos reiniciar el servicio de los agentes.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 sudo service zabbix-agent restart&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====== Configurar agente de forma activa ======&lt;br /&gt;
&lt;br /&gt;
Para configurar el agente de Zabbix necesitamos acceder a la máquina que actuará como agente, y en el directorio /etc/zabbix modificar el fichero '''zabbix_agentd.conf''' e indicar cual es la dirección de red (IP) del servidor Zabbix.&lt;br /&gt;
&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 ##### Active checks related&lt;br /&gt;
 ### Option: ServerActive&lt;br /&gt;
 #       List of comma delimited IP:port (or hostname:port) pairs of Zabbix serv$&lt;br /&gt;
 #       If port is not specified, default port is used.&lt;br /&gt;
 #       IPv6 addresses must be enclosed in square brackets if port for that hos$&lt;br /&gt;
 #       If port is not specified, square brackets for IPv6 addresses are option$&lt;br /&gt;
 #       If this parameter is not specified, active checks are disabled.&lt;br /&gt;
 #       Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12$&lt;br /&gt;
 #&lt;br /&gt;
 # Mandatory: no&lt;br /&gt;
 # Default:&lt;br /&gt;
 ServerActive=127.0.0.1&lt;br /&gt;
 --------------------------sección separada----------------------------&lt;br /&gt;
 ### Option: UserParameter&lt;br /&gt;
 #       User-defined parameter to monitor. There can be several user-defined pa$&lt;br /&gt;
 #       Format: UserParameter=&amp;lt;key&amp;gt;,&amp;lt;shell command&amp;gt;&lt;br /&gt;
 #       See 'zabbix_agentd' directory for examples.&lt;br /&gt;
 #&lt;br /&gt;
 # Mandatory: no&lt;br /&gt;
 # Default:&lt;br /&gt;
 # UserParameter=&lt;br /&gt;
 User_parameters:asterisk.pid, /usr/bin/asterisk -rx 'core show chanels'|grep 'active calls'| cat -d -f 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El parámetro '''User_parameters''' tiene un formato de este estilo:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 User_parameters: NombreMedida, comando.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El nombre de la medida se refiere al nombre que demos a la aplicación , no hace falta que exista una aplicación con ese nombre en Zabbix, y el comando , es el comando remoto que tiene que ejecutar el servidor Zabbix. Posiblemente necesita darse permisos para ejecutar el comando y siempre debe devolver un valor (un numero o un tiempo) que el servidor Zabbix puede manejar.&lt;br /&gt;
Tras la configuración del fichero, debemos reiniciar el servicio de los agentes.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 sudo service zabbix-agent restart&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Scripts del Servidor Zabbix =====&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''': &amp;lt;small&amp;gt;No olvidar que en la misma maquina del server Zabbix, debe configurarse como agente de Zabbix.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Después de realizar la [[# Instalación de Zabbix | Instalación de Zabbix ]] correctamente. Se han creado otros ficheros scripts (''scripts propios de '''md'''tel'') que facilitarán la petición del servidor a los agentes activos, para poder parametrizar todos los elementos del negocio que suelen monitorizarse. &lt;br /&gt;
Dependiendo de lo que vaya a monitorizarse necesitaremos algún script o todos. Algunos nos informan sobre elementos de negocio, saber si asterisk funciona , monitorizar el CTI (lanzara nc localhost 1111) , controlar el Intz-Nimitz, comprobar si funciona motalsal, ect.&lt;br /&gt;
&lt;br /&gt;
Cada script se exportara a los host, para que pueda facilitar los datos que pide el servidor Zabbix y configurarse.&lt;br /&gt;
Por ejemplo,para monitorizar las llamadas en curso del ACD, agentes conectados, agentes desconectados, etc.&lt;br /&gt;
Todos los scripts se deben colocar en el directorio /usr/local/sbin con permisos 755, su nombre es parecido a &amp;quot;zabbixSenderXXXXX.pl&amp;quot;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 ls /usr/local/sbin/ |grep zabbixSender&lt;br /&gt;
 '''zabbixSenderACDBD.pl'''&lt;br /&gt;
 '''zabbixSenderACD.pl'''&lt;br /&gt;
 '''zabbixSenderCTI.pl'''&lt;br /&gt;
 '''zabbixSender-intz-nimitz.pl'''&lt;br /&gt;
 '''zabbixSenderMotorSal.pl'''&lt;br /&gt;
 '''zabbixSenderMyACDSuperv.pl'''&lt;br /&gt;
 '''zabbixSenderRecordNodo.pl'''&lt;br /&gt;
 '''zabbixSenderRecordCentral.pl'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Se crea una tarea programada en linux para poder ejecutarse los scripts, programando el tiempo en que debe ejecutarse.&lt;br /&gt;
&lt;br /&gt;
Si visualizo que &amp;quot;............&amp;quot; aparece:&lt;br /&gt;
&lt;br /&gt;
*****  root zabbix&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderACDBD.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtiene diversos valores por cada cola, estados de agente por cola y estados de agente generales.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor BDTR.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:''' Ruta al archivo de configuración (Por ejemplo: ''/etc/MDtel/zabbixSenderACDBD.pconf'')&lt;br /&gt;
&lt;br /&gt;
'''Archivo de configuración:''' zabbixSenderACDBD.pconf&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''$db:''' Nombre de la BBDD (normalmente nimitz)&lt;br /&gt;
 '''$dbHost:''' Dirección IP del servidor de BBDD de TR (normalmente BDTR)&lt;br /&gt;
 '''$dbPort:''' Puerto MySQL (normalmente 3306)&lt;br /&gt;
 '''$dbUsuario:''' Usuario MySQL (normalmente nimitz)&lt;br /&gt;
 '''$dbClave:''' Clave del usuario&lt;br /&gt;
 '''$sZab:''' Dirección IP del servidor Zabbix&lt;br /&gt;
 '''$hZab:''' Nombre del host Zabbix (normalmente el nombre de máquina, tal y como se configura en &lt;br /&gt;
 zabbix_agentd.conf o en el host en la web de Zabbix)&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderACD.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener el PID de Asterisk para revisar si se ha reiniciado en caso de que cambie.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor ACD.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:''' Ruta al archivo de configuración (Por ejemplo: ''/etc/MDtel/zabbixSenderACD.pconf'').&lt;br /&gt;
&lt;br /&gt;
'''Archivo de configuración:''' zabbixSenderACDBD.pconf.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''$db:''' Nombre de la BBDD (normalmente nimitz)&lt;br /&gt;
 '''$dbHost:''' Dirección IP del servidor de BBDD de TR (normalmente BDTR)&lt;br /&gt;
 '''$dbPort:''' Puerto MySQL (normalmente 3306)&lt;br /&gt;
 '''$dbUsuario:''' Usuario MySQL (normalmente nimitz)&lt;br /&gt;
 '''$dbClave:''' Clave del usuario&lt;br /&gt;
 '''$sZab:''' Dirección IP del servidor Zabbix&lt;br /&gt;
 '''$hZab:''' Nombre del host Zabbix (normalmente el nombre de máquina, tal y como se configura en&lt;br /&gt;
 zabbix_agentd.conf o en el host en la web de Zabbix)&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
======zabbixSenderCTI.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de vivait-cti.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute vivait-cti. Normalmente el servidor ACD.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======zabbixSender-intz-nimitz.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de intz-nimitz.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute intz-nimitz.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
======zabbixSenderMotorSal.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de motorSal.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute motorSal.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderMyACDSuperv.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de myAcdSuperv.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute myAcdSuperv.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderRecordNodo.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de recordNodo.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute recordNodo.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderRecordCentral.pl======&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de recordCentral.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute recordCentral.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A continuación se muestra una tabla resumen de los distintos scripts y sus funcionalidades: &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Zabbix_scripts.png |960px]]&lt;br /&gt;
&lt;br /&gt;
====== Dimensionamiento del servidor (Startpollers) ======&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''': &amp;lt;small&amp;gt;EL parámetro StartPollers es un &amp;lt;u&amp;gt;parámetro numérico&amp;lt;/u&amp;gt; que forma parte del fichero de configuración &lt;br /&gt;
 del servidor Zabbix(zabbix_server.conf). Por defecto el servidor Zabbix está configurado para&lt;br /&gt;
 iniciar con cinco startpollers.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El servidor Zabbix puede hacer peticiones a los agentes de las medidas que necesita o quiere. O en caso contrario los agentes envian en un tiempo determinado la información al servidor. Para recibir todas estas peticiones necesitamos los pollers.  &lt;br /&gt;
&lt;br /&gt;
Los poller son los procesos encargados de recibir todas las peticiones de medidas. Aumentaremos su cantidad dependiendo de la necesitad que tengamos. Para ello podemos observar la queue , que es la encargada de almacenar un listado de todas las cosas que están pedidas para medirse y recibirse.  SI por ejemplo esta cola (queue) muestra mas de mil medidas seguramente estos pollers sean un cuello de botella y habrá que aumentar su numero.&lt;br /&gt;
&lt;br /&gt;
=====Templates=====&lt;br /&gt;
&lt;br /&gt;
Zabbix cuenta con templates (plantillas) que facilitan la tarea de &amp;quot;Registrar Equipos y Dispositivos&amp;quot; y agregarles métricas; acelerar el despliegue de las tareas de supervisión en un host; aplicar cambios masivos a tareas de supervisión. En '''md'''tel hemos creado plantillas propias que facilitan estos procesos, los cuales necesitaremos [[#Importar templates |importar templates]].&lt;br /&gt;
&lt;br /&gt;
Las plantillas están vinculados directamente a los hosts individuales, por tanto se necesitaran utilizar en cada host.&lt;br /&gt;
&lt;br /&gt;
Automáticamente, cada template rellena por item las aplicaciones, trigers, alarmas,gráficos,... etc. &lt;br /&gt;
&lt;br /&gt;
A continuación, se muestran los distintos bloques de funciones de la instalación en función de cada template:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! Se instalan en general &lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| SI (si clúster)&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| si&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| -&lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| si(si no posee ip virtuales de clúster)&lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| si&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ '''Dependiendo del tipo de nodo:'''&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! ACD !! Corporativo/GW&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| Si || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - || Si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - || Si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ '''Dependiendo del tipo de Base de dato'''s:&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! BBDD &amp;lt;br /&amp;gt;Tiempo Real !! BBDD&amp;lt;br /&amp;gt; Réplica !! BBDD Copia&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| Si(si ACD) || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| si || si || si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| si || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! Administración&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - &lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - &lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal||SI (si posee servidor calendarios)&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! Servidor de grabaciones&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - &lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| Si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - &lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal||-&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ '''Monitorización'''&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! General !! Contact Center&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - || - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - || - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| si || - &lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - || - &lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 * El template OS Linux tiene asociado el Template App Zabbix Agent.&lt;br /&gt;
 Una '''base de datos unificada''' es una base de datos de tiempo real junto a  una base de datos de replica&lt;br /&gt;
&lt;br /&gt;
====== Importar templates======&lt;br /&gt;
&lt;br /&gt;
Las plantillas propias de '''md'''tel se encuentran en la ruta &amp;quot;'''/usr/src/nimitz/archivos'''&amp;quot; y empiezan con el nombre de &amp;quot;TemplateXXX.xml&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 ls /usr/src/nimitz/archivos | grep Template&lt;br /&gt;
 '''Template DRBD.xml'''&lt;br /&gt;
 '''Template motorSal.xml'''&lt;br /&gt;
 '''Templates Vivait-Suite_GW.xml'''&lt;br /&gt;
 '''Templates Vivait-Suite.xml'''&lt;br /&gt;
 '''Template Vivait-Call Asterisk.xml'''&lt;br /&gt;
 '''Template Vivait-Call bdCentral.xml'''&lt;br /&gt;
 '''Template Vivait-Call bdNodo.xml'''&lt;br /&gt;
 '''Template Vivait-Call cambiarPerfil_Cal.xml'''&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La importación se realizara una vez a través de la web, no hace falta desde el servidor Zabbix, puede ser en cualquier  computadora con acceso a la interfaz web de Zabbix.&lt;br /&gt;
&lt;br /&gt;
[[File:ImportarTemplates.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
Hay opciones varias opciones a elegir para importación de templates, pero podemos dejar por defecto las señaladas y pulsar el botón &amp;quot;import&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Configuración para un primer funcionamiento de Zabbix===&lt;br /&gt;
Se describe una básica configuracion de Zabbix para cualquier equipo que utilice Windows o linux. Pues  mediante la definición de hosts, items, triggers y acciones, Zabbix permite efectuar un monitoreo efectivo de plataformas IT heterogéneas. &lt;br /&gt;
&lt;br /&gt;
====Configuración de los equipost (host) para la monitorización====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''': Tenga en cuenta que debe de estar previamente configurado el agente Zabbix del &lt;br /&gt;
 dispositivo a ser monitorizado apuntando a la IP del &amp;quot;Servidor Zabbix&amp;quot;.&lt;br /&gt;
|}&lt;br /&gt;
Existen dos tipos de host:&lt;br /&gt;
* '''Host físico''': donde la dirección de red que registramos en Zabbix, corresponde al dispositivo que deseamos monitorizar.&lt;br /&gt;
* '''Host virtual''': es una dirección IP virtual, que puede relacionarse con un servidor Web, clusters, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:CreacionHost.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
﻿Las opciones basicas para configurar un host son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center ;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Host Name'''&lt;br /&gt;
|  | Definir un nombre para el host.&lt;br /&gt;
||Se puede utilizar números, letras, espacios y guiones bajos están permitidos.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Visible Name'''&lt;br /&gt;
|  | Identificar con un nombre, la maquina a la que se refiere el host.&lt;br /&gt;
||Si no tiene valor, se mostrara como nombre &amp;quot;Host Name&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Groups'''&lt;br /&gt;
|  | Seleccionar al grupo de host que pertence.Seleccione uno o varios grupos de la caja derecha.&lt;br /&gt;
|| Los valores que puede seleccionar por defecto:&lt;br /&gt;
Discoverd hosts.&lt;br /&gt;
&lt;br /&gt;
Switches.&lt;br /&gt;
&lt;br /&gt;
Templates.&lt;br /&gt;
&lt;br /&gt;
Templates MDtel.&lt;br /&gt;
&lt;br /&gt;
Zabbix servers.&lt;br /&gt;
&lt;br /&gt;
Linux Servers.&lt;br /&gt;
&lt;br /&gt;
Hypervisors.&lt;br /&gt;
&lt;br /&gt;
Virtual machines.&lt;br /&gt;
&lt;br /&gt;
O crear uno nuevo en '''New group'''.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Agent interfaces'''&lt;br /&gt;
|  |Se recomienda usar una dirección IP, en vez de un nombre de la maquina para resolver por un servidor de DNS que puede fallar.&lt;br /&gt;
|  | 10050 por defecto&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cuando termine, haga clic en nel boton &amp;quot;Save&amp;quot;.  Su nuevo &amp;quot;Host&amp;quot; debe ser visible en la lista de &amp;quot;Host registrados&amp;quot;.Despues el zabbix, intentara configurarse el zabbix para conectarse a la IP.... cada x tiempo hace un barrido. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Comprobación de disponibilidad del host=====&lt;br /&gt;
Para saber si todo esta bien debemos ver la Z de disponibilidad.   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:EstadosZHost.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Indicacion de los colores del icono Z:&lt;br /&gt;
&lt;br /&gt;
* Si el icono Z en la columna de disponibilidad es de color rojo, indica que hay un error en la comunicación - mueva el cursor del ratón sobre él para ver el mensaje de error. &lt;br /&gt;
&lt;br /&gt;
* Si el icono es gris, significa que esta en proceso de comunicación con el &amp;quot;Agente Zabbix&amp;quot;. Compruebe que el servidor Zabbix está en marcha, y pruebe a actualizar la página más tarde.  El tiempo estimado para revisar si existe problemas es de 5 minutos.&lt;br /&gt;
&lt;br /&gt;
* Si el icono es verde, esta funcionando correctamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Indicar que plantilla(template) tendra el host [opcional]====&lt;br /&gt;
Tras [[#Importar templates |importar templates]] nos dirigimos al host ya configurado, y en su pestaña de templates pulsamos &amp;quot;add&amp;quot; y añadimos la plantilla/s adecuadas.&lt;br /&gt;
&lt;br /&gt;
====Asignar items al host ====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''':Un host puede tener un ITEM sin necesitad de tener template.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Todos lo ITEMS se agrupan por HOST, esto significa que cada HOST tiene sus propios &amp;quot;Módulos que recogen datos del Host&amp;quot;.   Para agregar un nuevo módulo vamos a &amp;quot;Configuration → Hosts&amp;quot; y localizamos el &amp;quot;Host&amp;quot; al cual queremos agregarle un nuevo &amp;quot;Item&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:CrearItemEjemplo.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
Parametros o campos a rellenar para una configuración básica :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center ;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Name'''&lt;br /&gt;
|  | Definir un nombre para el item.  Este nombre va a ser nuestro identificador para todas la gestiones en donde lo involucremos como el caso de Triggers.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Type'''&lt;br /&gt;
|| Indicar de que entidad queremos recibir informacion.&lt;br /&gt;
||Puede ser al &amp;quot;Agente Zabbix&amp;quot; o a el Hardware como impresoras, switch o routers.   &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Key'''&lt;br /&gt;
|  | los &amp;quot;Items&amp;quot; utilizan &amp;quot;Key&amp;quot; que son parámetros de Zabbix.  Los &amp;quot;Key&amp;quot; nos permiten indicar específicamente que tipo de información vamos a solicitara a la entidad. Se puede considerar también como el nombre de alguna aplicación.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''host interface'''&lt;br /&gt;
|  |Es la direccion de red del servidor zabbix (puede ser uno o mas)&lt;br /&gt;
|  | &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Units'''&lt;br /&gt;
|  |Es la dirección de red del servidor zabbix (puede ser uno o mas)&lt;br /&gt;
|  | &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Type of information'''&lt;br /&gt;
|  |Tipo de unidades con el que mostrar Zabbix el valor segundos, minutos, euros,....&lt;br /&gt;
|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cuando termine, haga clic en Guardar.   El nuevo elemento debe aparecer en la ITEMLIST. &lt;br /&gt;
Para mas informacion [[http://entation/1.8/manual/config/items#zabbix_agent. ver documentación Zabbix]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Ver la información recolectada por el item =====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' Normalmente para ver la información lo encontraremos en &amp;quot;Monitoring → Latest data&amp;quot;,luego &lt;br /&gt;
 clic en el signo &amp;quot;+&amp;quot; en &amp;quot;other&amp;quot; siempre que no pertenezca a una aplicación. &lt;br /&gt;
 En caso contrario, estará bajo el nombre de la aplicación.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Después de definir el &amp;quot;Item&amp;quot; vamos a revisar la información que esta recolectando.  .  La información comenzará a ser recolectada según el tiempo que le indicamos en el &amp;quot;Item&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:VerInfoITEM.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
La espera para recibir la información varía dependiendo del tiempo de recolección del item, la mayoría suele ser aproximadamente al minuto de generar el &amp;quot;Item&amp;quot;. Zabbix le ofrece la opción de visualizar la información en forma gráfica (sencilla).  En el &amp;quot;Item&amp;quot; en lista haga clic en la columna &amp;quot;History - Graph&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:VIsualGraficaValorItem.png|center|750px]]&lt;br /&gt;
Si en un caso usted no observa información le recomendamos:&lt;br /&gt;
  &lt;br /&gt;
* Ingrese al &amp;quot;Item&amp;quot; y revise que la información del &amp;quot;Key&amp;quot; este igual al ejemplo &amp;quot;system.cpu.load&amp;quot; &lt;br /&gt;
* Verifique que el agente este funcionando en el &amp;quot;Servidor a ser monitoreado&amp;quot; y que &amp;quot;El Servidor recolector Zabbix&amp;quot; este funcionando. &lt;br /&gt;
* El icono &amp;quot;Z&amp;quot; en el host debe estar en color verde. &lt;br /&gt;
* Asegure que esta monitoreando el servidor que le agregó este &amp;quot;Item&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Configurar los Triggers para los host====&lt;br /&gt;
A partir de la información que captura los agentes , el servidor de Zabbix comienza a efectuar la recolección de estos items en la base de datos. Con esto se tiene un registro histórico de tales mediciones, que pueden ser tan simples como un simple ping hasta datos de uso de disco, memoria, cpu, etc.&lt;br /&gt;
A partir de los datos que se reciben de los agentes lo que sigue es definir y configurar Triggers, que son evaluaciones que hace Zabix de estos datos para determinar la existencia de un Problema en un dispositivo.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Nota: Un trigger necesita una accion, que indica que hacer cuando se activa el trigger.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un trigger(disparador) es un tipo de reacción ante unas medidas, como un disparador en el que si pasa algo se activa. Los Trigger en Zabbix son módulos que creamos a uno o múltiples &amp;quot;Items&amp;quot; para evaluar o comparar los valores recolectados por los &amp;quot;Items&amp;quot; con condiciones que nosotros definamos.  Las condiciones son de tipo aritmético y lógico.&lt;br /&gt;
&lt;br /&gt;
Para configurar un &amp;quot;Trigger o Disparador&amp;quot; seleccionamos &amp;quot;Configuration → Hosts&amp;quot; localizamos el &amp;quot;Host&amp;quot; de ejemplo que creamos y luego hacemos clic en &amp;quot;Trigger&amp;quot;, después haga clic en &amp;quot;Create Trigger&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Parametros o campos a rellenar para una configuración básica :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center ;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Name'''&lt;br /&gt;
|  | Definir un nombre para el trigger.  Este nombre va a ser nuestro identificador para todas la gestiones en donde lo involucremos como el caso de los eventos.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Expression'''&lt;br /&gt;
||  Hay que indicar para que medida se crea (item) y sus funciones con los parametros adecuados. '''''Recomendación usar expression constructor que pedirá siempre al crearlo, para que item es y sus funciones...'''''&lt;br /&gt;
||Ejemplo: {New host:system.cpu.load.avg(180)}&amp;gt;2 &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Key'''&lt;br /&gt;
|  | los &amp;quot;Items&amp;quot; utilizan &amp;quot;Key&amp;quot; que son parámetros de Zabbix.  Los &amp;quot;Key&amp;quot; nos permiten indicar específicamente que tipo de información vamos a solicitara a la entidad. Se puede considerar tambien como el nombre de alguna aplicacion.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Una descripción breve sobre el trigger.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Severity'''&lt;br /&gt;
|  | everidad distinguida por colores,&lt;br /&gt;
|| No classified&lt;br /&gt;
 Information&lt;br /&gt;
 Warning&lt;br /&gt;
 Average&lt;br /&gt;
 High&lt;br /&gt;
 Disaster&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Comprobar el estado del trigger =====&lt;br /&gt;
Podemos ver el estado del &amp;quot;Trigger&amp;quot; en &amp;quot;Monitoring → Triggers&amp;quot;.El  color en caso de que se active depende de la severidad definida. Por ejemplo,  si el &amp;quot;Trigger&amp;quot; esta en color verde indica que el resultado de la métrica se mantiene por debajo de la condición que indicamos.  Por el contrario si el resultado esta &amp;quot;sobre lo indicado&amp;quot; su color sera rojo.&lt;br /&gt;
&lt;br /&gt;
[[File:EstadoTrigger.png|center|750px]]&lt;br /&gt;
&lt;br /&gt;
====Asociar un Action al trigger====&lt;br /&gt;
&lt;br /&gt;
Una action(acción) sirve para configurar un mensaje de alerta o una accion para Zabbix, ante un problema. Hay varias formas de gestionar un problema a través de una acción:&lt;br /&gt;
&lt;br /&gt;
# A través de mensajes simples, alertando al instante.&lt;br /&gt;
# Escalar los mensajes hacia el jefe y/o otros grupos.&lt;br /&gt;
# Ejecución de commandos remotos.&lt;br /&gt;
# Notificaciones repetidas hasta que se resuelve el problema.&lt;br /&gt;
# Notificaciones y comandos retardados.&lt;br /&gt;
# Escenario complejo, la combinación de todo lo anterior.&lt;br /&gt;
&lt;br /&gt;
Para crear una configuración en &amp;quot;Configuration-Actions&amp;quot;. La explicación esta en la [[ https://www.zabbix.com/documentation/2.0/manual/config/notifications/action documentación de Zabbix]].&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integraciones con servicios externos ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Presencia con Openfire ===&lt;br /&gt;
'''''VIVA'''''it se integra con servidor XMPP Openfire en su versión 3.10.2 (última probada)&lt;br /&gt;
&lt;br /&gt;
Además del servidor, es necesario instalar un plugin de integración con asterisk 13, denominado &amp;quot;asterisk IM&amp;quot;, versión 1.4.1&lt;br /&gt;
&lt;br /&gt;
La instalación del servidor Openfire es una instalación estándar, realizada de paquete&lt;br /&gt;
&lt;br /&gt;
La instalación del plugin es un &amp;quot;jar&amp;quot; que se carga desde la pagina de plugins de openfire&lt;br /&gt;
&lt;br /&gt;
Con esto conseguiremos comunicar asterisk y OPenfire de manera que:&lt;br /&gt;
*Los estados telefónicos de una extensión '''''VIVA'''''it  se reflejen en Openfire&lt;br /&gt;
*Poder marcar desde los clientes de IM instalados en los puestos&lt;br /&gt;
*Ver en el cliente llamadas entrantes al teléfono&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;Enlaces de interes:&amp;lt;/big&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
[http://www.igniterealtime.org/projects/openfire/ Página proyecto openfire]&lt;br /&gt;
&lt;br /&gt;
[https://community.igniterealtime.org/thread/56076 Página proyecto &amp;quot;asterisk IM&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reuniones virtuales con Openmeetings ===&lt;br /&gt;
'''OpenMeetings''' es un sistema de vídeo web-conferencia en tiempo real. Usando recursos como audio (micrófono), vídeo (cámara web), posibilidad de subir y convertir presentaciones (en PDF , PPT o ODP que se convierten a Flash), compartición de la pantalla de tu ordenador, o pizarra digital compartida, panel de administración, posibilidad de grabar las sesiones… y completo soporte multiplataforma, es decir, que aparte de poder grabar las sesiones, se puede compartir un escritorio también desde una máquina Linux.&lt;br /&gt;
&lt;br /&gt;
Para instalar '''OpenMettings''' debe seguir el [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manuales_de_instalaci%C3%B3n#Instalaci.C3.B3n_de_Openmeetings | manual de Instalación de Openmeetings]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]] &lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:VIVAit Suite]]&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_plataforma_VIVAit&amp;diff=6644</id>
		<title>Manual de operación plataforma VIVAit</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_plataforma_VIVAit&amp;diff=6644"/>
		<updated>2018-04-23T10:40:49Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* Watchdog */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!! '''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; ALFREDO: INSISTIR EN EXPLICAR CONCEPTOS&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
En este documento se describe la arquitectura general de la plataforma '''''VIVA'''''it, detallando aquellos procesos principales que componen cada uno de los elementos del sistema, y sus principales elementos de diagnóstico&lt;br /&gt;
Quedan fuera del ámbito de este documento:&lt;br /&gt;
* Uso de aplicación de agente ('''''VIVA'''''it Desk)&lt;br /&gt;
* Uso de aplicación de supervisor ('''''VIVA'''''it Supervisor), incluyendo sus módulos autónomos ('''''VIVA'''''it reporting, '''''VIVA'''''it Tracker)&lt;br /&gt;
* Uso de portal de administración&lt;br /&gt;
* Uso de portal de traceo de llamadas y agentes ('''''VIVA'''''it Tracker web)&lt;br /&gt;
* Uso de portal de monitorización zabbix&lt;br /&gt;
&lt;br /&gt;
== Arquitectura ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura plataforma VIVAit.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Descripción de los elementos, diagnósticos y operaciones ==&lt;br /&gt;
Las siguientes tablas definen los principales elementos software de la plataforma '''''VIVA'''''it, que son detallados en apartados siguientes:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de sistema operativo'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu Server LTS 64 bits || Uno por servidor|| ||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|| Actualmente (Oct-2015) 14.04&lt;br /&gt;
Bajo proyecto puede cambiarse&lt;br /&gt;
|-&lt;br /&gt;
| Almacenamiento de grabaciones|| Uno por sistema|| Almacenamiento de las grabaciones, ya sean de entorno corporativo o de contact center||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|| Típicamente un espacio grande de almacenamiento proporcionado por el cliente y que se monta como un sistema de archivos local en los servidores de la plataforma&lt;br /&gt;
Pueden existir sistemas secundarios de almacenamiento de grabaciones&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de conmutación de voz'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Asterisk 1.4.24 by MDtel||Uno por servidor ACD||Núcleo de conmutación de voz basado en Asterisk 1.4 y modificado por MDtel||'''''VIVA'''''it Suite||Fuertemente modificado por MDtel&lt;br /&gt;
En el futuro migrará a Asterisk 13 Certified&lt;br /&gt;
|-&lt;br /&gt;
|Dialplan ACD by MDtel||Uno por servidor ACD||Configuración de voz||'''''VIVA'''''it Suite||En el futuro se unificará con corporativa&lt;br /&gt;
|-&lt;br /&gt;
|Asterisk 13 Certified by MDtel||Uno por servidor corporativo/gateway||Núcleo de conmutación de voz basado en Asterisk 13 y modificado por MDtel||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Actualmente asterisk estándar (10/15)&lt;br /&gt;
La instalación contempla descargar de la red el más actualizado, siempre CERTIFIED&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Dialplan corporativo||Uno por servidor corporativo/gateway||Configuración de voz||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||En el futuro se unificará con ACD&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de base de datos'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|MySQL 5.5||Donde haya BBDD de cualquier tipo (incluso zabbix)||Motor de Base de Datos||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||A efectos prácticos va a ser en todos los servidores con casi total seguridad&lt;br /&gt;
|-&lt;br /&gt;
|BBDD tiempo real||Una por sistema||Base de Datos sobre la que trabaja todo el entorno de tiempo real||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|BBDD réplica||Una por sistema multinodo||Base de Datos para acceso a información de reporting…y similar||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de una&lt;br /&gt;
En el nodo en el que exista réplica existirá además copia (excepto nodo ACD)&lt;br /&gt;
|-&lt;br /&gt;
|BBDD copia||Uno por servidor corporativo/gateway||Copias de tablas de configuración para respaldo de la misma||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Local en cada nodo&lt;br /&gt;
Los nodos de ACD actualmente no trabajan con copia; en caso de fallo de BBDD TR se usa el modo emergencia&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de procesos ''VIVA''it'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Intz-Nimitz||Donde haya una BBDD de tiempo real o copia||Interfaz entre el dialplan y la base de datos||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||No donde haya BBDD de réplica&lt;br /&gt;
Sistemas grandes pueden contemplar mas de un intz-nimitz central&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|vivait-cti||Uno por servidor ACD||Interfaz entre '''''VIVA'''''it Desk, supervisor y el manager de asterisk||'''''VIVA'''''it Suite||&lt;br /&gt;
|-&lt;br /&gt;
|myAcdSuperv||Uno por servidor ACD||Recopilador de datos de asterisk y actualiza en la BBDD&lt;br /&gt;
Genera llamadas en el marcador&lt;br /&gt;
||'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|motorSal||Uno por sistema con ACD||Motor de marcador saliente automático||'''''VIVA'''''it Suite||Solo si hay marcación saliente&lt;br /&gt;
Junto a la BBDD de tiempo real&lt;br /&gt;
|-&lt;br /&gt;
|recordCentral||Uno por sistema||Servidor de grabaciones, se conectan los agentes a el||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Se arrancan varias instancias en función del número de nodos&lt;br /&gt;
Debe instalarse en un servidor que tenga el almacenamiento de grabaciones en su sistema de archivos&lt;br /&gt;
|-&lt;br /&gt;
|recordNodo||Uno por servidor corporativo/gateway||Agente de grabación||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|bdCentral||Uno, en el nodo con la BBDD de tiempo real||Genera la base de datos que se copiará para respaldo a otros nodos||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|bdNodo||En cada nodo con BBDD de copia||Recoge la base de datos del servidor central con el objeto de tener el respaldo||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|Actualizador||Uno por sistema con ACD||Se encarga de proporcionar las versiones actualizadas de las aplicaciones de puesto de trabajo||'''''VIVA'''''it Suite||En el mismo servidor que el portal de administración&lt;br /&gt;
|-&lt;br /&gt;
|phoneProv-tftp||Uno por sistema||Se encarga del aprovisionamiento masivo de terminales||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||En instalaciones grandes habrá más de uno, quizás uno por sede grande; depende de la infraestructura de DHCP&lt;br /&gt;
|-&lt;br /&gt;
|borraregistrosnimitz||||||||				&lt;br /&gt;
|-&lt;br /&gt;
|Mover grabaciones a nube||||||||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Administración'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Tomcat 7||Uno por servidor con portales||Servidor de aplicaciones JAVA||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|Portal de administración ||Uno por sistema||Portal de administración del sistema||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Portal usuario||Uno por sistema||Portal de usuario, para acceso a buzones, su configuración||'''''VIVA'''''it Call||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Tracker web||Uno por sistema||Portal de seguimiento de llamadas||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Debe instalarse en un servidor que tenga los ficheros de grabación montados en su sistema de archivos&lt;br /&gt;
Ligado a recordCentral&lt;br /&gt;
Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Monitor||Uno por sistema||Portal de monitores de pared de Call Center||'''''VIVA'''''it Suite||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Apache||Uno por servidor de calendarios||Servidor de portales WEB||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|Servidor de calendarios||Uno por sistema||Aloja calendarios para su uso en diferentes entornos de NIMITZ||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Monitorización'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Servidor zabbix||Uno por instalación||Monitorización técnica y de negocio||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de uno&lt;br /&gt;
Tipicamente irá o en BBDD replica o en nodo de gestión en instalaciones grandes&lt;br /&gt;
|-&lt;br /&gt;
|Templates zabbix||Uno por instalación||Adaptaciones específicas||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|Agente Zabbix||Uno por servidor||Agente de monitorización||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
||Scripts monitorización zabbix||Uno por servidor||Agente de monitorización||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Versiones de módulos===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Módulo  !! VSuite &lt;br /&gt;
V.3.10 &lt;br /&gt;
! VSuite &lt;br /&gt;
V.3.2.0 &lt;br /&gt;
! VSuite &lt;br /&gt;
V.3.3.0 &lt;br /&gt;
! VIVAit V.3.0.0&lt;br /&gt;
(VSuite 3.4+VCall3.0) &lt;br /&gt;
!  VIVAit V.3.1.0&lt;br /&gt;
(VSuite 3.5+VCall3.1)&lt;br /&gt;
|-&lt;br /&gt;
| Sistema Operativo || || || || &lt;br /&gt;
|| Ubuntu 14.0.4&lt;br /&gt;
Server 64 Kb&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk || 1.4 || 1.4 || 1.4 || 1.4 Nodo ACD&lt;br /&gt;
13 resto nodos&lt;br /&gt;
|| 1.4 Nodo ACD&lt;br /&gt;
13 resto nodos&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk ACD '''(VS)'''  ||  ||  || || 3.3.1 || 3.4.1 &lt;br /&gt;
|-&lt;br /&gt;
| Dialplan ACD '''(VS)''' || ||  ||  || || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk Corp '''(C)''' ||  ||  ||  || 3.3.4 || 3.4.4&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk Cisco '''(VC)''' ||  ||  ||  || 3.3.4 || 3.4.4&lt;br /&gt;
|-&lt;br /&gt;
| Dialplan Corp '''(C)''' || ||  ||  || 3.3.1 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Lazarus común '''(VS)''' || 3.1.0  || 3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| BD '''(C)''' || 3.2.0 || 3.4.0 || 3.5.0 || 3.6.0 || 3.8.0&lt;br /&gt;
|-&lt;br /&gt;
| Generaconf '''(C)''' || 3.0.0  || 3.0.0  || 3.2.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Instalador '''(C)''' || 3.1.0  || 3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Intz-nimitz '''(C)''' || 2.6.0  || 3.0.1 || 3.0.3 ||  3.4.1 || 3.4.2&lt;br /&gt;
|-&lt;br /&gt;
| recordgwd '''(C)'''  ||  1.3.0 ||  1.3.0 || 3.1.0 ||  ----- || -----&lt;br /&gt;
|-&lt;br /&gt;
| recordNodo '''(C)''' || ----- || ----- || ----- ||  4.0.0 || 4.0.0&lt;br /&gt;
|-&lt;br /&gt;
| recordprocesad '''(C)''' || 1.2.0 ||1.2.0|| 3.0.0 || ----- || -----&lt;br /&gt;
|-&lt;br /&gt;
| recordCentral '''(C)''' || ----- || ----- || -----||  4.0.0 || 4.0.1&lt;br /&gt;
|-&lt;br /&gt;
| MyACDSuperv '''(VS)''' || 5.2.0 || 5.3.0  ||  5.3.0  ||  5.3.2 || 5.3.2&lt;br /&gt;
|-&lt;br /&gt;
| Motorsal '''(VS)''' || 1.4.0 || 3.1.0  || 3.2.0 || 3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| Vivait-cti '''(VS)'''  || 3.0.0 ||  3.0.1  ||  3.0.1  ||  3.0.1 || 3.0.2&lt;br /&gt;
|-&lt;br /&gt;
| Multimonitorweb '''(VS)''' ||  3.0.1 ||  3.0.2  || 3.1.0  || 3.1.0 || 3.2.0&lt;br /&gt;
|-&lt;br /&gt;
| Portal de administración '''(C)''' || 3.1.0  || 3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Tracker Web '''(C)''' || 3.0.2  || 3.1.0 ||  3.2.0 ||  3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
|  VIVA supervisor '''(VS)''' || 3.0.0 ||  3.1.0  ||  3.2.0  ||  3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| Tracker windows '''(C)''' || 3.0.0  || 3.1.0  || 3.2.0 || 3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| VIVA report '''(VS)''' || 1.2.0  || 3.1.0  || 3.2.0  ||  3.2.2 || 3.3.0&lt;br /&gt;
|-&lt;br /&gt;
| VIVA desk '''(VS)''' || 3.0.2 ||  3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| VIVA designer '''(VS)''' || 1.0.23 || 3.0.1  || 3.1.0 ||  3.1.0 || 3.2.0&lt;br /&gt;
|-&lt;br /&gt;
|  Preview '''(VS)''' || 1.0.18 || 3.2.0  || 3.3.0 || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Phone_prov '''(C)''' || ------ || ------ || 3.0.1 || 3.0.3 || 3.0.3&lt;br /&gt;
|-&lt;br /&gt;
| Portal usuario '''(VC)''' || ------ || ------ || ------ || 3.0.0 || 3.1.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''(C)''': Módulo común&lt;br /&gt;
&lt;br /&gt;
'''(VC)''': Módulo de VIVAit Call&lt;br /&gt;
&lt;br /&gt;
'''(VS)''': Módulo de VIVAit Suite&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Sistema Operativo ===&lt;br /&gt;
Los sistemas operativos de nuestra plataforma se corresponden a las versiones de Ubuntu Server LTS , ya que son las versiones estables, con un soporte continuado y mas estables a actualizaciones desde la salida Ubuntu 14.04.1. En concreto el sistema operativo utilizado para la plataforma '''''VIVA'''''it es Ubuntu Server 14.04.4 LTS. Para más información https://help.ubuntu.com/lts/serverguide/index.html.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ubuntu Kernel Release Schedule.png|750px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Funcionamiento en cluster ====&lt;br /&gt;
&lt;br /&gt;
Un clúster es un grupo de múltiples ordenadores unidos mediante una red de alta velocidad, de tal forma que el conjunto es visto como un único ordenador.&lt;br /&gt;
&lt;br /&gt;
De un clúster se espera que presente combinaciones de los siguientes servicios:&lt;br /&gt;
&lt;br /&gt;
# Alto rendimiento &lt;br /&gt;
# Alta disponibilidad&lt;br /&gt;
# Balanceo de carga &lt;br /&gt;
# Escalabilidad &lt;br /&gt;
&lt;br /&gt;
Tal y como esta definido el cluster de MDtel, este comprueba conectividad con la otra máquina que lo forma y con un punto de confianza. Si la máquina no tiene conectividad con la otra y si con el punto de confianza es que el servidor está vivo, mientas que si no tengo conectividad ni con la otra máquina ni con el punto de confianza es que el muerto soy yo, por lo que balanceo.&lt;br /&gt;
&lt;br /&gt;
Por lo que las máquinas balancean en los casos siguientes:&lt;br /&gt;
&lt;br /&gt;
* Todo lo que tenga que ver con la red, es decir, caída de la tarjeta de red, apagado de la máquina, corte en la red..&lt;br /&gt;
&lt;br /&gt;
Y no balancea en los siguientes:&lt;br /&gt;
&lt;br /&gt;
* No balancea en los demás casos, es decir, todo lo que tenga que ver con procesos de una máquina (caída asterisk, base de datos, intz-nimitz)&lt;br /&gt;
&lt;br /&gt;
El funcionamiento en cluster se basa en:&lt;br /&gt;
&lt;br /&gt;
* Heartbeat: IP flotante entre las dos máquinas que componen el cluster; típicamente este &amp;quot;latido&amp;quot; entre máquinas se realizará mediante conexión directa con cable cruzado para asegurar que no existan problemas de comunicaciones tales como retardo, pérdida de paquetes, etc en este latido y pueda ser causa de un balanceo inadecuado.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|  '''Nota 17-11-2015:''' Se ha realizado en un cliente un cluster distribuido, con dos servidores en diferentes sedes, realizando el heartbeat mediante enlace Gigabit. Si bien la solución no está validada por desarrollo, se está observando el funcionamiento.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* DRBD se encargar de mantener una serie de carpetas totalmente replicadas entre los dos nodos; dichas carpetas son:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El cluster es &amp;lt;big&amp;gt;'''activo/pasivo'''&amp;lt;/big&amp;gt;; la máquina activa posee la IP flotante y tiene arrancados los servicios.&lt;br /&gt;
&lt;br /&gt;
==== Configuración del cluster ====&lt;br /&gt;
Para montar un cluster de asterisk partimos de la siguiente situación inicial:&lt;br /&gt;
* Dos maquinas con '''''VIVA'''''it Call 3.0 instalado.&lt;br /&gt;
* El driver bonding de Interfaces de Red en Ubuntu Server.&lt;br /&gt;
&lt;br /&gt;
Los pasos a seguir para la configuración en el Ubuntu Server son los siguientes:&lt;br /&gt;
* Instalar ifenslave: &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 aptitude install ifenslave.&lt;br /&gt;
|}&lt;br /&gt;
: Finalizada la instalación, comprobamos que la instalación de Bonding se ha configurado para empezar desde el arranque del sistema operativo desde el fichero '''/etc/modules''':&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| vi /etc/modules&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 # Parameters can be specified after the module name.&lt;br /&gt;
 lp&lt;br /&gt;
 rtc&lt;br /&gt;
 bonding&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Crear o editar el archivo llamado '''/etc/modprobe.d/bonding.conf''' y añadir la siguiente linea en negrita:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 echo &amp;quot;alias bond0 bonding&amp;quot;&amp;gt; /etc/modprobe.d/bonding.conf&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Editar el fichero /etc/network/interfaces y añadir lo que esta en negrita:&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
 # This file describes the network interfaces available on your system&lt;br /&gt;
 # and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 &lt;br /&gt;
 '''# Bonding'''&lt;br /&gt;
 &lt;br /&gt;
 '''#em1 ip manual y esclavo en el &amp;quot;bond0&amp;quot; NIC'''&lt;br /&gt;
 '''auto em1'''&lt;br /&gt;
 '''iface em1 inet manual'''&lt;br /&gt;
 '''bond-master bond0'''&lt;br /&gt;
 '''bond-primary em0''' &lt;br /&gt;
 &lt;br /&gt;
 '''#em2 ídem, creando así un vínculo de enlace 2.'''&lt;br /&gt;
 '''auto em2'''&lt;br /&gt;
 '''iface em2 inet manual'''&lt;br /&gt;
 '''bond-master bond0'''&lt;br /&gt;
 '''auto bond0'''&lt;br /&gt;
 '''iface bond0 inet static'''&lt;br /&gt;
         '''address 10.255.255.11'''&lt;br /&gt;
        '''netmask 255.255.255.0'''&lt;br /&gt;
        '''gateway 10.255.255.254'''&lt;br /&gt;
 '''bond-mode active-backup'''&lt;br /&gt;
 '''bond-miimon 100'''&lt;br /&gt;
 '''bond-slaves none'''&lt;br /&gt;
 &lt;br /&gt;
 '''# em3 replica entre servidores'''&lt;br /&gt;
 '''auto em3'''&lt;br /&gt;
 '''iface em3 inet static'''&lt;br /&gt;
         '''address 10.255.254.10'''&lt;br /&gt;
        '''netmask 255.255.255.0'''&lt;br /&gt;
 &lt;br /&gt;
 '''# em4 gestion'''&lt;br /&gt;
 '''auto em4'''&lt;br /&gt;
 '''iface em4 inet static'''&lt;br /&gt;
         '''address 172.17.47.255'''&lt;br /&gt;
         '''netmask 255.255.0.0'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Reiniciamos el sistema para que el kernel tome los cambios.&lt;br /&gt;
&lt;br /&gt;
* Comprobación que en las dos maquinas el archivo '''/etc/host''' contenga el los nombre de las dos maquinas a vincular. En el ejemplo el archivo en ambas maquinas es:&lt;br /&gt;
&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 127.0.0.1       localhost&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.11   vivaitcall-CL-UAH-1&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.12   vivaitcall-CL-UAH-2&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.10   vivaitcall-CL-UAH&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.10   BDTR&lt;br /&gt;
 &lt;br /&gt;
 10.255.254.10   vivaitcall-CL-UAH-1-em3&lt;br /&gt;
 &lt;br /&gt;
 10.255.254.11   vivaitcall-CL-UAH-2-em3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Creamos dos particiones iguales en ambos ordenadores , usando el comando '''parted'''.&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# '''parted /dev/sda'''&lt;br /&gt;
 GNU Parted 2.3&lt;br /&gt;
 Using /dev/sda&lt;br /&gt;
 Welcome to GNU Parted! Type 'help' to view a list of commands.&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Number  Start   End     Size    File system     Name  Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 &lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                 boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
        237GB   1000GB  763GB   Free Space&lt;br /&gt;
 &lt;br /&gt;
 (parted) mkpart primary 237GB 1000GB&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Number  Start   End     Size    File system     Name     Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                    boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
 5      237GB   1000GB  763GB                   primary  No File System como ext4&lt;br /&gt;
        1000GB  1000GB  204kB   Free Space&lt;br /&gt;
 (parted)quit&lt;br /&gt;
 mkfs.ext4 /dev/sda5&lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# '''parted /dev/sda'''&lt;br /&gt;
 GNU Parted 2.3&lt;br /&gt;
 Using /dev/sda&lt;br /&gt;
 Welcome to GNU Parted! Type 'help' to view a list of commands.&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Number  Start   End     Size    File system     Name     Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                    boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
 5      237GB   1000GB  763GB                   primary&lt;br /&gt;
        1000GB  1000GB  204kB   Free Space&lt;br /&gt;
 (parted) rm 5&lt;br /&gt;
 (parted) mkpart primary 237GB 1000GB&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 &lt;br /&gt;
 Number  Start   End     Size    File system     Name     Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                    boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
 5      237GB   1000GB  763GB   ext4            primary  Si File Sytem ext4&lt;br /&gt;
        1000GB  1000GB  204kB   Free Space&lt;br /&gt;
 (parted)quit&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Instalar los paquetes necesarios para el drbd. '''En Ubuntu server 14.04 ya está instalado.'''&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 aptitude install drbd8-utils  &lt;br /&gt;
 aptitude update (si no instala el drbd8-utils actualizar)&lt;br /&gt;
 aptitude install drbd8-utils  (volver a lanzar)&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
* Creamos el archivo '''/etc/drbd.conf''' en ambas maquinas:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 # You can find an example in  /usr/share/doc/drbd.../drbd.conf.example&lt;br /&gt;
 include &amp;quot;drbd.d/global_common.conf&amp;quot;;&lt;br /&gt;
 include &amp;quot;drbd.d/*.res&amp;quot;;&lt;br /&gt;
 resource MDcluster {&lt;br /&gt;
         protocol C;&lt;br /&gt;
         on vivaitcall-CL-UAH-1 {&lt;br /&gt;
               device /dev/drbd0;&lt;br /&gt;
               disk /dev/sda5;&lt;br /&gt;
               address 10.255.254.10:7788;&lt;br /&gt;
               meta-disk internal;&lt;br /&gt;
        }&lt;br /&gt;
        on vivaitcall-CL-UAH-2 {&lt;br /&gt;
               device /dev/drbd0;&lt;br /&gt;
               disk /dev/sda5;&lt;br /&gt;
               address 10.255.254.11:7788;&lt;br /&gt;
               meta-disk internal;&lt;br /&gt;
        }&lt;br /&gt;
        disk {&lt;br /&gt;
               on-io-error detach;&lt;br /&gt;
        }&lt;br /&gt;
        net {&lt;br /&gt;
               max-buffers 2048;&lt;br /&gt;
               ko-count 4;&lt;br /&gt;
        }&lt;br /&gt;
        syncer {&lt;br /&gt;
               rate 100M;&lt;br /&gt;
               al-extents 257;&lt;br /&gt;
        }&lt;br /&gt;
        startup {&lt;br /&gt;
                wfc-timeout 0;&lt;br /&gt;
                degr-wfc-timeout 120;&lt;br /&gt;
        }&lt;br /&gt;
 }&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Reiniciamos el sistema para que el kernel tome los cambios.&lt;br /&gt;
* Inicializamos el recurso, para ello primero deberemos crear los recursos DRBD teclearemos en ambas maquinas. Desde /etc.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
  drbdadm create-md MDcluster  (no y yes )&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Si tenemos algún problema porque ya exista sistema de ficheros.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 dd if=/dev/zero of=/dev/sda5 bs=1M count=128&lt;br /&gt;
 drbdadm create-md MDcluster  (no y yes )&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Reiniciamos ambas maquinas para que su kernel tome los cambios.&lt;br /&gt;
* Levantamos el servicio del DRBD en ambos servidores (nos preguntara que si queremos enviar los datos a los desarrolladores de drbd) tecleando no, no se envían.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 service drbd start&lt;br /&gt;
 /etc/init.d/drbd start&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Ahora &amp;lt;u&amp;gt;ambas maquinas son secundarias&amp;lt;/u&amp;gt;.&lt;br /&gt;
: Indicar cual de las dos maquinas usaremos como primaria, por tanto en la maquina elegida habra que ejecutar:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 drbdadm -- --overwrite-data-of-peer primary all (en una máquina)&lt;br /&gt;
:&amp;lt;small&amp;gt;'''Nota:''' La ip virtual que va a estar asignada a la maquina activa es  172.25.129.70.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Podemos teclear el comando '''''cat''''' para ver si esta sincronizando  y su progreso:&lt;br /&gt;
&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 cat /proc/drbd&lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' El servicio DRBD  aparecera como '''''Primary/Secondary'''''  si ejecutamos en el primario ; &lt;br /&gt;
 y aparecerá ''''Secondary/Primary'''' si lo ejecutamos en el secundario. &amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
* Instalación de los script de arranque:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 update-rc.d -f drbd remove (en las dos maquinas)&lt;br /&gt;
 update-rc.d drbd start 13 2 3 4 5 . stop 87 0 1 6 . (en las dos máquinas)&lt;br /&gt;
|}&lt;br /&gt;
* Seleccionar la fuente de sincronización.&lt;br /&gt;
:Formateamos un disco de la maquina que queramos que funcione como fuente del servicio DRBD, para evitar conflictos:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 mkfs.ext4  /dev/drbd0&lt;br /&gt;
|}&lt;br /&gt;
: Creamos el directorio sobre el que vamos a montar el disco, en ambas maquinas.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 mkdir  /HDcluster&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Creamos un archivo dentro '''''/HDcluster''''' de que se verá solo cuando el disco no está montado en ambas maquinas.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 touch sinMontar&lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' Este archivo nos puede servir para monitorizar mediante zabbix, nagios, ... que el disco no está montado.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:  En una de las maquinas montamos el disco (desde fuera del directorio HDcluster) &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 mount  /dev/drbd0 /HDcluster&lt;br /&gt;
|}&lt;br /&gt;
* Procedemos a mover todos los datos que necesitemos en este disco y a crear accesos directos, los directorios que vamos a mover son los siguientes:&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 /etc/asterisk&lt;br /&gt;
 /var/lib/asterisk&lt;br /&gt;
 /usr/lib/asterisk&lt;br /&gt;
 /usr/spool/asterisk&lt;br /&gt;
 /var/lib/mysql&lt;br /&gt;
 /var/tftp/&lt;br /&gt;
|}&lt;br /&gt;
: El procedimiento que vamos a seguir es el siguiente, en el primer ordenador:&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 '''Cd /HDcluster'''&lt;br /&gt;
 '''tar -zcvf etc-asterisk.tgz /etc/asterisk'''&lt;br /&gt;
 '''tar -zxvf  etc-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /etc/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/etc/asterisk /etc/asterisk'''&lt;br /&gt;
 '''tar -zcvf var-lib-asterisk.tgz /var/lib/asterisk'''&lt;br /&gt;
 '''tar -zxvf  var-lib-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /var/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/asterisk /var/lib/asterisk'''&lt;br /&gt;
 '''tar -zcvf usr-lib-asterisk.tgz /usr/lib/asterisk'''&lt;br /&gt;
 '''tar -zxvf  usr-lib-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /usr/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/usr/lib/asterisk /usr/lib/asterisk'''&lt;br /&gt;
 '''tar -zcvf var-spool-asterisk.tgz /var/spool/asterisk'''&lt;br /&gt;
 '''tar -zxvf  var-spool-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /var/spool/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/spool/asterisk /var/spool/asterisk'''&lt;br /&gt;
 '''tar -zcvf var-lib-mysql.tgz /var/lib/mysql'''&lt;br /&gt;
 '''tar -zxvf  var-lib-mysql.tgz'''&lt;br /&gt;
 '''rm -rf /var/lib/mysql'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/mysql /var/lib/mysql'''&lt;br /&gt;
 '''tar -zcvf var-lib-phoneprov-tftp.tgz /var/lib/phoneprov-tftp/'''&lt;br /&gt;
 '''tar -zxvf  var-lib-phoneprov-tftp.tgz'''&lt;br /&gt;
 '''rm -rf /var/lib/phoneprov-tftp/'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/phoneprov-tftp /var/lib/phoneprov-tftp'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: En la segunda maquina debemos borrar los directorios y crear los accesos directos.&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''rm -rf /etc/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/etc/asterisk /etc/asterisk'''&lt;br /&gt;
 '''rm -rf /var/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/asterisk /var/lib/asterisk'''&lt;br /&gt;
 '''rm -rf /usr/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/usr/lib/asterisk /usr/lib/asterisk'''&lt;br /&gt;
 '''rm -rf /var/spool/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/spool/asterisk /var/spool/asterisk'''&lt;br /&gt;
 '''rm -rf /var/lib/mysql'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/mysql /var/lib/mysql'''&lt;br /&gt;
 '''rm -rf /var/lib/phoneprov-tftp'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/phoneprov-tftp /var/lib/phoneprov-tftp'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Configurar heartbeat para las dos maquinas.&lt;br /&gt;
: Instalamos heartbeat en las dos maquinas. '''En UBUNTU Server 14.04 ya está instalado.'''&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 aptitude install heartbeat&lt;br /&gt;
|}&lt;br /&gt;
: Debemos modificar 3 ficheros en cada una de las maquinas, estos se encuentran en '''/etc/ha.d'''. El primer fichero a modificar es '''''ha.cf.''''':&lt;br /&gt;
:: En la maquina ''vivaitcall-CL-UAH-1'' es: &lt;br /&gt;
::{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# cat /etc/ha.d/ha.cf&lt;br /&gt;
 '''# Explicacion en /usr/share/doc/heartbeat/ha.cf.gz'''&lt;br /&gt;
 &lt;br /&gt;
 '''udpport 694'''&lt;br /&gt;
 '''baud 19200'''&lt;br /&gt;
 '''auto_failback off'''&lt;br /&gt;
 '''use_logd yes'''&lt;br /&gt;
 '''crm no'''&lt;br /&gt;
 &lt;br /&gt;
 '''# Temporizaciones en segs'''&lt;br /&gt;
 '''logfacility local0'''&lt;br /&gt;
 '''keepalive 2'''&lt;br /&gt;
 '''deadtime 8'''&lt;br /&gt;
 '''warntime 16'''&lt;br /&gt;
 '''initdead 64'''&lt;br /&gt;
 '''deadping 6'''&lt;br /&gt;
 &lt;br /&gt;
 '''#ucast bond0 vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''ucast bond0 vivaitcall-CL-UAH-2'''&lt;br /&gt;
 &lt;br /&gt;
 '''#ucast em3 vivaitcall-CL-UAH-1-em3'''&lt;br /&gt;
 '''ucast em3 vivaitcall-CL-UAH-2-em3'''&lt;br /&gt;
 &lt;br /&gt;
 '''#Ping a puerta de enlace,gw1,gw2,gw3,gw4'''&lt;br /&gt;
 '''ping_group red_local 10.255.255.12'''&lt;br /&gt;
 &lt;br /&gt;
 '''respawn hacluster /usr/lib/heartbeat/ipfail'''&lt;br /&gt;
 '''apiauth ipfail gid=haclient uid=hacluster'''&lt;br /&gt;
 &lt;br /&gt;
 '''node vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''node vivaitcall-CL-UAH-2'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:: Y en la maquina ''vivaitcall-CL-palacio-2'' es:&lt;br /&gt;
::{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# cat /etc/ha.d/ha.cf&lt;br /&gt;
 '''# Explicacion en /usr/share/doc/heartbeat/ha.cf.gz'''&lt;br /&gt;
 &lt;br /&gt;
 '''udpport 694'''&lt;br /&gt;
 '''baud 19200'''&lt;br /&gt;
 '''auto_failback off'''&lt;br /&gt;
 '''use_logd yes'''&lt;br /&gt;
 '''crm no'''&lt;br /&gt;
 &lt;br /&gt;
 '''# Temporizaciones en segs'''&lt;br /&gt;
 '''logfacility local0'''&lt;br /&gt;
 '''keepalive 2'''&lt;br /&gt;
 '''deadtime 8'''&lt;br /&gt;
 '''warntime 16'''&lt;br /&gt;
 '''initdead 64'''&lt;br /&gt;
 '''deadping 6'''&lt;br /&gt;
 &lt;br /&gt;
 '''ucast bond0 vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''#ucast bond0 vivaitcall-CL-UAH-2'''&lt;br /&gt;
 &lt;br /&gt;
 '''ucast em3 vivaitcall-CL-UAH-1-em3'''&lt;br /&gt;
 '''#ucast em3 vivaitcall-CL-UAH-2-em3'''&lt;br /&gt;
 &lt;br /&gt;
 '''#Ping a puerta de enlace gw1 gw2 gw3 gw4'''&lt;br /&gt;
 '''ping_group red_local 10.255.255.12'''&lt;br /&gt;
 &lt;br /&gt;
 '''respawn hacluster /usr/lib/heartbeat/ipfail'''&lt;br /&gt;
 '''apiauth ipfail gid=haclient uid=hacluster'''&lt;br /&gt;
 &lt;br /&gt;
 '''node vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''node vivaitcall-CL-UAH-2'''&lt;br /&gt;
|}&lt;br /&gt;
::'''Nota:''' El parámetro '''auto_failback''' se utiliza para indicar si queremos que al recuperarse una maquina adquiera los recursos sobre los que tiene prioridad.&lt;br /&gt;
:El segundo fichero es '''''authkeys''''',, este fichero es el mismo en ambas maquinas: &lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 chmod 600 authkeys '''(importante)'''&lt;br /&gt;
 auth 1&lt;br /&gt;
 1 sha1 claveSecretaATope&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:El tercer fichero '''haresources''', donde especificaremos en las dos maquinas que deben apuntar a la maquina que queremos que tenga prioridad en la adquisición de los recursos, este fichero es el mismo en las dos maquinas: &lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 MÁQUINA 1 -&amp;gt; vivaitcall-CL-palacio-1 hb_mdtel&lt;br /&gt;
 MÁQUINA 2-&amp;gt; vivaitcall-CL-palacio-1 hb_mdtel &lt;br /&gt;
|}&lt;br /&gt;
: Copiaremos en el directorio '''/etc/ha.d/resource.d/''' los scripts de arranque con permisos 755 (lo podemos hacer mediante WINSCP). Los scripts se encuentran en '''''C:\Documents and Settings\javier.gutierrez.MDTEL\Mis documentos\Centrales\Asterisk\Cluster\scripts'''''.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 chmod 755 hb_catalina&lt;br /&gt;
 chmod 755 hb_mdtel&lt;br /&gt;
 chmod 755 hb_mdtel_firewall&lt;br /&gt;
|}&lt;br /&gt;
: Deberemos editar  el archivo '''hb_mdtel'''&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 (IP flotante a.b.c.d./mask) 10.255.255.10&lt;br /&gt;
 CAD_IP_FLOTA=10.255.255.10/24/bond0&lt;br /&gt;
|}&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* Paramos el proceso '''myAcdSuperv'''.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 mv /etc/rc2.d/S02myAcdSuperv s02myAcdSuperv&lt;br /&gt;
|}&lt;br /&gt;
* Reiniciamos ambas maquinas para que su kernel tome los cambios.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de buen funcionamiento del cluster ====&lt;br /&gt;
* La maquina activa tiene que tener en HDcluster montado el disco con todos sus directorios y la maquina inactiva no (tenemos que ver el archivo que hemos creado &amp;quot;sinMontar&amp;quot;). &lt;br /&gt;
* La ip virtual tiene que estar en la maquina activa (ifconfig)  y no tiene que estar en la inactiva. &lt;br /&gt;
* El asterisk tiene que estar arrancado en la maquina activa y parado en la inactiva. &lt;br /&gt;
* Tecleando la ip de la maquina activa en un navegador debemos acceder al portal de vivait-call y en la inactiva no debe de estar activo. &lt;br /&gt;
* Para cambiar el cluster manualmente podemos utilizar los siguientes comandos:&lt;br /&gt;
:{|&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
  /usr/share/heartbeat/hb_takeover&lt;br /&gt;
|}&lt;br /&gt;
: La maquina desde la que se ejecuta se convierte en la maquina activa&lt;br /&gt;
:{|&lt;br /&gt;
 |- &lt;br /&gt;
 |&lt;br /&gt;
  /usr/share/heartbeat/hb_standby&lt;br /&gt;
 |}&lt;br /&gt;
: La maquina desde la que se ejecuta deja de ser la maquina activa&lt;br /&gt;
&lt;br /&gt;
==== Notas para MySQL ====&lt;br /&gt;
Si mysql es parte del cluster tenemos que tener en cuenta dos cosas:&lt;br /&gt;
&lt;br /&gt;
* El archivo '''/etc/mysql/debían.cnf''' contiene una clave que debe ser igual en ambas maquinas y debe ser la clave de la máquina de donde cojamos la base de datos.&amp;lt;br&amp;gt;&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 # Automatically generated for Debian scripts. DO NOT TOUCH!&lt;br /&gt;
 [client]&lt;br /&gt;
 host     = localhost&lt;br /&gt;
 user     = debian-sys-maint&lt;br /&gt;
 password = AI6AdPtnhLUrNm1S&lt;br /&gt;
 socket   = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysql_upgrade]&lt;br /&gt;
 user     = debian-sys-maint&lt;br /&gt;
 password = AI6AdPtnhLUrNm1S&lt;br /&gt;
 socket   = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 basedir  = /usr&lt;br /&gt;
|} &amp;lt;br&amp;gt;&lt;br /&gt;
* El archivo '''/etc/apparmor.d/usr.sbin.mysqld''' contiene donde pueden estar ubicados los archivos de mysql, al cambiar su ubicación y poner un enlace directo en /var/lib/mysql si no modificamos este archivo mysql no arrancara al no tener la nueva ubicación entre sus localizaciones permitidas. Este es un ejemplo de las líneas que debemos añadir. &amp;lt;br&amp;gt;&lt;br /&gt;
:{|&lt;br /&gt;
|-  &lt;br /&gt;
|&lt;br /&gt;
 /var/run/mysqld/mysqld.sock w, (copiar después de esta linea)&lt;br /&gt;
 &lt;br /&gt;
 #//!!&lt;br /&gt;
   /HDcluster/var/lib/mysql/ r,&lt;br /&gt;
   /HDcluster/var/lib/mysql/** rwk,&lt;br /&gt;
   #//!!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Notas de desincronización ====&lt;br /&gt;
EL servicio del DRBD esta iniciado pero al teclear el comando cat /proc/drbd para ver si esta sincronizando se presenta &amp;quot;'''primary/unknown&amp;quot; y/o secondary/unknown''' &amp;quot;.&lt;br /&gt;
* En el nodo primary  &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 drbdadm connect all &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* En el nodo secondary  &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 drbdadm disconnect all  &lt;br /&gt;
 drbdadm -- --discard-my-data connect all&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Adaptar red a cliente ====&lt;br /&gt;
Para adaptar la red de los equipos al entorno del cliente hay que editar los siguientes ficheros:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 /etc/network/interfaces&lt;br /&gt;
 /etc/resolv.conf&lt;br /&gt;
 /etc/hosts&lt;br /&gt;
 /etc/ha.d/resource.d/hb_mdtel&lt;br /&gt;
 /etc/ha.d/ha.cf &lt;br /&gt;
 - TFTP: &lt;br /&gt;
 /etc/inetd.conf (IP del cluster)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
Tras la modificaciones oportunas, se debe reiniciar las dos máquinas para cargar las nuevas configuraciones.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Matriz de conmutación ===&lt;br /&gt;
&lt;br /&gt;
Encontramos dos diferentes núcleos de conmutación en la plataforma VIVAit:&lt;br /&gt;
&lt;br /&gt;
* Para los nodos de procesamiento ACD el núcleo de conmutación es asterisk 1.4 RSP con fuertes modificaciones realizadas por MDtel en determinados módulos (queues, chan_spy entre otros)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Para los nodos que realizan funcionalidad de gateway y/o procesamiento de telefonía corporativa, se utiliza como núcleo de conmutación asterisk 13, versión certified&lt;br /&gt;
https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Documentation&lt;br /&gt;
&lt;br /&gt;
==== Modificaciones realizadas sobre Asterisk 13 certified 2 ====&lt;br /&gt;
&lt;br /&gt;
===== Archivos añadidos por '''MD'''tel =====&lt;br /&gt;
Los archivos añadidos son los siguientes:&lt;br /&gt;
&lt;br /&gt;
* '''apps/app_ucid.c'''&lt;br /&gt;
* '''apps/app_cli.c'''&lt;br /&gt;
* '''apps/app_crash.c'''&lt;br /&gt;
* '''apps/app_mdintz.c'''&lt;br /&gt;
* '''apps/app_mdintz.exports.in'''&lt;br /&gt;
* '''include/asterisk/mdintz.h'''&lt;br /&gt;
* '''include/asterisk/ucid.h'''&lt;br /&gt;
* '''res/res_mdcal.c'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ apps/app_mdintz.exports.in '''&lt;br /&gt;
&lt;br /&gt;
Este archivo sirve para la exportación de funciones del mdintz para el uso por aplicaciones externas&lt;br /&gt;
&lt;br /&gt;
===== Modificaciones de archivos =====&lt;br /&gt;
&lt;br /&gt;
Los archivos modificados por '''MD'''tel son los mostrados a continuación:&lt;br /&gt;
&lt;br /&gt;
* '''apps/app_mixmonitor.c''' &lt;br /&gt;
* '''res/res_calendar_caldav.c'''&lt;br /&gt;
* '''contrib/scripts/safe_asterisk'''&lt;br /&gt;
* '''contrib/init.d/rc.debian.asterisk'''&lt;br /&gt;
* '''channels/sig_pri.c'''&lt;br /&gt;
* '''channels/chan_sip.c'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ main/audiohook.c''' &amp;lt;!--style=&amp;quot;color:#0000ff&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''audiohook.c''' ha sido modificado para solucionar un crash de asterisk al utilizar en el mixmonitor las opciónes r y t &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ app_crash.c '''&lt;br /&gt;
&lt;br /&gt;
Esta nueva aplicación es sólo compatible con '''Asterisk 13'''. &lt;br /&gt;
&lt;br /&gt;
La documentación de la misma se encuentra en el comando: '''&amp;quot;core show application Crash&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
Esta nueva aplicación ''permite añadir'' al plan de pruebas:&lt;br /&gt;
&lt;br /&gt;
* Generación de una parada de asterisk.&lt;br /&gt;
* Verificación de su impacto. Por ejemplo, no deben cortarse las llamadas en curso, si así está previsto por la topología.&lt;br /&gt;
* Correcta generación de los &amp;quot;core&amp;quot;, comprobando que funciona &amp;quot;backtrace&amp;quot; (bt).&lt;br /&gt;
&lt;br /&gt;
 '''Nota.-''' Esta aplicación no debería estar presente en una instalación de '''Asterisk 13'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ app_mdintz.c y mdintz.h''' &amp;lt;!--style=&amp;quot;color:#0000ff&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esta aplicación sirve como interfaz a entornos (funcionalidades) creados por MDtel&lt;br /&gt;
&lt;br /&gt;
Para mas información consultar la página de [[MDintz|MDintz]].&lt;br /&gt;
&lt;br /&gt;
Las rutas de estos archivos son las siguientes:&lt;br /&gt;
&lt;br /&gt;
'''apps/app_mdintz.c''' &amp;lt;br/&amp;gt;&lt;br /&gt;
'''include/asterisk/mdintz.h '''&lt;br /&gt;
&lt;br /&gt;
 '''app_mdintz.c''' :&lt;br /&gt;
&lt;br /&gt;
'''app_mdintz.c''' orientada al proceso de enrutamiento a implementar en ''intz-nimitz.''&lt;br /&gt;
&lt;br /&gt;
El archivo '''.c''' es casi igual para asterisk 1.4.24 y asterisk 13. &lt;br /&gt;
 '''Nota.-''' Cuando se compila para asterisk 13, es necesario comentar la línea que pone&amp;lt;br /&amp;gt; '''&amp;quot;#define ASTERISK_OLD&amp;quot;.'''&lt;br /&gt;
&lt;br /&gt;
Los cambios implementados son:&lt;br /&gt;
&lt;br /&gt;
* Unificación de código entre las versiones de asterisk&lt;br /&gt;
* Nuevo comando &amp;quot;qry&amp;quot;&lt;br /&gt;
* Posible resolución de &amp;quot;Mal write&amp;quot; en intz-nimitz (a verificar)&lt;br /&gt;
&lt;br /&gt;
En cuanto al nuevo comando, el formato es:&lt;br /&gt;
&lt;br /&gt;
 '''mdintz qry &amp;lt;nHostFijo&amp;gt; &amp;lt;entorno&amp;gt; &amp;lt;servicio&amp;gt; &amp;lt;par1&amp;gt;...&amp;lt;parN&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Permite interrogar a un servidor de igual modo que hace el dialplan con '''fines de diagnóstico'''. La única diferencia es que se ha añadido el parámetro '''&amp;quot;nHostFijo&amp;quot;''' que puede tomar como valor '''&amp;quot;*&amp;quot;''' (lo que solicita una interrogación secuencial a todos los servidores definidos, igual a la funcionalidad del dialplan) ó '''&amp;quot;0&amp;quot;''' a '''&amp;quot;3&amp;quot;''' (que solicita un interrogación dirigida el host indicado como hostN, y sólo a él, en archivo de configuración).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para instalarlo, es necesario copiar:&lt;br /&gt;
&lt;br /&gt;
* '''asterisk/apps/app_mdintz.c'''&lt;br /&gt;
* '''asterisk/include/asterisk/mdintz.h'''&lt;br /&gt;
* En asterisk 1.4.24 conviene asegurar que se ha actualizado '''&amp;quot;asterisk/apps/app_queue.o&amp;quot;''' y '''&amp;quot;asterisk/apps/app_queue.so&amp;quot;'''&lt;br /&gt;
* Luego '''&amp;quot;make&amp;quot;, &amp;quot;make install&amp;quot;''' y module '''&amp;quot;unload/load&amp;quot;''' (mejor &amp;quot;stop now&amp;quot; y start)&lt;br /&gt;
&lt;br /&gt;
'''→ scripts y rc.debian.asterisk'''&lt;br /&gt;
&lt;br /&gt;
cambiado contrib/scripts por el modificado por MDtel&amp;lt;br /&amp;gt;&lt;br /&gt;
cambiado contrib/init.d/rc.debian.asterisk por el modificado por MDtel &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ Carpeta mp3 añadida al directorio addons'''&lt;br /&gt;
&lt;br /&gt;
La carpeta mp3 en addons permite la reproducción desde el diaplan de los mensajes en mp3. En make menuselect hay que marcar el format_mp3 y app_mp3 e instalar el paquete mpg123 de ubuntu &lt;br /&gt;
&lt;br /&gt;
'''→ sig_pri.c'''&lt;br /&gt;
&lt;br /&gt;
Modificado para enviar/recibir el ucid en un primario qsig &lt;br /&gt;
&lt;br /&gt;
Para que se envie el ucis tenemos que habilitar el envio de facilidades en el chan_dahdi.conf&lt;br /&gt;
&lt;br /&gt;
facilityenable = yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ init.d''' &amp;lt;!--style=&amp;quot;color:#0000ff&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Uno de los archivos modificados ha sido '''init.d''', se encuentra en la ruta: '''/etc/init.d/asterisk'''. La modificación realizada es la siguiente:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;background-color:#ffffcc;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| SAFE_ASTEISK=/usr/sbin/safe_asterisk &amp;lt;br/&amp;gt;&lt;br /&gt;
if [ -x $SAFE_ASTERISK ] ; then&amp;lt;br/&amp;gt;&lt;br /&gt;
:# //!! wkw&amp;lt;br/&amp;gt;&lt;br /&gt;
:DAEMON=$SAFE_ASTERISK&amp;lt;br/&amp;gt;&lt;br /&gt;
fi&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--archivo--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''→ safe-asterisk'''&lt;br /&gt;
* Se encuentra en la siguiente ruta:'''/usr/sbin/safe-asterisk''' .En este archivo se ha modificado MAXFILES=32768&lt;br /&gt;
&lt;br /&gt;
'''→ default'''&lt;br /&gt;
&lt;br /&gt;
* Este fichero podemos encontrarlo en: '''/etc/default/asterisk'''. La finalidad de la modificación de este fichero es poder correr como usuario Asterisk, grupo asterisk y generar cores (descomentar línea)&lt;br /&gt;
Las modificaciones realizadas han sido:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;background-color:#ffffcc;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| AST_USER=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
AST_GROUP=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
COREDUMP=yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Nueva función de asterisk: app_cli.so =====&lt;br /&gt;
&lt;br /&gt;
Esta función permite ejecutar desde el '''dialplan''' un comando de línea de consola de '''asterisk (CLI).''' Su primer uso (y esperamos que no último) será para lanzar los '''notify''' que los teléfonos necesitan para el ''reaprovisionamiento'' desde el portal o desde la facilidad de movilidad de usuario.&lt;br /&gt;
&lt;br /&gt;
Básicamente ejecuta un comando y devuelve su salida. Utiliza un archivo intermedio que puede ser:&lt;br /&gt;
&lt;br /&gt;
* '''/dev/null''' si el campo se deja vacío, por tanto, no se puede recuperar la salida.&lt;br /&gt;
* '''TEMP''', en cuyo caso se crea un archivo temporal que se borra antes de finalizar la ejecución de la función.&lt;br /&gt;
* Un nombre de fichero que es responsabilidad del dialplan el borrarlo cuando proceda.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para instalarlo basta copiar '''apps/app_cli.c''' en el directorio ''' &amp;quot;apps&amp;quot; ''' de los fuentes y luego  ejecutar '''&amp;quot;make&amp;quot; y &amp;quot;make install&amp;quot;.'''&lt;br /&gt;
&lt;br /&gt;
A continuación se pasa el resultado de '''&amp;quot;core show function CLI&amp;quot; '''&lt;br /&gt;
&lt;br /&gt;
'''[Synopsis]'''&lt;br /&gt;
&lt;br /&gt;
 Lanza un comando CLI desde dialplan&lt;br /&gt;
&lt;br /&gt;
'''[Description]''' &amp;lt;br /&amp;gt;&lt;br /&gt;
 - CLI(nomArchSal,cmd)&amp;lt;br /&amp;gt;&lt;br /&gt;
 - Si 'nomArchSal' está vacio, se usa '/dev/null' y no se recupera resultado&amp;lt;br /&amp;gt;&lt;br /&gt;
 - Si 'nomArchSal'=TEMP, Se crea un archivo temporal que se borra al final&amp;lt;br /&amp;gt;&lt;br /&gt;
 - En otro caso, se crea el archivo y no se borra&lt;br /&gt;
&lt;br /&gt;
'''[Syntax]'''&amp;lt;br /&amp;gt;&lt;br /&gt;
 CLI(nomArchSal,cmd)&lt;br /&gt;
&lt;br /&gt;
'''[Arguments]'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''nomArchSal'''&lt;br /&gt;
    Archivo de salida (si se omite, /dev/null)&lt;br /&gt;
'''cmd'''&lt;br /&gt;
    Comando a ejecutar via CLI&lt;br /&gt;
&lt;br /&gt;
==== Dialplan  ====&lt;br /&gt;
&lt;br /&gt;
El Dialplan podría considerarse la columna vertebral del sistema ''Asterisk''.&lt;br /&gt;
&lt;br /&gt;
Es una colección ordenada de acciones que se llevan a cabo cuando un usuario marca una serie de números. Hace la función de una tabla de enrutamiento de llamadas.&lt;br /&gt;
&lt;br /&gt;
Todas las configuraciones generales de Asterisk están accesibles en la ruta '''/etc/asterisk'''&lt;br /&gt;
&lt;br /&gt;
'''CONCEPTOS BÁSICOS'''&lt;br /&gt;
&lt;br /&gt;
♦ '''EXTENSIONES'''&lt;br /&gt;
&lt;br /&gt;
Una extensión es una marcación en el teclado de un teléfono. Dicha configuración podemos encontrarla en el archivo '''extensions.conf''' &lt;br /&gt;
&lt;br /&gt;
Por ejemplo, un usuario podría marcar “3001” en su teléfono, y eso sería una extensión. También podría marcar un número de teléfono nacional, como por ejemplo “915881000”, y también sería una extensión.&lt;br /&gt;
&lt;br /&gt;
En Asterisk pueden definirse también extensiones como texto, por tanto no debemos relacionar las extensiones únicamente con números.&lt;br /&gt;
&lt;br /&gt;
Algunas reglas que sería interesante conocer serían las siguientes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Regla''' !! '''Descripción'''&lt;br /&gt;
|-&lt;br /&gt;
| '''X''' || Cualquier cifra de 0 a 9&lt;br /&gt;
|-&lt;br /&gt;
|'''Z'''||Cualquier cifra de 1 a 9&lt;br /&gt;
|-&lt;br /&gt;
|'''N'''||Cualquier cifra de 2 a 9&lt;br /&gt;
|-&lt;br /&gt;
|'''[x-y]'''||Cualquier cifra de &amp;quot;x&amp;quot; a &amp;quot;y&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''[xyz]'''|| 	Las cifras &amp;quot;x&amp;quot;, &amp;quot;y&amp;quot; o &amp;quot;z&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''.'''||Una o más repeticiones del símbolo anterior&lt;br /&gt;
|-&lt;br /&gt;
|'''!'''||Cero o más repeticiones del símbolo anterior&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Estas reglas son necesarias a la hora de definir por ejemplo todos los números de teléfono posibles en España &lt;br /&gt;
&lt;br /&gt;
♦ '''PRIORIDADES'''&lt;br /&gt;
&lt;br /&gt;
En lenguaje scripting, las acciones se van ejecutando de arriba a abajo en orden. En cambio, en Asterisk, el orden en el que se ejecutan las acciones es el indicado mediante números.&lt;br /&gt;
Primero se ejecutará la acción 1, luego la 2...así sucesivamente.&lt;br /&gt;
&lt;br /&gt;
Es decir no basta con definir las acciones que se llevarán a cabo, también debemos indicar el orden en el que se llevarán a cabo.&lt;br /&gt;
&lt;br /&gt;
♦ '''CONTEXTOS'''&lt;br /&gt;
&lt;br /&gt;
Es mecanismo que nos permite variar el comportamiento del sistema en función del número que se marque. Su misión es aumentar la seguridad del sistema ofreciendo servicios diferenciados en función del usuario.&lt;br /&gt;
&lt;br /&gt;
La sintaxis típica es el nombre del contexto englobado entre corchetes [nombre_contexto]. Si un dispositivo no tiene un contexto definido se redirige directamente al contexto por defecto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los ficheros que conforman el Dialplan se clasifican en:&lt;br /&gt;
&lt;br /&gt;
* '''Generales'''&lt;br /&gt;
* '''Particulares'''&lt;br /&gt;
* '''Web'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Fichero''' !! '''Función'''&lt;br /&gt;
|-&lt;br /&gt;
| '''Generales''' || Se encuentran los ficheros de propios de MDtel y Asterisk. Es importante remarcar que estos ficheros NO pueden ser modificados por el usuario.&lt;br /&gt;
|-&lt;br /&gt;
|'''Particular'''||Estos ficheros son los únicos que puede modificar el usuario&lt;br /&gt;
|-&lt;br /&gt;
|'''Web'''|| Se encierran aquí los archivos generados automáticamente por la plataforma, a través del portal&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
En función del nodo en el que estemos trabajando, encontraremos dos tipos de dialplan:&lt;br /&gt;
&lt;br /&gt;
'''* Dialplan ACD''' --&amp;gt; Dialplan que aplica a nodos ACD&lt;br /&gt;
&lt;br /&gt;
'''* Dialplan corporativa''' --&amp;gt; Dialplan que aplica a nodos de corporativa o gateways (ya sean de corporativa o ACD)&lt;br /&gt;
&lt;br /&gt;
A continuación se muestran las tablas con los ficheros correspondientes a cada Dialplan.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;FloralWhite&amp;quot;&lt;br /&gt;
|+ '''Ficheros de configuración Dialplan Corporativo'''&lt;br /&gt;
| '''GENERALES'''&lt;br /&gt;
| '''PARTICULARES'''&lt;br /&gt;
| '''WEB'''&lt;br /&gt;
|-&lt;br /&gt;
| ext_Grabaciones.conf &amp;lt;br /&amp;gt;ext_InicioLlamada.conf &amp;lt;br /&amp;gt; ext_InicioLlamada_Dahdi.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP.conf &amp;lt;br/&amp;gt;ext_InicioLlamada_TrunkSIP.conf &amp;lt;br /&amp;gt;ext_MARCAR_ColaCentralita.conf &amp;lt;br /&amp;gt; ext_MARCAR_ColaCentralita_Dial.conf&amp;lt;br /&amp;gt; ext_MARCAR_Cola.conf &amp;lt;br /&amp;gt;ext_MARCAR_Cola_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR.conf  &amp;lt;br /&amp;gt; ext_MARCAR_DejarMensaje.conf &amp;lt;br /&amp;gt; ext_MARCAR_DejarMensaje_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Extension.conf&amp;lt;br /&amp;gt;ext_MARCAR_Extension_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_nimitz.conf&amp;lt;br /&amp;gt;ext_MARCAR_Interno.conf &amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje.conf &amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR_Nodo.conf&amp;lt;br /&amp;gt;ext_MARCAR_Nodo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Servicios.conf &amp;lt;br /&amp;gt;ext_MARCAR_VDN.conf &amp;lt;br /&amp;gt;MARCAR_VDN_Dial.conf&amp;lt;br /&amp;gt;ext_MDtel.conf &amp;lt;br /&amp;gt;ext_MDtel_Var.conf &amp;lt;br /&amp;gt;ext_Subrutinas_AnchoBanda.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD_Facilidad.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD_Facilidad.conf &amp;lt;br /&amp;gt; ext_Subrutinas_Colas.conf &amp;lt;br /&amp;gt;ext_Subrutinas.conf &amp;lt;br /&amp;gt;ext_Subrutinas_Enrutamiento.conf &amp;lt;br /&amp;gt;ext_Subrutinas_finLlamada.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Grabacion.conf&amp;lt;br /&amp;gt;ext_Subrutinas_nimitz.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Varias.conf&amp;lt;br /&amp;gt;ext_Subscribe.conf&amp;lt;br /&amp;gt;ext_Transfer.conf &amp;lt;br /&amp;gt;ext_Transfer_ExtSIP.conf&amp;lt;br /&amp;gt;ext_Transfer_TrunkInternos.conf &amp;lt;br /&amp;gt;ext_TrunkInternos.conf&amp;lt;br /&amp;gt;ext_TrunkInternos_Dial.conf &amp;lt;br /&amp;gt;sip_Estatico.conf&amp;lt;br /&amp;gt; sip_GENCUST.conf &amp;lt;br /&amp;gt;sip_notify.conf &amp;lt;br /&amp;gt;queues.conf &amp;lt;br /&amp;gt; queues_GENERAL.conf &amp;lt;br /&amp;gt;queues_PLANTILLACOLAS.conf&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| ext_Enrutador_Particular.conf&amp;lt;br /&amp;gt; ext_InicioLlamada_Dahdi_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_Particular.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_TrunkSIP_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_Extension_Particular.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo_Particular.conf &amp;lt;br/&amp;gt; ext_MARCAR_Facilidad_Particular.conf&amp;lt;br /&amp;gt; ext_MARCAR_VDN_Particular.conf &amp;lt;br /&amp;gt;ext_MDtel_Particular.conf &amp;lt;br/&amp;gt; ext_TrunkInternos_Particular.conf &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|asterisk_WEB.conf &amp;lt;br /&amp;gt; ext_MDtel_WEB.conf &amp;lt;br /&amp;gt; sip_trunkExt_WEB.conf &amp;lt;br /&amp;gt;sip_trunkInt_WEB.conf &amp;lt;br /&amp;gt;sip_trunk_WEB.conf &amp;lt;br /&amp;gt; sip_WEB.conf &amp;lt;br /&amp;gt; queues_WEB.conf&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;FloralWhite&amp;quot;&lt;br /&gt;
|+ '''Ficheros de configuración Dialplan ACD'''&lt;br /&gt;
| '''GENERALES'''&lt;br /&gt;
| '''PARTICULARES'''&lt;br /&gt;
| '''WEB'''&lt;br /&gt;
|-&lt;br /&gt;
| ext_Enrutador.conf&amp;lt;br /&amp;gt;ext_Grabaciones.conf &amp;lt;br /&amp;gt; ext_InicioLlamada.conf &amp;lt;br /&amp;gt; ext_InicioLlamada_CTI.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_Dahdi.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_Marcador.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_TrunkSIP.conf &amp;lt;br /&amp;gt;ext_MARCAR_ColaCentralita.conf &amp;lt;br /&amp;gt;ext_MARCAR_ColaCentralita_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR_Cola.conf &amp;lt;br /&amp;gt;ext_MARCAR_Cola_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR.conf &amp;lt;br /&amp;gt;ext_MARCAR_DejarMensaje.conf &amp;lt;br /&amp;gt;ext_MARCAR_DejarMensaje_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Extension.conf &amp;lt;br /&amp;gt;ext_MARCAR_Extension_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_nimitz.conf&amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje.conf &amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Nodo.conf &amp;lt;br /&amp;gt;ext_MARCAR_Nodo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR_Servicios.conf &amp;lt;br /&amp;gt;ext_MARCAR_VDN.conf &amp;lt;br /&amp;gt;ext_MARCAR_VDN_Dial.conf&amp;lt;br /&amp;gt;ext_MDtel.conf &amp;lt;br /&amp;gt;ext_MDtel_Var.conf &amp;lt;br /&amp;gt;ext_Subrutinas_AnchoBanda.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD_Facilidad.conf &amp;lt;br /&amp;gt; ext_Subrutinas_Colas.conf &amp;lt;br /&amp;gt;ext_Subrutinas.conf &amp;lt;br /&amp;gt;ext_Subrutinas_Enrutamiento.conf &amp;lt;br /&amp;gt; ext_Subrutinas_finLlamada.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Grabacion.conf &amp;lt;br /&amp;gt;ext_Subrutinas_nimitz.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Varias.conf &amp;lt;br /&amp;gt;ext_Subscribe.conf&amp;lt;br /&amp;gt;ext_Transfer.conf &amp;lt;br /&amp;gt;ext_Transfer_ExtSIP.conf&amp;lt;br /&amp;gt;ext_Transfer_TrunkInternos.conf &amp;lt;br /&amp;gt;ext_TrunkInternos.conf &amp;lt;br /&amp;gt;ext_TrunkInternos_Dial.conf &amp;lt;br /&amp;gt;queues_GENERAL.conf&amp;lt;br /&amp;gt;queues_PLANTILLACOLAS.conf &amp;lt;br /&amp;gt;sip_GENCUST.conf &amp;lt;br /&amp;gt;sip_GENERAL.conf &amp;lt;br /&amp;gt;sip_notify.conf &amp;lt;br /&amp;gt;sip_PLANTILLAEXT.conf&amp;lt;br /&amp;gt;sip_supervision.conf &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| ext_Enrutador_Particular.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_CTI_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_Dahdi_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_Marcador_Particular.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_Particular.conf.&amp;lt;br /&amp;gt;ext_InicioLlamada_TrunkSIP_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_Externo_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_VDN_Particular.conf&amp;lt;br /&amp;gt; ext_MDtel_Particular.conf&amp;lt;br /&amp;gt;ext_TrunkInternos_Particular.conf&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
|asterisk_WEB.conf &amp;lt;br /&amp;gt; ext_MDtel_WEB.conf &amp;lt;br /&amp;gt;queues_WEB.conf&amp;lt;br /&amp;gt; sip_trunkInt_WEB.conf &amp;lt;br /&amp;gt;sip_WEB.conf &amp;lt;br /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Servicios networking ===&lt;br /&gt;
Son muy importantes las configuraciones adecuadas de los servicios de:&lt;br /&gt;
&lt;br /&gt;
* '''NTP''': El sistema en global ha de estar sincronizado; todos los servidores y puestos de trabajo (en el caso de ''VIVA''it Suite) han de estar perfectamente sincronizados; los servidores de la plataforma se sincronizarán con el NTP del cliente; si el cliente no tiene NTP será necesario que un servidor de la plataforma se sincronice con un NTP externo y este sea el servidor para el resto de la plataforma&lt;br /&gt;
&lt;br /&gt;
* '''DNS''': La configuración de DNS de la plataforma será coherente con el resto de la plataforma IT del cliente&lt;br /&gt;
&lt;br /&gt;
* '''DHCP''': Es necesario coordinar con el cliente la asignación de direcciones para los diferentes elementos de la plataforma '''''VIVA'''''it, fundamentalmente para terminales telefónicos; en este caso además será necesario activa la opción 66 que permitirá definir el servidor TFTP del que los terminales cogerán sus ficheros de aprovisionamiento&lt;br /&gt;
&lt;br /&gt;
=== Bases de datos (BBDD)===&lt;br /&gt;
&lt;br /&gt;
La base de datos del sistema se basa en el motor de base de datos MySQL, es un elemento crítico del sistema, en el que insertan y del que obtiene mucha información múltiples procesos.&lt;br /&gt;
Muchas comunicaciones entre procesos se realizan vía Base de Datos (tabla COM_COMUNICADOS). Pueden existir distintas instancias de base de datos que explicadas en las siguientes secciones, nuestra base de datos tiene la siguiente estructura: [[Base de datos|Información completa de la BD]]. Podéis ampliar más información en https://dev.mysql.com/doc/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== BBDD Tiempo Real ====&lt;br /&gt;
En la base de datos de tiempo real insertan información todos los procesos del sistema, y se realizan los cambios en configuración utilizando como herramienta el portal de administración y '''''VIVA'''''it Supervisor&lt;br /&gt;
&lt;br /&gt;
De la base de datos de tiempo real leen los procesos que requieren información, y las aplicaciones:&lt;br /&gt;
*'''''VIVA'''''it Supervisor (para reporting de tiempo real)&lt;br /&gt;
*PanelWeb&lt;br /&gt;
*Datos de sesión de '''''VIVA'''''it Desk&lt;br /&gt;
*Monitorización Zabbix&lt;br /&gt;
* Otros&lt;br /&gt;
&lt;br /&gt;
El portal de administración se encarga de escribir las configuraciones añadidas o modificadas en la base de datos&lt;br /&gt;
&lt;br /&gt;
Para cuando la BDTR contienen un número masivo de datos, existe un script que borra el contenido de ciertas tablas de la BD (tablas DAT_) dejando solamente datos de un cierto número de días configurable.&lt;br /&gt;
Este script se llama borraRegistrosNimitz.pl; para más información consultar el apartado de Howto's.&lt;br /&gt;
&lt;br /&gt;
'''Por defecto, a partir de la versión 3.2.0 de la plataforma, los registros se mantedrán 2 meses.'''&lt;br /&gt;
&lt;br /&gt;
==== BBDD Réplica ====&lt;br /&gt;
A efectos de asegurar las prestaciones del sistema, se establece una réplica de la base de datos, sincronizada con la de tiempo real; los procesos y aplicaciones pesados, que realicen consultas a las base de datos que puedan comprometer las prestaciones del sistema atacan a la réplica y nunca a la base de datos de tiempo real&lt;br /&gt;
&lt;br /&gt;
Es posible que en instalaciones pequeñas no exista réplica, en cuyo caso se establece una base de datos unificada sobre la de tiempo real, en la que se añaden índices y procedimientos almacenados que típicamente residen en la de réplica.&lt;br /&gt;
&lt;br /&gt;
Es posible establecer tantas réplicas como sean necesarias si diferentes procesos pesados se penalizan en exceso, si bien una implantación tipo contemplará una sola&lt;br /&gt;
&lt;br /&gt;
Algunos procesos que utilizan la base de datos de réplica son:&lt;br /&gt;
*'''''VIVA'''''it Reporting&lt;br /&gt;
*'''''VIVA'''''it Tracker&lt;br /&gt;
*Histórico en tiempo real de '''''VIVA'''''it Supervisor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANTE: Ningún proceso, programa, aplicación, etc. escribe en la base de datos de réplica; tan solo se extrae información'''&lt;br /&gt;
&lt;br /&gt;
==== BBDD de copia ====&lt;br /&gt;
A efectos de asegurar el funcionamiento y como medida de contingencia ante un problema puntual de comunicación con la BD de tiempo real, en cada nodo disponemos de una BD de copia local. Posiblemente de un tamaño menor que la BD de tiempo real, dependiendo de cuanto tiempo pase hasta la próxima sincronización con la base de tiempo real.Esta base de datos llamada '''nimitzCopia'''.&lt;br /&gt;
  &lt;br /&gt;
Solo entrara en funcionamiento,cuando se produzca el problema mencionado, dejando acceder a los datos y poder dar servicio a la empresa mientras se soluciona el problema.&lt;br /&gt;
&lt;br /&gt;
===== Backup y restore =====&lt;br /&gt;
&lt;br /&gt;
Se utilizan dos script, para realizar la copia de seguridad y restaurar en la base de datos de copia local que son:&lt;br /&gt;
&lt;br /&gt;
* El proceso '''bdCentral.sh''' que es el encargado de realizar la copia de seguridad. Tiene un archivo de configuración bdCentral.conf. En este archivo hay un parámetro (IGNORE_TABLAS) que indica las tablas de las que NO se realizará copia de seguridad. Toda tabla que no se indique formará parte de la copia de seguridad. Vuelca los resultados en /var/log/bdCentral.log&lt;br /&gt;
* El proceso '''bdNodo.sh''' que es el encargado de descargar la copia de seguridad y restaurarla en local. Tiene un archivo de configuración bdNodo.conf. Vuelca los resultados en /var/log/bdNodo.log. El fichero de backup se copia mediante el usuario sincroniza, que deberá poder acceder sin contraseña al servidor donde reside la copia.&lt;br /&gt;
&lt;br /&gt;
En caso de producirse algún error en alguno de los procesos, marcarán dicho error en el log con una línea que comienza con la cadena &amp;quot;*ERROR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Diagnósticos y operaciones sobre bases de datos ====&lt;br /&gt;
&lt;br /&gt;
=====Comprobación que una base de datos está arrancada=====&lt;br /&gt;
Para comprobar si la base de datos está arrancada debemos poner en el terminal : '''ps aux | grep mysql'''&lt;br /&gt;
&lt;br /&gt;
Si la base de datos está arrancada y funcionando correctamente se nos mostrará en el terminal:&lt;br /&gt;
[[Archivo:Base_Datos_bien.png‎ |500px|center]]&lt;br /&gt;
&lt;br /&gt;
Por el contrario, si la base de datos presenta algun problema el mensaje mostrado será:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Base_datos_mal.png |center]]&lt;br /&gt;
&lt;br /&gt;
=====Comprobación que la base de datos de réplica está sincronizada con la base de datos de tiempo real.=====&lt;br /&gt;
&lt;br /&gt;
Si se necesita verificar que la base de réplica está sincronizada con la base de datos en tiempo real basta con acudir al comando : '''show slave status\G'''.&lt;br /&gt;
&lt;br /&gt;
Una vez introducido veremos:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Replica.png |980px|center]]&lt;br /&gt;
&lt;br /&gt;
Comandos importantes, desde dentro consola de Mysql:&lt;br /&gt;
&lt;br /&gt;
 '''show master status''': Realizado desde el master&lt;br /&gt;
 '''show slave status''': Realizado desde el esclavo; el valor &amp;quot;seconds behind master&amp;quot; nos indica&lt;br /&gt;
 cuanto está retrasada la réplica con respecto a la base de datos de tiempo real. Si el valor de este campo es elevado nos indicará &lt;br /&gt;
 que la base de datos real con la réplica no estará sincronizada, por tanto, nos interesa que este valor sea lo más pequeño posible.&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Procesos propios ===&lt;br /&gt;
&lt;br /&gt;
==== bdCentral ====&lt;br /&gt;
&lt;br /&gt;
El proceso ''bdCentral.sh'' es el encargado de realizar la copia de seguridad. Tiene un archivo de configuración ''bdCentral.conf'' el cual puede encontrarse en la ruta '''/etc/MDtel/bdCentral.conf'''. En este archivo hay un parámetro (IGNORE_TABLAS) que indica las tablas de las que NO se realizará copia de seguridad. Toda tabla que no se indique formará parte de la copia de seguridad. Vuelca los resultados en /var/log/bdCentral.log&lt;br /&gt;
&lt;br /&gt;
En caso de producirse algún error, se marcará dicho error en el log con una línea que comienza con la cadena &amp;quot;*ERROR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Para ejecutar bdCentral:&lt;br /&gt;
 bdCentral.sh /etc/MDtel/bdCentral.conf&lt;br /&gt;
&lt;br /&gt;
Estos procesos se ejecutan automáticamente. Para ello está copiado el fichero bdCentral a /etc/cron.d.&lt;br /&gt;
&lt;br /&gt;
Por defecto la programación vienen comentada por lo que será necesario activarlo.&lt;br /&gt;
&lt;br /&gt;
Para que se roten los logs hay que copiar el fichero bdCentral.logrotate a /etc/logrotate.d (como bdCentral)&lt;br /&gt;
La ruta donde se encuentran los logs es la siguiente: '''/var/log/myAcdSuperv.log'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
*A continuación se explica la utilidad de los campos mas relevantes del fichero de configuración bdCentral.conf. &lt;br /&gt;
ARCH_LOG : &lt;br /&gt;
BDHOST: Localización de la base de datos&lt;br /&gt;
BDUSU: Usuario para la base de datos&lt;br /&gt;
BDRUTA: Ruta donde se encuentra la base de datos&lt;br /&gt;
IGNORE_TABLAS:&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== bdNodo ====&lt;br /&gt;
El proceso bdNodo.sh es el encargado de descargar la copia de seguridad y restaurarla en local. Tiene un archivo de configuración bdNodo.conf, este archivo puede encontrarse en la ruta '''/etc/MDtel/bdNodo.conf.''' Vuelca los resultados en /var/log/bdNodo.log. El fichero de backup se copia mediante el usuario sincroniza, que deberá poder acceder sin contraseña al servidor donde reside la copia.&lt;br /&gt;
&lt;br /&gt;
En caso de producirse algún error, se marcará dicho error en el log con una línea que comienza con la cadena &amp;quot;*ERROR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Para ejecutar bdNodo:&lt;br /&gt;
&lt;br /&gt;
 bdNodo.sh /etc/MDtel/bdNodo.conf&lt;br /&gt;
&lt;br /&gt;
Estos procesos se ejecutan automáticamente. Para ello está copiado el fichero bdNodo a /etc/cron.d.&lt;br /&gt;
&lt;br /&gt;
Por defecto la programación vienen comentada por lo que será necesario activarlo.&lt;br /&gt;
&lt;br /&gt;
Para que se roten los logs hay que copiar el fichero bdNodo.logrotate a /etc/logrotate.d (como bdNodo)&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Intz-Nimitz ====&lt;br /&gt;
&lt;br /&gt;
Permite integrar procesos de asterisk (del dialplan) con la base de datos; por ejemplo es el que graba segmentos, inspecciona donde esta registrado un agente…etc. La estabilidad de este proceso es importante para el funcionamiento del sistema, si bien las llamadas entran en caso de no estar disponible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para mas información consultar la página de [[intz-nimitz|intz-nimitz]].&lt;br /&gt;
&lt;br /&gt;
Desde un SSH ejecuta el comando “nc ip_maquina 1115”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1115'''&lt;br /&gt;
 intz-nimitz sis ver='V02.6' inic='20140401 110116' alarmas=21 ultAlar='20140414 171244'&lt;br /&gt;
 intz-nimitz gmp msj=942/1024 buf=1024/1024 tarea=16/102&lt;br /&gt;
 intz-nimitz tmp uptime=1816550 (21d 0h 35m 50s)&lt;br /&gt;
 intz-nimitz vic identif='cms1' entorno='nimitz' conx=0/128 numConx=1018(0)&lt;br /&gt;
 intz-nimitz mys curro=80/0/0/0 soli=1012(0) soliErr=6(0) soliEncol=0(0/0)&lt;br /&gt;
 intz-nimitz cache colas=128/10/0/0 vdn=128/8/0/0 usuExten=10/0/0/0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parámetro!!Descripción&lt;br /&gt;
|-&lt;br /&gt;
|sis/ver||Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|sis/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|Sis/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|Sis/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/msj||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/buf||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/tarea||&lt;br /&gt;
|-&lt;br /&gt;
|Tmp/uptime||Tiempo que lleva el servicio activo&lt;br /&gt;
|-&lt;br /&gt;
|Vic/identif||Etiqueta de identificación del servicio&lt;br /&gt;
|-&lt;br /&gt;
|Vic/entorno||Entorno de base de datos&lt;br /&gt;
|-&lt;br /&gt;
|Vic/conx||Conexiones activas/conexiones máximas&lt;br /&gt;
|-&lt;br /&gt;
|Vic/numConx||Conexiones totales (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|Mys/curro||Número de hilos contra la base de datos&lt;br /&gt;
|-&lt;br /&gt;
|Mys/soli||Conexiones solicitadas (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|Mys/soliErr||Conexiones solicitadas con error (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|Mys/soliEncol||Conexiones encoladas&lt;br /&gt;
|-&lt;br /&gt;
|Cache/cola|| Colas monitorizadas/&lt;br /&gt;
|-&lt;br /&gt;
|Cache/vdn||VDN’s monitorizados&lt;br /&gt;
|-&lt;br /&gt;
|Cache/usuExten||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en  '''/etc/MDtel/intz-nimitz.conf'''&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/intz-nimitz.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
A continuación se muestran los campos mas importantes del fichero de configuración intz-nimitz.conf:&lt;br /&gt;
&lt;br /&gt;
enrutamiento &lt;br /&gt;
{ &lt;br /&gt;
        hay_enrutamiento = 1 &lt;br /&gt;
        max_pre_ruta_regs = 4 &lt;br /&gt;
        max_ruta = 4 &lt;br /&gt;
        max_ruta_desvios = 2 &lt;br /&gt;
# Filtro de informacion de ancho de banda &lt;br /&gt;
# MYSDanchoBandaPasoNinguno      0 &lt;br /&gt;
# MYSDanchoBandaPasoSoloDirectos 1 &lt;br /&gt;
# MYSDanchoBandaPasoSoloEnPaso   2 &lt;br /&gt;
# MYSDanchoBandaPasoTodos        3 &lt;br /&gt;
        filtro_ancho_banda = 1 &lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
mysql &lt;br /&gt;
{ &lt;br /&gt;
        hay_mysql = 1   Indica si hay base de datos mysql&lt;br /&gt;
        host = BDTR &lt;br /&gt;
        usuario = nimitz   Usuario base de datos&lt;br /&gt;
        clave = phikau3iwCe4O0PP5b09ng==   clave base de datos&lt;br /&gt;
        base_datos = nimitz &lt;br /&gt;
        bd_supervivencia = 0 &lt;br /&gt;
        num_curro = 10 &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== motorSal ====&lt;br /&gt;
Parte fundamental del proceso de marcación saliente, gestiona como hay que llamar a los diferentes contactos asignados a las campañas. Transforma los contactos en intentos de marcación.&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH ejecuta el comando “nc ip_maquina 1120”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1120'''&lt;br /&gt;
 motorSal sis ver='V01.4' inic='20140725 140832' alarmas=1 ultAlar='20140725 140832'&lt;br /&gt;
 motorSal gmp msj=253/256 buf=256/256 tarea=99/102&lt;br /&gt;
 motorSal tmp uptime=600165 (6d 22h 42m 45s)&lt;br /&gt;
 motorSal mtr mys=1 ocup=0% planif=28(0) intento=26(0)&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parámetro!!Descripción&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ver||Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/msj||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/buf||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/tarea||&lt;br /&gt;
|-&lt;br /&gt;
|Tmp/uptime||Tiempo que lleva corriendo&lt;br /&gt;
|-&lt;br /&gt;
|mtr/mys||Si está conectado al MySQL&lt;br /&gt;
|-&lt;br /&gt;
|mtr/ocup||Porcentaje de ocupación&lt;br /&gt;
|-&lt;br /&gt;
|mtr/planif||Contactos planificados Totales (Último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|mtr/intento||Intentos totales (Ültimo minuto)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Posee un fichero de configuración llamado ''motorSal.conf'' en la ruta '''/etc/MDtel/motorSal.conf'''.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:Las variables que normalmente son modificadas son las siguientes:&lt;br /&gt;
&lt;br /&gt;
mysql&lt;br /&gt;
{&lt;br /&gt;
hay_mysql = 1&lt;br /&gt;
Indica si hay base de datos mysql&lt;br /&gt;
host = localhost&lt;br /&gt;
usuario = nimitz&lt;br /&gt;
Usuario base de datos&lt;br /&gt;
Clave base de datos&lt;br /&gt;
base_datos = nimitz&lt;br /&gt;
}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Respecto a los logs del motorSal consultar el siguiente apartado: [[Trazas motorSal]]. Los logs pueden verse en la ruta '''/var/log/intz-nimitz.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== MyACDSuperv ====&lt;br /&gt;
Refleja el estado de las colas de asterisk en la base de datos; tiene sentido a efectos de estadísticas e informes, pero no a efectos de funcionamiento de la conmutación de voz.&lt;br /&gt;
&lt;br /&gt;
Es el responsable de mostrar información en las ventanes de tiempo real del supervisor.&lt;br /&gt;
&lt;br /&gt;
Es también el proceso que genera las llamadas en el marcador automático de '''''VIVA'''''it Suite.&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando “nc ip_maquina 1112”.&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1112'''&lt;br /&gt;
 myAcdSuperv SIS ver='04.6' inic='20140416 081613' alarmas=6 ultAlar='20140416 121652'&lt;br /&gt;
 myAcdSuperv AMI cnx=1 ocup=28% exten=2/2/511 asig=0/11/4095&lt;br /&gt;
 myAcdSuperv MYSQL cnx=1 ms=316&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parámetro!!Descripción&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ver||Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|AMI/cnx||Conectado (1) a asterisk&lt;br /&gt;
|-&lt;br /&gt;
|AMI/ocup||Porcentaje de ocupación de MyACDSuperv&lt;br /&gt;
|-&lt;br /&gt;
|AMI/exten||Extensiones/Extensiones/Extensiones monitorizadas|-&lt;br /&gt;
|-&lt;br /&gt;
|AMI/asig||&lt;br /&gt;
|-&lt;br /&gt;
|MYSQL/cnx||Conectado (1) a MySQL&lt;br /&gt;
|-&lt;br /&gt;
|MYSQL/ms||Tiempo de última operación en ejecutarse&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/myAcdSuperv.cnf'''&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/myAcdSuperv.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Proceso escoba ====&lt;br /&gt;
El proceso escoba se encarga de resolver y consolidar todos aquellos segmentos de grabación que han quedado almacenados en los gateways por falta de información o incoherencias. Existen dos tipos de procesos escobas:&lt;br /&gt;
# Proceso escoba perteneciente a nodo con agente de grabación (recordNodo) llamado '''''escobaGW.pl'''''.&lt;br /&gt;
# Proceso escoba perteneciente o no a un servidor de grabación (recordCentral) llamado '''''escobaGrabsBd.pl'''''.&lt;br /&gt;
&lt;br /&gt;
===== escobaGW.pl =====&lt;br /&gt;
Proceso que se ejecuta en los nodos busca en el disco RAM , las grabaciones de segmentos cuya antigüedad sea superior a mas de un día, es decir, si el proceso por ejemplo se ejecuta a la 01:00 a.m. del día 24/03/2016 buscara todas aquellas grabacionesn de segmentos realizadas antes de la 01:00 a.m del día 22/03/2016.&lt;br /&gt;
Una vez realizada la busqueda, obtendra el UCID a traves del nombre del fichero, y comprobara su correspondencia con la tabla DAT_LLAMADAS. Si existe una llamada con ese UCID, cambiara el estado de la llamada para que sea procesada correctamente. En caso contrario, es movida a la carpeta ''/var/lib/recordNodo/grabError''.&lt;br /&gt;
&lt;br /&gt;
===== escobaGrabsBd.pl =====&lt;br /&gt;
Se ejecuta sobre la base de datos de histórico, normalmente se ejecuta en un servidor de grabación (recordCentral). El proceso hace una búsqueda en dos tablas:&lt;br /&gt;
* En DAT_SEGMENTOS obtiene todos aquellos segmentos con grabaciones que dieron error, su estado tendrá valor 120.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
* En DAT_LLAMADAS obtendremos todos los registros correspondiente al segmentos anteriores.&lt;br /&gt;
Después hace una búsqueda en el sistema, usando como ruta el campo D_HORA_INICIO de cada llamada, que indica la ruta entera donde se encuentra el archivo. Una vez encontrado el archivo cambia el estado del segmento que tenia un error a estado de grabación disponible , que tendrá valor 100. Si no encontramos el segmento, no realizara nada.&lt;br /&gt;
&lt;br /&gt;
==== recordCentral ====&lt;br /&gt;
Se considera como un servidor de grabaciones. Todas las grabaciones de llamadas son un activo importante y una empresa con Contact Center pueda recibir millones de llamadas que necesitan estar registradas y almacenadas en discos duros con gran capacidad, las máquinas donde suelen alojarse estos servidores poseen discos duros limitados, lo que hace necesario en algunos casos incorporar ''dispositivos NAS''.&lt;br /&gt;
&lt;br /&gt;
Los ''dispositivos NAS'' son dispositivos de almacenamiento conectados a una red que permite el almacenamiento y la recuperación de datos desde una ubicación centralizada, flexibles y escalables, lo que significa que a medida que necesite almacenamiento adicional, puede añadirlo al que tiene. Esto no significa que sea necesario tener ''dispositivos NAS'' para funcionar, sino que puede tomar datos de diferentes sitios.&lt;br /&gt;
&lt;br /&gt;
En '''recordCentral''' pueden existir tres tipos de dispositivos NAS:&lt;br /&gt;
* Uno dedicado para las llamadas &lt;br /&gt;
* Uno dedicado para los segmentos &lt;br /&gt;
* Uno mixto para todas las llamadas y segmentos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El '''recordCentral''' se encarga de recoger todas las grabaciones de segmentos que tienen de estado proceso(3) en cada nodo gestionado, es decir, coger aquellos segmentos de llamadas marcados como llamadas disponibles, intenta descargar los segmentos de las llamadas y convertirlas al formato adecuado (MP3).&lt;br /&gt;
Como una característica particular cada diez minutos, siempre que no tenga ninguna otra tarea, intenta ver si puede establecer conexión con un nodo en cuarentena, para sacarlos de cuarentena y recoger todas las grabaciones de segmentos disponibles, para intentar convertir y descargar todas las grabaciones.  &lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando '''''nc ip_maquina 1114''''' en la maquina donde creamos que debe estar ejecutando el proceso recordCentral. Ejemplo:&lt;br /&gt;
 '''root@smadavacdrecord1:~# nc localhost 1114'''&lt;br /&gt;
 recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423 160112'&lt;br /&gt;
 recordCentral MYSQL cnx=1&lt;br /&gt;
 recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
 recordCentral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
 recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10'&lt;br /&gt;
La explicación de los campos se muestra en la tabla siguiente:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parámetro !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ver || Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/inic || Fecha de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/alarmas || Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ultAlar || Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
| MYSQL/cnx || Conectado (1) a MySQL&lt;br /&gt;
|-&lt;br /&gt;
| NAS/llamadas || Alojamiento en NAS de llamadas activo (grabación de llamada completa en un único archivo)&lt;br /&gt;
|-&lt;br /&gt;
| NAS/segmentos || Alojamiento en NAS de segmentos activo&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamNum || Llamadas procesadas&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamErr || Llamadas con error&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmNum || Segmentos procesados&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmErr || Segmentos con error&lt;br /&gt;
|-&lt;br /&gt;
| NODO/fase  || Número de proceso de recordCentral&lt;br /&gt;
|-&lt;br /&gt;
| NODO/cuarentena  || Lista de nodos en cuarentena, separada por comas&lt;br /&gt;
|-&lt;br /&gt;
| NODO/descarga || Lista de nodos en descarga, separada por comas&lt;br /&gt;
|-&lt;br /&gt;
| NODO/gestion || Lista de nodos gestionados, separada por comas (cuarentena + descarga = gestión)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/recordCentral.pconf'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:Se explican a continuación las variables más importantes del proceso RecordCentral:&lt;br /&gt;
&lt;br /&gt;
# Conexion de base de datos&lt;br /&gt;
$db='nimitz';&lt;br /&gt;
$dbHost = 'BDTR';&lt;br /&gt;
$dbPort = '3306';&lt;br /&gt;
$dbUsuario = 'nimitz';&lt;br /&gt;
$dbClave = 'ivivanimitz';&lt;br /&gt;
&lt;br /&gt;
# Configuracion de archivos con grabaciones (Orig en nodo)&lt;br /&gt;
$grabHay = 0;&lt;br /&gt;
$grabAudioCalidad = 32;&lt;br /&gt;
$grabAudioFormato = 'ogg';&lt;br /&gt;
$grabAudioExten = 'ogg';&lt;br /&gt;
$grabAudioCifrado = 0;&lt;br /&gt;
$grabRutaUsaTimestamp = 1;&lt;br /&gt;
$grabRutaOrig = '/var/lib/recordNodo/grabaciones';&lt;br /&gt;
$grabRutaTmp = '/var/lib/recordProcesad/grabTmp';&lt;br /&gt;
$grabRutaDest = '/var/lib/recordProcesad/grabRecord';&lt;br /&gt;
$grabRutaError = '/var/lib/recordProcesad/grabError';&lt;br /&gt;
$segmHay = 1;&lt;br /&gt;
$segmUmbralTiempo = 10;&lt;br /&gt;
$segmMargenTiempo = 5;&lt;br /&gt;
$segmAudioCalidad = 32;&lt;br /&gt;
$segmAudioFormato = 'ogg';&lt;br /&gt;
$segmAudioExten = 'ogg';&lt;br /&gt;
$segmAudioCifrado = 0;&lt;br /&gt;
$segmRutaUsaTimestamp = 1;&lt;br /&gt;
$segmRutaTmp = '/var/lib/recordProcesad/segmTmp';&lt;br /&gt;
$segmRutaDest = '/var/lib/recordProcesad/segmRecord';&lt;br /&gt;
$segmRutaError = '/var/lib/recordProcesad/segmError';&lt;br /&gt;
&lt;br /&gt;
# Seleccion de tipos de segmento a grabar separados por comas ('' = todos)&lt;br /&gt;
$tiposSegmentoGrabar = '';&lt;br /&gt;
&lt;br /&gt;
# Indica si se graba ring&lt;br /&gt;
$grabarRing = 0;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/recordCentral.log'''&lt;br /&gt;
&amp;lt;!-- En la versión 3.6.0. del instalador se adjuntan los siguientes archivos en el paquete recordCentral:&lt;br /&gt;
&lt;br /&gt;
borraGrabaciones.pconf: Debe colocarse en /etc/MDtel y contiene los datos de acceso a BBDD así como los días de caducidad de las grabaciones.&lt;br /&gt;
borraGrabaciones.pl: El script. Se ejecuta con el archivo de configuración como parámetro (mueveGrabaciones.pl /etc/MDtel/mueveGrabaciones.pconf)&lt;br /&gt;
borraGrabaciones: Fichero cron. Contiene la programación del script. Debe colocarse en /etc/cron.d&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== recordNodo ====&lt;br /&gt;
Se considera como proceso con función de agente de grabación para un nodo. Solo debe existir uno por maquina o por nodo (configurado como grabador) en el '''portal de administración de ''VIVA''it'''.&lt;br /&gt;
&lt;br /&gt;
Para su funcionamiento utiliza un ''disco RAM''  por que su tiempo de acceso mejora drásticamente, debido a que la memoria RAM es varios órdenes de magnitud más rápida que las unidades de disco reales, haciendo que la velocidad de procesamiento de las grabaciones sea mucho mas rápida.&lt;br /&gt;
&lt;br /&gt;
Este ''disco RAM'' normalmente ocupa la mitad de la memoria RAM de una maquina pero no es obligatorio pues dependerá de la memoria disponible en cada maquina, y además, se configura con un tamaño no superior a 2GB de memoria RAM. Hay que tener especial cuidado en que no se llene en espacio  ni tampoco los i-nodos. Se puede  monitorizar a través de la aplicación '''zabbix'''.&lt;br /&gt;
&lt;br /&gt;
El '''''recordNodo''''' se encarga de recoger todas las grabaciones de segmentos que tienen de estado  ''proceso(2)'', es decir, aquellos segmentos de llamadas que han sido grabadas pero no están siendo procesadas, moviéndolas del ''disco RAM'' a su carpeta correspondiente.&lt;br /&gt;
&lt;br /&gt;
La forma de obtener la carpeta correspondiente es obteniendo el dato del campo D_HORA_INICIO en la tabla DAT_LLAMADAS para cada segmento,tras un tratamiento del campo creara la subruta correspondientes: /año/mes/dia/hora/min. Entonces, la ruta correcta seria /var/lib/recordNodo/grabaciones/año/mes/dia/hora/min, donde año, mes, dia , hora y min son los valores numéricos obtenidos del campo D_HORA_INICIO.&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando '''''nc ip_maquina 1113''''' en la maquina donde creamos que debe estar ejecutando el proceso recordNodo:&lt;br /&gt;
&lt;br /&gt;
 root@smadavgw5:~#nc localhost 1113&lt;br /&gt;
 recordNodo SIS ver='04.00.00' inic='20160326 105137' alarmas=2 ultAlar='20160326 105542'&lt;br /&gt;
 recordNodo MYSQL cnx=1&lt;br /&gt;
 recordNodo REC grabNum=0 grabErr=0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La explicación de los campos se muestra en la tabla siguiente:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parámetro  !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ver || Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/inic  || Fecha de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/amarmas || Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ultAlar || Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
| MYSQL/cnx || Conectado (1) a MySQL&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamNum || Llamadas procesadas&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamErr || Llamadas con error&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmNum || Segmentos procesados&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmErr || Segmentos con error&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/recordNodo.pconf'''&lt;br /&gt;
:Se muestra a continuación el fichero de configuración:&lt;br /&gt;
 #&lt;br /&gt;
 # Configuracion de recordNodo.pl&lt;br /&gt;
 #&lt;br /&gt;
 # 0: Solo alarmas en archivo log - 1: alarmas y trazas&lt;br /&gt;
 $depurar = 1;&lt;br /&gt;
 &lt;br /&gt;
 # 0: Arranca como proceso - 1: arranca como demonio&lt;br /&gt;
 $soyDemonio = 1;&lt;br /&gt;
 &lt;br /&gt;
 # Archivo de log ('': salida estandar)&lt;br /&gt;
 $logArch = '/var/log/record/recordNodo.log';&lt;br /&gt;
 &lt;br /&gt;
 # Archivo para el pid (eliminando el .pid final)&lt;br /&gt;
 $pidArch = '/var/run/record/recordNodo';&lt;br /&gt;
 &lt;br /&gt;
 # 0: El programa se ejecuta indefinidamente - 1: solo una vez (util en depuracion)&lt;br /&gt;
 $unaVezSolo = 0;&lt;br /&gt;
 &lt;br /&gt;
 # Tiempo de espera en segundos cuando no hay conexion o cuando no hay llamadas&lt;br /&gt;
 $toBucle = 5;&lt;br /&gt;
 &lt;br /&gt;
 # Tiempo de guarda en segundos desde D_HORA_FIN hasta que se procesa llamada&lt;br /&gt;
 $toProcesar = 30;&lt;br /&gt;
 &lt;br /&gt;
 # Bytes por segundo en archivos de grabaciones&lt;br /&gt;
 $bytesPorSegundo = 16000;&lt;br /&gt;
 &lt;br /&gt;
 # Bytes a leer en cada accceso a disco&lt;br /&gt;
 $bytesLeerBuf = 1048576;&lt;br /&gt;
 &lt;br /&gt;
 # Conexion de base de datos&lt;br /&gt;
 $db='nimitz';&lt;br /&gt;
 $dbHost = 'BDTR';&lt;br /&gt;
 $dbPort = '3306';&lt;br /&gt;
 $dbUsuario = 'nimitz';&lt;br /&gt;
 $dbClave = 'ivivanimitz';&lt;br /&gt;
 &lt;br /&gt;
 # Configuracion de la supervision&lt;br /&gt;
 $supPort = '1113';&lt;br /&gt;
 &lt;br /&gt;
 # Quien es mi nodo para filtrar grabaciones&lt;br /&gt;
 $miNodo = 2;&lt;br /&gt;
 &lt;br /&gt;
 # Directorio donde se localizan las grabaciones&lt;br /&gt;
 $grabRutaOrig = '/var/spool/asterisk/monitor';&lt;br /&gt;
 $grabRutaDest = '/var/lib/recordNodo/grabaciones';&lt;br /&gt;
 $grabRutaError = '/var/lib/recordNodo/grabError';&lt;br /&gt;
 $grabRutaUsaTimestamp = 1;&lt;br /&gt;
 &lt;br /&gt;
 # Tiempo en segundos limite a truncar en las grabaciones (0=sin limite)&lt;br /&gt;
 $grabLimiteSegs = 0;&lt;br /&gt;
 &lt;br /&gt;
 # Indica si se procesan segmentos de tipo tipoSegmEliminarGrabacion y patron eliminacion&lt;br /&gt;
 $segmEliminarGrabacionTrato = 1;&lt;br /&gt;
 $patronEliminarGrabacion = '/etc/MDtel/null.bin'&lt;br /&gt;
&lt;br /&gt;
A continuación se indican las variables a modificar:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Variable a modificar  !! Comentario&lt;br /&gt;
|-&lt;br /&gt;
|$depurar = 1;||'''0''': Solo alarmas en archivo log&lt;br /&gt;
'''1''': alarmas y trazas&lt;br /&gt;
|-&lt;br /&gt;
|$soyDemonio = 1;||'''0''': Arranca como proceso&lt;br /&gt;
'''1''': arranca como demonio&lt;br /&gt;
|-&lt;br /&gt;
|$logArch = '/var/log/record/recordNodo.log';||Archivo de log ('': salida estándar) $pidArch = '/var/run/record/recordNodo'; 	Archivo para el pid (eliminando el .pid final)&lt;br /&gt;
|-&lt;br /&gt;
|$unaVezSolo = 0;||'''0''': El programa se ejecuta indefinidamente&lt;br /&gt;
'''1''': solo una vez (útil en depuración)&lt;br /&gt;
|-&lt;br /&gt;
|$toBucle = 5;||Tiempo de espera en segundos cuando no hay conexión o cuando no hay llamadas&lt;br /&gt;
|-&lt;br /&gt;
|$toProcesar = 30;||Tiempo de guarda en segundos desde D_HORA_FIN hasta que se procesa llamada&lt;br /&gt;
|-&lt;br /&gt;
|$bytesPorSegundo = 16000;||Bytes por segundo en archivos de grabaciones&lt;br /&gt;
|-&lt;br /&gt;
|$bytesLeerBuf = 1048576;||Bytes a leer en cada acceso a disco&lt;br /&gt;
|-&lt;br /&gt;
|$db='nimitz';||Conexión de base de datos&lt;br /&gt;
|-&lt;br /&gt;
|$dbHost = 'BDTR';||&lt;br /&gt;
|-&lt;br /&gt;
|$dbPort = '3306';||&lt;br /&gt;
|-&lt;br /&gt;
|$dbUsuario = 'nimitz';||&lt;br /&gt;
|-&lt;br /&gt;
|$dbClave = 'ivivanimitz';||&lt;br /&gt;
|-&lt;br /&gt;
|$supPort = '1113';||Configuración de la supervisión&lt;br /&gt;
|-&lt;br /&gt;
|$miNodo = 2;||Quien es mi nodo para filtrar grabaciones&lt;br /&gt;
|-&lt;br /&gt;
|$grabRutaOrig = '/var/spool/asterisk/monitor';	Directorio donde se localizan las grabaciones&lt;br /&gt;
|-&lt;br /&gt;
|$grabRutaDest = '/var/lib/recordNodo/grabaciones';&lt;br /&gt;
|-&lt;br /&gt;
|$grabRutaError = '/var/lib/recordNodo/grabError';&lt;br /&gt;
|-&lt;br /&gt;
|$grabRutaUsaTimestamp = 1;||'''1''': Usa Timestamp&lt;br /&gt;
'''0''': No usa Timestamp&lt;br /&gt;
|-&lt;br /&gt;
|$grabLimiteSegs = 0;||	Tiempo en segundos limite a truncar en las grabaciones (0=sin limite)&lt;br /&gt;
|-&lt;br /&gt;
|$segmEliminarGrabacionTrato = 1;||Indica si se procesan segmentos de tipo tipoSegmEliminarGrabacion y patrón eliminación&lt;br /&gt;
|-&lt;br /&gt;
|$patronEliminarGrabacion = '/etc/MDtel/null.bin'&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:Se muestran a continuación las variables que son modificadas con mayor frecuencia:&lt;br /&gt;
# Conexion de base de datos&lt;br /&gt;
$db='nimitz';&lt;br /&gt;
$dbHost = 'BDTR';&lt;br /&gt;
$dbPort = '3306';&lt;br /&gt;
$dbUsuario = 'nimitz';&lt;br /&gt;
$dbClave = 'ivivanimitz';&lt;br /&gt;
&lt;br /&gt;
# Quien es mi nodo para filtrar grabaciones&lt;br /&gt;
$miNodo = 1;&lt;br /&gt;
&lt;br /&gt;
# Indica si se procesan segmentos de tipo tipoSegmEliminarGrabacion y patron eliminación&lt;br /&gt;
$segmEliminarGrabacionTrato = 1;&lt;br /&gt;
$patronEliminarGrabacion = '/etc/MDtel/null.bin';&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/recordNodo.log'''&lt;br /&gt;
&lt;br /&gt;
==== Vivait-CTI ====&lt;br /&gt;
Permite la comunicación entre la aplicación '''''VIVA'''''it Desk de agente y el asterisk, sincronizando; convierte el protocolo “asterisk manager” a CSTA ('''''VIVA'''''it Desk “habla” CSTA).&lt;br /&gt;
&lt;br /&gt;
Es un proceso importante para que el uso de '''''VIVA'''''it Desk, y que los agentes puedan realizar su operativa normal con la entrada y salida de llamadas… si bien el cursado telefónico de llamadas es factible, no disponer de las facilidades de '''''VIVA'''''it Desk y formularios hace el sistema difícilmente manejable&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando “nc ip_maquina 1111”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1111'''&lt;br /&gt;
 vivait-cti sis ver='V01.5' inic='20140414 104312' alarmas=13 ultAlar='20140415 173152'&lt;br /&gt;
 vivait-cti gmp msj=1018/1024 buf=1023/1024 tarea=97/102&lt;br /&gt;
 vivait-cti tmp uptime=694748 (8d 0h 59m 8s)&lt;br /&gt;
 vivait-cti cti numConx=(0/511) numPend=(0/127) numMakeCallPend=0 numCall=(0/2047)&lt;br /&gt;
 numChan=(0/4095) numAuxStr=(0/511) numMoniColas=(0/511) numMoniDevice=0&lt;br /&gt;
 numMoniCall=0 numMoniCallAuto=0 numMoniCallByDevice=0 numMoni=(0/511)&lt;br /&gt;
 auditCallErr=0 auditAuxStrErr=0 auditMsjReqErr=0 araChanID=0 araUniqueID=0 araMoni=0&lt;br /&gt;
 vivait-cti ami esta=conx resp=652(0) evs=1397(0) descar=556(0) err=16 errConx=16&lt;br /&gt;
 numAct(0/0/127) auditErrAct=0&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!ver!!Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|sis/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|Sis/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|Sis/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/msj||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/buf||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/tarea||&lt;br /&gt;
|-&lt;br /&gt;
|Tmp/uptime||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numConx||Número de conexiones actuales / Número de conexiones máximo&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numPend||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMakeCallPend||Llamadas pendientes de realizar&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numcall||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numChan||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numAuxStr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniColas||Número de colas monitorizadas&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniDevice||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniCall||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniCallAuto||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniCallByDevice||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoni||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/auditCallErr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/auditAuxStrErr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ auditMsjReqErr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ araChanID||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ araUniqueID||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ araMoni||&lt;br /&gt;
|-&lt;br /&gt;
|Ami/esta||Estado de conexión contra manarger de asterisk&lt;br /&gt;
|-&lt;br /&gt;
|Ami/resp||&lt;br /&gt;
|-&lt;br /&gt;
|Ami/evs||Número de eventos (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
||Ami/descar&lt;br /&gt;
|-&lt;br /&gt;
|Ami/err||Errores&lt;br /&gt;
|-&lt;br /&gt;
|Ami/errConx||Errores de conexión&lt;br /&gt;
|-&lt;br /&gt;
|Ami/numAct||&lt;br /&gt;
|-&lt;br /&gt;
|Ami/auditErrAct||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/vivait-cti.conf'''&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/vivait-cti.conf'''&lt;br /&gt;
&lt;br /&gt;
==== Phoneprov-TFTP ====&lt;br /&gt;
&lt;br /&gt;
==== Introducción al aprovisionamiento ====&lt;br /&gt;
&lt;br /&gt;
En cada Centralita Telefónica existente, se puede configurar sus teléfonos IP y asignarles extensiones a cada teléfono. Para hacer un ''aprovisionamiento'' de los teléfonos es necesario que el técnico configure uno a uno manualmente utilizando su interfaz web, esto no es práctico, ya que genera muchos errores y el tiempo de implementación se incrementa drásticamente. Además, es casi imposible la administración cotidiana de los teléfonos IP. Desde '''MD'''tel se utiliza una herramienta que permite que los teléfonos IP soportados y homologados por '''MD'''tel ([[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_3.0#Terminales_telef.C3.B3nicos ver Terminales telefónicos]]) se puedan aprovisionar automáticamente, brindando una fácil implementación y administración cotidiana. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== ¿Qué es aprovisionar? =====&lt;br /&gt;
&lt;br /&gt;
Aprovisionar un teléfono es el proceso de configuración automático de teléfonos IP para su uso con una Centralita Telefónica de forma remota. Una vez que aprovisione un teléfono, el teléfono automáticamente se configurará correctamente y podrá administrar los teléfonos de forma centralizada y remota,  sin tener que iniciar sesión en la interfaz web de cada uno de los teléfonos. &lt;br /&gt;
&lt;br /&gt;
El aprovisionamiento de teléfono facilita enormemente la administración cotidiana de los teléfonos IP. Esto hace que sea fácil de cambiar las contraseñas de extensión,realizar desvíos de llamadas, nombre a mostrar, mensajería y demás configuraciones, ya que puede hacerlo de forma centralizada para todos los teléfonos desde el portal de administración y luego transferir los cambios al teléfono. &lt;br /&gt;
&lt;br /&gt;
===== TFTP =====&lt;br /&gt;
&lt;br /&gt;
'''TFTP''' son las siglas de '''T'''rivial '''F'''ile '''T'''ransfer '''P'''rotocol ''(Protocolo de transferencia de archivos trivial)''. &lt;br /&gt;
&lt;br /&gt;
Es un protocolo de transferencia muy simple semejante a una versión básica de FTP. TFTP a menudo se utiliza para transferir pequeños archivos entre terminales en una red. &lt;br /&gt;
&lt;br /&gt;
Algunos detalles del TFTP: &lt;br /&gt;
&lt;br /&gt;
* Utiliza UDP (puerto 69) como protocolo de transporte (a diferencia de FTP que utiliza los &lt;br /&gt;
puertos 20 y 21 TCP). &lt;br /&gt;
* No puede listar el contenido de los directorios. &lt;br /&gt;
* No existen mecanismos de autenticación o cifrado. &lt;br /&gt;
* Se utiliza para leer o escribir archivos de un servidor remoto. &lt;br /&gt;
* Soporta tres modos diferentes de transferencia, &amp;quot;netascii&amp;quot;, &amp;quot;octet&amp;quot; y &amp;quot;mail”.&lt;br /&gt;
&lt;br /&gt;
===== Funcionamiento del servidor phoneprove-TFTP =====&lt;br /&gt;
&lt;br /&gt;
A continuación se muestra un esquema que facilita el entendimiento del funcionamiento del servidor phoneprove-TFTP:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Funcionamiento_Servidor.png‎ |center]]&lt;br /&gt;
&lt;br /&gt;
El servidor Phoneprove-TFTP se ''encarga del aprovisionamiento masivo de terminales'', es de gran utilidad porque cualquier cambio en los teléfonos pueden ser realizados a nivel DHCP y todos los teléfonos tomarán la nueva configuración luego de reiniciarlos. &lt;br /&gt;
&lt;br /&gt;
Desde phoneprove-TFTP se generara los archivos necesarios para cada teléfono y que sirven para ser aprovisionados automáticamente. &lt;br /&gt;
El servidor phoneprove-TFTP  tiene alojados los ficheros de configuración están ordenados según las direcciones MAC de los teléfonos. El teléfono “preguntará” al servidor cual es su fichero de configuración utilizando su dirección MAC. Este a través de su MAC , consulta en la base de datos para ofrecer al terminal los datos de configuración según su plantilla, cual sera su extensión , cual sera el usuario propietario, entre otras cosas.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
  '''Nota:''' En instalaciones grandes habrá más de uno, quizás uno por sede grande; depende de la infraestructura de DHCP.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Parámetros necesarios de Aprovisionamiento de Teléfonos =====&lt;br /&gt;
&lt;br /&gt;
 '''Notas:''' el aprovisionamiento desarrollador por '''MD'''tel, no emplea un fichero por cada &lt;br /&gt;
 teléfono, sino que emplea una plantilla por cada modelo de teléfono.&lt;br /&gt;
 Debe haber una '''configuración previa del servidor DHCP''' es necesario coordinar con el cliente la asignación de direcciones para &lt;br /&gt;
 los diferentes elementos de la plataforma '''''VIVA'''''it, fundamentalmente para terminales telefónicos; en este caso además será necesario &lt;br /&gt;
 activar la opción 66 que permitirá definir el servidor TFTP del que los terminales cogerán sus ficheros de aprovisionamiento.&lt;br /&gt;
 El aprovisionamiento desde el portal de administración solo es posible para aquellos teléfonos IP homologados y probados desde '''MD'''tel   &lt;br /&gt;
 [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_3.0#Terminales_telef.C3.B3nicos ver Terminales  telefónicos]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como existen parámetros comunes de todos los teléfonos de la misma marca de fabricante, muchos de los parámetros necesarios para el aprovisionamiento  como comentamos se han generado desde MDtel en forma de plantillas, que estarán disponibles en el portal de administración VIVAit [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Plantillas | ver plantilla del portal de administración VIVAit]]. &lt;br /&gt;
&lt;br /&gt;
La configuración de un teléfono SIP es muy sencilla y en no es necesario tener conocimientos avanzados de informática o de telefonía. Cada una de estas plantillas que sirven para aprovisionar un teléfono IP homologado, algunos de los parámetros predeterminados se explicarán a continuación .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== Parámetros de Aprovisionamiento globales ======&lt;br /&gt;
&lt;br /&gt;
* Configuración de la red y MAC. &lt;br /&gt;
* Zona horaria. &lt;br /&gt;
&lt;br /&gt;
====== Parámetros de Aprovisionamiento Personales ======&lt;br /&gt;
&lt;br /&gt;
Además de los parámetros de aprovisionamiento globales, el teléfono también obtendrá información de configuración individual, tales como: &lt;br /&gt;
&lt;br /&gt;
*Número de Extensión.&lt;br /&gt;
*Nombre y Contraseña de usuario SIP. &lt;br /&gt;
*Configuración de Teclas BLF.&lt;br /&gt;
*Contraseña de la Interfaz Web del Teléfono IP.&lt;br /&gt;
*Idioma de la Pantalla.&lt;br /&gt;
*Orden de Preferencia de los Codecs.&lt;br /&gt;
&lt;br /&gt;
===== Aprovisionamiento de teléfonos nivel usuario =====&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
  '''Notas:''' La dirección MAC debe estar especificada en letras mayúsculas.&lt;br /&gt;
  La dirección MAC del teléfono se puede encontrar en la etiqueta adhesiva en la parte inferior del teléfono, o de lo contrario se deberá acceder desde&lt;br /&gt;
  el menú del propio terminal.   &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Los pasos a seguir son los siguientes: &lt;br /&gt;
&lt;br /&gt;
'''1)''' Dar de alta el teléfono en el portal de administración, se debe seleccionar el modelo del teléfono, e indicar la dirección MAC del teléfono a aprovisionar, todo ello desde el portal de administración VIVAit. &lt;br /&gt;
Para mas información ver [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Aprovisionamiento del portal de administracion| aprovisionamiento del portal de administración VIVAit]]. &lt;br /&gt;
&lt;br /&gt;
'''2)''' En el mismo portal de administración se deberá crear una extensión , asignar a la extensión el teléfono que se quiera aprovisionar, elegir la plantilla adecuada del teléfono y el usuario propietario (solo si sera un puesto fijo) desde [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Extensiones | extensiones del portal de administración]]. &lt;br /&gt;
&lt;br /&gt;
'''3)''' Conectar el teléfono a la red LAN informática (conectarlo al router o switch) para que tenga acceso a Internet:&lt;br /&gt;
&lt;br /&gt;
:*El teléfono enviará un mensaje de multidifusión a través de la LAN. &lt;br /&gt;
:*Este será captado por la Central Telefónica siempre que esté en la misma LAN. &lt;br /&gt;
:*Al teléfono se le enviará una URL de aprovisionamiento. &lt;br /&gt;
&lt;br /&gt;
'''4)''' Como la mayoría de teléfonos IP del mercado al arrancar una vez sabiendo la URL de aprovisionamiento piden una serie de archivos de configuración para aprovisionarse vía TFTP. EL servidor phoneprove-TFTP, detectara la petición y a través de la MAC y datos del usuario, consultará en la base de datos los datos necesarios para aprovisionar al teléfono y si todo funciona correctamente mandara al teléfono IP los datos de configuración necesarios para funcionar. &lt;br /&gt;
&lt;br /&gt;
'''5)''' Asegúrese de que el teléfono encuentren el servidor TFTP, para ello esperar un tiempo adecuado para que termine el aprovisionamiento. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''6)''' Finalmente aparecerá  como registrado en la centralita, obtendrá una dirección IP y podra funcionar según la configuración establecida.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
  '''Nota''': Si no se reaprovisiona tras un periodo largo de tiempo, desenchufe el cable de alimentación eléctrica &amp;lt;br /&amp;gt; o el cable Ethernet (si se utiliza la alimentación en línea PoE) para reiniciar los teléfonos. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Aprovisionamiento de teléfonos nivel técnico =====&lt;br /&gt;
&lt;br /&gt;
====== Plantilla de configuración ======&lt;br /&gt;
&lt;br /&gt;
La plantilla de configuración empleadas en el apartado  [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Plantillas | plantilla del portal de administración VIVAit]] de cada modelo está formada por una serie de variables. &lt;br /&gt;
&lt;br /&gt;
Los valores se obtienen de la tabla de la base de datos CEN_TELEFONOS, CEN_USUARIOS, ACD_EXTENSIONES, ACD_NODOS, COM_NODOS... correspondientes a la extensión del teléfono, usuario, nodo, etc. &lt;br /&gt;
&lt;br /&gt;
 variable ${NODO1_C_NOMBRE}='corp-ast13'&lt;br /&gt;
 variable ${EXTEN_C_CLAVE_REGISTRO}='Tel21002'&lt;br /&gt;
 variable ${USU_C_CODIGO_POSTAL}=''28034'&lt;br /&gt;
 variable ${SEDE_C_CODIGO_POSTAL}='28034' &lt;br /&gt;
 variable ${USU_C_NOMBRE}='Juan Antonio'&lt;br /&gt;
 variable ${USU_C_APELLIDO2}='Ramirez'&lt;br /&gt;
 variable ${SEDE_C_NOMBRE}='RED_LAB'&lt;br /&gt;
 variable ${NODO2_C_NOMBRE}= NULL&lt;br /&gt;
 variable ${EXTEN_C_NOMBRE}='' 21002&lt;br /&gt;
 variable ${USU_C_LOCALIDAD}='' &lt;br /&gt;
 variable ${USU_C_NOMBRE_MOSTRAR}='Juan' &lt;br /&gt;
 variable ${NODO1_C_IP}='175.25.129.70' &lt;br /&gt;
 variable ${MODEL_C_PREFIJO_PLANTILLA_MAC}='T28P' &lt;br /&gt;
 variable ${SEDE_C_LOCALIDAD}='Madrid' &lt;br /&gt;
 variable ${USU_C_APELLIDO1}='Casas' &lt;br /&gt;
 variable ${NODO2_C_IP}= NULL&lt;br /&gt;
 variable ${TF_ID_EXTENSION}='5' &lt;br /&gt;
 cargando campos idExten=5&lt;br /&gt;
&lt;br /&gt;
====== Ficheros y paquetes necesarios ======&lt;br /&gt;
&lt;br /&gt;
'''Paquetes previos:''' libnet-tftpd-perl, tftp-hpa, libnet-address-ip-local-perl &lt;br /&gt;
'''Usuario de funcionamiento:''' root &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
   '''Nota:'''  los archivos y directorios que generemos podrian necesitar que se permitiera el acceso al archivo de lectura &amp;lt;br/&amp;gt; y escritura en el servidor TFTP.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Archivos necesarios:''' &lt;br /&gt;
&lt;br /&gt;
 /usr/local/sbin/phoneprov-tftp.pl &lt;br /&gt;
 /usr/local/sbin/phoneprov-tftp.pm&lt;br /&gt;
 /etc/MDtel/phoneprov-tftp.pconf &lt;br /&gt;
 /etc/init/phoneprov-tftp.conf &lt;br /&gt;
 /etc/logrotate.d/phoneprov-tftp &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Directorios a crear:''' &lt;br /&gt;
&lt;br /&gt;
 /var/lib/phoneprov-tftp/plt &lt;br /&gt;
 /var/lib/phoneprov-tftp/bin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Watchdog ====&lt;br /&gt;
&lt;br /&gt;
Se trata de una aplicación del asterisk que monitoriza el SIP y en caso de fallo, pasado un cierto tiempo, reinicia el asterisk y genera un core.&lt;br /&gt;
Si escribimos en CLI de asterisk perro tenemos los siguientes comandos:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Activar||Activar el Watchdog&lt;br /&gt;
|-&lt;br /&gt;
|Desactivar||Desactiva el Watchdog&lt;br /&gt;
|-&lt;br /&gt;
|Parada IWantToStop||Reinicia el asterisk y genera un core para pruebas&lt;br /&gt;
|-&lt;br /&gt;
|Reload||Realiza una recarga del Watchdog y aplica cambios en su configuración&lt;br /&gt;
|-&lt;br /&gt;
|Show||Ver el estado del Watchdog&lt;br /&gt;
&lt;br /&gt;
perro avisado=0 activo=1 segsDormir=1 segsInic=60 segsGuarda=30 maxErr=3&lt;br /&gt;
perro        nombre=sip_monitor_udp lwp=[15437] segsInic=60 segsGuarda=30 hace=11 err=0/5&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El dato &amp;quot;hace&amp;quot; informa de cuanto tiempo ha transcurrido desde el último tick. Facilita la calibración del parámetro de configuración &amp;quot;segs_guarda&amp;quot;, normalmente es 30&lt;br /&gt;
&lt;br /&gt;
Tiene un fichero de configuración ubicado en /etc/asterisk/MDcrash.conf&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Sección [perro]&lt;br /&gt;
||activo=yes (Si esta o no activo)&lt;br /&gt;
segs_dormir=1 (Un tick por segundo)&lt;br /&gt;
&lt;br /&gt;
segs_inic=60&lt;br /&gt;
&lt;br /&gt;
segs_guarda=30 &lt;br /&gt;
&lt;br /&gt;
max_errores=3  &lt;br /&gt;
|-&lt;br /&gt;
|Sección [sip_monitor_udp]&lt;br /&gt;
||segs_inic=60&lt;br /&gt;
&lt;br /&gt;
segs_guarda=30 (Cada 30 segundos si no reciba trafico SIP genera core)&lt;br /&gt;
&lt;br /&gt;
max_errores=5 (Número máximo de errores)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Proceso de Backup ====&lt;br /&gt;
Las plataformas '''''VIVA'''''it Call y '''''VIVA'''''it Suite incluyen un script para realizar un proceso de backup.&lt;br /&gt;
&lt;br /&gt;
Se utilizará el script '''backup.sh''', que se encuentra en el directorio '''etc/MDTel'''.&lt;br /&gt;
&lt;br /&gt;
Se ejecuta automaticamente mediante el uso de un cron&lt;br /&gt;
&lt;br /&gt;
'''texto del cron:'''&lt;br /&gt;
&lt;br /&gt;
 SHELL=/bin/sh&lt;br /&gt;
 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin&lt;br /&gt;
 # m h dom mon dow user command&lt;br /&gt;
 0 2 * * * root  /etc/MDtel/backup.sh /etc/MDtel/backup.cfg&lt;br /&gt;
&lt;br /&gt;
Para activar el script hay que descomentar la línea&lt;br /&gt;
 # m h dom mon dow user command&lt;br /&gt;
&lt;br /&gt;
Los directorios de los que se hace copia son:&lt;br /&gt;
* DIR=var/lib/asterisk/sounds/Particular&lt;br /&gt;
* DIR=var/lib/asterisk/moh&lt;br /&gt;
* DIR=etc&lt;br /&gt;
* DIR=etc/asterisk&lt;br /&gt;
* DIR=etc/cron.d&lt;br /&gt;
* DIR=etc/dahdi&lt;br /&gt;
* DIR=etc/exim4&lt;br /&gt;
* DIR=etc/ha.d&lt;br /&gt;
* DIR=etc/logrotate.d&lt;br /&gt;
* DIR=etc/MDtel&lt;br /&gt;
* DIR=etc/mysql&lt;br /&gt;
* DIR=etc/network&lt;br /&gt;
* DIR=etc/zabbix&lt;br /&gt;
* DIR=usr/local/sbin&lt;br /&gt;
&lt;br /&gt;
Por defecto se realiza un backup cada dos horas en la carpeta '''/var/spool/MDtel/backup'''.&lt;br /&gt;
&lt;br /&gt;
Para cambiar la ruta de destino del backup habrá que modificar el fichero backup.sh, en concreto modificar la variable MDTEL.&lt;br /&gt;
&lt;br /&gt;
El fichero ''' backup.cfg''' que se genera incluye copia de la siguiente información:&lt;br /&gt;
* Ficheros de configuración de la aplicación.&lt;br /&gt;
* Base de Datos.&lt;br /&gt;
* Dialplan.&lt;br /&gt;
&lt;br /&gt;
Se guardarán 10 copias del fichero ''' backup.cfg '''&lt;br /&gt;
&lt;br /&gt;
Los campos disponibles en el fichero son los siguientes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Campo !!Descripción !!Posibles valores (si aplica)&lt;br /&gt;
|-&lt;br /&gt;
|IP_BD ||IP o HOST máquina base de datos de tiempo real||&lt;br /&gt;
|-&lt;br /&gt;
|HAY_SMB ||Si hay o no servidor SAMBA||1 si existe servidor SAMBA o 0 si no existe&lt;br /&gt;
|-&lt;br /&gt;
|HOST_SMB||IP o HOST servidor SAMBA||&lt;br /&gt;
|-&lt;br /&gt;
|USU_SMB||Usuario acceso servidor SAMBA||&lt;br /&gt;
|-&lt;br /&gt;
|CLAVE_SMB||Clave usuario acceso servidor SAMBA||&lt;br /&gt;
|-&lt;br /&gt;
|RUTA_SMB||Ruta donde se guardará el backup en el servidor SAMBA||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Para recuperar una plataforma utilizando el backup, habrá que instalar una máquina nueva y cargar los ficheros de configuración, Base de Datos y Dialplan guardados en el proceso de backup.&lt;br /&gt;
&lt;br /&gt;
===== Información adicional: como funciona un cron =====&lt;br /&gt;
&lt;br /&gt;
La información sobre el fucnionamiento de un cron puede encontrarse en: [http://lasegundapuerta.com/index.php/informatica/linux-y-software-libre/1709-comando-cron-en-linux-ubuntu Información sobre el comando cron]&lt;br /&gt;
&lt;br /&gt;
==== CHAT ====&lt;br /&gt;
La información para configurar el CHAT y su funcionamiento puede encontrarse en:&lt;br /&gt;
&lt;br /&gt;
[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#CHAT CHAT]&lt;br /&gt;
&lt;br /&gt;
=== Requerimientos de conectividad ===&lt;br /&gt;
&lt;br /&gt;
El esquema siguiente muestra como ejemplo todos los flujos de información existentes en un entorno típico de &amp;lt;big&amp;gt;'''telefonía corporativa (sin presencia)'''&amp;lt;/big&amp;gt; ('''''VIVA'''''it Call)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Flujos corporativa.png|cebter]]&lt;br /&gt;
&lt;br /&gt;
En el entorno de &amp;lt;big&amp;gt;'''Contact Center'''&amp;lt;/big&amp;gt;, encontramos los siguientes flujos &amp;lt;big&amp;gt;'''entre servicios'''&amp;lt;/big&amp;gt; (comunicaciones entre servidores, ('''''VIVA'''''it Suite)) &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Flujos Contact servicios.png|650px|center]]&lt;br /&gt;
&lt;br /&gt;
y &amp;lt;big&amp;gt;'''entre usuarios y servicios'''&amp;lt;/big&amp;gt; los reflejados a continuación:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Flujos Contact puestos.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Lado A!!Lado B!!Puertos!!Sentido!!Observ.&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor||TCP 5060||A -&amp;gt; B||Señalización SIP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor||UDP 5060||A -&amp;gt; B||Señalización SIP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor||10000 a 20000||A -&amp;gt; B&lt;br /&gt;
B -&amp;gt; A&lt;br /&gt;
||RTP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor TFTP||UDP 69||A -&amp;gt; B&lt;br /&gt;
B -&amp;gt; A&lt;br /&gt;
||Para actualización de terminales por TFTP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor NTP||UDP 123||A -&amp;gt; B||&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Desk||Servidor||TCP 4500||A -&amp;gt; B||Comunicación CTI&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Desk||Servidor||TCP 3306||A -&amp;gt; B||Acceso a Mysql Base de datos&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Desk||Servidor Syslog||UDP 514||A -&amp;gt; B||Para envio de logs de agente&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Supervisor||Servidor||TCP 3306||A -&amp;gt; B||Acceso a Mysql Base de datos&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker||Servidor||TCP 3306||A -&amp;gt; B||Acceso a Mysql Base de datos&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker||Servidor||TCP 8180||A -&amp;gt; B||&lt;br /&gt;
|-&lt;br /&gt;
|Actualizador||Servidor||TCP 80||A -&amp;gt; B||Necesario para actualizaciones de versiones de aplicaciones de agente y supervisores&lt;br /&gt;
|-&lt;br /&gt;
|Portal de administración||Servidor||TCP 8180||A -&amp;gt; B||Acceso al portal de administración '''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker Web||Servidor||TCP 8180||A -&amp;gt; B||&lt;br /&gt;
|-&lt;br /&gt;
|Monitor||Servidor||TCP 8180||A -&amp;gt; B||Wallboard&lt;br /&gt;
|-&lt;br /&gt;
|Monitorización||Servidor||TCP 80||A -&amp;gt; B||Acceso a portal monitorización (Zabbix)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Gateways ===&lt;br /&gt;
El concepto de gateway como tal no existe en la plataforma '''''VIVA'''''it; existen nodos de ACD y nodos de corporativa.&lt;br /&gt;
&lt;br /&gt;
A efectos de operación un nodo de corporativa es el que en cualquier caso asumirá las funcionalidades de gateway, y recibirá las conexiones (analógicas, digitales o IP) a sistemas externos o a la RTC&lt;br /&gt;
&lt;br /&gt;
El concepto gateway queda pues suscrito a entornos meramente comerciales&lt;br /&gt;
&lt;br /&gt;
Incluimos no obstante en este apartado los diagnósticos y operaciones básicos de conexiones a sistemas externos o RTC&lt;br /&gt;
&lt;br /&gt;
Para verificar los enlaces establecidos ejecutamos el siguiente comando en el terminal: '''sip show peers''' &lt;br /&gt;
&lt;br /&gt;
Al ejecutar este comando obtenemos la salida:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Enlace_Exterior.png |center]]&lt;br /&gt;
&lt;br /&gt;
Las columnas ''Host'' y ''Port'' nos muestran las conexiones establecidas y nos informa de un posible problema de conexión. &lt;br /&gt;
&lt;br /&gt;
Sabremos que ''no existe conexión'' cuando la columna Host tiene el valor '''Unspecified''' y en la columna Port aparece un '''0''' , a continuación se muestra un ejemplo:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ejemplo_no_conexion.png |center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#00FF00&amp;quot;&amp;gt;FALTA AQUI DIAGNOSTICOS Y OPERACIONES DE ENLACES EXTERNOS&amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Servidor de grabación === &lt;br /&gt;
==== Almacenamiento en la nube ====&lt;br /&gt;
Almacenamiento en la nube.&lt;br /&gt;
Existe la posibilidad de que tras un determinado periodo de tiempo las grabaciones sean movidas a un almacenamiento externo. De esta operativa se encarga el proceso /usr/local/sbin/mueveGrabaciones.pl que recibe como parámetro la ruta al archivo de configuración. Dicho archivo tiene los siguientes elementos:&lt;br /&gt;
&lt;br /&gt;
*$db: Nombre de la base de datos.&lt;br /&gt;
*$dbHost: servidor de MySQL&lt;br /&gt;
*$dbPort: Puerto del MySQL.&lt;br /&gt;
*$dbUsuario: Usuario de conexión a MySQL.&lt;br /&gt;
*$dbClave: Clave del usuario anterior.&lt;br /&gt;
*$dirBase: Directorio donde residen las grabaciones&lt;br /&gt;
*$diasCaducidad: Dias de antigüedad para mover las grabaciones&lt;br /&gt;
*$sftpHost: Servidor SFTP de destino&lt;br /&gt;
*$sftpPort: Puerto SFTP.&lt;br /&gt;
*$sftpUsuario: Usuario SFTP.&lt;br /&gt;
*$sftpClave: Clave del usuario SFTP.&lt;br /&gt;
*$simula: Si este campo vale 1, las grabaciones se copian, pero no se borran del directorio original, ni se actualiza su ubicación en la base de datos.&lt;br /&gt;
&lt;br /&gt;
La grabación indica donde se encuentra mediante el campo E_UBICACION_GRABACION, que puede tener los siguientes valores:&lt;br /&gt;
*Sin definir (0)&lt;br /&gt;
*En línea (10): Las grabaciones se encuentran en el servidor de grabaciones.&lt;br /&gt;
*Fuera de línea (20): las grabaciones se encuentran en una ubicación externa.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Reporting ===&lt;br /&gt;
La aplicación de reporting en general no tiene procesos habituales de operación y mantenimiento.&lt;br /&gt;
Los informes son obtenidos desde la interfaz gráfica o mediante un procedimiento de scripting, descritos en “Formato de fichero de intercambio para '''''VIVA'''''it Reporting”.&lt;br /&gt;
&lt;br /&gt;
==== Formato de fichero de intercambio para '''''VIVA'''''it Reporting ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Nombre !! Descripción !! Ejemplo&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;| Selección de registros&lt;br /&gt;
|-&lt;br /&gt;
| SQL_selec || Expresión SQL que se añadirá al where a la SQL principal. || C_ORIGEN like '6%' and C_COD_CLIENTE= '023'&lt;br /&gt;
|-&lt;br /&gt;
| SQL_select_leido || Filtro de selección legible&lt;br /&gt;
 || Skill igual a 60310&lt;br /&gt;
|-&lt;br /&gt;
| SQL_orden || Lista de campos por los que se ordenará, después de los que estén ya definidos en la plantilla. || C_ORIGEN, C_COD_CLIENTE&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Salida&lt;br /&gt;
|-&lt;br /&gt;
| FIC_extension || Extensión de fichero de salida: PDF, XLSX, CSV || PDF&lt;br /&gt;
|-&lt;br /&gt;
| FIC_tipo_entrega || 'P': Pantalla, 'D': Directorio, 'C': Correo || D&lt;br /&gt;
|-&lt;br /&gt;
| FIC_destino || Si 'C', dirección de correo, si 'D', ruta del directorio || D:\informes\&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Plantilla&lt;br /&gt;
|-&lt;br /&gt;
| INF_modelo || Ruta del fichero de plantilla || C:\Modelos\llamadas.rep&lt;br /&gt;
|-&lt;br /&gt;
| INF_descripción || Descripción del informe || Informe detallado de llamadas&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Base de datos&lt;br /&gt;
|-&lt;br /&gt;
| BD_ip || IP o nombre de máquina || &lt;br /&gt;
|-&lt;br /&gt;
| BD_puerto || Puerto de MySQL || &lt;br /&gt;
|-&lt;br /&gt;
| BD_base_datos || Nombre de base de datos || &lt;br /&gt;
|-&lt;br /&gt;
| BD_usuario || Usuario de base de datos || &lt;br /&gt;
|-&lt;br /&gt;
| BD_clave || Clave de acceso cifrada || &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Parámetros&lt;br /&gt;
|-&lt;br /&gt;
| PAR_desde_vis || Fecha inicial de selección en formato legible (o '-' si no hay) || 01/01/2016&lt;br /&gt;
|-&lt;br /&gt;
| PAR_hasta_vis || Fecha final de selección en formato legible (o '-' si no hay) || 31/01/2016&lt;br /&gt;
|-&lt;br /&gt;
| PAR_01 || Parámetro opcional || &lt;br /&gt;
|-&lt;br /&gt;
| .. || .. || &lt;br /&gt;
|-&lt;br /&gt;
| PAR_20 || Parámetro opcional || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El fichero tendrá un nombre único para permitir la generación simultánea de informes.&lt;br /&gt;
El fichero es borrado por la aplicación de forma automática.&lt;br /&gt;
Se pasa a la aplicación de generación de informes como parámetro. Por ejemplo:&lt;br /&gt;
 “C:\Archivos de Programa\MDtel\Nimitz\LanzaInformes\LanzaInformes.exe”&lt;br /&gt;
 “C:\Archivos de Programa\MDtel\Nimitz\LanzaInformes\NIM00001.tmp”&lt;br /&gt;
&lt;br /&gt;
Ejemplo de fichero:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| SQL_selec=(DAT_ACUMULADOS_COLAS.ID_COLA in (11))&lt;br /&gt;
&lt;br /&gt;
SQL_select_leido=Skill igual a 60310&lt;br /&gt;
&lt;br /&gt;
SQL_orden=&lt;br /&gt;
FIC_extension=pdf&lt;br /&gt;
&lt;br /&gt;
FIC_tipo_entrega=P&lt;br /&gt;
&lt;br /&gt;
FIC_destino=C:\&lt;br /&gt;
&lt;br /&gt;
INF_modelo=skill_setsi.rep&lt;br /&gt;
&lt;br /&gt;
INF_descripcion=Skill. SETSI&lt;br /&gt;
&lt;br /&gt;
BD_ip=172.25.1.2&lt;br /&gt;
&lt;br /&gt;
BD_puerto=3306&lt;br /&gt;
&lt;br /&gt;
BD_base_datos=nimitz&lt;br /&gt;
&lt;br /&gt;
BD_usuario=nimitz&lt;br /&gt;
&lt;br /&gt;
BD_clave=UIk5jNY9PVX5ogg=&lt;br /&gt;
&lt;br /&gt;
PAR_desde_vis=-&lt;br /&gt;
&lt;br /&gt;
PAR_hasta_vis=-&lt;br /&gt;
&lt;br /&gt;
PAR_01=&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Resumen de significado de columnas en reporting histórico ====&lt;br /&gt;
Esta información se puede consultar en el siguiente enlace:&lt;br /&gt;
&lt;br /&gt;
http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Documentacion_de_usuario_VIVAit_Suite_3.3#Resumen_del_valor_de_las_columnas_que_aparecen_en_los_informes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===== Agente,asistencia diaria y agente. Asistencia diaria del grupo =====&lt;br /&gt;
&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo de llamado:''' Tiempo de ring en llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo disponible:''' Tiempo que el agente estuvo conectado y no está&lt;br /&gt;
incluido en ninguno de los anteriores.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas transferidas:''' Número de llamadas ACD que fueron&lt;br /&gt;
transferidas por el agente.&lt;br /&gt;
&lt;br /&gt;
===== Agente. Aux y Grupo Aux =====&lt;br /&gt;
&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Desglose de tiempos AUX:''' Tiempo que el agente estuvo en cada uno&lt;br /&gt;
de los motivos de pausa.&lt;br /&gt;
&lt;br /&gt;
===== Agente. Resumen diario =====&lt;br /&gt;
&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo de llamado:''' Tiempo de ring en llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo disponible:''' Tiempo que el agente estuvo conectado y no está&lt;br /&gt;
incluido en ninguno de los anteriores.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas entrada Ext:''' Número de llamadas entrantes NO ACD a la&lt;br /&gt;
extensión.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas salida Ext:''' Número de llamadas salientes NO ACD desde la&lt;br /&gt;
extensión.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas transferidas:''' Número de llamadas ACD que fueron&lt;br /&gt;
transferidas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas retenidas:''' Número de retenciones que sufrieron las&lt;br /&gt;
llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACD:''' Tiempo ACD/ Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACW:''' TiempoACW/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio de entrada a la Ext:''' Tiempo entrada Ext/&lt;br /&gt;
Llamadas entrada Ext.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio de salida a la Ext:''' Tiempo salida Ext/ Llamadas&lt;br /&gt;
salida Ext.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio retención:''' Tiempo retención/Llamadas retenidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % Ocupación con ACW:''' ((Tiempo ACD+ Tiempo retención+ Tiempo&lt;br /&gt;
ACW)/Tiempo con personal)* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % Ocupación sin ACW:''' ((Tiempo ACD+ Tiempo retención)/Tiempo&lt;br /&gt;
con personal)* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % disp.:''' (Tiempo disponible/Tiempo conectado)* 100.&lt;br /&gt;
&lt;br /&gt;
===== Agente. Grupo ACD diario =====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención de un grupo&lt;br /&gt;
ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Ayuda:''' Número de llamadas contestadas por el agente que necesitaron&lt;br /&gt;
de consulta de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas retenidas:''' Número de retenciones que el agente realizó&lt;br /&gt;
sobre las llamadas de ese grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas por&lt;br /&gt;
el agente en ese grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Trans. salida:''' Llamadas que finalizan con una transferencia.&lt;br /&gt;
&lt;br /&gt;
===== Grupo ACD. Reporte diario con AHT =====&lt;br /&gt;
&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACD:''' Tiempo ACD/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACW:''' Tiempo ACW/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención de un grupo&lt;br /&gt;
ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente de un grupo ACD.&lt;br /&gt;
'''• Tiempo de llamado:''' Tiempo de ring en llamadas ACD de un grupo&lt;br /&gt;
ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo disponible:''' Tiempo que el agente estuvo conectado y no está&lt;br /&gt;
incluido en ninguno de los anteriores.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Ayuda:''' Número de llamadas ACD contestadas por el agente en las que&lt;br /&gt;
necesito hacer uso de la consulta.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas retenidas:''' Número de retenciones que el agente realizó&lt;br /&gt;
sobre las llamadas ACD contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas contestadas ACD&lt;br /&gt;
estuvieron retenidas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Trans. salida:''' Número de llamadas ACD que fueron transferidas por el&lt;br /&gt;
agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• AHT:''' (Tiempo ACD+ Tiempo ACW+ Tiempo retención)/Llamadas&lt;br /&gt;
ACD.(Average Handle Time)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Grupo ACD. QOS  =====&lt;br /&gt;
&lt;br /&gt;
'''• Vel. prom. de resp.:''' Tiempo total de espera de llamadas antes de ser&lt;br /&gt;
atendidas/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo prom. de aban.:''' Tiempo abandonadas(tiempo que las&lt;br /&gt;
llamadas abandonadas estuvieron en el grupo ACD)/Llamadas&lt;br /&gt;
abandonadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ofrecidas:''' Número de llamadas entrantes al grupo&lt;br /&gt;
ACD(Llamadas ACD+ Abandonadas+ Desbordadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas contestadas por los agentes.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas abandonadas:''' Número de llamadas colgadas por el cliente&lt;br /&gt;
en el grupo ACD antes de ser contestadas o desbordadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Desconectadas por ACD:''' Número de llamadas desbordadas que al&lt;br /&gt;
salir del grupo ACD se cuelgan.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Desbordadas por ACD:''' Número total de llamadas desbordadas(incluye&lt;br /&gt;
las desconectadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas atendidas en &amp;lt; 20s:'''Número de llamadas contestadas con&lt;br /&gt;
tiempo de respuesta menor a 20 segundos.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo total de espera:''' Tiempo total que las llamadas estuvieron&lt;br /&gt;
esperando antes de ser atendidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % N.A.:''' Llamadas ACD/(Llamadas ACD+ Llamadas abandonadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % N.D.S.:''' (Llamadas atendidas en &amp;lt; 20s/Llamadas ofrecidas)* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• T.M.O:''' (Tiempo ACD+ Tiempo ACW+ Tiempo retención)/Llamadas&lt;br /&gt;
ACD.(Tiempo Medio Operación)&lt;br /&gt;
&lt;br /&gt;
===== Informe conducción (VDN Conducción) =====&lt;br /&gt;
&lt;br /&gt;
'''•Entrantes al grupo ACD:''' Número de llamadas ofrecidas al grupo&lt;br /&gt;
ACD(Contestadas+ Abandonadas+ Desbordadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Llamadas contestadas:''' Número de llamadas contestadas por un agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Contestadas NDS:''' Número de llamadas contestadas en nivel de servicio,&lt;br /&gt;
tiempo de respuesta&amp;lt; 20 segundos.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Abandonadas:''' Número de llamadas abandonadas, colgadas por el cliente&lt;br /&gt;
antes de ser contestadas por un agente o desbordadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Desconectadas:''' Número de llamadas desbordadas que fueron colgadas al&lt;br /&gt;
salir del grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Desbordadas:''' Número total de llamadas desbordadas (incluye desconectadas)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Llamadas retenidas:''' Número de retenciones que el agente realizó sobre las&lt;br /&gt;
llamadas ACD contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•% N.A.:''' (Llamadas contestadas/(Llamadas contestadas+ Abandonadas+&lt;br /&gt;
Desbordadas))* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•% N.D.S.:''' (Contestadas NDS/(Llamadas contestadas+ Abandonadas + Desbordadas))*100&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•% Abandonadas:''' (Abandonadas/(Llamadas contestadas+ Abandonadas+ Desbordadas))* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. RING:''' Tiempo de ring en llamadas ACD(entrantes).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•ACDTIME:''' Tiempo de conversación ACD de las llamadas contestadas o&lt;br /&gt;
realizadas por el agente excluido el tiempo de retención de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. ACW:''' Tiempo dedicado por el agente a tareas administrativas tras&lt;br /&gt;
finalizar las llamadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum HOLD:''' Tiempo que las llamadas contestadas ACD estuvieron retenidas&lt;br /&gt;
por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. OTHER:''' Tiempo total que las llamadas estuvieron esperando en el&lt;br /&gt;
grupo ACD antes de ser atendidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. AVAIL:''' Acum. STAFF- (ACDTIME+ Acum. ACW+ Acum. RING+ Acum.&lt;br /&gt;
HOLD+ Acum. AUX).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. Staff:''' Suma del Tiempo conectado de todos los agentes al grupo&lt;br /&gt;
ACD(Este tiempo se repercute en todos los grupos ACD a los que esta&lt;br /&gt;
conectado el agente).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. AUX:''' Suma del Tiempo en pausa de todos los agentes que estén&lt;br /&gt;
conectados al grupo ACD(Este tiempo se repercute en todos los grupos ACD a&lt;br /&gt;
los que esta conectado el agente).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Prom. ACD:''' ACDTIME/Llamadas contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Prom. ACW:''' Acum. ACW/Llamadas contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Prom. HOLD:''' Acum. HOLD/Llamadas retenidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•AHT:''' (ACDTIME+ Acum. ACW+ Acum. HOLD)/Llamadas contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Vel. prom. de resp.:''' Tiempo total de espera de llamadas antes de ser&lt;br /&gt;
atendidas/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Tiempo máx. de espera:''' Tiempo de la llamada que estuvo mas tiempo en el&lt;br /&gt;
grupo ACD hasta que fue atendida.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Agentes en PH:''' (Acum. Staff- Acum. AUX)/1800(Agentes conectados que no&lt;br /&gt;
están en pausa en el intervalo).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Agentes Staff:''' Acum. Staff/1800(Agentes conectados en el intervalo)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Desglose de tiempos AUX:''' Tiempo que el agente estuvo en cada uno de los&lt;br /&gt;
motivos de pausa.&lt;br /&gt;
&lt;br /&gt;
===== Informe de producción =====&lt;br /&gt;
&lt;br /&gt;
'''• LL. ACD:'''Número de llamadas contestadas por ese agente para ese&lt;br /&gt;
grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. HOLD:''' Número de retenciones efectuadas para las llamadas&lt;br /&gt;
contestadas en ese grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Redir.:''' Número de llamadas no contestadas por un agente que&lt;br /&gt;
fueron redirigidas de nuevo a la cola.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. No colgadas cliente:''' Número de llamadas que terminaron sin el&lt;br /&gt;
colgado del cliente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Aband.:''' Número de llamadas abandonadas en ese grupo ACD, este&lt;br /&gt;
valor es independiente del agente por tanto se repite el valor para todos&lt;br /&gt;
los agentes en un mismo grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Transfer.:''' Número de llamadas ACD que fueron transferidas por el&lt;br /&gt;
agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Conf:''' Número de llamadas ACD en las que el agente estableció&lt;br /&gt;
conferencia.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• S. Extensión:''' Número de llamadas salientes de extensión, este valor es&lt;br /&gt;
independiente del grupo ACD se repite el valor para todos los grupos&lt;br /&gt;
ACD en los que está conectado el agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. Staff:''' Tiempo que el agente estuvo conectado al grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. RING:''' Tiempo de ring en las llamadas ACD(entrantes) que&lt;br /&gt;
fueron contestadas por el agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. ACD:''' Tiempo de conversación de las llamadas ACD(entrantes)&lt;br /&gt;
que fueron contestadas por el agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas que fueron contestadas por él.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum HOLD:''' Tiempo que las llamadas ACD(entrantes) para ese grupo&lt;br /&gt;
ACD que fueron contestadas por el agente estuvieron retenidas.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. AVAIL:''' Acum. STAFF- (Acum. ACD+ Acum. ACW+ Acum. RING+&lt;br /&gt;
Acum. HOLD+ Acum. AUX)..&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. AUX:''' Tiempo que el agente estuvo en pausa este valor es&lt;br /&gt;
independiente del grupo ACD se repite el valor para todos los grupos&lt;br /&gt;
ACD en los que está conectado el agente..&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Desgloses de tiempos AUX, tiempo AUX por cada uno de los&lt;br /&gt;
motivos.''' este valor es independiente del grupo ACD se repite el valor&lt;br /&gt;
para todos los grupos ACD en los que está conectado el agente.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Consideraciones adicionales =====&lt;br /&gt;
&lt;br /&gt;
Los tiempos se insertan en el intervalo en el que se deja ese &amp;quot;estado&amp;quot;, esto provoca que en un intervalo pueda ser mayor el tiempo ACD que el tiempo conectado.&lt;br /&gt;
&lt;br /&gt;
''* Ejemplo:''&lt;br /&gt;
&lt;br /&gt;
 -Llamada: Duración 15 minutos Hora fin de la llamada 13:01&lt;br /&gt;
 -Llamada: Duración 20 minutos Hora fin de la llamada 13:24&lt;br /&gt;
 Suma de las duraciones de las llamadas para el intervalo ''35 minutos'' tiempo&lt;br /&gt;
 conectado del agente en el intervalo ''30 minutos.''&lt;br /&gt;
 Cuando los periodos consultados sean mas amplios (diario, mensual) los&lt;br /&gt;
 desfases tenderán a desaparecer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Otros Diagnósticos y operaciones básicas ==&lt;br /&gt;
=== Arranque y apagado de la plataforma ===&lt;br /&gt;
&lt;br /&gt;
En general el arranque y apagado de cada nodo de una plataforma '''''VIVA'''''it es el estándar de un procedimiento ordenado de apagado en una máquina linux: '''&amp;quot;Shutdown -h now&amp;quot;''' o comando de apagado inmediato o programado equivalente&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El orden de arranque de la plataforma deberá ser:&lt;br /&gt;
# En primer lugar arrancar el nodo con la base de datos de tiempo real&lt;br /&gt;
# Una vez finalizado el arranque del punto 1, arrancar el nodo con la base de datos de réplica&lt;br /&gt;
# Una vez finalizado el arranque del punto 2, arrancar el resto de nodos en cualquier orden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Al respecto del orden de apagado de nodos, es el siguiente:&lt;br /&gt;
# En primer lugar se apagarán, en cualquier orden, los nodos que NO CONTENGAN bases de datos de tiempo real ni bases de datos de réplica&lt;br /&gt;
# Una vez apagados totalmente todos los nodos del punto 1, apagaremos el nodo (o nodos) con bases de datos de réplica&lt;br /&gt;
# Una vez apagados totalmente todos los nodos del punto 2, se apagará el nodo con la base de datos de tiempo real&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== Nivel matriz de conmutación ===&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Grabación ===&lt;br /&gt;
&lt;br /&gt;
==== Configuración de la grabación en la plataforma corporativa ====&lt;br /&gt;
Para que una llamada se grabe, lo primero de todo es que  alguien tenga la capacidad de grabar. Esto se consigue diciendo al nodo que sea grabador. Esto provoca que el nodo llame al mixmonitor para grabar y se inserte un registro en el DAT_GRABACIONES. Esto no significa que ya las llamadas se vayan a grabar, ya que para eso tiene que ser procesadas por un nodo que sea grabador. Hay tres, llamémosle elementos, que se pueden grabar:&lt;br /&gt;
&lt;br /&gt;
* El nodo, es decir todo lo que el nodo enrute&lt;br /&gt;
* Prerutas&lt;br /&gt;
* Objetos: que son las extensiones, usuarios, grupos corporativos, etc.&lt;br /&gt;
&lt;br /&gt;
Tenemos tres formas de grabar:&lt;br /&gt;
&lt;br /&gt;
* Grabar con beep periódico&lt;br /&gt;
* Grabar sin beep periódico&lt;br /&gt;
* Descartar grabación&lt;br /&gt;
&lt;br /&gt;
Si de los tres elementos tenemos que uno grabe, ya sea con o sin beep periódico, esa llamada se va a grabar ya que son OR, en cuanto haya un elemento que diga que grabe se va a grabar.&lt;br /&gt;
&lt;br /&gt;
Al igual pasa si tenemos que un elemento tenga descartar la grabación. La grabación no se inicia.&lt;br /&gt;
&lt;br /&gt;
Referente al campo de Modo de grabación en infraestructura, este no se emplea para la grabación de corporativo, sino que solo tiene validez en ACD. Para grabación en el ACD hay que, como se ha dicho anteriormente poner un nodo que sea grabador y especificar un elemento de los tres que hay cual es el que se va a grabar.&lt;br /&gt;
&lt;br /&gt;
Para que exista una grabación ha de existir un segmento asociado a esta. Los segmentos se tratan en las prerutas. Hay un campo es las prerutas que es Generar segmento al enrutar. Si está se generará el segmento del tipo de la preruta y su correspondiente grabación si esta está configurada. Si le decimos que no genere segmentos al enrutar y el sistema está configurado para que grabe, el recordCentral creará un tipo de segmento llamado externo para esa grabación. Podemos configurar si queremos que se cree o no ese segmento, para eso hay que modificar el fichero de configuración del recordCentral y poner un tiempo muy alto al campo $segmExternoMinSegs. También podemos configurar que segmentos queremos que se graben. Por defecto el recordCentral va configurado para que se graben todos los segmentos. Para decirle que solo grabe cierto tipo de segmentos hay que ponerlos los que queramos que si se graben en la variable $tiposSegmentoGrabar del fichero de configuración del recordCentral.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que el servidor de grabación esta activo ====&lt;br /&gt;
&lt;br /&gt;
Si al ejecutar el comando '''''nc ip_maquina 1114''''',si no se recibe ninguna respuesta, significa el servidor de grabación no estaría activo. &lt;br /&gt;
También usando el comando ''''' ps aux | grep recordCentral ''''', donde si no escribe ningún resultado implica que tampoco esta activo.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que los nodos están conectados al servidor de grabación ====&lt;br /&gt;
&lt;br /&gt;
Debemos fijarnos en la linea de respuesta del comando '''''nc ip_maquina 1114''''', que seria:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| root@smadavacdrecord1:~# nc localhost 1114&lt;br /&gt;
recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423&lt;br /&gt;
160112'&lt;br /&gt;
&lt;br /&gt;
recordCentral MYSQL cnx=1&lt;br /&gt;
&lt;br /&gt;
recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
&lt;br /&gt;
recordCenral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
&lt;br /&gt;
'''recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10''''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el parámetro &amp;quot;fase=0&amp;quot; es el numero que identifica el recordCentral, los demás parámetros nos indicaran los nodos disponibles , que funcionan o no en el servidor. Entonces &amp;quot;gestión=4,6,7,8,9,10&amp;quot; indica el id de los nodos que maneja el proceso.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que un nodo tiene activo el agente de grabación ====&lt;br /&gt;
Si al ejecutar el comando '''''nc ip_maquina 1113''''', no se recibe ninguna respuesta, significa que el nodo no tiene activo el agente de grabación.&lt;br /&gt;
También usando el comando ''''' ps aux | grep recordNodo''''', donde si no escribe ningun resultado implica que tampoco esta activo.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que un nodo está subiendo archivos de grabación al servidor ====&lt;br /&gt;
Debemos fijarnos en la linea de respuesta del comando '''''nc ip_maquina 1114''''', que seria:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| root@smadavacdrecord1:~# nc localhost 1114&lt;br /&gt;
recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423&lt;br /&gt;
160112'&lt;br /&gt;
&lt;br /&gt;
recordCentral MYSQL cnx=1&lt;br /&gt;
&lt;br /&gt;
recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
&lt;br /&gt;
recordCenral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
&lt;br /&gt;
'''recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10''''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Fijándonos en &amp;quot;descarga=8,6,4,7,10,9&amp;quot; nos confirma que todos los nodos que maneja el proceso funcionan perfectamente y el servidor puede manejar las grabaciones.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de grabaciones que se hayan quedado enganchadas en un nodo ====&lt;br /&gt;
Podemos fijarnos en los dos comandos, para '''''nc ip_maquina 1114''''':&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| root@smadavacdrecord1:~# nc localhost 1114&lt;br /&gt;
recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423&lt;br /&gt;
160112'&lt;br /&gt;
&lt;br /&gt;
recordCentral MYSQL cnx=1&lt;br /&gt;
&lt;br /&gt;
recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
&lt;br /&gt;
recordCenral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
&lt;br /&gt;
'''recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10''''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Fijándonos en el campo &amp;quot;cuarentena=''&amp;quot; indica que ninguno de los nodos tiene problemas.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación del estado de ocupación del almacenamiento temporal de grabaciones en un nodo. ====&lt;br /&gt;
&lt;br /&gt;
Desde un SSH ejecuta el comando '''''df - h''''' en la maquina donde creamos que debe estar ejecutando el proceso recordNod:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Filesystem !! Size !! Used !! Avail !! Use% !! Mounted on&lt;br /&gt;
|-&lt;br /&gt;
| udev || 486M || 4,0K || 486M || 1,00% || /dev&lt;br /&gt;
|-&lt;br /&gt;
| tmpfs || 100M || 416K || 99M || 1,00% || /run&lt;br /&gt;
|-&lt;br /&gt;
| '''/dev/vda1''' ||''' 236M''' ||''' 68M''' ||''' 156M''' ||''' 31,00% '''||''' /boot'''&lt;br /&gt;
|-&lt;br /&gt;
| tmpfs || 100M || 48K || 100M || 1,00% || /var/spool/asterisk/monitor&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Nos fijaríamos en la línea marcada en negrita, el campo &amp;quot;Use%&amp;quot; indicara el porcentaje de almacenamiento temporal de grabaciones en un nodo.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Escuchas e intrusiones en asterisk===&lt;br /&gt;
'''CallSpy''' es una aplicación elaborada para asterisk que permite a un usuario realizar escuchas e &lt;br /&gt;
intrusiones en llamadas. &lt;br /&gt;
En realidad tenemos dos aplicaciones en asterisk, CallSpy y CallSpyee. &lt;br /&gt;
====CallSpy ====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 '''Nota:''' Como mucho se pueden tener a dieciséis personas al mismo tiempo usando esta aplicación. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como hemos mencionado anteriormente, esta aplicación permite la escucha de llamadas y, &lt;br /&gt;
opcionalmente, realiza la función de intrusión. Tiene tres opciones de configuración obligatorios &lt;br /&gt;
que mostramos a continuación: &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 CallSpy(&amp;lt;tipoEspiado&amp;gt;,&amp;lt;expRegEspiado&amp;gt;,&amp;lt;parametrosConf&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
La opción '''&amp;lt;tipoEspiado&amp;gt;''' se refiere a que tipo de objeto que podemos espiar correspondiente, solo debe elegirse un único tipo: &lt;br /&gt;
*'''c:''' escuchar una cola&lt;br /&gt;
*'''v:''' escuchar un vdn &lt;br /&gt;
*'''a:''' escuchar a un agente &lt;br /&gt;
*'''e:''' escuchar extensión &lt;br /&gt;
La opción '''&amp;lt;expRegEspiado&amp;gt;''' representa el número de la cola, VDN, agente o extensión que queremos escuchar. Tiene que ser una expresión regular. &lt;br /&gt;
La opción '''&amp;lt;parametrosConf&amp;gt;''' se refiera a los parámetros de configuración para la llamada que podemos espiar, se pueden combinar o juntar : &lt;br /&gt;
*'''q:''' Desactiva el 'beep' al comienzo de cada nueva llamada. &lt;br /&gt;
*'''v([value]):''' Ajusta el volumen en el rango -4 a 4 (más alto, mas volumen). &lt;br /&gt;
*'''e:''' Habilita el que se pueda cambiar a otra llamada de la misma extensión. &lt;br /&gt;
*'''w:''' Habilita el que se pueda activar la intrusión (whisper).&lt;br /&gt;
Una vez iniciada la escucha, solo falta que entre una llamada al objetivo que estemos espiando. Al &lt;br /&gt;
iniciar la escucha, se puede hacer lo siguiente: &lt;br /&gt;
*Pulsando '''#''' modifica el volumen de escucha. &lt;br /&gt;
*Pulsando '''*''' cambia a una nueva llamada. &lt;br /&gt;
*Pulsando '''1''' si esta habilitado, cambia a otra llamada de la misma extensión. &lt;br /&gt;
*Pulsando '''2''' si esta habilitado, inicia la función de intrusión. &lt;br /&gt;
*Pulsando '''3''' desactiva la función de intrusión. &lt;br /&gt;
====CallSpyee (espiado)====&lt;br /&gt;
Mediante esta aplicación indicamos los parámetros que permite a una llamada ser seleccionada para &lt;br /&gt;
escuchar. Las opciones de configuración son: &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 CallSpyee([CID_NUM],[cola],[vdn],[agen],[exten]) &lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:'''No son parámetros obligatorios, por lo que no hace falta rellenar todos los campos pero si respetar sus posiciones separadas por comas.&amp;lt;small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
La explicación de los parámetros es la siguiente:&lt;br /&gt;
*'''CID_NUM:''' representa el call ID de la llamadas &lt;br /&gt;
*'''cola:'''representa el número de la cola que se quiere espiar (${QUEUE} ).&lt;br /&gt;
*'''vdn:'''   representa el número del VDN que se quiere espiar (${VDN} ).&lt;br /&gt;
*'''agen:''' representa el número del agente que se quiere espiar.&lt;br /&gt;
*'''exten:''' representa el número de la extensión que se quiere espiar (${EXTENSION}) .&lt;br /&gt;
&lt;br /&gt;
Por ejemplo si queremos escuchar todas las llamadas en las que participa una extensión determinada pondremos en la macro de extensiones: &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,,,${EXTENSION}) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Cambios para el dialplan de asterisk==== &lt;br /&gt;
El funcionamiento de este tipo de servicio conlleva un cambio en el dialplan de asterisk. En cada macro correspondiente se pondrá los diferentes CallSpyee para VDN, colas  , extensiones y agentes. &lt;br /&gt;
Pasos a seguir: &lt;br /&gt;
*Paso 1. Creación de un código de intrusión para cada tipo según necesidad (cola, VDN, agente y &lt;br /&gt;
extensión). &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Ejemplo '''MD'''tel:  declaramos como código de intrusión a Agente *44*NUMERO &lt;br /&gt;
 ;========================================== &lt;br /&gt;
 ;======== Intrusion a Agente &lt;br /&gt;
 ;========================================== &lt;br /&gt;
 exten =&amp;gt; _*44*X.,1,set(CadMarcar=intrusionEspiado) &lt;br /&gt;
 exten =&amp;gt; _*44*X.,n,set(DesL=SERVICIO) &lt;br /&gt;
 exten =&amp;gt; _*44*X.,n,set(datoServicio=^${EXTEN:4}) &lt;br /&gt;
 exten =&amp;gt; _*44*X.,n,Goto(finMacro,1) &lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' En la tercera línea podemos observar la expresión regular que se le pasara al CallSpy correspondiente con el número marcado por el espia. &amp;lt;small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*Paso 2.Llamar a CallSpy con la configuración deseada.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Ejemplo '''MD'''tel:  llamada a CallSpy especificando que vamos a espiar una cola (la c del primer parámetro, con la&lt;br /&gt;
 extensión introducida en el código de intrusión y con whisper, es decir, función de intrusión habilitada. &lt;br /&gt;
 ;------------------------------------------------------------------------ &lt;br /&gt;
 ; Intrusion a Espiado &lt;br /&gt;
 ;------------------------------------------------------------------------ &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,1,NoOp &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,n,GotoIf($[&amp;quot;${datoServicio}&amp;quot;=&amp;quot;&amp;quot;]?colgar) &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,n,CallSpy(c,${datoServicio},w) &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,n(colgar),Hangup &lt;br /&gt;
|}&lt;br /&gt;
* Paso 3. Llamar a CallSpyee con la configuración de las llamadas candidatas a ser escuchadas.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Ejemplo '''MD'''tel: &lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,,,,${EXTENSION}) → Para extensiones &lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,${QUEUE},,,) → Llamadas espiadas por cola &lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,,${VDN},,) → Llamadas espiadas por VDN &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Calendarios ===&lt;br /&gt;
&lt;br /&gt;
Para la configuración de los Calendarios se hace uso de '''CalDAV''', estándar de Internet que permite a un cliente acceder a información de planificación en un servidor remoto. Permite que varios clientes accedan a la misma información, facilitando la cooperación. Muchas aplicaciones, tanto clientes como servidores, son compatibles con este protocolo.&lt;br /&gt;
&lt;br /&gt;
Si deseamos crear un calendario en la plataforma '''VIVAit''' podemos hacerlo siguiendo el  siguiente enlace:  &lt;br /&gt;
Para comprobar que el servidor de calendarios funciona correctamente bastaría con cargar en la barra de direcciones la siguiente url: [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Calendarios |Calendarios]]&lt;br /&gt;
&lt;br /&gt;
http://${NODO.HOST}/dav/html/cal.php/calendars/${DAV.CUENTA}/${DAV.CALENDARIO}&lt;br /&gt;
&lt;br /&gt;
donde,&lt;br /&gt;
&lt;br /&gt;
* '''NODO.HOST:''' es la ip del servidor calendar&lt;br /&gt;
* '''DAV.CUENTA:''' hace referencia a la cuenta de usuario&lt;br /&gt;
* '''DAV.CALENDARIO:''' hace referencia el nombre de la cuenta&lt;br /&gt;
&lt;br /&gt;
Una vez que se carga la url sabremos que el servidor funciona correctamente si visualizamos lo siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla de 2016-07-21 12_43_58.png || 1020px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si el sistema nos pide usuario y clave querrá decir que el servidor de calendarios está operativo en esa maquina&lt;br /&gt;
&lt;br /&gt;
Para comprobar que funciona en la consola de asterisk usaremos los comandos &lt;br /&gt;
 calendar show calendars&lt;br /&gt;
 calendar show calendar [nombreCalendario]&lt;br /&gt;
&lt;br /&gt;
 '''Nota:''' Debido bugs detectados, el proceso requerirá:&lt;br /&gt;
       - La realización de una sincronización manual de la sección &amp;quot;mdcal&amp;quot; desde el portal de administración&lt;br /&gt;
       - Añadir la línea '''''#include &amp;quot;/etc/asterisk/mdcal.conf&amp;quot;''''' en el fichero calendars.conf y hacer &amp;quot;reload&amp;quot; de asterisk&lt;br /&gt;
       - En la máquina donde esté instalado el servidor de calendarios apuntar a la IP de la BDTR (/var/www/dav/config.php)&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Syslog de agentes ===&lt;br /&gt;
'''''Syslog''''' es un estándar para el envío de mensajes de registro en una red informática IP. Por '''''Syslog''''' se conoce tanto al protocolo de red como a la aplicación o biblioteca que envía los mensajes de registro. Se lanza automáticamente al arrancar un sistema Unix, y es el encargado de guardar informes sobre el funcionamiento de la máquina (eventos, seguridad del sistema, etc) pero puede contener también cualquier información como mensajes de las diferentes partes del sistema (núcleo, programas...) y los envía y/o almacena en diferentes localizaciones transmitiéndose mediante un puerto UDP. Esto permite concentrar los registros de múltiples máquinas en un único punto simplificando la labor de gestión al administrador siendo habitual que múltiples dispositivos lo soporten.&lt;br /&gt;
&lt;br /&gt;
El formato del mensaje se compone de tres campos :&lt;br /&gt;
&lt;br /&gt;
* La cabecera contiene la prioridad, fecha y hora del mensaje, máquina, proceso (nombre e identificador) que lo ha generado y la versión del protocolo utilizado.&lt;br /&gt;
* Una serie de pares clave-valor con metadatos.&lt;br /&gt;
* El texto del mensaje.&lt;br /&gt;
&lt;br /&gt;
Si es necesario podemos activar el registro de todos los eventos telefónicos que realiza un agente ACD llamado '''Syslog de agentes'''. Su activación se realiza mediante el '''portal de administración ''VIVA''it'''  configurando unos parámetros para un usuario llamado ''Rastreo BBDD&amp;quot; y ''Rastreo Syslog''. Para más información[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Pesta.C3.B1a_ACD | ver sección  Portal de administración - General - Usuarios - Pestaña ACD  ]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot;  align=&amp;quot;top&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot; |&amp;lt;big&amp;gt;'''Elemento'''&amp;lt;/big&amp;gt; &lt;br /&gt;
|align=&amp;quot;center&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot; | &amp;lt;big&amp;gt;'''Procedimiento'''&amp;lt;/big&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Operacion&lt;br /&gt;
|-&lt;br /&gt;
|Ubicación del proceso||Script arranque: /etc/init/ rsyslog.conf&lt;br /&gt;
Configuración :&lt;br /&gt;
/etc/rsyslog.d/30-vivait-&lt;br /&gt;
desk.conf&lt;br /&gt;
|-&lt;br /&gt;
|Arranque||service rsyslog start&lt;br /&gt;
|-&lt;br /&gt;
|Parada||service rsyslog stop&lt;br /&gt;
|-&lt;br /&gt;
|Reinicio||service rsyslog reload&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Diagnostico&lt;br /&gt;
|-&lt;br /&gt;
|Registro de logs||/var/log/MDtel/vivait-desk.log&lt;br /&gt;
Fichero del día actual. se guardan los 30&lt;br /&gt;
anteriores comprimidos en tar.g&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Generación de un Core ===&lt;br /&gt;
Un Core es la memoria de un programa.&lt;br /&gt;
&lt;br /&gt;
Para generar un Core rápido con Asterisk hay que hacer lo siguiente:&lt;br /&gt;
&lt;br /&gt;
    Ejecutar ps aux | grep asterisk y coger el PID del programa&lt;br /&gt;
    gdb /usr/sbin/asterisk [PID]&lt;br /&gt;
    gcore [file]&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==Funcionalidades específicas ==&lt;br /&gt;
=== Mecanismo de prioridad adaptativa ===&lt;br /&gt;
&lt;br /&gt;
El mecanismo de prioridad adaptativa permite en una plataforma '''''VIVA'''''it Suite establecer prioridades en las que se tenga en cuenta el tiempo de espera de las llamadas en cola, proporcionando una alternativa al mecanismo de prioridad absoluta que existe por defecto&lt;br /&gt;
&lt;br /&gt;
==== Introducción ====&lt;br /&gt;
&lt;br /&gt;
Este documento presenta una propuesta de mecanismo de asignación de llamadas en colas a agentes basado no solo en las prioridades de agente a cola,&lt;br /&gt;
sino en un factor de corrección de prioridad derivado del tiempo de espera de una llamada&lt;br /&gt;
&lt;br /&gt;
==== Terminología ====&lt;br /&gt;
&lt;br /&gt;
* '''Prioridad de llamada:''' A cada llamada susceptible de ser atendida en el ''Call Center'' se le asignará una prioridad de llamada; dicha prioridad será asignada cada vez que un agente quede disponible.&lt;br /&gt;
* '''Prioridad de grupo ACD:''' Los agentes del ''Call Center'' tendrán configurada una prioridad para cada grupo ACD al que pertenecen&lt;br /&gt;
* '''Tiempo de espera:''' Tiempo que una llamada lleva en espera en un determinado grupo ACD; si la llamada cambia de un grupo ACD a otro el tiempo de espera pasa a cero&lt;br /&gt;
* '''Objetivo de servicio:''' Tiempo objetivo máximo de espera por cada grupo ACD&lt;br /&gt;
&lt;br /&gt;
 '''Nota.-''' ''En terminología Asterisk el aumento de prioridad corresponde con números descendentes, es decir,&amp;lt;br /&amp;gt;&lt;br /&gt;
 prioridad 50 es mejor que prioridad 70''&lt;br /&gt;
&lt;br /&gt;
==== Mecanismo de asignación de llamadas ====&lt;br /&gt;
&lt;br /&gt;
En el momento en que exista un agente disponible para recibir llamada, el agente recepcionará la llamada con mejor prioridad de llamada (menor número). La prioridad de llamada para cada llamada se establecerá de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
- Agentes con prioridad de grupo ACD de 1 a 99 utilizarán el mecanismo convencional de asterisk de prioridad absoluta; será útil para grupos ACD críticos o en Call Centers muy convencionales&lt;br /&gt;
&lt;br /&gt;
'''Si un agente tiene prioridad menor de 100 en grupos ACD y hay llamadas en dichos grupos, estas llamadas serán atendidas por el agente con prioridad absoluta.'''&lt;br /&gt;
&lt;br /&gt;
- Agentes con prioridad de colas de 100 en adelante; se utilizará el siguiente mecanismo de prioridad ponderada:&lt;br /&gt;
&lt;br /&gt;
:*Si el grupo ACD de la llamada está dentro del objetivo de servicio, la prioridad de llamada será la prioridad de grupo ACD (a efectos prácticos se aplicará el mecanismo convencional de asignación de llamada a agente, equitativo entre grupos ACD con misma prioridad)&lt;br /&gt;
&lt;br /&gt;
:*Si el grupo ACD de la llamada está fuera del objetivo de servicio, se aplicará una ponderación que mejorará la prioridad de la llamada a medida que aumente el tiempo de espera:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Formula.png |center]]&lt;br /&gt;
&lt;br /&gt;
En una configuración de igualdad de prioridad de agente y objetivo de servicio, el tiempo de espera influiría de manera determinante (más o menos en&lt;br /&gt;
función del peso) en la asignación de la siguiente llamada&lt;br /&gt;
El peso podrá adquirir tres posibles valores: 0, 1 y 10&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Esquema.png |center]]&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;span style=&amp;quot;color:#000080&amp;quot;&amp;gt;- Calculo prioridad de llamada: se calcula por llamada cada vez que un agente queda libre&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span style=&amp;quot;color:#000080&amp;quot;&amp;gt;- Agente atiende llamada con mejor prioridad de llamada&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Medio:Asignación de llamadas por prioridad adaptativa.pdf|Asignación de llamadas por prioridad adaptativa]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Marcación saliente ===&lt;br /&gt;
Dentro del ACD hay un comportamiento especial que es la marcación saliente. Esta puede ser de tres tipos:&lt;br /&gt;
* '''Vista previa''': El agente demanda la siguiente llamada a realizar.&lt;br /&gt;
* '''Progresivo''': Se llama al agente y se lanza la llamada al contacto.&lt;br /&gt;
* '''Predictivo''': El sistema calcula cuando va a estar libre el agente y se adelanta lanzando varias llamadas (configurables por parámetros). La llamada que es contestada primero, se pasa a una cola (el resto se cuelgan) a la espera que el agente se quede libre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Esquema de funcionamiento====&lt;br /&gt;
[[Archivo:esquema funcionamiento marcador.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
Los contactos se agrupan en listas para su facilidad de asignación a campañas, aunque finalmente lo que se asigna a una campaña es un contacto.&lt;br /&gt;
&lt;br /&gt;
Las campañas tienen estrategias. Las estrategias definen como se ha de llamar (del primero al último, sólo los pares, etc.). Tienen una serie de parámetros que  dependiendo de la estrategia pueden tener distinta utilidad. Desde el punto de vista de la base de datos, las estrategias se definirían en la tabla ACD_CLASES_ESTRATEGIAS y se les da valor en la tabla ACD_ESTRATEGIAS_MARCADOR.&lt;br /&gt;
Una vez establecida la campaña y asignados sus contactos y dependiendo del modo de marcación (que se define en las colas) el proceso motorSal crea los intentos de marcación (siempre y cuando no estén en las listas Robinson), que serán leídos por el proceso myAcdSuperv que los convierte en llamadas para el Asterisk.&lt;br /&gt;
&lt;br /&gt;
====Flujo de estados====&lt;br /&gt;
&lt;br /&gt;
El flujo de estados es el reflejado en la figura siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:diagrama de flujo motorsal.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
Los diferentes estados de un contacto son:&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Estado !! ID_Estado!! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| Planificable || 0|| El contacto está preparado para que lo gestione motorSal y según la estrategia definida se establece el campo ACD_CONTACTOS_CAMPANNAS.D_HORA_PROXIMA&lt;br /&gt;
|-&lt;br /&gt;
|Planificado||10||Cuando ha llegado el tiempo marcado en HORA PROXIMA, motorSal ejecuta la 2ª fase de la estrategia, generando el intento de marcación.&lt;br /&gt;
|-&lt;br /&gt;
|Intento||20||El control pasa a myAcdSuperv, que a su vez genera la llamada en Asterisk. Cuando termina, se pasa a Planificable o Finalizado.&lt;br /&gt;
|-&lt;br /&gt;
|Finalizado||100||Las gestiones con este contacto han terminado.&lt;br /&gt;
|-&lt;br /&gt;
|Abortado||110||&lt;br /&gt;
|-&lt;br /&gt;
|Obsoleto||200||Se ha agotado el tiempo para contactar sin agotar todos los intentos. No se le vuelve a llamar nunca.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Carga de contactos====&lt;br /&gt;
&lt;br /&gt;
===== Descripción =====&lt;br /&gt;
&lt;br /&gt;
A continuación se explica la configuración y funcionamiento de la utilidad encargada de asignar contactos a campañas.&lt;br /&gt;
&lt;br /&gt;
===== Configuración =====&lt;br /&gt;
&lt;br /&gt;
El archivo de configuración recibe el nombre de '''cargaContactos.pconf.''' Este archivo reside en '''/etc/MDtel.''' El formato se describe en la tabla siguiente. Hay que tener en cuenta que las columnas empiezan a numerarse en 0.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Parámetro !! Valor !! Obligatorio !! Defecto&lt;br /&gt;
|- &lt;br /&gt;
| db|| Nombre de la base de datos|| SI || nimitz&lt;br /&gt;
|- &lt;br /&gt;
| dbHost|| Host MySQL || SI || localhost&lt;br /&gt;
|- &lt;br /&gt;
| dbPort|| Puerto MySQL || NO || 3306&lt;br /&gt;
|- &lt;br /&gt;
| dbUsuario || Usuario de acceso a la base de datos|| SI ||&lt;br /&gt;
|- &lt;br /&gt;
| dbClave || Clave del usuario || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| rutaContactos || Ruta hasta el archivo de contactos || NO || /var/spool/MDtel/contactos&lt;br /&gt;
|- &lt;br /&gt;
| obsoletos || Si vale 1, marcar como obsoletos los contactos anteriores || NO || 0&lt;br /&gt;
|- &lt;br /&gt;
| diasCaducidad || Número de dias a partir de los cuales caducarán los contactos || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| idCampanna || Número de columna que contiene el ID de la campaña || SI||&lt;br /&gt;
|- &lt;br /&gt;
| idLista || Numero de columna que contiene el ID de la lista || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| prioridad || Número de columna que contiene la prioridad || NO || Nota: El valor es de 0 a 99. A mayor número mayor prioridad (se le llamará '''ANTES''')&lt;br /&gt;
|- &lt;br /&gt;
| tipoTarea|| Número de columna que contiene el tipo de tarea || NO || Nota: los posibles valores de la columna son : &amp;lt;br /&amp;gt; *A: Alta &amp;lt;br /&amp;gt; *M: Modificación &amp;lt;br /&amp;gt; *B: Baja&amp;lt;br /&amp;gt; Por defecto el valor es A&lt;br /&gt;
|- &lt;br /&gt;
| codCli || Número de columna del CSV que contiene el código de cliente || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| nombreCon || Número de columna del CSV que contiene el nombre || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| apellido1 || Número de columna del CSV que contiene el primer apellido|| NO ||&lt;br /&gt;
|- &lt;br /&gt;
| apellido2 || Número de columna del CSV que contiene el segundo apellido || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| empresa || Número de columna del CSV que contiene la empresa || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| direccion1 || Número de columna del CSV que contiene la dirección || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| direccion2 || Número de columna del CSV que contiene la dirección 2 || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| codPostal || Número de columna del CSV que contiene el código postal || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| localidad || Número de columna del CSV que contiene la localidad || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| provin || Número de columna del CSV que contiene la provincia || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| email || Número de columna del CSV que contiene el email || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_1 || Número de columna del CSV que contiene el primer número fijo del contacto || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_2 || Número de columna del CSV que contiene el segundo número fijo del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_3 || Número de columna del CSV que contiene el tercer número fijo del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_4 || Número de columna del CSV que contiene el cuarto número fijo del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_1 || Número de columna del CSV que contiene el primer número móvil del contacto || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_2 || Número de columna del CSV que contiene el segundo número móvil del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_3 || Número de columna del CSV que contiene el tercer número móvil del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_4 || Número de columna del CSV que contiene el CUARTO número móvil del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| edad || Número de columna del CSV que contiene la edad || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc1|| Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc2 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc3 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc4 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc5 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc6 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc7 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc8 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc1 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc2 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc3 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc4 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc5 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc6 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc7 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc8 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|-&lt;br /&gt;
| Idioma || Idioma del contacto || NO ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Funcionamiento =====&lt;br /&gt;
&lt;br /&gt;
Para ejecutar la utilidad se debe teclear la siguiente orden en la línea de comandos:&lt;br /&gt;
&lt;br /&gt;
'''cmd# cargaContactos.pl /&amp;lt;ruta hasta el conf&amp;gt;/cargaContactos.pconf &amp;lt;archivo CSV&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
El archivo con los contactos deberá ser un CSV con los campos separados por ';'. La utilidad parsea el archivo conforme a la distribución indicada en la configuración y crea las correspondientes entradas en las tablas '''ACD_CONTACTOS''' y '''ACD_CONTACTOS_CAMPANNAS.'''&lt;br /&gt;
&lt;br /&gt;
La utilidad crea un log en '''/var/log/cargaContactos.log''' en el que vuelca toda la operativa.&lt;br /&gt;
Por pantalla se va mostrando un lista con el ID asignado al contacto y el ID de campaña al que se le ha asignado.&lt;br /&gt;
&lt;br /&gt;
Un ejemplo de fichero de carga de contactos sería el siguiente: &lt;br /&gt;
&lt;br /&gt;
 #&lt;br /&gt;
 # Configuracion de recordGwd.pl&lt;br /&gt;
 #&lt;br /&gt;
 # Conexion de base de datos&lt;br /&gt;
 $db='nimitz';&lt;br /&gt;
 $dbHost = 'localhost';&lt;br /&gt;
 $dbPort = '3306';&lt;br /&gt;
 $dbUsuario = 'nimitz';&lt;br /&gt;
 $dbClave = 'LA QUE SEA';&lt;br /&gt;
 $diasCaducidad='300';&lt;br /&gt;
 $rutaGrab = '/var/spool/MDtel/contactos';&lt;br /&gt;
 $idCampanna = '31';&lt;br /&gt;
 $idLista = '32';&lt;br /&gt;
 $obsoletos = 0;&lt;br /&gt;
 $codCli = '1';&lt;br /&gt;
 $nombreCon = '2';&lt;br /&gt;
 $apellido1 = '3';&lt;br /&gt;
 $apellido2 = '4';&lt;br /&gt;
 $empresa = '5';&lt;br /&gt;
 $direccion1 = '6';&lt;br /&gt;
 $direccion2 = '7';&lt;br /&gt;
 $codPostal = '8';&lt;br /&gt;
 $localidad = '9';&lt;br /&gt;
 $provin = '10';&lt;br /&gt;
 $email = '11';&lt;br /&gt;
 $valFijo_1 = '12';&lt;br /&gt;
 $valFijo_2 = '13';&lt;br /&gt;
 $valFijo_3 = '14';&lt;br /&gt;
 $valFijo_4 = '15';&lt;br /&gt;
 $valMovil_1 = '16';&lt;br /&gt;
 $valMovil_2 = '17';&lt;br /&gt;
 $valMovil_3 = '18';&lt;br /&gt;
 $valMovil_4 = '19';&lt;br /&gt;
 $edad = '20';&lt;br /&gt;
 $nOpc1 = '21';&lt;br /&gt;
 $nOpc2 = '22';&lt;br /&gt;
 $nOpc3 = '23';&lt;br /&gt;
 $nOpc4 = '24';&lt;br /&gt;
 $cOpc1 = '25';&lt;br /&gt;
 $cOpc2 = '26';&lt;br /&gt;
 $cOpc3 = '27';&lt;br /&gt;
 $cOpc4 = '28';&lt;br /&gt;
 $prioridad = '29';&lt;br /&gt;
 $tipoTarea = '30';&lt;br /&gt;
&lt;br /&gt;
====Comportamiento de reprogramaciones de llamadas en función del estado del agente====&lt;br /&gt;
&lt;br /&gt;
Se ha preparado la siguiente maqueta:&lt;br /&gt;
&lt;br /&gt;
Campaña saliente.&lt;br /&gt;
Cola saliente progresiva.&lt;br /&gt;
Dos agentes logados en VIVAit Suite.&lt;br /&gt;
&lt;br /&gt;
En el formulario de la llamada se indica: llamada redirigida&lt;br /&gt;
Se selecciona el &amp;quot;check dirigida&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Las posibilidades de prueba son dos: &amp;quot;'''Cualquier agente'''&amp;quot; y &amp;quot;'''Solo agente'''&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Resultados son los siguientes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''Estado del agente''' || '''Modo Cualquier Agente'''|| '''Modo Solo Agente'''&lt;br /&gt;
|-&lt;br /&gt;
| '''Agente Preparado''' || Entra llamada a agente|| Entra llamada a agente&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente en Pausa'''||Entra llamada a otro agente disponible||Espera a agente y entra llamada.&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente Hablando'''||Espera a agente y entra llamada||Espera a agente y entra llamada.&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente en Tiempo administrativo'''||Espera a agente y entra llamada||Espera a agente y entra llamada.&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente no logado'''||Entra llamada a otro agenete disponible||Consume intento.&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente con una pestaña de chat abierta y el otro agente en pausa'''||Entra llamada a otro agente disponible||Espera a agente y entra llamada.&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente con dos pestañas de chat abiertas'''||Espera a agente y entra llamada||Espera a agente y entra llamada.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Movilidad ===&lt;br /&gt;
La movilidad es una función integral de las comunicaciones en la empresa. Cualquier empleado (usuario) es móvil en cierto grado, ya sea dentro o fuera de la organización. La solución óptima debe proporcionar continuidad de servicios y acceso a nuestros servicios, sin importar donde estemos.&lt;br /&gt;
&lt;br /&gt;
==== Ofrecer movilidad a un usuario ====&lt;br /&gt;
&amp;lt;!--parte daniel--&amp;gt;&lt;br /&gt;
Para permitir la movilidad a un usuario, puede ser en el momento de crear o editar un usuario en el apartado ''Administración de usuario'' en ''General'' del '''portal de administración ''VIVA''it'''.  Asignándole un '''''numero login''''' (numero personal corporativo para el usuario) y una '''''clave login''''' ( se debe asignar una clave por defecto, pero puede cambiarla en el [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_3.0#Portal_de_usuario |portal de usuario]]). &amp;lt;br/&amp;gt;Para más información[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Pesta.C3.B1a_Centralita | ver sección Portal de administración - General - Usuarios - administración de usuarios - Pestaña Centralita]].&lt;br /&gt;
&lt;br /&gt;
Además, de crear un permiso de la '''aplicación ''Centralita''''' a cualquier nivel, desde el apartado ''Permisos de usuarios'' en ''General'' del '''portal de administración ''VIVA''it'''.&amp;lt;br/&amp;gt;Para más información[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Asignaci.C3.B3n_de_Permisos_de_Usuario_por_Administrador | ver sección  Portal de administración - General - Usuarios - Permisos a usuarios]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''La movilidad permite''' disponer de las extensiones telefónicas empresariales en cualquier lugar. Por&lt;br /&gt;
ejemplo, con un ordenador portátil o smartphone en una ubicación remota con conexión a Internet,&lt;br /&gt;
podríamos tener registrada nuestra extensión remotamente, y así las llamadas hacia/desde nuestra&lt;br /&gt;
oficina serían enrutadas por Internet hasta el equipo en cuestión sin coste alguno.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--parte daniel--&amp;gt;&lt;br /&gt;
Todo terminal tiene asociado una extensión y deberá permitir la movilidad de usuarios. La extensión se configura cambiando a '''''SI''''' el campo '''''Hay Movilidad''''' desde el apartado ''Extensiones'' de ''Dispositivos'' en ''VIVAit Call'' del '''portal de administración ''VIVA''it'''. Para más información [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Extensiones | ver sección Portal de administración - VIVAit Call - Dispositivos - Extensiones]]&lt;br /&gt;
&lt;br /&gt;
==== ¿Cómo funcionan las extensiones? ====&lt;br /&gt;
&lt;br /&gt;
Primeramente el usuario debe tener los ejes apropiados en la tabla '''COM_USUARIOS_APLICACION''' (aplicación centralita).&lt;br /&gt;
&lt;br /&gt;
La extensión debe de tener ''un teléfono'' y por tanto ''un modelo de teléfono asociado.''&lt;br /&gt;
&lt;br /&gt;
Es tan simple como especificar '''la extensión, el usuario y la clave de este.'''&lt;br /&gt;
&lt;br /&gt;
Para corroborar el funcionamiento de esta hay ''dos métodos'':&lt;br /&gt;
&lt;br /&gt;
'''* CLI asterisk:'''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenEntraUsuarioMovil 25001 20001 1234'''&lt;br /&gt;
&lt;br /&gt;
Y como resultado obtenemos lo siguiente:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br /&amp;gt;&lt;br /&gt;
 MOVIL_TIPO_RESET='10'&amp;lt;br /&amp;gt;&lt;br /&gt;
 MOVIL_CAD_RESET='notify_yealink'&amp;lt;br /&amp;gt;&lt;br /&gt;
 MdintzRes='OK'&lt;br /&gt;
&lt;br /&gt;
El usuario con el login numérico 20001 se ha &amp;quot;movido&amp;quot; a la extensión 25001&lt;br /&gt;
&lt;br /&gt;
Ahora ''nos quitamos de esa extensión mediante el siguiente comando:''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenSaleUsuarioMovil 25001'''&lt;br /&gt;
&lt;br /&gt;
Resultado del comando:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MOVIL_TIPO_RESET='10'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MOVIL_CAD_RESET='notify_yealink'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzRes='OK'&lt;br /&gt;
&lt;br /&gt;
Las pruebas anteriores han sido '''con extensiones con movilidad y con usuario con/sin&lt;br /&gt;
propietario.'''&lt;br /&gt;
&lt;br /&gt;
Ahora las realizamos '''con extensiones sin movilidad'''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenEntraUsuarioMovil 25002 20001 1234'''&lt;br /&gt;
&lt;br /&gt;
Obteniendo:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzRes='movil_error_datos'&lt;br /&gt;
&lt;br /&gt;
Como era lo previsible no nos deja &amp;quot;movernos&amp;quot; a esa extensión ya que no tiene movilidad.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''&amp;lt;u&amp;gt;Si un usuario ya se ha movido a una extensión no se puede mover a otra si no es deslogandose de esta antes.&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Esta línea se comenta porque se ha preparado el sistema para que los ususarios se puedan logar en una nueva extensión y el sistema lo deslogue de la primera a la que se movió. La variable que controla este funcionamiento es MD_AUTODES, con dos posibles valores:&lt;br /&gt;
0, para que el usuario deba deslogarse de una extensión para logarse en otra.&lt;br /&gt;
1, para que sea el sistema el que deslogue automátiamente al usuario cuando cambia de una extensión de movilidad a otra.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;Si un usuario ya se ha movido a una extensión y se mueve a otra, el sistema lo deslogará de la primera para logarlo en la segunda.&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenEntraUsuarioMovil 21000 20001 1234'''&lt;br /&gt;
&lt;br /&gt;
Con salida:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MOVIL_EXTEN='25001'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MDintzRes='movil_ya_login'&lt;br /&gt;
&lt;br /&gt;
'''* Dialplan'''&lt;br /&gt;
&lt;br /&gt;
Para llamar a la función de movilidad hay que marcar el '''9992.'''&lt;br /&gt;
&lt;br /&gt;
 Nota.- Para comprobar que se realiza todo correctamente habría que mirar las trazas de Asterisk&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Grabación ===&lt;br /&gt;
&lt;br /&gt;
La grabación en '''''VIVA'''''it Call está diseñada para ser lo mas flexible posible.&lt;br /&gt;
&lt;br /&gt;
====Configuración====&lt;br /&gt;
&lt;br /&gt;
Si deseamos grabar, debemos activar que alguno de los dispositivos/elementos que intervienen en la llamada se grabe.&lt;br /&gt;
&lt;br /&gt;
Estos dispositivos/elementos son:&lt;br /&gt;
&lt;br /&gt;
* Nodo.&lt;br /&gt;
* Usuario con Centralita.&lt;br /&gt;
* Agente.&lt;br /&gt;
* Grupo ACD corporativo y de Contact Center.&lt;br /&gt;
* Enlace exterior.&lt;br /&gt;
* Extensión.&lt;br /&gt;
* Facilidades.&lt;br /&gt;
* Grupo: grupo de salto o grupo de operadoras.&lt;br /&gt;
* Sala de conferencia.&lt;br /&gt;
* VDN corporativo y de Contact Center.&lt;br /&gt;
* Pre-rutas.&lt;br /&gt;
&lt;br /&gt;
Por otro lado necesitaremos que la llamada pase por un nodo que sea grabador, es decir, que si la llamada esta configurada para que se grabe pero no pasa por ningún nodo grabador, la llamada no se grabará.&lt;br /&gt;
&lt;br /&gt;
Al configurar un nodo existen cuatro campos que intervienen en la grabación.&lt;br /&gt;
&lt;br /&gt;
''''Grabador''''&lt;br /&gt;
&lt;br /&gt;
Se configura en el portal en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Este campo corresponde con el campo [[BD.COM_NODOS#B_ES_GRABADOR|B_ES_GRABADOR]] de la tabla [[BD.COM_NODOS|COM_NODOS]] , este campo define si el nodo va a grabar las llamas que pasen por el que necesiten ser grabadas y no se estén grabando ya.&lt;br /&gt;
&lt;br /&gt;
Es un campo booleano los posibles valores en el portal son si/no y en la base de datos 1/0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''''Modo grabación infraestructura''''&lt;br /&gt;
&lt;br /&gt;
Su configuración se realiza en el portal, en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Este campo define como está configurada la infraestructura, este campo existe por compatibilidad con '''''VIVA'''''it suite y para poder configurar la grabación bajo demanda.&lt;br /&gt;
&lt;br /&gt;
Este campo corresponde con el campo [[BD.COM_NODOS#E_MODO_GRABACION_INFRAESTRUCTURA|E_MODO_GRABACION_INFRAESTRUCTURA]] de la tabla [[BD.COM_NODOS|COM_NODOS]], Este campo usa los valores del enumerado BD.ENUM.TModoGrabacionInfraestructura|TModoGrabacionInfraestructura]].&lt;br /&gt;
&lt;br /&gt;
La formula que se seguiría para ver si una llamada se graba en ese nodo es:&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 (NODO.E_MODO_GRABACION_INFRAESTRUCTURA) AND (NODO.B_ENRU_GRABAR OR CEN_PRE_RUTA.B_ENRU_GRABAR OR &amp;quot;OBJETO&amp;quot;.B_ENRU_GRABAR)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Que sería que si la infraestructura esta en NoGraba no se graba nada de lo que se rute en ese nodo y en cualquiera de los 2 otros caso (GrabaTodo o GrabaPorPeticion) se grabaría dependiendo de la configuración del Nodo, la ruta o el objeto en cuestión (preruta, grupo ACD, extension,...).&lt;br /&gt;
&lt;br /&gt;
''''Grabar enrutamiento''''&lt;br /&gt;
&lt;br /&gt;
Se configura en el portal en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Este campo define si van a grabar las llamadas que se enruten en este nodo.&lt;br /&gt;
&lt;br /&gt;
Campo [[BD.COM_NODOS#E_ENRU_GRABAR|E_ENRU_GRABAR]] de la tabla [[BD.COM_NODOS|COM_NODOS]] que usa los valores del enumerado [[BD.ENUM.TTipoEnruGrabar|TTipoEnruGrabar]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''''RecordCentral''''&lt;br /&gt;
&lt;br /&gt;
Se configura en el portal en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Define que instancia del recordCentral es la encargada de tratar las grabaciones de este nodo.&lt;br /&gt;
&lt;br /&gt;
Para aumentar el rendimiento a la hora de traerse las grabaciones, se pueden definir varias instancias de proceso recordCentral, este campo define cual de estas instancias se encargara de este nodo.&lt;br /&gt;
&lt;br /&gt;
====Vivait Tracker====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL LA ÚNICA REFERENCIA A VIVAIT TRACKER EN LA DOCUMENTACIÓN &amp;quot;Vivait supervisor&amp;quot; QUE TENGO DICE LO SIGUIENTE. &amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Desde '''''VIVA'''''it Supervisor,  que es la aplicación dirigida a Supervisores, ofrece la posibilidad de supervisar y gestionar grupos ACD, agentes, asignaciones, prioridades,etc. Se puede obtener acceso directo a las aplicaciones de grabación ('''''VIVA'''''it tracker) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL FIN EXPLICACIÓN. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL De la documentacion creada por ivan. &amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Esquematico actual del proyecto tracker &lt;br /&gt;
[[Archivo:Esquematico_tracker_1.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1º El tracker web llama al web service Remote login para iniciar sesión y determinar si tiene permisos para la escucha y descarga de grabaciones.&lt;br /&gt;
&lt;br /&gt;
2º Si la ubicación de la grabación es local, mira la ruta de esta y se procede a la escucha o descarga de esta.&lt;br /&gt;
&lt;br /&gt;
3º Si la ubicación de la grabación es remota, entra en escena el proxy. Es el que realiza la petición.&lt;br /&gt;
&lt;br /&gt;
4º Si utilizamos el tracker windows, este, como el tracker web, llama primero al web service remote login para la autenticación y tema de Permisos.&lt;br /&gt;
&lt;br /&gt;
5º Para descargar o escuchar una grabación desde el tracker windows, se llama al web service servidor de grabaciones pasándole simplemente el ID de segmento.mp3. Este web service, con el ID de segmento, se encarga de determinar la ubicación de la grabación.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL De la documentación creada por ivan. &amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Esquematico actual del proyecto tracker &lt;br /&gt;
[[Archivo:Esquematico_tracker_2_https.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1º El tracker web llama al web service Remote login para iniciar sesión (comunicación https) y determinar si tiene permisos para la escucha y descarga de grabaciones. Se elimina el proxy&lt;br /&gt;
&lt;br /&gt;
2º Si la ubicación de la grabación es local, mira la ruta de esta y se procede a la escucha o descarga de esta.&lt;br /&gt;
&lt;br /&gt;
3º Si la ubicación de la grabación es remota, se realiza una petición al host remoto. El tipo de petición vendrá fijada por base de datos (http, https, ftp,ftps)&lt;br /&gt;
&lt;br /&gt;
4º Si utilizamos el tracker windows, este, como el tracker web, llama primero al web service remote login para la autenticación y tema de permisos (comunicación https extremo a extremo).&lt;br /&gt;
&lt;br /&gt;
5º Para descargar o escuchar una grabación desde el tracker windows, se llama al web service servidor de grabaciones pasándole simplemente el ID de segmento.mp3. Este web service, con el ID de segmento, se encarga de determinar la ubicación de la grabación.&lt;br /&gt;
&lt;br /&gt;
[[#Grabación_(Vivait_Tracker)| Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operación_plataforma_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
=== Enrutamiento ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Enrutamiento.png|885px |center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Enfoque inicial ====&lt;br /&gt;
&lt;br /&gt;
[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Enfoque_inicial Acceso]&lt;br /&gt;
&lt;br /&gt;
==== Funcionamiento ====&lt;br /&gt;
El proceso de enrutamiento, como vimos en el esquemático, se compone de dos fases:&lt;br /&gt;
&lt;br /&gt;
# Preenrutameinto, que se encarga de tratar todas las llamadas&lt;br /&gt;
# Enrutamiento externo, que tiene módulos dedicados al enrutamiento hacia:&lt;br /&gt;
:*Enlaces externos. &lt;br /&gt;
:*Extensiones. &lt;br /&gt;
:*Usuarios de telefonía corporativa. &lt;br /&gt;
:*Facilidades. &lt;br /&gt;
:*Salas de conferencia. &lt;br /&gt;
:*Agentes de grupos ACD. &lt;br /&gt;
:*Grupos ACD. &lt;br /&gt;
:*Vdn. &lt;br /&gt;
:*Buzones para dejar mensaje. &lt;br /&gt;
:*Buzones para su gestión.&lt;br /&gt;
&lt;br /&gt;
Se asume que existen rutas directas entre todos los nodos de la red.&lt;br /&gt;
&lt;br /&gt;
Se asume que están directamente enrutadas todas las direcciones IP involucradas, tanto nodos, como terminales.&lt;br /&gt;
&lt;br /&gt;
Se asume que todas las facilidades están disponibles en todos los nodos, aunque es posible que la implementación sea diferente entre ellos.&lt;br /&gt;
&lt;br /&gt;
Los datos de entrada básicos al proceso de enrutamiento (pdEntr) son:&lt;br /&gt;
* Dispositivo&lt;br /&gt;
* Cola&lt;br /&gt;
* Origen&lt;br /&gt;
* Nodo entrada&lt;br /&gt;
* UCID&lt;br /&gt;
* CALLER_ID_NAME&lt;br /&gt;
* CALLER_ID_NUM&lt;br /&gt;
* DNIS&lt;br /&gt;
* Desvío por dialplan&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A partir de los datos de entrada básicos anteriores se pueden deducir los siguientes valores:&lt;br /&gt;
* Sede del dispositivo de entrada&lt;br /&gt;
* Sede del nodo de entrada&lt;br /&gt;
* Ancho de banda disponible en la sede del dispositivo&lt;br /&gt;
* Ancho de banda disponible en la sede del nodo&lt;br /&gt;
* Categoría entrante&lt;br /&gt;
* Valor del eje1 asignado a la llamadas&lt;br /&gt;
* CALLER_ID_NUM_EXTERNO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los datos de salida globales del proceso de enrutamiento (pdSale) son:&lt;br /&gt;
* Categoría saliente&lt;br /&gt;
* Código de cliente (opcional)&lt;br /&gt;
* Tipo de destino:	&lt;br /&gt;
:* No existe&lt;br /&gt;
:* Ruta externa&lt;br /&gt;
:* Extensión&lt;br /&gt;
:* Usuario de telefonía corporativa&lt;br /&gt;
:* Facilidad&lt;br /&gt;
:* Salas de conferencia&lt;br /&gt;
:* Agentes de grupos ACD&lt;br /&gt;
:* Grupos ACD&lt;br /&gt;
:* VDN&lt;br /&gt;
:* Buzón para dejar mensaje. &lt;br /&gt;
:* Buzón para dejar mensaje por ocupado. &lt;br /&gt;
:* Buzón para dejar mensaje por no contestación. &lt;br /&gt;
:* Buzón para su gestión.&lt;br /&gt;
* Destinatario (cuando se trata de un usuario o de un agente)&lt;br /&gt;
* Valor del eje1 asignado a la llamada&lt;br /&gt;
* Buzón de las extensiones y usuarios que los tengan asignados&lt;br /&gt;
* Si el buzón está en nodo distinto al de entrada&lt;br /&gt;
* DESVIO_INCONDICIONAL (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable) &lt;br /&gt;
* DESVIO_NO_CONTESTA (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable) &lt;br /&gt;
* DESVIO_OCUPADO (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable) &lt;br /&gt;
* DESVIO_FUERA_SERV (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los datos de salida para cada una de las posibles rutas en orden son (nn va de 01 maxRutas [nn son dos dígitos decimales]):&lt;br /&gt;
* CONTADOR_ABDE_nn (contador para control de ancho de banda en sede de dispositivo de entrada).  &lt;br /&gt;
* CONTADOR_ABNE_nn (contador para control de ancho de banda en sede de nodo de entrada).  &lt;br /&gt;
* CONTADOR_ABDS_nn (contador para control de ancho de banda en sede de dispositivo de salida).  &lt;br /&gt;
* CONTADOR_ABNS_nn (contador para control de ancho de banda en sede de nodo de salida).  &lt;br /&gt;
* CALLER_NAME_SAL_nn , puede salir de una extensión, un usuario o de un agente. &lt;br /&gt;
* CALLER_NUM_SAL_nn, puede salir de una extensión, un usuario o de un agente.  &lt;br /&gt;
* DESTINO_SAL_nn , en general, el valor C_NOMBRE o destino de salida.  &lt;br /&gt;
* RUTA_NODO_nn , Cadena de marcación para ir la nodo que soporta DESTINO_SAL_nn, si es distinto del nodo de entrada.  &lt;br /&gt;
* RUTA_SAL_nn &lt;br /&gt;
:* Extensión: cadena marcación. &lt;br /&gt;
:* Facilidad: E_CODIGO_FACILIDAD obtenido de la tabla CEN_FACILIDADES. &lt;br /&gt;
:* Usuario: cadena marcación de la extensión asignada al usuario en movilidad o en propiedad. &lt;br /&gt;
:* Agente: cadena marcación de la extensión a la que está conectado el agente. &lt;br /&gt;
:* Ruta externa: contexto que gestiona la llamada saliente.&lt;br /&gt;
&lt;br /&gt;
=====Fase preenrutamiento =====&lt;br /&gt;
&lt;br /&gt;
La fase de preenrutamiento (basada en la tabla CEN_PRE_RUTA) se usa en todas las llamadas entrantes, tanto internas, como externas. Permite desarrollar un “prerouting” estándar para ACD y para telefonía corporativa.&lt;br /&gt;
&lt;br /&gt;
Los datos de entrada al proceso de enrutamiento son iguales a los del proceso global de enrutamiento, excepto en que este proceso no usa el nodo de entrada ya que es independiente de éste.&lt;br /&gt;
&lt;br /&gt;
Los datos de salida de la fase de preenrutamiento:&lt;br /&gt;
* D_CATEGORIA_SAL &lt;br /&gt;
* COD_CLIENTE (opcional) &lt;br /&gt;
* TIPO_DESTINO_SAL&lt;br /&gt;
:* No existe.   &lt;br /&gt;
:* Volver a preenrutar.   &lt;br /&gt;
:* Ruta externa.   &lt;br /&gt;
:* Extensión.   &lt;br /&gt;
:* Usuario de telefonía corporativa.   &lt;br /&gt;
:* Facilidad.   &lt;br /&gt;
:* Sala de conferencia.   &lt;br /&gt;
:* Agente de grupos ACD.   &lt;br /&gt;
:* Grupos ACD.   &lt;br /&gt;
:* VDN.   &lt;br /&gt;
:* Buzón para dejar mensaje.   &lt;br /&gt;
:* Buzón para dejar mensaje por ocupado.   &lt;br /&gt;
:* Buzón para dejar mensaje por no contestación.   &lt;br /&gt;
:* Buzón para su gestión. &lt;br /&gt;
* COD_CLIENTE &lt;br /&gt;
* Valor del eje1 asignado a la llamada &lt;br /&gt;
* CALLER_NAME &lt;br /&gt;
* CALLER_NUM &lt;br /&gt;
* DESTINO&lt;br /&gt;
&lt;br /&gt;
El proceso de preenrutamiento consiste en seleccionar un único registro de la tabla CEN_PRE_RUTA y, con sus valores y con los valores de entrada al proceso, generar los datos de salida.&lt;br /&gt;
&lt;br /&gt;
Un posible tipo de salida es &amp;quot;Volver a preenrutar&amp;quot;. Esto permite realimentar el proceso un máximo de &amp;quot;max_pre_ruta_regs&amp;quot; veces (en archivo .conf) para simplificar configuración. Sólo tiene sentido realimentar si se ha hecho alguna modificación en los datos de selección de registro, ya que en caso contrario se produciría un bucle que el proceso de preenrutamiento es capaz de detectar y evitar.&lt;br /&gt;
&lt;br /&gt;
Para elegir el registro de CEN_PRE_RUTA, se tienen en cuenta los datos de entrada de la llamada, de modo que se cumpla con todos los puntos siguientes: &lt;br /&gt;
* ID_CATEGORIA_ENT igual a la del dispositivo de entrada.  &lt;br /&gt;
* CALLER_NUM de entrada  &lt;br /&gt;
:* Debe comenzar por la cadena C_ORIGEN_ENT_PREF o C_ORIGEN_ENT_PREF=NULL, con menos prioridad. Es conveniente rellenar este dato del modo más restrictivo que sea posible, independientemente de C_ORIGEN_ENT_EXPR. Ello permite disminuir el uso innecesario de recursos de evaluación de expresiones regulares.    &lt;br /&gt;
:* Debe de tener un número de dígitos igual o superior a N_ORIGEN_ENT_MIN_DIGITOS, si este valor no es NULL o cero.    &lt;br /&gt;
:* Debe de tener un número de dígitos igual o inferior a N_ORIGEN_ENT_MAX_DIGITOS, si este valor no es NULL o cero.    &lt;br /&gt;
:* Debe cumplir la expresión regular C_ORIGEN_ENT_EXPR, si ésta no es NULL.  &lt;br /&gt;
* DNIS empiece con C_DESTINO_ENT_PREF o C_DESTINO_ENT_PREF=NULL. Es conveniente rellenar este dato del modo más restrictivo que sea posible, independientemente de C_DESTINO_ENT_EXPR. Ello permite disminuir el uso innecesario de recursos de evaluación de expresiones regulares.  &lt;br /&gt;
* Si varias entradas cumplen la condición anterior, se prueba primero la que el campo C_DESTINO_ENT_PREF tenga una longitud mayor y, de entre éstas, la que C_ORIGEN_ENT_PREF tenga una longitud mayor.  &lt;br /&gt;
* DNIS tenga un número de dígitos igual o superior a N_DESTINO_ENT_MIN_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* DNIS tenga un número de dígitos igual o inferior a N_ORIGEN_ENT_MIN_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* DNIS cumpla la expresión regular C_DESTINO_ENT_EXPR, si ésta no es NULL. &lt;br /&gt;
&lt;br /&gt;
Si no se encuentra ninguna entrada adecuada, quiere decir que es una llamada prohibida y se devuelve el tipo de destino &amp;quot;No existe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Puede conseguirse un destino &amp;quot;por defecto&amp;quot; diferente, creando una entrada que encaje siempre para cada categoría: C_ORIGEN_ENT, C_ORIGEN_ENT_MIN_DIGITOS, C_ORIGEN_ENT_MAX_DIGITOS, C_ORIGEN_ENT_EXPR, C_DESTINO_ENT_PREF, N_DESTINO_ENT_MIN_DIGITOS, N_DESTINO_ENT_MAX_DIGITOS y C_DESTINO_ENT_EXPR a valor NULL.&lt;br /&gt;
&lt;br /&gt;
Una vez elegida una entrada, ésta puede transformar o sustituir el valor de ID_CATEGORIA, CALLER_NAME, CALLER_NUM, DESTINO, COD_CLIENTE y/o EJE1_MSK a la salida del proceso. &lt;br /&gt;
&lt;br /&gt;
Si ID_CATEGORIA_SAL es cero, se propaga a la salida el valor de la entrada. En caso contrario, se sustituye. &lt;br /&gt;
&lt;br /&gt;
Si C_CALLER_NAME está vacío, se mantiene el valor hubiese a la entrada. En caso contrario, se sustituye. &lt;br /&gt;
&lt;br /&gt;
C_CALLER_NUM puede contener una cadena que identifica el nuevo CALLER_NUM. Además, si la cadena comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo CALLER_NUM es igual al de entrada al proceso. &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo CALLER_NUM es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo. &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;. &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al CALLER_NUM de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo CALLER_NUM de salida. Si la expresión regular no se cumpliese, se propagará el valor de entrada al proceso. &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante que sustituye el valor a la entrada.&lt;br /&gt;
&lt;br /&gt;
Cada vez que se utilice una preruta, se incrementará el valor de N_CONTA si el valor de N_UMBRAL es mayor que cero.&lt;br /&gt;
&lt;br /&gt;
Un valor N_UMBRAL mayor que cero permite modificar el destino de salida cuando el valor de actual de N_CONTA (antes de incrementarse) supere o sea igual el valor de N_UMBRAL. Si se cumple la condición indicada, se usa como destino tras el preenrutamiento, los valores de los campos E_TIPO_DESTINO_SAL_2 y C_DESTINO_SAL_2.&lt;br /&gt;
&lt;br /&gt;
Si el valor de N_UMBRAL es menor o igual a cero o si N_CONTA es inferior a N_UMBRAL, se usa como destino tras el preenrutamiento, los valores de los campos E_TIPO_DESTINO_SAL_1 y C_DESTINO_SAL_1.&lt;br /&gt;
Con este mecanismo de N_CONTA y N_UMBRAL, se pretende facilitar el discriminar a los llamantes reincidentes, cuando sea necesario. &lt;br /&gt;
&lt;br /&gt;
Un proceso periódico externo debe encargarse de poner a cero o decrementar el valor de N_CONTA.&lt;br /&gt;
Como resultado de los procesos de filtrado y de verificación anteriores, se habrá obtenido un TIPO_DESTINO_SAL y un C_DESTINO_SAL a partir de los campos con sufijo &amp;quot;_1&amp;quot; o &amp;quot;_2&amp;quot;, con una metodología similar al caso C_CALLER_NUM.&lt;br /&gt;
&lt;br /&gt;
C_DESTINO_SAL_x puede contener cadena que permite obtener el nuevo destino. Además, si la cadena comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo destino es igual al de entrada al proceso.  &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo destino es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo.  &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;.  &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al destino de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo destino de salida. Si la expresión regular no se cumpliese, quiere decir que es una llamada prohibida y se encaminará hacia una facilidad por defecto.  &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante que sustituye el valor a la entrada. &lt;br /&gt;
Información de salida del proceso de preenrutamiento: Cuando TIPO_DESTINO_SAL_x toma los valores que se indican, el proceso global de enrutamiento sólo requiere de preenrutamiento y la información a devolver se obtiene dependiendo de TIPO_DESTINO_SAL_x: &lt;br /&gt;
* No existe: Se asume que no se conoce un destino para los datos de entrada, por lo que la llamada se encamina hacia una facilidad por defecto que gestiona su tratamiento.  &lt;br /&gt;
* Extensión: A partir de las tablas CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar la extensión en el nodo principal y en el secundario.  &lt;br /&gt;
* Facilidad: A partir de las tablas CEN_DISPOSITIVOS, CEN_FACILIDADES y CEN_NODOS.  &lt;br /&gt;
* Usuario de telefonía corporativa: A partir de las tablas CEN_USUARIOS, CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar al usuario en el nodo principal y en el secundario de la extensión que corresponde en base a movilidad, con prioridad, o en base a propiedad.  El caso de movilidad no se tiene en cuenta si el proceso de enrutamiento se realiza en &amp;quot;modo supervivencia&amp;quot;.  &lt;br /&gt;
* Sala conferencia: A partir de las tablas CEN_SALAS_CONFERENCIAS y CEN_NODOS.  &lt;br /&gt;
* Agente de ACD: A partir de las tablas ACD_USUARIOS, DAT_TR_ACD_EXTENSIONES, CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar al agente en el nodo principal y en el secundario.  &lt;br /&gt;
* VDN: A partir de las tablas ACD_VDN y CEN_NODOS, se devolverán los valores que permiten alcanzar al VDN en su nodo.  &lt;br /&gt;
* Grupo ACD: A partir de las tablas ACD_COLAS y CEN_NODOS, se devolverán los valores que permiten alcanzar al grupo ACD en su nodo. &lt;br /&gt;
&lt;br /&gt;
El campo B_GENERAR_SEGMENTO de la tabla CEN_PRE_RUTA indica al proceso de preenrutamiento que es preciso generar un segmento de tipo &amp;quot;preenrutamiento&amp;quot;. En el segmento generado, se rellena el campo C_ETIQUETA1 del nuevo segmento con el valor que contiene el campo homónimo del registro asociado en la tabla CEN_LISTA_PRE_RUTAS.&lt;br /&gt;
&lt;br /&gt;
===== Fase de enrutamiento en casos en que el destino no es externo =====&lt;br /&gt;
Datos de entrada al proceso de enrutamiento externo: iguales a los de salida del proceso de preenrutamiento (pdPreSale), uniéndose a éstos los datos globales de entrada al proceso (pdEntr). &lt;br /&gt;
&lt;br /&gt;
Datos de salida de la fase de enrutamiento: iguales que los del proceso global de enrutamiento (pdSale). &lt;br /&gt;
&lt;br /&gt;
Específicamente y sólo para los casos en que el destino es una extensión (tipo de destino extensión, usuario de telefonía corporativa o agente) es cuando son válidos los datos correspondientes al buzón asociado y los datos de los posibles desvíos previstos. &lt;br /&gt;
&lt;br /&gt;
También en este caso, se prevén dos posibles rutas, una se corresponde con el acceso a la extensión en el nodo principal de ésta y la otra en el nodo secundario. &lt;br /&gt;
&lt;br /&gt;
En el resto de tipos de destino, sólo se prevé una ruta que puede incluir o no un enlace internodal. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Fase de enrutamiento en el caso de destino externo =====&lt;br /&gt;
Datos de entrada al proceso de enrutamiento externo: iguales a los de salida del proceso de preenrutamiento (pdPreSale), uniéndose a éstos los datos globales de entrada al proceso (pdEntr). &lt;br /&gt;
Datos de salida de la fase de enrutamiento: iguales que los del proceso global de enrutamiento (pdSale). &lt;br /&gt;
&lt;br /&gt;
Se elige los primeros &amp;quot;max_ruta&amp;quot; registros (configurado en archivo .conf) en CEN_DESTINOS_EXTERNOS unido con CEN_RELACION_DESTINOS_ENLACES_EXTERNOS que, teniendo en cuenta los datos de entrada al proceso de enrutamiento, cumpla con todos los puntos siguientes: &lt;br /&gt;
* ID_CATEGORIA_ENT igual a la de salida del proceso de preenrutamiento.  &lt;br /&gt;
* C_DESTINO_SAL de proceso de preenrutamiento empiece con C_DESTINO_ENT_PREF. &lt;br /&gt;
* Si varias entradas cumplen la condicion anterior, se prueba primero la que el campo C_DESTINO_ENT_PREF tenga una longitud mayor.  &lt;br /&gt;
* C_DESTINO_SAL tenga un número de dígitos igual o superior a N_DESTINO_ENT_MIN_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* C_DESTINO_SAL tenga un número de dígitos igual o inferior a N_DESTINO_ENT_MAX_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* C_DESTINO_SAL cumpla la expresión regular C_DESTINO_ENT_EXPR, si ésta no es NULL. &lt;br /&gt;
&lt;br /&gt;
Aparte de la longitud del campo C_DESTINO_ENT_PREF, se usa N_PRIORIDAD como campo para ordenar los registros y seleccionar lo &amp;quot;max_ruta&amp;quot; primeros. &lt;br /&gt;
&lt;br /&gt;
Una vez que un registro es válido, se descartan todos los registros cuyo C_DESTINO_ENT_PREF es diferente del primero seleccionado. &lt;br /&gt;
&lt;br /&gt;
Como resultado de los procesos de filtrado y de verificación anteriores, se habrá obtenido hasta un máximo de &amp;quot;max_rutas&amp;quot; valores para posibles rutas. Las posibles propagaciones y transformaciones en los datos de cada ruta son función de los datos de cada registro seleccionado: &lt;br /&gt;
&lt;br /&gt;
CALLER_NAME_nn: Si C_CALLER_NAME está vacío, se propaga el valor de entrada. En caso contrario, se sustituye. &lt;br /&gt;
&lt;br /&gt;
CALLER_NUM_nn: Sale de C_CALLER_NUM que puede contener una cadena que identifica el nuevo CALLER_NUM_n. Además, si C_CALLER_NUM comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo CALLER_NUM_nn es igual al de entrada al proceso.  &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo CALLER_NUM_nn es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo.  &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;.  &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al CALLER_NUM de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo CALLER_NUM de salida. Si la expresión regular no se cumpliese, se propaga el valor de entrada al proceso.  &lt;br /&gt;
* &amp;quot;&amp;gt;&amp;quot; Si existe valor para CALLER_NUM_EXTERNO, se propagará éste a la salida. En caso contrario y si no está vacía la cadena que queda al eliminar el prefijo &amp;quot;&amp;gt;&amp;quot;, se susituye en la salida por el valor de la cadena sin prefijo. Si la cadena estuviese únicamente constituida por el valor &amp;quot;&amp;gt;&amp;quot;, se propaga el valor de entrada.  &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante sin ninguna modificación. &lt;br /&gt;
&lt;br /&gt;
C_DESTINO_SAL_nn: Se obtiene a partir de C_DESTINO_SAL que puede contener una cadena que identifica el nuevo destino. Además, si la cadena comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo destino es igual al de entrada al proceso. &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo destino es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo. &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;. &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al destino de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo destino de salida. Si la expresión regular no se cumpliese, se propaga el valor de entrada al proceso. &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante sin ninguna modificación. &lt;br /&gt;
&lt;br /&gt;
RUTA_NODO_nn: Sólo se usa si el nodo de salida es diferente del nodo de entrada. Contiene la cadena de marcación para ir la nodo que soporta DESTINO_SAL_nn. Sale del campo C_FORMATO_DIAL (sustituyendo variables) correspondiente al tipo de dispositivo del enlace exterior. &lt;br /&gt;
&lt;br /&gt;
RUTA_SAL_nn: Es el campo C_DATO_ASTERISK obtenido a partir del registro en la tabla CEN_ENLACE_EXTERIOR que se corresponde con ID_ENLACE_EXTERIOR de la tabla CEN_RELACION_DESTINOS_ENLACES_EXTERNOS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Control de ancho de banda ===&lt;br /&gt;
&lt;br /&gt;
Para el control de ancho de banda, primero hemos de tener en consideración que una llamada puede tener asociadas hasta cuatro sedes&lt;br /&gt;
:* Sede del terminal origen (terminal A)&lt;br /&gt;
:* Sede del nodo de registro del terminal origen (nodo A)&lt;br /&gt;
:* Sede del terminal destino (terminal B)&lt;br /&gt;
:* Sede del nodo de registro del terminal destino (nodo B)&lt;br /&gt;
&lt;br /&gt;
Además hemos de tener en cuenta que el audio de la conversación podrá ir:&lt;br /&gt;
:* De manera directa entre terminal A y terminal B&lt;br /&gt;
:* De manera indirecta, a través de los nodos A y B&lt;br /&gt;
&lt;br /&gt;
[[Archivo:ancho de banda.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Cuando se va a cursar una llamada de terminal A a terminal B, el proceso de enrutamiento del nodo A devuelve 4 variables de canal al dialplan:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! Variable!!Campos &lt;br /&gt;
|- &lt;br /&gt;
|R_ABDE_xx||R = Variable de rutas --- AB = ancho de banda --- D = dispositivo --- E = Entrante --- xx = de 0 a 3&lt;br /&gt;
|-&lt;br /&gt;
|R_ABNE_xx||R = Variable de rutas --- AB = ancho de banda --- N = nodo --- E = Entrante --- xx = de 0 a 3&lt;br /&gt;
|-&lt;br /&gt;
|R_ABDS_xx||R = Variable de rutas --- AB = ancho de banda --- D = dispositivo --- S = Saliente --- xx = de 0 a 3&lt;br /&gt;
|- &lt;br /&gt;
|R_ABNS_xx||R = Variable de rutas --- AB = ancho de banda --- N = nodo --- S = Saliente --- xx = de 0 a 3&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El valor de cada variable es una cadena del tipo '''AB.wwww.xxxx.y.z''' donde cada valor es:&lt;br /&gt;
:* '''wwww''' --&amp;gt; id de sede&lt;br /&gt;
:* '''xxxx''' --&amp;gt; ancho de banda total de la sede&lt;br /&gt;
:* '''y''' --&amp;gt; número de llamadas a sumar si conversación directa&lt;br /&gt;
:* '''z''' --&amp;gt; número de llamadas a sumar si conversación indirecta&lt;br /&gt;
&lt;br /&gt;
Por otro lado tenemos que tener en cuenta que el dialplan tiene control de las llamadas que cada sede puede cursar&lt;br /&gt;
&lt;br /&gt;
De esta forma, cuando existe una nueva llamada el dialplan aplica la fórmula, suma el resultado al número de llamadas en curso y lo compara con el máximo...si el resultado es mayor que le máximo la llamada no se cursará por congestión&lt;br /&gt;
&lt;br /&gt;
Configuraremos el ancho de banda por sede en el portal de administración y el consumo que hace cada llamada en la variable '''AB_CONSUMO_LLAMADA''' del fichero '''ext_MDtel_particular.conf''' de cada nodo de conmutación; el valor por defecto es 32&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Puesto de trabajo ==&lt;br /&gt;
El puesto de trabajo del agente en la plataforma '''''VIVA'''''it  (para el producto '''''VIVA'''''it Suite) estará compuesto por:&lt;br /&gt;
* PC (típicamente windows) en el que reside la aplicación '''''VIVA'''''it Desk&lt;br /&gt;
* Terminal telefónico con extensión física asociada.&lt;br /&gt;
&lt;br /&gt;
Para más información [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Puestos | ver sección Portal de administración-VIVAit Suite ACD+ - Puestos]].&lt;br /&gt;
&lt;br /&gt;
=== Relación PC/teléfono en puesto de trabajo ===&lt;br /&gt;
&lt;br /&gt;
Existirá una relación única entre nombre PC y extensión física asociada, si bien los agentes se identificarán por su login que les acompaña al puesto de trabajo en el que se loguen&lt;br /&gt;
Existe un procedimiento documentado para la operativa de cambio de puesto de trabajo, en caso de ser necesario el cambio de PC o de teléfono de un puesto de trabajo.&lt;br /&gt;
==== Procedimiento para un cambio de puesto de trabajo ====&lt;br /&gt;
Se basa en una asignación de PC a teléfono relaccionando la extensión telefónica del terminal físico con el nombre del puesto de trabajo. La configuración de dicha asociación se realiza en el portal de administración de la plataforma. &lt;br /&gt;
&lt;br /&gt;
Cualquier cambio que se realice en terminal telefónico o PC de agente ha de mantener la asociación en el portal a efectos de permitir el funcionamiento del sistema.&lt;br /&gt;
&lt;br /&gt;
A continuación se reflejan los cambios más habituales:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cambio !! Procedimiento !! Punto de acción&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| Cambio de ubicación de un PC || Opción 1.- Renombrar el PC para que conserve el nombre que tenía el anterior en esa ubicación || PC de agente&lt;br /&gt;
|-&lt;br /&gt;
|  Opción 2.- Rehacer la asignación extensión/puesto || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot;| Instalación de PC nuevo en puesto existente || Opción 1.- Renombrar el PC para que conserve el nombre que tenía el anterior en esa ubicación || PC de agente&lt;br /&gt;
|-&lt;br /&gt;
| Opción 2.- Rehacer la asignación extensión/puesto || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| Cambio de nombre en un PC || Rehacer asignación extensión/puesto || Rehacer asignación extensión/puesto&lt;br /&gt;
|-&lt;br /&gt;
|Cambio de ubicación de un teléfono  || Rehacer la asignación extensión/puesto&lt;br /&gt;
 || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| Instalación de un teléfono nuevo en puesto existente || Rehacer la asignación extensión/puesto || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| Instalación de un nuevo puesto de agente|| Hacer asignación extensión/puesto || Portal de administración&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:relacion_puesto_agente.png|center|500px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Estructura de aplicaciones en puesto de trabajo ===&lt;br /&gt;
Las aplicaciones del puesto de trabajo pueden estar ubicadas en cualquier carpeta del sistema. Es importante tener en cuenta que los procesos de actualización, logs… escriben en dichas carpetas, por lo que el usuario de windows deberá tener permisos de lectura/escritura y borrado sobre dichas carpetas&lt;br /&gt;
La instalación del puesto de trabajo es muy liviana para el sistema; las aplicaciones ocupan poco espacio y no se modifican ficheros del sistema operativo (registry o similares)&lt;br /&gt;
Los ficheros importantes son&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Fichero !! Descrición&lt;br /&gt;
|-&lt;br /&gt;
| Vivait-desk.exe || Contiene la aplicación '''''VIVA'''''it Desk de agente&lt;br /&gt;
|-&lt;br /&gt;
| vivait_desk_dll.dll||Este fichero contiene controles sobre los formularios (controles de&lt;br /&gt;
texto, algunas reglas de obligatoriedad…)&lt;br /&gt;
|-&lt;br /&gt;
| nimitz.ini || Configuración del puesto de agente&lt;br /&gt;
|-&lt;br /&gt;
| lanzador.exe || Aplicación de actualización de versiones&lt;br /&gt;
|-&lt;br /&gt;
| lanzador.ini || Configuración del actualizador de aplicaciones&lt;br /&gt;
|-&lt;br /&gt;
| Carpeta forms || En esta carpeta están ubicados los formularios que se abren ante llamada entrante o saliente&lt;br /&gt;
|-&lt;br /&gt;
| Carpeta imágenes || Contiene las imágenes izquierda y derecha de la barra de '''''VIVA'''''it Desk&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Secciones de utilidad en nimitz.ini ===&lt;br /&gt;
&lt;br /&gt;
==== Configuración del puesto de agente ====&lt;br /&gt;
&lt;br /&gt;
El fichero nimitz.ini contiene la configuración del puesto de agente; sus principales parámetros son:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| |''' Fichero'''&lt;br /&gt;
|| '''Descripción'''&lt;br /&gt;
|-&lt;br /&gt;
|Sección [bd1]&lt;br /&gt;
||host=&amp;quot;ip_BBDD_tiempo_real&amp;quot;&lt;br /&gt;
puerto=&amp;quot;Nº puerto&amp;quot;&lt;br /&gt;
basedatos=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
usuario=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
clave=&amp;quot;UIk5jMY9PVX6ogg=&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Contiene información para la conexión a BBDD de tiempo real, en la que '''''VIVA'''''it Desk fundamentalmente inserta información&lt;br /&gt;
|-&lt;br /&gt;
|Sección [bd2]&lt;br /&gt;
||host=&amp;quot; ip_BBDD_replica &amp;quot;&lt;br /&gt;
puerto=&amp;quot;Nº puerto&amp;quot;&lt;br /&gt;
basedatos=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
usuario=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
clave=&amp;quot;UIk5jMY9PVX6ogg=&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Contiene información para la conexión a BBDD de réplica, en la que '''''VIVA'''''it Desk solo leerá información&lt;br /&gt;
|-&lt;br /&gt;
|Sección [telefono]&lt;br /&gt;
||pruebas=1 (Valores válidos 0 ó 1)&lt;br /&gt;
Activación de funcionalidad &amp;quot;servicio técnico&amp;quot; en '''''VIVA'''''it Desk.&lt;br /&gt;
&lt;br /&gt;
puesto=&amp;quot;Nombre puesto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Sección [trazas]&lt;br /&gt;
|| nivel=3&lt;br /&gt;
&lt;br /&gt;
archivo=1&lt;br /&gt;
&lt;br /&gt;
consola=0&lt;br /&gt;
&lt;br /&gt;
sobreescribir=1&lt;br /&gt;
&lt;br /&gt;
Activación de generación de ficheros de trazas &amp;quot;viva-desk.log&amp;quot; en carpeta de aplicaciones &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Parámetros en invocación a '''''VIVA'''''it Desk ===&lt;br /&gt;
&lt;br /&gt;
La aplicación '''''VIVA'''''it Desk puede ser invocada con una serie de parámetros que condicionan su funcionamiento; los parámetros son:&lt;br /&gt;
* Primer parámetro: Nombre del archivo .ini; usado como alternativa al fichero por defecto &amp;quot;nimitz.ini&amp;quot;&lt;br /&gt;
* Segundo parámetro: Nombre de puesto; usado como alternativa al nombre de puesto del ordenador&lt;br /&gt;
* Tercer parámetro: Nombre de login; para forzar un usuario; es de utilidad si el sistema está configurado como &amp;quot;confiar en sistema operativo&amp;quot;, en cuyo caso no permite seleccionar un login de agente para acceder a la aplicación&lt;br /&gt;
&lt;br /&gt;
=== Instalación y actualización de aplicaciones de puestos de trabajo ===&lt;br /&gt;
La instalación y actualización de las aplicaciones en el puesto de trabajo pasan por disponer de los ficheros “lanzador.exe” y “lanzador.ini” (debidamente configurado) dentro de la carpeta en la que se desee instalar.&lt;br /&gt;
Lanzando la aplicación “lanzador.exe” se instalará o actualizará el sistema. &lt;br /&gt;
&lt;br /&gt;
El fichero “lanzador.ini” tiene el siguiente aspecto:&lt;br /&gt;
 URL=&amp;quot;http://IP_Servidor:8180/WSActualizaXML/actualizar.xml&amp;quot;&lt;br /&gt;
 BASE_URL_DESCARGAS=&amp;quot;http://IP_servidor:8180/XMLFILES/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Servicio técnico en '''''VIVA'''''it Desk ===&lt;br /&gt;
La activación de la funcionalidad de servicio técnico en '''''VIVA'''''it Desk nos permite realizar sincronizaciones manuales de la aplicación y activar trazas a nivel de Base de Datos o a nivel de log sobre el propio '''''VIVA'''''it Desk. Pulsando el botón derecho del ratón sobre la barra '''''VIVA'''''it Desk accederemos a las capacidades de soporte técnico&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Funcionamiento de la plataforma en modo emergencia ==&lt;br /&gt;
== Accesos Web ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Aplicación !! Enlace&lt;br /&gt;
|-&lt;br /&gt;
|Portal de administración '''''VIVA'''''it Suite || http://ip_admin:8180/Vivait-Call&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker||http://ip_tracker:8180/Vivait-Tracker&lt;br /&gt;
|-&lt;br /&gt;
|Monitor Web||http://ip_monitor:8180/MonitorWeb&lt;br /&gt;
|-&lt;br /&gt;
|Monitorización Zabbix||http://ip_zabbix:80/zabbix&lt;br /&gt;
|-&lt;br /&gt;
|Base de datos tiempo real||http://ip_bbdd_tr:80/phpmyadmin/&lt;br /&gt;
|-&lt;br /&gt;
|Base de datos réplica||http://ip_bbdd_replica:80/phpmyadmin&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Permisos de aplicaciones ===&lt;br /&gt;
Se crean a través del '''portal de administración ''VIVA''it''' . Debe conocerse como funcionan los ejes [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Ejes| ver sección Portal de administracion - General - Ejes]] y que existen cuatro aplicaciones creadas en la plataforma:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:17_2 Pestaña Genera - Usuarios - Explicacion permisos.png|center]]&lt;br /&gt;
&lt;br /&gt;
La forma como dar permisos de aplicaciones a un usuario esta explicada en la [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Asignaci.C3.B3n_de_Permisos_de_Usuario_por_Administrador | sección  Portal de administracion - General - Usuarios ]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elementos monitorizados del sistema ==&lt;br /&gt;
===Generalidades de Zabbix===&lt;br /&gt;
====Zabbix ====&lt;br /&gt;
Zabbix es una solución de código abierto que ofrece características de monitorización avanzada de forma tecnica y para el negocio, para todo tipo de servidores, aplicaciones y equipos que forman parte de una red. La versión que utilizamos en '''md'''tel es Zabbix 2.2.2.&lt;br /&gt;
&lt;br /&gt;
Zabbix  monitoriza los  recursos  de un equipo en forma remota, permite centralizar la información en un servidor que permite visualizar el monitoreo, cuenta con una interfaz de administración vía web y utiliza un mecanismo flexible de la notificación que permita que los usuarios configuren las alarmas basadas email para informar virtualmente cualquier acontecimiento. Esto permite una reacción rápida a los problemas del servidor. &lt;br /&gt;
&lt;br /&gt;
Para acceder al servidor Zabbix abrimos el navegador y ponemos la dirección de red (IP) de la maquina donde se encuentra instalado el servidor de Zabbix seguido de &amp;quot;/Zabbix.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Direccion.IP.Zabbix.Server/zabbix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Zabbix posee documentación tanto en wiki, foros y comunidades.Para ampliar la información se puede visitar:&lt;br /&gt;
[[http://www.zabbix.com Sitio oficial de Zabbix]]&lt;br /&gt;
===== Glosario Zabbix =====&lt;br /&gt;
Se trata de una lista de conceptos básicos de Zabbix, pero para ampliar la información sobre otros términos, visite el [[http://www.zabbix.com Sitio oficial de Zabbix]].&lt;br /&gt;
* '''host''' &lt;br /&gt;
:En Zabbix, un host es una entidad que define el elemento en red que se desea monitorizar/supervisar activamente sus recursos locales y aplicaciones. Este puede ser una impresa, router, switch, sensores de temperatura, un servidor, un ordenador,etc, o también una aplicación. La característica de un host es que debe poseer una dirección de red (IP).&lt;br /&gt;
&lt;br /&gt;
* '''host group'''&lt;br /&gt;
:En Zabbix, un host group (grupo host) es una agrupación lógica de los host, como una forma de organizar los dispositivos &amp;quot;Host&amp;quot; registrados en Zabbix para su monitorización. Puede contener hosts y templates.  Los grupos host se utilizan en la asignación de derechos de acceso a los hosts para diferentes grupos de usuarios.&lt;br /&gt;
&lt;br /&gt;
* '''item'''&lt;br /&gt;
:En Zabbix, un item (medida) es el parámetro que deseamos obtener del host, básicamente es una medida especifica que el servidor Zabbix recogerá de los agentes de Zabbix instalados en los host.&lt;br /&gt;
&lt;br /&gt;
* '''trigger'''&lt;br /&gt;
:En Zabbix, un trigger(disparador) es una entidad que define un umbral para detectar la existencia de un problema en un dispositivo.  Son valores recolectados por los &amp;quot;items&amp;quot;, se usa para &amp;quot;evaluar&amp;quot; los datos recibidos con condiciones definidas. Las condiciones son de tipo aritmético y lógico.&lt;br /&gt;
* '''event'''&lt;br /&gt;
:En Zabbix, un event (evento) es la aparición de un suceso en Zabbix que necesita atención. Por ejemplo, el cambio de estado a raíz de un trigger, el descubrimiento de un nuevo agente (autoregistro),etc.&lt;br /&gt;
* '''action'''&lt;br /&gt;
:En Zabbix, una action(acción) son reglas predefinidas para reaccionar a un evento disparado por los triggers, es decir, define qué hacer ante un evento. Consta de operaciones (por ejemplo, una notificacion, comandos remotos) y condiciones (cuando  la operación se lleva a cabo).&lt;br /&gt;
* '''notification'''&lt;br /&gt;
:En Zabbix, una notification (notificacion) es la entidad con que Zabbix nos puede notificar (Correo Electrónico,mensajes vía &amp;quot;SMS&amp;quot; o Jabber).&lt;br /&gt;
* '''template'''&lt;br /&gt;
:En Zabbix, un témplate (plantilla) viene predefinida en la instalación de Zabbix Server, con el fin de ser aplicada en base al tipo de sistema operativo(Linux, Mac, Window, etc) o en elementos que comparten los mismos parámetros de medición, por ejemplo la carga del procesador, uso de memoria y  uso de recursos de red. Las plantillas son un conjunto de módulos &amp;quot;ITEM, TRIGGERS y GRÁFICAS&amp;quot;, que están preconfigurados y listas para ser aplicadas a uno o varios hosts.&lt;br /&gt;
* '''application'''&lt;br /&gt;
:En Zabbix, una application (aplicación) es una agrupación lógica de los items.&lt;br /&gt;
* '''Zabbix server'''&lt;br /&gt;
:El Zabbix server (servidor de Zabbix) es el proceso central donde están definidas las configuraciones y donde se almacenan todos los datos y estadísticas recogidas de los agentes Zabbix.Consta de una base de datos, una interfaz web y el propio server. Como servidor, se encarga de recoger los datos de los agentes, calcular los triggers, enviar notificaciones, etc. &lt;br /&gt;
* '''Zabbix agent'''&lt;br /&gt;
:El zabbix agent (agente de Zabbix)  es un proceso desplegado en los host que son supervisados, que funciona como un servicio y puede funcionar de forma activa y pasiva simultáneamente.&lt;br /&gt;
&lt;br /&gt;
=====Discovery=====&lt;br /&gt;
La funcionalidad discovery(detección) lista los dispositivos que se integran en nuestra red y el tipo de servicios que proporciona. Por ejemplo, si la empresa tuviera cien colas ACDs, y veinticinco VDNS, y en cada cola como veinte medidas, seria muy laborioso registrar una por uno cada uno.  &lt;br /&gt;
Gracias a esta funcionalidad, se descubre todas las interfaces de red que se tiene, automáticamente y tanto para colas nodos o IVR. Para utilizar esta funcionalidad , se hace el uso de dos script, que se instalan en el momento de instalación de Zabbix en el directorio &amp;quot;/usr/local/sbin&amp;quot;, que son:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
'''zabbixDiscoveryQueues.pl''' : script utilizado para buscar colas ACD.&lt;br /&gt;
&lt;br /&gt;
'''zabbixDiscoveryVDN.pl''' : script utilizado para buscar VDNS.&lt;br /&gt;
|}&lt;br /&gt;
La explicación de como configurarla se encuentra en el manual oficial [[https://www.zabbix.com/documentation/2.2/manual/discovery/network_discovery/rule | Zabbix detección de redes]].&lt;br /&gt;
&lt;br /&gt;
=====Notificaciones=====&lt;br /&gt;
&lt;br /&gt;
Necesariamente, debe darse de alta al usuario y darse de alta el servidor de correo electrónico para poder ser capaz de enviar correos.&lt;br /&gt;
&lt;br /&gt;
Por otro lado, el formato del correo electrónico y las condiciones de envío de correo al usuario se configura en las acciones. Véase  el [[https://www.zabbix.com/documentation/2.2/manual/quickstart/notification  | manual oficial de Zabbix 2.2]]&lt;br /&gt;
&lt;br /&gt;
=====Usuarios=====&lt;br /&gt;
Zabbix permite la organización de usuarios en grupos para establecer los permisos adecuados de acuerdo al tipo de perfil que deseemos crear. Necesariamente un usuario debe permanecer a un grupo o varios grupos.Todos los usuarios acceden a la aplicación de Zabbix a través de la interfaz Web. &lt;br /&gt;
&lt;br /&gt;
Cada usuario Zabbix se le asigna un nombre de usuario único , una contraseña y podemos indicarle que tipo de comunicación que posee, normalmente es vía email, pero puede ser vía a otro tipo de medios. Para mas información ver el [[https://www.zabbix.com/documentation/2.2/manual/web_interface/user_profile || manual oficial ]].&lt;br /&gt;
 &lt;br /&gt;
=====Visualización=====&lt;br /&gt;
Con Zabbix es posible visualizar los datos como  gráficos, pantallas, mapas y hasta presentaciones cambiantes, entre otros. En este apartado solo nombraremos características esenciales que se tendra que completar con el [[https://www.zabbix.com/documentation/2.2/manual/config/visualisation | manual oficial]]&lt;br /&gt;
======Graphs======&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''Nota:''' Debe crearse algun item dentro del host para poder utilizar una gráfica.&lt;br /&gt;
|}&lt;br /&gt;
En Zabbix una gráfica sirve para representar gráficamente los resultados obtenidos de uno item o varios items.&lt;br /&gt;
[[File:EjemploGrafica.png|center|750px]]&lt;br /&gt;
Los valores min / avg / max que Zabbix obtiene y representa son de un registro de datos de la tabla tendencias.&lt;br /&gt;
&lt;br /&gt;
======Screens======&lt;br /&gt;
La pantalla refiere a otra característica adaptable de ZABBIX cuál permite que los usuarios creen las pantallas personalizadas dentro de ZABBIX para exhibir la información. Se considera como una colección de gráficas y no depende del host. Una pantalla puede consistir en gráficos simples, gráficos personalizados, integrar mapas, Alertas, gráficos estadísticos o texto llano tal como los 5 valores pasados de un item particular entre otros; y mostrar la información de forma dinámica.&lt;br /&gt;
&lt;br /&gt;
[[File:EjemploScreen.png|center|750px]]&lt;br /&gt;
&lt;br /&gt;
======Maps======&lt;br /&gt;
En Zabbix, un map (mapa) es una representación gráfica de la situacion de nuestros dispositivos en red. Es un escenario que muestra nuestra red, aplicaciones y servicios a través de figuras o iconos.  Dichas figuras toman vida en respuesta a los eventos que se dan en nuestro entorno.&lt;br /&gt;
[[File:EjemploMaps.png|center|750px]]&lt;br /&gt;
[[File:EstadosMaps.png|center|750px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======Monitorizar el estado de los raid======&lt;br /&gt;
Los siguientes comandos son necesarios para poder monitorizar el estado de los raid.&lt;br /&gt;
La orden:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;hpacucli &amp;quot;ctrl slot=1 logicaldrive 1 show status&amp;quot;&lt;br /&gt;
&lt;br /&gt;
nos proporciona el estado de un raid (p.e. logicaldrive 1 (931.5 GB, 1): Interim Recovery Mode).&lt;br /&gt;
&lt;br /&gt;
La orden:&lt;br /&gt;
 &amp;gt;hpacucli &amp;quot;ctrl slot=1 logicaldrive all show status&amp;quot;&lt;br /&gt;
&lt;br /&gt;
nos proporciona el estado de todos los raid.&lt;br /&gt;
&lt;br /&gt;
p.e.:&lt;br /&gt;
logicaldrive 1 (931.5 GB, 1): Interim Recovery Mode&lt;br /&gt;
&lt;br /&gt;
logicaldrive 2 (1.8 TB, 1): OK.&lt;br /&gt;
&lt;br /&gt;
Para conseguir información genérica el comando&lt;br /&gt;
 &lt;br /&gt;
 ctrl all show config detail&lt;br /&gt;
&lt;br /&gt;
nos muestra mucha información y podemos saber el modelo de disco físico que lleva instalado para poder comprar el modelo antes de &amp;quot;operar&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Zabbix en '''MD'''tel===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Configuraciones de Zabbix ====&lt;br /&gt;
&lt;br /&gt;
===== Agentes Zabbix =====&lt;br /&gt;
{|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 '''Nota:''' Hay que instalar un agente Zabbix en cada maquina que se quiera monitorizar.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El agente de Zabbix puede recoger datos: &lt;br /&gt;
*'''De forma pasiva:''' el server contacta al agente pidiéndole un dato (por ejemplo el consumo de CPU en ese instante) y el agente responde al server con ese dato. A esta acción del agente le llamaremos '''Agente activo'''.&lt;br /&gt;
*'''De forma activa:''' en un primer momento, el server le enviará al agente el listado de items a monitorizar. A partir de ese momento, será el agente que de forma periódica recogerá datos sobre esos ítems y se los hará llegar al server. A esta acción del agente le llamaremos ''''''Agente pasivo''''''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== Configurar agente de forma pasiva======&lt;br /&gt;
Para configurar el agente de Zabbix necesitamos acceder a la maquina que actuará como agente, y en el directorio /etc/zabbix modificar el fichero '''zabbix_agentd.conf''' e indicar cual es la dirección de red (IP) del servidor Zabbix.&lt;br /&gt;
&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 ##### Passive checks related&lt;br /&gt;
 ### Option: Server&lt;br /&gt;
 #       List of comma delimited IP addresses (or hostnames) of Zabbix servers.&lt;br /&gt;
 #       Incoming connections will be accepted only from the hosts listed here.&lt;br /&gt;
 #       If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1'  &lt;br /&gt;
 #       are treated equall$&lt;br /&gt;
 #&lt;br /&gt;
 # Mandatory: no&lt;br /&gt;
 # Default:&lt;br /&gt;
 Server= IP.Server Zabbix.&lt;br /&gt;
|}&lt;br /&gt;
Tras la configuración del fichero, debemos reiniciar el servicio de los agentes.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 sudo service zabbix-agent restart&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====== Configurar agente de forma activa ======&lt;br /&gt;
&lt;br /&gt;
Para configurar el agente de Zabbix necesitamos acceder a la máquina que actuará como agente, y en el directorio /etc/zabbix modificar el fichero '''zabbix_agentd.conf''' e indicar cual es la dirección de red (IP) del servidor Zabbix.&lt;br /&gt;
&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 ##### Active checks related&lt;br /&gt;
 ### Option: ServerActive&lt;br /&gt;
 #       List of comma delimited IP:port (or hostname:port) pairs of Zabbix serv$&lt;br /&gt;
 #       If port is not specified, default port is used.&lt;br /&gt;
 #       IPv6 addresses must be enclosed in square brackets if port for that hos$&lt;br /&gt;
 #       If port is not specified, square brackets for IPv6 addresses are option$&lt;br /&gt;
 #       If this parameter is not specified, active checks are disabled.&lt;br /&gt;
 #       Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12$&lt;br /&gt;
 #&lt;br /&gt;
 # Mandatory: no&lt;br /&gt;
 # Default:&lt;br /&gt;
 ServerActive=127.0.0.1&lt;br /&gt;
 --------------------------sección separada----------------------------&lt;br /&gt;
 ### Option: UserParameter&lt;br /&gt;
 #       User-defined parameter to monitor. There can be several user-defined pa$&lt;br /&gt;
 #       Format: UserParameter=&amp;lt;key&amp;gt;,&amp;lt;shell command&amp;gt;&lt;br /&gt;
 #       See 'zabbix_agentd' directory for examples.&lt;br /&gt;
 #&lt;br /&gt;
 # Mandatory: no&lt;br /&gt;
 # Default:&lt;br /&gt;
 # UserParameter=&lt;br /&gt;
 User_parameters:asterisk.pid, /usr/bin/asterisk -rx 'core show chanels'|grep 'active calls'| cat -d -f 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El parámetro '''User_parameters''' tiene un formato de este estilo:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 User_parameters: NombreMedida, comando.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El nombre de la medida se refiere al nombre que demos a la aplicación , no hace falta que exista una aplicación con ese nombre en Zabbix, y el comando , es el comando remoto que tiene que ejecutar el servidor Zabbix. Posiblemente necesita darse permisos para ejecutar el comando y siempre debe devolver un valor (un numero o un tiempo) que el servidor Zabbix puede manejar.&lt;br /&gt;
Tras la configuración del fichero, debemos reiniciar el servicio de los agentes.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 sudo service zabbix-agent restart&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Scripts del Servidor Zabbix =====&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''': &amp;lt;small&amp;gt;No olvidar que en la misma maquina del server Zabbix, debe configurarse como agente de Zabbix.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Después de realizar la [[# Instalación de Zabbix | Instalación de Zabbix ]] correctamente. Se han creado otros ficheros scripts (''scripts propios de '''md'''tel'') que facilitarán la petición del servidor a los agentes activos, para poder parametrizar todos los elementos del negocio que suelen monitorizarse. &lt;br /&gt;
Dependiendo de lo que vaya a monitorizarse necesitaremos algún script o todos. Algunos nos informan sobre elementos de negocio, saber si asterisk funciona , monitorizar el CTI (lanzara nc localhost 1111) , controlar el Intz-Nimitz, comprobar si funciona motalsal, ect.&lt;br /&gt;
&lt;br /&gt;
Cada script se exportara a los host, para que pueda facilitar los datos que pide el servidor Zabbix y configurarse.&lt;br /&gt;
Por ejemplo,para monitorizar las llamadas en curso del ACD, agentes conectados, agentes desconectados, etc.&lt;br /&gt;
Todos los scripts se deben colocar en el directorio /usr/local/sbin con permisos 755, su nombre es parecido a &amp;quot;zabbixSenderXXXXX.pl&amp;quot;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 ls /usr/local/sbin/ |grep zabbixSender&lt;br /&gt;
 '''zabbixSenderACDBD.pl'''&lt;br /&gt;
 '''zabbixSenderACD.pl'''&lt;br /&gt;
 '''zabbixSenderCTI.pl'''&lt;br /&gt;
 '''zabbixSender-intz-nimitz.pl'''&lt;br /&gt;
 '''zabbixSenderMotorSal.pl'''&lt;br /&gt;
 '''zabbixSenderMyACDSuperv.pl'''&lt;br /&gt;
 '''zabbixSenderRecordNodo.pl'''&lt;br /&gt;
 '''zabbixSenderRecordCentral.pl'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Se crea una tarea programada en linux para poder ejecutarse los scripts, programando el tiempo en que debe ejecutarse.&lt;br /&gt;
&lt;br /&gt;
Si visualizo que &amp;quot;............&amp;quot; aparece:&lt;br /&gt;
&lt;br /&gt;
*****  root zabbix&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderACDBD.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtiene diversos valores por cada cola, estados de agente por cola y estados de agente generales.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor BDTR.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:''' Ruta al archivo de configuración (Por ejemplo: ''/etc/MDtel/zabbixSenderACDBD.pconf'')&lt;br /&gt;
&lt;br /&gt;
'''Archivo de configuración:''' zabbixSenderACDBD.pconf&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''$db:''' Nombre de la BBDD (normalmente nimitz)&lt;br /&gt;
 '''$dbHost:''' Dirección IP del servidor de BBDD de TR (normalmente BDTR)&lt;br /&gt;
 '''$dbPort:''' Puerto MySQL (normalmente 3306)&lt;br /&gt;
 '''$dbUsuario:''' Usuario MySQL (normalmente nimitz)&lt;br /&gt;
 '''$dbClave:''' Clave del usuario&lt;br /&gt;
 '''$sZab:''' Dirección IP del servidor Zabbix&lt;br /&gt;
 '''$hZab:''' Nombre del host Zabbix (normalmente el nombre de máquina, tal y como se configura en &lt;br /&gt;
 zabbix_agentd.conf o en el host en la web de Zabbix)&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderACD.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener el PID de Asterisk para revisar si se ha reiniciado en caso de que cambie.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor ACD.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:''' Ruta al archivo de configuración (Por ejemplo: ''/etc/MDtel/zabbixSenderACD.pconf'').&lt;br /&gt;
&lt;br /&gt;
'''Archivo de configuración:''' zabbixSenderACDBD.pconf.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''$db:''' Nombre de la BBDD (normalmente nimitz)&lt;br /&gt;
 '''$dbHost:''' Dirección IP del servidor de BBDD de TR (normalmente BDTR)&lt;br /&gt;
 '''$dbPort:''' Puerto MySQL (normalmente 3306)&lt;br /&gt;
 '''$dbUsuario:''' Usuario MySQL (normalmente nimitz)&lt;br /&gt;
 '''$dbClave:''' Clave del usuario&lt;br /&gt;
 '''$sZab:''' Dirección IP del servidor Zabbix&lt;br /&gt;
 '''$hZab:''' Nombre del host Zabbix (normalmente el nombre de máquina, tal y como se configura en&lt;br /&gt;
 zabbix_agentd.conf o en el host en la web de Zabbix)&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
======zabbixSenderCTI.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de vivait-cti.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute vivait-cti. Normalmente el servidor ACD.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======zabbixSender-intz-nimitz.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de intz-nimitz.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute intz-nimitz.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
======zabbixSenderMotorSal.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de motorSal.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute motorSal.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderMyACDSuperv.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de myAcdSuperv.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute myAcdSuperv.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderRecordNodo.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de recordNodo.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute recordNodo.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderRecordCentral.pl======&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de recordCentral.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute recordCentral.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A continuación se muestra una tabla resumen de los distintos scripts y sus funcionalidades: &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Zabbix_scripts.png |960px]]&lt;br /&gt;
&lt;br /&gt;
====== Dimensionamiento del servidor (Startpollers) ======&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''': &amp;lt;small&amp;gt;EL parámetro StartPollers es un &amp;lt;u&amp;gt;parámetro numérico&amp;lt;/u&amp;gt; que forma parte del fichero de configuración &lt;br /&gt;
 del servidor Zabbix(zabbix_server.conf). Por defecto el servidor Zabbix está configurado para&lt;br /&gt;
 iniciar con cinco startpollers.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El servidor Zabbix puede hacer peticiones a los agentes de las medidas que necesita o quiere. O en caso contrario los agentes envian en un tiempo determinado la información al servidor. Para recibir todas estas peticiones necesitamos los pollers.  &lt;br /&gt;
&lt;br /&gt;
Los poller son los procesos encargados de recibir todas las peticiones de medidas. Aumentaremos su cantidad dependiendo de la necesitad que tengamos. Para ello podemos observar la queue , que es la encargada de almacenar un listado de todas las cosas que están pedidas para medirse y recibirse.  SI por ejemplo esta cola (queue) muestra mas de mil medidas seguramente estos pollers sean un cuello de botella y habrá que aumentar su numero.&lt;br /&gt;
&lt;br /&gt;
=====Templates=====&lt;br /&gt;
&lt;br /&gt;
Zabbix cuenta con templates (plantillas) que facilitan la tarea de &amp;quot;Registrar Equipos y Dispositivos&amp;quot; y agregarles métricas; acelerar el despliegue de las tareas de supervisión en un host; aplicar cambios masivos a tareas de supervisión. En '''md'''tel hemos creado plantillas propias que facilitan estos procesos, los cuales necesitaremos [[#Importar templates |importar templates]].&lt;br /&gt;
&lt;br /&gt;
Las plantillas están vinculados directamente a los hosts individuales, por tanto se necesitaran utilizar en cada host.&lt;br /&gt;
&lt;br /&gt;
Automáticamente, cada template rellena por item las aplicaciones, trigers, alarmas,gráficos,... etc. &lt;br /&gt;
&lt;br /&gt;
A continuación, se muestran los distintos bloques de funciones de la instalación en función de cada template:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! Se instalan en general &lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| SI (si clúster)&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| si&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| -&lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| si(si no posee ip virtuales de clúster)&lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| si&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ '''Dependiendo del tipo de nodo:'''&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! ACD !! Corporativo/GW&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| Si || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - || Si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - || Si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ '''Dependiendo del tipo de Base de dato'''s:&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! BBDD &amp;lt;br /&amp;gt;Tiempo Real !! BBDD&amp;lt;br /&amp;gt; Réplica !! BBDD Copia&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| Si(si ACD) || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| si || si || si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| si || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! Administración&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - &lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - &lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal||SI (si posee servidor calendarios)&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! Servidor de grabaciones&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - &lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| Si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - &lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal||-&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ '''Monitorización'''&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! General !! Contact Center&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - || - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - || - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| si || - &lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - || - &lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 * El template OS Linux tiene asociado el Template App Zabbix Agent.&lt;br /&gt;
 Una '''base de datos unificada''' es una base de datos de tiempo real junto a  una base de datos de replica&lt;br /&gt;
&lt;br /&gt;
====== Importar templates======&lt;br /&gt;
&lt;br /&gt;
Las plantillas propias de '''md'''tel se encuentran en la ruta &amp;quot;'''/usr/src/nimitz/archivos'''&amp;quot; y empiezan con el nombre de &amp;quot;TemplateXXX.xml&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 ls /usr/src/nimitz/archivos | grep Template&lt;br /&gt;
 '''Template DRBD.xml'''&lt;br /&gt;
 '''Template motorSal.xml'''&lt;br /&gt;
 '''Templates Vivait-Suite_GW.xml'''&lt;br /&gt;
 '''Templates Vivait-Suite.xml'''&lt;br /&gt;
 '''Template Vivait-Call Asterisk.xml'''&lt;br /&gt;
 '''Template Vivait-Call bdCentral.xml'''&lt;br /&gt;
 '''Template Vivait-Call bdNodo.xml'''&lt;br /&gt;
 '''Template Vivait-Call cambiarPerfil_Cal.xml'''&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La importación se realizara una vez a través de la web, no hace falta desde el servidor Zabbix, puede ser en cualquier  computadora con acceso a la interfaz web de Zabbix.&lt;br /&gt;
&lt;br /&gt;
[[File:ImportarTemplates.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
Hay opciones varias opciones a elegir para importación de templates, pero podemos dejar por defecto las señaladas y pulsar el botón &amp;quot;import&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Configuración para un primer funcionamiento de Zabbix===&lt;br /&gt;
Se describe una básica configuracion de Zabbix para cualquier equipo que utilice Windows o linux. Pues  mediante la definición de hosts, items, triggers y acciones, Zabbix permite efectuar un monitoreo efectivo de plataformas IT heterogéneas. &lt;br /&gt;
&lt;br /&gt;
====Configuración de los equipost (host) para la monitorización====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''': Tenga en cuenta que debe de estar previamente configurado el agente Zabbix del &lt;br /&gt;
 dispositivo a ser monitorizado apuntando a la IP del &amp;quot;Servidor Zabbix&amp;quot;.&lt;br /&gt;
|}&lt;br /&gt;
Existen dos tipos de host:&lt;br /&gt;
* '''Host físico''': donde la dirección de red que registramos en Zabbix, corresponde al dispositivo que deseamos monitorizar.&lt;br /&gt;
* '''Host virtual''': es una dirección IP virtual, que puede relacionarse con un servidor Web, clusters, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:CreacionHost.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
﻿Las opciones basicas para configurar un host son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center ;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Host Name'''&lt;br /&gt;
|  | Definir un nombre para el host.&lt;br /&gt;
||Se puede utilizar números, letras, espacios y guiones bajos están permitidos.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Visible Name'''&lt;br /&gt;
|  | Identificar con un nombre, la maquina a la que se refiere el host.&lt;br /&gt;
||Si no tiene valor, se mostrara como nombre &amp;quot;Host Name&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Groups'''&lt;br /&gt;
|  | Seleccionar al grupo de host que pertence.Seleccione uno o varios grupos de la caja derecha.&lt;br /&gt;
|| Los valores que puede seleccionar por defecto:&lt;br /&gt;
Discoverd hosts.&lt;br /&gt;
&lt;br /&gt;
Switches.&lt;br /&gt;
&lt;br /&gt;
Templates.&lt;br /&gt;
&lt;br /&gt;
Templates MDtel.&lt;br /&gt;
&lt;br /&gt;
Zabbix servers.&lt;br /&gt;
&lt;br /&gt;
Linux Servers.&lt;br /&gt;
&lt;br /&gt;
Hypervisors.&lt;br /&gt;
&lt;br /&gt;
Virtual machines.&lt;br /&gt;
&lt;br /&gt;
O crear uno nuevo en '''New group'''.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Agent interfaces'''&lt;br /&gt;
|  |Se recomienda usar una dirección IP, en vez de un nombre de la maquina para resolver por un servidor de DNS que puede fallar.&lt;br /&gt;
|  | 10050 por defecto&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cuando termine, haga clic en nel boton &amp;quot;Save&amp;quot;.  Su nuevo &amp;quot;Host&amp;quot; debe ser visible en la lista de &amp;quot;Host registrados&amp;quot;.Despues el zabbix, intentara configurarse el zabbix para conectarse a la IP.... cada x tiempo hace un barrido. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Comprobación de disponibilidad del host=====&lt;br /&gt;
Para saber si todo esta bien debemos ver la Z de disponibilidad.   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:EstadosZHost.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Indicacion de los colores del icono Z:&lt;br /&gt;
&lt;br /&gt;
* Si el icono Z en la columna de disponibilidad es de color rojo, indica que hay un error en la comunicación - mueva el cursor del ratón sobre él para ver el mensaje de error. &lt;br /&gt;
&lt;br /&gt;
* Si el icono es gris, significa que esta en proceso de comunicación con el &amp;quot;Agente Zabbix&amp;quot;. Compruebe que el servidor Zabbix está en marcha, y pruebe a actualizar la página más tarde.  El tiempo estimado para revisar si existe problemas es de 5 minutos.&lt;br /&gt;
&lt;br /&gt;
* Si el icono es verde, esta funcionando correctamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Indicar que plantilla(template) tendra el host [opcional]====&lt;br /&gt;
Tras [[#Importar templates |importar templates]] nos dirigimos al host ya configurado, y en su pestaña de templates pulsamos &amp;quot;add&amp;quot; y añadimos la plantilla/s adecuadas.&lt;br /&gt;
&lt;br /&gt;
====Asignar items al host ====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''':Un host puede tener un ITEM sin necesitad de tener template.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Todos lo ITEMS se agrupan por HOST, esto significa que cada HOST tiene sus propios &amp;quot;Módulos que recogen datos del Host&amp;quot;.   Para agregar un nuevo módulo vamos a &amp;quot;Configuration → Hosts&amp;quot; y localizamos el &amp;quot;Host&amp;quot; al cual queremos agregarle un nuevo &amp;quot;Item&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:CrearItemEjemplo.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
Parametros o campos a rellenar para una configuración básica :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center ;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Name'''&lt;br /&gt;
|  | Definir un nombre para el item.  Este nombre va a ser nuestro identificador para todas la gestiones en donde lo involucremos como el caso de Triggers.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Type'''&lt;br /&gt;
|| Indicar de que entidad queremos recibir informacion.&lt;br /&gt;
||Puede ser al &amp;quot;Agente Zabbix&amp;quot; o a el Hardware como impresoras, switch o routers.   &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Key'''&lt;br /&gt;
|  | los &amp;quot;Items&amp;quot; utilizan &amp;quot;Key&amp;quot; que son parámetros de Zabbix.  Los &amp;quot;Key&amp;quot; nos permiten indicar específicamente que tipo de información vamos a solicitara a la entidad. Se puede considerar también como el nombre de alguna aplicación.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''host interface'''&lt;br /&gt;
|  |Es la direccion de red del servidor zabbix (puede ser uno o mas)&lt;br /&gt;
|  | &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Units'''&lt;br /&gt;
|  |Es la dirección de red del servidor zabbix (puede ser uno o mas)&lt;br /&gt;
|  | &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Type of information'''&lt;br /&gt;
|  |Tipo de unidades con el que mostrar Zabbix el valor segundos, minutos, euros,....&lt;br /&gt;
|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cuando termine, haga clic en Guardar.   El nuevo elemento debe aparecer en la ITEMLIST. &lt;br /&gt;
Para mas informacion [[http://entation/1.8/manual/config/items#zabbix_agent. ver documentación Zabbix]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Ver la información recolectada por el item =====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' Normalmente para ver la información lo encontraremos en &amp;quot;Monitoring → Latest data&amp;quot;,luego &lt;br /&gt;
 clic en el signo &amp;quot;+&amp;quot; en &amp;quot;other&amp;quot; siempre que no pertenezca a una aplicación. &lt;br /&gt;
 En caso contrario, estará bajo el nombre de la aplicación.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Después de definir el &amp;quot;Item&amp;quot; vamos a revisar la información que esta recolectando.  .  La información comenzará a ser recolectada según el tiempo que le indicamos en el &amp;quot;Item&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:VerInfoITEM.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
La espera para recibir la información varía dependiendo del tiempo de recolección del item, la mayoría suele ser aproximadamente al minuto de generar el &amp;quot;Item&amp;quot;. Zabbix le ofrece la opción de visualizar la información en forma gráfica (sencilla).  En el &amp;quot;Item&amp;quot; en lista haga clic en la columna &amp;quot;History - Graph&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:VIsualGraficaValorItem.png|center|750px]]&lt;br /&gt;
Si en un caso usted no observa información le recomendamos:&lt;br /&gt;
  &lt;br /&gt;
* Ingrese al &amp;quot;Item&amp;quot; y revise que la información del &amp;quot;Key&amp;quot; este igual al ejemplo &amp;quot;system.cpu.load&amp;quot; &lt;br /&gt;
* Verifique que el agente este funcionando en el &amp;quot;Servidor a ser monitoreado&amp;quot; y que &amp;quot;El Servidor recolector Zabbix&amp;quot; este funcionando. &lt;br /&gt;
* El icono &amp;quot;Z&amp;quot; en el host debe estar en color verde. &lt;br /&gt;
* Asegure que esta monitoreando el servidor que le agregó este &amp;quot;Item&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Configurar los Triggers para los host====&lt;br /&gt;
A partir de la información que captura los agentes , el servidor de Zabbix comienza a efectuar la recolección de estos items en la base de datos. Con esto se tiene un registro histórico de tales mediciones, que pueden ser tan simples como un simple ping hasta datos de uso de disco, memoria, cpu, etc.&lt;br /&gt;
A partir de los datos que se reciben de los agentes lo que sigue es definir y configurar Triggers, que son evaluaciones que hace Zabix de estos datos para determinar la existencia de un Problema en un dispositivo.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Nota: Un trigger necesita una accion, que indica que hacer cuando se activa el trigger.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un trigger(disparador) es un tipo de reacción ante unas medidas, como un disparador en el que si pasa algo se activa. Los Trigger en Zabbix son módulos que creamos a uno o múltiples &amp;quot;Items&amp;quot; para evaluar o comparar los valores recolectados por los &amp;quot;Items&amp;quot; con condiciones que nosotros definamos.  Las condiciones son de tipo aritmético y lógico.&lt;br /&gt;
&lt;br /&gt;
Para configurar un &amp;quot;Trigger o Disparador&amp;quot; seleccionamos &amp;quot;Configuration → Hosts&amp;quot; localizamos el &amp;quot;Host&amp;quot; de ejemplo que creamos y luego hacemos clic en &amp;quot;Trigger&amp;quot;, después haga clic en &amp;quot;Create Trigger&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Parametros o campos a rellenar para una configuración básica :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center ;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Name'''&lt;br /&gt;
|  | Definir un nombre para el trigger.  Este nombre va a ser nuestro identificador para todas la gestiones en donde lo involucremos como el caso de los eventos.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Expression'''&lt;br /&gt;
||  Hay que indicar para que medida se crea (item) y sus funciones con los parametros adecuados. '''''Recomendación usar expression constructor que pedirá siempre al crearlo, para que item es y sus funciones...'''''&lt;br /&gt;
||Ejemplo: {New host:system.cpu.load.avg(180)}&amp;gt;2 &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Key'''&lt;br /&gt;
|  | los &amp;quot;Items&amp;quot; utilizan &amp;quot;Key&amp;quot; que son parámetros de Zabbix.  Los &amp;quot;Key&amp;quot; nos permiten indicar específicamente que tipo de información vamos a solicitara a la entidad. Se puede considerar tambien como el nombre de alguna aplicacion.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Una descripción breve sobre el trigger.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Severity'''&lt;br /&gt;
|  | everidad distinguida por colores,&lt;br /&gt;
|| No classified&lt;br /&gt;
 Information&lt;br /&gt;
 Warning&lt;br /&gt;
 Average&lt;br /&gt;
 High&lt;br /&gt;
 Disaster&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Comprobar el estado del trigger =====&lt;br /&gt;
Podemos ver el estado del &amp;quot;Trigger&amp;quot; en &amp;quot;Monitoring → Triggers&amp;quot;.El  color en caso de que se active depende de la severidad definida. Por ejemplo,  si el &amp;quot;Trigger&amp;quot; esta en color verde indica que el resultado de la métrica se mantiene por debajo de la condición que indicamos.  Por el contrario si el resultado esta &amp;quot;sobre lo indicado&amp;quot; su color sera rojo.&lt;br /&gt;
&lt;br /&gt;
[[File:EstadoTrigger.png|center|750px]]&lt;br /&gt;
&lt;br /&gt;
====Asociar un Action al trigger====&lt;br /&gt;
&lt;br /&gt;
Una action(acción) sirve para configurar un mensaje de alerta o una accion para Zabbix, ante un problema. Hay varias formas de gestionar un problema a través de una acción:&lt;br /&gt;
&lt;br /&gt;
# A través de mensajes simples, alertando al instante.&lt;br /&gt;
# Escalar los mensajes hacia el jefe y/o otros grupos.&lt;br /&gt;
# Ejecución de commandos remotos.&lt;br /&gt;
# Notificaciones repetidas hasta que se resuelve el problema.&lt;br /&gt;
# Notificaciones y comandos retardados.&lt;br /&gt;
# Escenario complejo, la combinación de todo lo anterior.&lt;br /&gt;
&lt;br /&gt;
Para crear una configuración en &amp;quot;Configuration-Actions&amp;quot;. La explicación esta en la [[ https://www.zabbix.com/documentation/2.0/manual/config/notifications/action documentación de Zabbix]].&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integraciones con servicios externos ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Presencia con Openfire ===&lt;br /&gt;
'''''VIVA'''''it se integra con servidor XMPP Openfire en su versión 3.10.2 (última probada)&lt;br /&gt;
&lt;br /&gt;
Además del servidor, es necesario instalar un plugin de integración con asterisk 13, denominado &amp;quot;asterisk IM&amp;quot;, versión 1.4.1&lt;br /&gt;
&lt;br /&gt;
La instalación del servidor Openfire es una instalación estándar, realizada de paquete&lt;br /&gt;
&lt;br /&gt;
La instalación del plugin es un &amp;quot;jar&amp;quot; que se carga desde la pagina de plugins de openfire&lt;br /&gt;
&lt;br /&gt;
Con esto conseguiremos comunicar asterisk y OPenfire de manera que:&lt;br /&gt;
*Los estados telefónicos de una extensión '''''VIVA'''''it  se reflejen en Openfire&lt;br /&gt;
*Poder marcar desde los clientes de IM instalados en los puestos&lt;br /&gt;
*Ver en el cliente llamadas entrantes al teléfono&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;Enlaces de interes:&amp;lt;/big&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
[http://www.igniterealtime.org/projects/openfire/ Página proyecto openfire]&lt;br /&gt;
&lt;br /&gt;
[https://community.igniterealtime.org/thread/56076 Página proyecto &amp;quot;asterisk IM&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reuniones virtuales con Openmeetings ===&lt;br /&gt;
'''OpenMeetings''' es un sistema de vídeo web-conferencia en tiempo real. Usando recursos como audio (micrófono), vídeo (cámara web), posibilidad de subir y convertir presentaciones (en PDF , PPT o ODP que se convierten a Flash), compartición de la pantalla de tu ordenador, o pizarra digital compartida, panel de administración, posibilidad de grabar las sesiones… y completo soporte multiplataforma, es decir, que aparte de poder grabar las sesiones, se puede compartir un escritorio también desde una máquina Linux.&lt;br /&gt;
&lt;br /&gt;
Para instalar '''OpenMettings''' debe seguir el [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manuales_de_instalaci%C3%B3n#Instalaci.C3.B3n_de_Openmeetings | manual de Instalación de Openmeetings]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]] &lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:VIVAit Suite]]&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Homologaci%C3%B3n_de_Terminales&amp;diff=6609</id>
		<title>Homologación de Terminales</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Homologaci%C3%B3n_de_Terminales&amp;diff=6609"/>
		<updated>2018-04-04T10:27:31Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* 6921 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! '''Producto: '''!! VIVAit Call &lt;br /&gt;
VIVAit Suite &lt;br /&gt;
|- &lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
== Tabla global de compatibilidad ==&lt;br /&gt;
&lt;br /&gt;
La siguiente tabla muestra los terminales probados y homologados en la mesa de pruebas de la plataforma VIVAit&lt;br /&gt;
&lt;br /&gt;
'''Otras partes pueden haber implantado existosamente otras marcas y modelos'''&lt;br /&gt;
&lt;br /&gt;
Respecto a los terminales marca '''Cisco''', si bien es posible cargar módulos SCCP y MGCP en VIVAit, desconocemos la funcionalidad (qué funciona y qué no), la estabilidad (se cae o no se cae) y la escalabilidad (cuantos elementos se soportan y cuanto afecta cada elemento adicional a las prestaciones del sistema) en un entorno que no se considere de uso '''testimonial''', por lo que '''no podemos asegurar su funcionalidad ni su funcionamiento'''.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Marca !! Modelo !! Probado !! Homologado !! Limitaciones !! observaciones&lt;br /&gt;
|- &lt;br /&gt;
|- &lt;br /&gt;
| Aastra (Mitel) || 6731i || Si || Si || No || --  &lt;br /&gt;
|- &lt;br /&gt;
| Aastra (Mitel) || 6753i || Si || Si || No || --  &lt;br /&gt;
|- &lt;br /&gt;
| Aastra (Mitel) || 6755i || Si || Si || No || -- &lt;br /&gt;
|- &lt;br /&gt;
| Aastra (Mitel) || 6865i || Si || Si || No || -- &lt;br /&gt;
|- &lt;br /&gt;
| Cisco || 3905 ||Si ||  &amp;lt;span style=&amp;quot;color:#000000; background:#FF0000&amp;quot;&amp;gt; ''' NO ''' &amp;lt;/span&amp;gt; || Si ||[[#3905|'''VER OBSERVACIONES''']]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco || 6921 ||en proceso  || || ||[[#6921|'''VER OBSERVACIONES''']]&lt;br /&gt;
|-&lt;br /&gt;
| Cisco || 6941 || Si || Si || Si ||[[#6941|'''VER OBSERVACIONES''']]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco || 6945 || Si || Si || Si ||[[#6945|'''VER OBSERVACIONES''']]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco || 7911 || Si || Si || Si ||[[#7911|'''VER OBSERVACIONES''']]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Validado SAT desde versión 2&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| Cisco || 7912 ||Si  || Si || Si ||[[#7912|'''VER OBSERVACIONES''']]&lt;br /&gt;
&lt;br /&gt;
Validado SAT desde versión 2&lt;br /&gt;
|-&lt;br /&gt;
| Cisco || 7921 ||en proceso  || || ||--&lt;br /&gt;
|- &lt;br /&gt;
| Cisco || 7940 G ||Si  ||Si || Si ||[[#7940|'''VER OBSERVACIONES''']]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco || 7941 IP ||Si  ||Si || Si ||[[#7941IP|'''VER OBSERVACIONES''']]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco || 7942 ||Si  || Si  || Si ||[[#7942|'''VER OBSERVACIONES''']]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco || 7945 ||Si  || SI  || Si ||[[#7945|'''VER OBSERVACIONES''']]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco || 7965 ||Si  || SI  || Si ||[[#7965|'''VER OBSERVACIONES''']]&lt;br /&gt;
|-&lt;br /&gt;
|Cisco || 8811 IP || Si || Si || Si ||[[#8811IP|'''VER OBSERVACIONES''']]&lt;br /&gt;
|-&lt;br /&gt;
| Cisco || IP SPA 512G|| Si||Si ||Si ||[[#512G|'''VER OBSERVACIONES''']]&lt;br /&gt;
|-&lt;br /&gt;
| Cisco || IP SPA 514G|| Si||Si ||Si ||[[#514G|'''VER OBSERVACIONES''']]&lt;br /&gt;
|- &lt;br /&gt;
| Cisco || ATA 186 || No  || No  || ||PROBADO E INSTALADO POR SAT&lt;br /&gt;
|- &lt;br /&gt;
| Cisco || VG224 ||No  || &amp;lt;span style=&amp;quot;color:#000000; background:#FF0000&amp;quot;&amp;gt; ''' NO ''' &amp;lt;/span&amp;gt;  || ||[[#VG224|'''VER OBSERVACIONES''']]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || DP715 || Si || Si || Si  ||[[#DP715_EU|'''VER OBSERVACIONES''']]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || GXP1405 || Si || Si || No || Homologado desde versión 2&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || GXP1625 || Si || Si || No ||&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || GXP1628 ||en proceso  || || ||--&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || GXP2135 || Si || Si || Si ||[[#GXP_2135|'''VER OBSERVACIONES''']]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || GXP2140 || Si || Si || Si ||[[#GXP_2140|'''VER OBSERVACIONES''']]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || GXP2160 ||en proceso  || || ||--&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || GXP2170 || Si || Si || Si ||&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || GXV3240 || Si || Si || Si ||[[#GXV_3240|'''VER OBSERVACIONES''']]&lt;br /&gt;
|- &lt;br /&gt;
| Grandstream || GXV3275 || Si || Si || Si ||[[#GXV_3275|'''VER OBSERVACIONES''']]&lt;br /&gt;
|- &lt;br /&gt;
| Huawei || eSpace 7910 || Si|| &amp;lt;span style=&amp;quot;color:#000000; background:#FF0000&amp;quot;&amp;gt; ''' NO ''' &amp;lt;/span&amp;gt; || Si ||[[#eSpace_7910|'''VER OBSERVACIONES''']] &lt;br /&gt;
|- &lt;br /&gt;
| Huawei || eSpace 7950 || Si|| &amp;lt;span style=&amp;quot;color:#000000; background:#FF0000&amp;quot;&amp;gt; ''' NO ''' &amp;lt;/span&amp;gt; || Si  ||[[#eSpace_7950|'''VER OBSERVACIONES''']]&lt;br /&gt;
|- &lt;br /&gt;
| ICM || 10000G || Si || Si || No || -- &lt;br /&gt;
|-&lt;br /&gt;
| Innovaphone || IP110 || Si ||Si || ||[[#IP110|'''VER OBSERVACIONES''']]&lt;br /&gt;
|- &lt;br /&gt;
| Mitel || 5212 || Si || Si || Si ||[[#5212|'''VER OBSERVACIONES''']] &lt;br /&gt;
|- &lt;br /&gt;
| Mitel || 6865i || Si || Si || No || -- &lt;br /&gt;
|- &lt;br /&gt;
| Mitel || 6867i || Si || Si || No || -- &lt;br /&gt;
|- &lt;br /&gt;
| Mobotix || T25 || Si ||  &amp;lt;span style=&amp;quot;color:#000000; background:#FF0000&amp;quot;&amp;gt; ''' NO ''' &amp;lt;/span&amp;gt; || N/A ||[[#T25|'''VER OBSERVACIONES''']]&lt;br /&gt;
|-&lt;br /&gt;
| Panasonic || KX-TGP600+TPA60 || Si || Si || Si || [[#KX-TGP600|'''VER OBSERVACIONES''']] &lt;br /&gt;
|-&lt;br /&gt;
| Siemens || Gigaset C530 IP || Si || &amp;lt;span style=&amp;quot;color:#000000; background:#FF0000&amp;quot;&amp;gt; ''' NO ''' &amp;lt;/span&amp;gt; || &amp;lt;span style=&amp;quot;color:#000000; background:#FF0000&amp;quot;&amp;gt; ''' SI ''' &amp;lt;/span&amp;gt; || Durante las pruebas no se ha podido hacer el aprovisionamiento&lt;br /&gt;
|-&lt;br /&gt;
|Siemens||OpenStage 15_SIP||Si||Si||Si||'''El teléfono se aprovisiona manualmente'''&lt;br /&gt;
[[ #OpenStage 15|'''VER OBSERVACIONES''']]&lt;br /&gt;
|- &lt;br /&gt;
| Unifi || VoIP Phone || Si ||  &amp;lt;span style=&amp;quot;color:#000000; background:#FF0000&amp;quot;&amp;gt; ''' NO ''' &amp;lt;/span&amp;gt; || N/A || Pruebas básicas de registro SIP &lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T18P || Si || Si || Si ||[[#T18P|'''VER OBSERVACIONES''']]&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T20P || Si || Si || No || Homologado desde versión 2&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T21P || Si || Si || No || Homologado desde versión 2&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T21PE2 || en proceso || en proceso ||  ||&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T22P || en proceso || en proceso ||  ||&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T23G || en proceso ||  || ||&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T26P || Si || Si || No || Homologado desde versión 2&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T27P || en proceso ||  || ||&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T28P || Si || Si || No || Homologado desde versión 2&lt;br /&gt;
|-&lt;br /&gt;
| Yealink || T29G || Si || Si || No || Homologado desde versión 2&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T42G || Si || Si || No ||&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || T46G || Si || Si || No ||&lt;br /&gt;
|- &lt;br /&gt;
| Yealink || VP530 || Si || Si || No ||&lt;br /&gt;
|-&lt;br /&gt;
|Yealink|| SIP-T58V||Si||Si||No|| [[#SIP-T58V|'''VER OBSERVACIONES''']]&lt;br /&gt;
|- &lt;br /&gt;
| Zoiper || Business Windows || Si || Si || No || Homologado desde versión 2&lt;br /&gt;
Integrado con VIVAit Suite (controles telefónicos desde formularios)&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Cisco ==&lt;br /&gt;
=== 3905 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Item !! Observaciones&lt;br /&gt;
|- &lt;br /&gt;
!BOTONES!!&lt;br /&gt;
|-	&lt;br /&gt;
|NOMBRE DEL BOTÓN Y ACCIÓN&lt;br /&gt;
|-	&lt;br /&gt;
|Botón Función: Con el teléfono descolgado, el botón Selección accede a funciones preestablecidas.||'''NO OK'''. Se pierden dos funciones mencionadas en el manual de usuario: &amp;quot;&amp;quot;Captura de llamadas&amp;quot;&amp;quot; y &amp;quot;&amp;quot;Captura de llamadas de  Grupo&amp;quot;&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|Desvío Incondicional. Aparece la función pero no activa el desvío&lt;br /&gt;
|-&lt;br /&gt;
|Acceso a mensajería|| Pendiene de prueba&lt;br /&gt;
|-&lt;br /&gt;
!TAREAS TELEFÓNICAS COMUNES!!&lt;br /&gt;
|-	&lt;br /&gt;
|DESCRIPCIÓN DE LA TAREA&lt;br /&gt;
|-&lt;br /&gt;
|Realizar una llamada interna descolgando el teléfono. Se marcan indistintamente números de usuarios y de extensión física, del mismo y de distinto nodo que la del SIP 3905.||	El display del llamante (3905) presenta el nombre de la extensión marcada. El diplay del llamado presenta nombre y número del usuario llamante.&lt;br /&gt;
|-&lt;br /&gt;
|Poner la llamada en espera y reanudarla (Botón Espera/Continuar).||'''NO OK'''. La vuelta al lado en conversación tarda segundos en producirse.&lt;br /&gt;
|-&lt;br /&gt;
|Recibir y atender una llamada interna: Desde diferentes terminales origen marcamos el número de la extensión del SIP 3905.||	&amp;quot;El establecimiento (señalización de la llamada en el SIP 3905) se retrasa de modo perceptible, respecto a las que se originan en los modelos Aastra, Mitel, YealinK; cuando la llamada se origina en CISCO 7942 y CISCO 7911).&lt;br /&gt;
El display del llamado presenta el nombre asociado a la extensión llamante. El display del llamante nombre y número de extensión llamada.&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Llamar a un usuario en movilidad (presentado en una extensión del mismo y de otro nodo). El display del llamante (3905) presenta el nombre del usuario llamado. ||El display del teléfono conectado presenta el nombre y número de usuario llamante.&lt;br /&gt;
|-&lt;br /&gt;
|Llamar a una extensión con desvío incondicional activo.||El display del 3905 presenta el nombre asociado a la extensión conectada (la que recibe la llamada desviada).&lt;br /&gt;
|-&lt;br /&gt;
|Llamar a un usuario con desvío incondicional activo||	El display del 3905 presenta el nombre asociado a la extensión conectada (la que recibe la llamada desviada).&lt;br /&gt;
|-&lt;br /&gt;
|Llamar a extensión y a usuario con desvío &amp;quot;si no contesta&amp;quot; activo. Se prueban ambos casos||Cuando se produce el desvío de la llamada iniciada, el display del 3905 cambia para presentar el nombre asociado a la extensión conectada (posición de desvío).&lt;br /&gt;
|-&lt;br /&gt;
|Atender una llamada en espera: Con una llamada establecida, el 3905 recibe una llamada entrante (1 tono de llamada en el auricular + información del llamante en el display). Pulsa la tecla Espera/continuar, la conversación en curso queda en espera y se establece conexión con la nueva llamada).||'''NO OK'''. El establecimiento de la nueva conexión se hace correctamente  pero la vuelta al otro lado (cursor para seleccionar la otra comunicación y tecla espera/continuar) tarda segundos en producirse.&lt;br /&gt;
|-&lt;br /&gt;
|Transferencia con consulta de una llamada local en curso a otra extensión.||La transferencia se realiza pero en el display del 3905 aparece indicación de que la conexión con el lado que queremos transferir queda en espera (no es así).&lt;br /&gt;
|-&lt;br /&gt;
|Transferencia con consulta de una llamada local en curso al exterior.||La transferencia se realiza pero en el display del 3905 aparece indicación de que la conexión con el lado que queremos transferir queda en espera (no es así).&lt;br /&gt;
|-&lt;br /&gt;
|Consulta Repetida: Antes de transferir una llamada el 3905 tiene la posibilidad de conectarse a uno u otro lado de la comunicación haciendo uso de las teclas cursor y espera/continuar.||Se presenta el mismo retardo en el establecimiento de la comunicación que cuando aparcamos y retomamos una llamada.&lt;br /&gt;
|-&lt;br /&gt;
|Transferencia sin consulta: Con señal de llamada en el lado C pulsamos la tecla de transferencia. Se prueba con llamada externa e interna.||El display de la extensión que recibe la llamada transferida no presenta información del conectado, se queda con la información del usuario asociado al 3905.Además en el display del 3905 aparece indicación de que la conexión con el lado que queremos transferir queda en espera (no es así).&lt;br /&gt;
|-&lt;br /&gt;
|Conferencia a Tres||'''NO OK'''. La conferencia debe establecerse haciendo uso del gancho del teléfono y No Funciona.&lt;br /&gt;
|-&lt;br /&gt;
|Captura de llamadas: Capturar una llamada que está dirigida a otro teléfono.||Con las limitaciones que tiene la facilidad en la versión Asterisk en pruebas.&lt;br /&gt;
|-&lt;br /&gt;
|Captura de llamadas en un Grupo de Captura: Probamos que el 3905 puede capturar las llamadas dirigidas a cualquier extensión del grupo de captura de llamadas al que pertenece.||Con las limitaciones que tiene la facilidad en la versión Asterisk en pruebas.&lt;br /&gt;
|-&lt;br /&gt;
|Retro llamada: El 3905 activa el servicio de retro llamada tras recibir comunicando cuando llama a una extensión de su mismo nodo.||Tal como funciona en la versión Asterisk en pruebas.&lt;br /&gt;
|-&lt;br /&gt;
|Desvío Incondicional activado con la función del menú del teléfono||'''NO OK'''. Después de introducir el número de teléfono al que se desea realizar el desvío no hay confirmación de que quede activo.&lt;br /&gt;
Realizamos una llamada y no se produce el desvío.&lt;br /&gt;
|-&lt;br /&gt;
|Desvío Incondicional de la extensión física activado por código||El desvío queda activo y se produce (tanto a otra extensión, como al exterior). La locución de confirmación se altera con pitidos&lt;br /&gt;
No queda información de que el teléfono esté desviado.&lt;br /&gt;
|-&lt;br /&gt;
|Desactivación del desvío incondicional de la extensión física.||El desvío se desactiva.La locución de confirmación se altera con un pitido al final.&lt;br /&gt;
|-&lt;br /&gt;
|Desvío incondicional del usuario activado por código||El desvío queda activo y se produce (tanto a otra extensión, como al exterior). La locución de confirmación se altera con pitidos. No queda información de que el teléfono esté desviado.&lt;br /&gt;
|-&lt;br /&gt;
|Desactivación del desvío incondicional del número de usuario.||El desvío se desactiva.&lt;br /&gt;
La locución de confirmación se altera con un pitido al final.&lt;br /&gt;
|-&lt;br /&gt;
|Desvío por ocupado de la extensión física activado por código.||'''NO OK'''. Con 3905 ocupado en una llamada interna, la primera llamada que realizamos se señaliza como llamada en espera y la puede atender. Con 3905 ocupado y con una llamada en espera atendida, la siguiente llamada dirigida a él da ocupado (NO SE DESVIA).&lt;br /&gt;
|-&lt;br /&gt;
|Desvío por ocupado del usuario activado por código.||	'''NO OK'''. Lo mismo que en el caso anterior.&lt;br /&gt;
|-&lt;br /&gt;
|Desvío si no contesta||Pendiente de probar.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 6921 ===&lt;br /&gt;
&amp;lt;!-- Presenta un problema con el boton de multiconferencia; este terminal (y otros de cisco) hacen la multiconferencia en un conference bridge externo, no en el propio terminal; al pasar el telefono a VIVAit Call este procedimiento no existe y la multiconferencia falla; estamos probando un parche existente en asterisk 11 y probandolo en asterisk 11. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!--las primeras pruebas han sido exitosas; creemos que los terminales podrían usarse incluso con multiconferencia aplicando este parche a asterisk 13.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Se probó parche desarrollado para Asterisk 11 con resultado negativo (la conferencia a tres se establecía pero se cortaba a los 40s.) --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Item !! Observaciones&lt;br /&gt;
|- &lt;br /&gt;
!BOTONES!!&lt;br /&gt;
|-&lt;br /&gt;
|Se comprueba la funcionalidad esperada al actuar sobre el botón.&lt;br /&gt;
|-	&lt;br /&gt;
!NOMBRE DEL BOTÓN Y ACCIÓN!!&lt;br /&gt;
|-	&lt;br /&gt;
|'''Botón de Contactos:''' Abre y cierra el menú Directorios.Se utiliza para acceder a los directorios personal y corporativo.||Con la configuración de prueba del terminal, no está operativo. Al pulsar el display muestra &amp;quot;Solicitando&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|'''Botón Transferencia:''' Inicia la transferencia de la llamada en curso y Transfiere la llamada cuando el destino está en llamada o cuando responde.||La transferencia directa o transferencia ciega NO ES POSIBLE con este terminal.&lt;br /&gt;
|-&lt;br /&gt;
|'''Botón Conferencia:''' Inicia una llamada de Conferencia.||&lt;br /&gt;
|-&lt;br /&gt;
|'''Botón Espera:''' Pone en espera la llamada activa||Para recuperar la comunicación con la llamada en espera hacer uso de la tecla programada &amp;quot;Cont&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''Botón Silencio (Mute):''' Activa o desactiva el micrófono.||Cuando el micrófono está silenciado, el botón está encendido.&lt;br /&gt;
|-&lt;br /&gt;
|Botones de Línea: 2 botones (1 y 2).||	&amp;quot;El botón de línea 1 selecciona la línea de teléfono principal. '''PROBADO'''&lt;br /&gt;
Según cómo el administrador del sistema configure el teléfono, el botón de línea 2 podría permitir el acceso a:&lt;br /&gt;
&lt;br /&gt;
• La línea de teléfono secundaria '''NO PROBADO'''&lt;br /&gt;
&lt;br /&gt;
• Un número de marcación rápida (botón de marcación rápida) '''PROBADO''' junto a BLF.&lt;br /&gt;
&lt;br /&gt;
• Servicio basado en la Web (por ejemplo, el botón Libreta personal de direcciones). '''NO PROBADO'''&lt;br /&gt;
|-&lt;br /&gt;
|Botón Auriculares: Activa o desactiva los auriculares.|| Cuando los auriculares están activados, el botón está encendido. '''PTE PRUEBA'''&lt;br /&gt;
|-&lt;br /&gt;
!BOTONES PROGRAMADOS!!&lt;br /&gt;
|-&lt;br /&gt;
|||Se trata de botones que dan acceso a opciones de funciones que aparecen en la pantalla LCD y que varían dependiendo del estado del teléfono y de la llamada en curso. Se comprueba que efectivamente se ejecuta la opción indicada para el botón en cada situación&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!OPCIÓN PROGRAMADA!!&lt;br /&gt;
|-	&lt;br /&gt;
|NoMlsta: Activa/desactiva la función Mo Molestar.||	Es una función configurable por el administrador. La configuración probada es &amp;quot;la llamada entrante se señaliza con un destello ámbar del botón de línea, no hay indicación sonora&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|Marc. Ráp: Si se ha configurado una lista de numeros de marcación rápida.|| Envía el número traducido que se corresponde con la cifras marcadas en el teclado. '''NO PROBADO:''' En la configuración del terminal probada, la programación de una lista de números de marcación rápida no era accesible.&lt;br /&gt;
|-&lt;br /&gt;
|Trnsf: Transfiere la llamada actual al número marcado.||Aparece después de iniciar una transferencia con el botón  Transferencia del panel.&lt;br /&gt;
|-&lt;br /&gt;
!TAREAS TELEFÓNICAS COMUNES!!	&lt;br /&gt;
|-&lt;br /&gt;
!DESCRIPCIÓN DE LA TAREA!!&lt;br /&gt;
|-	&lt;br /&gt;
|Transferir la llamada actual a un nuevo número sin consulta (Transferencia Directa)||	No puede realizar una transferencia directa, la opción transferir no aparece en el display hasta que se produce llamada en el lado C (extensión que recibe la transferencia). Si transferimos en llamada antes de que descuelgue el lado C se produce el reparo general identificado para este caso de transferencia (el display del terminal que recibe la llamada transferida no actualiza para presentar el número conectado).&lt;br /&gt;
|-&lt;br /&gt;
|Iniciar una conferencia a tres.||No es posible en Asterisk 13.&lt;br /&gt;
|-&lt;br /&gt;
|Activar No Molestar||	Con esta función activa las llamadas recibidas por el terminal se señalizan en el display pero el timbre no suena.&lt;br /&gt;
|-&lt;br /&gt;
!BUZÓN DE VOZ!!&lt;br /&gt;
|-	&lt;br /&gt;
|Señalización en el terminal de mensajes nuevos pendientes.||Indicación luminosa en led del micro teléfono.&lt;br /&gt;
|-&lt;br /&gt;
|Consulta de mensajes||	Una vez consultados los mensajes en la carpeta nuevos, desaparece la señalización en el terminal de mensajes nuevos pendientes.&lt;br /&gt;
|-&lt;br /&gt;
|SUPERVISIÓN (BLF) En tecla 2 del panel.|| El led asociado se ilumina cuando se establece una llamada&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 6941 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Item !! Observaciones&lt;br /&gt;
|-	&lt;br /&gt;
|Transferencias con Consulta ||Al coger nueva línea e introducir el destino de la consulta, no aparece la función dínámica LLAMADA, debiendo esperar la temporización “interdigit timeout” correspondiente para que se realice la llamada.&lt;br /&gt;
|-&lt;br /&gt;
|Transferencia sin consulta|| El teléfono no tiene la opción de trasferencia sin consulta. Se puede utilizar la función transferencia antes de contestar. La línea utilizada para la transferencia se queda retenida, liberándose por time-out o manualmente.&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!SERVICIO JEFE SECRETARIA!!	&lt;br /&gt;
|-&lt;br /&gt;
|Conferencia||	Después de pulsar CONFERENCIA e introducir el nuevo destino a incorpora a la conferencia, no aparece la función dínámica LLAMADA, debiendo esperar la temporización “interdigit timeout” correspondiente para que se realice la llamada.&lt;br /&gt;
|-&lt;br /&gt;
|Transferencia con consulta|| Al coger nueva línea e introducir el destino de la consulta, no aparece la función dínámica LLAMADA, debiendo esperar la temporización “interdigit timeout” correspondiente para que se realice la llamada.&lt;br /&gt;
|-&lt;br /&gt;
|Transferencia sin consulta||	El teléfono no tiene la opción de trasferencia sin consulta. Se puede utilizar la función transferencia antes de contestar.&lt;br /&gt;
La línea utilizada para la transferencia se queda retenida, liberándose por time-out o manualmente.&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!AGENTE DE ACD!!	&lt;br /&gt;
|-&lt;br /&gt;
!Generar llamadas!!	&lt;br /&gt;
|-&lt;br /&gt;
!Administración de llamadas!!&lt;br /&gt;
|-&lt;br /&gt;
|Conferencia con supervisor desde el terminal||	'''NOK''' Aparece el mensaje “No se puede completar conferencia”&lt;br /&gt;
|-&lt;br /&gt;
|Conferencia con no supervisor desde el terminal|| '''NOK''' Aparece el mensaje “No se puede completar conferencia”&lt;br /&gt;
|-&lt;br /&gt;
!Campañas!!	&lt;br /&gt;
|-&lt;br /&gt;
!Saliente Predictiva!!&lt;br /&gt;
|-&lt;br /&gt;
|Establecida comunicación con agente, consulta destino externo desde VIVA desk|| '''NOK''' La llamada se indica en el terminal pero no progresa&lt;br /&gt;
|-&lt;br /&gt;
|Conferencia desde el terminal|| '''NOK''' Aparece el mensaje “No se puede completar conferencia”&lt;br /&gt;
|-&lt;br /&gt;
!Saliente Progresiva!!	&lt;br /&gt;
|-&lt;br /&gt;
|Establecida comunicación con agente, consulta destino externo desde VIVA desk|| '''NOK''' La llamada se indica en el terminal pero no progresa&lt;br /&gt;
|-&lt;br /&gt;
|Conferencia desde el terminal|| '''NOK''' Aparece el mensaje “No se puede completar conferencia”&lt;br /&gt;
|-&lt;br /&gt;
!Saliente Vista Previa!!&lt;br /&gt;
|-&lt;br /&gt;
|Establecida comunicación con agente, consulta destino externo desde VIVA desk|| '''NOK''' La llamada se indica en el terminal pero no progresa&lt;br /&gt;
|-&lt;br /&gt;
|Establecida comunicación con agente, consulta destino externo desde el terminal|| '''NOK''' La llamada se indica en el terminal pero no progresa&lt;br /&gt;
|-&lt;br /&gt;
|Conferencia desde el terminal|| '''NOK''' Aparece el mensaje “No se puede completar conferencia”&lt;br /&gt;
|-&lt;br /&gt;
!Saliente Bajo Demanda!!&lt;br /&gt;
|-&lt;br /&gt;
|Establecida comunicación con agente, consulta destino externo desde VIVA desk|| '''NOK''' La llamada se indica en el terminal pero no progresa&lt;br /&gt;
|-&lt;br /&gt;
|Establecida comunicación con agente, consulta destino externo desde el terminal|| '''NOK''' La llamada se indica en el terminal pero no progresa&lt;br /&gt;
|-&lt;br /&gt;
|Conferencia desde el terminal|| '''NOK''' Aparece el mensaje “No se puede completar conferencia”&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 6945 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Item !! Observaciones&lt;br /&gt;
|- &lt;br /&gt;
|Mute: silencia a los participantes en una multiconferencia||Al pulsar la tecla no se silencia ninguna parte de la multiconferencia.&lt;br /&gt;
|-&lt;br /&gt;
|Cisco inicia la llamada y realiza la transferencia||En un entorno de terminales Cisco, se pierde el micro.&lt;br /&gt;
|- &lt;br /&gt;
|Cisco inicia la llamada, luego es transferido por la extensión a la que llamó||En un entorno de terminales Cisco, se pierde el micro.&lt;br /&gt;
|-&lt;br /&gt;
|En transferencias sin consulta: Cisco inicia la llamada y realiza la transferencia||Para realizar la transferencia es necesario esperar que el destino de la transferencia comience a sonar.&lt;br /&gt;
Las extensiones que quedan al habla presentan en pantalla información del teléfono conectado.&lt;br /&gt;
Transcurrido el tiempo de no contesta, la llamada no vuelve a la extensión que inició la transferencia.&lt;br /&gt;
Al realizar la transferencia Cisco recibe señal similar a la señal de ocupado durante 20 segundos.&lt;br /&gt;
|- &lt;br /&gt;
|Desvío extensión por fuera de servicio||El llamante escucha silencio 30 segundos y después se produce el desvío. La situación no se informa en pantalla. Al llamante no se le informa del desvío hasta que la extensión destino del desvío descuelga. &lt;br /&gt;
|- &lt;br /&gt;
|Desvío extensión por fuera de servicio a mensajería||El llamante escucha silencio 30 segundos y después se produce el desvío. La situación no se informa en pantalla.&lt;br /&gt;
|- &lt;br /&gt;
|Llamada externa originada en secretaria, llama al jefe y luego transferida al exterior||En un entorno Cisco el destinatario externo de la transferencia escucha ruido.&lt;br /&gt;
|-&lt;br /&gt;
!Transferencia sin consulta:!!&lt;br /&gt;
|-&lt;br /&gt;
|Llamada local originada en secretaria, primero llama al jefe y luego transfiere||Tanto si la secretaria marca el número de extensión física del jefe como si marca el número de usuario.&lt;br /&gt;
Para realizar la transferencia es necesario esperar que el destino de la transferencia comience a sonar.&lt;br /&gt;
Las extensiones que quedan al habla presentan en pantalla información del teléfono conectado.&lt;br /&gt;
Transcurrido el tiempo de no contesta, la llamada no vuelve a la extensión que inicio la transferencia.&lt;br /&gt;
Al realizar la transferencia Cisco recibe señal similar a la señal de ocupado durante 20 segundos.&lt;br /&gt;
|-&lt;br /&gt;
|Llamada local originada en secretaria, llama a otra extensión y luego transfiere al jefe||Tanto si la secretaria marca el número de extensión física del jefe como si marca el número de usuario.&lt;br /&gt;
Para realizar la transferencia es necesario esperar que el destino de la transferencia comience a sonar.&lt;br /&gt;
Las extensiones que quedan al habla presentan en pantalla información del teléfono conectado.&lt;br /&gt;
Transcurrido el tiempo de no contesta, la llamada no vuelve a la extensión que inicio la transferencia.&lt;br /&gt;
Al realizar la transferencia Cisco recibe señal similar a la señal de ocupado durante 20 segundos.&lt;br /&gt;
|-&lt;br /&gt;
|Llamada externa originada en secretaria, llama al jefe y luego transferida al exterior||Tanto si la secretaria marca el número de extensión física del jefe como si marca el número de usuario.&lt;br /&gt;
Para realizar la transferencia es necesario esperar que el destino de la transferencia comience a sonar.&lt;br /&gt;
Las extensiones que quedan al habla presentan en pantalla información del teléfono conectado.&lt;br /&gt;
Transcurrido el tiempo de no contesta, la llamada no vuelve a la extensión que inicio la transferencia.&lt;br /&gt;
Al realizar la transferencia Cisco recibe señal similar a la señal de ocupado durante 20 segundos.&lt;br /&gt;
|-&lt;br /&gt;
|Llamada externa originada en secretaria, llama al exterior y luego transferida al jefe||Tanto si la secretaria marca el número de extensión física del jefe como si marca el número de usuario.&lt;br /&gt;
Para realizar la transferencia es necesario esperar que el destino de la transferencia comience a sonar.&lt;br /&gt;
Las extensiones que quedan al habla presentan en pantalla información del teléfono conectado.&lt;br /&gt;
Transcurrido el tiempo de no contesta, la llamada no vuelve a la extensión que inicio la transferencia.&lt;br /&gt;
Al realizar la transferencia Cisco recibe señal similar a la señal de ocupado durante 20 segundos.&lt;br /&gt;
|-&lt;br /&gt;
|Llamada local entrante a la secretaria y luego transfiere al jefe||Tanto si la secretaria marca el número de extensión física del jefe como si marca el número de usuario.&lt;br /&gt;
Para realizar la transferencia es necesario esperar que el destino de la transferencia comience a sonar.&lt;br /&gt;
Las extensiones que quedan al habla presentan en pantalla información del teléfono conectado.&lt;br /&gt;
Transcurrido el tiempo de no contesta, la llamada no vuelve a la extensión que inicio la transferencia.&lt;br /&gt;
Al realizar la transferencia Cisco recibe señal similar a la señal de ocupado durante 20 segundos.&lt;br /&gt;
|-&lt;br /&gt;
|Llamada externa entrante a la secretaria y luego transfiere al jefe||Tanto si la secretaria marca el número de extensión física del jefe como si marca el número de usuario.&lt;br /&gt;
Para realizar la transferencia es necesario esperar que el destino de la transferencia comience a sonar.&lt;br /&gt;
Las extensiones que quedan al habla presentan en pantalla información del teléfono conectado.&lt;br /&gt;
Transcurrido el tiempo de no contesta, la llamada no vuelve a la extensión que inicio la transferencia.&lt;br /&gt;
Al realizar la transferencia Cisco recibe señal similar a la señal de ocupado durante 20 segundos.&lt;br /&gt;
|-&lt;br /&gt;
|Llamada local entrante al jefe, recibida por la secretaria y trasferida después al jefe||Tanto si la secretaria marca el número de extensión física del jefe como si marca el número de usuario.&lt;br /&gt;
Para realizar la transferencia es necesario esperar que el destino de la transferencia comience a sonar.&lt;br /&gt;
Las extensiones que quedan al habla presentan en pantalla información del teléfono conectado.&lt;br /&gt;
Transcurrido el tiempo de no contesta, la llamada no vuelve a la extensión que inicio la transferencia.&lt;br /&gt;
Al realizar la transferencia Cisco recibe señal similar a la señal de ocupado durante 20 segundos.&lt;br /&gt;
|-&lt;br /&gt;
|Llamada externa entrante al jefe, recibida por la secretaria y trasferida después al jefe||Tanto si la secretaria marca el número de extensión física del jefe como si marca el número de usuario.&lt;br /&gt;
Para realizar la transferencia es necesario esperar que el destino de la transferencia comience a sonar.&lt;br /&gt;
Las extensiones que quedan al habla presentan en pantalla información del teléfono conectado.&lt;br /&gt;
Transcurrido el tiempo de no contesta, la llamada no vuelve a la extensión que inicio la transferencia.&lt;br /&gt;
Al realizar la transferencia Cisco recibe señal similar a la señal de ocupado durante 20 segundos.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 7911 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Item !! Observaciones&lt;br /&gt;
|- &lt;br /&gt;
!BOTONES DEL PANEL!!&lt;br /&gt;
|-&lt;br /&gt;
|Se comprueba la funcionalidad esperada al actuar sobre el botón.&lt;br /&gt;
|-	&lt;br /&gt;
!NOMBRE DEL BOTÓN Y ACCIÓN!!&lt;br /&gt;
|-&lt;br /&gt;
|Botón de Aplicaciones: Muestra el menú de aplicaciones (Mensajes de voz, Directorios, Configuración, Servicios, Ayuda).||Solo son operativas las opciones Directorios y Configuración. Quizá podría ponerse en funcionamiento la opción Mensajes si se configura el acceso al buzón de voz en el terminal.&lt;br /&gt;
|-&lt;br /&gt;
!BOTONES PROGRAMADOS|| 4 botones bajo el Display.!!&lt;br /&gt;
|-&lt;br /&gt;
| ||Cambian su funcionalidad según el estado del terminal y/o la llamada en curso. Se comprueba que efectivamente se ejecuta la opción indicada para el botón en cada situación&amp;quot;	&lt;br /&gt;
|-&lt;br /&gt;
|OPCIÓN PROGRAMADA&lt;br /&gt;
|-&lt;br /&gt;
|NvaLlam: Para realizar una llamada nueva.||Arranca tono de invitación a marcar y espera la marcación de cifras&lt;br /&gt;
|-&lt;br /&gt;
|Msjes:||'''NO OK'''. Quizá por falta de programación del acceso al buzón (en terminal).&lt;br /&gt;
|-&lt;br /&gt;
|NoMlsta: Evita que las llamadas entrantes suenen en el teléfono||La activació se señaliza con un mensaje en el display &amp;quot;No molestar está activo&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|Dsvinc: Activa/desactiva el desvío incondicional de las llamadas a otra extensión predeterminada en el proceso de activación||Se desvían todas las llamadas dirigidas al teléfono.&lt;br /&gt;
|-&lt;br /&gt;
|Monitor: Permite escuchar a nuestro interlocutor a través del altavoz||El terminal no es manos libres, podemos escuchar pero no nos escucharán mientras esté activada esta función.&lt;br /&gt;
|-&lt;br /&gt;
|MonDes: Desconecta la función monitor.||Recuperamos la comunicación con nuestro interlocutor a través del micro-receptor.&lt;br /&gt;
|-&lt;br /&gt;
|Confr: Iniciar una conferencia||En una conferencia a tres establecida, la acción sobre el botón &amp;quot;Espera&amp;quot; pone en espera a los dos conferenciantes.&lt;br /&gt;
|-&lt;br /&gt;
!TAREAS TELEFÓNICAS COMUNES!!&lt;br /&gt;
|-	&lt;br /&gt;
|DESCRIPCIÓN DE LA TAREA	&lt;br /&gt;
|-&lt;br /&gt;
|Realizar una llamada interna y otra externa descolgando el auricular y marcando. Con auricular colgado, pulsando tecla &amp;quot;Nvallam&amp;quot; y marcando.||Retardo apreciable desde que se envían las cifras hasta que se establece la conexión.&lt;br /&gt;
|-&lt;br /&gt;
|Utilizar los registros de llamadas para hacer una llamada||Secuencia: Botón de Aplicaciones-Directorios- Seleccionar una de las opciones (Received, Placed, Missed, Speed)- Seleccionar el destino deseado-Dial.&lt;br /&gt;
|-&lt;br /&gt;
|Cambiar a altavoz o auricular durante una llamada.||Monitor/MonDes. Solo sirve para escuchar por el altavoz a nuestro interlocutor.&lt;br /&gt;
|-&lt;br /&gt;
|Recibir una llamada en espera y contestarla||Con una llamada establecida y configurado para recibir llamadas en espera, cuando se recibe la segunda llamada, ésta se señaliza en el display con el icono de un teléfono oscilando y un tono espaciado en el auricular. Pulsando la tecla de navegación (arriba) el display presenta información del llamante. Pulsamos la tecla programada Contes y establecemos comunicación con el llamante dejando la llamada anterior en espera.&lt;br /&gt;
|-&lt;br /&gt;
|Transferir la llamada actual a un nuevo número sin consulta||No puede realizar una transferencia directa, la opción transferir no aparece en el display hasta que se produce llamada en el lado C (extensión que recibe la transferencia). Si transferimos en llamada antes de que descuelgue el lado C se produce el reparo general identificado para este caso de transferencia.&lt;br /&gt;
|-&lt;br /&gt;
|Iniciar una conferencia a tres||Para acceder al botón de opción &amp;quot;Confr&amp;quot;. Pulsar antes &amp;quot;más&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Activar No Molestar||Las llamadas entrantes se señalizan en el display y no suena el timbre del teléfono&lt;br /&gt;
|-&lt;br /&gt;
|Activar el desvío incondicional de las llamadas entrantes con función del teléfono||La situación de desvío activado se señaliza en el terminal.&lt;br /&gt;
|-&lt;br /&gt;
|Captura de llamadas. Captura de una llamada dirigida a otra extensión del mismo nodo (Cod. Captura+número de exten.)||Hay un retardo evidente desde que se envía la combinación de cifras de la captura hasta que se establece la conexión. Cuando se produce la captura, el display del 7911 presenta el número conectado.&lt;br /&gt;
|-&lt;br /&gt;
|Grupo de Captura: Captura llamadas dirigidas a cualquier extensión del grupo al que pertenece (Cod. Función *8)||El retardo en establecimiento es mucho menos evidente (aceptable) que en el caso anterior. Al producirse la captura el display del 7911 presenta información del conectado (origen de la llamada capturada). &lt;br /&gt;
|-&lt;br /&gt;
|BUZÓN DE VOZ&lt;br /&gt;
|-&lt;br /&gt;
|Señalización en el terminal de mensajes nuevos pendientes.||Indicación luminosa en led del micro-receptor y símbolo en display.&lt;br /&gt;
|-&lt;br /&gt;
|Acceso al buzón de voz||Tiempo de espera apreciable (9s.) hasta que se produce el establecimiento de la conexión con el buzón.&lt;br /&gt;
Si habilitamos el acceso a través de la tecla programada &amp;quot;&amp;quot;Msjes&amp;quot;&amp;quot; no hay retardo en el establecimiento de la llamada al buzón de voz.&lt;br /&gt;
|-&lt;br /&gt;
|Consulta de mensajes||Una vez consultados los mensajes en la carpeta nuevos, desaparece la señalización en el terminal de mensajes nuevos pendientes.&lt;br /&gt;
|-&lt;br /&gt;
|SUPERVISIÓN (BLF)||'''NO OK'''. El terminal no dispone de botones en los que se pueda configurar esta función.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 7912 ===&lt;br /&gt;
El terminal 7912 presenta un mecanismo de aprovisionamiento diferente al habitual; no queda integrado en el esquema de aprovisionamiento de la plataforma VIVait&lt;br /&gt;
El único idioma disponible para este terminal cuando funciona en SIP es el inglés de Estados Unidos.&lt;br /&gt;
&lt;br /&gt;
OTROS: Con la configuración probada o bien por causa del terminal. El gancho NO ACTUA. Para finalizar la llamada actual utilizar la tecla Endcall.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Item !! Observaciones&lt;br /&gt;
|- &lt;br /&gt;
!BOTONES!!&lt;br /&gt;
|-&lt;br /&gt;
!NOMBRE DEL BOTÓN Y ACCIÓN!!&lt;br /&gt;
|-&lt;br /&gt;
|Botón de Aplicaciones: Muestra el menú de acceso a Información de Directorios y a Configuración.|| Si tenemos configurado el acceso al buzón de voz. No son todas las opciones del menú que indica la guía de usuario. Faltan las opciones &amp;quot;mensajería de voz&amp;quot;, &amp;quot;servicios&amp;quot;. La opción &amp;quot;mensajería de voz&amp;quot; aparece cuando el fichero de configuración del terminal incluye el acceso al buzón de voz.&lt;br /&gt;
|-&lt;br /&gt;
!BOTONES PROGRAMADOS: 4!!&lt;br /&gt;
|-&lt;br /&gt;
|Bajo la pantalla del teléfono. corresponden a opciones de funciones que aparecen en la parte inferior de la pantalla del teléfono. Las funciones de los botones programadas se modifican según el estado del teléfono.&lt;br /&gt;
Se comprueba que efectivamente se ejecuta la opción indicada para el botón en cada situación&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!OPCIÓN PROGRAMADA!!&lt;br /&gt;
|-&lt;br /&gt;
|'''DND:''' Aparece si la función NO MOLESTAR se ha activado desde el menú de configuración||	Al pulsar DND cancelamos la función NO MOLESTAR.&lt;br /&gt;
|-&lt;br /&gt;
|'''Message:''' acceder al buzón de voz||Aparece si hemos configurado previamente este acceso (Botón Menú-Settings-Call apreferences-Voice Mail Number).&lt;br /&gt;
|-&lt;br /&gt;
|'''ToVM:''' Desvía la llamada entrante al buzón de voz sin que sea necesario responderla.||&amp;quot;CON REPAROS: Aparece, si hemos configurado previamente el acceso al buzón de voz, cuando suena el timbre en una llamada entrante.&lt;br /&gt;
'''PROBLEMA:''' El buzón de voz responde en modo &amp;quot;&amp;quot;consulta de mensajes&amp;quot;&amp;quot; no permite que el llamante deje su mensaje.&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''Monitor:''' Permite escuchar una llamada en el altavoz.||	El terminal no es manos libres, podemos escuchar pero no nos escucharán mientras esté activada esta función.&lt;br /&gt;
|-&lt;br /&gt;
|'''MonOff:''' Desactiva la función Monitor.||Recuperamos la comunicación con nuestro interlocutor a través del micro-receptor.&lt;br /&gt;
|-&lt;br /&gt;
|'''DroP:''' En una conferencia a tres establecida por el 7912, finaliza la llamada con el último participante incorporado.||Aparece cuando tenemos establecida una conferencia a tres.&lt;br /&gt;
|-&lt;br /&gt;
|'''CFwdAll:''' Aparece cuando se activa desde el menú de Configuración el desvío incondicional, a otro número, de las llamadas recibidas.||Al pulsar el botón asociado a la función Cancelamos el desvío incondicional programado.&lt;br /&gt;
|-&lt;br /&gt;
!TAREAS TELEFÓNICAS COMUNES!!&lt;br /&gt;
|-&lt;br /&gt;
!DESCRIPCIÓN DE LA TAREA!!&lt;br /&gt;
|-&lt;br /&gt;
|Utilizar los registros de llamadas para hacer una llamada.||	Secuencia: Botón de Aplicaciones-Directorios- Seleccionar una de las opciones (Received, Placed, Missed, Speed)- Seleccionar el destino deseado-Dial.&lt;br /&gt;
|-&lt;br /&gt;
|Configurar teclas de marcación rápida y realizar una llamada de marcación rápida.||	&amp;quot;Configuración, secuencia: Botón de Aplicaciones-Directories-Speed Dials-Seleccionar una posición del 1 al 9-Edit-introducir Nombre y Número-Save.&lt;br /&gt;
Para marcar: Pulsar un número del teclado del 1 al 9 y la tecla programada &amp;quot;&amp;quot;Dial&amp;quot;&amp;quot;.&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Cambiar a altavoz o auricular durante una llamada.||	Monitor/MonDes. Solo sirve para escuchar por el altavoz a nuestro interlocutor.&lt;br /&gt;
|-&lt;br /&gt;
|Recibir una llamada en espera y contestarla: Este terminal se puede Configurar, a través del menú &amp;quot;Call Preferences&amp;quot;, para que &amp;quot;Call Waiting&amp;quot; esté permitida o prohibida.||	Con una llamada establecida y configurado para recibir llamadas en espera, cuando se recibe la segunda llamada, ésta se señaliza en el display que presenta la información del llamante encima de la información de la llamada conectada. Además se escucha un tono espaciado en el auricular. Pulsamos la tecla programada &amp;quot;Answer&amp;quot; y establecemos comunicación con el llamante dejando la llamada anterior en espera.&lt;br /&gt;
|-&lt;br /&gt;
|Transferir la llamada actual a un nuevo número sin consulta.||	Con la llamada establecida pulsar la secuencia: more-BlndXfr-introducimos las cifras del teléfono destino. &lt;br /&gt;
|-&lt;br /&gt;
|Activar No Molestar.	Secuencia: Botón de Aplicaciones-Settings- Call Preferences-Do Not Disturb-poner a YES. ||Con la función activada en el terminal el llamante recibe tono de ocupado&lt;br /&gt;
|-&lt;br /&gt;
|Activar el desvío incondicional de las llamadas entrantes con función del teléfono.	Secuencia: Botón de Aplicaciones-Settings- Call Preferences-Call Forward Number-Edit-número de posición de desvío-accept-save.|| Con el desvío activo la pantalla del terminal informa &amp;quot;Forwarded to xxxx…&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Captura de llamadas. Captura de una llamada dirigida a otra extensión (Cod. Captura+número de exten.).||'''CON REPAROS:''' Cuando captura la llamada, la pantalla del Cisco 7912 no cambia para presentar el número conectado, sigue presentando la combinación de cifras marcada (*41* Nº de extensión en llamada).&lt;br /&gt;
|-&lt;br /&gt;
|Grupo de Captura: Captura llamadas dirigidas a cualquier extensión del grupo al que pertenece (Cod. Función *8).||'''CON REPAROS:''' Cuando captura la llamada, la pantalla del Cisco 7912 no cambia para presentar el número conectado, sigue presentando la combinación de cifras marcada (*8).&lt;br /&gt;
|-&lt;br /&gt;
|Retrollamada, activación y cancelación: Uso de *43# y *44#.||'''PENDIENTE.''' De momento no hemos conseguido configurar el dial plan del teléfono para el envío correcto de #.&lt;br /&gt;
|-&lt;br /&gt;
!BUZÓN DE VOZ!!&lt;br /&gt;
|-&lt;br /&gt;
|Desvío incondicional al buzón de voz (activación, funcionamiento, desactivación).||	'''PENDIENTE.''' (*21#) está implicado el envío de #&lt;br /&gt;
|-&lt;br /&gt;
|SUPERVISIÓN (BLF).||El terminal no dispone de botones en los que se pueda configurar esta función.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 7940 G ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Item !! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Idioma||No se puede cambiar. No pide idioma en el proceso de carga&lt;br /&gt;
|-&lt;br /&gt;
|Acceso al terminal||No se puede acceder al terminal vía web&lt;br /&gt;
|-&lt;br /&gt;
|Realiazar una llamada||No se puede marcar con el teléfono colgado, siempre hay que coger línea&lt;br /&gt;
|- &lt;br /&gt;
|Cisco inicia la llamada y realiza la transferencia||En un entorno de terminales Cisco, se pierde audio en un sentido.&lt;br /&gt;
|-&lt;br /&gt;
|Cisco inicia la llamada, luego es transferido por la extensión a la que llamó||En un entorno de terminales Cisco, se pierde audio en un sentido.&lt;br /&gt;
|- &lt;br /&gt;
|Activación/desactivción desvió extensión por fuera de servicio (código *213* Vivait Call)||El llamante escucha silencio 30 segundos y después se produce el desvío. La situación no se informa en pantalla. Al llamante no se le informa del desvío hasta que la extensión destino del desvío descuelga. &lt;br /&gt;
|- &lt;br /&gt;
|Activación/desactivción desvió extensión por fuera de servicio a mensajería (código *213# Vivait Call)||El llamante escucha silencio 30 segundos y después se produce el desvío. La situación no se informa en pantalla. &lt;br /&gt;
|- &lt;br /&gt;
|Configuración de BLF||No se puede configurar BLF en Cisco 7940.&lt;br /&gt;
|-&lt;br /&gt;
|CFwdALL: Desvío incondicional (Activa y cancela el desvío de todas las llamadas dirigidas al terminal)||Permite configurar el desvío de toda llamada entrante a otro número. La situación de desvío no se señaliza en la pantalla del terminal.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 7941IP ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Item !! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Botón ayuda||Acceso al menú de ayuda. No muestra información de ayuda.&lt;br /&gt;
|-&lt;br /&gt;
|Activar una retrollamada sobre no contesta (código *43 de Vivait Call)||No se puede activar la retrollamada&lt;br /&gt;
|-&lt;br /&gt;
|Cancelar una retrollamada sobre no contesta (código *44 de Vivait Call)||No se puede activar la retrollamada&lt;br /&gt;
|-&lt;br /&gt;
|Activar una retrollamada sobre ocupado (código *43 de Vivait Call)||No se puede activar la retrollamada&lt;br /&gt;
|-&lt;br /&gt;
|Cancelar una retrollamada sobre ocupado (código *44 de Vivait Call)||No se puede activar la retrollamada&lt;br /&gt;
|-&lt;br /&gt;
|Con retrollamada activa, lado A realiza una llamada finalizándola antes de activarse||No se puede activar la retrollamada&lt;br /&gt;
|-&lt;br /&gt;
|Con retrollamada activa, lado A realiza una llamada finalizandola después de activarse|No se puede activar la retrollamada&lt;br /&gt;
|-&lt;br /&gt;
|Recibir desde el cabecera del grupo con diferentes estrategias||Aunque la extensión pertenece al grupo nunca le entran llamadas&lt;br /&gt;
|-&lt;br /&gt;
|Activar PAUSA en extensiones del Grupo de Salto (*491)||Aunque la extensión pertenece al grupo nunca le entran llamadas&lt;br /&gt;
|-&lt;br /&gt;
|Activar REANUDAR en extensiones del Grupo de Salto (*492)||Aunque el sistema informa de que el agente está en línea, la extensión no recibe llamadas&lt;br /&gt;
|-&lt;br /&gt;
|Logout de extensiones declaradas como no permanentes en un Grupo de Salto (*48)||Aunque la extensión pertenece al grupo nunca le entran llamadas&lt;br /&gt;
|-&lt;br /&gt;
|Login de extensiones declaradas como no permanentes en un Grupo de Salto (*47)||Aunque el sistema informa de agente conectado, la extensión no recibe llamadas&lt;br /&gt;
|-&lt;br /&gt;
|Llamada interna entrante a una de las extensiones del Grupo y captura desde el Cisco (con código de Asterisk *8)||No puede capturar la llamada entrante a otra extensión del grupo de captura&lt;br /&gt;
|-&lt;br /&gt;
|Llamada externa entrante a una de las extensiones del Grupo y captura desde el Cisco (con código de Asterisk *8)||No puede capturar la llamada entrante a otra extensión del grupo de captura&lt;br /&gt;
|-&lt;br /&gt;
|Activación/desactivación desvió extensión incondicional (código *23 Vivait Call) (1)||La situación no se informa en pantalla. Solo funciona el desvío cuando la llamada es externa&lt;br /&gt;
|-&lt;br /&gt;
|Activación/desactivación desvió extensión incondicional a mensajería (código *21 Vivait Call) (1)||La situación no se informa en pantalla. Solo funciona el desvío cuando la llamada es externa&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
- '''Nota 1:'''	Cuando se programa el desvío inmediato desde Vivait Call y desde el terminal, el desvío  programado en Vivait Call es prioritario sobre el programado en el terminal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 7942 ===&lt;br /&gt;
'''Incompatible la convivencia de las funciones &amp;quot;Conferencia a tres&amp;quot; y &amp;quot;Supervisión (BLF)&amp;quot;.''' &lt;br /&gt;
&lt;br /&gt;
''Los cambios en el fichero de configuración del terminal para habilitar la supervisión mediante BLF dejan sin afecto la función &amp;quot;Conferencia a tres&amp;quot;''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Item !! Observaciones&lt;br /&gt;
|- &lt;br /&gt;
!Botones!!&lt;br /&gt;
|-&lt;br /&gt;
|Se comprueba la funcionalidad esperada al actuar sobre el botón.&lt;br /&gt;
|-	&lt;br /&gt;
!Nombre del botón y acción!!&lt;br /&gt;
|-	&lt;br /&gt;
|Botón Auriculares:Activa/desactiva los auriculares.|| '''Pendiente de prueba'''&lt;br /&gt;
|-&lt;br /&gt;
|Botón de directorios:Abre y cierra el menú Directorios.|| Da acceso al Histórico de llamadas (perdidas, recibidas, realizadas).&lt;br /&gt;
|-&lt;br /&gt;
|Botón Mensajes:Marca automáticamente el número de acceso a la mensajería||'''No funciona''', puede ser defecto de configuración.&lt;br /&gt;
|-&lt;br /&gt;
|Botón Servicios:Abre y cierra el menú de servicios.|| '''Al accionarlo el display presenta &amp;quot;Host no encontrado&amp;quot;'''&lt;br /&gt;
|-&lt;br /&gt;
|Botón Ayuda:Acceso al menú de ayuda.||	'''Se pierde el acceso a este servicio'''&lt;br /&gt;
|-&lt;br /&gt;
!Botones programados!!&lt;br /&gt;
|-&lt;br /&gt;
|Se trata de botones que dan acceso a opciones de funciones que aparecen en la pantalla LCD y que varían dependiendo del estado del teléfono y de la llamada en curso.Se comprueba que efectivamente se ejecuta la opción indicada para el botón en cada situación.&lt;br /&gt;
|-&lt;br /&gt;
!Opción programada!!&lt;br /&gt;
|-	&lt;br /&gt;
|NoMlsta: Activa/desactiva la función Mo Molestar.||	Es una función configurable por el administrador. La configuración probada es &amp;quot;la llamada entrante se señaliza con un destello ámbar del botón de línea, no hay indicación sonora&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|Dsvinc: Activa/desactiva el desvío incondicional de las llamadas a otra extensión predeterminada en el proceso de activación.||El desvío se produce tanto al marcar el número de usuario como al marcar el número de la extensión física.&lt;br /&gt;
|-&lt;br /&gt;
|Espera: Pone una llamada en espera.|| El lado de la comunicación en espera recibe música en espera	En una conferencia a tres establecida, la acción sobre el botón &amp;quot;Espera&amp;quot; pone en espera a los dos conferenciantes.&lt;br /&gt;
|-&lt;br /&gt;
|Confr: Iniciar una conferencia a tres.||Siempre que en el terminal no se haya configurado la supervisión por BLF.&lt;br /&gt;
|-&lt;br /&gt;
!Tareas telefónicas comunes!!	&lt;br /&gt;
|-&lt;br /&gt;
|'''Descripción de la terea'''&lt;br /&gt;
|-	&lt;br /&gt;
|Realizar una llamada interna y otra externa descolgando el auricular y marcando, y en modo manos libres (pulso botón altavoz y marco)||Retardo apreciable desde que se envían las cifras hasta que se establece la conexión.&lt;br /&gt;
|-&lt;br /&gt;
|Transferir la llamada actual a un nuevo número sin consulta (Transferencia Directa).||No puede realizar una transferencia directa, la opción transferir no aparece en el display hasta que se produce llamada en el lado C (extensión que recibe la transferencia). Si transferimos en llamada antes de que descuelgue el lado C se produce el reparo general identificado para este caso de transferencia.&lt;br /&gt;
|-&lt;br /&gt;
|Iniciar una conferencia a tres: Para acceder al botón de opción &amp;quot;Confr&amp;quot;. Pulsar antes &amp;quot;más&amp;quot;.||'''Funciona siempre que en el terminal no se haya configurado la supervisión por BLF'''.&lt;br /&gt;
|-&lt;br /&gt;
|Captura de llamadas. Captura de una llamada dirigida a otra extensión del mismo nodo (Cod. Captura+número de exten.)||Transcurren varios segundos desde que se envían las cifras hasta que se establece la conexión por captura. Al producirse la captura el display del 7942 presenta información del conectado (origen de la llamada capturada). &lt;br /&gt;
|-&lt;br /&gt;
|Grupo de Captura: Captura llamadas dirigidas a cualquier extensión del grupo al que pertenece (Cod. Función *8)||El retardo en establecimiento es mucho menos evidente que en el caso anterior. Al producirse la captura el display del 7942 presenta información del conectado (origen de la llamada capturada). &lt;br /&gt;
|-&lt;br /&gt;
!Buzón de voz!!&lt;br /&gt;
|-	&lt;br /&gt;
|Señalización en el terminal de mensajes nuevos pendientes.||Indicación luminosa en led del micro-receptor y símbolo en display.&lt;br /&gt;
|-&lt;br /&gt;
|Acceso al buzón de voz:Tiempo de espera apreciable (12s.) hasta que se produce el establecimiento de la conexión con el buzón. ||Si habilitamos el acceso a través del botón mensajes no hay retardo en el establecimiento de la llamada al buzón de voz.&lt;br /&gt;
|-&lt;br /&gt;
|Consulta de mensajes||Una vez consultados los mensajes en la carpeta nuevos, desaparece la señalización en el terminal de mensajes nuevos pendientes.&lt;br /&gt;
|-&lt;br /&gt;
!Servicio Jefe/secretaria!!&lt;br /&gt;
|-	&lt;br /&gt;
|SUPERVISIÓN Cuando se habilita se pierde la función &amp;quot;Conferencia a tres&amp;quot;||La lámpara asociada a la tecla configurada como BLF luce:&lt;br /&gt;
Cuando el teléfono supervisado recibe llamada entrante (ámbar, parpadeo rápido).&lt;br /&gt;
Cuando el teléfono supervisado responde a una llamada (rojo, fijo).&lt;br /&gt;
Cuando el teléfono supervisado envía las cifras  en una llamada originada por él (rojo, fijo).&lt;br /&gt;
|-&lt;br /&gt;
|Transferencia de una llamada desde la secretaria al Jefe sin consulta.||La transferencia directa pura no es posible. Se puede transferir mientras el jefe recibe señal de llamada, en ese caso se produce el reparo general identificado para este caso de transferencia (Al descolgar el display del terminal del Jefe no cambia para mostrar el número conectado).&lt;br /&gt;
|-&lt;br /&gt;
|Transferencia de una llamada desde el Jefe a la secretaria.||Funciona dentro de los límites identificados, en este modelo, para la transferencia (No hay transferencia directa). &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 7945 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Item !! Observaciones&lt;br /&gt;
|- &lt;br /&gt;
|Botón de ayuda||Acceso al menú de ayuda. No muestra información de ayuda.&lt;br /&gt;
|- &lt;br /&gt;
|-&lt;br /&gt;
!Transferencias con Consulta!!	&lt;br /&gt;
|-&lt;br /&gt;
|Cisco inicia la llamada y realiza la transferencia&lt;br /&gt;
|-	&lt;br /&gt;
|Cisco inicia la llamada, luego es transferido por la extensión a la que llamó||La pantalla no se actualiza con la parte conectada en la transferencia. Cuando la parte remota cuelga la pantalla no se actualiza a la nueva situación.&lt;br /&gt;
|-&lt;br /&gt;
|Cisco recibe una llamada transferida tras ser consultado||La pantalla no se actualiza con la parte conectada en la transferencia. Cuando la parte remota cuelga la pantalla no se actualiza a la nueva situación.&lt;br /&gt;
|-&lt;br /&gt;
!Transferencia sin consulta!!&lt;br /&gt;
|-&lt;br /&gt;
|Cisco inicia la llamada y realiza la transferencia||Las extensiones que quedan al habla presentan en pantalla información del teléfono conectado. Transcurrido el tiempo de no contesta, la llamada no vuelve a la extensión que inicio la transferencia.&lt;br /&gt;
|-&lt;br /&gt;
|Cisco inicia la llamada, luego es transferido por la extensión a la que llamó||Se actualiza la información de la parte conectada.&lt;br /&gt;
|-&lt;br /&gt;
1Cisco recibe una llamada transferida directamente||Se actualiza la información de la parte conectada.&lt;br /&gt;
|-&lt;br /&gt;
!MENSAJERÍA VOCAL!!&lt;br /&gt;
|-&lt;br /&gt;
|Señalización en el terminal de mensajes nuevos pendientes.||Indicador de mensaje con parpadeo en rojo de la banda luminosa del auricular. También aparece información de mensaje en el display.&lt;br /&gt;
|-&lt;br /&gt;
|Acceso al buzón de voz con tecla específica de mensajería (tecla sobre)||Una vez que se accede a la mensajería, ésta nos pide clave de acceso.&lt;br /&gt;
|-&lt;br /&gt;
|Acceso al buzón de voz con código *42# de Vivait Call||Una vez que se accede a la mensajería, ésta nos pide número de buzón y clave de acceso.&lt;br /&gt;
|-&lt;br /&gt;
!GRUPO DE CAPTURA!!&lt;br /&gt;
|-&lt;br /&gt;
1Llamada interna entrante a una de las extensiones del Grupo y captura desde el Cisco (con código de Asterisk *8)||El display de la extensión que captura la llamada se actualiza con la información del número llamante.&lt;br /&gt;
|-&lt;br /&gt;
|Llamada externa entrante a una de las extensiones del Grupo y captura desde el Cisco (con código de Asterisk *8)||El display de la extensión que captura la llamada se actualiza con la información del número llamante.&lt;br /&gt;
|-&lt;br /&gt;
|Sacamos del Grupo la extensión del Cisco y se comprueba que ella NO puede capturar y el resto sí puede||Si se intenta capturar con código *8 se recibe señal de no progreso.&lt;br /&gt;
|-&lt;br /&gt;
!DESVÍOS!!&lt;br /&gt;
|-&lt;br /&gt;
|Desvío de extensión con códigos de Vivait Call	&lt;br /&gt;
|-&lt;br /&gt;
|Activación/desactivción desvió extensión incondicional (código *21* Vivait Call) (1)||La situación no se informa en pantalla.&lt;br /&gt;
|-&lt;br /&gt;
|Activación/desactivción desvió extensión incondicional a mensajería (código *21# Vivait Call) (1)||La situación no se informa en pantalla.&lt;br /&gt;
|-&lt;br /&gt;
|Activación/desactivción desvió extensión por no contesta (código *211* Vivait Call)||La situación no se informa en pantalla.&lt;br /&gt;
|-&lt;br /&gt;
|Activación/desactivción desvió extensión por no contesta  a mensajería (código *211# Vivait Call)||La situación no se informa en pantalla.&lt;br /&gt;
|-&lt;br /&gt;
|Activación/desactivción desvió extensión por ocupado (código *212* Vivait Call)||No se puede desactivar llamada en espera. La situación no se informa en pantalla.&lt;br /&gt;
|-&lt;br /&gt;
|Activación/desactivción desvió extensión por ocupado a mensajería (código *212# Vivait Call)||No se puede desactivar llamada en espera. La situación no se informa en pantalla.&lt;br /&gt;
|-&lt;br /&gt;
1Activación/desactivción desvió extensión por fuera de servicio (código *213* Vivait Call)||El llamante escucha silencio 30 segundos y después se produce libera la llamada. Pasado un tiempo bastante largo, sin determinar, el desvío se produce inmediatamente. La situación no se informa en pantalla.&lt;br /&gt;
|-&lt;br /&gt;
|Activación/desactivción desvió extensión por fuera de servicio a mensajería (código *213# Vivait Call)||El llamante escucha silencio 30 segundos y después se produce libera la llamada. Pasado un tiempo bastante largo, sin determinar, el desvío se produce inmediatamente. La situación no se informa en pantalla.&lt;br /&gt;
|-&lt;br /&gt;
!Desvío de usuario con códigos de Vivait Call!!&lt;br /&gt;
|-&lt;br /&gt;
|Activación/desactivación desvió usuario incondicional (código *22* Vivait Call) (1)||La situación no se informa en pantalla.&lt;br /&gt;
Al llamante no se le informa del desvío hasta que la extensión destino del desvío descuelga.&lt;br /&gt;
|-&lt;br /&gt;
|Activación/desactivación desvió extensión incondicional a mensajería (código *22# Vivait Call) (1)||La situación no se informa en pantalla.&lt;br /&gt;
|-&lt;br /&gt;
|Activación/desactivación desvió usuario por no contesta (código *221* Vivait Call)||La situación no se informa en pantalla.&lt;br /&gt;
Al llamante no se le informa del desvío hasta que la extensión destino del desvío descuelga.&lt;br /&gt;
|-&lt;br /&gt;
|Activación/desactivación desvió usuario por no contesta  a mensajería (código *221# Vivait Call)||La situación no se informa en pantalla.&lt;br /&gt;
|-&lt;br /&gt;
|Activación/desactivación desvió usuario por ocupado (código *222* Vivait Call)||No se puede desactivar la llamada en espera. La situación no se informa en pantalla.&lt;br /&gt;
|-&lt;br /&gt;
|Activación/desactivación desvió usuario por ocupado a mensajería (código *222# Vivait Call)||No se puede desactivar la llamada en espera. La situación no se informa en pantalla.&lt;br /&gt;
|-&lt;br /&gt;
|Activación/desactivación desvió usuario por logout (código *223* Vivait Call)||La situación no se informa en pantalla. &lt;br /&gt;
No se informa del desvío hasta que la posición destino del desvío descuelga.&lt;br /&gt;
|-&lt;br /&gt;
|Activación/desactivación desvió usuario por logout a mensajería (código *223# Vivait Call)||La situación no se informa en pantalla.&lt;br /&gt;
|-&lt;br /&gt;
!Desvío desde el terminal (funcionan tanto si se llama a la extensión como al usuario)!!&lt;br /&gt;
|-&lt;br /&gt;
|Desvió incondicional (1)||La situación se informa en pantalla.&lt;br /&gt;
|-&lt;br /&gt;
|Nota 1	Cuando se programa el desvío inmediato desde Vivait Call y desde el terminal, el desvío  programado en Vivait Call es prioritario sobre el programado en el terminal.&lt;br /&gt;
|-&lt;br /&gt;
!&amp;quot;SERVICIO JEFE SECRETARIA Terminales telefónicos Cisco 7911 (jefe) y 7945 (secretaria)&amp;quot;!!&lt;br /&gt;
|-&lt;br /&gt;
|Llamadas al servicio JEFE/SECRETARIA||Para estas pruebas se ha configurado la extensión sin RTP directo. Parámetro &amp;quot;directmedia=update&amp;quot; en el perfil de la extensión en Asterisk.&lt;br /&gt;
|-&lt;br /&gt;
|Llamada interna entrante a la extensión del Jefe||Se produce el desvío. El display de la secretaria presenta información del llamante. El display del llamante presenta información del conectado una vez que la secretaria ha descolgado.&lt;br /&gt;
|-&lt;br /&gt;
|Llamada interna entrante al usuario del Jefe||Se produce el desvío. El display de la secretaria presenta información del llamante. El display del llamante presenta información del conectado una vez que la secretaria ha descolgado.&lt;br /&gt;
|-&lt;br /&gt;
|Llamada externa entrante al Jefe||Se produce el desvío. El display de la secretaria presenta información del llamante. El display del llamante presenta número marcado.&lt;br /&gt;
|-&lt;br /&gt;
|Llamada externa entrante a la secretaria||La señalización de la llamada en el terminal de la secretaria no se diferencia del caso anterior.&lt;br /&gt;
|-&lt;br /&gt;
|Tránsito a través de Secretaria de llamada interna entrante a jefe y saliente originada en secretaria||Se comprueba el desvío de la llamada interna a la secretaria y que ésta puede llamar al exterior y transferir la llamada. En transferencia el display del llamante muestra información de la transferencia.&lt;br /&gt;
|-&lt;br /&gt;
|Supervisión del Jefe en el terminal de la Secretaria mediante BLF||Solo cambia el estado del botón de supervisión cuando se completa el envío de cifras por la extensión supervisada.&lt;br /&gt;
|-&lt;br /&gt;
!Transferencia con consulta!!&lt;br /&gt;
|-&lt;br /&gt;
|Llamada local originada en secretaria, primero llama al jefe y luego transfiere||Tanto si la secretaria marca el número de extensión física del jefe como si marca el número de usuario.&lt;br /&gt;
Se actualiza información en display de parte conectada.&lt;br /&gt;
|-&lt;br /&gt;
|Llamada local originada en secretaria, llama a otra extensión y luego transfiere al jefe||Tanto si la secretaria marca el número de extensión física del jefe como si marca el número de usuario.&lt;br /&gt;
Se actualiza información en display de parte conectada.&lt;br /&gt;
|-&lt;br /&gt;
|Llamada externa originada en secretaria, llama al jefe y luego transferida al exterior||Tanto si la secretaria marca el número de extensión física del jefe como si marca el número de usuario.&lt;br /&gt;
Se actualiza información en display de parte conectada.&lt;br /&gt;
|-&lt;br /&gt;
|Llamada externa originada en secretaria, llama al exterior y luego transferida al jefe||Tanto si la secretaria marca el número de extensión física del jefe como si marca el número de usuario.&lt;br /&gt;
Se actualiza información en display de parte conectada.&lt;br /&gt;
|-&lt;br /&gt;
|Llamada local entrante a la secretaria y luego transfiere al jefe||Tanto si la secretaria marca el número de extensión física del jefe como si marca el número de usuario.&lt;br /&gt;
Se actualiza información en display de parte conectada.&lt;br /&gt;
|-&lt;br /&gt;
|Llamada externa entrante a la secretaria y luego transfiere al jefe||Tanto si la secretaria marca el número de extensión física del jefe como si marca el número de usuario.&lt;br /&gt;
Se actualiza información en display de parte conectada.&lt;br /&gt;
|-&lt;br /&gt;
|Llamada local entrante al jefe, recibida por la secretaria y trasferida después al jefe||Tanto si la secretaria marca el número de extensión física del jefe como si marca el número de usuario.&lt;br /&gt;
No se actualiza información en display de parte conectada.&lt;br /&gt;
|-&lt;br /&gt;
|Llamada externa entrante al jefe, recibida por la secretaria y trasferida después al jefe||Tanto si la secretaria marca el número de extensión física del jefe como si marca el número de usuario.&lt;br /&gt;
Se actualiza información en display de parte conectada.&lt;br /&gt;
|-&lt;br /&gt;
!Transferencia sin consulta!!	&lt;br /&gt;
|-&lt;br /&gt;
|Llamada local originada en secretaria, primero llama al jefe y luego transfiere||Tanto si la secretaria marca el número de extensión física del jefe como si marca el número de usuario.&lt;br /&gt;
Para realizar la transferencia es necesario esperar que el destino de la transferencia comience a sonar.&lt;br /&gt;
Las extensiones que quedan al habla presentan en pantalla información del teléfono conectado.&lt;br /&gt;
Transcurrido el tiempo de no contesta, la llamada no vuelve a la extensión que inicio la transferencia.&lt;br /&gt;
|-&lt;br /&gt;
|Llamada local originada en secretaria, llama a otra extensión y luego transfiere al jefe||Tanto si la secretaria marca el número de extensión física del jefe como si marca el número de usuario.&lt;br /&gt;
Para realizar la transferencia es necesario esperar que el destino de la transferencia comience a sonar.&lt;br /&gt;
Las extensiones que quedan al habla presentan en pantalla información del teléfono conectado.&lt;br /&gt;
Transcurrido el tiempo de no contesta, la llamada no vuelve a la extensión que inicio la transferencia.&lt;br /&gt;
|-&lt;br /&gt;
|Llamada externa originada en secretaria, llama al jefe y luego transferida al exterior||Tanto si la secretaria marca el número de extensión física del jefe como si marca el número de usuario.&lt;br /&gt;
Para realizar la transferencia es necesario esperar que el destino de la transferencia comience a sonar.&lt;br /&gt;
Las extensiones que quedan al habla presentan en pantalla información del teléfono conectado.&lt;br /&gt;
Transcurrido el tiempo de no contesta, la llamada no vuelve a la extensión que inicio la transferencia.&lt;br /&gt;
|-&lt;br /&gt;
|Llamada externa originada en secretaria, llama al exterior y luego transferida al jefe||Tanto si la secretaria marca el número de extensión física del jefe como si marca el número de usuario.&lt;br /&gt;
Para realizar la transferencia es necesario esperar que el destino de la transferencia comience a sonar.&lt;br /&gt;
Las extensiones que quedan al habla presentan en pantalla información del teléfono conectado.&lt;br /&gt;
Transcurrido el tiempo de no contesta, la llamada no vuelve a la extensión que inicio la transferencia.&lt;br /&gt;
|-&lt;br /&gt;
|Llamada local entrante a la secretaria y luego transfiere al jefe||Tanto si la secretaria marca el número de extensión física del jefe como si marca el número de usuario.&lt;br /&gt;
Para realizar la transferencia es necesario esperar que el destino de la transferencia comience a sonar.&lt;br /&gt;
Las extensiones que quedan al habla presentan en pantalla información del teléfono conectado.&lt;br /&gt;
Transcurrido el tiempo de no contesta, la llamada no vuelve a la extensión que inicio la transferencia.&lt;br /&gt;
|-&lt;br /&gt;
|Llamada externa entrante a la secretaria y luego transfiere al jefe||Tanto si la secretaria marca el número de extensión física del jefe como si marca el número de usuario.&lt;br /&gt;
Para realizar la transferencia es necesario esperar que el destino de la transferencia comience a sonar.&lt;br /&gt;
Las extensiones que quedan al habla presentan en pantalla información del teléfono conectado.&lt;br /&gt;
Transcurrido el tiempo de no contesta, la llamada no vuelve a la extensión que inicio la transferencia.&lt;br /&gt;
|-&lt;br /&gt;
|Llamada local entrante al jefe, recibida por la secretaria y trasferida después al jefe||Tanto si la secretaria marca el número de extensión física del jefe como si marca el número de usuario.&lt;br /&gt;
Para realizar la transferencia es necesario esperar que el destino de la transferencia comience a sonar.&lt;br /&gt;
Las extensiones que quedan al habla presentan en pantalla información del teléfono conectado.&lt;br /&gt;
Transcurrido el tiempo de no contesta, la llamada no vuelve a la extensión que inicio la transferencia.&lt;br /&gt;
|-&lt;br /&gt;
|Llamada externa entrante al jefe, recibida por la secretaria y trasferida después al jefe||Tanto si la secretaria marca el número de extensión física del jefe como si marca el número de usuario.&lt;br /&gt;
Para realizar la transferencia es necesario esperar que el destino de la transferencia comience a sonar.&lt;br /&gt;
Las extensiones que quedan al habla presentan en pantalla información del teléfono conectado.&lt;br /&gt;
Transcurrido el tiempo de no contesta, la llamada no vuelve a la extensión que inicio la transferencia. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 7965 ===&lt;br /&gt;
'''NO ES POSIBLE REALIZAR CONFERENCIA A TRES.''' &lt;br /&gt;
&lt;br /&gt;
''Se probó parche desarrollado para Asterisk 11 con resultado positivo (la conferencia a tres era posible en este terminal cuando lo aprivisionamos en Asterisk 11 y el parche está instalado)''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Item !! Observaciones&lt;br /&gt;
|- &lt;br /&gt;
!BOTONES (Se comprueba la funcionalidad esperada al actuar sobre el botón)!!&lt;br /&gt;
|-	&lt;br /&gt;
!NOMBRE DEL BOTÓN Y ACCIÓN!!&lt;br /&gt;
|-&lt;br /&gt;
|Botones Programables (6 botones a la derecha de la pantalla)||En función de la configuración, los botones programables proporcionan acceso a:&lt;br /&gt;
-Líneas de teléfono y líneas de intercomunicación (botones de línea) PROBADO.&lt;br /&gt;
-Números de marcación rápida (botones de marcación rápida, incluida la función de marcación rápida BLF) PROBADO.&lt;br /&gt;
-Servicios basados en la Web (por ejemplo, el botón de libreta personal de direcciones)  NO PROBADO.&lt;br /&gt;
-Funciones del teléfono (por ejemplo, un botón de privacidad, espera o transferencia) NO PROBADO.&lt;br /&gt;
|-&lt;br /&gt;
|Botón de Pantalla: Saca a la pantalla del modo suspendido (protección de pantalla)||Luce en verde fijo cuando la pantalla está en modo suspendido.&lt;br /&gt;
|-&lt;br /&gt;
|Botón Mensajes: Marca de forma automática el número del servicio de mensajes de voz.||Es posible incorporar al fichero de configuración del terminal la marcación de acceso al buzón de voz. Esto habilita la funcionalidad de este botón.&lt;br /&gt;
|-&lt;br /&gt;
|Botón de directorios: Abre y cierra el menú Directorios.||En la configuración del terminal probada permite acceder a los registros de llamadas perdidas, recibidas, realizadas. No da acceso a directorios ni local ni corporativo.&lt;br /&gt;
|-&lt;br /&gt;
|Botón de ayuda (?): Activa el menú Ayuda.||Se pierde el acceso al Servicio de Ayuda.&lt;br /&gt;
|-&lt;br /&gt;
|Botón Servicios: Abre y cierra el menú de servicios||Al accionarlo el display presenta &amp;quot;Host no encontrado&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Botón Auriculares: Activa o desactiva los auriculares. Cuando los auriculares están activados,el botón está encendido.||'''Pendiente de prueba'''&lt;br /&gt;
|-&lt;br /&gt;
|'''BOTONES PROGRAMADOS''': Se trata de botones que dan acceso a opciones de funciones que aparecen en la pantalla LCD y que varían dependiendo del estado del teléfono y de la llamada en curso.||Se comprueba que efectivamente se ejecuta la opción indicada para el botón en cada situación&lt;br /&gt;
|-&lt;br /&gt;
!OPCIÓN PROGRAMADA!!	&lt;br /&gt;
|-&lt;br /&gt;
|NoMlsta: Activa/desactiva la función Mo Molestar.||Es una función configurable por el administrador. La configuración probada es &amp;quot;la llamada entrante se señaliza con un destello ámbar del botón de línea, no hay indicación sonora&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|Dsvinc: Activa/desactiva el desvío incondicional de las llamadas a otra extensión predeterminada en el proceso de activación||Después de Configurar el número de teléfono de la posición de desvío no dispongo de la opción aceptar (NO SE PUEDE COMPLETAR LA ACCIÓN).&lt;br /&gt;
|-&lt;br /&gt;
|Espera: Pone una llamada en espera.||El lado de la comunicación en espera recibe música en espera&lt;br /&gt;
|-&lt;br /&gt;
|Trnsf: Inicia la transferencia y transfiere la llamada en curso. Pone en espera la llamada actual e inicia una nueva llamada.|| Cuando el destino llamado contesta, permite la transferencia de la llamada en espera.&lt;br /&gt;
más: muestra el resto de botones con opciones programadas disponibles&lt;br /&gt;
|-	&lt;br /&gt;
|Confr: Iniciar una conferencia a tres.||Con el teléfono conectado a Asterisk 13 la conferencia NO FUNCIONA.&lt;br /&gt;
|-&lt;br /&gt;
!TAREAS TELEFÓNICAS COMUNES!!	&lt;br /&gt;
|-&lt;br /&gt;
|DESCRIPCIÓN DE LA TAREA	&lt;br /&gt;
|-&lt;br /&gt;
|Realizar una llamada interna y otra externa descolgando el auricular y marcando, y en modo manos libres (pulso botón altavoz y marco)||Retardo apreciable desde que se envían las cifras hasta que se establece la conexión.&lt;br /&gt;
|-&lt;br /&gt;
|Transferir la llamada actual a un nuevo número sin consulta (Transferencia Directa)||No puede realizar una transferencia directa, la opción transferir no aparece en el display hasta que se produce llamada en el lado C (extensión que recibe la transferencia). Si transferimos en llamada antes de que descuelgue el lado C se produce el reparo general identificado para este caso de transferencia (el display del terminal que recibe la llamada transferida no actualiza para presentar el número conectado).&lt;br /&gt;
|-&lt;br /&gt;
|Iniciar una conferencia a tres||No es posible en Asterisk 13.&lt;br /&gt;
|-&lt;br /&gt;
|Activar el desvío incondicional de las llamadas entrantes con función del teléfono||La configuración del terminal probada no permite activar el desvío de las llamadas dirigidas al terminal haciendo uso de &amp;quot;Dsvinc&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|Captura de llamadas. Captura de una llamada dirigida a otra extensión del mismo nodo (Cod. Captura+número de exten.)||Transcurren varios segundos (8 a 10) desde que se envían las cifras hasta que se establece la conexión por captura. Al producirse la captura el display del 7965 presenta información del conectado (origen de la llamada capturada). &lt;br /&gt;
|-&lt;br /&gt;
|Grupo de Captura: Captura llamadas dirigidas a cualquier extensión del grupo al que pertenece (Cod. Función *8)||El retardo en establecimiento es mucho menos evidente (aceptable) que en el caso anterior. Al producirse la captura el display del 7965 presenta información del conectado (origen de la llamada capturada). &lt;br /&gt;
|-&lt;br /&gt;
!BUZÓN DE VOZ!!&lt;br /&gt;
|-	&lt;br /&gt;
|Señalización en el terminal de mensajes nuevos pendientes.||Indicación luminosa en led del micro teléfono y símbolo en display.&lt;br /&gt;
|-&lt;br /&gt;
|Acceso al buzón de voz||Tiempo de espera apreciable (9s.) hasta que se produce el establecimiento de la conexión con el buzón. Si habilitamos el acceso a través de la tecla messages no hay retardo en el establecimiento de la llamada al buzón de voz.&lt;br /&gt;
|-&lt;br /&gt;
|Consulta de mensajes||Una vez consultados los mensajes en la carpeta nuevos, desaparece la señalización en el terminal de mensajes nuevos pendientes.&lt;br /&gt;
|-&lt;br /&gt;
!Servicio Jefe/secretaria!!&lt;br /&gt;
|-	&lt;br /&gt;
|SUPERVISIÓN:La lámpara asociada a la tecla configurada como BLF luce:|| Cuando el teléfono supervisado recibe llamada entrante (ámbar, parpadeo rápido).&lt;br /&gt;
Cuando el teléfono supervisado responde a una llamada (rojo, fijo).&lt;br /&gt;
Cuando el teléfono supervisado envía las cifras  en una llamada originada por él (rojo, fijo).&lt;br /&gt;
|-&lt;br /&gt;
|Transferencia de una llamada desde la secretaria al Jefe sin consulta.||La transferencia directa pura no es posible. Se puede transferir mientras el jefe recibe señal de llamada, en ese caso se produce el reparo general identificado para este caso de transferencia (Al descolgar el desplaye del terminal del Jefe no cambia para mostrar el número conectado).&lt;br /&gt;
|-&lt;br /&gt;
|Transferencia de una llamada desde el Jefe a la secretaria.||Funciona dentro de los límites identificados, en este modelo, para la transferencia (No hay transferencia directa).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 8811IP ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Item !! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Botón mensajes||Marca automáticamente el número de sistema de mensajería de voz&lt;br /&gt;
|-&lt;br /&gt;
|Eliminar un interlocutor de la conferencia||&amp;quot;Al no poder visualizarse la lista de participantes no se puede eliminar un participante de la conferencia.&lt;br /&gt;
Si uno de los participantes en la conferencia libera su comunicación la conferencia continua.&lt;br /&gt;
Si el líder abandona la conferencia, ésta finaliza.&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Acceso al buzón de voz con tecla específica de mensajería (tecla grabadora)||Al pulsar la tecla aparece la información: “Mensajes no disponibles”&lt;br /&gt;
|-&lt;br /&gt;
|Acceso al buzón de voz con tecla de sesión de mensajería (icono grabadora)||Al pulsar la tecla aparece la información: “Mensajes no disponibles”&lt;br /&gt;
|-&lt;br /&gt;
|Supervisión del Jefe en el terminal de la Secretaria mediante BLF||La supervisión del teléfono del jefe en una tecla de función se pierde pasado un tiempo no determinado.&lt;br /&gt;
|-&lt;br /&gt;
|Llamada a un destino externo desde la aplicación||La llamada se indica en el terminal pero no progresa&lt;br /&gt;
|-&lt;br /&gt;
|Conferencia con supervisor desde el terminal||Aparece el mensaje “No se puede completar conferencia”&lt;br /&gt;
|-&lt;br /&gt;
|Conferencia con no supervisor desde el terminal||Aparece el mensaje “No se puede completar conferencia”&lt;br /&gt;
|-&lt;br /&gt;
|Establecida comunicación con agente, consulta destino externo desde VIVA desk||La llamada se indica en el terminal pero no progresa&lt;br /&gt;
|-&lt;br /&gt;
|Conferencia desde el terminal||Aparece el mensaje “No se puede completar conferencia”&lt;br /&gt;
|-&lt;br /&gt;
|Establecida comunicación con agente, consulta destino externo desde VIVA desk||La llamada se indica en el terminal pero no progresa&lt;br /&gt;
|-&lt;br /&gt;
|Conferencia desde el terminal||Aparece el mensaje “No se puede completar conferencia”&lt;br /&gt;
|-&lt;br /&gt;
|Establecida comunicación con agente, consulta destino externo desde VIVA desk||La llamada se indica en el terminal pero no progresa&lt;br /&gt;
|-&lt;br /&gt;
|Establecida comunicación con agente, consulta destino externo desde el terminal||La llamada se indica en el terminal pero no progresa&lt;br /&gt;
|-&lt;br /&gt;
|Conferencia desde el terminal||Aparece el mensaje “No se puede completar conferencia”&lt;br /&gt;
|-&lt;br /&gt;
|Establecida comunicación con agente, consulta destino externo desde VIVA desk||La llamada se indica en el terminal pero no progresa&lt;br /&gt;
|-&lt;br /&gt;
|Establecida comunicación con agente, consulta destino externo desde el terminal||La llamada se indica en el terminal pero no progresa&lt;br /&gt;
|-&lt;br /&gt;
|Conferencia desde el terminal||Aparece el mensaje “No se puede completar conferencia” &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
-'''Nota:'''	Cuando se programa el desvío inmediato desde Vivait Call y desde el terminal, el desvío  programado en Vivait Call es prioritario sobre el programado en el terminal.&lt;br /&gt;
&lt;br /&gt;
=== 512G ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Item !! Observaciones&lt;br /&gt;
|- &lt;br /&gt;
|Llamada local entrante a la Secretaria que luego transfiere al Jefe||La llamada vuelve a la secretaria. Se puede utilizar la función de transferencia con consulta y cuando el teléfono del jefe comience a sonar realizar la transferencia.&lt;br /&gt;
|-&lt;br /&gt;
|Llamada internodos entrante a la Secretaria que luego transfiere al Jefe||La llamada vuelve a la secretaria. Se puede utilizar la función de transferencia con consulta y cuando el teléfono del jefe comience a sonar realizar la transferencia.&lt;br /&gt;
|- &lt;br /&gt;
|Llamada externa entrante a la Secretaria que luego transfiere al Jefe||La llamada vuelve a la secretaria. Se puede utilizar la función de transferencia con consulta y cuando el teléfono del jefe comience a sonar realizar la transferencia.&lt;br /&gt;
|- &lt;br /&gt;
|Llamada local entrante al jefe, recibida por la secretaria y trasferida después al jefe||La llamada vuelve a la secretaria. Se puede utilizar la función de transferencia con consulta y cuando el teléfono del jefe comience a sonar realizar la transferencia. &lt;br /&gt;
|- &lt;br /&gt;
|Llamada local entrante al jefe, recibida por la secretaria y trasferida después al jefe||La llamada vuelve a la secretaria. Se puede utilizar la función de transferencia con consulta y cuando el teléfono del jefe comience a sonar realizar la transferencia. &lt;br /&gt;
|- &lt;br /&gt;
|Llamada externa entrante al jefe, recibida por la secretaria y luego transferida al jefe||La llamada vuelve a la secretaria. Se puede utilizar la función de transferencia con consulta y cuando el teléfono del jefe comience a sonar realizar la transferencia. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 514G ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Item !! Observaciones&lt;br /&gt;
|- &lt;br /&gt;
|Llamada local entrante a la secretaria y luego transfiere al jefe||La llamada vuelve a la secretaria. Se puede utilizar la función de transferencia con consulta y cuando el teléfono del jefe comience a sonar realizar la transferencia.&lt;br /&gt;
|-&lt;br /&gt;
|Llamada externa entrante a la secretaria y luego transfiere al jefe||La llamada vuelve a la secretaria. Se puede utilizar la función de transferencia con consulta y cuando el teléfono del jefe comience a sonar realizar la transferencia.&lt;br /&gt;
|- &lt;br /&gt;
|Llamada local entrante al jefe, recibida por la secretaria y trasferida después al jefe||La llamada vuelve a la secretaria. Se puede utilizar la función de transferencia con consulta y cuando el teléfono del jefe comience a sonar realizar la transferencia.&lt;br /&gt;
|- &lt;br /&gt;
|Llamada externa entrante al jefe, recibida por la secretaria y luego transferida al jefe||La llamada vuelve a la secretaria. Se puede utilizar la función de transferencia con consulta y cuando el teléfono del jefe comience a sonar realizar la transferencia. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== VG224 ===&lt;br /&gt;
Los gateways VG224 son compatibles con SIP, pero sus funcionalidades quedan muy limitadas al configurarlos '''en SIP''' tal y como se muestra en la siguiente tabla (tercera columna):&lt;br /&gt;
&lt;br /&gt;
[[Archivo:vg224.png|center]]&lt;br /&gt;
&lt;br /&gt;
=== Skinny en VIVAit Call ===&lt;br /&gt;
&lt;br /&gt;
Con los terminales '''Cisco''' es posible cargar módulos SCCP y MGCP en VIVAit, si bien, desconocemos la funcionalidad (qué funciona y qué no), la estabilidad (se cae o no se cae) y la escalabilidad (cuantos elementos se soportan y cuanto afecta cada elemento adicional a las prestaciones del sistema) en un entorno que no se considere de uso '''testimonial''', por lo que '''no podemos asegurar su funcionalidad ni su funcionamiento'''.&lt;br /&gt;
&lt;br /&gt;
Los terminales de '''Cisco''' identificados que utilizan únicamente estos módulos son:&lt;br /&gt;
* Cisco Unified Wireless IP Phone 7921 Series&lt;br /&gt;
* Cisco IP Conference Station Model 7937&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Cuando los entornos en los que pretendemos cargar módulos SCCP y MGCP en VIVAit no son '''testimoniales''', recomendamos lo siguiente:&lt;br /&gt;
* Ir añadiendo terminales SCCP en catidades NO superiores a 10 por semana.&lt;br /&gt;
* Analizar vía Zabbix el impacto en la capcidad del sistema (sobre todo uso de CPU en el servidor, pero analizar todo) cada vez que incluyamos nuevos terminales.&lt;br /&gt;
* Analizar con los usuarios las funcionalidades de los terminales.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Grandstream ==&lt;br /&gt;
&lt;br /&gt;
=== DP715_EU ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Item !! Observaciones&lt;br /&gt;
|- &lt;br /&gt;
|Realizar una llamada interna a un teléfono desviado || El display del terminal inalámbrico NO CAMBIA para mostrar información del conectado (posición de desvío).&lt;br /&gt;
|-&lt;br /&gt;
| Hacer una llamada, ponerla en espera y reanudarla || El lado en espera NO recibe música en espera&lt;br /&gt;
|- &lt;br /&gt;
| Iniciar una conferencia a tres || Con el DP715 conectado a la llamada actual, pulsar R. La llamada actual queda retenida SIN MÚSICA EN ESPERA&lt;br /&gt;
|- &lt;br /&gt;
| Capturar una llamada dirigida a otra extensión *41*Nº || Cuando se establece la conexión el display del DP 715 presenta la combinación de cifras marcada para la captura. NO SE ACTUALIZA CON LA INFORMACIÓN DEL LLAMANTE (NÚMERO CONECTADO).&lt;br /&gt;
|-&lt;br /&gt;
|Activar/Desactivar NO MOLESTEN en DP 715: Marque *78 para activar. Marque *79 para desactivar||El estado (NO MOLESTEN) NO se informa en la pantalla del terminal. Con no molesten activo las llamadas serán rechazadas (El llamante recibe ocupado)&lt;br /&gt;
|-&lt;br /&gt;
|DP 715 inicia la llamada, luego es transferido por la extensión a la que llamó.||Tras la transferencia, la pantalla del DP 715 sigue presentando el número que marcó, NO se actualiza para presentar el conectado&lt;br /&gt;
|-&lt;br /&gt;
|DP 715 recibe una llamada transferida tras ser consultado.||Tras la transferencia, la pantalla del DP 715 sigue presentando el número del llamante, NO se actualiza para presentar el conectado.&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== GXP 2135 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Item !! Observaciones&lt;br /&gt;
|- &lt;br /&gt;
|Gestión de desvíos de USUARIO por código de facilidad: Uso de *31x|| '''NO OK'''&lt;br /&gt;
En GXP 2135 se utiliza *30 y *31 para bloquear/desbloquear el envío de la identidad del llamante.&lt;br /&gt;
|}&lt;br /&gt;
=== GXP 2140 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Item !! Observaciones&lt;br /&gt;
|- &lt;br /&gt;
|Gestión de desvíos de USUARIO por código de facilidad: Uso de *31x|| '''NO OK'''&lt;br /&gt;
En GXP 2140 se utiliza *30 y *31 para bloquear/desbloquear el envío de la identidad del llamante.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== GXP 2170 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Item !! Observaciones&lt;br /&gt;
|- &lt;br /&gt;
|Gestión de desvíos de USUARIO por código de facilidad: Uso de *31x|| '''NO OK'''&lt;br /&gt;
En GXP 2170 se utiliza *30 y *31 para bloquear/desbloquear el envío de la identidad del llamante.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== GXV 3240 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Item !! Observaciones&lt;br /&gt;
|- &lt;br /&gt;
|SE PRODUCEN ERRORES AL APLICAR LOS CAMBIOS DE CONFIGURACIÓN REALIZADOS EN EL PORTAL DEL TELÉFONO||&lt;br /&gt;
Aunque el portal responda con el mensaje &amp;quot;&amp;quot;Aplicado exitoso&amp;quot;&amp;quot; Se ha comprobado que en unos casos el cambio no produce el efecto esperado o, en otros, que la aplicación de los cambios deja al terminal sin posibilidad de llamar a ningún número (Call failed: error 404, NOT FOUND). La razón es que la aplicación de los cambios deja al terminal sin registro en Asterisk.&lt;br /&gt;
En la &amp;quot;&amp;quot;Barra de Estado&amp;quot;&amp;quot; aparecen notificaciones de error en la descarga de ficheros.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== GXV 3275 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Item !! Observaciones&lt;br /&gt;
|- &lt;br /&gt;
|SE PRODUCEN ERRORES AL APLICAR LOS CAMBIOS DE CONFIGURACIÓN REALIZADOS EN EL PORTAL DEL TELÉFONO||&lt;br /&gt;
Aunque el portal responda con el mensaje &amp;quot;&amp;quot;Aplicado exitoso&amp;quot;&amp;quot; Se ha comprobado que en unos casos el cambio no produce el efecto esperado o, en otros, que la aplicación de los cambios deja al terminal sin posibilidad de llamar a ningún número (Call failed: error 404, NOT FOUND). La razón es que la aplicación de los cambios deja al terminal sin registro en Asterisk.&lt;br /&gt;
En la &amp;quot;&amp;quot;Barra de Estado&amp;quot;&amp;quot; aparecen notificaciones de error en la descarga de ficheros.&lt;br /&gt;
|- &lt;br /&gt;
|Realizar y recibir una llamada de video||&lt;br /&gt;
La calidad observada es peor que la de otros terminales probados que soportan video llamada. Puede ser achacable al entorno de prueba.&lt;br /&gt;
|- &lt;br /&gt;
|Acciones del menú (Opciones del Buzón). El submenú Opciones del Buzón permite al usuario grabar mensajes personalizados como saludo temporal o grabar mensajes personalizados para los casos de &amp;quot;no disponible&amp;quot; u &amp;quot;ocupado&amp;quot; o grabar su nombre||&lt;br /&gt;
Hay un escenario en el que después de haber grabado; el mensaje personal para ocupado, el mensaje personal para no disponible, el mensaje con el nombre o un saludo temporal, la consulta del archivo que contiene la grabación (opción 2 del submenú) produce la desconexión de la llamada establecida con el Buzón de Voz, sin que se pueda comprobar el mensaje que se grabó.&lt;br /&gt;
Este fallo sólo se produce si accedemos al Buzón de Voz haciendo uso de la tecla programada para ello.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Huawei ==&lt;br /&gt;
&lt;br /&gt;
=== eSpace 7910 ===&lt;br /&gt;
Multiples consideraciones de funcionamiento debidas aprovisionamiento especifico (pendiente de confirmar)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Item !! Observaciones&lt;br /&gt;
|- &lt;br /&gt;
|Botón Mensajes||No operativo al acceder la pantalla muestra BUZÓN y nada más&lt;br /&gt;
|-&lt;br /&gt;
|DND: Función &amp;quot;No Molesten&amp;quot;||'''NO OK'''&lt;br /&gt;
No se puede configurar la función&lt;br /&gt;
|- &lt;br /&gt;
Realizar una llamada interna a un teléfono ocupado||El Huawei informa de la situación de ocupado del llamado con un mensaje en pantalla (presentación muy corta en pantalla). No se recibe tono de ocupado.&lt;br /&gt;
|- &lt;br /&gt;
|Realizar una llamada interna a un teléfono desviado||El Display presenta el número marcado. NO el conectado (Posición de desvío)&lt;br /&gt;
|-&lt;br /&gt;
|HUAWEI 7910 inicia la llamada e inicia la transferencia.||Las extensiones que quedan al habla presentan en pantalla información del teléfono conectado. Si el teléfono que recibe la llamada transferida es Huawey su pantalla presenta el número de la extensión que lo llamó, NO el conectado&lt;br /&gt;
|-&lt;br /&gt;
|HUAWEI 7910 inicia la llamada, luego es transferido por la extensión a la que llamó.||Tras la transferencia, en la pantalla del Huawey aparece el número que marcó, NO el Conectado&lt;br /&gt;
|-&lt;br /&gt;
HUAWEI 7910 recibe una llamada transferida tras ser consultado.||En la pantalla del Huawey aparece el número de la extensión que lo llamó, NO el Conectado&lt;br /&gt;
|-&lt;br /&gt;
|Activar el desvío de las llamadas entrantes (locales y externas).En la pantalla de Inicio seleccionamos Aplic, Luego Pref-Func llamadas-Desvío llam. En esta situación presenta las opciones &amp;quot;&amp;quot;Todas a&amp;quot;&amp;quot;, &amp;quot;&amp;quot;Por ocupado a&amp;quot;&amp;quot;, &amp;quot;&amp;quot;Por no contesta a&amp;quot;&amp;quot;,&amp;quot;&amp;quot; Por fuera de línea a&amp;quot;&amp;quot;&amp;quot;||'''NO OK'''&lt;br /&gt;
No se puede configurar ninguna opción de desvío a través de este menú. Parecen estar deshabilitadas&lt;br /&gt;
|-&lt;br /&gt;
|Capturar una llamada dirigida a otro teléfono.En Huawey marcamos (código de captura + nº extensión recibiendo llamada).||Tras la captura en la pantalla del Huawey aparece la combinación de dígitos marcada, NO el conectado.&lt;br /&gt;
|-&lt;br /&gt;
|Señalización en el terminal de mensajes nuevos pendientes.||'''INEXISTENTE'''&lt;br /&gt;
Hay una barra led que se nombra cómo MWI en el guía que se entrega con el terminal que podría estar relacionada con esta funcionalidad.&lt;br /&gt;
|-&lt;br /&gt;
|SUPERVISIÓN||'''NO OK'''&lt;br /&gt;
No se ha podido configurar un BLF&lt;br /&gt;
|-&lt;br /&gt;
|Transferencia de una llamada desde la secretaria al Jefe con consulta.||En la extensión del jefe se produce el defecto de presentación del número conectado explicado en: &amp;quot;Recepción de la llamada transferida a un Huawei tras ser consultado.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== eSpace 7950 ===&lt;br /&gt;
 &amp;lt;!--ALBA: ENTIENDO POR LIMITACIONES Y COMPARANDO CON EL RESTO QUE SE REFIERE A LAS MARCADAS EN AMARILLO --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Item !! Observaciones&lt;br /&gt;
|- &lt;br /&gt;
|Botón Mensajes||'''No operativo''' al acceder la pantalla muestra BUZÓN y nada más&lt;br /&gt;
|-&lt;br /&gt;
|Botón Desvíos||'''NO OK'''&lt;br /&gt;
No es posible configurar ninguna de las opciones de desvío. El teléfono responde &amp;quot;Error de ajustes&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Realizar una llamada interna || El Display presenta el número marcado. Cuando aparece el Nombre es porque el número marcado está en la lista de contactos y el Nombre que vemos es el que tiene asociado en ella.&lt;br /&gt;
|-&lt;br /&gt;
|Realizar una llamada interna a un teléfono desviado || El Display presenta el número marcado. NO el conectado (Posición de desvío).&lt;br /&gt;
|-&lt;br /&gt;
|HUAWEY 7950 inicia la llamada, luego es transferido por la extensión a la que llamó||En la pantalla del Huawey aparece el número marcado, NO el Conectado&lt;br /&gt;
|-&lt;br /&gt;
|HUAWEY 7950 recibe una llamada transferida tras ser consultado|| En la pantalla del Huawey aparece el número de la extensión que lo llamó, NO el Conectado&lt;br /&gt;
|-&lt;br /&gt;
|HUAWEY 7950 inicia la llamada, luego es transferido por la extensión a la que llamó.||En la pantalla del Huawey aparece el número marcado, NO el Conectado&lt;br /&gt;
|- &lt;br /&gt;
|Activación del desvío de llamadas con el Menú del  HUAWEY||'''NO OK'''&amp;lt;BR /&amp;gt;&lt;br /&gt;
No se puede configurar ninguna opción de desvío a través de este menú. Parecen estar deshabilitadas&lt;br /&gt;
|- &lt;br /&gt;
|Capturar una llamada dirigida a otro teléfono.||Tras la captura en la pantalla del Huawey aparece la combinación de dígitos marcada, NO el conectado.&lt;br /&gt;
|-&lt;br /&gt;
|SUPERVISIÓN||'''NO OK'''&amp;lt;Br/&amp;gt;No se ha podido configurar un BLF&lt;br /&gt;
|-&lt;br /&gt;
|Transferencia de una llamada desde la secretaria al Jefe '''con consulta'''||En la extensión del jefe se produce el defecto de presentación del número conectado explicado en: &amp;quot;Recepción de la llamada transferida a un Huawey tras ser consultado.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Innovaphone ==&lt;br /&gt;
&lt;br /&gt;
=== IP110 ===&lt;br /&gt;
Configuración sin aprovisionamiento&lt;br /&gt;
&lt;br /&gt;
MUY IMPORTANTE: Para que la marcación con el teléfono descolgado y tono de invitación a marcar sea posible, debemos configurar algún valor para el parámetro &amp;quot;Enblock Dialing Timeout&amp;quot;.&lt;br /&gt;
Nos conectamos a la página de configuración del fabricante. En la pestaña &amp;quot;&amp;quot;Phone&amp;quot;&amp;quot;- &amp;quot;General&amp;quot; el parámetro viene en blanco. Configurar un valor (Son los segundos de espera para el envío de las cifras en bloque).&lt;br /&gt;
&lt;br /&gt;
== Mitel ==&lt;br /&gt;
Se ha detectado que terminales Aastra utilizan el campo PAI en lugar del RPID para realizar el envío del nombre del llamante; esto genera limitaciones cuando se realizan llamadas a terminales que usan el campo RPID --&amp;gt; Por ejemplo terminales Cisco&lt;br /&gt;
=== 5212 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Item !! Observaciones&lt;br /&gt;
|- &lt;br /&gt;
|Llamada local entrante a la secretaria y luego transfiere al jefe||La llamada vuelve a la secretaria. La llamada se identifica en el jefe con número llamante el inicialmente concectado por lo que no puede saltarse el desvío.&lt;br /&gt;
|-&lt;br /&gt;
|Llamada externa entrante a la secretaria y luego transfiere al jefe||La llamada vuelve a la secretaria. La llamada se identifica en el jefe con número llamante el inicialmente concectado por lo que no puede saltarse el desvío.&lt;br /&gt;
|-&lt;br /&gt;
|Llamada local entrante al jefe, recibida por la secretaria y trasferida después al jefe || La llamada vuelve a la secretaria. La llamada se identifica en el jefe con número llamante el inicialmente concectado por lo que no puede saltarse el desvío.&lt;br /&gt;
|-&lt;br /&gt;
|Llamada externa entrante al jefe, recibida por la secretaria y luego transferida al jefe || La llamada vuelve a la secretaria. La llamada se identifica en el jefe con número llamante el inicialmente concectado por lo que no puede saltarse el desvío.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Mobotix ==&lt;br /&gt;
&lt;br /&gt;
=== T25 ===&lt;br /&gt;
* Pruebas básicas de registro SIP&lt;br /&gt;
* Comprobado funcionamiento de audio y vídeo&lt;br /&gt;
&lt;br /&gt;
'''Procedimiento de configuración básica:'''&lt;br /&gt;
&lt;br /&gt;
* Entrar a la web e ir a Admin Menu&lt;br /&gt;
* Configurar la extensión en SIP Client Settings&lt;br /&gt;
* Para configurar a donde llama cuando se pulse la campana:&lt;br /&gt;
:# Outgoing Call Settings: añadir un nuevo perfil, con la extensión a la que se quiere que se llame cuando se pulse la campana.&lt;br /&gt;
:# En Bell Behavior and Video Mailbox, dentro de Set Remote Stations for Door Station / Outgoing Call Profiles seleccionar el perfil creado en el punto anterior y pulsar Add selected devices.&lt;br /&gt;
* Para que los cambios sean permanentes (si se quita la alimentación, se pierden los cambios), pulsar en Configuration / Store. En la nueva ventana, pulsar en el botón Store Permanently.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Panasonic ==&lt;br /&gt;
=== KX-TGP600 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Item !! Observaciones&lt;br /&gt;
|- &lt;br /&gt;
|Llamada local entrante a la secretaria y luego transfiere al jefe||La llamada vuelve a la secretaria. Se puede utilizar la función de transferencia con consulta y cuando el teléfono del jefe comience a sonar realizar la transferencia.&lt;br /&gt;
|-&lt;br /&gt;
|Llamada externa entrante a la secretaria y luego transfiere al jefe||La llamada vuelve a la secretaria. Se puede utilizar la función de transferencia con consulta y cuando el teléfono del jefe comience a sonar realizar la transferencia.&lt;br /&gt;
|-&lt;br /&gt;
|Llamada local entrante al jefe, recibida por la secretaria y trasferida después al jefe || La llamada vuelve a la secretaria. Se puede utilizar la función de transferencia con consulta y cuando el teléfono del jefe comience a sonar realizar la transferencia.&lt;br /&gt;
|-&lt;br /&gt;
|Llamada externa entrante al jefe, recibida por la secretaria y luego transferida al jefe || La llamada vuelve a la secretaria. Se puede utilizar la función de transferencia con consulta y cuando el teléfono del jefe comience a sonar realizar la transferencia.&lt;br /&gt;
|}&lt;br /&gt;
==Siemens==&lt;br /&gt;
===OpenStage 15===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Item !! Observaciones&lt;br /&gt;
|- &lt;br /&gt;
!ESC 05: MENSAJERÍA VOCAL !!OBSERVACIONES/RESULTADOS&lt;br /&gt;
|-&lt;br /&gt;
|Acceso al buzón de voz con tecla específica de mensajería (tecla sobre)||No funciona el acceso directo al buzón, descolgando y pulsando la tecla sobre.&lt;br /&gt;
|-&lt;br /&gt;
!ESC 09: SERVICIO JEFE SECRETARIA !!&lt;br /&gt;
|-&lt;br /&gt;
!SUBESC 09.04: Transferencia sin consulta !!&lt;br /&gt;
|-	&lt;br /&gt;
|Llamada local entrante a la secretaria y luego transfiere al jefe||&amp;quot;'''NOK''' La llamada vuelve a la secretaria.&lt;br /&gt;
Se puede utilizar la transferencia sobre señal de llamada&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Llamada externa entrante a la secretaria y luego transfiere al jefe||	&amp;quot;'''NOK''' La llamada vuelve a la secretaria.&lt;br /&gt;
Se puede utilizar la transferencia sobre señal de llamada&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Llamada local entrante al jefe, recibida por la secretaria y trasferida después al jefe||	&amp;quot;'''NOK''' La llamada vuelve a la secretaria.&lt;br /&gt;
Se puede utilizar la transferencia sobre señal de llamada&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Llamada externa entrante a la secretaria y luego transfiere al jefe||	&amp;quot;'''NOK''' La llamada vuelve a la secretaria.&lt;br /&gt;
Se puede utilizar la transferencia sobre señal de llamada&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Yealink ==&lt;br /&gt;
=== T18P ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Item !! Observaciones&lt;br /&gt;
|- &lt;br /&gt;
|Realizar una llamada interna/externa||&lt;br /&gt;
retardo en el establecimiento de la comunicación&lt;br /&gt;
Desde que se termina la marcación del número hasta que se establece la llamada pasa un tiempo apreciable (en este terminal, cuando se desconfigura el # como tecla de envío no hay otra que se pueda utilizar para ello y solo queda esperar a que suene la señal de llamada). Este efecto se minimiza en remarcaciones o marcaciones rápidas.&lt;br /&gt;
|-&lt;br /&gt;
|Activar NO MOLESTEN en Yealink T18P||&lt;br /&gt;
LIMITACIONES:&lt;br /&gt;
Es necesaria la configuración de la función DND en una de las teclas DSS (usar la página web de configuración del terminal).&lt;br /&gt;
Activar DND: Con el micro receptor colgado o descolgado, pulsar una vez la tecla configurada como DND.&lt;br /&gt;
Desactivar DND: Con el micro receptor colgado, pulsar una vez la tecla configurada como DND. También, descolgando el micro receptor.&lt;br /&gt;
La limitación está en como señaliza el estado NO MOLESTAR el Terminal. En condiciones normales, el Led situado en la esquina superior izquierda del terminal cambia de lucir en verde fijo a parpadear en verde. Pero si hay mensajes pendientes de leer en el buzón de voz (Led fijo en color rojo), esta situación no cambia al activar NO MOLESTEN.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== SIP-T58V ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Item !! Observaciones&lt;br /&gt;
|- &lt;br /&gt;
!ESC 09: VIDEOLLAMADAS	!!&lt;br /&gt;
|-&lt;br /&gt;
!SUBESC 09.01: Realizar una videollamada&lt;br /&gt;
|-&lt;br /&gt;
|Realizar una videollamada mediante la función Llamada Reciente||'''NOK''' El terminal no proporciona la opción de llamada reciente con videollamada&lt;br /&gt;
|-&lt;br /&gt;
!SUBESC 09.02: Recibir una videollamada&lt;br /&gt;
|-&lt;br /&gt;
|Recibir una videollamada en modo de respuesta automática||'''NOK''' No se activa la videollamada&lt;br /&gt;
|-&lt;br /&gt;
!ESC 10: SERVICIO JEFE SECRETARIA !!&lt;br /&gt;
|-&lt;br /&gt;
!SUBESC 10.02: Tecla de supervisión&lt;br /&gt;
|-		&lt;br /&gt;
|Realizar videollamada al jefe con tecla de supervisión||'''NOK''' El terminal no ofrece la posibilidad de invocar el servicio de vídeo al realizar una llamada con la tecla de supervisión&lt;br /&gt;
|-&lt;br /&gt;
!SUBESC 10.04: Transferencia sin consulta&lt;br /&gt;
|-		&lt;br /&gt;
|Llamada local entrante a la secretaria y luego transfiere al jefe||'''NOK''' La llamada vuelve a la secretaria, no se pude saltar el desvío&lt;br /&gt;
|-&lt;br /&gt;
|Llamada externa entrante a la secretaria y luego transfiere al jefe||'''NOK''' La llamada vuelve a la secretaria, no se pude saltar el desvío&lt;br /&gt;
|-&lt;br /&gt;
|Llamada local entrante al jefe, recibida por la secretaria y trasferida después al jefe||'''NOK''' La llamada vuelve a la secretaria, no se pude saltar el desvío&lt;br /&gt;
|-&lt;br /&gt;
|Llamada externa entrante al jefe, recibida por la secretaria y trasferida después al jefe||'''NOK''' La llamada vuelve a la secretaria, no se pude saltar el desvío&lt;br /&gt;
|-&lt;br /&gt;
!ESC 12: AGENTE ACD&lt;br /&gt;
|-&lt;br /&gt;
!SUBESC 12.08: Grabación de llamadas entrantes a VDN. En modo de grabación (VDN, cola y perfil) “Grabación bajo demanda Inicio sin grabar”, y agente “Grabar todo = SI”	&lt;br /&gt;
|-	&lt;br /&gt;
|Activar grabación solo en VDN sin bip periódico||'''NOK''' Se graba segmento VDN, no se graba segmento Agente grabación en la sombra&lt;br /&gt;
Cuando se activa algún tipo de grabación no aparece el formulario en el agente&lt;br /&gt;
|-&lt;br /&gt;
|Activar grabación solo en VDN con bip periódico||'''NOK''' Se graba segmento VDN, no se graba segmento Agente grabación en la sombra&lt;br /&gt;
Cuando se activa al gún tipo de grabación no aparece el formulario en el agente&lt;br /&gt;
|-&lt;br /&gt;
|Yealink graba el audio y el video de una videollamada establecida||'''NOK''' No se activa la videollamada&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(*)Pruebas realizadas entre Videoterminales: Yealink T58V y Grandstream GXV3275&lt;br /&gt;
[[Category:tecnico]] &lt;br /&gt;
[[Category:VIVAit Call]] &lt;br /&gt;
[[Category:VIVAit Suite]]&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_Openfire&amp;diff=6603</id>
		<title>Manual Openfire</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_Openfire&amp;diff=6603"/>
		<updated>2018-03-22T07:06:37Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Instalación de Openfire (versión 4.0.1) ==&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANTE: LA FUNCIONALIDAD DE LLAMAR DESDE EL CLIENTE SPARK SOLO FUNCIONA PARA LA VERSIÓN 4.1.3 DE OPENFIRE Y 2.7.5 DE SPARK'''&lt;br /&gt;
&lt;br /&gt;
 '''Openfire''' es un sistema de mensajería instantánea GPL, hecho en java y que utiliza el protocolo XMPP, con el podrás tener tu   &lt;br /&gt;
 propio servidor de mensajería puedes administrar a tus usuarios, compartir archivos, auditar mensajes, mensajes offline, mensajes &lt;br /&gt;
 broadcast, grupos, etc&lt;br /&gt;
&lt;br /&gt;
Nos bajamos '''openfire''' &amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''(recuerda, este manual está basado en la versión 4.0.1)'''&amp;lt;/span&amp;gt; para linux a través de la siguiente página: http://www.igniterealtime.org/downloads/index.jsp. &lt;br /&gt;
&lt;br /&gt;
Seleccionamos .deb&lt;br /&gt;
Lo guardamos en el directorio '''/tmp'''&lt;br /&gt;
&lt;br /&gt;
A continuación ejecutamos los siguientes comandos para extraer e instalar openfire:&lt;br /&gt;
&lt;br /&gt;
 # cd /tmp&lt;br /&gt;
 # dpkg -i openfire_4_0_1.deb&lt;br /&gt;
&lt;br /&gt;
Tendremos que tener en nuestra máquina instalado '''JAVA.'''&lt;br /&gt;
&lt;br /&gt;
=='''Instalamos MYSQL'''==&lt;br /&gt;
&lt;br /&gt;
La instalación de MYSQL se realiza a partir de este comando:&lt;br /&gt;
&lt;br /&gt;
 # apt-get install mysql-server&lt;br /&gt;
&lt;br /&gt;
En la Openfire setup tool, que será mas adelante, usaremos los siguientes valores:&lt;br /&gt;
&lt;br /&gt;
:• driver: com.mysql.jdbc.Driver&lt;br /&gt;
:• server: jdbc:mysql://[YOUR_HOST]/[DATABASE_NAME]&lt;br /&gt;
&lt;br /&gt;
''Creamos'' la ''base e datos'' a partir del siguiente comando:&lt;br /&gt;
&lt;br /&gt;
 create database databaseName&lt;br /&gt;
&lt;br /&gt;
''Importamos'' el ''esquema'' de la ''base de datos:''&lt;br /&gt;
&lt;br /&gt;
 mysql -u root -p databaseName &amp;lt; /usr/src/openfire/resources/database/openfire_mysql.sql&lt;br /&gt;
&lt;br /&gt;
Una vez hecho esto vamos a ''instalar Java:''&lt;br /&gt;
&lt;br /&gt;
 # apt-get update &amp;lt;br /&amp;gt;&lt;br /&gt;
 # apt-get install openjdk-7-jre&lt;br /&gt;
&lt;br /&gt;
Abrimos navegador y escribimos la siguiente URL http://IP:9090, donde IP es donde hemos instalado openfire.&lt;br /&gt;
Si está todo bien nos aparecerá la siguiente pantalla:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ip-9090.png |center]]&lt;br /&gt;
&lt;br /&gt;
Configuramos el dominio del servidor:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Configurar_dom_servidor.png |center]]&lt;br /&gt;
&lt;br /&gt;
Donde el dominio es el nombre del Host o IP del servidor.&lt;br /&gt;
&lt;br /&gt;
Configuración de base de datos para nuestro ejemplo seleccionamos base de datos interna, si vamos a usar base de datos externa '''(OPCION RECOMENDADA)''' seleccionamos la otra opción.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Configurar base datos.png |center]]&lt;br /&gt;
&lt;br /&gt;
Seteos de perfil&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Seteos_perfil.png |center]]&lt;br /&gt;
&lt;br /&gt;
Seteos de perfil: Seteos de conexión, configuramos como sigue:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Seteo conexion.png |center]]&lt;br /&gt;
&lt;br /&gt;
Seteos de perfil: Mapeos de usuarios, dejamos las opciones por defecto&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Seteo_mapeo_usuario.png |center]]&lt;br /&gt;
&lt;br /&gt;
Seteos de perfil: Mapeos de grupo, dejamos las opciones por defecto&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Seteo_mapeo_grupo.png |center]]&lt;br /&gt;
&lt;br /&gt;
Cuenta del administrador: usuario que administre openfire exixtentes en el LDAP, los buscamos y agregamos:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Cuenta_administrador.png |center]]&lt;br /&gt;
&lt;br /&gt;
Finalizamos si todo esta ok.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Todo_ok.png |center]]&lt;br /&gt;
&lt;br /&gt;
Tras finalizar la instalación ingresaremos con la cuenta de administrador y si las credenciales son las correctas se nos mostrará la siguiente pantalla:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Credenciales_correctas.png |center ]]&lt;br /&gt;
&lt;br /&gt;
=='''Integración con asterisk'''==&lt;br /&gt;
&lt;br /&gt;
Requisitos:&lt;br /&gt;
&lt;br /&gt;
• haber instalado openfire con una base de datos externa (Mysql)&amp;lt;br/&amp;gt;&lt;br /&gt;
• haber puesto el parámetro '''callevents=yes''' en la parte general del archivo sip.conf&amp;lt;br/&amp;gt;&lt;br /&gt;
• haber configurado un usuario en el archivo manager.conf&lt;br /&gt;
&lt;br /&gt;
Primero vamos a modificar el archivo ''manager.conf''&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/asterisk/manager.conf&lt;br /&gt;
&lt;br /&gt;
La parte general debe aparecer de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
''[general]'' &amp;lt;br /&amp;gt;&lt;br /&gt;
''enabled = yes'' &amp;lt;br /&amp;gt;&lt;br /&gt;
''port = 5038'' &amp;lt;br /&amp;gt;&lt;br /&gt;
''bindaddr = 0.0.0.0'' &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Luego, añadimos un nuevo usuario;&lt;br /&gt;
&lt;br /&gt;
''[openfire]'' &amp;lt;br /&amp;gt;&lt;br /&gt;
''secret = miclave'' &amp;lt;br /&amp;gt;&lt;br /&gt;
''displayconnects = yes'' &amp;lt;br /&amp;gt;&lt;br /&gt;
''read = all'' &amp;lt;br /&amp;gt;&lt;br /&gt;
''write = all''&lt;br /&gt;
&lt;br /&gt;
Actualizamos la configuración de asterisk:&lt;br /&gt;
&lt;br /&gt;
 # /etc/init.d/asterisk reload&lt;br /&gt;
&lt;br /&gt;
En el caso que el servidor jabber (openfire) y el servidor Asterisk estén en dos servidores distintos, en la configuración del cortafuegos, si no lo han hecho antes, tienen que abrir el puerto 5038 tcp.&lt;br /&gt;
&lt;br /&gt;
Arrancamos iptables:&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/sysconfig/iptables&lt;br /&gt;
&lt;br /&gt;
y añadimos estas dos líneas:&lt;br /&gt;
&lt;br /&gt;
 # Asterisk Manager&lt;br /&gt;
 -A INPUT -p tcp --dport 5038 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
 Guardamos el archivo y volvemos a arrancar iptables&lt;br /&gt;
&lt;br /&gt;
 # service iptables restart&lt;br /&gt;
&lt;br /&gt;
Ahora el archivo sip.conf&lt;br /&gt;
&lt;br /&gt;
 # nano /etc/asterisk/sip.conf&lt;br /&gt;
&lt;br /&gt;
añadimos y/o modificamos la siguiente línea en la parte general&lt;br /&gt;
&lt;br /&gt;
''callevents=yes''&lt;br /&gt;
&lt;br /&gt;
Desde la consola de Asterisk:&lt;br /&gt;
&lt;br /&gt;
 # asterisk -rvvvvvvvvvvvvvv&lt;br /&gt;
 CLI&amp;gt; sip reload&lt;br /&gt;
&lt;br /&gt;
Ahora instalamos el ''plugin en Openfire.''&lt;br /&gt;
&lt;br /&gt;
Desde la página web hay un plugin para la ''integracion de openfire con asterisk''. Descargamos dicho plugin desde http://www.igniterealtime.org/projects/openfire/plugins/asterisk-im.jar&lt;br /&gt;
&lt;br /&gt;
Tras descargarlo lo guardamos en '''/usr/src/openfire/plugins'''&lt;br /&gt;
&lt;br /&gt;
Reiniciamos el servicio openfire:&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/openfire stop&lt;br /&gt;
 /etc/init.d/openfire start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez instalado el plugin de asterisk, nos debe aparecer al lado de plugins algo así:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Instalado_plugin_asterisk.png |center]]&lt;br /&gt;
&lt;br /&gt;
Clicamos en '''Asterisk-IM''' y luego en '''General Settings.'''&lt;br /&gt;
''Habilitamos'' el Asterisk-IM y salvamos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Agregamos el servidor asterisk:&lt;br /&gt;
&lt;br /&gt;
• Server Name: asterisk &amp;lt;br /&amp;gt;&lt;br /&gt;
• Server Address: xxx.xxx.xxx.xxx&amp;lt;br /&amp;gt;&lt;br /&gt;
• Port: 5038&amp;lt;br /&amp;gt;&lt;br /&gt;
• Username: Usuario creado en manager.conf&amp;lt;br /&amp;gt;&lt;br /&gt;
• Password: Password del usuario creado en manager.conf&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Agregamos_serv_asterisk.png |center]]&lt;br /&gt;
&lt;br /&gt;
Guardamos y pasamos al menú '''Phone Mappings'''&lt;br /&gt;
&lt;br /&gt;
Configuramos todos los usuarios de Openfire que queremos asociar con una extensión SIP de nuestro servidor Asterisk.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Usuarios_openfire.png |center]]&lt;br /&gt;
&lt;br /&gt;
=='''Instalación de Jitsi-Videobridge'''==&lt;br /&gt;
&lt;br /&gt;
 '''Jitsi-Videobridge''' es un WebRTC que permite la comunicación de vídeo multiusuario.&lt;br /&gt;
&lt;br /&gt;
Lo primero que haremos es habilitar los Componentes Externos en Openfired:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Habilitar_comp_externos_openfired.png |center]]&lt;br /&gt;
&lt;br /&gt;
Para instalar Jitsi Videobridge, lo descargamos de la siguiente URL:&lt;br /&gt;
&lt;br /&gt;
https://download.jitsi.org/jitsi-videobridge/linux/&lt;br /&gt;
&lt;br /&gt;
Simplemente  ''extraeremos y ejecutaremos'' el script jvb.sh. Si lo ejecutamos sin parámetros se nos mostrará los diferentes argumentos que hay. Para arrancar el servicio basta con poner jvb.sh&lt;br /&gt;
&lt;br /&gt;
--secret=xxxxx&lt;br /&gt;
&lt;br /&gt;
Siendo el secret la clave que hemos configurado en el Componente Externo.&lt;br /&gt;
&lt;br /&gt;
Para verificar que '''Jitsi esta correctamente conectado al Openfired''' iremos:&lt;br /&gt;
[[Archivo:Jitsi_correctamente_conectado.png |center]]&lt;br /&gt;
&lt;br /&gt;
=='''Instalación de Jitsi'''==&lt;br /&gt;
Para sistemas de '''32 bits:'''&lt;br /&gt;
&lt;br /&gt;
https://download.jitsi.org/jitsi/debian/jitsi_2.2-latest_i386.deb&lt;br /&gt;
&lt;br /&gt;
Para sistemas de '''64 bits:'''&lt;br /&gt;
&lt;br /&gt;
https://download.jitsi.org/jitsi/debian/jitsi_2.2-latest_amd64.deb&lt;br /&gt;
&lt;br /&gt;
=='''Instalación Spark'''==&lt;br /&gt;
&lt;br /&gt;
Lo descargamos de la siguiente URL:&lt;br /&gt;
&lt;br /&gt;
'''* Windows:''' http://www.igniterealtime.org/downloads/download-landing.jsp?file=spark/spark_2_7_5.exe&lt;br /&gt;
&lt;br /&gt;
'''* Linux:''' http://www.igniterealtime.org/downloads/download-landing.jsp?file=spark/spark_2_7_5.tar.gz &amp;lt;br /&amp;gt;&lt;br /&gt;
y ejecutamos en el terminal:&lt;br /&gt;
&lt;br /&gt;
 tar -xvf spark_2.6.3.tar.gz&lt;br /&gt;
 sudo mv Spark /opt/&lt;br /&gt;
&lt;br /&gt;
 Para correr el servicio: /bin/bash /opt/Spark&lt;br /&gt;
&lt;br /&gt;
Si lo que queremos es crear un '''“desktop launcher”''':&lt;br /&gt;
&lt;br /&gt;
 sudo nano /usr/share/applications/spark.desktop&lt;br /&gt;
&lt;br /&gt;
Y añadimos lo siguiente:&lt;br /&gt;
&lt;br /&gt;
 '''[Desktop Entry]''' &amp;lt;br /&amp;gt;&lt;br /&gt;
 Name=Spark &amp;lt;br /&amp;gt;&lt;br /&gt;
 Version=2.6.3 &amp;lt;br /&amp;gt;&lt;br /&gt;
 GenericName=Spark &amp;lt;br /&amp;gt;&lt;br /&gt;
 X-GNOME-FullName=Spark &amp;lt;br /&amp;gt;&lt;br /&gt;
 Comment=ignite realtime Spark IM client &amp;lt;br /&amp;gt;&lt;br /&gt;
 Type=Application &amp;lt;br /&amp;gt;&lt;br /&gt;
 Categories=Application;Utility; &amp;lt;br /&amp;gt;&lt;br /&gt;
 Path=/opt/spark &amp;lt;br /&amp;gt;&lt;br /&gt;
 Exec=/bin/bash Spark &amp;lt;br /&amp;gt;&lt;br /&gt;
 Terminal=false &amp;lt;br /&amp;gt;&lt;br /&gt;
 StartupNotify=true &amp;lt;br /&amp;gt;&lt;br /&gt;
 Icon=/opt/spark/logo-spark.png &amp;lt;br /&amp;gt;&lt;br /&gt;
 TargetEnvironment=Unity&lt;br /&gt;
&lt;br /&gt;
Para añadir el logo:&lt;br /&gt;
 cd /tmp&amp;lt;br /&amp;gt;&lt;br /&gt;
 wget http://www.thefanclub.co.za/sites/default/files/images/howto/logo-spark_256x256.png&amp;lt;br /&amp;gt;&lt;br /&gt;
 sudo mv logo-spark_256x256.png /opt/Spark/logo-spark.png&lt;br /&gt;
&lt;br /&gt;
=='''Instalación de LDAP'''==&lt;br /&gt;
&lt;br /&gt;
El proceso de instalación es realmente sencillo. Básicamente consiste en instalar el paquete '''slapd,''' aunque nosotros también instalaremos el paquete que contiene las utilidades de administración de LDAP: '''ldap-utils.'''&lt;br /&gt;
&lt;br /&gt;
 # apt-get install slapd ldap-utils&lt;br /&gt;
&lt;br /&gt;
Durante la instalación, aparece en la consola un mensaje que nos solicita la contraseña de administración para ''LDAP''&lt;br /&gt;
&lt;br /&gt;
El sistema nos pide que volvamos a escribirla.&lt;br /&gt;
&lt;br /&gt;
A continuación, instalaremos la librería '''NSS para LDAP.'''&lt;br /&gt;
&lt;br /&gt;
 # apt-get install libnss-ldap&lt;br /&gt;
&lt;br /&gt;
En el primar paso, nos solicita la dirección URi del servidor LDAP.&lt;br /&gt;
&lt;br /&gt;
A continuación escribiremos el nombre global único (Distinguished Name – DN).&lt;br /&gt;
&lt;br /&gt;
En el siguiente paso, indicaremos la versión del protocolo LDAP que vamos a utilizar. Salvo que dispongamos en nuestra red de clientes muy antiguos, lo normal será elegir el valor más alto.&lt;br /&gt;
&lt;br /&gt;
A continuación, indicaremos si las utilidades que utilicen PAM deberán comportarse del mismo modo que cuando cambiamos contraseñas locales. Esto hará que las contraseñas se guarden en un archivo independiente que sólo podrá ser leído por el superusuario. Yes y pulsamos Intro.&lt;br /&gt;
&lt;br /&gt;
A continuación, el sistema nos pregunta si queremos que sea necesario identificarse para realizar consultas en la base de datos de LDAP. No y pulsamos Intro.&lt;br /&gt;
&lt;br /&gt;
Ya sólo nos queda indicar el nombre de la cuenta LDAP que tendrá privilegios para realizar cambios en las contraseñas.&lt;br /&gt;
&lt;br /&gt;
En el último paso, el asistente nos solicita la contraseña que usará la cuenta anterior. Deberá coincidir con la que escribimos en el apartado ''Instalar OpenLDAP en el servidor.''&lt;br /&gt;
&lt;br /&gt;
=='''Configurar el demonio SLAPD'''==&lt;br /&gt;
&lt;br /&gt;
'''SLAPD''' (Standalone LDAP Daemon) es un programa multiplataforma, que se ejecuta en segundo plano, atendiendo las solicitudes de autenticación LDAP que se reciban en el servidor.&lt;br /&gt;
&lt;br /&gt;
 # sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
Elegimos la opción ''No'' y pulsamos la tecla ''Intro''.&lt;br /&gt;
&lt;br /&gt;
A continuación, deberemos escribir el nombre DNS que utilizamos para crear el DN base ''(Distinguished Name)'' del directorio LDAP.&lt;br /&gt;
&lt;br /&gt;
Después, escribiremos el nombre de la entidad en la que estamos instalando el directorio ''LDAP''.&lt;br /&gt;
&lt;br /&gt;
En el siguiente paso, deberemos escribir la contraseña de'' administración del directorio.''&lt;br /&gt;
&lt;br /&gt;
A continuación, elegiremos el motor de la base de datos que usaremos para el directorio. Se recomienda ''HDB'' porque nos permitirá, en el futuro, cambiar los nombres de los subárboles si fuese necesario.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lo siguiente que nos pregunta el asistente es si queremos que se borre la base de datos anterior del directorio cuando terminemos la configuración de slapd. Usamos la tecla ''&amp;lt;tabulador&amp;gt;'' para elegir ''No'' y pulsamos ''Intro.''&lt;br /&gt;
&lt;br /&gt;
A continuación, como hemos decidido no borrar la base de datos antigua, el asistente nos pregunta si queremos cambiarla de sitio. Elegiremos la opción ''Sí'' y pulsaremos ''Intro.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En algunas redes, con clientes muy antiguos, puede ser necesario mantener ''la versión 2 del protocolo LDAP.'' Por ese motivo, antes de terminar, el asistente nos pregunta queremos permitir el protocolo LDAPv2. Elegimos que ''No.''&lt;br /&gt;
&lt;br /&gt;
Con esto habremos terminado la configuración del servidor LDAP. Ahora está listo para ''autenticar usuarios.''&lt;br /&gt;
&lt;br /&gt;
A continuación vamos a instalar '''phpmyadmin''', para la configuración gráfica del LDAP. Para ello escribimos:&lt;br /&gt;
&lt;br /&gt;
 # apt-get install phpldapadmin&lt;br /&gt;
&lt;br /&gt;
Acceder a phpLDAPadmin es tan sencillo como abrir cualquier navegador web en el servidor y, en la barra de direcciones, escribir la siguiente URL:&lt;br /&gt;
&lt;br /&gt;
http://IP/phpldapadmin/&lt;br /&gt;
&lt;br /&gt;
El esquemático de pruebas es el que se muestra a continuación:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Esquematico_pruebas.png |center]]&lt;br /&gt;
&lt;br /&gt;
=='''Funcionamiento del Spark'''==&lt;br /&gt;
&lt;br /&gt;
 '''Spark''' es un cliente gratuito de mensajería instantánea para Jabber el cual cuenta con una sencilla interface de usuario  &lt;br /&gt;
 orientada a negocios y a corporaciones, estando actualmente disponibles para Windows, Mac y Linux.&lt;br /&gt;
Entre sus características se encuentran ''grupos de chat, integración con Asterisk-IM, transferencias de archivos, corrección automática y conversaciones mediante pestañas.''&lt;br /&gt;
&lt;br /&gt;
Una vez que hayas instalado la aplicación de Spark, deberás configurar el cliente para que se conecte con el ''servidor Openfire'' (Jabber o XMPP).&lt;br /&gt;
&lt;br /&gt;
Para configurar tu cuenta de Chat:&lt;br /&gt;
&lt;br /&gt;
:# Abre la aplicación de Spark&lt;br /&gt;
:# Como tenemos nuestro servidor Openfire conectado a un LDAP, introducir el usuario y contraseña creado en el LDAP y dirección del servidor Openfire.&lt;br /&gt;
&lt;br /&gt;
Y con ello ya estaría creada la cuenta de chat.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Creada_cuenta_chat.png |center]]&lt;br /&gt;
&lt;br /&gt;
Con esta configuración, si agregamos un contacto, podremos chatear con el, ver la presencia de cada contacto, compartir documentos, realizar llamadas a través de nuestro asterisk...&lt;br /&gt;
&lt;br /&gt;
Al realizar llamadas desde la aplicación, primeramente nos llamara a nuestro número y una vez cogido, llamará al contacto que queríamos llamar.&lt;br /&gt;
&lt;br /&gt;
=='''Funcionamiento del Jitsi'''==&lt;br /&gt;
 '''Jitsi (antes SIP Communicator)''' es una aplicación de videoconferencia, VoIP, y mensajería instantánea para Windows, Linux y Mac &lt;br /&gt;
 OS X.&lt;br /&gt;
 Es compatible con varios protocolos populares de mensajería instantánea y de telefonía como por ejemplo Bonjour, . NET Messenger  &lt;br /&gt;
 Service, OSCAR, SIP, XMPP...&lt;br /&gt;
Para crear una cuenta XMPP iremos a '''Archivo &amp;gt; Agregar una nueva cuenta'''&lt;br /&gt;
&lt;br /&gt;
Y seleccionaremos '''XMPP'''&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Seleccionamos_xmpp.png |center]]&lt;br /&gt;
&lt;br /&gt;
Como nuestro servidor Openfire lo tenemos conectado al LDAP ingresaremos el usuario y contraseña que hemos creado dentro del LDAP.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ingresar_usuariocontraseña.png |center]]&lt;br /&gt;
&lt;br /&gt;
Con solamente esta configuración, podemos chatear con los contactos, llamarles, ver la disponibilidad de cada contacto, hacer vídeo conferencias y compartir nuestro escritorio, pero tanto la voz como el vídeo no pasa por el asterisk, por lo que esta configuración no nos vale.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hay una especificación llamada ''CUSAX'' (Combined Use of SIP And XMPP) que jitsi soporta y en la que nos apoyaremos. Esta especificación establece la combinación de una cuenta SIP y XMPP para realizar los diferentes servicios de comunicación. Por lo que el video y el audio irá por SIP, es&lt;br /&gt;
decir por nuestro ''asterisk'' y la mensajería y presencia por ''XMPP.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para configurarlo, primeramente tendremos que deshabilitar el audio y vídeo por XMPP. Esto se encuentra en opciones de la cuenta ''XMPP &amp;gt; &amp;gt;Telefonía''&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Deshabilitar_audioyvideo.png |center]]&lt;br /&gt;
&lt;br /&gt;
Sin realizar ninguna configuración vemos que solo podremos establecer un chat con los diferentes contactos. Para poder realizar llamadas, vídeo llamadas y compartir el escritorio es necesario crearnos una cuenta SIP.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Crear_cuenta_sip.png‎ |center]]&lt;br /&gt;
&lt;br /&gt;
Al tener ahora una combinación de cuenta SIP y XMPP podremos realizar las diferentes acciones sobre un contacto. Sin embargo ahora vemos que la mensajería la trata de enviar también por SIP y no funciona, queremos que los mensajes se envíen por XMPP. Para solucionarlo hay que añadir la siguiente propiedad:&lt;br /&gt;
&lt;br /&gt;
 net.java.sip.communicator.impl.protocol.sip.MESSAGING_DISABLED=true&lt;br /&gt;
&lt;br /&gt;
Vamos a ''Opciones &amp;gt; Avanzado &amp;gt; Editor de propiedades''&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Mensajes_xmpp.png |center]]&lt;br /&gt;
&lt;br /&gt;
Otra limitación que hemos visto al configurar CUSAX es que a la hora de compartir el escritorio no funciona el que otro tome el control sobre este.&lt;br /&gt;
&lt;br /&gt;
Para tener los contactos que hay en el LDAP y así evitar el crearlos uno a uno realizaremos lo siguiente.&lt;br /&gt;
&lt;br /&gt;
Vamos a ''Opciones &amp;gt; Avanzado &amp;gt; Fuentes de contacto''&amp;lt;br /&amp;gt;&lt;br /&gt;
y seleccionamos LDAP, añadimos uno nuevo y rellenamos los datos.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Fuentes de contacto.png |center]]&lt;br /&gt;
&lt;br /&gt;
Una vez que hemos configurado que el jitsi se conecte al LDAP, buscaremos el contacto bien por el nombre o por el número.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Buscar_contacto.png |center]]&lt;br /&gt;
&lt;br /&gt;
=='''Funcionamiento del Microsoft Outlook'''==&lt;br /&gt;
&lt;br /&gt;
El servidor de correos microsoft outlook permite la integración con un servidor XMPP. Se realiza automáticamente por lo que no hay que hacer ningún tipo de configuración, solamente poner en el LDAP, en la cuenta deseada, la dirección de correo del contacto.&lt;br /&gt;
&lt;br /&gt;
Desde la propia bandeja de correo veo el estado del contacto, iniciar un chat o llamarle.&lt;br /&gt;
&lt;br /&gt;
=='''Referencias'''==&lt;br /&gt;
&lt;br /&gt;
http://www.igniterealtime.org/projects/openfire/ &amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.igniterealtime.org/builds/openfire/docs/latest/documentation/index.html&amp;lt;br /&amp;gt;&lt;br /&gt;
https://www.voztovoice.org/?q=node/120&amp;lt;br /&amp;gt;&lt;br /&gt;
http://www.razametal.org/asterisk/library/how-to/openfire+asterisk.pdf&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Howto%27s&amp;diff=6378</id>
		<title>Howto's</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Howto%27s&amp;diff=6378"/>
		<updated>2017-10-31T10:53:53Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* Simple_bridge y native_rtp */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!! VIVAit Call&lt;br /&gt;
VIVAit Suite&lt;br /&gt;
&lt;br /&gt;
VIVAit Fax&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Como parar asterisk ==&lt;br /&gt;
En situaciones límite en el que es necesario parar el asterisk y volver a arrancarlo hay que realizar los siguientes pasos:&lt;br /&gt;
&lt;br /&gt;
 Entrar en la consola de asterisk e introducir el comando core stop now&lt;br /&gt;
&lt;br /&gt;
 Si esto no funciona, tendremos que matar el proceso a mano. Esto es, primero el safe asterisk y luego el asterisk mediante el comando &lt;br /&gt;
 kill -9 nºPID&lt;br /&gt;
 &lt;br /&gt;
 Tras estos pasos, volveremos a arrancar el servicio asterisk mediante /etc/init.d/asterisk start&lt;br /&gt;
&lt;br /&gt;
== Como configurar la megafonía ==&lt;br /&gt;
&lt;br /&gt;
El servicio de megafonía se basa en el protocolo multicast.&lt;br /&gt;
&lt;br /&gt;
Para configurar la megafonía tenemos que activar en los teléfonos que para que estén &amp;quot;escuchando&amp;quot; en una dirección multicast y tener un emisor en esa dirección multicast.&lt;br /&gt;
&lt;br /&gt;
Los teléfonos suelen tener en su configuración un apartado para configurar el multicast. Por ejemplo en los yealink está en la pestaña directory sección multicast IP.&lt;br /&gt;
&lt;br /&gt;
En los teléfonos se puede configurar manualmente o incluirlo en las plantillas de aprovisionamiento.&lt;br /&gt;
&lt;br /&gt;
El asterisk tiene un canal para hacer multicast. Este canal es MulticastRTP.&lt;br /&gt;
&lt;br /&gt;
Para esto podemos crear un VDN que contenga la siguiente línea. (en el ejemplo la dirección multicast es 239.0.126.1 y el puerto es el 10001).&lt;br /&gt;
&lt;br /&gt;
 [Cen_VDN_90000]&lt;br /&gt;
 exten =&amp;gt; _X.,1,NoOp(MDVDN_90000*****EXTEN=${EXTEN}**CID=${CALLERID(NUM)}**UCID=${UCID}*)&lt;br /&gt;
  same =&amp;gt;     n,Answer&lt;br /&gt;
  same =&amp;gt;     n,Dial(MulticastRTP/basic/239.0.126.1:10001)&lt;br /&gt;
 include =&amp;gt; Cen_finLlamada&lt;br /&gt;
&lt;br /&gt;
== Como configurar el candado ==&lt;br /&gt;
El candado permite prohibir temporalmente la posibilidad de realizar llamadas hacia fuera. Sí se pueden seguir haciendo llamadas a extensiones fijas de la plataforma, es decir, llamadas sin coste.&lt;br /&gt;
&lt;br /&gt;
Para configurar dicha funcionalidad basta con crear extensiones con la categoría mas restrictiva posible y habilitar la movilidad, con lo que la extensión solo tendrá &amp;quot;permisos&amp;quot; para realizar llamadas internas.&lt;br /&gt;
&lt;br /&gt;
Para permitir llamadas externas solo hay que &amp;quot;mover&amp;quot; a un usuario con categoría suficiente a la extensión deseada.&lt;br /&gt;
== Como crear un grupo de captura y que se vea en cada teléfono el número que llama ==&lt;br /&gt;
&lt;br /&gt;
'''ATENCIÓN: SE CREAN CONFIGURACIONES NO REFLEJADAS EN PORTAL DE ADMINISTRACIÓN'''&lt;br /&gt;
&lt;br /&gt;
Para la simulación de grupos de captura y conseguir que todos los terminales vean el ANI del llamante:&lt;br /&gt;
&lt;br /&gt;
- Hacen falta teléfonos con dos líneas&lt;br /&gt;
&lt;br /&gt;
- Cada teléfono del grupo tiene en la línea 1 su extensión habitual (por ejemplo 40000)&lt;br /&gt;
&lt;br /&gt;
- Además, en el fichero &amp;quot;sip_Estatico.conf&amp;quot;, creamos una segunda extensión para cada teléfono, que le ocupará la segunda línea (por ejemplo 42000)&lt;br /&gt;
&lt;br /&gt;
- En esta segunda linea ponemos que cuando se llame tenga otro tono de llamada (un beep o nada...) que se asemeje en funcionamiento al de un mensaje de llamada en otra extension de mi grupo de captura&lt;br /&gt;
&lt;br /&gt;
- Se ha creado una variable global por cada teléfono en el fichero de variables &amp;quot;ext_MDtel_Particular.conf&amp;quot; de nombre EXTxxxxx (por ejemplo EXT40000); esa variable contiene las otras extensiones virtuales del grupo&lt;br /&gt;
por ejemplo EXT40000=&amp;gt;SIP/42001&amp;amp;SIP/42005&lt;br /&gt;
&lt;br /&gt;
- Hemos creado en el dialplan programación para que cuando exista esa variable global se añada a la marcación el contenido&lt;br /&gt;
&lt;br /&gt;
== Como crear supletorios ==&lt;br /&gt;
&lt;br /&gt;
'''ATENCIÓN: SE CREAN CONFIGURACIONES NO REFLEJADAS EN PORTAL DE ADMINISTRACIÓN'''&lt;br /&gt;
&lt;br /&gt;
Igual que el caso anterior pero en la variable ponemos números reales. Debido a un bug en el enrutador, que no devuelve la variable R_PARA, en el fichero ext_MARCAR_Extension.conf hay que sustituir la siguiente linea:&lt;br /&gt;
 &lt;br /&gt;
 ;same =&amp;gt;                   n,ExecIf($[&amp;quot;${EXT${R_PARA}}&amp;quot;=&amp;quot;&amp;quot;]?NoOp:Set(ENR_CADMARCAR=${ENR_CADMARCAR}&amp;amp;${EXT${R_PARA}}))&lt;br /&gt;
Por esta otra:&lt;br /&gt;
  same =&amp;gt;                   n,ExecIf($[&amp;quot;${EXT${R_DEST_${ENR_RUTA_CAD}}}&amp;quot;=&amp;quot;&amp;quot;]?NoOp:Set(ENR_CADMARCAR=${ENR_CADMARCAR}&amp;amp;${EXT${R_DEST_${ENR_RUTA_CAD}}}))&lt;br /&gt;
ATENCIÓN !!! en las llamadas salientes cada uno presenta su número&lt;br /&gt;
&lt;br /&gt;
Para emplear números externos en los supletorios hay que poner, al crear la variable que hemos explicado en el apartado anterior en el ext_MDtel_Particular.conf: &lt;br /&gt;
&lt;br /&gt;
 EXT335=&amp;gt;SIP/0999999999@Trunk_Movil ;En este caso suena en la ext 335 y en el móvil 999999999&lt;br /&gt;
&lt;br /&gt;
== Generación de llamada automática ==&lt;br /&gt;
&lt;br /&gt;
Para activar la funcionalidad es necesario lo siguiente: &lt;br /&gt;
&lt;br /&gt;
* Definir una variable ID_LISTA_LLAMAME con el ID de la lista que se va a usar para generar la llamada. Cuando se cree la lista hay que asegurarse que el campo &amp;quot;Nº segundos límite&amp;quot; tiene un valor lo suficientemente amplio para evitar que la llamada caduque antes de ejecutarse.&lt;br /&gt;
&lt;br /&gt;
* Establecer un timeout para la cola (en el Gosub Cen_Sub_GrupoACD se indica justo después de ${COLA})&lt;br /&gt;
&lt;br /&gt;
* Llamar a la función de MySQL ACD_FUNC_LLAMAME_CREAR a través de MDintz&lt;br /&gt;
&lt;br /&gt;
* En la función se usan los siguientes elementos variables:&lt;br /&gt;
&lt;br /&gt;
        ${ID_LISTA_LLAMAME}: Definida antes clienteTOCola: &lt;br /&gt;
        Nombre del cliente. Al no tener ningún nombre, se usa un denominador genérico&lt;br /&gt;
        ${CALLERID}: Número llamante, donde se dirigirá la llamada.&lt;br /&gt;
&lt;br /&gt;
Ejemplo:&lt;br /&gt;
&lt;br /&gt;
 [Cen_VDN_99001]&lt;br /&gt;
 ;----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 ;----------------------- VDN 99001 ------------------------------------------------------------&lt;br /&gt;
 ;----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 exten =&amp;gt; _X.,1,NoOp(MDENTGW_99001*****EXTEN=${EXTEN}**CID=${CALLERID(NUM)}**UCID=${UCID}*)&lt;br /&gt;
  same =&amp;gt;     n,Set(__COLA=89001)&lt;br /&gt;
  same =&amp;gt;     n,Set(ctiDiriTrato=0)&lt;br /&gt;
  same =&amp;gt;     n,Set(ctiDiriInterface=)&lt;br /&gt;
  same =&amp;gt;     n,Set(ID_LISTA_LLAMAME=2)&lt;br /&gt;
  same =&amp;gt;     n(cola),Gosub(Cen_Sub_GrupoACD,${EXTEN},1(${COLA},10,,Si,))&lt;br /&gt;
  same =&amp;gt;     n,GotoIf($[&amp;quot;${QUEUESTATUS}&amp;quot;!=&amp;quot;TIMEOUT&amp;quot;]?colgar)&lt;br /&gt;
  same =&amp;gt;     n,MDintz(nimitz|bd|sqlDato|select ACD_FUNC_LLAMAME_CREAR(CURRENT_TIMESTAMP\,${ID_LISTA_LLAMAME}\,&amp;quot;&amp;quot;\,&amp;quot;clienteTOCola&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,1\,&amp;quot;&amp;quot;\,&amp;quot;${CALLERID(NUM)}&amp;quot;\,1\,3\,1\,&amp;quot;&amp;quot;\,0\,0\,0\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;))&lt;br /&gt;
  same =&amp;gt;     n,GotoIf($[&amp;quot;${MDintzRes}&amp;quot;=&amp;quot;OK&amp;quot;]?colgar)&lt;br /&gt;
  same =&amp;gt;     n,NoOp(ACD_FUNC_LLAMAME_CREAR ${MDintzRes})&lt;br /&gt;
  same =&amp;gt;     n(colgar),Hangup&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cancelación de eco en la plataforma ==&lt;br /&gt;
&lt;br /&gt;
Comprobar que el chan_dahdi.conf este configurado los parametros: &lt;br /&gt;
 echocancel=yes&lt;br /&gt;
 echocancelwhenbridged=yes&lt;br /&gt;
 Jugar con los valores txgain y rxgain &lt;br /&gt;
&lt;br /&gt;
Si esto no es suficiente el siguiente paso sería emplear una canceladora de echo por hardware.&lt;br /&gt;
&lt;br /&gt;
== Como &amp;quot;dar paso&amp;quot; a través de un enlace exterior si hay una llamada para una extensión creada en el sistema pero no registrada ==&lt;br /&gt;
&lt;br /&gt;
Este procedimiento es de utilidad en procesos de migración, en los que recibimos las llamadas de la RTC, nos las quedamos si la extensión ya está registrada en VIVAit y la mandamos hacia la plataforma a migrar si aún sigue migrada ahí&lt;br /&gt;
&lt;br /&gt;
El procedimiento es:&lt;br /&gt;
* Activar desvío por no contesta en la extensión (portal de administración - VIVAit Call - Dispositivos - Extensiones - campo &amp;quot;Desvio no contesta&amp;quot;, indicando como destino un prefijo (por ejemplo &amp;quot;99&amp;quot;) seguido de la extensión destino&lt;br /&gt;
&lt;br /&gt;
* Creamos una preruta en vivait-call - rutas -prerutas con origen &amp;quot;99&amp;quot;, le quitamos el prefijo en campo &amp;quot;Destino saliente 1&amp;quot; (valor -2) e indicamos en campo &amp;quot;Tipo destino sal. 1&amp;quot; como &amp;quot;Ruta externa&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Debera existir una ruta externa para esa numeración&lt;br /&gt;
&lt;br /&gt;
== Comprobación de versiones de elementos de la plataforma ==&lt;br /&gt;
&lt;br /&gt;
'''Aplicaciones'''&lt;br /&gt;
:* Botón derecho del ratón, Acerca De&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Portales'''&lt;br /&gt;
:* En el Vivait-Call, en la pantalla de inicio de sesión pone el número de versión del portal.&lt;br /&gt;
:* Tanto en el Monitor como en el Tracker no se puede saber.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Demonios'''&lt;br /&gt;
:* Mediante el comando nc localhost &amp;lt;Puerto demonio&amp;gt;. Ejemplo:&lt;br /&gt;
::nc localhost 1120&lt;br /&gt;
::motorSal sis ver='03.02.00' inic='20150427 123457' alarmas=0 ultAlar='00000000000000'&lt;br /&gt;
::motorSal gmp msj=253/256 buf=256/256 tarea=99/102&lt;br /&gt;
::motorSal tmp uptime=12624 (0d 3h 30m 24s)&lt;br /&gt;
::motorSal mtr mys=1 ocup=0% planif=13(0) intento=11(0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::Ejemplos puertos demonios:&lt;br /&gt;
:::*1111: vivait-cti&lt;br /&gt;
:::*1112: myAcdSuperv&lt;br /&gt;
:::*1113: recordNodo&lt;br /&gt;
:::*1114: recordCentral&lt;br /&gt;
:::*1115: intz-nimitz&lt;br /&gt;
:::*1120: motorSal&lt;br /&gt;
:::*1123: phoneprov-tftp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Base de datos'''&lt;br /&gt;
:* No se puede saber la versión a no ser que se comparen esquemáticos con los subidos en el redmine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:administrador]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:VIVAit Suite]]&lt;br /&gt;
[[Category:VIVAit Fax]]&lt;br /&gt;
&lt;br /&gt;
== Añadir Auto-Answer a la cabecera SIP ==&lt;br /&gt;
&lt;br /&gt;
Si queremos que un teléfono tenga autoanswer:&lt;br /&gt;
* En el peer poner: headeraa=Call-Info: answer-after=0, esto tiene que ir en la plantilla de la extensión o como campo en la extensión. Dependiendo del terminal que utilicemos el valor de este campo variará:&lt;br /&gt;
&lt;br /&gt;
    Aastra: Alert-Info: info=alert-autoanswer&lt;br /&gt;
    Grandstream: Call-Info: answer-after=0&lt;br /&gt;
    Linksys: Call-Info:\;Answer-After=0&lt;br /&gt;
    Polycom: Alert-Info: Ring Answer&lt;br /&gt;
    Snom: Call-Info: answer-after=0&lt;br /&gt;
    Snom (nuevo firmware): Call-Info: &amp;lt;sip:IP&amp;gt;\;answer-after=0&lt;br /&gt;
    Yealink: Call-Info: answer-after=0&lt;br /&gt;
&lt;br /&gt;
* Luego en el diaplan añadir lo siguiente: exten =&amp;gt; _[*#%0-9a-zA-Z].,n,set(__AutoAnswer=AA) (Esto tendremos que ver como ponerlo de manera automática). De manera provisional si queremos que sea para llamadas salientes pondremos esto en el ext_n_marcador.conf. Si queremos que sea llamadas entrantes lo pondremos en ext_n_MARCAR.conf&lt;br /&gt;
&lt;br /&gt;
== Configuración de los portales web en HTTPS ==&lt;br /&gt;
&lt;br /&gt;
Desde /usr/lib/jvm/default-java/bin/ ejecutamos:&lt;br /&gt;
&lt;br /&gt;
keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/share/tomcat7/.keystore&lt;br /&gt;
&lt;br /&gt;
Escriba la contraseña del almacén de claves: (t0mc4t)&lt;br /&gt;
 Volver a escribir la contraseña nueva: (t0mc4t)&lt;br /&gt;
 *Personalizar para el cliente&lt;br /&gt;
 ¿Cuáles son su nombre y su apellido?&lt;br /&gt;
 [Unknown]: VIVAit Suite&lt;br /&gt;
 ¿Cuál es el nombre de su unidad de organización?&lt;br /&gt;
 [Unknown]: Desarrollo&lt;br /&gt;
 ¿Cuál es el nombre de su organización?&lt;br /&gt;
 [Unknown]: MDtel&lt;br /&gt;
 ¿Cuál es el nombre de su ciudad o localidad?&lt;br /&gt;
 [Unknown]: Madrid&lt;br /&gt;
 ¿Cuál es el nombre de su estado o provincia?&lt;br /&gt;
 [Unknown]: Madrid&lt;br /&gt;
 ¿Cuál es el código de país de dos letras de la unidad?&lt;br /&gt;
 [Unknown]: es&lt;br /&gt;
 ¿Es correcto CN=VIVAit Suite, OU=Desarrollo, O=MDtel, L=es, ST=Madrid,&lt;br /&gt;
 C=Unknown?&lt;br /&gt;
 [no]: si&lt;br /&gt;
 Escriba la contraseña clave para &amp;lt;tomcat&amp;gt;&lt;br /&gt;
 (INTRO si es la misma contraseña que la del almacén de claves)&lt;br /&gt;
&lt;br /&gt;
nano /var/lib/tomcat7/conf/server.xml&lt;br /&gt;
&lt;br /&gt;
Descomentar la línea:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; protocol=&amp;quot;HTTP/1.1&amp;quot; SSLEnabled=&amp;quot;true&amp;quot; &lt;br /&gt;
&lt;br /&gt;
 maxThreads=&amp;quot;150&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Añadir después de sslProtocol=&amp;quot;TLS&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 keystorePass=&amp;quot;t0mc4t&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Crear un motivo desconexión para el Supervisor en '''''VIVA'''''it Suite==&lt;br /&gt;
&lt;br /&gt;
Para crear motivos de desconexión adicionales a los que ya ofrece la aplicación tendremos que añadir una nueva entrada en la BD. El comando que emplearíamos seria el siguiente:&lt;br /&gt;
&lt;br /&gt;
INSERT INTO `nimitz`.`COM_ENUMERADOS` (`ID`, `C_NOMBRE`, `C_TEXTO`, `N_POSICION`, `C_OBSERV`) VALUES(1000700, 'TSesAgMotDesc', 'Nombre Motivo de desconexión', 60, ' ');&lt;br /&gt;
&lt;br /&gt;
El ID debe ser mayor o igual a 1000700 y menor a 1000800. El N_POSICION debe ser mayor o igual a 60 y menor que 100.&lt;br /&gt;
&lt;br /&gt;
== Envío de variables CTI al ACD ante un GW con asterisk 13==&lt;br /&gt;
Dado que para un GW con asterisk 13 un nodo ACD es considerado un elemento externo, por defecto, no se envían variables CTI (UCID, ...). En una fututa versión del nodo ACD, ya no se considerará un elemento externo por lo que si se enviarán dichas variables. Para lograrlo en la versión 3.0 de la plataforma Vivait hay que modificar el fichero ext_MARCAR_Externo_Particular.conf del GW. Deberemos poner la siguiente linea.&lt;br /&gt;
&lt;br /&gt;
 same =&amp;gt; n,Macro(escribirDatosCti)&lt;br /&gt;
&lt;br /&gt;
== Script para cambio automático de claves en salas de conferencia estáticas ==&lt;br /&gt;
&lt;br /&gt;
Para cambiar la clave de las salas de conferencias crear un script llamado cambioClaveConfe.sh con el siguiente contenido:&lt;br /&gt;
	&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 CLAVE=$(shuf -i 1111-9999 -n 1)&lt;br /&gt;
 &lt;br /&gt;
 echo $CLAVE&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;update CEN_SALAS_CONFERENCIAS set C_PIN='$CLAVE' WHERE C_NOMBRE='$1'&amp;quot; | mysql -u nimitz -pivivanimitz nimitz&lt;br /&gt;
 &lt;br /&gt;
 FROM=sat@mdtel.es&lt;br /&gt;
 FECHA=`date +&amp;quot;%Y%m%d%H%M%S&amp;quot;`&lt;br /&gt;
 CLIENTE=&amp;lt;PONER EL CLIENTE&amp;gt;&lt;br /&gt;
 TO=&amp;lt;DESTINATARIOS&amp;gt;&lt;br /&gt;
 ASUNTO=&amp;quot;Nueva clave en sala $1&amp;quot;&lt;br /&gt;
 CUERPO=&amp;quot;La nueva clave para la sala $1 es: $CLAVE&amp;quot;&lt;br /&gt;
 /usr/sbin/sendmail -oi -t -v -f $FROM &amp;lt;&amp;lt;EOF&lt;br /&gt;
 From: $FROM&lt;br /&gt;
 To: $TO&lt;br /&gt;
 Bcc: $BCC&lt;br /&gt;
 Subject: $ASUNTO&lt;br /&gt;
 &lt;br /&gt;
 $CUERPO&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
El script cambiará la clave de la sala pasada por parámetro por una aleatoria de 4 dígitos y la enviará por correo a los &amp;lt;DESTINATARIOS&amp;gt; (direcciones de correo electrónico separadas por coma).&lt;br /&gt;
&lt;br /&gt;
Hay que crear una tarea en /etc/crontab añadiendo una linea como la siguiente:&lt;br /&gt;
 30 6	* * 7	root	cambioClaveConfe.sh 6173&lt;br /&gt;
&lt;br /&gt;
Esto ejecutará el script todos los domingos a las 6:30 horas cambiando la clave de la sala 6173. Añadir tantas linéas como salas.&lt;br /&gt;
&lt;br /&gt;
==ZABBIX ==&lt;br /&gt;
&lt;br /&gt;
=== Como crear un TRIGGER en Zabbix ===&lt;br /&gt;
&lt;br /&gt;
'''1.''' Hay '''dos posibilidades''' dependiendo si el trigger es para un solo host o es para varios, los cuales tienen en común un template:&lt;br /&gt;
&lt;br /&gt;
:# Si es para ''un host'': Ir a '''Configuración/Hosts'''&lt;br /&gt;
:# Si es para ''un template'': Ir a '''Configuración/Templates'''&lt;br /&gt;
&lt;br /&gt;
'''2.''' En la fila correspondiente al host/template al que queramos añadirle el trigger, pulsar sobre la '''columna triggers.'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''3.''' En la ventana de triggers, pulsar sobre el botón '''Create trigger''', situado en la esquina superior derecha.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''4.''' Aparecerá la ventana de creación de triggers, que tiene los siguientes campos:&lt;br /&gt;
:1. '''Name:''' Nombre del trigger, que deberá ser lo ''suficientemente descriptivo''. Aparecerá cuando se&lt;br /&gt;
active, en la ventana principal de Zabbix así como en los correos de aviso.&lt;br /&gt;
:2. '''Expression:''' Define la fórmula cuyo resultado activará el trigger. Hay que pulsar el botón '''Add'''. Se mostrará una &lt;br /&gt;
nueva ventana donde habrá que elegir el item (medida) sobre el que se basará el trigger (evidentemente la medida deberá &lt;br /&gt;
existir previamente) y la función necesaria para el cálculo. Para una descripción de las disponibles dirigirse a &lt;br /&gt;
https://www.zabbix.com/documentation/2.2/manual/appendix/triggers/functions.&amp;lt;br/&amp;gt;&lt;br /&gt;
Tras rellenar los campos anteriores y dar a la función los valores que necesite pulsar el botón '''Insert.'''&lt;br /&gt;
:3. '''Expression constructor:''' Permite crear expresiones complejas, uniendo varias.&lt;br /&gt;
:4. '''Description:''' Una explicación del trigger&lt;br /&gt;
:5. '''Severity:''' Criticidad el trigger&lt;br /&gt;
:6. Para una descripción del resto de campos visitar la página: https://www.zabbix.com/documentation/2.2/manual/config/triggers/trigger&lt;br /&gt;
'''5.''' Tras rellenar los campos, pulsar el botón '''Save'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''6.''' Si el trigger se ha añadido en un template, aparecerá en todos los hosts que tienen el template configurado.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''7.''' '''El trigger por si solo no envía ningún aviso''', solo se activa si se cumple la expresión definida.&lt;br /&gt;
Para enviar un aviso (normalmente un correo electrónico) cuando se active el trigger, será necesario definir una acción (Configuración/Actions).&lt;br /&gt;
&lt;br /&gt;
 '''NOTA.-''' Para consultar cualquier cuestión relativa a Zabbix, se encuentra a su disposición el manual: &amp;lt;br/&amp;gt;&lt;br /&gt;
 https://www.zabbix.com/documentation/2.2/manual&lt;br /&gt;
&lt;br /&gt;
=== Monitorización en Zabbix de un trunk caído ===&lt;br /&gt;
Para monitorizar un o varios trunk por separado y saber el estado de cada uno es necesario lo siguiente: &lt;br /&gt;
&lt;br /&gt;
*Añadir el UserParameter adjunto que contiene el siguiente texto:&lt;br /&gt;
&lt;br /&gt;
 UserParameter=asterisk.trunkEstado[*],sudo /usr/sbin/asterisk -rx 'sip show peers' | grep  --text -i '$1' |  grep OK &amp;gt;/dev/null; if [ $? -eq 0 ]; then echo 1; else echo 0; fi&lt;br /&gt;
&lt;br /&gt;
*Añadir en el portal de zabbix un item por cada trunk. En el campo Key se pondrá &amp;quot;asterisk.trunkEstado[nombre_trunk]&amp;quot;, donde nombre_trunk es el nombre del trunk tal y como se ve en Asterisk.&lt;br /&gt;
[[File:zabbix_item_trunkEstado.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Crear un trigger que avise cuando el último valor sea 0. Por ejemplo:&lt;br /&gt;
 {corp-bdtr:asterisk.trunkEstado[PrePro-ACD].last()}=0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:zabbix_trigger_trunkEstado.png]]&lt;br /&gt;
&lt;br /&gt;
== Agendas en terminales Yealink ==&lt;br /&gt;
En la agenda se mostrará como nombre lo que contenga el campo CEN_AGENDAS.C_NOMBRE_MOSTRAR y como teléfono el indicado en CEN_AGENDAS_TELEFONOS.C_TELEFONO&lt;br /&gt;
Para hacer funcionar la agenda:&lt;br /&gt;
&lt;br /&gt;
*En el archivo de aprovisionamiento correspondiente (Yealink-XXXX-comun.cfg) establecer los siguientes parámetros:&lt;br /&gt;
&lt;br /&gt;
    remote_phonebook.data.1.url = http://&amp;lt;direc IP&amp;gt;/vivait-agenda/yealink/contactData1.xml &lt;br /&gt;
    remote_phonebook.data.1.name = NOMBRE DE LA AGENDA EN EL TELEFONO&lt;br /&gt;
&lt;br /&gt;
*En el archivo /etc/apache2/apache2.conf añadir tras el último Directory:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Directory /var/www/html/vivait-agenda/&amp;gt;&lt;br /&gt;
             AddType application/x-httpd-php .xml&lt;br /&gt;
             Options Indexes FollowSymLinks MultiViews&lt;br /&gt;
             AllowOverride None&lt;br /&gt;
             Order allow,deny&lt;br /&gt;
             allow from all&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Ejecutar el comando:&lt;br /&gt;
&lt;br /&gt;
    /etc/init.d/apache2 reload&lt;br /&gt;
&lt;br /&gt;
== Calendarios ==&lt;br /&gt;
&lt;br /&gt;
=== Enrutamiento inteligente ===&lt;br /&gt;
&lt;br /&gt;
Ante una llamada a un destino, si hay cita de ocupado en el calendario se desvia al número indicado en el campo &amp;quot;location&amp;quot; del calendario o a su buzon de voz si hay valor en dicho campo&lt;br /&gt;
&lt;br /&gt;
 same =&amp;gt; n,Set(CalendarBusy=${CALENDAR_BUSY(GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,Set(id=${CALENDAR_QUERY(GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,NoOP(hay ${CALENDAR_QUERY_RESULT(${id},getnum)} eventos)&lt;br /&gt;
 same =&amp;gt; n,Verbose(3,The state of GoogleCalendar is $&lt;br /&gt;
 {DEVICE_STATE(Calendar:GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,Set(CalendarLocation=${CALENDAR_QUERY_RESULT(GoogleCalendar,location)})&lt;br /&gt;
 same =&amp;gt; n,GotoIf($[&amp;quot;${CalendarBusy}&amp;quot;==&amp;quot;1&amp;quot;]?:conCategoria)&lt;br /&gt;
 same =&amp;gt; n,GotoIf($[&amp;quot;${CalendarLocation}&amp;quot;==&amp;quot;&amp;quot;]?buzon)&lt;br /&gt;
 same =&amp;gt; n,Goto(Cen_iniLlam,${CalendarLocation},1)&lt;br /&gt;
 same =&amp;gt; n(buzon),Playback(Particular/buzon)&lt;br /&gt;
 same =&amp;gt; n,Hangup&lt;br /&gt;
 same=&amp;gt; n(conCategoria),Goto(Cen_iniLlam,${EXTEN},1)&lt;br /&gt;
&lt;br /&gt;
=== Conexión de cliente Outlook a calendarios VIVAit mediante Caldav===&lt;br /&gt;
Por defecto, el cliente outlook no soporta Caldav; si queremos disponer de calendarios de VIVAit en Outlook tendríamos dos opciones:&lt;br /&gt;
# Tener los calendarios en el servidor Exchange&lt;br /&gt;
# Instalar un plugin en el cliente outlook que permita conectar vía Caldav los calendarios que estén ubicados en el servidor de calendarios de VIVAit&lt;br /&gt;
&lt;br /&gt;
Este howto se centra en esta segunda posibilidad&lt;br /&gt;
&lt;br /&gt;
Procedimiento: &lt;br /&gt;
&lt;br /&gt;
1.- Instalar Calldavsincronizer (valdrían otros plugin de Caldav para Outlook)&lt;br /&gt;
&lt;br /&gt;
[https://sourceforge.net/projects/outlookcaldavsynchronizer/ https://sourceforge.net/projects/outlookcaldavsynchronizer/]&lt;br /&gt;
&lt;br /&gt;
2.- Entrar en Synchronization Profiles en la nueva pestaña Calldav Syncronizer de outlook       [[File:Syncronizer.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.- Añadir nuevo perfil (tecla +)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Nuevo.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A tener en cuenta:&lt;br /&gt;
&lt;br /&gt;
*Crear un nuevo “Outlook folder”, entendemos que es adecuado (quizás necesario) para que las entradas de calendario de VIVAit queden diferenciadas.&lt;br /&gt;
*Lo mejor es haber creado antes el calendario en el servidor para que al darlo de alta en oulook comprobemos que se conecta.&lt;br /&gt;
*Dando al botón “Test or discover settings” se nos muestran todos los calendarios del servidor y elegimos el que queramos; en “elementos de la carpeta” diremos “elementos de calendario”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Calendario.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
== Uso de reloj hardware en nodos de procesamiento ==&lt;br /&gt;
&lt;br /&gt;
=== En nodo de procesamiento ACD ===&lt;br /&gt;
En un nodo de procesamiento ACD es obligatorio instalar dahdi y una tarjeta de primario para emplear reloj hardware, ya que el reloj software que va en el asterisk 1.4 es defectuoso.&lt;br /&gt;
Para configurarlo basta con instalar la tarjeta en el servidor, instalar dahdi y posteriormente ejecutar el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
 dahdi_cfg&lt;br /&gt;
&lt;br /&gt;
Este comando generaŕa el fichero /etc/dahdi/system.conf&lt;br /&gt;
&lt;br /&gt;
Para comprobar que el comando se ha ejecutado satisfactoriamente lo abriremos y tendrá que tener un formato semejante al siguiente ejemplo:&lt;br /&gt;
&lt;br /&gt;
 # Autogenerated by /usr/sbin/dahdi_genconf on Tue Oct 22 17:42:59 2013&lt;br /&gt;
 # If you edit this file and execute /usr/sbin/dahdi_genconf again,&lt;br /&gt;
 # your manual changes will be LOST.&lt;br /&gt;
 # Dahdi Configuration File&lt;br /&gt;
 #&lt;br /&gt;
 # This file is parsed by the Dahdi Configurator, dahdi_cfg&lt;br /&gt;
 #&lt;br /&gt;
 # Span 1: WCT1/0 &amp;quot;Digium Wildcard TE110P T1/E1 Card 0&amp;quot; HDB3/CCS/CRC4&lt;br /&gt;
 span=1,1,0,ccs,hdb3,crc4&lt;br /&gt;
 # termtype: te&lt;br /&gt;
 bchan=1-15,17-31&lt;br /&gt;
 dchan=16&lt;br /&gt;
 echocanceller=oslec,1-15,17-31&lt;br /&gt;
 # Global data&lt;br /&gt;
 loadzone        = es&lt;br /&gt;
 defaultzone     = es&lt;br /&gt;
&lt;br /&gt;
=== En nodo de procesamiento de corporativa ===&lt;br /&gt;
En un nodo de procesamiento de corporativa no obligatorio instalar dahdi y una tarjeta de primario para emplear reloj hardware, ya que el no se han detectado errores en el reloj por software. Sin embargo si instalamos dahdi y una tarjeta de primario para emplear reloj hardware, el sistema funcionará mejor.&lt;br /&gt;
Para configurarlo basta con instalar la tarjeta en el servidor, instalar dahdi y posteriormente ejecutar el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
 dahdi_cfg&lt;br /&gt;
&lt;br /&gt;
Este comando generaŕa el fichero /etc/dahdi/system.conf&lt;br /&gt;
&lt;br /&gt;
Para comprobar que el comando se ha ejecutado satisfactoriamente lo abriremos y tendrá que tener un formato semejante al siguiente ejemplo:&lt;br /&gt;
&lt;br /&gt;
 # Autogenerated by /usr/sbin/dahdi_genconf on Tue Oct 22 17:42:59 2013&lt;br /&gt;
 # If you edit this file and execute /usr/sbin/dahdi_genconf again,&lt;br /&gt;
 # your manual changes will be LOST.&lt;br /&gt;
 # Dahdi Configuration File&lt;br /&gt;
 #&lt;br /&gt;
 # This file is parsed by the Dahdi Configurator, dahdi_cfg&lt;br /&gt;
 #&lt;br /&gt;
 # Span 1: WCT1/0 &amp;quot;Digium Wildcard TE110P T1/E1 Card 0&amp;quot; HDB3/CCS/CRC4&lt;br /&gt;
 span=1,1,0,ccs,hdb3,crc4&lt;br /&gt;
 # termtype: te&lt;br /&gt;
 bchan=1-15,17-31&lt;br /&gt;
 dchan=16&lt;br /&gt;
 echocanceller=oslec,1-15,17-31&lt;br /&gt;
 # Global data&lt;br /&gt;
 loadzone        = es&lt;br /&gt;
 defaultzone     = es&lt;br /&gt;
&lt;br /&gt;
== Aprovisionamiento terminales Cisco ==&lt;br /&gt;
=== Configurar protocolo SIP TCP o UDP en terminal Cisco ===&lt;br /&gt;
&lt;br /&gt;
Configuración de terminal Cisco para para funcionar bajo TCP o UDP:&lt;br /&gt;
Modificar parámetro&lt;br /&gt;
 &amp;lt;transportLayerProtocol&amp;gt;X&amp;lt;/transportLayerProtocol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde X es:&lt;br /&gt;
    1: TCP&lt;br /&gt;
    2: UDP&lt;br /&gt;
    4: Valor por defecto del firmware (al menos en la última versión equivale a TCP)&lt;br /&gt;
&lt;br /&gt;
=== Habilitar/Deshabilitar llamada en espera en terminales Cisco ===&lt;br /&gt;
&lt;br /&gt;
En el fichero de aprovisionamiento del terminal añadiremos la siguiente linea&lt;br /&gt;
 &amp;lt;callWaiting&amp;gt;X&amp;lt;/callWaiting&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde X es:&lt;br /&gt;
   0=off but can be changed through the settings menu.&lt;br /&gt;
   1=on but can be changed through the settings menu.&lt;br /&gt;
   2=off and locked so it can't be changed through the settings menu.&lt;br /&gt;
   3=on and locked so it can't be changed through the settings menu.&lt;br /&gt;
&lt;br /&gt;
== Como configurar servicio DHCP en Ubuntu Linux ==&lt;br /&gt;
'''¿Que es un servicio DHCP?'''&lt;br /&gt;
&lt;br /&gt;
Un servidor Dynamic Host Configuration Protocol (DHCP) asigna dinámicamente las direcciones IP y otras configuraciones de red a otros terminales que están conectados a la red.&lt;br /&gt;
&lt;br /&gt;
'''Instalar un servicio DHCP'''&lt;br /&gt;
&lt;br /&gt;
Para instalar el servidor de asignacion automatica de direccion IP ejecutamos el comando:&lt;br /&gt;
 sudo apt-get install isc-dhcp-server&lt;br /&gt;
&lt;br /&gt;
'''Configurando el servicio DHCP'''&lt;br /&gt;
&lt;br /&gt;
Editamos el archivo /etc/dhcp/dhcpd.conf creando primero un backup del mismo:&lt;br /&gt;
 mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.original&lt;br /&gt;
 nano /etc/dhcp/dhcpd.conf&lt;br /&gt;
&lt;br /&gt;
El archivo debe quedar de una forma muy similar a esta:&lt;br /&gt;
 authoritative&lt;br /&gt;
 subnet  10.254.239.0 netmask 255.255.255.254&lt;br /&gt;
 {&lt;br /&gt;
 range dynamic-bootp  10.254.239.40 10.254.239.60;&lt;br /&gt;
 option domain-name-servers ns1.example.org, ns2.example.org;&lt;br /&gt;
 option domain-name &amp;quot;example.org&amp;quot;;&lt;br /&gt;
 option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org ;&lt;br /&gt;
 option broadcast-address 10.254.239.255;&lt;br /&gt;
 default-lease-time 3600;&lt;br /&gt;
 max-lease-time 7200;&lt;br /&gt;
 option option-150 10.254.239.25&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Donde los campos:&lt;br /&gt;
*subnet: Direccion de red&lt;br /&gt;
*netmask: Máscara de red&lt;br /&gt;
*range dynamic-bootp: Rango de IPs que va a proporcionar el DHCP&lt;br /&gt;
*option domain-name-servers: Direcciones IPs de los DNS&lt;br /&gt;
*option domain-name: Nombre de dominio&lt;br /&gt;
*option routers:IPs de las puertas de enlace&lt;br /&gt;
*option broadcast-address: Dirección de broadcast&lt;br /&gt;
*default-lease-time: Tiempo de concesión por defecto&lt;br /&gt;
*max-lease-time: Valor máximo del tiempo de concesión&lt;br /&gt;
*option option-150: IPs de los servidores TFTPs que tiene la red&lt;br /&gt;
&lt;br /&gt;
'''Reiniciamos el servicio'''&lt;br /&gt;
&lt;br /&gt;
 service isc-dhcp-server restart&lt;br /&gt;
&lt;br /&gt;
'''Direcciones IP estáticas basadas en la MAC'''&lt;br /&gt;
&lt;br /&gt;
Pueden conocerse las MAC de las máquinas conectadas a la red ejecutando el comando arp desde la terminal.&lt;br /&gt;
&lt;br /&gt;
 host ejemplo {&lt;br /&gt;
        hardware ethernet 00:0B:82:19:A8:04;&lt;br /&gt;
        option option-150 10.254.239.0;&lt;br /&gt;
 #      fixed-address 10.254.239.52;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Protocolo Skinny en VIVAit Call mediante uso de Chan-SCCP ==&lt;br /&gt;
'''Instalación de chan_sccp'''&lt;br /&gt;
&lt;br /&gt;
*Copiar el fichero chan-sccp-4.2.1.1.tar.gz en el directorio donde estén los fuentes de Asterisk (normalmente /usr/src/MDtel)&lt;br /&gt;
*Descomprimir&lt;br /&gt;
*Entrar al directorio chan-sccp-4.2.1.1&lt;br /&gt;
*Ejecutar: ./configure --with-asterisk=../DIRECTORIO_ASTERISK --enable-conference. Donde DIRECTORIO_ASTERISK es el nombre del directorio donde están los fuentes de asterisk.&lt;br /&gt;
*Tras el ejecutar el configure (si todo va bien al final se verá un resumen con el S.O, arquitectura, etc), ejecutar make y make install&lt;br /&gt;
*El nuevo módulo chan_sccp.so se generará dentro del DIRECTORIO_ASTERISK en lib/asterisk/modules/ y se deberá copiar en /usr/lib/asterisk/modules/&lt;br /&gt;
*Copiar el fichero sccp.conf a /etc/asterisk&lt;br /&gt;
*Entra a Asterisk y ejecutar: module load chan_sccp.so&lt;br /&gt;
*Si se ha cargado correctamente, desde dentro de Asterisk, si se teclea sccp show version deberá devolver: &amp;quot;Skinny Client Control Protocol (SCCP). Release: 4.3.0 4.3.0 - unknown (built by 'root' on '2016-06-01 10:42:32 UTC')&amp;quot;&lt;br /&gt;
&lt;br /&gt;
'''Crear extensiones'''&lt;br /&gt;
&lt;br /&gt;
*En el portal crear una nueva clase de dispositivo (Vivait-Call/Dispositivos/Clases de dispositivos), donde la clase sea extensión la subclase H323 (todavía no existe la subclase SCCP) y el formato SCCP/${DEST}&lt;br /&gt;
*Crear la nueva extensión, pero el dispositivo debe ser el creado en el campo anterior.&lt;br /&gt;
*Las extensiones creadas habrá que añadirlas al fichero sccp.conf así como los teléfonos que las usarán. En el fichero sccp.conf incluido hay ejemplos.&lt;br /&gt;
&lt;br /&gt;
'''Aprovisionamiento'''&lt;br /&gt;
Los terminales se aprovisionan de la misma manera que los SIP, exceptuando que las plantillas XML no tiene referencias a SIP. Se incluye un xml genérico con todas las opciones.&lt;br /&gt;
Dentro del directorio chan-sccp-4.2.1.1 hay un directorio conf con todos los archivos de configuración necesarios. Las versiones annotated contienen todas las opciones posibles comentadas.&lt;br /&gt;
&lt;br /&gt;
== Instalación y configuración Postfix en RedHat7 ==&lt;br /&gt;
&lt;br /&gt;
'''Postfix''' es un ''servidor de correo'' de software libre/código abierto, un programa informático para el enrutamiento y envío de correo electrónico.&lt;br /&gt;
&lt;br /&gt;
'''Instalación'''&lt;br /&gt;
&lt;br /&gt;
 yum install postfix&lt;br /&gt;
&lt;br /&gt;
'''Configuración'''&lt;br /&gt;
&lt;br /&gt;
Sobre la configuración de postfix por defecto (recién instalado):&lt;br /&gt;
Editar el fichero /etc/postfix/main.cf&lt;br /&gt;
 inet_protocols = ipv4&lt;br /&gt;
 relayhost = smtp.renfe.es&lt;br /&gt;
Revisar la configuración:&lt;br /&gt;
 postfix check&lt;br /&gt;
Configurar postfix como servicio (sólo en redhat y similares)&lt;br /&gt;
 chkconfig postfix on&lt;br /&gt;
Iniciar postfix:&lt;br /&gt;
 service postfix start&lt;br /&gt;
Instalar mailx para disponer de los comandos mail y sendmail:&lt;br /&gt;
 yum install mailx&lt;br /&gt;
Probar configuración:&lt;br /&gt;
 echo &amp;quot;Prueba de correo&amp;quot; | mail -vs &amp;quot;Prueba&amp;quot; correo@destino.soy&lt;br /&gt;
&lt;br /&gt;
== FOP2 ==&lt;br /&gt;
&lt;br /&gt;
=== Como mostrar callername queues FOP2 ===&lt;br /&gt;
&lt;br /&gt;
Es necesario añadir el siguiente código al contexto de entrada:&lt;br /&gt;
&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Connect connid localhost usuario clave bd)&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Query resultid ${connid} SELECT\ firstname\,lastname\ from\ fop2\ where\ phone1=${CALLERID(num)}\ OR\ phone2=${CALLERID(num)})&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Fetch fetchid ${resultid} nombre apellidos)&lt;br /&gt;
 exten =&amp;gt; _X.,n,GotoIf($[${fetchid} = 1]?:noExiste)&lt;br /&gt;
 exten =&amp;gt; _X.,n,Set(CALLERID(name)=${nombre}${apellidos})&lt;br /&gt;
 exten =&amp;gt; _X.,n(noExiste),Continuar&lt;br /&gt;
&lt;br /&gt;
En la primera línea cambiar según lo necesario:&lt;br /&gt;
&lt;br /&gt;
*localhost: Dirección IP del servidor de MySQL donde está la BBDD de FOP2&lt;br /&gt;
*usuario: Usuario con permisos de acceso a la bbdd de FOP2&lt;br /&gt;
*clave: Clave del usuario&lt;br /&gt;
*bd: Nombre de la BBDD&lt;br /&gt;
&lt;br /&gt;
=== FOP2. Problemas en transferencias asistidas ===&lt;br /&gt;
&lt;br /&gt;
 Para habilitar la transferencia atendida del asterisk (funcion atxfer), hay que poner la opción tT en el queue() si la llamada origen &lt;br /&gt;
 la realiza a una cola o  al dial() de las extensiones.&lt;br /&gt;
 Con eso vemos como al intentar hacer la llamada de consulta ya se va a nuestro dialplan. Sin embargo la llamada no funciona ya que &lt;br /&gt;
 el enrutador nos da error de  enrutamiento porque no tenemos ID_DISPOSITIVO origen ya que el fop no es un elemento creado desde el portal.&lt;br /&gt;
 Por lo que se propone como solución crear un contexto de inicio del fop y asignarle un ID_DISPOSITIVO para que así se enrute la llamada. &lt;br /&gt;
 El contexto tienen que ser similar a ext_InicioLlamada_Chrome.conf&lt;br /&gt;
&lt;br /&gt;
Para que funcione las transferencias supervisadas desde el fop2 hay que realizar lo siguiente:&lt;br /&gt;
&lt;br /&gt;
*El usuario del manager debe tener permisos Atxfer para poder realizar transferencias.&lt;br /&gt;
*Habilitar la transferencia atxfer en el fuatures.conf del asterisk. atxfer =&amp;gt; *2&lt;br /&gt;
*Crear el fichero ext_InicioLlamada_FOP.conf con el siguiente contenido:&lt;br /&gt;
&lt;br /&gt;
 [Cen_Inicio_FOP]&lt;br /&gt;
 exten =&amp;gt; [*#%0-9].,1,NoOp(MDINICHR**EXTEN=${EXTEN}**CID=${CHROME_ANI}*)&lt;br /&gt;
 same =&amp;gt; n,dumpchan()&lt;br /&gt;
 ;same =&amp;gt; n,Set(CALLERID=${CHROME_ANI})&lt;br /&gt;
 same =&amp;gt; n,Gosub(Cen_Sub_getIdExtension,s,1(${R_CID_NUM_00}))&lt;br /&gt;
 same =&amp;gt; n,ExecIf($[&amp;quot;${GOSUB_RETVAL}&amp;quot;!=&amp;quot;OK&amp;quot; | &amp;quot;${sqlDato}&amp;quot;=&amp;quot;&amp;quot;]?HangUp)&lt;br /&gt;
 same =&amp;gt; n,Set(ID_DISPOSITIVO=${sqlDato})&lt;br /&gt;
 ; . Modificar MARCAR en funcion de reglas de marcacion saliente (prefijo 0, ...)&lt;br /&gt;
 ; Esto se modificara en el contexto Cen_Inicio_Chrome_Particular&lt;br /&gt;
 same =&amp;gt; n,Set(MARCAR=${EXTEN})&lt;br /&gt;
 ;---------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ;--- Llamada a contexto particular&lt;br /&gt;
 ;---------------------------------&lt;br /&gt;
 ; Esta llamada es para hacer cosas especificas del cliente (cambiar callerid...)&lt;br /&gt;
 ; La subrutina Cen_Inicio_Chrome_Particular esta en el archivo ext_InicioLlamada_Chrome_Particular.conf&lt;br /&gt;
 ; Si no existe el archivo copiar el archivo ext_InicioLlamada_Chrome_Particular.conf.ejemplo como ext_Inicio_Chrome_Particular.conf&lt;br /&gt;
 ; y realizar las modificaciones necesarias&lt;br /&gt;
 ; El fichero ext_InicioLlamada_Chrome_Particular.conf se carga automaticamente al ser creado con el include de ext_InicioLlamada.conf&lt;br /&gt;
 ; #include &amp;quot;ext_InicioLlamada*.conf&amp;quot;&lt;br /&gt;
 ;&lt;br /&gt;
 same =&amp;gt; n,GosubIf($[${DIALPLAN_EXISTS(Cen_Inicio_FOP_Particular,${EXTEN},1)}&amp;gt;0]?Cen_Inicio_FOP_Particular,${EXTEN},1)&lt;br /&gt;
 same =&amp;gt; n,Goto(Cen_Inicio_SIP,${MARCAR},1)&lt;br /&gt;
&lt;br /&gt;
*En el fichero /usr/local/fop2/buttons.cfg poner como contexto de las extensiones el creado anteriormente (Cen_Inicio_FOP)&lt;br /&gt;
*Modificar el fichero /usr/local/fop2/fop2.cfg:&lt;br /&gt;
&lt;br /&gt;
 blind_transfer = 0&lt;br /&gt;
 supervised_transfer = 1&lt;br /&gt;
&lt;br /&gt;
Para realizar la transferencia con consulta, hay que pulsar el supervised transfer del FOP2 y una vez se haya establecido la llamada, seleccionar la extensión que &amp;quot;sobra&amp;quot; en la conversación y pulsar la tecla de hangup y colgar la llamada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Como ver los directorios de un NAS a montar con NFS ==&lt;br /&gt;
&lt;br /&gt;
Con el siguiente comando vemos los diferentes volúmenes de un NAS:&lt;br /&gt;
&lt;br /&gt;
 showmount -e IP_NAS&lt;br /&gt;
&lt;br /&gt;
Ejemplo de salida:&lt;br /&gt;
&lt;br /&gt;
 Export list for 192.168.10.10:&lt;br /&gt;
 /Backup/backup       *&lt;br /&gt;
 /DISCOS_1/VOL1_AUDIO *&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Instalación de ActivaSTP con VIVAit Call 3 y marcación desde Outlook ==&lt;br /&gt;
&lt;br /&gt;
Instalamos ActivaSTP desde:&lt;br /&gt;
 &lt;br /&gt;
 (http://activa.sourceforge.net/)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- *SIPTAPI, según la pagina Web, su ultima versión publicada es del 2014 con versión 0.2.17 (http://activa.sourceforge.net/)&lt;br /&gt;
&lt;br /&gt;
Hemos probado con http://www.xtelsio.com/en/products/ast_tsp/tapi_for_asterisk.htm.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La configuración necesaria se muestra en la siguiente imagen:&lt;br /&gt;
&lt;br /&gt;
[[File:Ventana ActivaTSP.jpg]]&lt;br /&gt;
&lt;br /&gt;
 El usuario del manager debe tener permisos originate para poder realizar llamadas.&lt;br /&gt;
&lt;br /&gt;
Se han realizado pruebas con Outlook 2013.&lt;br /&gt;
&lt;br /&gt;
Se ha comprobado la correcta realización de pruebas utilizando ActivaSTP, realizadon llamadas desde la pestaña &amp;quot;personas&amp;quot; con la vista en modo tarjeta de Pesentación, tarjeta, teléfono o lista.&lt;br /&gt;
&lt;br /&gt;
Outlook 2013 no da la opción de llamar si la vista está en modo personas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Como volver a procesar grabaciones con error ==&lt;br /&gt;
&lt;br /&gt;
Las grabaciones con error son aquellas que tienen el valor E_GRABACION=120 en la tabla DAT_GRABACIONES.&lt;br /&gt;
&lt;br /&gt;
Las grabaciones con error se producen normalmente por la pérdida de conexión entre el nodo servidor de grabaciones y el resto.&lt;br /&gt;
&lt;br /&gt;
Para reprocesar la grabación hay que modificar el campo E_GRABACION de la tabla DAT_GRABACIONES y ponerlo con valor 20 para que así el recordCentral la vuelva a procesar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Problemas de conmutación en cluster ==&lt;br /&gt;
El problema detectado fue que en la conmutacion de maquinas en el cluster cuando el control lo tiene la maquina 2 no funciona el servicio phoneprov-tftp.&lt;br /&gt;
&lt;br /&gt;
Hay que hacer las siguientes comprobaciones:&lt;br /&gt;
&lt;br /&gt;
 Que el directorio /var/lib/phoneprov-tftp esté en la partición /HDcluster&lt;br /&gt;
 Que fichero /etc/MDtel/phoneprov-tftp esté puesta como IP de la máquina la IP flotante del cluster (campo $dbHost)&lt;br /&gt;
 Que el servicio phoneprov-tftp del directorio /usr/local/sbin/phoneprov-tftp.pl tenga permisos de ejecución 755&lt;br /&gt;
 Que exista el fichero /etc/init/phoneprov-tftp.conf&lt;br /&gt;
&lt;br /&gt;
Para más información ver los log del phoneprov en /var/log/phoneprov-tftp.log&lt;br /&gt;
&lt;br /&gt;
El problema era que no se encontraba instalado el paquete phoneprov-tftp, hay que instalarlo manualmente. Instalar el paquete libnet-tftpd-perl.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Como borrar contenido de la tabla BDTR con el script borraRegistrosNimitz.pl ==&lt;br /&gt;
&lt;br /&gt;
Este script se ejecuta mediante una tarea del crontab, tal como la siguiente:&lt;br /&gt;
&lt;br /&gt;
 SHELL=/bin/sh&lt;br /&gt;
 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin&lt;br /&gt;
 # m h dom mon dow user  command&lt;br /&gt;
 00 01     * * *   root    /usr/local/sbin/borraRegistrosNimitz.pl --hDB localhost&lt;br /&gt;
&lt;br /&gt;
Para establecer el número de días que vamos a dejar en la base de datos debemos editar el archivo borraRegistrosNimitz.pl, el campo my $numDias.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ocasionalmente No saltan los formularios en  '''VIVAit Suite''' cuando existen marcadores ==&lt;br /&gt;
En los sistemas con marcadores, se ha observado que, en un porcentaje muy bajo, cuando entra una llamada a un agente no se presenta el formulario. &lt;br /&gt;
En una traza del vivait-desk se pudo comprobar que no había eventos CTI de la llamada, pero telefónicamente la llamada si quedaba establecida.&lt;br /&gt;
&lt;br /&gt;
El problema viene ocasionado porque el CTI tiene auditorías para descartar llamadas,evitando que se queden enganchadas.&lt;br /&gt;
&lt;br /&gt;
Una de esas auditorías es el tiempo máximo de las llamadas no contestadas.&lt;br /&gt;
&lt;br /&gt;
El marcador tiene puesto a fuego que el tiempo que permanece una llamada en cola a la espera de un agente libre es de 10 minutos.&lt;br /&gt;
&lt;br /&gt;
Hay que poner el tiempo de auditoría en un valor superior (por ejemplo 12 minutos)&lt;br /&gt;
&lt;br /&gt;
En el archivo de configuración '''vivait-cti.conf'''&lt;br /&gt;
&lt;br /&gt;
 audit_call_minutNoContestada = 12&lt;br /&gt;
&lt;br /&gt;
El paŕametro audit_call_minutContestada, es el tiempo que el cti &amp;quot;conserva&amp;quot; una llamada, dado que el dialplan tiene puesto el timeout absolute a 7200 (120 minutos), deberiamos modificar este parámetro para que esté sincronizado&lt;br /&gt;
&lt;br /&gt;
 audit_call_minutContestada = 120&lt;br /&gt;
&lt;br /&gt;
Estos cambios se implementarán en el instalador de la próxima versión.&lt;br /&gt;
&lt;br /&gt;
== Generación de un Core ==&lt;br /&gt;
Un Core es la memoria de un programa.&lt;br /&gt;
&lt;br /&gt;
Para generar un Core rápido con Asterisk hay que hacer lo siguiente:&lt;br /&gt;
&lt;br /&gt;
    Ejecutar ps aux | grep asterisk y coger el PID del programa&lt;br /&gt;
    gdb /usr/sbin/asterisk [PID]&lt;br /&gt;
    gcore [file]&lt;br /&gt;
&lt;br /&gt;
== Activación de la movilidad para un usuario ==&lt;br /&gt;
&lt;br /&gt;
Una vez configurada la movilidad e intentar activarla nos da error cuando le ponemos el usuario y la contraseña.&lt;br /&gt;
&lt;br /&gt;
La configuración del usuario es la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[File:Problema.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para que la movilidad funcione hay que asignar un teléfono a la extensión, quedando la configuración de esta manera:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Asignacion_de_telefono.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Como se muestra el número llamante en transferencia desde operadora ==&lt;br /&gt;
Para tener el número ANI en las transferencias con consulta hay que realizar lo siguiente:&lt;br /&gt;
 Copiar el archivo adjunto (app_esConsulta.c) en el directorio apps de Asterisk (normalmente /usr/src/vivait-call/asterisk/apps).&lt;br /&gt;
    Situarse en el directorio raiz de Asterisk (normalmente /usr/src/vivait-call/asterisk/).&lt;br /&gt;
    Compilar: make&lt;br /&gt;
    Instalar: make install&lt;br /&gt;
    Habilitar el nuevo módulo: asterisk -rx 'module load app_esConsulta.so'&lt;br /&gt;
    Si la carga del módulo no funcionara, hay que el reiniciar Asterisk para que cargue el módulo.&lt;br /&gt;
&lt;br /&gt;
Posteriormente modificar el fichero ext_Enrutador_Particular.conf de la siguiente forma:&lt;br /&gt;
&lt;br /&gt;
 [Cen_Enrutador_Particular]&lt;br /&gt;
 exten =&amp;gt; [*#%0-9].,1,NoOp(MDENRUPAR**EXTEN=${EXTEN}**CID=${CALLERID(NUM)}*)&lt;br /&gt;
 same =&amp;gt;           n,NoOp(calleridAntes=${CALLERID(num)})&lt;br /&gt;
 same =&amp;gt;           n,esConsulta&lt;br /&gt;
 same =&amp;gt;           n,GotoIf($[&amp;quot;${consultaANI}&amp;quot;=&amp;quot;&amp;quot;]?noConsulta)&lt;br /&gt;
 ;same =&amp;gt;           n,Set(CALLERID(name)=\Transfer:${consultaANI}\)&lt;br /&gt;
 same =&amp;gt;            n,Set(_R_CID_NUM_00=${consultaANI})&lt;br /&gt;
 same =&amp;gt;           n,GotoIf($[&amp;quot;${consultaNOM}&amp;quot;=&amp;quot;&amp;quot;]?noNom)&lt;br /&gt;
 ;same =&amp;gt;           n,Set(CALLERID(name)=\Transfer:${consultaNOM}\)&lt;br /&gt;
 same =&amp;gt;            n,Set(_R_CID_NAME_00=${consultaNOM})&lt;br /&gt;
 same =&amp;gt;           n(noNom),Set(_R_CID_NUM_00=${consultaANI})&lt;br /&gt;
 same =&amp;gt;           n,NoOp(callerIDdespues=${CALLERID(num)})&lt;br /&gt;
 same =&amp;gt;           n(noConsulta),NoOP(noConsulta)&lt;br /&gt;
 ;same =&amp;gt;           n,Set(CALLERID(num)=${consultaANI})&lt;br /&gt;
 same =&amp;gt;            n,Return&lt;br /&gt;
&lt;br /&gt;
En caso de que ya haya algo añadido en el fichero, hay que analizar en que posición se pondrá el contenido anterior para que no se vea modificado el funcionamiento de la centralita&lt;br /&gt;
&lt;br /&gt;
== Como conseguir que los tonos dtmf no sean regenerados por Asterisk ==&lt;br /&gt;
&lt;br /&gt;
Para que los tonos dtmf no sean regenerados por Asterisk hay que:&lt;br /&gt;
&lt;br /&gt;
 cd /usr/src/MDtel/asterisk/apps/&lt;br /&gt;
 cp /tmp/app_setoption.c .&lt;br /&gt;
 ls -l app_setoption.c&lt;br /&gt;
 cd ..&lt;br /&gt;
 make menuconfig (comprobar que todo está bien)&lt;br /&gt;
 make (comprobar que compila la nueva app)&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EJEMPLO: los tonos dtmf entran por &amp;quot;Trunk_GW_MAQUETAS&amp;quot; y va a la extensión 4175.&lt;br /&gt;
&lt;br /&gt;
Creamos un nuevo contexto por el trunk de entrada que queremos activar esta opción (o lo aplicamos a todos si procede, dependerá de cada instalación)&lt;br /&gt;
&lt;br /&gt;
'''PARA LA ENTRADA:'''&lt;br /&gt;
    sip_trunkExt_WEB.conf&lt;br /&gt;
        Trunk_GW_MAQUETAS&lt;br /&gt;
            context=Cen_Inicio_TrunkSip_Maqueta&lt;br /&gt;
            dtmfmode=inband&lt;br /&gt;
            directmedia=no&lt;br /&gt;
            disallow=all&lt;br /&gt;
            allow=alaw&lt;br /&gt;
&lt;br /&gt;
    ext_InicioLlamada_TrunkSIP_Particular.conf&lt;br /&gt;
        [Cen_Inicio_TrunkSip_Maqueta]&lt;br /&gt;
            exten =&amp;gt; _X.,1,NoOp(MDINITRUNSIPPAR**EXTEN=${EXTEN}**CID=${CALLERID(NUM)}*)&lt;br /&gt;
            same =&amp;gt;            n,SetChannelOption(14,0)&lt;br /&gt;
            same =&amp;gt;            n,Goto(Cen_Inicio_TrunkSip,${EXTEN},1)&lt;br /&gt;
            same =&amp;gt;            n,Return()&lt;br /&gt;
            &lt;br /&gt;
'''PARA LA SALIDA:'''&lt;br /&gt;
    ext_MARCAR_Extension_Dial.conf&lt;br /&gt;
        [Cen_Marcar_Extension_Dial_Gosub]&lt;br /&gt;
             same =&amp;gt;  n,ExecIf($[&amp;quot;${PASARTONOS}&amp;quot;=&amp;quot;1&amp;quot;]?SetChannelOption(14,0))    (AÑADIMOS)&lt;br /&gt;
             &lt;br /&gt;
     sip_WEB.conf&lt;br /&gt;
        El peer debe tener:&lt;br /&gt;
            PASARTONOS =&amp;gt; 1     ;Variable declarada para el contexto ext_MARCAR_Externo_Dial en la macro&lt;br /&gt;
            dtmfmode=inband&lt;br /&gt;
            directmedia=no&lt;br /&gt;
            disallow=all&lt;br /&gt;
            allow=alaw&lt;br /&gt;
             &lt;br /&gt;
Paramos y arrancamos Asterisk (ya que hemos compilado y aprovechamos para recargar DialPlan)&lt;br /&gt;
&lt;br /&gt;
Para comprobar el funcionamiento:&lt;br /&gt;
&lt;br /&gt;
'''En Asterisk:'''&lt;br /&gt;
&lt;br /&gt;
    core set debug 1&lt;br /&gt;
        Hacer llamada descolgando la misma&lt;br /&gt;
    core set debug 0&lt;br /&gt;
&lt;br /&gt;
Revisar el log de Asterisk y comprobar que en ambos canales de la llamada aparece &amp;quot;Disabling digit detection&amp;quot; (si no aparece, algo falta por configurar):&lt;br /&gt;
    chan_sip.c: Disabling digit detection on SIP/4175-00000031&lt;br /&gt;
    chan_sip.c: Disabling digit detection on SIP/Trunk_GW_MAQUETAS-00000030&lt;br /&gt;
&lt;br /&gt;
== Problemas en la bbdd de replica, tabla COM_COMUNICADOS ==&lt;br /&gt;
&lt;br /&gt;
De forma intermitente en esta tabla se generan registros duplicados y hay que borrar registros y arrancar la Réplica para que todo vuelva a funcionar.&lt;br /&gt;
&lt;br /&gt;
El problema consiste en el el script borraRegistrosNimitz.pl borra la tabla entera, sin tener en cuenta el número de días que queremos dejar de backup; esto provoca que se vuelvan a repetir los índices de la BD.&lt;br /&gt;
&lt;br /&gt;
Hay que modificar el script de la siguiente forma:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 dentro de la sentencia elsif($tablas[$i] eq &amp;quot;COM_COMUNICADOS&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Hay que sustituir la sentencia&lt;br /&gt;
 $query = &amp;quot;DELETE FROM $tablas[$i;&lt;br /&gt;
&lt;br /&gt;
Por esta otra:&lt;br /&gt;
 $query = &amp;quot;DELETE FROM $tablas[$i] where D_HORA_FIN &amp;lt; DATE_SUB(NOW, INTERVAL $numDias DAY) LIMIT 100&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simple_bridge y native_rtp ==&lt;br /&gt;
&lt;br /&gt;
Para ver en que modo de funcionamiento esta la llamada escribiremos el siguiente comando.&lt;br /&gt;
&lt;br /&gt;
homologacion-corp0*CLI&amp;gt; bridge show all&lt;br /&gt;
&lt;br /&gt;
  Bridge-ID                            Chans Type            Technology&lt;br /&gt;
  b40f41e3-0028-46d4-8c7c-34999090680f     2 basic           native_rtp&lt;br /&gt;
&lt;br /&gt;
El simple_bridge es el peor funcionamiento posible en el asterisk, hay que intentar estar siempre en native_rtp.&lt;br /&gt;
&lt;br /&gt;
El native_rtp tiene dos modos de funcionamiento que se ve al ejecutar el comando siguiente:&lt;br /&gt;
&lt;br /&gt;
  homologacion-corp0*CLI&amp;gt; sip show channel 6d7c7a13176fc340180528281d4bcc3a@172.25.128.91:5060&lt;br /&gt;
  Audio IP:               172.25.129.102 (Outside bridge)&lt;br /&gt;
&lt;br /&gt;
En el campo Auidio Bridge podemos ver el valor Local o Outside bridge. En el modo local no se maneja al el audio por lo que no hay RTP directo entre teléfonos y pasa a través del asterisk, mientras que en modo Outside bridge si que hay rtp directo.&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Howto%27s&amp;diff=6377</id>
		<title>Howto's</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Howto%27s&amp;diff=6377"/>
		<updated>2017-10-31T10:53:31Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* Simple_bridge y native_rtp */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!! VIVAit Call&lt;br /&gt;
VIVAit Suite&lt;br /&gt;
&lt;br /&gt;
VIVAit Fax&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Como parar asterisk ==&lt;br /&gt;
En situaciones límite en el que es necesario parar el asterisk y volver a arrancarlo hay que realizar los siguientes pasos:&lt;br /&gt;
&lt;br /&gt;
 Entrar en la consola de asterisk e introducir el comando core stop now&lt;br /&gt;
&lt;br /&gt;
 Si esto no funciona, tendremos que matar el proceso a mano. Esto es, primero el safe asterisk y luego el asterisk mediante el comando &lt;br /&gt;
 kill -9 nºPID&lt;br /&gt;
 &lt;br /&gt;
 Tras estos pasos, volveremos a arrancar el servicio asterisk mediante /etc/init.d/asterisk start&lt;br /&gt;
&lt;br /&gt;
== Como configurar la megafonía ==&lt;br /&gt;
&lt;br /&gt;
El servicio de megafonía se basa en el protocolo multicast.&lt;br /&gt;
&lt;br /&gt;
Para configurar la megafonía tenemos que activar en los teléfonos que para que estén &amp;quot;escuchando&amp;quot; en una dirección multicast y tener un emisor en esa dirección multicast.&lt;br /&gt;
&lt;br /&gt;
Los teléfonos suelen tener en su configuración un apartado para configurar el multicast. Por ejemplo en los yealink está en la pestaña directory sección multicast IP.&lt;br /&gt;
&lt;br /&gt;
En los teléfonos se puede configurar manualmente o incluirlo en las plantillas de aprovisionamiento.&lt;br /&gt;
&lt;br /&gt;
El asterisk tiene un canal para hacer multicast. Este canal es MulticastRTP.&lt;br /&gt;
&lt;br /&gt;
Para esto podemos crear un VDN que contenga la siguiente línea. (en el ejemplo la dirección multicast es 239.0.126.1 y el puerto es el 10001).&lt;br /&gt;
&lt;br /&gt;
 [Cen_VDN_90000]&lt;br /&gt;
 exten =&amp;gt; _X.,1,NoOp(MDVDN_90000*****EXTEN=${EXTEN}**CID=${CALLERID(NUM)}**UCID=${UCID}*)&lt;br /&gt;
  same =&amp;gt;     n,Answer&lt;br /&gt;
  same =&amp;gt;     n,Dial(MulticastRTP/basic/239.0.126.1:10001)&lt;br /&gt;
 include =&amp;gt; Cen_finLlamada&lt;br /&gt;
&lt;br /&gt;
== Como configurar el candado ==&lt;br /&gt;
El candado permite prohibir temporalmente la posibilidad de realizar llamadas hacia fuera. Sí se pueden seguir haciendo llamadas a extensiones fijas de la plataforma, es decir, llamadas sin coste.&lt;br /&gt;
&lt;br /&gt;
Para configurar dicha funcionalidad basta con crear extensiones con la categoría mas restrictiva posible y habilitar la movilidad, con lo que la extensión solo tendrá &amp;quot;permisos&amp;quot; para realizar llamadas internas.&lt;br /&gt;
&lt;br /&gt;
Para permitir llamadas externas solo hay que &amp;quot;mover&amp;quot; a un usuario con categoría suficiente a la extensión deseada.&lt;br /&gt;
== Como crear un grupo de captura y que se vea en cada teléfono el número que llama ==&lt;br /&gt;
&lt;br /&gt;
'''ATENCIÓN: SE CREAN CONFIGURACIONES NO REFLEJADAS EN PORTAL DE ADMINISTRACIÓN'''&lt;br /&gt;
&lt;br /&gt;
Para la simulación de grupos de captura y conseguir que todos los terminales vean el ANI del llamante:&lt;br /&gt;
&lt;br /&gt;
- Hacen falta teléfonos con dos líneas&lt;br /&gt;
&lt;br /&gt;
- Cada teléfono del grupo tiene en la línea 1 su extensión habitual (por ejemplo 40000)&lt;br /&gt;
&lt;br /&gt;
- Además, en el fichero &amp;quot;sip_Estatico.conf&amp;quot;, creamos una segunda extensión para cada teléfono, que le ocupará la segunda línea (por ejemplo 42000)&lt;br /&gt;
&lt;br /&gt;
- En esta segunda linea ponemos que cuando se llame tenga otro tono de llamada (un beep o nada...) que se asemeje en funcionamiento al de un mensaje de llamada en otra extension de mi grupo de captura&lt;br /&gt;
&lt;br /&gt;
- Se ha creado una variable global por cada teléfono en el fichero de variables &amp;quot;ext_MDtel_Particular.conf&amp;quot; de nombre EXTxxxxx (por ejemplo EXT40000); esa variable contiene las otras extensiones virtuales del grupo&lt;br /&gt;
por ejemplo EXT40000=&amp;gt;SIP/42001&amp;amp;SIP/42005&lt;br /&gt;
&lt;br /&gt;
- Hemos creado en el dialplan programación para que cuando exista esa variable global se añada a la marcación el contenido&lt;br /&gt;
&lt;br /&gt;
== Como crear supletorios ==&lt;br /&gt;
&lt;br /&gt;
'''ATENCIÓN: SE CREAN CONFIGURACIONES NO REFLEJADAS EN PORTAL DE ADMINISTRACIÓN'''&lt;br /&gt;
&lt;br /&gt;
Igual que el caso anterior pero en la variable ponemos números reales. Debido a un bug en el enrutador, que no devuelve la variable R_PARA, en el fichero ext_MARCAR_Extension.conf hay que sustituir la siguiente linea:&lt;br /&gt;
 &lt;br /&gt;
 ;same =&amp;gt;                   n,ExecIf($[&amp;quot;${EXT${R_PARA}}&amp;quot;=&amp;quot;&amp;quot;]?NoOp:Set(ENR_CADMARCAR=${ENR_CADMARCAR}&amp;amp;${EXT${R_PARA}}))&lt;br /&gt;
Por esta otra:&lt;br /&gt;
  same =&amp;gt;                   n,ExecIf($[&amp;quot;${EXT${R_DEST_${ENR_RUTA_CAD}}}&amp;quot;=&amp;quot;&amp;quot;]?NoOp:Set(ENR_CADMARCAR=${ENR_CADMARCAR}&amp;amp;${EXT${R_DEST_${ENR_RUTA_CAD}}}))&lt;br /&gt;
ATENCIÓN !!! en las llamadas salientes cada uno presenta su número&lt;br /&gt;
&lt;br /&gt;
Para emplear números externos en los supletorios hay que poner, al crear la variable que hemos explicado en el apartado anterior en el ext_MDtel_Particular.conf: &lt;br /&gt;
&lt;br /&gt;
 EXT335=&amp;gt;SIP/0999999999@Trunk_Movil ;En este caso suena en la ext 335 y en el móvil 999999999&lt;br /&gt;
&lt;br /&gt;
== Generación de llamada automática ==&lt;br /&gt;
&lt;br /&gt;
Para activar la funcionalidad es necesario lo siguiente: &lt;br /&gt;
&lt;br /&gt;
* Definir una variable ID_LISTA_LLAMAME con el ID de la lista que se va a usar para generar la llamada. Cuando se cree la lista hay que asegurarse que el campo &amp;quot;Nº segundos límite&amp;quot; tiene un valor lo suficientemente amplio para evitar que la llamada caduque antes de ejecutarse.&lt;br /&gt;
&lt;br /&gt;
* Establecer un timeout para la cola (en el Gosub Cen_Sub_GrupoACD se indica justo después de ${COLA})&lt;br /&gt;
&lt;br /&gt;
* Llamar a la función de MySQL ACD_FUNC_LLAMAME_CREAR a través de MDintz&lt;br /&gt;
&lt;br /&gt;
* En la función se usan los siguientes elementos variables:&lt;br /&gt;
&lt;br /&gt;
        ${ID_LISTA_LLAMAME}: Definida antes clienteTOCola: &lt;br /&gt;
        Nombre del cliente. Al no tener ningún nombre, se usa un denominador genérico&lt;br /&gt;
        ${CALLERID}: Número llamante, donde se dirigirá la llamada.&lt;br /&gt;
&lt;br /&gt;
Ejemplo:&lt;br /&gt;
&lt;br /&gt;
 [Cen_VDN_99001]&lt;br /&gt;
 ;----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 ;----------------------- VDN 99001 ------------------------------------------------------------&lt;br /&gt;
 ;----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 exten =&amp;gt; _X.,1,NoOp(MDENTGW_99001*****EXTEN=${EXTEN}**CID=${CALLERID(NUM)}**UCID=${UCID}*)&lt;br /&gt;
  same =&amp;gt;     n,Set(__COLA=89001)&lt;br /&gt;
  same =&amp;gt;     n,Set(ctiDiriTrato=0)&lt;br /&gt;
  same =&amp;gt;     n,Set(ctiDiriInterface=)&lt;br /&gt;
  same =&amp;gt;     n,Set(ID_LISTA_LLAMAME=2)&lt;br /&gt;
  same =&amp;gt;     n(cola),Gosub(Cen_Sub_GrupoACD,${EXTEN},1(${COLA},10,,Si,))&lt;br /&gt;
  same =&amp;gt;     n,GotoIf($[&amp;quot;${QUEUESTATUS}&amp;quot;!=&amp;quot;TIMEOUT&amp;quot;]?colgar)&lt;br /&gt;
  same =&amp;gt;     n,MDintz(nimitz|bd|sqlDato|select ACD_FUNC_LLAMAME_CREAR(CURRENT_TIMESTAMP\,${ID_LISTA_LLAMAME}\,&amp;quot;&amp;quot;\,&amp;quot;clienteTOCola&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,1\,&amp;quot;&amp;quot;\,&amp;quot;${CALLERID(NUM)}&amp;quot;\,1\,3\,1\,&amp;quot;&amp;quot;\,0\,0\,0\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;))&lt;br /&gt;
  same =&amp;gt;     n,GotoIf($[&amp;quot;${MDintzRes}&amp;quot;=&amp;quot;OK&amp;quot;]?colgar)&lt;br /&gt;
  same =&amp;gt;     n,NoOp(ACD_FUNC_LLAMAME_CREAR ${MDintzRes})&lt;br /&gt;
  same =&amp;gt;     n(colgar),Hangup&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cancelación de eco en la plataforma ==&lt;br /&gt;
&lt;br /&gt;
Comprobar que el chan_dahdi.conf este configurado los parametros: &lt;br /&gt;
 echocancel=yes&lt;br /&gt;
 echocancelwhenbridged=yes&lt;br /&gt;
 Jugar con los valores txgain y rxgain &lt;br /&gt;
&lt;br /&gt;
Si esto no es suficiente el siguiente paso sería emplear una canceladora de echo por hardware.&lt;br /&gt;
&lt;br /&gt;
== Como &amp;quot;dar paso&amp;quot; a través de un enlace exterior si hay una llamada para una extensión creada en el sistema pero no registrada ==&lt;br /&gt;
&lt;br /&gt;
Este procedimiento es de utilidad en procesos de migración, en los que recibimos las llamadas de la RTC, nos las quedamos si la extensión ya está registrada en VIVAit y la mandamos hacia la plataforma a migrar si aún sigue migrada ahí&lt;br /&gt;
&lt;br /&gt;
El procedimiento es:&lt;br /&gt;
* Activar desvío por no contesta en la extensión (portal de administración - VIVAit Call - Dispositivos - Extensiones - campo &amp;quot;Desvio no contesta&amp;quot;, indicando como destino un prefijo (por ejemplo &amp;quot;99&amp;quot;) seguido de la extensión destino&lt;br /&gt;
&lt;br /&gt;
* Creamos una preruta en vivait-call - rutas -prerutas con origen &amp;quot;99&amp;quot;, le quitamos el prefijo en campo &amp;quot;Destino saliente 1&amp;quot; (valor -2) e indicamos en campo &amp;quot;Tipo destino sal. 1&amp;quot; como &amp;quot;Ruta externa&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Debera existir una ruta externa para esa numeración&lt;br /&gt;
&lt;br /&gt;
== Comprobación de versiones de elementos de la plataforma ==&lt;br /&gt;
&lt;br /&gt;
'''Aplicaciones'''&lt;br /&gt;
:* Botón derecho del ratón, Acerca De&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Portales'''&lt;br /&gt;
:* En el Vivait-Call, en la pantalla de inicio de sesión pone el número de versión del portal.&lt;br /&gt;
:* Tanto en el Monitor como en el Tracker no se puede saber.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Demonios'''&lt;br /&gt;
:* Mediante el comando nc localhost &amp;lt;Puerto demonio&amp;gt;. Ejemplo:&lt;br /&gt;
::nc localhost 1120&lt;br /&gt;
::motorSal sis ver='03.02.00' inic='20150427 123457' alarmas=0 ultAlar='00000000000000'&lt;br /&gt;
::motorSal gmp msj=253/256 buf=256/256 tarea=99/102&lt;br /&gt;
::motorSal tmp uptime=12624 (0d 3h 30m 24s)&lt;br /&gt;
::motorSal mtr mys=1 ocup=0% planif=13(0) intento=11(0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::Ejemplos puertos demonios:&lt;br /&gt;
:::*1111: vivait-cti&lt;br /&gt;
:::*1112: myAcdSuperv&lt;br /&gt;
:::*1113: recordNodo&lt;br /&gt;
:::*1114: recordCentral&lt;br /&gt;
:::*1115: intz-nimitz&lt;br /&gt;
:::*1120: motorSal&lt;br /&gt;
:::*1123: phoneprov-tftp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Base de datos'''&lt;br /&gt;
:* No se puede saber la versión a no ser que se comparen esquemáticos con los subidos en el redmine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:administrador]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:VIVAit Suite]]&lt;br /&gt;
[[Category:VIVAit Fax]]&lt;br /&gt;
&lt;br /&gt;
== Añadir Auto-Answer a la cabecera SIP ==&lt;br /&gt;
&lt;br /&gt;
Si queremos que un teléfono tenga autoanswer:&lt;br /&gt;
* En el peer poner: headeraa=Call-Info: answer-after=0, esto tiene que ir en la plantilla de la extensión o como campo en la extensión. Dependiendo del terminal que utilicemos el valor de este campo variará:&lt;br /&gt;
&lt;br /&gt;
    Aastra: Alert-Info: info=alert-autoanswer&lt;br /&gt;
    Grandstream: Call-Info: answer-after=0&lt;br /&gt;
    Linksys: Call-Info:\;Answer-After=0&lt;br /&gt;
    Polycom: Alert-Info: Ring Answer&lt;br /&gt;
    Snom: Call-Info: answer-after=0&lt;br /&gt;
    Snom (nuevo firmware): Call-Info: &amp;lt;sip:IP&amp;gt;\;answer-after=0&lt;br /&gt;
    Yealink: Call-Info: answer-after=0&lt;br /&gt;
&lt;br /&gt;
* Luego en el diaplan añadir lo siguiente: exten =&amp;gt; _[*#%0-9a-zA-Z].,n,set(__AutoAnswer=AA) (Esto tendremos que ver como ponerlo de manera automática). De manera provisional si queremos que sea para llamadas salientes pondremos esto en el ext_n_marcador.conf. Si queremos que sea llamadas entrantes lo pondremos en ext_n_MARCAR.conf&lt;br /&gt;
&lt;br /&gt;
== Configuración de los portales web en HTTPS ==&lt;br /&gt;
&lt;br /&gt;
Desde /usr/lib/jvm/default-java/bin/ ejecutamos:&lt;br /&gt;
&lt;br /&gt;
keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/share/tomcat7/.keystore&lt;br /&gt;
&lt;br /&gt;
Escriba la contraseña del almacén de claves: (t0mc4t)&lt;br /&gt;
 Volver a escribir la contraseña nueva: (t0mc4t)&lt;br /&gt;
 *Personalizar para el cliente&lt;br /&gt;
 ¿Cuáles son su nombre y su apellido?&lt;br /&gt;
 [Unknown]: VIVAit Suite&lt;br /&gt;
 ¿Cuál es el nombre de su unidad de organización?&lt;br /&gt;
 [Unknown]: Desarrollo&lt;br /&gt;
 ¿Cuál es el nombre de su organización?&lt;br /&gt;
 [Unknown]: MDtel&lt;br /&gt;
 ¿Cuál es el nombre de su ciudad o localidad?&lt;br /&gt;
 [Unknown]: Madrid&lt;br /&gt;
 ¿Cuál es el nombre de su estado o provincia?&lt;br /&gt;
 [Unknown]: Madrid&lt;br /&gt;
 ¿Cuál es el código de país de dos letras de la unidad?&lt;br /&gt;
 [Unknown]: es&lt;br /&gt;
 ¿Es correcto CN=VIVAit Suite, OU=Desarrollo, O=MDtel, L=es, ST=Madrid,&lt;br /&gt;
 C=Unknown?&lt;br /&gt;
 [no]: si&lt;br /&gt;
 Escriba la contraseña clave para &amp;lt;tomcat&amp;gt;&lt;br /&gt;
 (INTRO si es la misma contraseña que la del almacén de claves)&lt;br /&gt;
&lt;br /&gt;
nano /var/lib/tomcat7/conf/server.xml&lt;br /&gt;
&lt;br /&gt;
Descomentar la línea:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; protocol=&amp;quot;HTTP/1.1&amp;quot; SSLEnabled=&amp;quot;true&amp;quot; &lt;br /&gt;
&lt;br /&gt;
 maxThreads=&amp;quot;150&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Añadir después de sslProtocol=&amp;quot;TLS&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 keystorePass=&amp;quot;t0mc4t&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Crear un motivo desconexión para el Supervisor en '''''VIVA'''''it Suite==&lt;br /&gt;
&lt;br /&gt;
Para crear motivos de desconexión adicionales a los que ya ofrece la aplicación tendremos que añadir una nueva entrada en la BD. El comando que emplearíamos seria el siguiente:&lt;br /&gt;
&lt;br /&gt;
INSERT INTO `nimitz`.`COM_ENUMERADOS` (`ID`, `C_NOMBRE`, `C_TEXTO`, `N_POSICION`, `C_OBSERV`) VALUES(1000700, 'TSesAgMotDesc', 'Nombre Motivo de desconexión', 60, ' ');&lt;br /&gt;
&lt;br /&gt;
El ID debe ser mayor o igual a 1000700 y menor a 1000800. El N_POSICION debe ser mayor o igual a 60 y menor que 100.&lt;br /&gt;
&lt;br /&gt;
== Envío de variables CTI al ACD ante un GW con asterisk 13==&lt;br /&gt;
Dado que para un GW con asterisk 13 un nodo ACD es considerado un elemento externo, por defecto, no se envían variables CTI (UCID, ...). En una fututa versión del nodo ACD, ya no se considerará un elemento externo por lo que si se enviarán dichas variables. Para lograrlo en la versión 3.0 de la plataforma Vivait hay que modificar el fichero ext_MARCAR_Externo_Particular.conf del GW. Deberemos poner la siguiente linea.&lt;br /&gt;
&lt;br /&gt;
 same =&amp;gt; n,Macro(escribirDatosCti)&lt;br /&gt;
&lt;br /&gt;
== Script para cambio automático de claves en salas de conferencia estáticas ==&lt;br /&gt;
&lt;br /&gt;
Para cambiar la clave de las salas de conferencias crear un script llamado cambioClaveConfe.sh con el siguiente contenido:&lt;br /&gt;
	&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 CLAVE=$(shuf -i 1111-9999 -n 1)&lt;br /&gt;
 &lt;br /&gt;
 echo $CLAVE&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;update CEN_SALAS_CONFERENCIAS set C_PIN='$CLAVE' WHERE C_NOMBRE='$1'&amp;quot; | mysql -u nimitz -pivivanimitz nimitz&lt;br /&gt;
 &lt;br /&gt;
 FROM=sat@mdtel.es&lt;br /&gt;
 FECHA=`date +&amp;quot;%Y%m%d%H%M%S&amp;quot;`&lt;br /&gt;
 CLIENTE=&amp;lt;PONER EL CLIENTE&amp;gt;&lt;br /&gt;
 TO=&amp;lt;DESTINATARIOS&amp;gt;&lt;br /&gt;
 ASUNTO=&amp;quot;Nueva clave en sala $1&amp;quot;&lt;br /&gt;
 CUERPO=&amp;quot;La nueva clave para la sala $1 es: $CLAVE&amp;quot;&lt;br /&gt;
 /usr/sbin/sendmail -oi -t -v -f $FROM &amp;lt;&amp;lt;EOF&lt;br /&gt;
 From: $FROM&lt;br /&gt;
 To: $TO&lt;br /&gt;
 Bcc: $BCC&lt;br /&gt;
 Subject: $ASUNTO&lt;br /&gt;
 &lt;br /&gt;
 $CUERPO&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
El script cambiará la clave de la sala pasada por parámetro por una aleatoria de 4 dígitos y la enviará por correo a los &amp;lt;DESTINATARIOS&amp;gt; (direcciones de correo electrónico separadas por coma).&lt;br /&gt;
&lt;br /&gt;
Hay que crear una tarea en /etc/crontab añadiendo una linea como la siguiente:&lt;br /&gt;
 30 6	* * 7	root	cambioClaveConfe.sh 6173&lt;br /&gt;
&lt;br /&gt;
Esto ejecutará el script todos los domingos a las 6:30 horas cambiando la clave de la sala 6173. Añadir tantas linéas como salas.&lt;br /&gt;
&lt;br /&gt;
==ZABBIX ==&lt;br /&gt;
&lt;br /&gt;
=== Como crear un TRIGGER en Zabbix ===&lt;br /&gt;
&lt;br /&gt;
'''1.''' Hay '''dos posibilidades''' dependiendo si el trigger es para un solo host o es para varios, los cuales tienen en común un template:&lt;br /&gt;
&lt;br /&gt;
:# Si es para ''un host'': Ir a '''Configuración/Hosts'''&lt;br /&gt;
:# Si es para ''un template'': Ir a '''Configuración/Templates'''&lt;br /&gt;
&lt;br /&gt;
'''2.''' En la fila correspondiente al host/template al que queramos añadirle el trigger, pulsar sobre la '''columna triggers.'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''3.''' En la ventana de triggers, pulsar sobre el botón '''Create trigger''', situado en la esquina superior derecha.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''4.''' Aparecerá la ventana de creación de triggers, que tiene los siguientes campos:&lt;br /&gt;
:1. '''Name:''' Nombre del trigger, que deberá ser lo ''suficientemente descriptivo''. Aparecerá cuando se&lt;br /&gt;
active, en la ventana principal de Zabbix así como en los correos de aviso.&lt;br /&gt;
:2. '''Expression:''' Define la fórmula cuyo resultado activará el trigger. Hay que pulsar el botón '''Add'''. Se mostrará una &lt;br /&gt;
nueva ventana donde habrá que elegir el item (medida) sobre el que se basará el trigger (evidentemente la medida deberá &lt;br /&gt;
existir previamente) y la función necesaria para el cálculo. Para una descripción de las disponibles dirigirse a &lt;br /&gt;
https://www.zabbix.com/documentation/2.2/manual/appendix/triggers/functions.&amp;lt;br/&amp;gt;&lt;br /&gt;
Tras rellenar los campos anteriores y dar a la función los valores que necesite pulsar el botón '''Insert.'''&lt;br /&gt;
:3. '''Expression constructor:''' Permite crear expresiones complejas, uniendo varias.&lt;br /&gt;
:4. '''Description:''' Una explicación del trigger&lt;br /&gt;
:5. '''Severity:''' Criticidad el trigger&lt;br /&gt;
:6. Para una descripción del resto de campos visitar la página: https://www.zabbix.com/documentation/2.2/manual/config/triggers/trigger&lt;br /&gt;
'''5.''' Tras rellenar los campos, pulsar el botón '''Save'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''6.''' Si el trigger se ha añadido en un template, aparecerá en todos los hosts que tienen el template configurado.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''7.''' '''El trigger por si solo no envía ningún aviso''', solo se activa si se cumple la expresión definida.&lt;br /&gt;
Para enviar un aviso (normalmente un correo electrónico) cuando se active el trigger, será necesario definir una acción (Configuración/Actions).&lt;br /&gt;
&lt;br /&gt;
 '''NOTA.-''' Para consultar cualquier cuestión relativa a Zabbix, se encuentra a su disposición el manual: &amp;lt;br/&amp;gt;&lt;br /&gt;
 https://www.zabbix.com/documentation/2.2/manual&lt;br /&gt;
&lt;br /&gt;
=== Monitorización en Zabbix de un trunk caído ===&lt;br /&gt;
Para monitorizar un o varios trunk por separado y saber el estado de cada uno es necesario lo siguiente: &lt;br /&gt;
&lt;br /&gt;
*Añadir el UserParameter adjunto que contiene el siguiente texto:&lt;br /&gt;
&lt;br /&gt;
 UserParameter=asterisk.trunkEstado[*],sudo /usr/sbin/asterisk -rx 'sip show peers' | grep  --text -i '$1' |  grep OK &amp;gt;/dev/null; if [ $? -eq 0 ]; then echo 1; else echo 0; fi&lt;br /&gt;
&lt;br /&gt;
*Añadir en el portal de zabbix un item por cada trunk. En el campo Key se pondrá &amp;quot;asterisk.trunkEstado[nombre_trunk]&amp;quot;, donde nombre_trunk es el nombre del trunk tal y como se ve en Asterisk.&lt;br /&gt;
[[File:zabbix_item_trunkEstado.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Crear un trigger que avise cuando el último valor sea 0. Por ejemplo:&lt;br /&gt;
 {corp-bdtr:asterisk.trunkEstado[PrePro-ACD].last()}=0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:zabbix_trigger_trunkEstado.png]]&lt;br /&gt;
&lt;br /&gt;
== Agendas en terminales Yealink ==&lt;br /&gt;
En la agenda se mostrará como nombre lo que contenga el campo CEN_AGENDAS.C_NOMBRE_MOSTRAR y como teléfono el indicado en CEN_AGENDAS_TELEFONOS.C_TELEFONO&lt;br /&gt;
Para hacer funcionar la agenda:&lt;br /&gt;
&lt;br /&gt;
*En el archivo de aprovisionamiento correspondiente (Yealink-XXXX-comun.cfg) establecer los siguientes parámetros:&lt;br /&gt;
&lt;br /&gt;
    remote_phonebook.data.1.url = http://&amp;lt;direc IP&amp;gt;/vivait-agenda/yealink/contactData1.xml &lt;br /&gt;
    remote_phonebook.data.1.name = NOMBRE DE LA AGENDA EN EL TELEFONO&lt;br /&gt;
&lt;br /&gt;
*En el archivo /etc/apache2/apache2.conf añadir tras el último Directory:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Directory /var/www/html/vivait-agenda/&amp;gt;&lt;br /&gt;
             AddType application/x-httpd-php .xml&lt;br /&gt;
             Options Indexes FollowSymLinks MultiViews&lt;br /&gt;
             AllowOverride None&lt;br /&gt;
             Order allow,deny&lt;br /&gt;
             allow from all&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Ejecutar el comando:&lt;br /&gt;
&lt;br /&gt;
    /etc/init.d/apache2 reload&lt;br /&gt;
&lt;br /&gt;
== Calendarios ==&lt;br /&gt;
&lt;br /&gt;
=== Enrutamiento inteligente ===&lt;br /&gt;
&lt;br /&gt;
Ante una llamada a un destino, si hay cita de ocupado en el calendario se desvia al número indicado en el campo &amp;quot;location&amp;quot; del calendario o a su buzon de voz si hay valor en dicho campo&lt;br /&gt;
&lt;br /&gt;
 same =&amp;gt; n,Set(CalendarBusy=${CALENDAR_BUSY(GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,Set(id=${CALENDAR_QUERY(GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,NoOP(hay ${CALENDAR_QUERY_RESULT(${id},getnum)} eventos)&lt;br /&gt;
 same =&amp;gt; n,Verbose(3,The state of GoogleCalendar is $&lt;br /&gt;
 {DEVICE_STATE(Calendar:GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,Set(CalendarLocation=${CALENDAR_QUERY_RESULT(GoogleCalendar,location)})&lt;br /&gt;
 same =&amp;gt; n,GotoIf($[&amp;quot;${CalendarBusy}&amp;quot;==&amp;quot;1&amp;quot;]?:conCategoria)&lt;br /&gt;
 same =&amp;gt; n,GotoIf($[&amp;quot;${CalendarLocation}&amp;quot;==&amp;quot;&amp;quot;]?buzon)&lt;br /&gt;
 same =&amp;gt; n,Goto(Cen_iniLlam,${CalendarLocation},1)&lt;br /&gt;
 same =&amp;gt; n(buzon),Playback(Particular/buzon)&lt;br /&gt;
 same =&amp;gt; n,Hangup&lt;br /&gt;
 same=&amp;gt; n(conCategoria),Goto(Cen_iniLlam,${EXTEN},1)&lt;br /&gt;
&lt;br /&gt;
=== Conexión de cliente Outlook a calendarios VIVAit mediante Caldav===&lt;br /&gt;
Por defecto, el cliente outlook no soporta Caldav; si queremos disponer de calendarios de VIVAit en Outlook tendríamos dos opciones:&lt;br /&gt;
# Tener los calendarios en el servidor Exchange&lt;br /&gt;
# Instalar un plugin en el cliente outlook que permita conectar vía Caldav los calendarios que estén ubicados en el servidor de calendarios de VIVAit&lt;br /&gt;
&lt;br /&gt;
Este howto se centra en esta segunda posibilidad&lt;br /&gt;
&lt;br /&gt;
Procedimiento: &lt;br /&gt;
&lt;br /&gt;
1.- Instalar Calldavsincronizer (valdrían otros plugin de Caldav para Outlook)&lt;br /&gt;
&lt;br /&gt;
[https://sourceforge.net/projects/outlookcaldavsynchronizer/ https://sourceforge.net/projects/outlookcaldavsynchronizer/]&lt;br /&gt;
&lt;br /&gt;
2.- Entrar en Synchronization Profiles en la nueva pestaña Calldav Syncronizer de outlook       [[File:Syncronizer.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.- Añadir nuevo perfil (tecla +)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Nuevo.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A tener en cuenta:&lt;br /&gt;
&lt;br /&gt;
*Crear un nuevo “Outlook folder”, entendemos que es adecuado (quizás necesario) para que las entradas de calendario de VIVAit queden diferenciadas.&lt;br /&gt;
*Lo mejor es haber creado antes el calendario en el servidor para que al darlo de alta en oulook comprobemos que se conecta.&lt;br /&gt;
*Dando al botón “Test or discover settings” se nos muestran todos los calendarios del servidor y elegimos el que queramos; en “elementos de la carpeta” diremos “elementos de calendario”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Calendario.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
== Uso de reloj hardware en nodos de procesamiento ==&lt;br /&gt;
&lt;br /&gt;
=== En nodo de procesamiento ACD ===&lt;br /&gt;
En un nodo de procesamiento ACD es obligatorio instalar dahdi y una tarjeta de primario para emplear reloj hardware, ya que el reloj software que va en el asterisk 1.4 es defectuoso.&lt;br /&gt;
Para configurarlo basta con instalar la tarjeta en el servidor, instalar dahdi y posteriormente ejecutar el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
 dahdi_cfg&lt;br /&gt;
&lt;br /&gt;
Este comando generaŕa el fichero /etc/dahdi/system.conf&lt;br /&gt;
&lt;br /&gt;
Para comprobar que el comando se ha ejecutado satisfactoriamente lo abriremos y tendrá que tener un formato semejante al siguiente ejemplo:&lt;br /&gt;
&lt;br /&gt;
 # Autogenerated by /usr/sbin/dahdi_genconf on Tue Oct 22 17:42:59 2013&lt;br /&gt;
 # If you edit this file and execute /usr/sbin/dahdi_genconf again,&lt;br /&gt;
 # your manual changes will be LOST.&lt;br /&gt;
 # Dahdi Configuration File&lt;br /&gt;
 #&lt;br /&gt;
 # This file is parsed by the Dahdi Configurator, dahdi_cfg&lt;br /&gt;
 #&lt;br /&gt;
 # Span 1: WCT1/0 &amp;quot;Digium Wildcard TE110P T1/E1 Card 0&amp;quot; HDB3/CCS/CRC4&lt;br /&gt;
 span=1,1,0,ccs,hdb3,crc4&lt;br /&gt;
 # termtype: te&lt;br /&gt;
 bchan=1-15,17-31&lt;br /&gt;
 dchan=16&lt;br /&gt;
 echocanceller=oslec,1-15,17-31&lt;br /&gt;
 # Global data&lt;br /&gt;
 loadzone        = es&lt;br /&gt;
 defaultzone     = es&lt;br /&gt;
&lt;br /&gt;
=== En nodo de procesamiento de corporativa ===&lt;br /&gt;
En un nodo de procesamiento de corporativa no obligatorio instalar dahdi y una tarjeta de primario para emplear reloj hardware, ya que el no se han detectado errores en el reloj por software. Sin embargo si instalamos dahdi y una tarjeta de primario para emplear reloj hardware, el sistema funcionará mejor.&lt;br /&gt;
Para configurarlo basta con instalar la tarjeta en el servidor, instalar dahdi y posteriormente ejecutar el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
 dahdi_cfg&lt;br /&gt;
&lt;br /&gt;
Este comando generaŕa el fichero /etc/dahdi/system.conf&lt;br /&gt;
&lt;br /&gt;
Para comprobar que el comando se ha ejecutado satisfactoriamente lo abriremos y tendrá que tener un formato semejante al siguiente ejemplo:&lt;br /&gt;
&lt;br /&gt;
 # Autogenerated by /usr/sbin/dahdi_genconf on Tue Oct 22 17:42:59 2013&lt;br /&gt;
 # If you edit this file and execute /usr/sbin/dahdi_genconf again,&lt;br /&gt;
 # your manual changes will be LOST.&lt;br /&gt;
 # Dahdi Configuration File&lt;br /&gt;
 #&lt;br /&gt;
 # This file is parsed by the Dahdi Configurator, dahdi_cfg&lt;br /&gt;
 #&lt;br /&gt;
 # Span 1: WCT1/0 &amp;quot;Digium Wildcard TE110P T1/E1 Card 0&amp;quot; HDB3/CCS/CRC4&lt;br /&gt;
 span=1,1,0,ccs,hdb3,crc4&lt;br /&gt;
 # termtype: te&lt;br /&gt;
 bchan=1-15,17-31&lt;br /&gt;
 dchan=16&lt;br /&gt;
 echocanceller=oslec,1-15,17-31&lt;br /&gt;
 # Global data&lt;br /&gt;
 loadzone        = es&lt;br /&gt;
 defaultzone     = es&lt;br /&gt;
&lt;br /&gt;
== Aprovisionamiento terminales Cisco ==&lt;br /&gt;
=== Configurar protocolo SIP TCP o UDP en terminal Cisco ===&lt;br /&gt;
&lt;br /&gt;
Configuración de terminal Cisco para para funcionar bajo TCP o UDP:&lt;br /&gt;
Modificar parámetro&lt;br /&gt;
 &amp;lt;transportLayerProtocol&amp;gt;X&amp;lt;/transportLayerProtocol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde X es:&lt;br /&gt;
    1: TCP&lt;br /&gt;
    2: UDP&lt;br /&gt;
    4: Valor por defecto del firmware (al menos en la última versión equivale a TCP)&lt;br /&gt;
&lt;br /&gt;
=== Habilitar/Deshabilitar llamada en espera en terminales Cisco ===&lt;br /&gt;
&lt;br /&gt;
En el fichero de aprovisionamiento del terminal añadiremos la siguiente linea&lt;br /&gt;
 &amp;lt;callWaiting&amp;gt;X&amp;lt;/callWaiting&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde X es:&lt;br /&gt;
   0=off but can be changed through the settings menu.&lt;br /&gt;
   1=on but can be changed through the settings menu.&lt;br /&gt;
   2=off and locked so it can't be changed through the settings menu.&lt;br /&gt;
   3=on and locked so it can't be changed through the settings menu.&lt;br /&gt;
&lt;br /&gt;
== Como configurar servicio DHCP en Ubuntu Linux ==&lt;br /&gt;
'''¿Que es un servicio DHCP?'''&lt;br /&gt;
&lt;br /&gt;
Un servidor Dynamic Host Configuration Protocol (DHCP) asigna dinámicamente las direcciones IP y otras configuraciones de red a otros terminales que están conectados a la red.&lt;br /&gt;
&lt;br /&gt;
'''Instalar un servicio DHCP'''&lt;br /&gt;
&lt;br /&gt;
Para instalar el servidor de asignacion automatica de direccion IP ejecutamos el comando:&lt;br /&gt;
 sudo apt-get install isc-dhcp-server&lt;br /&gt;
&lt;br /&gt;
'''Configurando el servicio DHCP'''&lt;br /&gt;
&lt;br /&gt;
Editamos el archivo /etc/dhcp/dhcpd.conf creando primero un backup del mismo:&lt;br /&gt;
 mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.original&lt;br /&gt;
 nano /etc/dhcp/dhcpd.conf&lt;br /&gt;
&lt;br /&gt;
El archivo debe quedar de una forma muy similar a esta:&lt;br /&gt;
 authoritative&lt;br /&gt;
 subnet  10.254.239.0 netmask 255.255.255.254&lt;br /&gt;
 {&lt;br /&gt;
 range dynamic-bootp  10.254.239.40 10.254.239.60;&lt;br /&gt;
 option domain-name-servers ns1.example.org, ns2.example.org;&lt;br /&gt;
 option domain-name &amp;quot;example.org&amp;quot;;&lt;br /&gt;
 option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org ;&lt;br /&gt;
 option broadcast-address 10.254.239.255;&lt;br /&gt;
 default-lease-time 3600;&lt;br /&gt;
 max-lease-time 7200;&lt;br /&gt;
 option option-150 10.254.239.25&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Donde los campos:&lt;br /&gt;
*subnet: Direccion de red&lt;br /&gt;
*netmask: Máscara de red&lt;br /&gt;
*range dynamic-bootp: Rango de IPs que va a proporcionar el DHCP&lt;br /&gt;
*option domain-name-servers: Direcciones IPs de los DNS&lt;br /&gt;
*option domain-name: Nombre de dominio&lt;br /&gt;
*option routers:IPs de las puertas de enlace&lt;br /&gt;
*option broadcast-address: Dirección de broadcast&lt;br /&gt;
*default-lease-time: Tiempo de concesión por defecto&lt;br /&gt;
*max-lease-time: Valor máximo del tiempo de concesión&lt;br /&gt;
*option option-150: IPs de los servidores TFTPs que tiene la red&lt;br /&gt;
&lt;br /&gt;
'''Reiniciamos el servicio'''&lt;br /&gt;
&lt;br /&gt;
 service isc-dhcp-server restart&lt;br /&gt;
&lt;br /&gt;
'''Direcciones IP estáticas basadas en la MAC'''&lt;br /&gt;
&lt;br /&gt;
Pueden conocerse las MAC de las máquinas conectadas a la red ejecutando el comando arp desde la terminal.&lt;br /&gt;
&lt;br /&gt;
 host ejemplo {&lt;br /&gt;
        hardware ethernet 00:0B:82:19:A8:04;&lt;br /&gt;
        option option-150 10.254.239.0;&lt;br /&gt;
 #      fixed-address 10.254.239.52;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Protocolo Skinny en VIVAit Call mediante uso de Chan-SCCP ==&lt;br /&gt;
'''Instalación de chan_sccp'''&lt;br /&gt;
&lt;br /&gt;
*Copiar el fichero chan-sccp-4.2.1.1.tar.gz en el directorio donde estén los fuentes de Asterisk (normalmente /usr/src/MDtel)&lt;br /&gt;
*Descomprimir&lt;br /&gt;
*Entrar al directorio chan-sccp-4.2.1.1&lt;br /&gt;
*Ejecutar: ./configure --with-asterisk=../DIRECTORIO_ASTERISK --enable-conference. Donde DIRECTORIO_ASTERISK es el nombre del directorio donde están los fuentes de asterisk.&lt;br /&gt;
*Tras el ejecutar el configure (si todo va bien al final se verá un resumen con el S.O, arquitectura, etc), ejecutar make y make install&lt;br /&gt;
*El nuevo módulo chan_sccp.so se generará dentro del DIRECTORIO_ASTERISK en lib/asterisk/modules/ y se deberá copiar en /usr/lib/asterisk/modules/&lt;br /&gt;
*Copiar el fichero sccp.conf a /etc/asterisk&lt;br /&gt;
*Entra a Asterisk y ejecutar: module load chan_sccp.so&lt;br /&gt;
*Si se ha cargado correctamente, desde dentro de Asterisk, si se teclea sccp show version deberá devolver: &amp;quot;Skinny Client Control Protocol (SCCP). Release: 4.3.0 4.3.0 - unknown (built by 'root' on '2016-06-01 10:42:32 UTC')&amp;quot;&lt;br /&gt;
&lt;br /&gt;
'''Crear extensiones'''&lt;br /&gt;
&lt;br /&gt;
*En el portal crear una nueva clase de dispositivo (Vivait-Call/Dispositivos/Clases de dispositivos), donde la clase sea extensión la subclase H323 (todavía no existe la subclase SCCP) y el formato SCCP/${DEST}&lt;br /&gt;
*Crear la nueva extensión, pero el dispositivo debe ser el creado en el campo anterior.&lt;br /&gt;
*Las extensiones creadas habrá que añadirlas al fichero sccp.conf así como los teléfonos que las usarán. En el fichero sccp.conf incluido hay ejemplos.&lt;br /&gt;
&lt;br /&gt;
'''Aprovisionamiento'''&lt;br /&gt;
Los terminales se aprovisionan de la misma manera que los SIP, exceptuando que las plantillas XML no tiene referencias a SIP. Se incluye un xml genérico con todas las opciones.&lt;br /&gt;
Dentro del directorio chan-sccp-4.2.1.1 hay un directorio conf con todos los archivos de configuración necesarios. Las versiones annotated contienen todas las opciones posibles comentadas.&lt;br /&gt;
&lt;br /&gt;
== Instalación y configuración Postfix en RedHat7 ==&lt;br /&gt;
&lt;br /&gt;
'''Postfix''' es un ''servidor de correo'' de software libre/código abierto, un programa informático para el enrutamiento y envío de correo electrónico.&lt;br /&gt;
&lt;br /&gt;
'''Instalación'''&lt;br /&gt;
&lt;br /&gt;
 yum install postfix&lt;br /&gt;
&lt;br /&gt;
'''Configuración'''&lt;br /&gt;
&lt;br /&gt;
Sobre la configuración de postfix por defecto (recién instalado):&lt;br /&gt;
Editar el fichero /etc/postfix/main.cf&lt;br /&gt;
 inet_protocols = ipv4&lt;br /&gt;
 relayhost = smtp.renfe.es&lt;br /&gt;
Revisar la configuración:&lt;br /&gt;
 postfix check&lt;br /&gt;
Configurar postfix como servicio (sólo en redhat y similares)&lt;br /&gt;
 chkconfig postfix on&lt;br /&gt;
Iniciar postfix:&lt;br /&gt;
 service postfix start&lt;br /&gt;
Instalar mailx para disponer de los comandos mail y sendmail:&lt;br /&gt;
 yum install mailx&lt;br /&gt;
Probar configuración:&lt;br /&gt;
 echo &amp;quot;Prueba de correo&amp;quot; | mail -vs &amp;quot;Prueba&amp;quot; correo@destino.soy&lt;br /&gt;
&lt;br /&gt;
== FOP2 ==&lt;br /&gt;
&lt;br /&gt;
=== Como mostrar callername queues FOP2 ===&lt;br /&gt;
&lt;br /&gt;
Es necesario añadir el siguiente código al contexto de entrada:&lt;br /&gt;
&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Connect connid localhost usuario clave bd)&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Query resultid ${connid} SELECT\ firstname\,lastname\ from\ fop2\ where\ phone1=${CALLERID(num)}\ OR\ phone2=${CALLERID(num)})&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Fetch fetchid ${resultid} nombre apellidos)&lt;br /&gt;
 exten =&amp;gt; _X.,n,GotoIf($[${fetchid} = 1]?:noExiste)&lt;br /&gt;
 exten =&amp;gt; _X.,n,Set(CALLERID(name)=${nombre}${apellidos})&lt;br /&gt;
 exten =&amp;gt; _X.,n(noExiste),Continuar&lt;br /&gt;
&lt;br /&gt;
En la primera línea cambiar según lo necesario:&lt;br /&gt;
&lt;br /&gt;
*localhost: Dirección IP del servidor de MySQL donde está la BBDD de FOP2&lt;br /&gt;
*usuario: Usuario con permisos de acceso a la bbdd de FOP2&lt;br /&gt;
*clave: Clave del usuario&lt;br /&gt;
*bd: Nombre de la BBDD&lt;br /&gt;
&lt;br /&gt;
=== FOP2. Problemas en transferencias asistidas ===&lt;br /&gt;
&lt;br /&gt;
 Para habilitar la transferencia atendida del asterisk (funcion atxfer), hay que poner la opción tT en el queue() si la llamada origen &lt;br /&gt;
 la realiza a una cola o  al dial() de las extensiones.&lt;br /&gt;
 Con eso vemos como al intentar hacer la llamada de consulta ya se va a nuestro dialplan. Sin embargo la llamada no funciona ya que &lt;br /&gt;
 el enrutador nos da error de  enrutamiento porque no tenemos ID_DISPOSITIVO origen ya que el fop no es un elemento creado desde el portal.&lt;br /&gt;
 Por lo que se propone como solución crear un contexto de inicio del fop y asignarle un ID_DISPOSITIVO para que así se enrute la llamada. &lt;br /&gt;
 El contexto tienen que ser similar a ext_InicioLlamada_Chrome.conf&lt;br /&gt;
&lt;br /&gt;
Para que funcione las transferencias supervisadas desde el fop2 hay que realizar lo siguiente:&lt;br /&gt;
&lt;br /&gt;
*El usuario del manager debe tener permisos Atxfer para poder realizar transferencias.&lt;br /&gt;
*Habilitar la transferencia atxfer en el fuatures.conf del asterisk. atxfer =&amp;gt; *2&lt;br /&gt;
*Crear el fichero ext_InicioLlamada_FOP.conf con el siguiente contenido:&lt;br /&gt;
&lt;br /&gt;
 [Cen_Inicio_FOP]&lt;br /&gt;
 exten =&amp;gt; [*#%0-9].,1,NoOp(MDINICHR**EXTEN=${EXTEN}**CID=${CHROME_ANI}*)&lt;br /&gt;
 same =&amp;gt; n,dumpchan()&lt;br /&gt;
 ;same =&amp;gt; n,Set(CALLERID=${CHROME_ANI})&lt;br /&gt;
 same =&amp;gt; n,Gosub(Cen_Sub_getIdExtension,s,1(${R_CID_NUM_00}))&lt;br /&gt;
 same =&amp;gt; n,ExecIf($[&amp;quot;${GOSUB_RETVAL}&amp;quot;!=&amp;quot;OK&amp;quot; | &amp;quot;${sqlDato}&amp;quot;=&amp;quot;&amp;quot;]?HangUp)&lt;br /&gt;
 same =&amp;gt; n,Set(ID_DISPOSITIVO=${sqlDato})&lt;br /&gt;
 ; . Modificar MARCAR en funcion de reglas de marcacion saliente (prefijo 0, ...)&lt;br /&gt;
 ; Esto se modificara en el contexto Cen_Inicio_Chrome_Particular&lt;br /&gt;
 same =&amp;gt; n,Set(MARCAR=${EXTEN})&lt;br /&gt;
 ;---------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ;--- Llamada a contexto particular&lt;br /&gt;
 ;---------------------------------&lt;br /&gt;
 ; Esta llamada es para hacer cosas especificas del cliente (cambiar callerid...)&lt;br /&gt;
 ; La subrutina Cen_Inicio_Chrome_Particular esta en el archivo ext_InicioLlamada_Chrome_Particular.conf&lt;br /&gt;
 ; Si no existe el archivo copiar el archivo ext_InicioLlamada_Chrome_Particular.conf.ejemplo como ext_Inicio_Chrome_Particular.conf&lt;br /&gt;
 ; y realizar las modificaciones necesarias&lt;br /&gt;
 ; El fichero ext_InicioLlamada_Chrome_Particular.conf se carga automaticamente al ser creado con el include de ext_InicioLlamada.conf&lt;br /&gt;
 ; #include &amp;quot;ext_InicioLlamada*.conf&amp;quot;&lt;br /&gt;
 ;&lt;br /&gt;
 same =&amp;gt; n,GosubIf($[${DIALPLAN_EXISTS(Cen_Inicio_FOP_Particular,${EXTEN},1)}&amp;gt;0]?Cen_Inicio_FOP_Particular,${EXTEN},1)&lt;br /&gt;
 same =&amp;gt; n,Goto(Cen_Inicio_SIP,${MARCAR},1)&lt;br /&gt;
&lt;br /&gt;
*En el fichero /usr/local/fop2/buttons.cfg poner como contexto de las extensiones el creado anteriormente (Cen_Inicio_FOP)&lt;br /&gt;
*Modificar el fichero /usr/local/fop2/fop2.cfg:&lt;br /&gt;
&lt;br /&gt;
 blind_transfer = 0&lt;br /&gt;
 supervised_transfer = 1&lt;br /&gt;
&lt;br /&gt;
Para realizar la transferencia con consulta, hay que pulsar el supervised transfer del FOP2 y una vez se haya establecido la llamada, seleccionar la extensión que &amp;quot;sobra&amp;quot; en la conversación y pulsar la tecla de hangup y colgar la llamada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Como ver los directorios de un NAS a montar con NFS ==&lt;br /&gt;
&lt;br /&gt;
Con el siguiente comando vemos los diferentes volúmenes de un NAS:&lt;br /&gt;
&lt;br /&gt;
 showmount -e IP_NAS&lt;br /&gt;
&lt;br /&gt;
Ejemplo de salida:&lt;br /&gt;
&lt;br /&gt;
 Export list for 192.168.10.10:&lt;br /&gt;
 /Backup/backup       *&lt;br /&gt;
 /DISCOS_1/VOL1_AUDIO *&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Instalación de ActivaSTP con VIVAit Call 3 y marcación desde Outlook ==&lt;br /&gt;
&lt;br /&gt;
Instalamos ActivaSTP desde:&lt;br /&gt;
 &lt;br /&gt;
 (http://activa.sourceforge.net/)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- *SIPTAPI, según la pagina Web, su ultima versión publicada es del 2014 con versión 0.2.17 (http://activa.sourceforge.net/)&lt;br /&gt;
&lt;br /&gt;
Hemos probado con http://www.xtelsio.com/en/products/ast_tsp/tapi_for_asterisk.htm.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La configuración necesaria se muestra en la siguiente imagen:&lt;br /&gt;
&lt;br /&gt;
[[File:Ventana ActivaTSP.jpg]]&lt;br /&gt;
&lt;br /&gt;
 El usuario del manager debe tener permisos originate para poder realizar llamadas.&lt;br /&gt;
&lt;br /&gt;
Se han realizado pruebas con Outlook 2013.&lt;br /&gt;
&lt;br /&gt;
Se ha comprobado la correcta realización de pruebas utilizando ActivaSTP, realizadon llamadas desde la pestaña &amp;quot;personas&amp;quot; con la vista en modo tarjeta de Pesentación, tarjeta, teléfono o lista.&lt;br /&gt;
&lt;br /&gt;
Outlook 2013 no da la opción de llamar si la vista está en modo personas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Como volver a procesar grabaciones con error ==&lt;br /&gt;
&lt;br /&gt;
Las grabaciones con error son aquellas que tienen el valor E_GRABACION=120 en la tabla DAT_GRABACIONES.&lt;br /&gt;
&lt;br /&gt;
Las grabaciones con error se producen normalmente por la pérdida de conexión entre el nodo servidor de grabaciones y el resto.&lt;br /&gt;
&lt;br /&gt;
Para reprocesar la grabación hay que modificar el campo E_GRABACION de la tabla DAT_GRABACIONES y ponerlo con valor 20 para que así el recordCentral la vuelva a procesar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Problemas de conmutación en cluster ==&lt;br /&gt;
El problema detectado fue que en la conmutacion de maquinas en el cluster cuando el control lo tiene la maquina 2 no funciona el servicio phoneprov-tftp.&lt;br /&gt;
&lt;br /&gt;
Hay que hacer las siguientes comprobaciones:&lt;br /&gt;
&lt;br /&gt;
 Que el directorio /var/lib/phoneprov-tftp esté en la partición /HDcluster&lt;br /&gt;
 Que fichero /etc/MDtel/phoneprov-tftp esté puesta como IP de la máquina la IP flotante del cluster (campo $dbHost)&lt;br /&gt;
 Que el servicio phoneprov-tftp del directorio /usr/local/sbin/phoneprov-tftp.pl tenga permisos de ejecución 755&lt;br /&gt;
 Que exista el fichero /etc/init/phoneprov-tftp.conf&lt;br /&gt;
&lt;br /&gt;
Para más información ver los log del phoneprov en /var/log/phoneprov-tftp.log&lt;br /&gt;
&lt;br /&gt;
El problema era que no se encontraba instalado el paquete phoneprov-tftp, hay que instalarlo manualmente. Instalar el paquete libnet-tftpd-perl.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Como borrar contenido de la tabla BDTR con el script borraRegistrosNimitz.pl ==&lt;br /&gt;
&lt;br /&gt;
Este script se ejecuta mediante una tarea del crontab, tal como la siguiente:&lt;br /&gt;
&lt;br /&gt;
 SHELL=/bin/sh&lt;br /&gt;
 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin&lt;br /&gt;
 # m h dom mon dow user  command&lt;br /&gt;
 00 01     * * *   root    /usr/local/sbin/borraRegistrosNimitz.pl --hDB localhost&lt;br /&gt;
&lt;br /&gt;
Para establecer el número de días que vamos a dejar en la base de datos debemos editar el archivo borraRegistrosNimitz.pl, el campo my $numDias.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ocasionalmente No saltan los formularios en  '''VIVAit Suite''' cuando existen marcadores ==&lt;br /&gt;
En los sistemas con marcadores, se ha observado que, en un porcentaje muy bajo, cuando entra una llamada a un agente no se presenta el formulario. &lt;br /&gt;
En una traza del vivait-desk se pudo comprobar que no había eventos CTI de la llamada, pero telefónicamente la llamada si quedaba establecida.&lt;br /&gt;
&lt;br /&gt;
El problema viene ocasionado porque el CTI tiene auditorías para descartar llamadas,evitando que se queden enganchadas.&lt;br /&gt;
&lt;br /&gt;
Una de esas auditorías es el tiempo máximo de las llamadas no contestadas.&lt;br /&gt;
&lt;br /&gt;
El marcador tiene puesto a fuego que el tiempo que permanece una llamada en cola a la espera de un agente libre es de 10 minutos.&lt;br /&gt;
&lt;br /&gt;
Hay que poner el tiempo de auditoría en un valor superior (por ejemplo 12 minutos)&lt;br /&gt;
&lt;br /&gt;
En el archivo de configuración '''vivait-cti.conf'''&lt;br /&gt;
&lt;br /&gt;
 audit_call_minutNoContestada = 12&lt;br /&gt;
&lt;br /&gt;
El paŕametro audit_call_minutContestada, es el tiempo que el cti &amp;quot;conserva&amp;quot; una llamada, dado que el dialplan tiene puesto el timeout absolute a 7200 (120 minutos), deberiamos modificar este parámetro para que esté sincronizado&lt;br /&gt;
&lt;br /&gt;
 audit_call_minutContestada = 120&lt;br /&gt;
&lt;br /&gt;
Estos cambios se implementarán en el instalador de la próxima versión.&lt;br /&gt;
&lt;br /&gt;
== Generación de un Core ==&lt;br /&gt;
Un Core es la memoria de un programa.&lt;br /&gt;
&lt;br /&gt;
Para generar un Core rápido con Asterisk hay que hacer lo siguiente:&lt;br /&gt;
&lt;br /&gt;
    Ejecutar ps aux | grep asterisk y coger el PID del programa&lt;br /&gt;
    gdb /usr/sbin/asterisk [PID]&lt;br /&gt;
    gcore [file]&lt;br /&gt;
&lt;br /&gt;
== Activación de la movilidad para un usuario ==&lt;br /&gt;
&lt;br /&gt;
Una vez configurada la movilidad e intentar activarla nos da error cuando le ponemos el usuario y la contraseña.&lt;br /&gt;
&lt;br /&gt;
La configuración del usuario es la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[File:Problema.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para que la movilidad funcione hay que asignar un teléfono a la extensión, quedando la configuración de esta manera:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Asignacion_de_telefono.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Como se muestra el número llamante en transferencia desde operadora ==&lt;br /&gt;
Para tener el número ANI en las transferencias con consulta hay que realizar lo siguiente:&lt;br /&gt;
 Copiar el archivo adjunto (app_esConsulta.c) en el directorio apps de Asterisk (normalmente /usr/src/vivait-call/asterisk/apps).&lt;br /&gt;
    Situarse en el directorio raiz de Asterisk (normalmente /usr/src/vivait-call/asterisk/).&lt;br /&gt;
    Compilar: make&lt;br /&gt;
    Instalar: make install&lt;br /&gt;
    Habilitar el nuevo módulo: asterisk -rx 'module load app_esConsulta.so'&lt;br /&gt;
    Si la carga del módulo no funcionara, hay que el reiniciar Asterisk para que cargue el módulo.&lt;br /&gt;
&lt;br /&gt;
Posteriormente modificar el fichero ext_Enrutador_Particular.conf de la siguiente forma:&lt;br /&gt;
&lt;br /&gt;
 [Cen_Enrutador_Particular]&lt;br /&gt;
 exten =&amp;gt; [*#%0-9].,1,NoOp(MDENRUPAR**EXTEN=${EXTEN}**CID=${CALLERID(NUM)}*)&lt;br /&gt;
 same =&amp;gt;           n,NoOp(calleridAntes=${CALLERID(num)})&lt;br /&gt;
 same =&amp;gt;           n,esConsulta&lt;br /&gt;
 same =&amp;gt;           n,GotoIf($[&amp;quot;${consultaANI}&amp;quot;=&amp;quot;&amp;quot;]?noConsulta)&lt;br /&gt;
 ;same =&amp;gt;           n,Set(CALLERID(name)=\Transfer:${consultaANI}\)&lt;br /&gt;
 same =&amp;gt;            n,Set(_R_CID_NUM_00=${consultaANI})&lt;br /&gt;
 same =&amp;gt;           n,GotoIf($[&amp;quot;${consultaNOM}&amp;quot;=&amp;quot;&amp;quot;]?noNom)&lt;br /&gt;
 ;same =&amp;gt;           n,Set(CALLERID(name)=\Transfer:${consultaNOM}\)&lt;br /&gt;
 same =&amp;gt;            n,Set(_R_CID_NAME_00=${consultaNOM})&lt;br /&gt;
 same =&amp;gt;           n(noNom),Set(_R_CID_NUM_00=${consultaANI})&lt;br /&gt;
 same =&amp;gt;           n,NoOp(callerIDdespues=${CALLERID(num)})&lt;br /&gt;
 same =&amp;gt;           n(noConsulta),NoOP(noConsulta)&lt;br /&gt;
 ;same =&amp;gt;           n,Set(CALLERID(num)=${consultaANI})&lt;br /&gt;
 same =&amp;gt;            n,Return&lt;br /&gt;
&lt;br /&gt;
En caso de que ya haya algo añadido en el fichero, hay que analizar en que posición se pondrá el contenido anterior para que no se vea modificado el funcionamiento de la centralita&lt;br /&gt;
&lt;br /&gt;
== Como conseguir que los tonos dtmf no sean regenerados por Asterisk ==&lt;br /&gt;
&lt;br /&gt;
Para que los tonos dtmf no sean regenerados por Asterisk hay que:&lt;br /&gt;
&lt;br /&gt;
 cd /usr/src/MDtel/asterisk/apps/&lt;br /&gt;
 cp /tmp/app_setoption.c .&lt;br /&gt;
 ls -l app_setoption.c&lt;br /&gt;
 cd ..&lt;br /&gt;
 make menuconfig (comprobar que todo está bien)&lt;br /&gt;
 make (comprobar que compila la nueva app)&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EJEMPLO: los tonos dtmf entran por &amp;quot;Trunk_GW_MAQUETAS&amp;quot; y va a la extensión 4175.&lt;br /&gt;
&lt;br /&gt;
Creamos un nuevo contexto por el trunk de entrada que queremos activar esta opción (o lo aplicamos a todos si procede, dependerá de cada instalación)&lt;br /&gt;
&lt;br /&gt;
'''PARA LA ENTRADA:'''&lt;br /&gt;
    sip_trunkExt_WEB.conf&lt;br /&gt;
        Trunk_GW_MAQUETAS&lt;br /&gt;
            context=Cen_Inicio_TrunkSip_Maqueta&lt;br /&gt;
            dtmfmode=inband&lt;br /&gt;
            directmedia=no&lt;br /&gt;
            disallow=all&lt;br /&gt;
            allow=alaw&lt;br /&gt;
&lt;br /&gt;
    ext_InicioLlamada_TrunkSIP_Particular.conf&lt;br /&gt;
        [Cen_Inicio_TrunkSip_Maqueta]&lt;br /&gt;
            exten =&amp;gt; _X.,1,NoOp(MDINITRUNSIPPAR**EXTEN=${EXTEN}**CID=${CALLERID(NUM)}*)&lt;br /&gt;
            same =&amp;gt;            n,SetChannelOption(14,0)&lt;br /&gt;
            same =&amp;gt;            n,Goto(Cen_Inicio_TrunkSip,${EXTEN},1)&lt;br /&gt;
            same =&amp;gt;            n,Return()&lt;br /&gt;
            &lt;br /&gt;
'''PARA LA SALIDA:'''&lt;br /&gt;
    ext_MARCAR_Extension_Dial.conf&lt;br /&gt;
        [Cen_Marcar_Extension_Dial_Gosub]&lt;br /&gt;
             same =&amp;gt;  n,ExecIf($[&amp;quot;${PASARTONOS}&amp;quot;=&amp;quot;1&amp;quot;]?SetChannelOption(14,0))    (AÑADIMOS)&lt;br /&gt;
             &lt;br /&gt;
     sip_WEB.conf&lt;br /&gt;
        El peer debe tener:&lt;br /&gt;
            PASARTONOS =&amp;gt; 1     ;Variable declarada para el contexto ext_MARCAR_Externo_Dial en la macro&lt;br /&gt;
            dtmfmode=inband&lt;br /&gt;
            directmedia=no&lt;br /&gt;
            disallow=all&lt;br /&gt;
            allow=alaw&lt;br /&gt;
             &lt;br /&gt;
Paramos y arrancamos Asterisk (ya que hemos compilado y aprovechamos para recargar DialPlan)&lt;br /&gt;
&lt;br /&gt;
Para comprobar el funcionamiento:&lt;br /&gt;
&lt;br /&gt;
'''En Asterisk:'''&lt;br /&gt;
&lt;br /&gt;
    core set debug 1&lt;br /&gt;
        Hacer llamada descolgando la misma&lt;br /&gt;
    core set debug 0&lt;br /&gt;
&lt;br /&gt;
Revisar el log de Asterisk y comprobar que en ambos canales de la llamada aparece &amp;quot;Disabling digit detection&amp;quot; (si no aparece, algo falta por configurar):&lt;br /&gt;
    chan_sip.c: Disabling digit detection on SIP/4175-00000031&lt;br /&gt;
    chan_sip.c: Disabling digit detection on SIP/Trunk_GW_MAQUETAS-00000030&lt;br /&gt;
&lt;br /&gt;
== Problemas en la bbdd de replica, tabla COM_COMUNICADOS ==&lt;br /&gt;
&lt;br /&gt;
De forma intermitente en esta tabla se generan registros duplicados y hay que borrar registros y arrancar la Réplica para que todo vuelva a funcionar.&lt;br /&gt;
&lt;br /&gt;
El problema consiste en el el script borraRegistrosNimitz.pl borra la tabla entera, sin tener en cuenta el número de días que queremos dejar de backup; esto provoca que se vuelvan a repetir los índices de la BD.&lt;br /&gt;
&lt;br /&gt;
Hay que modificar el script de la siguiente forma:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 dentro de la sentencia elsif($tablas[$i] eq &amp;quot;COM_COMUNICADOS&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Hay que sustituir la sentencia&lt;br /&gt;
 $query = &amp;quot;DELETE FROM $tablas[$i;&lt;br /&gt;
&lt;br /&gt;
Por esta otra:&lt;br /&gt;
 $query = &amp;quot;DELETE FROM $tablas[$i] where D_HORA_FIN &amp;lt; DATE_SUB(NOW, INTERVAL $numDias DAY) LIMIT 100&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simple_bridge y native_rtp ==&lt;br /&gt;
&lt;br /&gt;
Para ver en que modo de funcionamiento esta la llamada escribiremos el siguiente comando.&lt;br /&gt;
&lt;br /&gt;
homologacion-corp0*CLI&amp;gt; bridge show all&lt;br /&gt;
Bridge-ID                            Chans Type            Technology&lt;br /&gt;
b40f41e3-0028-46d4-8c7c-34999090680f     2 basic           native_rtp&lt;br /&gt;
&lt;br /&gt;
El simple_bridge es el peor funcionamiento posible en el asterisk, hay que intentar estar siempre en native_rtp.&lt;br /&gt;
&lt;br /&gt;
El native_rtp tiene dos modos de funcionamiento que se ve al ejecutar el comando siguiente:&lt;br /&gt;
&lt;br /&gt;
homologacion-corp0*CLI&amp;gt; sip show channel 6d7c7a13176fc340180528281d4bcc3a@172.25.128.91:5060&lt;br /&gt;
  Audio IP:               172.25.129.102 (Outside bridge)&lt;br /&gt;
&lt;br /&gt;
En el campo Auidio Bridge podemos ver el valor Local o Outside bridge. En el modo local no se maneja al el audio por lo que no hay RTP directo entre teléfonos y pasa a través del asterisk, mientras que en modo Outside bridge si que hay rtp directo.&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Howto%27s&amp;diff=6376</id>
		<title>Howto's</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Howto%27s&amp;diff=6376"/>
		<updated>2017-10-31T10:53:21Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!! VIVAit Call&lt;br /&gt;
VIVAit Suite&lt;br /&gt;
&lt;br /&gt;
VIVAit Fax&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Como parar asterisk ==&lt;br /&gt;
En situaciones límite en el que es necesario parar el asterisk y volver a arrancarlo hay que realizar los siguientes pasos:&lt;br /&gt;
&lt;br /&gt;
 Entrar en la consola de asterisk e introducir el comando core stop now&lt;br /&gt;
&lt;br /&gt;
 Si esto no funciona, tendremos que matar el proceso a mano. Esto es, primero el safe asterisk y luego el asterisk mediante el comando &lt;br /&gt;
 kill -9 nºPID&lt;br /&gt;
 &lt;br /&gt;
 Tras estos pasos, volveremos a arrancar el servicio asterisk mediante /etc/init.d/asterisk start&lt;br /&gt;
&lt;br /&gt;
== Como configurar la megafonía ==&lt;br /&gt;
&lt;br /&gt;
El servicio de megafonía se basa en el protocolo multicast.&lt;br /&gt;
&lt;br /&gt;
Para configurar la megafonía tenemos que activar en los teléfonos que para que estén &amp;quot;escuchando&amp;quot; en una dirección multicast y tener un emisor en esa dirección multicast.&lt;br /&gt;
&lt;br /&gt;
Los teléfonos suelen tener en su configuración un apartado para configurar el multicast. Por ejemplo en los yealink está en la pestaña directory sección multicast IP.&lt;br /&gt;
&lt;br /&gt;
En los teléfonos se puede configurar manualmente o incluirlo en las plantillas de aprovisionamiento.&lt;br /&gt;
&lt;br /&gt;
El asterisk tiene un canal para hacer multicast. Este canal es MulticastRTP.&lt;br /&gt;
&lt;br /&gt;
Para esto podemos crear un VDN que contenga la siguiente línea. (en el ejemplo la dirección multicast es 239.0.126.1 y el puerto es el 10001).&lt;br /&gt;
&lt;br /&gt;
 [Cen_VDN_90000]&lt;br /&gt;
 exten =&amp;gt; _X.,1,NoOp(MDVDN_90000*****EXTEN=${EXTEN}**CID=${CALLERID(NUM)}**UCID=${UCID}*)&lt;br /&gt;
  same =&amp;gt;     n,Answer&lt;br /&gt;
  same =&amp;gt;     n,Dial(MulticastRTP/basic/239.0.126.1:10001)&lt;br /&gt;
 include =&amp;gt; Cen_finLlamada&lt;br /&gt;
&lt;br /&gt;
== Como configurar el candado ==&lt;br /&gt;
El candado permite prohibir temporalmente la posibilidad de realizar llamadas hacia fuera. Sí se pueden seguir haciendo llamadas a extensiones fijas de la plataforma, es decir, llamadas sin coste.&lt;br /&gt;
&lt;br /&gt;
Para configurar dicha funcionalidad basta con crear extensiones con la categoría mas restrictiva posible y habilitar la movilidad, con lo que la extensión solo tendrá &amp;quot;permisos&amp;quot; para realizar llamadas internas.&lt;br /&gt;
&lt;br /&gt;
Para permitir llamadas externas solo hay que &amp;quot;mover&amp;quot; a un usuario con categoría suficiente a la extensión deseada.&lt;br /&gt;
== Como crear un grupo de captura y que se vea en cada teléfono el número que llama ==&lt;br /&gt;
&lt;br /&gt;
'''ATENCIÓN: SE CREAN CONFIGURACIONES NO REFLEJADAS EN PORTAL DE ADMINISTRACIÓN'''&lt;br /&gt;
&lt;br /&gt;
Para la simulación de grupos de captura y conseguir que todos los terminales vean el ANI del llamante:&lt;br /&gt;
&lt;br /&gt;
- Hacen falta teléfonos con dos líneas&lt;br /&gt;
&lt;br /&gt;
- Cada teléfono del grupo tiene en la línea 1 su extensión habitual (por ejemplo 40000)&lt;br /&gt;
&lt;br /&gt;
- Además, en el fichero &amp;quot;sip_Estatico.conf&amp;quot;, creamos una segunda extensión para cada teléfono, que le ocupará la segunda línea (por ejemplo 42000)&lt;br /&gt;
&lt;br /&gt;
- En esta segunda linea ponemos que cuando se llame tenga otro tono de llamada (un beep o nada...) que se asemeje en funcionamiento al de un mensaje de llamada en otra extension de mi grupo de captura&lt;br /&gt;
&lt;br /&gt;
- Se ha creado una variable global por cada teléfono en el fichero de variables &amp;quot;ext_MDtel_Particular.conf&amp;quot; de nombre EXTxxxxx (por ejemplo EXT40000); esa variable contiene las otras extensiones virtuales del grupo&lt;br /&gt;
por ejemplo EXT40000=&amp;gt;SIP/42001&amp;amp;SIP/42005&lt;br /&gt;
&lt;br /&gt;
- Hemos creado en el dialplan programación para que cuando exista esa variable global se añada a la marcación el contenido&lt;br /&gt;
&lt;br /&gt;
== Como crear supletorios ==&lt;br /&gt;
&lt;br /&gt;
'''ATENCIÓN: SE CREAN CONFIGURACIONES NO REFLEJADAS EN PORTAL DE ADMINISTRACIÓN'''&lt;br /&gt;
&lt;br /&gt;
Igual que el caso anterior pero en la variable ponemos números reales. Debido a un bug en el enrutador, que no devuelve la variable R_PARA, en el fichero ext_MARCAR_Extension.conf hay que sustituir la siguiente linea:&lt;br /&gt;
 &lt;br /&gt;
 ;same =&amp;gt;                   n,ExecIf($[&amp;quot;${EXT${R_PARA}}&amp;quot;=&amp;quot;&amp;quot;]?NoOp:Set(ENR_CADMARCAR=${ENR_CADMARCAR}&amp;amp;${EXT${R_PARA}}))&lt;br /&gt;
Por esta otra:&lt;br /&gt;
  same =&amp;gt;                   n,ExecIf($[&amp;quot;${EXT${R_DEST_${ENR_RUTA_CAD}}}&amp;quot;=&amp;quot;&amp;quot;]?NoOp:Set(ENR_CADMARCAR=${ENR_CADMARCAR}&amp;amp;${EXT${R_DEST_${ENR_RUTA_CAD}}}))&lt;br /&gt;
ATENCIÓN !!! en las llamadas salientes cada uno presenta su número&lt;br /&gt;
&lt;br /&gt;
Para emplear números externos en los supletorios hay que poner, al crear la variable que hemos explicado en el apartado anterior en el ext_MDtel_Particular.conf: &lt;br /&gt;
&lt;br /&gt;
 EXT335=&amp;gt;SIP/0999999999@Trunk_Movil ;En este caso suena en la ext 335 y en el móvil 999999999&lt;br /&gt;
&lt;br /&gt;
== Generación de llamada automática ==&lt;br /&gt;
&lt;br /&gt;
Para activar la funcionalidad es necesario lo siguiente: &lt;br /&gt;
&lt;br /&gt;
* Definir una variable ID_LISTA_LLAMAME con el ID de la lista que se va a usar para generar la llamada. Cuando se cree la lista hay que asegurarse que el campo &amp;quot;Nº segundos límite&amp;quot; tiene un valor lo suficientemente amplio para evitar que la llamada caduque antes de ejecutarse.&lt;br /&gt;
&lt;br /&gt;
* Establecer un timeout para la cola (en el Gosub Cen_Sub_GrupoACD se indica justo después de ${COLA})&lt;br /&gt;
&lt;br /&gt;
* Llamar a la función de MySQL ACD_FUNC_LLAMAME_CREAR a través de MDintz&lt;br /&gt;
&lt;br /&gt;
* En la función se usan los siguientes elementos variables:&lt;br /&gt;
&lt;br /&gt;
        ${ID_LISTA_LLAMAME}: Definida antes clienteTOCola: &lt;br /&gt;
        Nombre del cliente. Al no tener ningún nombre, se usa un denominador genérico&lt;br /&gt;
        ${CALLERID}: Número llamante, donde se dirigirá la llamada.&lt;br /&gt;
&lt;br /&gt;
Ejemplo:&lt;br /&gt;
&lt;br /&gt;
 [Cen_VDN_99001]&lt;br /&gt;
 ;----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 ;----------------------- VDN 99001 ------------------------------------------------------------&lt;br /&gt;
 ;----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 exten =&amp;gt; _X.,1,NoOp(MDENTGW_99001*****EXTEN=${EXTEN}**CID=${CALLERID(NUM)}**UCID=${UCID}*)&lt;br /&gt;
  same =&amp;gt;     n,Set(__COLA=89001)&lt;br /&gt;
  same =&amp;gt;     n,Set(ctiDiriTrato=0)&lt;br /&gt;
  same =&amp;gt;     n,Set(ctiDiriInterface=)&lt;br /&gt;
  same =&amp;gt;     n,Set(ID_LISTA_LLAMAME=2)&lt;br /&gt;
  same =&amp;gt;     n(cola),Gosub(Cen_Sub_GrupoACD,${EXTEN},1(${COLA},10,,Si,))&lt;br /&gt;
  same =&amp;gt;     n,GotoIf($[&amp;quot;${QUEUESTATUS}&amp;quot;!=&amp;quot;TIMEOUT&amp;quot;]?colgar)&lt;br /&gt;
  same =&amp;gt;     n,MDintz(nimitz|bd|sqlDato|select ACD_FUNC_LLAMAME_CREAR(CURRENT_TIMESTAMP\,${ID_LISTA_LLAMAME}\,&amp;quot;&amp;quot;\,&amp;quot;clienteTOCola&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,1\,&amp;quot;&amp;quot;\,&amp;quot;${CALLERID(NUM)}&amp;quot;\,1\,3\,1\,&amp;quot;&amp;quot;\,0\,0\,0\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;))&lt;br /&gt;
  same =&amp;gt;     n,GotoIf($[&amp;quot;${MDintzRes}&amp;quot;=&amp;quot;OK&amp;quot;]?colgar)&lt;br /&gt;
  same =&amp;gt;     n,NoOp(ACD_FUNC_LLAMAME_CREAR ${MDintzRes})&lt;br /&gt;
  same =&amp;gt;     n(colgar),Hangup&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cancelación de eco en la plataforma ==&lt;br /&gt;
&lt;br /&gt;
Comprobar que el chan_dahdi.conf este configurado los parametros: &lt;br /&gt;
 echocancel=yes&lt;br /&gt;
 echocancelwhenbridged=yes&lt;br /&gt;
 Jugar con los valores txgain y rxgain &lt;br /&gt;
&lt;br /&gt;
Si esto no es suficiente el siguiente paso sería emplear una canceladora de echo por hardware.&lt;br /&gt;
&lt;br /&gt;
== Como &amp;quot;dar paso&amp;quot; a través de un enlace exterior si hay una llamada para una extensión creada en el sistema pero no registrada ==&lt;br /&gt;
&lt;br /&gt;
Este procedimiento es de utilidad en procesos de migración, en los que recibimos las llamadas de la RTC, nos las quedamos si la extensión ya está registrada en VIVAit y la mandamos hacia la plataforma a migrar si aún sigue migrada ahí&lt;br /&gt;
&lt;br /&gt;
El procedimiento es:&lt;br /&gt;
* Activar desvío por no contesta en la extensión (portal de administración - VIVAit Call - Dispositivos - Extensiones - campo &amp;quot;Desvio no contesta&amp;quot;, indicando como destino un prefijo (por ejemplo &amp;quot;99&amp;quot;) seguido de la extensión destino&lt;br /&gt;
&lt;br /&gt;
* Creamos una preruta en vivait-call - rutas -prerutas con origen &amp;quot;99&amp;quot;, le quitamos el prefijo en campo &amp;quot;Destino saliente 1&amp;quot; (valor -2) e indicamos en campo &amp;quot;Tipo destino sal. 1&amp;quot; como &amp;quot;Ruta externa&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Debera existir una ruta externa para esa numeración&lt;br /&gt;
&lt;br /&gt;
== Comprobación de versiones de elementos de la plataforma ==&lt;br /&gt;
&lt;br /&gt;
'''Aplicaciones'''&lt;br /&gt;
:* Botón derecho del ratón, Acerca De&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Portales'''&lt;br /&gt;
:* En el Vivait-Call, en la pantalla de inicio de sesión pone el número de versión del portal.&lt;br /&gt;
:* Tanto en el Monitor como en el Tracker no se puede saber.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Demonios'''&lt;br /&gt;
:* Mediante el comando nc localhost &amp;lt;Puerto demonio&amp;gt;. Ejemplo:&lt;br /&gt;
::nc localhost 1120&lt;br /&gt;
::motorSal sis ver='03.02.00' inic='20150427 123457' alarmas=0 ultAlar='00000000000000'&lt;br /&gt;
::motorSal gmp msj=253/256 buf=256/256 tarea=99/102&lt;br /&gt;
::motorSal tmp uptime=12624 (0d 3h 30m 24s)&lt;br /&gt;
::motorSal mtr mys=1 ocup=0% planif=13(0) intento=11(0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::Ejemplos puertos demonios:&lt;br /&gt;
:::*1111: vivait-cti&lt;br /&gt;
:::*1112: myAcdSuperv&lt;br /&gt;
:::*1113: recordNodo&lt;br /&gt;
:::*1114: recordCentral&lt;br /&gt;
:::*1115: intz-nimitz&lt;br /&gt;
:::*1120: motorSal&lt;br /&gt;
:::*1123: phoneprov-tftp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Base de datos'''&lt;br /&gt;
:* No se puede saber la versión a no ser que se comparen esquemáticos con los subidos en el redmine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:administrador]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:VIVAit Suite]]&lt;br /&gt;
[[Category:VIVAit Fax]]&lt;br /&gt;
&lt;br /&gt;
== Añadir Auto-Answer a la cabecera SIP ==&lt;br /&gt;
&lt;br /&gt;
Si queremos que un teléfono tenga autoanswer:&lt;br /&gt;
* En el peer poner: headeraa=Call-Info: answer-after=0, esto tiene que ir en la plantilla de la extensión o como campo en la extensión. Dependiendo del terminal que utilicemos el valor de este campo variará:&lt;br /&gt;
&lt;br /&gt;
    Aastra: Alert-Info: info=alert-autoanswer&lt;br /&gt;
    Grandstream: Call-Info: answer-after=0&lt;br /&gt;
    Linksys: Call-Info:\;Answer-After=0&lt;br /&gt;
    Polycom: Alert-Info: Ring Answer&lt;br /&gt;
    Snom: Call-Info: answer-after=0&lt;br /&gt;
    Snom (nuevo firmware): Call-Info: &amp;lt;sip:IP&amp;gt;\;answer-after=0&lt;br /&gt;
    Yealink: Call-Info: answer-after=0&lt;br /&gt;
&lt;br /&gt;
* Luego en el diaplan añadir lo siguiente: exten =&amp;gt; _[*#%0-9a-zA-Z].,n,set(__AutoAnswer=AA) (Esto tendremos que ver como ponerlo de manera automática). De manera provisional si queremos que sea para llamadas salientes pondremos esto en el ext_n_marcador.conf. Si queremos que sea llamadas entrantes lo pondremos en ext_n_MARCAR.conf&lt;br /&gt;
&lt;br /&gt;
== Configuración de los portales web en HTTPS ==&lt;br /&gt;
&lt;br /&gt;
Desde /usr/lib/jvm/default-java/bin/ ejecutamos:&lt;br /&gt;
&lt;br /&gt;
keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/share/tomcat7/.keystore&lt;br /&gt;
&lt;br /&gt;
Escriba la contraseña del almacén de claves: (t0mc4t)&lt;br /&gt;
 Volver a escribir la contraseña nueva: (t0mc4t)&lt;br /&gt;
 *Personalizar para el cliente&lt;br /&gt;
 ¿Cuáles son su nombre y su apellido?&lt;br /&gt;
 [Unknown]: VIVAit Suite&lt;br /&gt;
 ¿Cuál es el nombre de su unidad de organización?&lt;br /&gt;
 [Unknown]: Desarrollo&lt;br /&gt;
 ¿Cuál es el nombre de su organización?&lt;br /&gt;
 [Unknown]: MDtel&lt;br /&gt;
 ¿Cuál es el nombre de su ciudad o localidad?&lt;br /&gt;
 [Unknown]: Madrid&lt;br /&gt;
 ¿Cuál es el nombre de su estado o provincia?&lt;br /&gt;
 [Unknown]: Madrid&lt;br /&gt;
 ¿Cuál es el código de país de dos letras de la unidad?&lt;br /&gt;
 [Unknown]: es&lt;br /&gt;
 ¿Es correcto CN=VIVAit Suite, OU=Desarrollo, O=MDtel, L=es, ST=Madrid,&lt;br /&gt;
 C=Unknown?&lt;br /&gt;
 [no]: si&lt;br /&gt;
 Escriba la contraseña clave para &amp;lt;tomcat&amp;gt;&lt;br /&gt;
 (INTRO si es la misma contraseña que la del almacén de claves)&lt;br /&gt;
&lt;br /&gt;
nano /var/lib/tomcat7/conf/server.xml&lt;br /&gt;
&lt;br /&gt;
Descomentar la línea:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; protocol=&amp;quot;HTTP/1.1&amp;quot; SSLEnabled=&amp;quot;true&amp;quot; &lt;br /&gt;
&lt;br /&gt;
 maxThreads=&amp;quot;150&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Añadir después de sslProtocol=&amp;quot;TLS&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 keystorePass=&amp;quot;t0mc4t&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Crear un motivo desconexión para el Supervisor en '''''VIVA'''''it Suite==&lt;br /&gt;
&lt;br /&gt;
Para crear motivos de desconexión adicionales a los que ya ofrece la aplicación tendremos que añadir una nueva entrada en la BD. El comando que emplearíamos seria el siguiente:&lt;br /&gt;
&lt;br /&gt;
INSERT INTO `nimitz`.`COM_ENUMERADOS` (`ID`, `C_NOMBRE`, `C_TEXTO`, `N_POSICION`, `C_OBSERV`) VALUES(1000700, 'TSesAgMotDesc', 'Nombre Motivo de desconexión', 60, ' ');&lt;br /&gt;
&lt;br /&gt;
El ID debe ser mayor o igual a 1000700 y menor a 1000800. El N_POSICION debe ser mayor o igual a 60 y menor que 100.&lt;br /&gt;
&lt;br /&gt;
== Envío de variables CTI al ACD ante un GW con asterisk 13==&lt;br /&gt;
Dado que para un GW con asterisk 13 un nodo ACD es considerado un elemento externo, por defecto, no se envían variables CTI (UCID, ...). En una fututa versión del nodo ACD, ya no se considerará un elemento externo por lo que si se enviarán dichas variables. Para lograrlo en la versión 3.0 de la plataforma Vivait hay que modificar el fichero ext_MARCAR_Externo_Particular.conf del GW. Deberemos poner la siguiente linea.&lt;br /&gt;
&lt;br /&gt;
 same =&amp;gt; n,Macro(escribirDatosCti)&lt;br /&gt;
&lt;br /&gt;
== Script para cambio automático de claves en salas de conferencia estáticas ==&lt;br /&gt;
&lt;br /&gt;
Para cambiar la clave de las salas de conferencias crear un script llamado cambioClaveConfe.sh con el siguiente contenido:&lt;br /&gt;
	&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 CLAVE=$(shuf -i 1111-9999 -n 1)&lt;br /&gt;
 &lt;br /&gt;
 echo $CLAVE&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;update CEN_SALAS_CONFERENCIAS set C_PIN='$CLAVE' WHERE C_NOMBRE='$1'&amp;quot; | mysql -u nimitz -pivivanimitz nimitz&lt;br /&gt;
 &lt;br /&gt;
 FROM=sat@mdtel.es&lt;br /&gt;
 FECHA=`date +&amp;quot;%Y%m%d%H%M%S&amp;quot;`&lt;br /&gt;
 CLIENTE=&amp;lt;PONER EL CLIENTE&amp;gt;&lt;br /&gt;
 TO=&amp;lt;DESTINATARIOS&amp;gt;&lt;br /&gt;
 ASUNTO=&amp;quot;Nueva clave en sala $1&amp;quot;&lt;br /&gt;
 CUERPO=&amp;quot;La nueva clave para la sala $1 es: $CLAVE&amp;quot;&lt;br /&gt;
 /usr/sbin/sendmail -oi -t -v -f $FROM &amp;lt;&amp;lt;EOF&lt;br /&gt;
 From: $FROM&lt;br /&gt;
 To: $TO&lt;br /&gt;
 Bcc: $BCC&lt;br /&gt;
 Subject: $ASUNTO&lt;br /&gt;
 &lt;br /&gt;
 $CUERPO&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
El script cambiará la clave de la sala pasada por parámetro por una aleatoria de 4 dígitos y la enviará por correo a los &amp;lt;DESTINATARIOS&amp;gt; (direcciones de correo electrónico separadas por coma).&lt;br /&gt;
&lt;br /&gt;
Hay que crear una tarea en /etc/crontab añadiendo una linea como la siguiente:&lt;br /&gt;
 30 6	* * 7	root	cambioClaveConfe.sh 6173&lt;br /&gt;
&lt;br /&gt;
Esto ejecutará el script todos los domingos a las 6:30 horas cambiando la clave de la sala 6173. Añadir tantas linéas como salas.&lt;br /&gt;
&lt;br /&gt;
==ZABBIX ==&lt;br /&gt;
&lt;br /&gt;
=== Como crear un TRIGGER en Zabbix ===&lt;br /&gt;
&lt;br /&gt;
'''1.''' Hay '''dos posibilidades''' dependiendo si el trigger es para un solo host o es para varios, los cuales tienen en común un template:&lt;br /&gt;
&lt;br /&gt;
:# Si es para ''un host'': Ir a '''Configuración/Hosts'''&lt;br /&gt;
:# Si es para ''un template'': Ir a '''Configuración/Templates'''&lt;br /&gt;
&lt;br /&gt;
'''2.''' En la fila correspondiente al host/template al que queramos añadirle el trigger, pulsar sobre la '''columna triggers.'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''3.''' En la ventana de triggers, pulsar sobre el botón '''Create trigger''', situado en la esquina superior derecha.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''4.''' Aparecerá la ventana de creación de triggers, que tiene los siguientes campos:&lt;br /&gt;
:1. '''Name:''' Nombre del trigger, que deberá ser lo ''suficientemente descriptivo''. Aparecerá cuando se&lt;br /&gt;
active, en la ventana principal de Zabbix así como en los correos de aviso.&lt;br /&gt;
:2. '''Expression:''' Define la fórmula cuyo resultado activará el trigger. Hay que pulsar el botón '''Add'''. Se mostrará una &lt;br /&gt;
nueva ventana donde habrá que elegir el item (medida) sobre el que se basará el trigger (evidentemente la medida deberá &lt;br /&gt;
existir previamente) y la función necesaria para el cálculo. Para una descripción de las disponibles dirigirse a &lt;br /&gt;
https://www.zabbix.com/documentation/2.2/manual/appendix/triggers/functions.&amp;lt;br/&amp;gt;&lt;br /&gt;
Tras rellenar los campos anteriores y dar a la función los valores que necesite pulsar el botón '''Insert.'''&lt;br /&gt;
:3. '''Expression constructor:''' Permite crear expresiones complejas, uniendo varias.&lt;br /&gt;
:4. '''Description:''' Una explicación del trigger&lt;br /&gt;
:5. '''Severity:''' Criticidad el trigger&lt;br /&gt;
:6. Para una descripción del resto de campos visitar la página: https://www.zabbix.com/documentation/2.2/manual/config/triggers/trigger&lt;br /&gt;
'''5.''' Tras rellenar los campos, pulsar el botón '''Save'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''6.''' Si el trigger se ha añadido en un template, aparecerá en todos los hosts que tienen el template configurado.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''7.''' '''El trigger por si solo no envía ningún aviso''', solo se activa si se cumple la expresión definida.&lt;br /&gt;
Para enviar un aviso (normalmente un correo electrónico) cuando se active el trigger, será necesario definir una acción (Configuración/Actions).&lt;br /&gt;
&lt;br /&gt;
 '''NOTA.-''' Para consultar cualquier cuestión relativa a Zabbix, se encuentra a su disposición el manual: &amp;lt;br/&amp;gt;&lt;br /&gt;
 https://www.zabbix.com/documentation/2.2/manual&lt;br /&gt;
&lt;br /&gt;
=== Monitorización en Zabbix de un trunk caído ===&lt;br /&gt;
Para monitorizar un o varios trunk por separado y saber el estado de cada uno es necesario lo siguiente: &lt;br /&gt;
&lt;br /&gt;
*Añadir el UserParameter adjunto que contiene el siguiente texto:&lt;br /&gt;
&lt;br /&gt;
 UserParameter=asterisk.trunkEstado[*],sudo /usr/sbin/asterisk -rx 'sip show peers' | grep  --text -i '$1' |  grep OK &amp;gt;/dev/null; if [ $? -eq 0 ]; then echo 1; else echo 0; fi&lt;br /&gt;
&lt;br /&gt;
*Añadir en el portal de zabbix un item por cada trunk. En el campo Key se pondrá &amp;quot;asterisk.trunkEstado[nombre_trunk]&amp;quot;, donde nombre_trunk es el nombre del trunk tal y como se ve en Asterisk.&lt;br /&gt;
[[File:zabbix_item_trunkEstado.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Crear un trigger que avise cuando el último valor sea 0. Por ejemplo:&lt;br /&gt;
 {corp-bdtr:asterisk.trunkEstado[PrePro-ACD].last()}=0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:zabbix_trigger_trunkEstado.png]]&lt;br /&gt;
&lt;br /&gt;
== Agendas en terminales Yealink ==&lt;br /&gt;
En la agenda se mostrará como nombre lo que contenga el campo CEN_AGENDAS.C_NOMBRE_MOSTRAR y como teléfono el indicado en CEN_AGENDAS_TELEFONOS.C_TELEFONO&lt;br /&gt;
Para hacer funcionar la agenda:&lt;br /&gt;
&lt;br /&gt;
*En el archivo de aprovisionamiento correspondiente (Yealink-XXXX-comun.cfg) establecer los siguientes parámetros:&lt;br /&gt;
&lt;br /&gt;
    remote_phonebook.data.1.url = http://&amp;lt;direc IP&amp;gt;/vivait-agenda/yealink/contactData1.xml &lt;br /&gt;
    remote_phonebook.data.1.name = NOMBRE DE LA AGENDA EN EL TELEFONO&lt;br /&gt;
&lt;br /&gt;
*En el archivo /etc/apache2/apache2.conf añadir tras el último Directory:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Directory /var/www/html/vivait-agenda/&amp;gt;&lt;br /&gt;
             AddType application/x-httpd-php .xml&lt;br /&gt;
             Options Indexes FollowSymLinks MultiViews&lt;br /&gt;
             AllowOverride None&lt;br /&gt;
             Order allow,deny&lt;br /&gt;
             allow from all&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Ejecutar el comando:&lt;br /&gt;
&lt;br /&gt;
    /etc/init.d/apache2 reload&lt;br /&gt;
&lt;br /&gt;
== Calendarios ==&lt;br /&gt;
&lt;br /&gt;
=== Enrutamiento inteligente ===&lt;br /&gt;
&lt;br /&gt;
Ante una llamada a un destino, si hay cita de ocupado en el calendario se desvia al número indicado en el campo &amp;quot;location&amp;quot; del calendario o a su buzon de voz si hay valor en dicho campo&lt;br /&gt;
&lt;br /&gt;
 same =&amp;gt; n,Set(CalendarBusy=${CALENDAR_BUSY(GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,Set(id=${CALENDAR_QUERY(GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,NoOP(hay ${CALENDAR_QUERY_RESULT(${id},getnum)} eventos)&lt;br /&gt;
 same =&amp;gt; n,Verbose(3,The state of GoogleCalendar is $&lt;br /&gt;
 {DEVICE_STATE(Calendar:GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,Set(CalendarLocation=${CALENDAR_QUERY_RESULT(GoogleCalendar,location)})&lt;br /&gt;
 same =&amp;gt; n,GotoIf($[&amp;quot;${CalendarBusy}&amp;quot;==&amp;quot;1&amp;quot;]?:conCategoria)&lt;br /&gt;
 same =&amp;gt; n,GotoIf($[&amp;quot;${CalendarLocation}&amp;quot;==&amp;quot;&amp;quot;]?buzon)&lt;br /&gt;
 same =&amp;gt; n,Goto(Cen_iniLlam,${CalendarLocation},1)&lt;br /&gt;
 same =&amp;gt; n(buzon),Playback(Particular/buzon)&lt;br /&gt;
 same =&amp;gt; n,Hangup&lt;br /&gt;
 same=&amp;gt; n(conCategoria),Goto(Cen_iniLlam,${EXTEN},1)&lt;br /&gt;
&lt;br /&gt;
=== Conexión de cliente Outlook a calendarios VIVAit mediante Caldav===&lt;br /&gt;
Por defecto, el cliente outlook no soporta Caldav; si queremos disponer de calendarios de VIVAit en Outlook tendríamos dos opciones:&lt;br /&gt;
# Tener los calendarios en el servidor Exchange&lt;br /&gt;
# Instalar un plugin en el cliente outlook que permita conectar vía Caldav los calendarios que estén ubicados en el servidor de calendarios de VIVAit&lt;br /&gt;
&lt;br /&gt;
Este howto se centra en esta segunda posibilidad&lt;br /&gt;
&lt;br /&gt;
Procedimiento: &lt;br /&gt;
&lt;br /&gt;
1.- Instalar Calldavsincronizer (valdrían otros plugin de Caldav para Outlook)&lt;br /&gt;
&lt;br /&gt;
[https://sourceforge.net/projects/outlookcaldavsynchronizer/ https://sourceforge.net/projects/outlookcaldavsynchronizer/]&lt;br /&gt;
&lt;br /&gt;
2.- Entrar en Synchronization Profiles en la nueva pestaña Calldav Syncronizer de outlook       [[File:Syncronizer.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.- Añadir nuevo perfil (tecla +)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Nuevo.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A tener en cuenta:&lt;br /&gt;
&lt;br /&gt;
*Crear un nuevo “Outlook folder”, entendemos que es adecuado (quizás necesario) para que las entradas de calendario de VIVAit queden diferenciadas.&lt;br /&gt;
*Lo mejor es haber creado antes el calendario en el servidor para que al darlo de alta en oulook comprobemos que se conecta.&lt;br /&gt;
*Dando al botón “Test or discover settings” se nos muestran todos los calendarios del servidor y elegimos el que queramos; en “elementos de la carpeta” diremos “elementos de calendario”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Calendario.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
== Uso de reloj hardware en nodos de procesamiento ==&lt;br /&gt;
&lt;br /&gt;
=== En nodo de procesamiento ACD ===&lt;br /&gt;
En un nodo de procesamiento ACD es obligatorio instalar dahdi y una tarjeta de primario para emplear reloj hardware, ya que el reloj software que va en el asterisk 1.4 es defectuoso.&lt;br /&gt;
Para configurarlo basta con instalar la tarjeta en el servidor, instalar dahdi y posteriormente ejecutar el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
 dahdi_cfg&lt;br /&gt;
&lt;br /&gt;
Este comando generaŕa el fichero /etc/dahdi/system.conf&lt;br /&gt;
&lt;br /&gt;
Para comprobar que el comando se ha ejecutado satisfactoriamente lo abriremos y tendrá que tener un formato semejante al siguiente ejemplo:&lt;br /&gt;
&lt;br /&gt;
 # Autogenerated by /usr/sbin/dahdi_genconf on Tue Oct 22 17:42:59 2013&lt;br /&gt;
 # If you edit this file and execute /usr/sbin/dahdi_genconf again,&lt;br /&gt;
 # your manual changes will be LOST.&lt;br /&gt;
 # Dahdi Configuration File&lt;br /&gt;
 #&lt;br /&gt;
 # This file is parsed by the Dahdi Configurator, dahdi_cfg&lt;br /&gt;
 #&lt;br /&gt;
 # Span 1: WCT1/0 &amp;quot;Digium Wildcard TE110P T1/E1 Card 0&amp;quot; HDB3/CCS/CRC4&lt;br /&gt;
 span=1,1,0,ccs,hdb3,crc4&lt;br /&gt;
 # termtype: te&lt;br /&gt;
 bchan=1-15,17-31&lt;br /&gt;
 dchan=16&lt;br /&gt;
 echocanceller=oslec,1-15,17-31&lt;br /&gt;
 # Global data&lt;br /&gt;
 loadzone        = es&lt;br /&gt;
 defaultzone     = es&lt;br /&gt;
&lt;br /&gt;
=== En nodo de procesamiento de corporativa ===&lt;br /&gt;
En un nodo de procesamiento de corporativa no obligatorio instalar dahdi y una tarjeta de primario para emplear reloj hardware, ya que el no se han detectado errores en el reloj por software. Sin embargo si instalamos dahdi y una tarjeta de primario para emplear reloj hardware, el sistema funcionará mejor.&lt;br /&gt;
Para configurarlo basta con instalar la tarjeta en el servidor, instalar dahdi y posteriormente ejecutar el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
 dahdi_cfg&lt;br /&gt;
&lt;br /&gt;
Este comando generaŕa el fichero /etc/dahdi/system.conf&lt;br /&gt;
&lt;br /&gt;
Para comprobar que el comando se ha ejecutado satisfactoriamente lo abriremos y tendrá que tener un formato semejante al siguiente ejemplo:&lt;br /&gt;
&lt;br /&gt;
 # Autogenerated by /usr/sbin/dahdi_genconf on Tue Oct 22 17:42:59 2013&lt;br /&gt;
 # If you edit this file and execute /usr/sbin/dahdi_genconf again,&lt;br /&gt;
 # your manual changes will be LOST.&lt;br /&gt;
 # Dahdi Configuration File&lt;br /&gt;
 #&lt;br /&gt;
 # This file is parsed by the Dahdi Configurator, dahdi_cfg&lt;br /&gt;
 #&lt;br /&gt;
 # Span 1: WCT1/0 &amp;quot;Digium Wildcard TE110P T1/E1 Card 0&amp;quot; HDB3/CCS/CRC4&lt;br /&gt;
 span=1,1,0,ccs,hdb3,crc4&lt;br /&gt;
 # termtype: te&lt;br /&gt;
 bchan=1-15,17-31&lt;br /&gt;
 dchan=16&lt;br /&gt;
 echocanceller=oslec,1-15,17-31&lt;br /&gt;
 # Global data&lt;br /&gt;
 loadzone        = es&lt;br /&gt;
 defaultzone     = es&lt;br /&gt;
&lt;br /&gt;
== Aprovisionamiento terminales Cisco ==&lt;br /&gt;
=== Configurar protocolo SIP TCP o UDP en terminal Cisco ===&lt;br /&gt;
&lt;br /&gt;
Configuración de terminal Cisco para para funcionar bajo TCP o UDP:&lt;br /&gt;
Modificar parámetro&lt;br /&gt;
 &amp;lt;transportLayerProtocol&amp;gt;X&amp;lt;/transportLayerProtocol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde X es:&lt;br /&gt;
    1: TCP&lt;br /&gt;
    2: UDP&lt;br /&gt;
    4: Valor por defecto del firmware (al menos en la última versión equivale a TCP)&lt;br /&gt;
&lt;br /&gt;
=== Habilitar/Deshabilitar llamada en espera en terminales Cisco ===&lt;br /&gt;
&lt;br /&gt;
En el fichero de aprovisionamiento del terminal añadiremos la siguiente linea&lt;br /&gt;
 &amp;lt;callWaiting&amp;gt;X&amp;lt;/callWaiting&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde X es:&lt;br /&gt;
   0=off but can be changed through the settings menu.&lt;br /&gt;
   1=on but can be changed through the settings menu.&lt;br /&gt;
   2=off and locked so it can't be changed through the settings menu.&lt;br /&gt;
   3=on and locked so it can't be changed through the settings menu.&lt;br /&gt;
&lt;br /&gt;
== Como configurar servicio DHCP en Ubuntu Linux ==&lt;br /&gt;
'''¿Que es un servicio DHCP?'''&lt;br /&gt;
&lt;br /&gt;
Un servidor Dynamic Host Configuration Protocol (DHCP) asigna dinámicamente las direcciones IP y otras configuraciones de red a otros terminales que están conectados a la red.&lt;br /&gt;
&lt;br /&gt;
'''Instalar un servicio DHCP'''&lt;br /&gt;
&lt;br /&gt;
Para instalar el servidor de asignacion automatica de direccion IP ejecutamos el comando:&lt;br /&gt;
 sudo apt-get install isc-dhcp-server&lt;br /&gt;
&lt;br /&gt;
'''Configurando el servicio DHCP'''&lt;br /&gt;
&lt;br /&gt;
Editamos el archivo /etc/dhcp/dhcpd.conf creando primero un backup del mismo:&lt;br /&gt;
 mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.original&lt;br /&gt;
 nano /etc/dhcp/dhcpd.conf&lt;br /&gt;
&lt;br /&gt;
El archivo debe quedar de una forma muy similar a esta:&lt;br /&gt;
 authoritative&lt;br /&gt;
 subnet  10.254.239.0 netmask 255.255.255.254&lt;br /&gt;
 {&lt;br /&gt;
 range dynamic-bootp  10.254.239.40 10.254.239.60;&lt;br /&gt;
 option domain-name-servers ns1.example.org, ns2.example.org;&lt;br /&gt;
 option domain-name &amp;quot;example.org&amp;quot;;&lt;br /&gt;
 option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org ;&lt;br /&gt;
 option broadcast-address 10.254.239.255;&lt;br /&gt;
 default-lease-time 3600;&lt;br /&gt;
 max-lease-time 7200;&lt;br /&gt;
 option option-150 10.254.239.25&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Donde los campos:&lt;br /&gt;
*subnet: Direccion de red&lt;br /&gt;
*netmask: Máscara de red&lt;br /&gt;
*range dynamic-bootp: Rango de IPs que va a proporcionar el DHCP&lt;br /&gt;
*option domain-name-servers: Direcciones IPs de los DNS&lt;br /&gt;
*option domain-name: Nombre de dominio&lt;br /&gt;
*option routers:IPs de las puertas de enlace&lt;br /&gt;
*option broadcast-address: Dirección de broadcast&lt;br /&gt;
*default-lease-time: Tiempo de concesión por defecto&lt;br /&gt;
*max-lease-time: Valor máximo del tiempo de concesión&lt;br /&gt;
*option option-150: IPs de los servidores TFTPs que tiene la red&lt;br /&gt;
&lt;br /&gt;
'''Reiniciamos el servicio'''&lt;br /&gt;
&lt;br /&gt;
 service isc-dhcp-server restart&lt;br /&gt;
&lt;br /&gt;
'''Direcciones IP estáticas basadas en la MAC'''&lt;br /&gt;
&lt;br /&gt;
Pueden conocerse las MAC de las máquinas conectadas a la red ejecutando el comando arp desde la terminal.&lt;br /&gt;
&lt;br /&gt;
 host ejemplo {&lt;br /&gt;
        hardware ethernet 00:0B:82:19:A8:04;&lt;br /&gt;
        option option-150 10.254.239.0;&lt;br /&gt;
 #      fixed-address 10.254.239.52;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Protocolo Skinny en VIVAit Call mediante uso de Chan-SCCP ==&lt;br /&gt;
'''Instalación de chan_sccp'''&lt;br /&gt;
&lt;br /&gt;
*Copiar el fichero chan-sccp-4.2.1.1.tar.gz en el directorio donde estén los fuentes de Asterisk (normalmente /usr/src/MDtel)&lt;br /&gt;
*Descomprimir&lt;br /&gt;
*Entrar al directorio chan-sccp-4.2.1.1&lt;br /&gt;
*Ejecutar: ./configure --with-asterisk=../DIRECTORIO_ASTERISK --enable-conference. Donde DIRECTORIO_ASTERISK es el nombre del directorio donde están los fuentes de asterisk.&lt;br /&gt;
*Tras el ejecutar el configure (si todo va bien al final se verá un resumen con el S.O, arquitectura, etc), ejecutar make y make install&lt;br /&gt;
*El nuevo módulo chan_sccp.so se generará dentro del DIRECTORIO_ASTERISK en lib/asterisk/modules/ y se deberá copiar en /usr/lib/asterisk/modules/&lt;br /&gt;
*Copiar el fichero sccp.conf a /etc/asterisk&lt;br /&gt;
*Entra a Asterisk y ejecutar: module load chan_sccp.so&lt;br /&gt;
*Si se ha cargado correctamente, desde dentro de Asterisk, si se teclea sccp show version deberá devolver: &amp;quot;Skinny Client Control Protocol (SCCP). Release: 4.3.0 4.3.0 - unknown (built by 'root' on '2016-06-01 10:42:32 UTC')&amp;quot;&lt;br /&gt;
&lt;br /&gt;
'''Crear extensiones'''&lt;br /&gt;
&lt;br /&gt;
*En el portal crear una nueva clase de dispositivo (Vivait-Call/Dispositivos/Clases de dispositivos), donde la clase sea extensión la subclase H323 (todavía no existe la subclase SCCP) y el formato SCCP/${DEST}&lt;br /&gt;
*Crear la nueva extensión, pero el dispositivo debe ser el creado en el campo anterior.&lt;br /&gt;
*Las extensiones creadas habrá que añadirlas al fichero sccp.conf así como los teléfonos que las usarán. En el fichero sccp.conf incluido hay ejemplos.&lt;br /&gt;
&lt;br /&gt;
'''Aprovisionamiento'''&lt;br /&gt;
Los terminales se aprovisionan de la misma manera que los SIP, exceptuando que las plantillas XML no tiene referencias a SIP. Se incluye un xml genérico con todas las opciones.&lt;br /&gt;
Dentro del directorio chan-sccp-4.2.1.1 hay un directorio conf con todos los archivos de configuración necesarios. Las versiones annotated contienen todas las opciones posibles comentadas.&lt;br /&gt;
&lt;br /&gt;
== Instalación y configuración Postfix en RedHat7 ==&lt;br /&gt;
&lt;br /&gt;
'''Postfix''' es un ''servidor de correo'' de software libre/código abierto, un programa informático para el enrutamiento y envío de correo electrónico.&lt;br /&gt;
&lt;br /&gt;
'''Instalación'''&lt;br /&gt;
&lt;br /&gt;
 yum install postfix&lt;br /&gt;
&lt;br /&gt;
'''Configuración'''&lt;br /&gt;
&lt;br /&gt;
Sobre la configuración de postfix por defecto (recién instalado):&lt;br /&gt;
Editar el fichero /etc/postfix/main.cf&lt;br /&gt;
 inet_protocols = ipv4&lt;br /&gt;
 relayhost = smtp.renfe.es&lt;br /&gt;
Revisar la configuración:&lt;br /&gt;
 postfix check&lt;br /&gt;
Configurar postfix como servicio (sólo en redhat y similares)&lt;br /&gt;
 chkconfig postfix on&lt;br /&gt;
Iniciar postfix:&lt;br /&gt;
 service postfix start&lt;br /&gt;
Instalar mailx para disponer de los comandos mail y sendmail:&lt;br /&gt;
 yum install mailx&lt;br /&gt;
Probar configuración:&lt;br /&gt;
 echo &amp;quot;Prueba de correo&amp;quot; | mail -vs &amp;quot;Prueba&amp;quot; correo@destino.soy&lt;br /&gt;
&lt;br /&gt;
== FOP2 ==&lt;br /&gt;
&lt;br /&gt;
=== Como mostrar callername queues FOP2 ===&lt;br /&gt;
&lt;br /&gt;
Es necesario añadir el siguiente código al contexto de entrada:&lt;br /&gt;
&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Connect connid localhost usuario clave bd)&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Query resultid ${connid} SELECT\ firstname\,lastname\ from\ fop2\ where\ phone1=${CALLERID(num)}\ OR\ phone2=${CALLERID(num)})&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Fetch fetchid ${resultid} nombre apellidos)&lt;br /&gt;
 exten =&amp;gt; _X.,n,GotoIf($[${fetchid} = 1]?:noExiste)&lt;br /&gt;
 exten =&amp;gt; _X.,n,Set(CALLERID(name)=${nombre}${apellidos})&lt;br /&gt;
 exten =&amp;gt; _X.,n(noExiste),Continuar&lt;br /&gt;
&lt;br /&gt;
En la primera línea cambiar según lo necesario:&lt;br /&gt;
&lt;br /&gt;
*localhost: Dirección IP del servidor de MySQL donde está la BBDD de FOP2&lt;br /&gt;
*usuario: Usuario con permisos de acceso a la bbdd de FOP2&lt;br /&gt;
*clave: Clave del usuario&lt;br /&gt;
*bd: Nombre de la BBDD&lt;br /&gt;
&lt;br /&gt;
=== FOP2. Problemas en transferencias asistidas ===&lt;br /&gt;
&lt;br /&gt;
 Para habilitar la transferencia atendida del asterisk (funcion atxfer), hay que poner la opción tT en el queue() si la llamada origen &lt;br /&gt;
 la realiza a una cola o  al dial() de las extensiones.&lt;br /&gt;
 Con eso vemos como al intentar hacer la llamada de consulta ya se va a nuestro dialplan. Sin embargo la llamada no funciona ya que &lt;br /&gt;
 el enrutador nos da error de  enrutamiento porque no tenemos ID_DISPOSITIVO origen ya que el fop no es un elemento creado desde el portal.&lt;br /&gt;
 Por lo que se propone como solución crear un contexto de inicio del fop y asignarle un ID_DISPOSITIVO para que así se enrute la llamada. &lt;br /&gt;
 El contexto tienen que ser similar a ext_InicioLlamada_Chrome.conf&lt;br /&gt;
&lt;br /&gt;
Para que funcione las transferencias supervisadas desde el fop2 hay que realizar lo siguiente:&lt;br /&gt;
&lt;br /&gt;
*El usuario del manager debe tener permisos Atxfer para poder realizar transferencias.&lt;br /&gt;
*Habilitar la transferencia atxfer en el fuatures.conf del asterisk. atxfer =&amp;gt; *2&lt;br /&gt;
*Crear el fichero ext_InicioLlamada_FOP.conf con el siguiente contenido:&lt;br /&gt;
&lt;br /&gt;
 [Cen_Inicio_FOP]&lt;br /&gt;
 exten =&amp;gt; [*#%0-9].,1,NoOp(MDINICHR**EXTEN=${EXTEN}**CID=${CHROME_ANI}*)&lt;br /&gt;
 same =&amp;gt; n,dumpchan()&lt;br /&gt;
 ;same =&amp;gt; n,Set(CALLERID=${CHROME_ANI})&lt;br /&gt;
 same =&amp;gt; n,Gosub(Cen_Sub_getIdExtension,s,1(${R_CID_NUM_00}))&lt;br /&gt;
 same =&amp;gt; n,ExecIf($[&amp;quot;${GOSUB_RETVAL}&amp;quot;!=&amp;quot;OK&amp;quot; | &amp;quot;${sqlDato}&amp;quot;=&amp;quot;&amp;quot;]?HangUp)&lt;br /&gt;
 same =&amp;gt; n,Set(ID_DISPOSITIVO=${sqlDato})&lt;br /&gt;
 ; . Modificar MARCAR en funcion de reglas de marcacion saliente (prefijo 0, ...)&lt;br /&gt;
 ; Esto se modificara en el contexto Cen_Inicio_Chrome_Particular&lt;br /&gt;
 same =&amp;gt; n,Set(MARCAR=${EXTEN})&lt;br /&gt;
 ;---------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ;--- Llamada a contexto particular&lt;br /&gt;
 ;---------------------------------&lt;br /&gt;
 ; Esta llamada es para hacer cosas especificas del cliente (cambiar callerid...)&lt;br /&gt;
 ; La subrutina Cen_Inicio_Chrome_Particular esta en el archivo ext_InicioLlamada_Chrome_Particular.conf&lt;br /&gt;
 ; Si no existe el archivo copiar el archivo ext_InicioLlamada_Chrome_Particular.conf.ejemplo como ext_Inicio_Chrome_Particular.conf&lt;br /&gt;
 ; y realizar las modificaciones necesarias&lt;br /&gt;
 ; El fichero ext_InicioLlamada_Chrome_Particular.conf se carga automaticamente al ser creado con el include de ext_InicioLlamada.conf&lt;br /&gt;
 ; #include &amp;quot;ext_InicioLlamada*.conf&amp;quot;&lt;br /&gt;
 ;&lt;br /&gt;
 same =&amp;gt; n,GosubIf($[${DIALPLAN_EXISTS(Cen_Inicio_FOP_Particular,${EXTEN},1)}&amp;gt;0]?Cen_Inicio_FOP_Particular,${EXTEN},1)&lt;br /&gt;
 same =&amp;gt; n,Goto(Cen_Inicio_SIP,${MARCAR},1)&lt;br /&gt;
&lt;br /&gt;
*En el fichero /usr/local/fop2/buttons.cfg poner como contexto de las extensiones el creado anteriormente (Cen_Inicio_FOP)&lt;br /&gt;
*Modificar el fichero /usr/local/fop2/fop2.cfg:&lt;br /&gt;
&lt;br /&gt;
 blind_transfer = 0&lt;br /&gt;
 supervised_transfer = 1&lt;br /&gt;
&lt;br /&gt;
Para realizar la transferencia con consulta, hay que pulsar el supervised transfer del FOP2 y una vez se haya establecido la llamada, seleccionar la extensión que &amp;quot;sobra&amp;quot; en la conversación y pulsar la tecla de hangup y colgar la llamada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Como ver los directorios de un NAS a montar con NFS ==&lt;br /&gt;
&lt;br /&gt;
Con el siguiente comando vemos los diferentes volúmenes de un NAS:&lt;br /&gt;
&lt;br /&gt;
 showmount -e IP_NAS&lt;br /&gt;
&lt;br /&gt;
Ejemplo de salida:&lt;br /&gt;
&lt;br /&gt;
 Export list for 192.168.10.10:&lt;br /&gt;
 /Backup/backup       *&lt;br /&gt;
 /DISCOS_1/VOL1_AUDIO *&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Instalación de ActivaSTP con VIVAit Call 3 y marcación desde Outlook ==&lt;br /&gt;
&lt;br /&gt;
Instalamos ActivaSTP desde:&lt;br /&gt;
 &lt;br /&gt;
 (http://activa.sourceforge.net/)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- *SIPTAPI, según la pagina Web, su ultima versión publicada es del 2014 con versión 0.2.17 (http://activa.sourceforge.net/)&lt;br /&gt;
&lt;br /&gt;
Hemos probado con http://www.xtelsio.com/en/products/ast_tsp/tapi_for_asterisk.htm.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La configuración necesaria se muestra en la siguiente imagen:&lt;br /&gt;
&lt;br /&gt;
[[File:Ventana ActivaTSP.jpg]]&lt;br /&gt;
&lt;br /&gt;
 El usuario del manager debe tener permisos originate para poder realizar llamadas.&lt;br /&gt;
&lt;br /&gt;
Se han realizado pruebas con Outlook 2013.&lt;br /&gt;
&lt;br /&gt;
Se ha comprobado la correcta realización de pruebas utilizando ActivaSTP, realizadon llamadas desde la pestaña &amp;quot;personas&amp;quot; con la vista en modo tarjeta de Pesentación, tarjeta, teléfono o lista.&lt;br /&gt;
&lt;br /&gt;
Outlook 2013 no da la opción de llamar si la vista está en modo personas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Como volver a procesar grabaciones con error ==&lt;br /&gt;
&lt;br /&gt;
Las grabaciones con error son aquellas que tienen el valor E_GRABACION=120 en la tabla DAT_GRABACIONES.&lt;br /&gt;
&lt;br /&gt;
Las grabaciones con error se producen normalmente por la pérdida de conexión entre el nodo servidor de grabaciones y el resto.&lt;br /&gt;
&lt;br /&gt;
Para reprocesar la grabación hay que modificar el campo E_GRABACION de la tabla DAT_GRABACIONES y ponerlo con valor 20 para que así el recordCentral la vuelva a procesar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Problemas de conmutación en cluster ==&lt;br /&gt;
El problema detectado fue que en la conmutacion de maquinas en el cluster cuando el control lo tiene la maquina 2 no funciona el servicio phoneprov-tftp.&lt;br /&gt;
&lt;br /&gt;
Hay que hacer las siguientes comprobaciones:&lt;br /&gt;
&lt;br /&gt;
 Que el directorio /var/lib/phoneprov-tftp esté en la partición /HDcluster&lt;br /&gt;
 Que fichero /etc/MDtel/phoneprov-tftp esté puesta como IP de la máquina la IP flotante del cluster (campo $dbHost)&lt;br /&gt;
 Que el servicio phoneprov-tftp del directorio /usr/local/sbin/phoneprov-tftp.pl tenga permisos de ejecución 755&lt;br /&gt;
 Que exista el fichero /etc/init/phoneprov-tftp.conf&lt;br /&gt;
&lt;br /&gt;
Para más información ver los log del phoneprov en /var/log/phoneprov-tftp.log&lt;br /&gt;
&lt;br /&gt;
El problema era que no se encontraba instalado el paquete phoneprov-tftp, hay que instalarlo manualmente. Instalar el paquete libnet-tftpd-perl.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Como borrar contenido de la tabla BDTR con el script borraRegistrosNimitz.pl ==&lt;br /&gt;
&lt;br /&gt;
Este script se ejecuta mediante una tarea del crontab, tal como la siguiente:&lt;br /&gt;
&lt;br /&gt;
 SHELL=/bin/sh&lt;br /&gt;
 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin&lt;br /&gt;
 # m h dom mon dow user  command&lt;br /&gt;
 00 01     * * *   root    /usr/local/sbin/borraRegistrosNimitz.pl --hDB localhost&lt;br /&gt;
&lt;br /&gt;
Para establecer el número de días que vamos a dejar en la base de datos debemos editar el archivo borraRegistrosNimitz.pl, el campo my $numDias.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ocasionalmente No saltan los formularios en  '''VIVAit Suite''' cuando existen marcadores ==&lt;br /&gt;
En los sistemas con marcadores, se ha observado que, en un porcentaje muy bajo, cuando entra una llamada a un agente no se presenta el formulario. &lt;br /&gt;
En una traza del vivait-desk se pudo comprobar que no había eventos CTI de la llamada, pero telefónicamente la llamada si quedaba establecida.&lt;br /&gt;
&lt;br /&gt;
El problema viene ocasionado porque el CTI tiene auditorías para descartar llamadas,evitando que se queden enganchadas.&lt;br /&gt;
&lt;br /&gt;
Una de esas auditorías es el tiempo máximo de las llamadas no contestadas.&lt;br /&gt;
&lt;br /&gt;
El marcador tiene puesto a fuego que el tiempo que permanece una llamada en cola a la espera de un agente libre es de 10 minutos.&lt;br /&gt;
&lt;br /&gt;
Hay que poner el tiempo de auditoría en un valor superior (por ejemplo 12 minutos)&lt;br /&gt;
&lt;br /&gt;
En el archivo de configuración '''vivait-cti.conf'''&lt;br /&gt;
&lt;br /&gt;
 audit_call_minutNoContestada = 12&lt;br /&gt;
&lt;br /&gt;
El paŕametro audit_call_minutContestada, es el tiempo que el cti &amp;quot;conserva&amp;quot; una llamada, dado que el dialplan tiene puesto el timeout absolute a 7200 (120 minutos), deberiamos modificar este parámetro para que esté sincronizado&lt;br /&gt;
&lt;br /&gt;
 audit_call_minutContestada = 120&lt;br /&gt;
&lt;br /&gt;
Estos cambios se implementarán en el instalador de la próxima versión.&lt;br /&gt;
&lt;br /&gt;
== Generación de un Core ==&lt;br /&gt;
Un Core es la memoria de un programa.&lt;br /&gt;
&lt;br /&gt;
Para generar un Core rápido con Asterisk hay que hacer lo siguiente:&lt;br /&gt;
&lt;br /&gt;
    Ejecutar ps aux | grep asterisk y coger el PID del programa&lt;br /&gt;
    gdb /usr/sbin/asterisk [PID]&lt;br /&gt;
    gcore [file]&lt;br /&gt;
&lt;br /&gt;
== Activación de la movilidad para un usuario ==&lt;br /&gt;
&lt;br /&gt;
Una vez configurada la movilidad e intentar activarla nos da error cuando le ponemos el usuario y la contraseña.&lt;br /&gt;
&lt;br /&gt;
La configuración del usuario es la siguiente:&lt;br /&gt;
&lt;br /&gt;
[[File:Problema.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para que la movilidad funcione hay que asignar un teléfono a la extensión, quedando la configuración de esta manera:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Asignacion_de_telefono.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Como se muestra el número llamante en transferencia desde operadora ==&lt;br /&gt;
Para tener el número ANI en las transferencias con consulta hay que realizar lo siguiente:&lt;br /&gt;
 Copiar el archivo adjunto (app_esConsulta.c) en el directorio apps de Asterisk (normalmente /usr/src/vivait-call/asterisk/apps).&lt;br /&gt;
    Situarse en el directorio raiz de Asterisk (normalmente /usr/src/vivait-call/asterisk/).&lt;br /&gt;
    Compilar: make&lt;br /&gt;
    Instalar: make install&lt;br /&gt;
    Habilitar el nuevo módulo: asterisk -rx 'module load app_esConsulta.so'&lt;br /&gt;
    Si la carga del módulo no funcionara, hay que el reiniciar Asterisk para que cargue el módulo.&lt;br /&gt;
&lt;br /&gt;
Posteriormente modificar el fichero ext_Enrutador_Particular.conf de la siguiente forma:&lt;br /&gt;
&lt;br /&gt;
 [Cen_Enrutador_Particular]&lt;br /&gt;
 exten =&amp;gt; [*#%0-9].,1,NoOp(MDENRUPAR**EXTEN=${EXTEN}**CID=${CALLERID(NUM)}*)&lt;br /&gt;
 same =&amp;gt;           n,NoOp(calleridAntes=${CALLERID(num)})&lt;br /&gt;
 same =&amp;gt;           n,esConsulta&lt;br /&gt;
 same =&amp;gt;           n,GotoIf($[&amp;quot;${consultaANI}&amp;quot;=&amp;quot;&amp;quot;]?noConsulta)&lt;br /&gt;
 ;same =&amp;gt;           n,Set(CALLERID(name)=\Transfer:${consultaANI}\)&lt;br /&gt;
 same =&amp;gt;            n,Set(_R_CID_NUM_00=${consultaANI})&lt;br /&gt;
 same =&amp;gt;           n,GotoIf($[&amp;quot;${consultaNOM}&amp;quot;=&amp;quot;&amp;quot;]?noNom)&lt;br /&gt;
 ;same =&amp;gt;           n,Set(CALLERID(name)=\Transfer:${consultaNOM}\)&lt;br /&gt;
 same =&amp;gt;            n,Set(_R_CID_NAME_00=${consultaNOM})&lt;br /&gt;
 same =&amp;gt;           n(noNom),Set(_R_CID_NUM_00=${consultaANI})&lt;br /&gt;
 same =&amp;gt;           n,NoOp(callerIDdespues=${CALLERID(num)})&lt;br /&gt;
 same =&amp;gt;           n(noConsulta),NoOP(noConsulta)&lt;br /&gt;
 ;same =&amp;gt;           n,Set(CALLERID(num)=${consultaANI})&lt;br /&gt;
 same =&amp;gt;            n,Return&lt;br /&gt;
&lt;br /&gt;
En caso de que ya haya algo añadido en el fichero, hay que analizar en que posición se pondrá el contenido anterior para que no se vea modificado el funcionamiento de la centralita&lt;br /&gt;
&lt;br /&gt;
== Como conseguir que los tonos dtmf no sean regenerados por Asterisk ==&lt;br /&gt;
&lt;br /&gt;
Para que los tonos dtmf no sean regenerados por Asterisk hay que:&lt;br /&gt;
&lt;br /&gt;
 cd /usr/src/MDtel/asterisk/apps/&lt;br /&gt;
 cp /tmp/app_setoption.c .&lt;br /&gt;
 ls -l app_setoption.c&lt;br /&gt;
 cd ..&lt;br /&gt;
 make menuconfig (comprobar que todo está bien)&lt;br /&gt;
 make (comprobar que compila la nueva app)&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EJEMPLO: los tonos dtmf entran por &amp;quot;Trunk_GW_MAQUETAS&amp;quot; y va a la extensión 4175.&lt;br /&gt;
&lt;br /&gt;
Creamos un nuevo contexto por el trunk de entrada que queremos activar esta opción (o lo aplicamos a todos si procede, dependerá de cada instalación)&lt;br /&gt;
&lt;br /&gt;
'''PARA LA ENTRADA:'''&lt;br /&gt;
    sip_trunkExt_WEB.conf&lt;br /&gt;
        Trunk_GW_MAQUETAS&lt;br /&gt;
            context=Cen_Inicio_TrunkSip_Maqueta&lt;br /&gt;
            dtmfmode=inband&lt;br /&gt;
            directmedia=no&lt;br /&gt;
            disallow=all&lt;br /&gt;
            allow=alaw&lt;br /&gt;
&lt;br /&gt;
    ext_InicioLlamada_TrunkSIP_Particular.conf&lt;br /&gt;
        [Cen_Inicio_TrunkSip_Maqueta]&lt;br /&gt;
            exten =&amp;gt; _X.,1,NoOp(MDINITRUNSIPPAR**EXTEN=${EXTEN}**CID=${CALLERID(NUM)}*)&lt;br /&gt;
            same =&amp;gt;            n,SetChannelOption(14,0)&lt;br /&gt;
            same =&amp;gt;            n,Goto(Cen_Inicio_TrunkSip,${EXTEN},1)&lt;br /&gt;
            same =&amp;gt;            n,Return()&lt;br /&gt;
            &lt;br /&gt;
'''PARA LA SALIDA:'''&lt;br /&gt;
    ext_MARCAR_Extension_Dial.conf&lt;br /&gt;
        [Cen_Marcar_Extension_Dial_Gosub]&lt;br /&gt;
             same =&amp;gt;  n,ExecIf($[&amp;quot;${PASARTONOS}&amp;quot;=&amp;quot;1&amp;quot;]?SetChannelOption(14,0))    (AÑADIMOS)&lt;br /&gt;
             &lt;br /&gt;
     sip_WEB.conf&lt;br /&gt;
        El peer debe tener:&lt;br /&gt;
            PASARTONOS =&amp;gt; 1     ;Variable declarada para el contexto ext_MARCAR_Externo_Dial en la macro&lt;br /&gt;
            dtmfmode=inband&lt;br /&gt;
            directmedia=no&lt;br /&gt;
            disallow=all&lt;br /&gt;
            allow=alaw&lt;br /&gt;
             &lt;br /&gt;
Paramos y arrancamos Asterisk (ya que hemos compilado y aprovechamos para recargar DialPlan)&lt;br /&gt;
&lt;br /&gt;
Para comprobar el funcionamiento:&lt;br /&gt;
&lt;br /&gt;
'''En Asterisk:'''&lt;br /&gt;
&lt;br /&gt;
    core set debug 1&lt;br /&gt;
        Hacer llamada descolgando la misma&lt;br /&gt;
    core set debug 0&lt;br /&gt;
&lt;br /&gt;
Revisar el log de Asterisk y comprobar que en ambos canales de la llamada aparece &amp;quot;Disabling digit detection&amp;quot; (si no aparece, algo falta por configurar):&lt;br /&gt;
    chan_sip.c: Disabling digit detection on SIP/4175-00000031&lt;br /&gt;
    chan_sip.c: Disabling digit detection on SIP/Trunk_GW_MAQUETAS-00000030&lt;br /&gt;
&lt;br /&gt;
== Problemas en la bbdd de replica, tabla COM_COMUNICADOS ==&lt;br /&gt;
&lt;br /&gt;
De forma intermitente en esta tabla se generan registros duplicados y hay que borrar registros y arrancar la Réplica para que todo vuelva a funcionar.&lt;br /&gt;
&lt;br /&gt;
El problema consiste en el el script borraRegistrosNimitz.pl borra la tabla entera, sin tener en cuenta el número de días que queremos dejar de backup; esto provoca que se vuelvan a repetir los índices de la BD.&lt;br /&gt;
&lt;br /&gt;
Hay que modificar el script de la siguiente forma:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 dentro de la sentencia elsif($tablas[$i] eq &amp;quot;COM_COMUNICADOS&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Hay que sustituir la sentencia&lt;br /&gt;
 $query = &amp;quot;DELETE FROM $tablas[$i;&lt;br /&gt;
&lt;br /&gt;
Por esta otra:&lt;br /&gt;
 $query = &amp;quot;DELETE FROM $tablas[$i] where D_HORA_FIN &amp;lt; DATE_SUB(NOW, INTERVAL $numDias DAY) LIMIT 100&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simple_bridge y native_rtp ==&lt;br /&gt;
&lt;br /&gt;
Para ver en que modo de funcionamiento esta la llamada escribiremos el siguiente comando.&lt;br /&gt;
&lt;br /&gt;
homologacion-corp0*CLI&amp;gt; bridge show all&lt;br /&gt;
Bridge-ID                            Chans Type            Technology&lt;br /&gt;
b40f41e3-0028-46d4-8c7c-34999090680f     2 basic           native_rtp&lt;br /&gt;
&lt;br /&gt;
El simple_bridgfe es el peor funcionamiento posible en el asterisk, hay que intentar estar siempre en native_rtp.&lt;br /&gt;
&lt;br /&gt;
El native_rtp tiene dos modos de funcionamiento que se ve al ejecutar el comando siguiente:&lt;br /&gt;
&lt;br /&gt;
homologacion-corp0*CLI&amp;gt; sip show channel 6d7c7a13176fc340180528281d4bcc3a@172.25.128.91:5060&lt;br /&gt;
  Audio IP:               172.25.129.102 (Outside bridge)&lt;br /&gt;
&lt;br /&gt;
En el campo Auidio Bridge podemos ver el valor Local o Outside bridge. En el modo local no se maneja al el audio por lo que no hay RTP directo entre teléfonos y pasa a través del asterisk, mientras que en modo Outside bridge si que hay rtp directo.&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=BD.ACD_COLAS&amp;diff=6361</id>
		<title>BD.ACD COLAS</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=BD.ACD_COLAS&amp;diff=6361"/>
		<updated>2017-10-11T09:39:51Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* N_PESO_OBJ_SERV */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Descripción==&lt;br /&gt;
&lt;br /&gt;
Listado de grupos ACD&lt;br /&gt;
&lt;br /&gt;
==Campos==&lt;br /&gt;
&lt;br /&gt;
===ID===&lt;br /&gt;
INT NOT NULL AUTO_INCREMENT,&lt;br /&gt;
===C_NOMBRE===&lt;br /&gt;
VARCHAR(45) NOT NULL COMMENT 'Valor de la extensión de la cola',&lt;br /&gt;
===ID_CAMPANNA===&lt;br /&gt;
INT NULL COMMENT 'Valor del ID de la campaña asociada a la cola',&lt;br /&gt;
===ID_PLANTILLA===&lt;br /&gt;
INT NULL COMMENT 'Valor ID de la plantilla asociada a la cola',&lt;br /&gt;
===ID_SUPERCOLA===&lt;br /&gt;
INT NULL COMMENT 'Valor del ID de la supercola asociada',&lt;br /&gt;
===ID_MUSICA_ESPERA===&lt;br /&gt;
INT NULL COMMENT 'Valor del ID de la música en espera asociada a la cola',&lt;br /&gt;
===ID_NODO===&lt;br /&gt;
INT NULL COMMENT 'Valor del ID del equipo donde esta instalado el asterisk',&lt;br /&gt;
===C_DESCRIPCION===&lt;br /&gt;
VARCHAR(1024) NULL COMMENT 'Descripción de la cola',&lt;br /&gt;
===C_NOTAS===&lt;br /&gt;
VARCHAR(1024) NULL,&lt;br /&gt;
===N_OBJ_SERV===&lt;br /&gt;
INT NULL COMMENT 'Objetivo de servicio de la cola. Este valor lo consulta el intz-nimitz por cada llamada que se realiza a la cola',&lt;br /&gt;
&lt;br /&gt;
===N_PESO_OBJ_SERV===&lt;br /&gt;
INT NULL COMMENT 'Peso de la cola, a valor más alto, más prioritaria es la cola. Este valor lo consulta el intz-nimitz por cada llamada que se realiza a la cola',&lt;br /&gt;
&lt;br /&gt;
===ID_FORMULARIO===&lt;br /&gt;
INT(11) NULL DEFAULT NULL COMMENT 'Valor del ID del formulario asociado a la cola',&lt;br /&gt;
===C_ACCION_SAL===&lt;br /&gt;
VARCHAR(255) NULL COMMENT 'Campo acción si el formulario es Integrado o Integrado URL',&lt;br /&gt;
===N_ACCION_SAL_PAR1===&lt;br /&gt;
INT NULL COMMENT 'Valor del primer parámetro del campo acción',&lt;br /&gt;
===N_ACCION_SAL_PAR2===&lt;br /&gt;
INT NULL COMMENT 'Valor del segundo parámetro del campo acción',&lt;br /&gt;
===C_ACCION_SAL_PAR3===&lt;br /&gt;
VARCHAR(128) NULL COMMENT 'Valor del tercero parámetro del campo acción',&lt;br /&gt;
===C_ACCION_SAL_PAR4===&lt;br /&gt;
VARCHAR(128) NULL COMMENT 'Valor del cuarto parámetro del campo acción',&lt;br /&gt;
===N_TIEMPO_ADMINISTRATIVO===&lt;br /&gt;
INT NULL COMMENT 'Valor del tiempo administrativo de la cola',&lt;br /&gt;
===E_TIPO_COLA===&lt;br /&gt;
INT NULL &lt;br /&gt;
&lt;br /&gt;
[[BD.ENUM.TTipoCola|TTipoCola]]&lt;br /&gt;
&lt;br /&gt;
===C_CALLERID_SAL===&lt;br /&gt;
VARCHAR(45) CHARACTER SET 'utf8' NULL DEFAULT NULL COMMENT '\n',&lt;br /&gt;
===C_CALLERID_NAME_SAL===&lt;br /&gt;
VARCHAR(45) CHARACTER SET 'utf8' NULL DEFAULT NULL COMMENT '\n',&lt;br /&gt;
===B_FINALES_GENERICOS===&lt;br /&gt;
TINYINT(1) NULL COMMENT 'Habilitar o no finales genéricos a la cola',&lt;br /&gt;
===ID_EJE1===&lt;br /&gt;
INT NULL COMMENT 'Eje perteneciente a la cola',&lt;br /&gt;
===ID_EJE2===&lt;br /&gt;
INT NULL COMMENT 'Eje perteneciente a la cola',&lt;br /&gt;
===ID_EJE3===&lt;br /&gt;
INT NULL COMMENT 'Eje perteneciente a la cola',&lt;br /&gt;
===ID_EJE4===&lt;br /&gt;
INT NULL COMMENT 'Eje perteneciente a la cola',&lt;br /&gt;
===N_LLAM_SAL_MAX===&lt;br /&gt;
INT(11) NULL DEFAULT NULL COMMENT 'Numero maximo de llamadas salientes simultaneas de agentes en colas de marcación saliente ',&lt;br /&gt;
===B_AGEN_TMP_ADMIN_NO_DISP===&lt;br /&gt;
TINYINT(1) NULL COMMENT 'No permitir tiempo administrativo al agente ',&lt;br /&gt;
===ID_ALGORITMO_PREDICTIVO===&lt;br /&gt;
INT NULL COMMENT 'Algoritmo predictivo de marcación saliente asociado a la cola',&lt;br /&gt;
===N_PARAM1_PREDICTIVO===&lt;br /&gt;
INT NULL COMMENT 'Valor del primer parámetro del algoritmo predictivo',&lt;br /&gt;
===N_PARAM2_PREDICTIVO===&lt;br /&gt;
INT NULL COMMENT 'Valor del segundo parámetro del algoritmo predictivo',&lt;br /&gt;
===N_PARAM3_PREDICTIVO===&lt;br /&gt;
INT NULL COMMENT 'Valor del tercer parámetro del algoritmo predictivo',&lt;br /&gt;
===N_PARAM4_PREDICTIVO===&lt;br /&gt;
INT NULL COMMENT 'Valor del cuarto parámetro del algoritmo predictivo',&lt;br /&gt;
===N_PARAM5_PREDICTIVO===&lt;br /&gt;
INT NULL COMMENT 'Valor del quinto parámetro del algoritmo predictivo',&lt;br /&gt;
===N_PARAM6_PREDICTIVO===&lt;br /&gt;
INT NULL COMMENT 'Valor del sexto parámetro del algoritmo predictivo',&lt;br /&gt;
===N_PARAM7_PREDICTIVO===&lt;br /&gt;
INT NULL COMMENT 'Valor del septimo parámetro del algoritmo predictivo',&lt;br /&gt;
===N_PARAM8_PREDICTIVO===&lt;br /&gt;
INT NULL COMMENT 'Valor del octavo parámetro del algoritmo predictivo',&lt;br /&gt;
===C_NOMBRE_COD_CLIENTE===&lt;br /&gt;
VARCHAR(45) NULL COMMENT 'Nombre o código del cliente',&lt;br /&gt;
===N_WRAPUPTIME===&lt;br /&gt;
INT NOT NULL DEFAULT 2 COMMENT 'Parámetro wrapuptime de las colas de asterisk, diferente del tiempo administrativo que lo utiliza el desk',&lt;br /&gt;
===E_MODO_GRABACION===&lt;br /&gt;
INT NULL &lt;br /&gt;
&lt;br /&gt;
[[BD.ENUM.TModoGrabacion|TModoGrabacion]].&lt;br /&gt;
&lt;br /&gt;
Lo usa vivait-desk y el enrutador para ver si se graba.&lt;br /&gt;
&lt;br /&gt;
===B_GRABAR_SEG_COLA===&lt;br /&gt;
TINYINT(1) NOT NULL DEFAULT 0,&lt;br /&gt;
===E_ENRU_GRABAR===&lt;br /&gt;
TINYINT(1) NOT NULL DEFAULT 0 COMMENT 'TTipoEnruGrabar',&lt;br /&gt;
===C_NOMBRE_MOSTRAR===&lt;br /&gt;
VARCHAR(45) NULL,&lt;br /&gt;
===ID_CATEGORIA===&lt;br /&gt;
INT NULL,&lt;br /&gt;
===ID_INFORME_CALIDAD===  &lt;br /&gt;
INT NULL &lt;br /&gt;
&lt;br /&gt;
ID dela tabla de informes de calidad. [[BD.ACD_INFORMES_CALIDAD|ACD_INFORMES_CALIDAD]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===B_NO_USAR===&lt;br /&gt;
TINYINT(1) NOT NULL DEFAULT 0 COMMENT 'Habilitar o no el uso de la cola',&lt;br /&gt;
&lt;br /&gt;
==índices==&lt;br /&gt;
&lt;br /&gt;
  PRIMARY KEY (`ID`),&lt;br /&gt;
  INDEX `IDX_NOMBRE` (`C_NOMBRE` ASC)&lt;br /&gt;
&lt;br /&gt;
==índices réplica==&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=BD.ACD_COLAS&amp;diff=6360</id>
		<title>BD.ACD COLAS</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=BD.ACD_COLAS&amp;diff=6360"/>
		<updated>2017-10-11T09:39:40Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* N_OBJ_SERV */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Descripción==&lt;br /&gt;
&lt;br /&gt;
Listado de grupos ACD&lt;br /&gt;
&lt;br /&gt;
==Campos==&lt;br /&gt;
&lt;br /&gt;
===ID===&lt;br /&gt;
INT NOT NULL AUTO_INCREMENT,&lt;br /&gt;
===C_NOMBRE===&lt;br /&gt;
VARCHAR(45) NOT NULL COMMENT 'Valor de la extensión de la cola',&lt;br /&gt;
===ID_CAMPANNA===&lt;br /&gt;
INT NULL COMMENT 'Valor del ID de la campaña asociada a la cola',&lt;br /&gt;
===ID_PLANTILLA===&lt;br /&gt;
INT NULL COMMENT 'Valor ID de la plantilla asociada a la cola',&lt;br /&gt;
===ID_SUPERCOLA===&lt;br /&gt;
INT NULL COMMENT 'Valor del ID de la supercola asociada',&lt;br /&gt;
===ID_MUSICA_ESPERA===&lt;br /&gt;
INT NULL COMMENT 'Valor del ID de la música en espera asociada a la cola',&lt;br /&gt;
===ID_NODO===&lt;br /&gt;
INT NULL COMMENT 'Valor del ID del equipo donde esta instalado el asterisk',&lt;br /&gt;
===C_DESCRIPCION===&lt;br /&gt;
VARCHAR(1024) NULL COMMENT 'Descripción de la cola',&lt;br /&gt;
===C_NOTAS===&lt;br /&gt;
VARCHAR(1024) NULL,&lt;br /&gt;
===N_OBJ_SERV===&lt;br /&gt;
INT NULL COMMENT 'Objetivo de servicio de la cola. Este valor lo consulta el intz-nimitz por cada llamada que se realiza a la cola',&lt;br /&gt;
&lt;br /&gt;
===N_PESO_OBJ_SERV===&lt;br /&gt;
INT NULL COMMENT 'Peso de la cola, a valor más alto, más prioritaria es la cola.',&lt;br /&gt;
===ID_FORMULARIO===&lt;br /&gt;
INT(11) NULL DEFAULT NULL COMMENT 'Valor del ID del formulario asociado a la cola',&lt;br /&gt;
===C_ACCION_SAL===&lt;br /&gt;
VARCHAR(255) NULL COMMENT 'Campo acción si el formulario es Integrado o Integrado URL',&lt;br /&gt;
===N_ACCION_SAL_PAR1===&lt;br /&gt;
INT NULL COMMENT 'Valor del primer parámetro del campo acción',&lt;br /&gt;
===N_ACCION_SAL_PAR2===&lt;br /&gt;
INT NULL COMMENT 'Valor del segundo parámetro del campo acción',&lt;br /&gt;
===C_ACCION_SAL_PAR3===&lt;br /&gt;
VARCHAR(128) NULL COMMENT 'Valor del tercero parámetro del campo acción',&lt;br /&gt;
===C_ACCION_SAL_PAR4===&lt;br /&gt;
VARCHAR(128) NULL COMMENT 'Valor del cuarto parámetro del campo acción',&lt;br /&gt;
===N_TIEMPO_ADMINISTRATIVO===&lt;br /&gt;
INT NULL COMMENT 'Valor del tiempo administrativo de la cola',&lt;br /&gt;
===E_TIPO_COLA===&lt;br /&gt;
INT NULL &lt;br /&gt;
&lt;br /&gt;
[[BD.ENUM.TTipoCola|TTipoCola]]&lt;br /&gt;
&lt;br /&gt;
===C_CALLERID_SAL===&lt;br /&gt;
VARCHAR(45) CHARACTER SET 'utf8' NULL DEFAULT NULL COMMENT '\n',&lt;br /&gt;
===C_CALLERID_NAME_SAL===&lt;br /&gt;
VARCHAR(45) CHARACTER SET 'utf8' NULL DEFAULT NULL COMMENT '\n',&lt;br /&gt;
===B_FINALES_GENERICOS===&lt;br /&gt;
TINYINT(1) NULL COMMENT 'Habilitar o no finales genéricos a la cola',&lt;br /&gt;
===ID_EJE1===&lt;br /&gt;
INT NULL COMMENT 'Eje perteneciente a la cola',&lt;br /&gt;
===ID_EJE2===&lt;br /&gt;
INT NULL COMMENT 'Eje perteneciente a la cola',&lt;br /&gt;
===ID_EJE3===&lt;br /&gt;
INT NULL COMMENT 'Eje perteneciente a la cola',&lt;br /&gt;
===ID_EJE4===&lt;br /&gt;
INT NULL COMMENT 'Eje perteneciente a la cola',&lt;br /&gt;
===N_LLAM_SAL_MAX===&lt;br /&gt;
INT(11) NULL DEFAULT NULL COMMENT 'Numero maximo de llamadas salientes simultaneas de agentes en colas de marcación saliente ',&lt;br /&gt;
===B_AGEN_TMP_ADMIN_NO_DISP===&lt;br /&gt;
TINYINT(1) NULL COMMENT 'No permitir tiempo administrativo al agente ',&lt;br /&gt;
===ID_ALGORITMO_PREDICTIVO===&lt;br /&gt;
INT NULL COMMENT 'Algoritmo predictivo de marcación saliente asociado a la cola',&lt;br /&gt;
===N_PARAM1_PREDICTIVO===&lt;br /&gt;
INT NULL COMMENT 'Valor del primer parámetro del algoritmo predictivo',&lt;br /&gt;
===N_PARAM2_PREDICTIVO===&lt;br /&gt;
INT NULL COMMENT 'Valor del segundo parámetro del algoritmo predictivo',&lt;br /&gt;
===N_PARAM3_PREDICTIVO===&lt;br /&gt;
INT NULL COMMENT 'Valor del tercer parámetro del algoritmo predictivo',&lt;br /&gt;
===N_PARAM4_PREDICTIVO===&lt;br /&gt;
INT NULL COMMENT 'Valor del cuarto parámetro del algoritmo predictivo',&lt;br /&gt;
===N_PARAM5_PREDICTIVO===&lt;br /&gt;
INT NULL COMMENT 'Valor del quinto parámetro del algoritmo predictivo',&lt;br /&gt;
===N_PARAM6_PREDICTIVO===&lt;br /&gt;
INT NULL COMMENT 'Valor del sexto parámetro del algoritmo predictivo',&lt;br /&gt;
===N_PARAM7_PREDICTIVO===&lt;br /&gt;
INT NULL COMMENT 'Valor del septimo parámetro del algoritmo predictivo',&lt;br /&gt;
===N_PARAM8_PREDICTIVO===&lt;br /&gt;
INT NULL COMMENT 'Valor del octavo parámetro del algoritmo predictivo',&lt;br /&gt;
===C_NOMBRE_COD_CLIENTE===&lt;br /&gt;
VARCHAR(45) NULL COMMENT 'Nombre o código del cliente',&lt;br /&gt;
===N_WRAPUPTIME===&lt;br /&gt;
INT NOT NULL DEFAULT 2 COMMENT 'Parámetro wrapuptime de las colas de asterisk, diferente del tiempo administrativo que lo utiliza el desk',&lt;br /&gt;
===E_MODO_GRABACION===&lt;br /&gt;
INT NULL &lt;br /&gt;
&lt;br /&gt;
[[BD.ENUM.TModoGrabacion|TModoGrabacion]].&lt;br /&gt;
&lt;br /&gt;
Lo usa vivait-desk y el enrutador para ver si se graba.&lt;br /&gt;
&lt;br /&gt;
===B_GRABAR_SEG_COLA===&lt;br /&gt;
TINYINT(1) NOT NULL DEFAULT 0,&lt;br /&gt;
===E_ENRU_GRABAR===&lt;br /&gt;
TINYINT(1) NOT NULL DEFAULT 0 COMMENT 'TTipoEnruGrabar',&lt;br /&gt;
===C_NOMBRE_MOSTRAR===&lt;br /&gt;
VARCHAR(45) NULL,&lt;br /&gt;
===ID_CATEGORIA===&lt;br /&gt;
INT NULL,&lt;br /&gt;
===ID_INFORME_CALIDAD===  &lt;br /&gt;
INT NULL &lt;br /&gt;
&lt;br /&gt;
ID dela tabla de informes de calidad. [[BD.ACD_INFORMES_CALIDAD|ACD_INFORMES_CALIDAD]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===B_NO_USAR===&lt;br /&gt;
TINYINT(1) NOT NULL DEFAULT 0 COMMENT 'Habilitar o no el uso de la cola',&lt;br /&gt;
&lt;br /&gt;
==índices==&lt;br /&gt;
&lt;br /&gt;
  PRIMARY KEY (`ID`),&lt;br /&gt;
  INDEX `IDX_NOMBRE` (`C_NOMBRE` ASC)&lt;br /&gt;
&lt;br /&gt;
==índices réplica==&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_plataforma_VIVAit&amp;diff=6048</id>
		<title>Manual de operación plataforma VIVAit</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_plataforma_VIVAit&amp;diff=6048"/>
		<updated>2017-08-07T09:58:07Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* Generación de un Core */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!! '''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; ALFREDO: INSISTIR EN EXPLICAR CONCEPTOS&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
En este documento se describe la arquitectura general de la plataforma '''''VIVA'''''it, detallando aquellos procesos principales que componen cada uno de los elementos del sistema, y sus principales elementos de diagnóstico&lt;br /&gt;
Quedan fuera del ámbito de este documento:&lt;br /&gt;
* Uso de aplicación de agente ('''''VIVA'''''it Desk)&lt;br /&gt;
* Uso de aplicación de supervisor ('''''VIVA'''''it Supervisor), incluyendo sus módulos autónomos ('''''VIVA'''''it reporting, '''''VIVA'''''it Tracker)&lt;br /&gt;
* Uso de portal de administración&lt;br /&gt;
* Uso de portal de traceo de llamadas y agentes ('''''VIVA'''''it Tracker web)&lt;br /&gt;
* Uso de portal de monitorización zabbix&lt;br /&gt;
&lt;br /&gt;
== Arquitectura ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura plataforma VIVAit.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Descripción de los elementos, diagnósticos y operaciones ==&lt;br /&gt;
Las siguientes tablas definen los principales elementos software de la plataforma '''''VIVA'''''it, que son detallados en apartados siguientes:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de sistema operativo'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu Server LTS 64 bits || Uno por servidor|| ||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|| Actualmente (Oct-2015) 14.04&lt;br /&gt;
Bajo proyecto puede cambiarse&lt;br /&gt;
|-&lt;br /&gt;
| Almacenamiento de grabaciones|| Uno por sistema|| Almacenamiento de las grabaciones, ya sean de entorno corporativo o de contact center||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|| Típicamente un espacio grande de almacenamiento proporcionado por el cliente y que se monta como un sistema de archivos local en los servidores de la plataforma&lt;br /&gt;
Pueden existir sistemas secundarios de almacenamiento de grabaciones&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de conmutación de voz'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Asterisk 1.4.24 by MDtel||Uno por servidor ACD||Núcleo de conmutación de voz basado en Asterisk 1.4 y modificado por MDtel||'''''VIVA'''''it Suite||Fuertemente modificado por MDtel&lt;br /&gt;
En el futuro migrará a Asterisk 13 Certified&lt;br /&gt;
|-&lt;br /&gt;
|Dialplan ACD by MDtel||Uno por servidor ACD||Configuración de voz||'''''VIVA'''''it Suite||En el futuro se unificará con corporativa&lt;br /&gt;
|-&lt;br /&gt;
|Asterisk 13 Certified by MDtel||Uno por servidor corporativo/gateway||Núcleo de conmutación de voz basado en Asterisk 13 y modificado por MDtel||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Actualmente asterisk estándar (10/15)&lt;br /&gt;
La instalación contempla descargar de la red el más actualizado, siempre CERTIFIED&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Dialplan corporativo||Uno por servidor corporativo/gateway||Configuración de voz||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||En el futuro se unificará con ACD&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de base de datos'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|MySQL 5.5||Donde haya BBDD de cualquier tipo (incluso zabbix)||Motor de Base de Datos||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||A efectos prácticos va a ser en todos los servidores con casi total seguridad&lt;br /&gt;
|-&lt;br /&gt;
|BBDD tiempo real||Una por sistema||Base de Datos sobre la que trabaja todo el entorno de tiempo real||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|BBDD réplica||Una por sistema multinodo||Base de Datos para acceso a información de reporting…y similar||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de una&lt;br /&gt;
En el nodo en el que exista réplica existirá además copia (excepto nodo ACD)&lt;br /&gt;
|-&lt;br /&gt;
|BBDD copia||Uno por servidor corporativo/gateway||Copias de tablas de configuración para respaldo de la misma||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Local en cada nodo&lt;br /&gt;
Los nodos de ACD actualmente no trabajan con copia; en caso de fallo de BBDD TR se usa el modo emergencia&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de procesos ''VIVA''it'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Intz-Nimitz||Donde haya una BBDD de tiempo real o copia||Interfaz entre el dialplan y la base de datos||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||No donde haya BBDD de réplica&lt;br /&gt;
Sistemas grandes pueden contemplar mas de un intz-nimitz central&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|vivait-cti||Uno por servidor ACD||Interfaz entre '''''VIVA'''''it Desk, supervisor y el manager de asterisk||'''''VIVA'''''it Suite||&lt;br /&gt;
|-&lt;br /&gt;
|myAcdSuperv||Uno por servidor ACD||Recopilador de datos de asterisk y actualiza en la BBDD&lt;br /&gt;
Genera llamadas en el marcador&lt;br /&gt;
||'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|motorSal||Uno por sistema con ACD||Motor de marcador saliente automático||'''''VIVA'''''it Suite||Solo si hay marcación saliente&lt;br /&gt;
Junto a la BBDD de tiempo real&lt;br /&gt;
|-&lt;br /&gt;
|recordCentral||Uno por sistema||Servidor de grabaciones, se conectan los agentes a el||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Se arrancan varias instancias en función del número de nodos&lt;br /&gt;
Debe instalarse en un servidor que tenga el almacenamiento de grabaciones en su sistema de archivos&lt;br /&gt;
|-&lt;br /&gt;
|recordNodo||Uno por servidor corporativo/gateway||Agente de grabación||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|bdCentral||Uno, en el nodo con la BBDD de tiempo real||Genera la base de datos que se copiará para respaldo a otros nodos||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|bdNodo||En cada nodo con BBDD de copia||Recoge la base de datos del servidor central con el objeto de tener el respaldo||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|Actualizador||Uno por sistema con ACD||Se encarga de proporcionar las versiones actualizadas de las aplicaciones de puesto de trabajo||'''''VIVA'''''it Suite||En el mismo servidor que el portal de administración&lt;br /&gt;
|-&lt;br /&gt;
|phoneProv-tftp||Uno por sistema||Se encarga del aprovisionamiento masivo de terminales||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||En instalaciones grandes habrá más de uno, quizás uno por sede grande; depende de la infraestructura de DHCP&lt;br /&gt;
|-&lt;br /&gt;
|borraregistrosnimitz||||||||				&lt;br /&gt;
|-&lt;br /&gt;
|Mover grabaciones a nube||||||||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Administración'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Tomcat 7||Uno por servidor con portales||Servidor de aplicaciones JAVA||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|Portal de administración ||Uno por sistema||Portal de administración del sistema||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Portal usuario||Uno por sistema||Portal de usuario, para acceso a buzones, su configuración||'''''VIVA'''''it Call||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Tracker web||Uno por sistema||Portal de seguimiento de llamadas||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Debe instalarse en un servidor que tenga los ficheros de grabación montados en su sistema de archivos&lt;br /&gt;
Ligado a recordCentral&lt;br /&gt;
Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Monitor||Uno por sistema||Portal de monitores de pared de Call Center||'''''VIVA'''''it Suite||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Apache||Uno por servidor de calendarios||Servidor de portales WEB||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|Servidor de calendarios||Uno por sistema||Aloja calendarios para su uso en diferentes entornos de NIMITZ||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Monitorización'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Servidor zabbix||Uno por instalación||Monitorización técnica y de negocio||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de uno&lt;br /&gt;
Tipicamente irá o en BBDD replica o en nodo de gestión en instalaciones grandes&lt;br /&gt;
|-&lt;br /&gt;
|Templates zabbix||Uno por instalación||Adaptaciones específicas||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|Agente Zabbix||Uno por servidor||Agente de monitorización||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
||Scripts monitorización zabbix||Uno por servidor||Agente de monitorización||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Versiones de módulos===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Módulo  !! VSuite &lt;br /&gt;
V.3.10 &lt;br /&gt;
! VSuite &lt;br /&gt;
V.3.2.0 &lt;br /&gt;
! VSuite &lt;br /&gt;
V.3.3.0 &lt;br /&gt;
! VIVAit V.3.0.0&lt;br /&gt;
(VSuite 3.4+VCall3.0) &lt;br /&gt;
!  VIVAit V.3.1.0&lt;br /&gt;
(VSuite 3.5+VCall3.1)&lt;br /&gt;
|-&lt;br /&gt;
| Sistema Operativo || || || || &lt;br /&gt;
|| Ubuntu 14.0.4&lt;br /&gt;
Server 64 Kb&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk || 1.4 || 1.4 || 1.4 || 1.4 Nodo ACD&lt;br /&gt;
13 resto nodos&lt;br /&gt;
|| 1.4 Nodo ACD&lt;br /&gt;
13 resto nodos&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk ACD '''(VS)'''  ||  ||  || || 3.3.1 || 3.4.1 &lt;br /&gt;
|-&lt;br /&gt;
| Dialplan ACD '''(VS)''' || ||  ||  || || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk Corp '''(C)''' ||  ||  ||  || 3.3.4 || 3.4.4&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk Cisco '''(VC)''' ||  ||  ||  || 3.3.4 || 3.4.4&lt;br /&gt;
|-&lt;br /&gt;
| Dialplan Corp '''(C)''' || ||  ||  || 3.3.1 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Lazarus común '''(VS)''' || 3.1.0  || 3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| BD '''(C)''' || 3.2.0 || 3.4.0 || 3.5.0 || 3.6.0 || 3.8.0&lt;br /&gt;
|-&lt;br /&gt;
| Generaconf '''(C)''' || 3.0.0  || 3.0.0  || 3.2.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Instalador '''(C)''' || 3.1.0  || 3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Intz-nimitz '''(C)''' || 2.6.0  || 3.0.1 || 3.0.3 ||  3.4.1 || 3.4.2&lt;br /&gt;
|-&lt;br /&gt;
| recordgwd '''(C)'''  ||  1.3.0 ||  1.3.0 || 3.1.0 ||  ----- || -----&lt;br /&gt;
|-&lt;br /&gt;
| recordNodo '''(C)''' || ----- || ----- || ----- ||  4.0.0 || 4.0.0&lt;br /&gt;
|-&lt;br /&gt;
| recordprocesad '''(C)''' || 1.2.0 ||1.2.0|| 3.0.0 || ----- || -----&lt;br /&gt;
|-&lt;br /&gt;
| recordCentral '''(C)''' || ----- || ----- || -----||  4.0.0 || 4.0.1&lt;br /&gt;
|-&lt;br /&gt;
| MyACDSuperv '''(VS)''' || 5.2.0 || 5.3.0  ||  5.3.0  ||  5.3.2 || 5.3.2&lt;br /&gt;
|-&lt;br /&gt;
| Motorsal '''(VS)''' || 1.4.0 || 3.1.0  || 3.2.0 || 3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| Vivait-cti '''(VS)'''  || 3.0.0 ||  3.0.1  ||  3.0.1  ||  3.0.1 || 3.0.2&lt;br /&gt;
|-&lt;br /&gt;
| Multimonitorweb '''(VS)''' ||  3.0.1 ||  3.0.2  || 3.1.0  || 3.1.0 || 3.2.0&lt;br /&gt;
|-&lt;br /&gt;
| Portal de administración '''(C)''' || 3.1.0  || 3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Tracker Web '''(C)''' || 3.0.2  || 3.1.0 ||  3.2.0 ||  3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
|  VIVA supervisor '''(VS)''' || 3.0.0 ||  3.1.0  ||  3.2.0  ||  3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| Tracker windows '''(C)''' || 3.0.0  || 3.1.0  || 3.2.0 || 3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| VIVA report '''(VS)''' || 1.2.0  || 3.1.0  || 3.2.0  ||  3.2.2 || 3.3.0&lt;br /&gt;
|-&lt;br /&gt;
| VIVA desk '''(VS)''' || 3.0.2 ||  3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| VIVA designer '''(VS)''' || 1.0.23 || 3.0.1  || 3.1.0 ||  3.1.0 || 3.2.0&lt;br /&gt;
|-&lt;br /&gt;
|  Preview '''(VS)''' || 1.0.18 || 3.2.0  || 3.3.0 || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Phone_prov '''(C)''' || ------ || ------ || 3.0.1 || 3.0.3 || 3.0.3&lt;br /&gt;
|-&lt;br /&gt;
| Portal usuario '''(VC)''' || ------ || ------ || ------ || 3.0.0 || 3.1.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''(C)''': Módulo común&lt;br /&gt;
&lt;br /&gt;
'''(VC)''': Módulo de VIVAit Call&lt;br /&gt;
&lt;br /&gt;
'''(VS)''': Módulo de VIVAit Suite&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Sistema Operativo ===&lt;br /&gt;
Los sistemas operativos de nuestra plataforma se corresponden a las versiones de Ubuntu Server LTS , ya que son las versiones estables, con un soporte continuado y mas estables a actualizaciones desde la salida Ubuntu 14.04.1. En concreto el sistema operativo utilizado para la plataforma '''''VIVA'''''it es Ubuntu Server 14.04.4 LTS. Para más información https://help.ubuntu.com/lts/serverguide/index.html.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ubuntu Kernel Release Schedule.png|750px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Funcionamiento en cluster ====&lt;br /&gt;
&lt;br /&gt;
Un clúster es un grupo de múltiples ordenadores unidos mediante una red de alta velocidad, de tal forma que el conjunto es visto como un único ordenador.&lt;br /&gt;
&lt;br /&gt;
De un clúster se espera que presente combinaciones de los siguientes servicios:&lt;br /&gt;
&lt;br /&gt;
# Alto rendimiento &lt;br /&gt;
# Alta disponibilidad&lt;br /&gt;
# Balanceo de carga &lt;br /&gt;
# Escalabilidad &lt;br /&gt;
&lt;br /&gt;
Tal y como esta definido el cluster de MDtel, este comprueba conectividad con la otra máquina que lo forma y con un punto de confianza. Si la máquina no tiene conectividad con la otra y si con el punto de confianza es que el servidor está vivo, mientas que si no tengo conectividad ni con la otra máquina ni con el punto de confianza es que el muerto soy yo, por lo que balanceo.&lt;br /&gt;
&lt;br /&gt;
Por lo que las máquinas balancean en los casos siguientes:&lt;br /&gt;
&lt;br /&gt;
* Todo lo que tenga que ver con la red, es decir, caída de la tarjeta de red, apagado de la máquina, corte en la red..&lt;br /&gt;
&lt;br /&gt;
Y no balancea en los siguientes:&lt;br /&gt;
&lt;br /&gt;
* No balancea en los demás casos, es decir, todo lo que tenga que ver con procesos de una máquina (caída asterisk, base de datos, intz-nimitz)&lt;br /&gt;
&lt;br /&gt;
El funcionamiento en cluster se basa en:&lt;br /&gt;
&lt;br /&gt;
* Heartbeat: IP flotante entre las dos máquinas que componen el cluster; típicamente este &amp;quot;latido&amp;quot; entre máquinas se realizará mediante conexión directa con cable cruzado para asegurar que no existan problemas de comunicaciones tales como retardo, pérdida de paquetes, etc en este latido y pueda ser causa de un balanceo inadecuado.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|  '''Nota 17-11-2015:''' Se ha realizado en un cliente un cluster distribuido, con dos servidores en diferentes sedes, realizando el heartbeat mediante enlace Gigabit. Si bien la solución no está validada por desarrollo, se está observando el funcionamiento.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* DRBD que se encargar de mantener una serie de carpetas totalmente replicadas entre los dos nodos; dichas las carpetas son:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El cluster es &amp;lt;big&amp;gt;'''activo/pasivo'''&amp;lt;/big&amp;gt;; la máquina activa posee la IP flotante y tiene arrancados los servicios.&lt;br /&gt;
&lt;br /&gt;
==== Configuración del cluster ====&lt;br /&gt;
Para montar un cluster de asterisk partimos de la siguiente situación inicial:&lt;br /&gt;
* Dos maquinas con '''''VIVA'''''it Call 3.0 instalado.&lt;br /&gt;
* El driver bonding de Interfaces de Red en Ubuntu Server.&lt;br /&gt;
&lt;br /&gt;
Los pasos a seguir para la configuración en el Ubuntu Server son los siguientes:&lt;br /&gt;
* Instalar ifenslave: &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 aptitude install ifenslave.&lt;br /&gt;
|}&lt;br /&gt;
: Finalizada la instalación, comprobamos que la instalación de Bonding se ha configurado para empezar desde el arranque del sistema operativo desde el fichero '''/etc/modules''':&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| vi /etc/modules&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 # Parameters can be specified after the module name.&lt;br /&gt;
 lp&lt;br /&gt;
 rtc&lt;br /&gt;
 bonding&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Crear o editar el archivo llamado '''/etc/modprobe.d/bonding.conf''' y añadir la siguiente linea en negrita:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 echo &amp;quot;alias bond0 bonding&amp;quot;&amp;gt; /etc/modprobe.d/bonding.conf&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Editar el fichero /etc/network/interfaces y añadir lo que esta en negrita:&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
 # This file describes the network interfaces available on your system&lt;br /&gt;
 # and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 &lt;br /&gt;
 '''# Bonding'''&lt;br /&gt;
 &lt;br /&gt;
 '''#em1 ip manual y esclavo en el &amp;quot;bond0&amp;quot; NIC'''&lt;br /&gt;
 '''auto em1'''&lt;br /&gt;
 '''iface em1 inet manual'''&lt;br /&gt;
 '''bond-master bond0'''&lt;br /&gt;
 '''bond-primary em0''' &lt;br /&gt;
 &lt;br /&gt;
 '''#em2 ídem, creando así un vínculo de enlace 2.'''&lt;br /&gt;
 '''auto em2'''&lt;br /&gt;
 '''iface em2 inet manual'''&lt;br /&gt;
 '''bond-master bond0'''&lt;br /&gt;
 '''auto bond0'''&lt;br /&gt;
 '''iface bond0 inet static'''&lt;br /&gt;
         '''address 10.255.255.11'''&lt;br /&gt;
        '''netmask 255.255.255.0'''&lt;br /&gt;
        '''gateway 10.255.255.254'''&lt;br /&gt;
 '''bond-mode active-backup'''&lt;br /&gt;
 '''bond-miimon 100'''&lt;br /&gt;
 '''bond-slaves none'''&lt;br /&gt;
 &lt;br /&gt;
 '''# em3 replica entre servidores'''&lt;br /&gt;
 '''auto em3'''&lt;br /&gt;
 '''iface em3 inet static'''&lt;br /&gt;
         '''address 10.255.254.10'''&lt;br /&gt;
        '''netmask 255.255.255.0'''&lt;br /&gt;
 &lt;br /&gt;
 '''# em4 gestion'''&lt;br /&gt;
 '''auto em4'''&lt;br /&gt;
 '''iface em4 inet static'''&lt;br /&gt;
         '''address 172.17.47.255'''&lt;br /&gt;
         '''netmask 255.255.0.0'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Reiniciamos el sistema para que el kernel tome los cambios.&lt;br /&gt;
&lt;br /&gt;
* Comprobación que en las dos maquinas el archivo '''/etc/host''' contenga el los nombre de las dos maquinas a vincular. En el ejemplo el archivo en ambas maquinas es:&lt;br /&gt;
&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 127.0.0.1       localhost&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.11   vivaitcall-CL-UAH-1&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.12   vivaitcall-CL-UAH-2&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.10   vivaitcall-CL-UAH&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.10   BDTR&lt;br /&gt;
 &lt;br /&gt;
 10.255.254.10   vivaitcall-CL-UAH-1-em3&lt;br /&gt;
 &lt;br /&gt;
 10.255.254.11   vivaitcall-CL-UAH-2-em3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Creamos dos particiones iguales en ambos ordenadores , usando el comando '''parted'''.&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# '''parted /dev/sda'''&lt;br /&gt;
 GNU Parted 2.3&lt;br /&gt;
 Using /dev/sda&lt;br /&gt;
 Welcome to GNU Parted! Type 'help' to view a list of commands.&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Number  Start   End     Size    File system     Name  Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 &lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                 boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
        237GB   1000GB  763GB   Free Space&lt;br /&gt;
 &lt;br /&gt;
 (parted) mkpart primary 237GB 1000GB&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Number  Start   End     Size    File system     Name     Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                    boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
 5      237GB   1000GB  763GB                   primary  No File System como ext4&lt;br /&gt;
        1000GB  1000GB  204kB   Free Space&lt;br /&gt;
 (parted)quit&lt;br /&gt;
 mkfs.ext4 /dev/sda5&lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# '''parted /dev/sda'''&lt;br /&gt;
 GNU Parted 2.3&lt;br /&gt;
 Using /dev/sda&lt;br /&gt;
 Welcome to GNU Parted! Type 'help' to view a list of commands.&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Number  Start   End     Size    File system     Name     Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                    boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
 5      237GB   1000GB  763GB                   primary&lt;br /&gt;
        1000GB  1000GB  204kB   Free Space&lt;br /&gt;
 (parted) rm 5&lt;br /&gt;
 (parted) mkpart primary 237GB 1000GB&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 &lt;br /&gt;
 Number  Start   End     Size    File system     Name     Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                    boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
 5      237GB   1000GB  763GB   ext4            primary  Si File Sytem ext4&lt;br /&gt;
        1000GB  1000GB  204kB   Free Space&lt;br /&gt;
 (parted)quit&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Instalar los paquetes necesarios para el drbd. '''En Ubuntu server 14.04 ya está instalado.'''&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 aptitude install drbd8-utils  &lt;br /&gt;
 aptitude update (si no instala el drbd8-utils actualizar)&lt;br /&gt;
 aptitude install drbd8-utils  (volver a lanzar)&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
* Creamos el archivo '''/etc/drbd.conf''' en ambas maquinas:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 # You can find an example in  /usr/share/doc/drbd.../drbd.conf.example&lt;br /&gt;
 include &amp;quot;drbd.d/global_common.conf&amp;quot;;&lt;br /&gt;
 include &amp;quot;drbd.d/*.res&amp;quot;;&lt;br /&gt;
 resource MDcluster {&lt;br /&gt;
         protocol C;&lt;br /&gt;
         on vivaitcall-CL-UAH-1 {&lt;br /&gt;
               device /dev/drbd0;&lt;br /&gt;
               disk /dev/sda5;&lt;br /&gt;
               address 10.255.254.10:7788;&lt;br /&gt;
               meta-disk internal;&lt;br /&gt;
        }&lt;br /&gt;
        on vivaitcall-CL-UAH-2 {&lt;br /&gt;
               device /dev/drbd0;&lt;br /&gt;
               disk /dev/sda5;&lt;br /&gt;
               address 10.255.254.11:7788;&lt;br /&gt;
               meta-disk internal;&lt;br /&gt;
        }&lt;br /&gt;
        disk {&lt;br /&gt;
               on-io-error detach;&lt;br /&gt;
        }&lt;br /&gt;
        net {&lt;br /&gt;
               max-buffers 2048;&lt;br /&gt;
               ko-count 4;&lt;br /&gt;
        }&lt;br /&gt;
        syncer {&lt;br /&gt;
               rate 100M;&lt;br /&gt;
               al-extents 257;&lt;br /&gt;
        }&lt;br /&gt;
        startup {&lt;br /&gt;
                wfc-timeout 0;&lt;br /&gt;
                degr-wfc-timeout 120;&lt;br /&gt;
        }&lt;br /&gt;
 }&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Reiniciamos el sistema para que el kernel tome los cambios.&lt;br /&gt;
* Inicializamos el recurso, para ello primero deberemos crear los recursos DRBD teclearemos en ambas maquinas. Desde /etc.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
  drbdadm create-md MDcluster  (no y yes )&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Si tenemos algún problema porque ya exista sistema de ficheros.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 dd if=/dev/zero of=/dev/sda5 bs=1M count=128&lt;br /&gt;
 drbdadm create-md MDcluster  (no y yes )&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Reiniciamos ambas maquinas para que su kernel tome los cambios.&lt;br /&gt;
* Levantamos el servicio del DRBD en ambos servidores (nos preguntara que si queremos enviar los datos a los desarrolladores de drbd) tecleando no, no se envían.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 service drbd start&lt;br /&gt;
 /etc/init.d/drbd start&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Ahora &amp;lt;u&amp;gt;ambas maquinas son secundarias&amp;lt;/u&amp;gt;.&lt;br /&gt;
: Indicar cual de las dos maquinas usaremos como primaria, por tanto en la maquina elegida habra que ejecutar:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 drbdadm -- --overwrite-data-of-peer primary all (en una máquina)&lt;br /&gt;
:&amp;lt;small&amp;gt;'''Nota:''' La ip virtual que va a estar asignada a la maquina activa es  172.25.129.70.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Podemos teclear el comando '''''cat''''' para ver si esta sincronizando  y su progreso:&lt;br /&gt;
&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 cat /proc/drbd&lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' El servicio DRBD  aparecera como '''''Primary/Secondary'''''  si ejecutamos en el primario ; &lt;br /&gt;
 y aparecerá ''''Secondary/Primary'''' si lo ejecutamos en el secundario. &amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
* Instalación de los script de arranque:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 update-rc.d -f drbd remove (en las dos maquinas)&lt;br /&gt;
 update-rc.d drbd start 13 2 3 4 5 . stop 87 0 1 6 . (en las dos máquinas)&lt;br /&gt;
|}&lt;br /&gt;
* Seleccionar la fuente de sincronización.&lt;br /&gt;
:Formateamos un disco de la maquina que queramos que funcione como fuente del servicio DRBD, para evitar conflictos:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 mkfs.ext4  /dev/drbd0&lt;br /&gt;
|}&lt;br /&gt;
: Creamos el directorio sobre el que vamos a montar el disco, en ambas maquinas.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 mkdir  /HDcluster&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Creamos un archivo dentro '''''/HDcluster''''' de que se verá solo cuando el disco no está montado en ambas maquinas.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 touch sinMontar&lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' Este archivo nos puede servir para monitorizar mediante zabbix, nagios, ... que el disco no está montado.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:  En una de las maquinas montamos el disco (desde fuera del directorio HDcluster) &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 mount  /dev/drbd0 /HDcluster&lt;br /&gt;
|}&lt;br /&gt;
* Procedemos a mover todos los datos que necesitemos en este disco y a crear accesos directos, los directorios que vamos a mover son los siguientes:&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 /etc/asterisk&lt;br /&gt;
 /var/lib/asterisk&lt;br /&gt;
 /usr/lib/asterisk&lt;br /&gt;
 /usr/spool/asterisk&lt;br /&gt;
 /var/lib/mysql&lt;br /&gt;
 /var/tftp/&lt;br /&gt;
|}&lt;br /&gt;
: El procedimiento que vamos a seguir es el siguiente, en el primer ordenador:&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 '''Cd /HDcluster'''&lt;br /&gt;
 '''tar -zcvf etc-asterisk.tgz /etc/asterisk'''&lt;br /&gt;
 '''tar -zxvf  etc-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /etc/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/etc/asterisk /etc/asterisk'''&lt;br /&gt;
 '''tar -zcvf var-lib-asterisk.tgz /var/lib/asterisk'''&lt;br /&gt;
 '''tar -zxvf  var-lib-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /var/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/asterisk /var/lib/asterisk'''&lt;br /&gt;
 '''tar -zcvf usr-lib-asterisk.tgz /usr/lib/asterisk'''&lt;br /&gt;
 '''tar -zxvf  usr-lib-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /usr/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/usr/lib/asterisk /usr/lib/asterisk'''&lt;br /&gt;
 '''tar -zcvf var-spool-asterisk.tgz /var/spool/asterisk'''&lt;br /&gt;
 '''tar -zxvf  var-spool-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /var/spool/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/spool/asterisk /var/spool/asterisk'''&lt;br /&gt;
 '''tar -zcvf var-lib-mysql.tgz /var/lib/mysql'''&lt;br /&gt;
 '''tar -zxvf  var-lib-mysql.tgz'''&lt;br /&gt;
 '''rm -rf /var/lib/mysql'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/mysql /var/lib/mysql'''&lt;br /&gt;
 '''tar -zcvf var-lib-phoneprov-tftp.tgz /var/lib/phoneprov-tftp/'''&lt;br /&gt;
 '''tar -zxvf  var-lib-phoneprov-tftp.tgz'''&lt;br /&gt;
 '''rm -rf /var/lib/phoneprov-tftp/'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/phoneprov-tftp /var/lib/phoneprov-tftp'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: En la segunda maquina debemos borrar los directorios y crear los accesos directos.&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''rm -rf /etc/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/etc/asterisk /etc/asterisk'''&lt;br /&gt;
 '''rm -rf /var/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/asterisk /var/lib/asterisk'''&lt;br /&gt;
 '''rm -rf /usr/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/usr/lib/asterisk /usr/lib/asterisk'''&lt;br /&gt;
 '''rm -rf /var/spool/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/spool/asterisk /var/spool/asterisk'''&lt;br /&gt;
 '''rm -rf /var/lib/mysql'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/mysql /var/lib/mysql'''&lt;br /&gt;
 '''rm -rf /var/lib/phoneprov-tftp'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/phoneprov-tftp /var/lib/phoneprov-tftp'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Configurar heartbeat para las dos maquinas.&lt;br /&gt;
: Instalamos heartbeat en las dos maquinas. '''En UBUNTU Server 14.04 ya está instalado.'''&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 aptitude install heartbeat&lt;br /&gt;
|}&lt;br /&gt;
: Debemos modificar 3 ficheros en cada una de las maquinas, estos se encuentran en '''/etc/ha.d'''. El primer fichero a modificar es '''''ha.cf.''''':&lt;br /&gt;
:: En la maquina ''vivaitcall-CL-UAH-1'' es: &lt;br /&gt;
::{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# cat /etc/ha.d/ha.cf&lt;br /&gt;
 '''# Explicacion en /usr/share/doc/heartbeat/ha.cf.gz'''&lt;br /&gt;
 &lt;br /&gt;
 '''udpport 694'''&lt;br /&gt;
 '''baud 19200'''&lt;br /&gt;
 '''auto_failback off'''&lt;br /&gt;
 '''use_logd yes'''&lt;br /&gt;
 '''crm no'''&lt;br /&gt;
 &lt;br /&gt;
 '''# Temporizaciones en segs'''&lt;br /&gt;
 '''logfacility local0'''&lt;br /&gt;
 '''keepalive 2'''&lt;br /&gt;
 '''deadtime 8'''&lt;br /&gt;
 '''warntime 16'''&lt;br /&gt;
 '''initdead 64'''&lt;br /&gt;
 '''deadping 6'''&lt;br /&gt;
 &lt;br /&gt;
 '''#ucast bond0 vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''ucast bond0 vivaitcall-CL-UAH-2'''&lt;br /&gt;
 &lt;br /&gt;
 '''#ucast em3 vivaitcall-CL-UAH-1-em3'''&lt;br /&gt;
 '''ucast em3 vivaitcall-CL-UAH-2-em3'''&lt;br /&gt;
 &lt;br /&gt;
 '''#Ping a puerta de enlace,gw1,gw2,gw3,gw4'''&lt;br /&gt;
 '''ping_group red_local 10.255.255.12'''&lt;br /&gt;
 &lt;br /&gt;
 '''respawn hacluster /usr/lib/heartbeat/ipfail'''&lt;br /&gt;
 '''apiauth ipfail gid=haclient uid=hacluster'''&lt;br /&gt;
 &lt;br /&gt;
 '''node vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''node vivaitcall-CL-UAH-2'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:: Y en la maquina ''vivaitcall-CL-palacio-2'' es:&lt;br /&gt;
::{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# cat /etc/ha.d/ha.cf&lt;br /&gt;
 '''# Explicacion en /usr/share/doc/heartbeat/ha.cf.gz'''&lt;br /&gt;
 &lt;br /&gt;
 '''udpport 694'''&lt;br /&gt;
 '''baud 19200'''&lt;br /&gt;
 '''auto_failback off'''&lt;br /&gt;
 '''use_logd yes'''&lt;br /&gt;
 '''crm no'''&lt;br /&gt;
 &lt;br /&gt;
 '''# Temporizaciones en segs'''&lt;br /&gt;
 '''logfacility local0'''&lt;br /&gt;
 '''keepalive 2'''&lt;br /&gt;
 '''deadtime 8'''&lt;br /&gt;
 '''warntime 16'''&lt;br /&gt;
 '''initdead 64'''&lt;br /&gt;
 '''deadping 6'''&lt;br /&gt;
 &lt;br /&gt;
 '''ucast bond0 vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''#ucast bond0 vivaitcall-CL-UAH-2'''&lt;br /&gt;
 &lt;br /&gt;
 '''ucast em3 vivaitcall-CL-UAH-1-em3'''&lt;br /&gt;
 '''#ucast em3 vivaitcall-CL-UAH-2-em3'''&lt;br /&gt;
 &lt;br /&gt;
 '''#Ping a puerta de enlace gw1 gw2 gw3 gw4'''&lt;br /&gt;
 '''ping_group red_local 10.255.255.12'''&lt;br /&gt;
 &lt;br /&gt;
 '''respawn hacluster /usr/lib/heartbeat/ipfail'''&lt;br /&gt;
 '''apiauth ipfail gid=haclient uid=hacluster'''&lt;br /&gt;
 &lt;br /&gt;
 '''node vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''node vivaitcall-CL-UAH-2'''&lt;br /&gt;
|}&lt;br /&gt;
::'''Nota:''' El parámetro '''auto_failback''' se utiliza para indicar si queremos que al recuperarse una maquina adquiera los recursos sobre los que tiene prioridad.&lt;br /&gt;
:El segundo fichero es '''''authkeys''''',, este fichero es el mismo en ambas maquinas: &lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 chmod 600 authkeys '''(importante)'''&lt;br /&gt;
 auth 1&lt;br /&gt;
 1 sha1 claveSecretaATope&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:El tercer fichero '''haresources''', donde especificaremos en las dos maquinas que deben apuntar a la maquina que queremos que tenga prioridad en la adquisición de los recursos, este fichero es el mismo en las dos maquinas: &lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 MÁQUINA 1 -&amp;gt; vivaitcall-CL-palacio-1 hb_mdtel&lt;br /&gt;
 MÁQUINA 2-&amp;gt; vivaitcall-CL-palacio-1 hb_mdtel &lt;br /&gt;
|}&lt;br /&gt;
: Copiaremos en el directorio '''/etc/ha.d/resource.d/''' los scripts de arranque con permisos 755 (lo podemos hacer mediante WINSCP). Los scripts se encuentran en '''''C:\Documents and Settings\javier.gutierrez.MDTEL\Mis documentos\Centrales\Asterisk\Cluster\scripts'''''.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 chmod 755 hb_catalina&lt;br /&gt;
 chmod 755 hb_mdtel&lt;br /&gt;
 chmod 755 hb_mdtel_firewall&lt;br /&gt;
|}&lt;br /&gt;
: Deberemos editar  el archivo '''hb_mdtel'''&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 (IP flotante a.b.c.d./mask) 10.255.255.10&lt;br /&gt;
 CAD_IP_FLOTA=10.255.255.10/24/bond0&lt;br /&gt;
|}&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* Paramos el proceso '''myAcdSuperv'''.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 mv /etc/rc2.d/S02myAcdSuperv s02myAcdSuperv&lt;br /&gt;
|}&lt;br /&gt;
* Reiniciamos ambas maquinas para que su kernel tome los cambios.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de buen funcionamiento del cluster ====&lt;br /&gt;
* La maquina activa tiene que tener en HDcluster montado el disco con todos sus directorios y la maquina inactiva no (tenemos que ver el archivo que hemos creado &amp;quot;sinMontar&amp;quot;). &lt;br /&gt;
* La ip virtual tiene que estar en la maquina activa (ifconfig)  y no tiene que estar en la inactiva. &lt;br /&gt;
* El asterisk tiene que estar arrancado en la maquina activa y parado en la inactiva. &lt;br /&gt;
* Tecleando la ip de la maquina activa en un navegador debemos acceder al portal de vivait-call y en la inactiva no debe de estar activo. &lt;br /&gt;
* Para cambiar el cluster manualmente podemos utilizar los siguientes comandos:&lt;br /&gt;
:{|&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
  /usr/share/heartbeat/hb_takeover&lt;br /&gt;
|}&lt;br /&gt;
: La maquina desde la que se ejecuta se convierte en la maquina activa&lt;br /&gt;
:{|&lt;br /&gt;
 |- &lt;br /&gt;
 |&lt;br /&gt;
  /usr/share/heartbeat/hb_standby&lt;br /&gt;
 |}&lt;br /&gt;
: La maquina desde la que se ejecuta deja de ser la maquina activa&lt;br /&gt;
&lt;br /&gt;
==== Notas para MySQL ====&lt;br /&gt;
Si mysql es parte del cluster tenemos que tener en cuenta dos cosas:&lt;br /&gt;
&lt;br /&gt;
* El archivo '''/etc/mysql/debían.cnf''' contiene una clave que debe ser igual en ambas maquinas y debe ser la clave de la máquina de donde cojamos la base de datos.&amp;lt;br&amp;gt;&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 # Automatically generated for Debian scripts. DO NOT TOUCH!&lt;br /&gt;
 [client]&lt;br /&gt;
 host     = localhost&lt;br /&gt;
 user     = debian-sys-maint&lt;br /&gt;
 password = AI6AdPtnhLUrNm1S&lt;br /&gt;
 socket   = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysql_upgrade]&lt;br /&gt;
 user     = debian-sys-maint&lt;br /&gt;
 password = AI6AdPtnhLUrNm1S&lt;br /&gt;
 socket   = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 basedir  = /usr&lt;br /&gt;
|} &amp;lt;br&amp;gt;&lt;br /&gt;
* El archivo '''/etc/apparmor.d/usr.sbin.mysqld''' contiene donde pueden estar ubicados los archivos de mysql, al cambiar su ubicación y poner un enlace directo en /var/lib/mysql si no modificamos este archivo mysql no arrancara al no tener la nueva ubicación entre sus localizaciones permitidas. Este es un ejemplo de las líneas que debemos añadir. &amp;lt;br&amp;gt;&lt;br /&gt;
:{|&lt;br /&gt;
|-  &lt;br /&gt;
|&lt;br /&gt;
 /var/run/mysqld/mysqld.sock w, (copiar después de esta linea)&lt;br /&gt;
 &lt;br /&gt;
 #//!!&lt;br /&gt;
   /HDcluster/var/lib/mysql/ r,&lt;br /&gt;
   /HDcluster/var/lib/mysql/** rwk,&lt;br /&gt;
   #//!!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Notas de desincronización ====&lt;br /&gt;
EL servicio del DRBD esta iniciado pero al teclear el comando cat /proc/drbd para ver si esta sincronizando se presenta &amp;quot;'''primary/unknown&amp;quot; y/o secondary/unknown''' &amp;quot;.&lt;br /&gt;
* En el nodo primary  &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 drbdadm connect all &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* En el nodo secondary  &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 drbdadm disconnect all  &lt;br /&gt;
 drbdadm -- --discard-my-data connect all&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Adaptar red a cliente ====&lt;br /&gt;
Para adaptar la red de los equipos al entorno del cliente hay que editar los siguientes ficheros:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 /etc/network/interfaces&lt;br /&gt;
 /etc/resolv.conf&lt;br /&gt;
 /etc/hosts&lt;br /&gt;
 /etc/ha.d/resource.d/hb_mdtel&lt;br /&gt;
 /etc/ha.d/ha.cf &lt;br /&gt;
 - TFTP: &lt;br /&gt;
 /etc/inetd.conf (IP del cluster)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
Tras la modificaciones oportunas, se debe reiniciar las dos máquinas para cargar las nuevas configuraciones.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Matriz de conmutación ===&lt;br /&gt;
&lt;br /&gt;
Encontramos dos diferentes núcleos de conmutación en la plataforma VIVAit:&lt;br /&gt;
&lt;br /&gt;
* Para los nodos de procesamiento ACD el núcleo de conmutación es asterisk 1.4 RSP con fuertes modificaciones realizadas por MDtel en determinados módulos (queues, chan_spy entre otros)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Para los nodos que realizan funcionalidad de gateway y/o procesamiento de telefonía corporativa, se utiliza como núcleo de conmutación asterisk 13, versión certified&lt;br /&gt;
https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Documentation&lt;br /&gt;
&lt;br /&gt;
==== Modificaciones realizadas sobre Asterisk 13 certified 2 ====&lt;br /&gt;
&lt;br /&gt;
===== Archivos añadidos por '''MD'''tel =====&lt;br /&gt;
Los archivos añadidos son los siguientes:&lt;br /&gt;
&lt;br /&gt;
* '''apps/app_ucid.c'''&lt;br /&gt;
* '''apps/app_cli.c'''&lt;br /&gt;
* '''apps/app_crash.c'''&lt;br /&gt;
* '''apps/app_mdintz.c'''&lt;br /&gt;
* '''apps/app_mdintz.exports.in'''&lt;br /&gt;
* '''include/asterisk/mdintz.h'''&lt;br /&gt;
* '''include/asterisk/ucid.h'''&lt;br /&gt;
* '''res/res_mdcal.c'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ apps/app_mdintz.exports.in '''&lt;br /&gt;
&lt;br /&gt;
Este archivo sirve para la exportación de funciones del mdintz para el uso por aplicaciones externas&lt;br /&gt;
&lt;br /&gt;
===== Modificaciones de archivos =====&lt;br /&gt;
&lt;br /&gt;
Los archivos modificados por '''MD'''tel son los mostrados a continuación:&lt;br /&gt;
&lt;br /&gt;
* '''apps/app_mixmonitor.c''' &lt;br /&gt;
* '''res/res_calendar_caldav.c'''&lt;br /&gt;
* '''contrib/scripts/safe_asterisk'''&lt;br /&gt;
* '''contrib/init.d/rc.debian.asterisk'''&lt;br /&gt;
* '''channels/sig_pri.c'''&lt;br /&gt;
* '''channels/chan_sip.c'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ main/audiohook.c''' &amp;lt;!--style=&amp;quot;color:#0000ff&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''audiohook.c''' ha sido modificado para solucionar un crash de asterisk al utilizar en el mixmonitor las opciónes r y t &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ app_crash.c '''&lt;br /&gt;
&lt;br /&gt;
Esta nueva aplicación es sólo compatible con '''Asterisk 13'''. &lt;br /&gt;
&lt;br /&gt;
La documentación de la misma se encuentra en el comando: '''&amp;quot;core show application Crash&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
Esta nueva aplicación ''permite añadir'' al plan de pruebas:&lt;br /&gt;
&lt;br /&gt;
* Generación de una parada de asterisk.&lt;br /&gt;
* Verificación de su impacto. Por ejemplo, no deben cortarse las llamadas en curso, si así está previsto por la topología.&lt;br /&gt;
* Correcta generación de los &amp;quot;core&amp;quot;, comprobando que funciona &amp;quot;backtrace&amp;quot; (bt).&lt;br /&gt;
&lt;br /&gt;
 '''Nota.-''' Esta aplicación no debería estar presente en una instalación de '''Asterisk 13'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ app_mdintz.c y mdintz.h''' &amp;lt;!--style=&amp;quot;color:#0000ff&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esta aplicación sirve como interfaz a entornos (funcionalidades) creados por MDtel&lt;br /&gt;
&lt;br /&gt;
Para mas información consultar la página de [[MDintz|MDintz]].&lt;br /&gt;
&lt;br /&gt;
Las rutas de estos archivos son las siguientes:&lt;br /&gt;
&lt;br /&gt;
'''apps/app_mdintz.c''' &amp;lt;br/&amp;gt;&lt;br /&gt;
'''include/asterisk/mdintz.h '''&lt;br /&gt;
&lt;br /&gt;
 '''app_mdintz.c''' :&lt;br /&gt;
&lt;br /&gt;
'''app_mdintz.c''' orientada al proceso de enrutamiento a implementar en ''intz-nimitz.''&lt;br /&gt;
&lt;br /&gt;
El archivo '''.c''' es casi igual para asterisk 1.4.24 y asterisk 13. &lt;br /&gt;
 '''Nota.-''' Cuando se compila para asterisk 13, es necesario comentar la línea que pone&amp;lt;br /&amp;gt; '''&amp;quot;#define ASTERISK_OLD&amp;quot;.'''&lt;br /&gt;
&lt;br /&gt;
Los cambios implementados son:&lt;br /&gt;
&lt;br /&gt;
* Unificación de código entre las versiones de asterisk&lt;br /&gt;
* Nuevo comando &amp;quot;qry&amp;quot;&lt;br /&gt;
* Posible resolución de &amp;quot;Mal write&amp;quot; en intz-nimitz (a verificar)&lt;br /&gt;
&lt;br /&gt;
En cuanto al nuevo comando, el formato es:&lt;br /&gt;
&lt;br /&gt;
 '''mdintz qry &amp;lt;nHostFijo&amp;gt; &amp;lt;entorno&amp;gt; &amp;lt;servicio&amp;gt; &amp;lt;par1&amp;gt;...&amp;lt;parN&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Permite interrogar a un servidor de igual modo que hace el dialplan con '''fines de diagnóstico'''. La única diferencia es que se ha añadido el parámetro '''&amp;quot;nHostFijo&amp;quot;''' que puede tomar como valor '''&amp;quot;*&amp;quot;''' (lo que solicita una interrogación secuencial a todos los servidores definidos, igual a la funcionalidad del dialplan) ó '''&amp;quot;0&amp;quot;''' a '''&amp;quot;3&amp;quot;''' (que solicita un interrogación dirigida el host indicado como hostN, y sólo a él, en archivo de configuración).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para instalarlo, es necesario copiar:&lt;br /&gt;
&lt;br /&gt;
* '''asterisk/apps/app_mdintz.c'''&lt;br /&gt;
* '''asterisk/include/asterisk/mdintz.h'''&lt;br /&gt;
* En asterisk 1.4.24 conviene asegurar que se ha actualizado '''&amp;quot;asterisk/apps/app_queue.o&amp;quot;''' y '''&amp;quot;asterisk/apps/app_queue.so&amp;quot;'''&lt;br /&gt;
* Luego '''&amp;quot;make&amp;quot;, &amp;quot;make install&amp;quot;''' y module '''&amp;quot;unload/load&amp;quot;''' (mejor &amp;quot;stop now&amp;quot; y start)&lt;br /&gt;
&lt;br /&gt;
'''→ scripts y rc.debian.asterisk'''&lt;br /&gt;
&lt;br /&gt;
cambiado contrib/scripts por el modificado por MDtel&amp;lt;br /&amp;gt;&lt;br /&gt;
cambiado contrib/init.d/rc.debian.asterisk por el modificado por MDtel &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ Carpeta mp3 añadida al directorio addons'''&lt;br /&gt;
&lt;br /&gt;
La carpeta mp3 en addons permite la reproducción desde el diaplan de los mensajes en mp3. En make menuselect hay que marcar el format_mp3 y app_mp3 e instalar el paquete mpg123 de ubuntu &lt;br /&gt;
&lt;br /&gt;
'''→ sig_pri.c'''&lt;br /&gt;
&lt;br /&gt;
Modificado para enviar/recibir el ucid en un primario qsig &lt;br /&gt;
&lt;br /&gt;
Para que se envie el ucis tenemos que habilitar el envio de facilidades en el chan_dahdi.conf&lt;br /&gt;
&lt;br /&gt;
facilityenable = yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ init.d''' &amp;lt;!--style=&amp;quot;color:#0000ff&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Uno de los archivos modificados ha sido '''init.d''', se encuentra en la ruta: '''/etc/init.d/asterisk'''. La modificación realizada es la siguiente:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;background-color:#ffffcc;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| SAFE_ASTEISK=/usr/sbin/safe_asterisk &amp;lt;br/&amp;gt;&lt;br /&gt;
if [ -x $SAFE_ASTERISK ] ; then&amp;lt;br/&amp;gt;&lt;br /&gt;
:# //!! wkw&amp;lt;br/&amp;gt;&lt;br /&gt;
:DAEMON=$SAFE_ASTERISK&amp;lt;br/&amp;gt;&lt;br /&gt;
fi&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--archivo--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''→ safe-asterisk'''&lt;br /&gt;
* Se encuentra en la siguiente ruta:'''/usr/sbin/safe-asterisk''' .En este archivo se ha modificado MAXFILES=32768&lt;br /&gt;
&lt;br /&gt;
'''→ default'''&lt;br /&gt;
&lt;br /&gt;
* Este fichero podemos encontrarlo en: '''/etc/default/asterisk'''. La finalidad de la modificación de este fichero es poder correr como usuario Asterisk, grupo asterisk y generar cores (descomentar línea)&lt;br /&gt;
Las modificaciones realizadas han sido:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;background-color:#ffffcc;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| AST_USER=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
AST_GROUP=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
COREDUMP=yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Nueva función de asterisk: app_cli.so =====&lt;br /&gt;
&lt;br /&gt;
Esta función permite ejecutar desde el '''dialplan''' un comando de línea de consola de '''asterisk (CLI).''' Su primer uso (y esperamos que no último) será para lanzar los '''notify''' que los teléfonos necesitan para el ''reaprovisionamiento'' desde el portal o desde la facilidad de movilidad de usuario.&lt;br /&gt;
&lt;br /&gt;
Básicamente ejecuta un comando y devuelve su salida. Utiliza un archivo intermedio que puede ser:&lt;br /&gt;
&lt;br /&gt;
* '''/dev/null''' si el campo se deja vacío, por tanto, no se puede recuperar la salida.&lt;br /&gt;
* '''TEMP''', en cuyo caso se crea un archivo temporal que se borra antes de finalizar la ejecución de la función.&lt;br /&gt;
* Un nombre de fichero que es responsabilidad del dialplan el borrarlo cuando proceda.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para instalarlo basta copiar '''apps/app_cli.c''' en el directorio ''' &amp;quot;apps&amp;quot; ''' de los fuentes y luego  ejecutar '''&amp;quot;make&amp;quot; y &amp;quot;make install&amp;quot;.'''&lt;br /&gt;
&lt;br /&gt;
A continuación se pasa el resultado de '''&amp;quot;core show function CLI&amp;quot; '''&lt;br /&gt;
&lt;br /&gt;
'''[Synopsis]'''&lt;br /&gt;
&lt;br /&gt;
 Lanza un comando CLI desde dialplan&lt;br /&gt;
&lt;br /&gt;
'''[Description]''' &amp;lt;br /&amp;gt;&lt;br /&gt;
 - CLI(nomArchSal,cmd)&amp;lt;br /&amp;gt;&lt;br /&gt;
 - Si 'nomArchSal' está vacio, se usa '/dev/null' y no se recupera resultado&amp;lt;br /&amp;gt;&lt;br /&gt;
 - Si 'nomArchSal'=TEMP, Se crea un archivo temporal que se borra al final&amp;lt;br /&amp;gt;&lt;br /&gt;
 - En otro caso, se crea el archivo y no se borra&lt;br /&gt;
&lt;br /&gt;
'''[Syntax]'''&amp;lt;br /&amp;gt;&lt;br /&gt;
 CLI(nomArchSal,cmd)&lt;br /&gt;
&lt;br /&gt;
'''[Arguments]'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''nomArchSal'''&lt;br /&gt;
    Archivo de salida (si se omite, /dev/null)&lt;br /&gt;
'''cmd'''&lt;br /&gt;
    Comando a ejecutar via CLI&lt;br /&gt;
&lt;br /&gt;
==== Dialplan  ====&lt;br /&gt;
&lt;br /&gt;
El Dialplan podría considerarse la columna vertebral del sistema ''Asterisk''.&lt;br /&gt;
&lt;br /&gt;
Es una colección ordenada de acciones que se llevan a cabo cuando un usuario marca una serie de números. Hace la función de una tabla de enrutamiento de llamadas.&lt;br /&gt;
&lt;br /&gt;
Todas las configuraciones generales de Asterisk están accesibles en la ruta '''/etc/asterisk'''&lt;br /&gt;
&lt;br /&gt;
'''CONCEPTOS BÁSICOS'''&lt;br /&gt;
&lt;br /&gt;
♦ '''EXTENSIONES'''&lt;br /&gt;
&lt;br /&gt;
Una extensión es una marcación en el teclado de un teléfono. Dicha configuración podemos encontrarla en el archivo '''extensions.conf''' &lt;br /&gt;
&lt;br /&gt;
Por ejemplo, un usuario podría marcar “3001” en su teléfono, y eso sería una extensión. También podría marcar un número de teléfono nacional, como por ejemplo “915881000”, y también sería una extensión.&lt;br /&gt;
&lt;br /&gt;
En Asterisk pueden definirse también extensiones como texto, por tanto no debemos relacionar las extensiones únicamente con números.&lt;br /&gt;
&lt;br /&gt;
Algunas reglas que sería interesante conocer serían las siguientes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Regla''' !! '''Descripción'''&lt;br /&gt;
|-&lt;br /&gt;
| '''X''' || Cualquier cifra de 0 a 9&lt;br /&gt;
|-&lt;br /&gt;
|'''Z'''||Cualquier cifra de 1 a 9&lt;br /&gt;
|-&lt;br /&gt;
|'''N'''||Cualquier cifra de 2 a 9&lt;br /&gt;
|-&lt;br /&gt;
|'''[x-y]'''||Cualquier cifra de &amp;quot;x&amp;quot; a &amp;quot;y&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''[xyz]'''|| 	Las cifras &amp;quot;x&amp;quot;, &amp;quot;y&amp;quot; o &amp;quot;z&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''.'''||Una o más repeticiones del símbolo anterior&lt;br /&gt;
|-&lt;br /&gt;
|'''!'''||Cero o más repeticiones del símbolo anterior&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Estas reglas son necesarias a la hora de definir por ejemplo todos los números de teléfono posibles en España &lt;br /&gt;
&lt;br /&gt;
♦ '''PRIORIDADES'''&lt;br /&gt;
&lt;br /&gt;
En lenguaje scripting, las acciones se van ejecutando de arriba a abajo en orden. En cambio, en Asterisk, el orden en el que se ejecutan las acciones es el indicado mediante números.&lt;br /&gt;
Primero se ejecutará la acción 1, luego la 2...así sucesivamente.&lt;br /&gt;
&lt;br /&gt;
Es decir no basta con definir las acciones que se llevarán a cabo, también debemos indicar el orden en el que se llevarán a cabo.&lt;br /&gt;
&lt;br /&gt;
♦ '''CONTEXTOS'''&lt;br /&gt;
&lt;br /&gt;
Es mecanismo que nos permite variar el comportamiento del sistema en función del número que se marque. Su misión es aumentar la seguridad del sistema ofreciendo servicios diferenciados en función del usuario.&lt;br /&gt;
&lt;br /&gt;
La sintaxis típica es el nombre del contexto englobado entre corchetes [nombre_contexto]. Si un dispositivo no tiene un contexto definido se redirige directamente al contexto por defecto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los ficheros que conforman el Dialplan se clasifican en:&lt;br /&gt;
&lt;br /&gt;
* '''Generales'''&lt;br /&gt;
* '''Particulares'''&lt;br /&gt;
* '''Web'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Fichero''' !! '''Función'''&lt;br /&gt;
|-&lt;br /&gt;
| '''Generales''' || Se encuentran los ficheros de propios de MDtel y Asterisk. Es importante remarcar que estos ficheros NO pueden ser modificados por el usuario.&lt;br /&gt;
|-&lt;br /&gt;
|'''Particular'''||Estos ficheros son los únicos que puede modificar el usuario&lt;br /&gt;
|-&lt;br /&gt;
|'''Web'''|| Se encierran aquí los archivos generados automáticamente por la plataforma, a través del portal&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
En función del nodo en el que estemos trabajando, encontraremos dos tipos de dialplan:&lt;br /&gt;
&lt;br /&gt;
'''* Dialplan ACD''' --&amp;gt; Dialplan que aplica a nodos ACD&lt;br /&gt;
&lt;br /&gt;
'''* Dialplan corporativa''' --&amp;gt; Dialplan que aplica a nodos de corporativa o gateways (ya sean de corporativa o ACD)&lt;br /&gt;
&lt;br /&gt;
A continuación se muestran las tablas con los ficheros correspondientes a cada Dialplan.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;FloralWhite&amp;quot;&lt;br /&gt;
|+ '''Ficheros de configuración Dialplan Corporativo'''&lt;br /&gt;
| '''GENERALES'''&lt;br /&gt;
| '''PARTICULARES'''&lt;br /&gt;
| '''WEB'''&lt;br /&gt;
|-&lt;br /&gt;
| ext_Grabaciones.conf &amp;lt;br /&amp;gt;ext_InicioLlamada.conf &amp;lt;br /&amp;gt; ext_InicioLlamada_Dahdi.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP.conf &amp;lt;br/&amp;gt;ext_InicioLlamada_TrunkSIP.conf &amp;lt;br /&amp;gt;ext_MARCAR_ColaCentralita.conf &amp;lt;br /&amp;gt; ext_MARCAR_ColaCentralita_Dial.conf&amp;lt;br /&amp;gt; ext_MARCAR_Cola.conf &amp;lt;br /&amp;gt;ext_MARCAR_Cola_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR.conf  &amp;lt;br /&amp;gt; ext_MARCAR_DejarMensaje.conf &amp;lt;br /&amp;gt; ext_MARCAR_DejarMensaje_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Extension.conf&amp;lt;br /&amp;gt;ext_MARCAR_Extension_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_nimitz.conf&amp;lt;br /&amp;gt;ext_MARCAR_Interno.conf &amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje.conf &amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR_Nodo.conf&amp;lt;br /&amp;gt;ext_MARCAR_Nodo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Servicios.conf &amp;lt;br /&amp;gt;ext_MARCAR_VDN.conf &amp;lt;br /&amp;gt;MARCAR_VDN_Dial.conf&amp;lt;br /&amp;gt;ext_MDtel.conf &amp;lt;br /&amp;gt;ext_MDtel_Var.conf &amp;lt;br /&amp;gt;ext_Subrutinas_AnchoBanda.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD_Facilidad.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD_Facilidad.conf &amp;lt;br /&amp;gt; ext_Subrutinas_Colas.conf &amp;lt;br /&amp;gt;ext_Subrutinas.conf &amp;lt;br /&amp;gt;ext_Subrutinas_Enrutamiento.conf &amp;lt;br /&amp;gt;ext_Subrutinas_finLlamada.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Grabacion.conf&amp;lt;br /&amp;gt;ext_Subrutinas_nimitz.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Varias.conf&amp;lt;br /&amp;gt;ext_Subscribe.conf&amp;lt;br /&amp;gt;ext_Transfer.conf &amp;lt;br /&amp;gt;ext_Transfer_ExtSIP.conf&amp;lt;br /&amp;gt;ext_Transfer_TrunkInternos.conf &amp;lt;br /&amp;gt;ext_TrunkInternos.conf&amp;lt;br /&amp;gt;ext_TrunkInternos_Dial.conf &amp;lt;br /&amp;gt;sip_Estatico.conf&amp;lt;br /&amp;gt; sip_GENCUST.conf &amp;lt;br /&amp;gt;sip_notify.conf &amp;lt;br /&amp;gt;queues.conf &amp;lt;br /&amp;gt; queues_GENERAL.conf &amp;lt;br /&amp;gt;queues_PLANTILLACOLAS.conf&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| ext_Enrutador_Particular.conf&amp;lt;br /&amp;gt; ext_InicioLlamada_Dahdi_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_Particular.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_TrunkSIP_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_Extension_Particular.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo_Particular.conf &amp;lt;br/&amp;gt; ext_MARCAR_Facilidad_Particular.conf&amp;lt;br /&amp;gt; ext_MARCAR_VDN_Particular.conf &amp;lt;br /&amp;gt;ext_MDtel_Particular.conf &amp;lt;br/&amp;gt; ext_TrunkInternos_Particular.conf &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|asterisk_WEB.conf &amp;lt;br /&amp;gt; ext_MDtel_WEB.conf &amp;lt;br /&amp;gt; sip_trunkExt_WEB.conf &amp;lt;br /&amp;gt;sip_trunkInt_WEB.conf &amp;lt;br /&amp;gt;sip_trunk_WEB.conf &amp;lt;br /&amp;gt; sip_WEB.conf &amp;lt;br /&amp;gt; queues_WEB.conf&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;FloralWhite&amp;quot;&lt;br /&gt;
|+ '''Ficheros de configuración Dialplan ACD'''&lt;br /&gt;
| '''GENERALES'''&lt;br /&gt;
| '''PARTICULARES'''&lt;br /&gt;
| '''WEB'''&lt;br /&gt;
|-&lt;br /&gt;
| ext_Enrutador.conf&amp;lt;br /&amp;gt;ext_Grabaciones.conf &amp;lt;br /&amp;gt; ext_InicioLlamada.conf &amp;lt;br /&amp;gt; ext_InicioLlamada_CTI.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_Dahdi.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_Marcador.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_TrunkSIP.conf &amp;lt;br /&amp;gt;ext_MARCAR_ColaCentralita.conf &amp;lt;br /&amp;gt;ext_MARCAR_ColaCentralita_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR_Cola.conf &amp;lt;br /&amp;gt;ext_MARCAR_Cola_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR.conf &amp;lt;br /&amp;gt;ext_MARCAR_DejarMensaje.conf &amp;lt;br /&amp;gt;ext_MARCAR_DejarMensaje_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Extension.conf &amp;lt;br /&amp;gt;ext_MARCAR_Extension_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_nimitz.conf&amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje.conf &amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Nodo.conf &amp;lt;br /&amp;gt;ext_MARCAR_Nodo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR_Servicios.conf &amp;lt;br /&amp;gt;ext_MARCAR_VDN.conf &amp;lt;br /&amp;gt;ext_MARCAR_VDN_Dial.conf&amp;lt;br /&amp;gt;ext_MDtel.conf &amp;lt;br /&amp;gt;ext_MDtel_Var.conf &amp;lt;br /&amp;gt;ext_Subrutinas_AnchoBanda.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD_Facilidad.conf &amp;lt;br /&amp;gt; ext_Subrutinas_Colas.conf &amp;lt;br /&amp;gt;ext_Subrutinas.conf &amp;lt;br /&amp;gt;ext_Subrutinas_Enrutamiento.conf &amp;lt;br /&amp;gt; ext_Subrutinas_finLlamada.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Grabacion.conf &amp;lt;br /&amp;gt;ext_Subrutinas_nimitz.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Varias.conf &amp;lt;br /&amp;gt;ext_Subscribe.conf&amp;lt;br /&amp;gt;ext_Transfer.conf &amp;lt;br /&amp;gt;ext_Transfer_ExtSIP.conf&amp;lt;br /&amp;gt;ext_Transfer_TrunkInternos.conf &amp;lt;br /&amp;gt;ext_TrunkInternos.conf &amp;lt;br /&amp;gt;ext_TrunkInternos_Dial.conf &amp;lt;br /&amp;gt;queues_GENERAL.conf&amp;lt;br /&amp;gt;queues_PLANTILLACOLAS.conf &amp;lt;br /&amp;gt;sip_GENCUST.conf &amp;lt;br /&amp;gt;sip_GENERAL.conf &amp;lt;br /&amp;gt;sip_notify.conf &amp;lt;br /&amp;gt;sip_PLANTILLAEXT.conf&amp;lt;br /&amp;gt;sip_supervision.conf &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| ext_Enrutador_Particular.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_CTI_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_Dahdi_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_Marcador_Particular.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_Particular.conf.&amp;lt;br /&amp;gt;ext_InicioLlamada_TrunkSIP_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_Externo_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_VDN_Particular.conf&amp;lt;br /&amp;gt; ext_MDtel_Particular.conf&amp;lt;br /&amp;gt;ext_TrunkInternos_Particular.conf&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
|asterisk_WEB.conf &amp;lt;br /&amp;gt; ext_MDtel_WEB.conf &amp;lt;br /&amp;gt;queues_WEB.conf&amp;lt;br /&amp;gt; sip_trunkInt_WEB.conf &amp;lt;br /&amp;gt;sip_WEB.conf &amp;lt;br /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Servicios networking ===&lt;br /&gt;
Son muy importantes las configuraciones adecuadas de los servicios de:&lt;br /&gt;
&lt;br /&gt;
* '''NTP''': El sistema en global ha de estar sincronizado; todos los servidores y puestos de trabajo (en el caso de ''VIVA''it Suite) han de estar perfectamente sincronizados; los servidores de la plataforma se sincronizarán con el NTP del cliente; si el cliente no tiene NTP será necesario que un servidor de la plataforma se sincronice con un NTP externo y este sea el servidor para el resto de la plataforma&lt;br /&gt;
&lt;br /&gt;
* '''DNS''': La configuración de DNS de la plataforma será coherente con el resto de la plataforma IT del cliente&lt;br /&gt;
&lt;br /&gt;
* '''DHCP''': Es necesario coordinar con el cliente la asignación de direcciones para los diferentes elementos de la plataforma '''''VIVA'''''it, fundamentalmente para terminales telefónicos; en este caso además será necesario activa la opción 66 que permitirá definir el servidor TFTP del que los terminales cogerán sus ficheros de aprovisionamiento&lt;br /&gt;
&lt;br /&gt;
=== Bases de datos (BBDD)===&lt;br /&gt;
&lt;br /&gt;
La base de datos del sistema se basa en el motor de base de datos MySQL, es un elemento crítico del sistema, en el que insertan y del que obtiene mucha información múltiples procesos.&lt;br /&gt;
Muchas comunicaciones entre procesos se realizan vía Base de Datos (tabla COM_COMUNICADOS). Pueden existir distintas instancias de base de datos que explicadas en las siguientes secciones, nuestra base de datos tiene la siguiente estructura: [[Base de datos|Información completa de la BD]]. Podéis ampliar más información en https://dev.mysql.com/doc/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== BBDD Tiempo Real ====&lt;br /&gt;
En la base de datos de tiempo real insertan información todos los procesos del sistema, y se realizan los cambios en configuración utilizando como herramienta el portal de administración y '''''VIVA'''''it Supervisor&lt;br /&gt;
&lt;br /&gt;
De la base de datos de tiempo real leen los procesos que requieren información, y las aplicaciones:&lt;br /&gt;
*'''''VIVA'''''it Supervisor (para reporting de tiempo real)&lt;br /&gt;
*PanelWeb&lt;br /&gt;
*Datos de sesión de '''''VIVA'''''it Desk&lt;br /&gt;
*Monitorización Zabbix&lt;br /&gt;
* Otros&lt;br /&gt;
&lt;br /&gt;
El portal de administración se encarga de escribir las configuraciones añadidas o modificadas en la base de datos&lt;br /&gt;
&lt;br /&gt;
Para cuando la BDTR contienen un número masivo de datos, existe un script que borra el contenido de ciertas tablas de la BD (tablas DAT_) dejando solamente datos de un cierto número de días configurable.&lt;br /&gt;
Este script se llama borraRegistrosNimitz.pl; para más información consultar el apartado de Howto's.&lt;br /&gt;
&lt;br /&gt;
==== BBDD Réplica ====&lt;br /&gt;
A efectos de asegurar las prestaciones del sistema, se establece una réplica de la base de datos, sincronizada con la de tiempo real; los procesos y aplicaciones pesados, que realicen consultas a las base de datos que puedan comprometer las prestaciones del sistema atacan a la réplica y nunca a la base de datos de tiempo real&lt;br /&gt;
&lt;br /&gt;
Es posible que en instalaciones pequeñas no exista réplica, en cuyo caso se establece una base de datos unificada sobre la de tiempo real, en la que se añaden índices y procedimientos almacenados que típicamente residen en la de réplica.&lt;br /&gt;
&lt;br /&gt;
Es posible establecer tantas réplicas como sean necesarias si diferentes procesos pesados se penalizan en exceso, si bien una implantación tipo contemplará una sola&lt;br /&gt;
&lt;br /&gt;
Algunos procesos que utilizan la base de datos de réplica son:&lt;br /&gt;
*'''''VIVA'''''it Reporting&lt;br /&gt;
*'''''VIVA'''''it Tracker&lt;br /&gt;
*Histórico en tiempo real de '''''VIVA'''''it Supervisor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANTE: Ningún proceso, programa, aplicación, etc. escribe en la base de datos de réplica; tan solo se extrae información'''&lt;br /&gt;
&lt;br /&gt;
==== BBDD de copia ====&lt;br /&gt;
A efectos de asegurar el funcionamiento y como medida de contingencia ante un problema puntual de comunicación con la BD de tiempo real, en cada nodo disponemos de una BD de copia local. Posiblemente de un tamaño menor que la BD de tiempo real, dependiendo de cuanto tiempo pase hasta la próxima sincronización con la base de tiempo real.Esta base de datos llamada '''nimitzCopia'''.&lt;br /&gt;
  &lt;br /&gt;
Solo entrara en funcionamiento,cuando se produzca el problema mencionado, dejando acceder a los datos y poder dar servicio a la empresa mientras se soluciona el problema.&lt;br /&gt;
&lt;br /&gt;
===== Backup y restore =====&lt;br /&gt;
&lt;br /&gt;
Se utilizan dos script, para realizar la copia de seguridad y restaurar en la base de datos de copia local que son:&lt;br /&gt;
&lt;br /&gt;
* El proceso '''bdCentral.sh''' que es el encargado de realizar la copia de seguridad. Tiene un archivo de configuración bdCentral.conf. En este archivo hay un parámetro (IGNORE_TABLAS) que indica las tablas de las que NO se realizará copia de seguridad. Toda tabla que no se indique formará parte de la copia de seguridad. Vuelca los resultados en /var/log/bdCentral.log&lt;br /&gt;
* El proceso '''bdNodo.sh''' que es el encargado de descargar la copia de seguridad y restaurarla en local. Tiene un archivo de configuración bdNodo.conf. Vuelca los resultados en /var/log/bdNodo.log. El fichero de backup se copia mediante el usuario sincroniza, que deberá poder acceder sin contraseña al servidor donde reside la copia.&lt;br /&gt;
&lt;br /&gt;
En caso de producirse algún error en alguno de los procesos, marcarán dicho error en el log con una línea que comienza con la cadena &amp;quot;*ERROR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Diagnósticos y operaciones sobre bases de datos ====&lt;br /&gt;
&lt;br /&gt;
=====Comprobación que una base de datos está arrancada=====&lt;br /&gt;
Para comprobar si la base de datos está arrancada debemos poner en el terminal : '''ps aux | grep mysql'''&lt;br /&gt;
&lt;br /&gt;
Si la base de datos está arrancada y funcionando correctamente se nos mostrará en el terminal:&lt;br /&gt;
[[Archivo:Base_Datos_bien.png‎ |500px|center]]&lt;br /&gt;
&lt;br /&gt;
Por el contrario, si la base de datos presenta algun problema el mensaje mostrado será:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Base_datos_mal.png |center]]&lt;br /&gt;
&lt;br /&gt;
=====Comprobación que la base de datos de réplica está sincronizada con la base de datos de tiempo real.=====&lt;br /&gt;
&lt;br /&gt;
Si se necesita verificar que la base de réplica está sincronizada con la base de datos en tiempo real basta con acudir al comando : '''show slave status\G'''.&lt;br /&gt;
&lt;br /&gt;
Una vez introducido veremos:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Replica.png |980px|center]]&lt;br /&gt;
&lt;br /&gt;
Comandos importantes, desde dentro consola de Mysql:&lt;br /&gt;
&lt;br /&gt;
 '''show master status''': Realizado desde el master&lt;br /&gt;
 '''show slave status''': Realizado desde el esclavo; el valor &amp;quot;seconds behind master&amp;quot; nos indica&lt;br /&gt;
 cuanto está retrasada la réplica con respecto a la base de datos de tiempo real. Si el valor de este campo es elevado nos indicará &lt;br /&gt;
 que la base de datos real con la réplica no estará sincronizada, por tanto, nos interesa que este valor sea lo más pequeño posible.&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Procesos propios ===&lt;br /&gt;
&lt;br /&gt;
==== bdCentral ====&lt;br /&gt;
&lt;br /&gt;
El proceso ''bdCentral.sh'' es el encargado de realizar la copia de seguridad. Tiene un archivo de configuración ''bdCentral.conf'' el cual puede encontrarse en la ruta '''/etc/MDtel/bdCentral.conf'''. En este archivo hay un parámetro (IGNORE_TABLAS) que indica las tablas de las que NO se realizará copia de seguridad. Toda tabla que no se indique formará parte de la copia de seguridad. Vuelca los resultados en /var/log/bdCentral.log&lt;br /&gt;
&lt;br /&gt;
En caso de producirse algún error, se marcará dicho error en el log con una línea que comienza con la cadena &amp;quot;*ERROR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Para ejecutar bdCentral:&lt;br /&gt;
 bdCentral.sh /etc/MDtel/bdCentral.conf&lt;br /&gt;
&lt;br /&gt;
Estos procesos se ejecutan automáticamente. Para ello está copiado el fichero bdCentral a /etc/cron.d.&lt;br /&gt;
&lt;br /&gt;
Por defecto la programación vienen comentada por lo que será necesario activarlo.&lt;br /&gt;
&lt;br /&gt;
Para que se roten los logs hay que copiar el fichero bdCentral.logrotate a /etc/logrotate.d (como bdCentral)&lt;br /&gt;
La ruta donde se encuentran los logs es la siguiente: '''/var/log/myAcdSuperv.log'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
*A continuación se explica la utilidad de los campos mas relevantes del fichero de configuración bdCentral.conf. &lt;br /&gt;
ARCH_LOG : &lt;br /&gt;
BDHOST: Localización de la base de datos&lt;br /&gt;
BDUSU: Usuario para la base de datos&lt;br /&gt;
BDRUTA: Ruta donde se encuentra la base de datos&lt;br /&gt;
IGNORE_TABLAS:&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== bdNodo ====&lt;br /&gt;
El proceso bdNodo.sh es el encargado de descargar la copia de seguridad y restaurarla en local. Tiene un archivo de configuración bdNodo.conf, este archivo puede encontrarse en la ruta '''/etc/MDtel/bdNodo.conf.''' Vuelca los resultados en /var/log/bdNodo.log. El fichero de backup se copia mediante el usuario sincroniza, que deberá poder acceder sin contraseña al servidor donde reside la copia.&lt;br /&gt;
&lt;br /&gt;
En caso de producirse algún error, se marcará dicho error en el log con una línea que comienza con la cadena &amp;quot;*ERROR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Para ejecutar bdNodo:&lt;br /&gt;
&lt;br /&gt;
 bdNodo.sh /etc/MDtel/bdNodo.conf&lt;br /&gt;
&lt;br /&gt;
Estos procesos se ejecutan automáticamente. Para ello está copiado el fichero bdNodo a /etc/cron.d.&lt;br /&gt;
&lt;br /&gt;
Por defecto la programación vienen comentada por lo que será necesario activarlo.&lt;br /&gt;
&lt;br /&gt;
Para que se roten los logs hay que copiar el fichero bdNodo.logrotate a /etc/logrotate.d (como bdNodo)&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Intz-Nimitz ====&lt;br /&gt;
&lt;br /&gt;
Permite integrar procesos de asterisk (del dialplan) con la base de datos; por ejemplo es el que graba segmentos, inspecciona donde esta registrado un agente…etc. La estabilidad de este proceso es importante para el funcionamiento del sistema, si bien las llamadas entran en caso de no estar disponible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para mas información consultar la página de [[intz-nimitz|intz-nimitz]].&lt;br /&gt;
&lt;br /&gt;
Desde un SSH ejecuta el comando “nc ip_maquina 1115”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1115'''&lt;br /&gt;
 intz-nimitz sis ver='V02.6' inic='20140401 110116' alarmas=21 ultAlar='20140414 171244'&lt;br /&gt;
 intz-nimitz gmp msj=942/1024 buf=1024/1024 tarea=16/102&lt;br /&gt;
 intz-nimitz tmp uptime=1816550 (21d 0h 35m 50s)&lt;br /&gt;
 intz-nimitz vic identif='cms1' entorno='nimitz' conx=0/128 numConx=1018(0)&lt;br /&gt;
 intz-nimitz mys curro=80/0/0/0 soli=1012(0) soliErr=6(0) soliEncol=0(0/0)&lt;br /&gt;
 intz-nimitz cache colas=128/10/0/0 vdn=128/8/0/0 usuExten=10/0/0/0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parámetro!!Descripción&lt;br /&gt;
|-&lt;br /&gt;
|sis/ver||Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|sis/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|Sis/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|Sis/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/msj||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/buf||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/tarea||&lt;br /&gt;
|-&lt;br /&gt;
|Tmp/uptime||Tiempo que lleva el servicio activo&lt;br /&gt;
|-&lt;br /&gt;
|Vic/identif||Etiqueta de identificación del servicio&lt;br /&gt;
|-&lt;br /&gt;
|Vic/entorno||Entorno de base de datos&lt;br /&gt;
|-&lt;br /&gt;
|Vic/conx||Conexiones activas/conexiones máximas&lt;br /&gt;
|-&lt;br /&gt;
|Vic/numConx||Conexiones totales (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|Mys/curro||Número de hilos contra la base de datos&lt;br /&gt;
|-&lt;br /&gt;
|Mys/soli||Conexiones solicitadas (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|Mys/soliErr||Conexiones solicitadas con error (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|Mys/soliEncol||Conexiones encoladas&lt;br /&gt;
|-&lt;br /&gt;
|Cache/cola|| Colas monitorizadas/&lt;br /&gt;
|-&lt;br /&gt;
|Cache/vdn||VDN’s monitorizados&lt;br /&gt;
|-&lt;br /&gt;
|Cache/usuExten||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en  '''/etc/MDtel/intz-nimitz.conf'''&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/intz-nimitz.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
A continuación se muestran los campos mas importantes del fichero de configuración intz-nimitz.conf:&lt;br /&gt;
&lt;br /&gt;
enrutamiento &lt;br /&gt;
{ &lt;br /&gt;
        hay_enrutamiento = 1 &lt;br /&gt;
        max_pre_ruta_regs = 4 &lt;br /&gt;
        max_ruta = 4 &lt;br /&gt;
        max_ruta_desvios = 2 &lt;br /&gt;
# Filtro de informacion de ancho de banda &lt;br /&gt;
# MYSDanchoBandaPasoNinguno      0 &lt;br /&gt;
# MYSDanchoBandaPasoSoloDirectos 1 &lt;br /&gt;
# MYSDanchoBandaPasoSoloEnPaso   2 &lt;br /&gt;
# MYSDanchoBandaPasoTodos        3 &lt;br /&gt;
        filtro_ancho_banda = 1 &lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
mysql &lt;br /&gt;
{ &lt;br /&gt;
        hay_mysql = 1   Indica si hay base de datos mysql&lt;br /&gt;
        host = BDTR &lt;br /&gt;
        usuario = nimitz   Usuario base de datos&lt;br /&gt;
        clave = phikau3iwCe4O0PP5b09ng==   clave base de datos&lt;br /&gt;
        base_datos = nimitz &lt;br /&gt;
        bd_supervivencia = 0 &lt;br /&gt;
        num_curro = 10 &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== motorSal ====&lt;br /&gt;
Parte fundamental del proceso de marcación saliente, gestiona como hay que llamar a los diferentes contactos asignados a las campañas. Transforma los contactos en intentos de marcación.&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH ejecuta el comando “nc ip_maquina 1120”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1120'''&lt;br /&gt;
 motorSal sis ver='V01.4' inic='20140725 140832' alarmas=1 ultAlar='20140725 140832'&lt;br /&gt;
 motorSal gmp msj=253/256 buf=256/256 tarea=99/102&lt;br /&gt;
 motorSal tmp uptime=600165 (6d 22h 42m 45s)&lt;br /&gt;
 motorSal mtr mys=1 ocup=0% planif=28(0) intento=26(0)&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parámetro!!Descripción&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ver||Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/msj||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/buf||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/tarea||&lt;br /&gt;
|-&lt;br /&gt;
|Tmp/uptime||Tiempo que lleva corriendo&lt;br /&gt;
|-&lt;br /&gt;
|mtr/mys||Si está conectado al MySQL&lt;br /&gt;
|-&lt;br /&gt;
|mtr/ocup||Porcentaje de ocupación&lt;br /&gt;
|-&lt;br /&gt;
|mtr/planif||Contactos planificados Totales (Último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|mtr/intento||Intentos totales (Ültimo minuto)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Posee un fichero de configuración llamado ''motorSal.conf'' en la ruta '''/etc/MDtel/motorSal.conf'''.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:Las variables que normalmente son modificadas son las siguientes:&lt;br /&gt;
&lt;br /&gt;
mysql&lt;br /&gt;
{&lt;br /&gt;
hay_mysql = 1&lt;br /&gt;
Indica si hay base de datos mysql&lt;br /&gt;
host = localhost&lt;br /&gt;
usuario = nimitz&lt;br /&gt;
Usuario base de datos&lt;br /&gt;
Clave base de datos&lt;br /&gt;
base_datos = nimitz&lt;br /&gt;
}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Respecto a los logs del motorSal consultar el siguiente apartado: [[Trazas motorSal]]. Los logs pueden verse en la ruta '''/var/log/intz-nimitz.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== MyACDSuperv ====&lt;br /&gt;
Refleja el estado de las colas de asterisk en la base de datos; tiene sentido a efectos de estadísticas e informes, pero no a efectos de funcionamiento de la conmutación de voz&lt;br /&gt;
&lt;br /&gt;
Es también el proceso que genera las llamadas en el marcador automático de '''''VIVA'''''it Suite&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando “nc ip_maquina 1112”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1112'''&lt;br /&gt;
 myAcdSuperv SIS ver='04.6' inic='20140416 081613' alarmas=6 ultAlar='20140416 121652'&lt;br /&gt;
 myAcdSuperv AMI cnx=1 ocup=28% exten=2/2/511 asig=0/11/4095&lt;br /&gt;
 myAcdSuperv MYSQL cnx=1 ms=316&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parámetro!!Descripción&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ver||Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|AMI/cnx||Conectado (1) a asterisk&lt;br /&gt;
|-&lt;br /&gt;
|AMI/ocup||Porcentaje de ocupación de MyACDSuperv&lt;br /&gt;
|-&lt;br /&gt;
|AMI/exten||Extensiones/Extensiones/Extensiones monitorizadas|-&lt;br /&gt;
|-&lt;br /&gt;
|AMI/asig||&lt;br /&gt;
|-&lt;br /&gt;
|MYSQL/cnx||Conectado (1) a MySQL&lt;br /&gt;
|-&lt;br /&gt;
|MYSQL/ms||Tiempo de última operación en ejecutarse&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/myAcdSuperv.cnf'''&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/myAcdSuperv.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Proceso escoba ====&lt;br /&gt;
El proceso escoba se encarga de resolver y consolidar todos aquellos segmentos de grabación que han quedado almacenados en los gateways por falta de información o incoherencias. Existen dos tipos de procesos escobas:&lt;br /&gt;
# Proceso escoba perteneciente a nodo con agente de grabación (recordNodo) llamado '''''escobaGW.pl'''''.&lt;br /&gt;
# Proceso escoba perteneciente o no a un servidor de grabación (recordCentral) llamado '''''escobaGrabsBd.pl'''''.&lt;br /&gt;
&lt;br /&gt;
===== escobaGW.pl =====&lt;br /&gt;
Proceso que se ejecuta en los nodos busca en el disco RAM , las grabaciones de segmentos cuya antigüedad sea superior a mas de un día, es decir, si el proceso por ejemplo se ejecuta a la 01:00 a.m. del día 24/03/2016 buscara todas aquellas grabacionesn de segmentos realizadas antes de la 01:00 a.m del día 22/03/2016.&lt;br /&gt;
Una vez realizada la busqueda, obtendra el UCID a traves del nombre del fichero, y comprobara su correspondencia con la tabla DAT_LLAMADAS. Si existe una llamada con ese UCID, cambiara el estado de la llamada para que sea procesada correctamente. En caso contrario, es movida a la carpeta ''/var/lib/recordNodo/grabError''.&lt;br /&gt;
&lt;br /&gt;
===== escobaGrabsBd.pl =====&lt;br /&gt;
Se ejecuta sobre la base de datos de histórico, normalmente se ejecuta en un servidor de grabación (recordCentral). El proceso hace una búsqueda en dos tablas:&lt;br /&gt;
* En DAT_SEGMENTOS obtiene todos aquellos segmentos con grabaciones que dieron error, su estado tendrá valor 120.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
* En DAT_LLAMADAS obtendremos todos los registros correspondiente al segmentos anteriores.&lt;br /&gt;
Después hace una búsqueda en el sistema, usando como ruta el campo D_HORA_INICIO de cada llamada, que indica la ruta entera donde se encuentra el archivo. Una vez encontrado el archivo cambia el estado del segmento que tenia un error a estado de grabación disponible , que tendrá valor 100. Si no encontramos el segmento, no realizara nada.&lt;br /&gt;
&lt;br /&gt;
==== recordCentral ====&lt;br /&gt;
Se considera como un servidor de grabaciones. Todas las grabaciones de llamadas son un activo importante y una empresa con Contact Center pueda recibir millones de llamadas que necesitan estar registradas y almacenadas en discos duros con gran capacidad, dichas maquinas donde suelen alojarse estos servidores poseen discos duros limitados, lo que hace necesario en algunos casos incorporar ''dispositivos NAS''.&lt;br /&gt;
&lt;br /&gt;
Los ''dispositivos NAS'' son dispositivos de almacenamiento conectados a una red que permite el almacenamiento y la recuperación de datos desde una ubicación centralizada, flexibles y escalables, lo que significa que a medida que necesite almacenamiento adicional, puede añadirlo al que tiene. Esto no indica que sea necesario poseer de ''dispositivos NAS'' para funcionar, sino que puede tomar datos de diferentes sitios.&lt;br /&gt;
&lt;br /&gt;
En '''recordCentral''' pueden existir tres tipos de dispositivos NAS:&lt;br /&gt;
* Uno dedicado para las llamadas &lt;br /&gt;
* Uno dedicado para los segmentos &lt;br /&gt;
* Uno mixto para todas las llamadas y segmentos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El '''recordCentral''' se encarga de recoger todas las grabaciones de segmentos que tienen de estado proceso(3) en cada nodo gestionado, es decir, coger aquellos segmentos de llamadas marcados como llamadas disponibles, intenta descargar los segmentos de las llamadas y convertirlas al formato adecuado (MP3).&lt;br /&gt;
Como una característica particular cada diez minutos, siempre que no tenga ninguna otra tarea, intenta ver si puede establecer conexión con un nodo en cuarentena, para sacarlos de cuarentena y recoger todas las grabaciones de segmentos disponibles, para intentar convertir y descargar todas las grabaciones.  &lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando '''''nc ip_maquina 1114''''' en la maquina donde creamos que debe estar ejecutando el proceso recordCentral. Ejemplo:&lt;br /&gt;
 '''root@smadavacdrecord1:~# nc localhost 1114'''&lt;br /&gt;
 recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423 160112'&lt;br /&gt;
 recordCentral MYSQL cnx=1&lt;br /&gt;
 recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
 recordCentral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
 recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10'&lt;br /&gt;
La explicación de los campos se muestra en la tabla siguiente:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parámetro !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ver || Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/inic || Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/alarmas || Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ultAlar || Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
| MYSQL/cnx || Conectado (1) a MySQL&lt;br /&gt;
|-&lt;br /&gt;
| NAS/llamadas || Alojamiento en NAS de llamadas activo (grabación de llamada completa en un único archivo)&lt;br /&gt;
|-&lt;br /&gt;
| NAS/segmentos || Alojamiento en NAS de segmentos activo&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamNum || Llamadas procesadas&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamErr || Llamadas con error&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmNum || Segmentos procesados&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmErr || Segmentos con error&lt;br /&gt;
|-&lt;br /&gt;
| NODO/fase  || Número de proceso de recordCentral&lt;br /&gt;
|-&lt;br /&gt;
| NODO/cuarentena  || Lista de nodos en cuarentena, separada por comas&lt;br /&gt;
|-&lt;br /&gt;
| NODO/descarga || Lista de nodos en descarga, separada por comas&lt;br /&gt;
|-&lt;br /&gt;
| NODO/gestion || Lista de nodos gestionados, separada por comas (cuarentena + descarga = gestión)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/recordCentral.pconf'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:Se explican a continuación las variables más importantes del proceso RecordCentral:&lt;br /&gt;
&lt;br /&gt;
# Conexion de base de datos&lt;br /&gt;
$db='nimitz';&lt;br /&gt;
$dbHost = 'BDTR';&lt;br /&gt;
$dbPort = '3306';&lt;br /&gt;
$dbUsuario = 'nimitz';&lt;br /&gt;
$dbClave = 'ivivanimitz';&lt;br /&gt;
&lt;br /&gt;
# Configuracion de archivos con grabaciones (Orig en nodo)&lt;br /&gt;
$grabHay = 0;&lt;br /&gt;
$grabAudioCalidad = 32;&lt;br /&gt;
$grabAudioFormato = 'ogg';&lt;br /&gt;
$grabAudioExten = 'ogg';&lt;br /&gt;
$grabAudioCifrado = 0;&lt;br /&gt;
$grabRutaUsaTimestamp = 1;&lt;br /&gt;
$grabRutaOrig = '/var/lib/recordNodo/grabaciones';&lt;br /&gt;
$grabRutaTmp = '/var/lib/recordProcesad/grabTmp';&lt;br /&gt;
$grabRutaDest = '/var/lib/recordProcesad/grabRecord';&lt;br /&gt;
$grabRutaError = '/var/lib/recordProcesad/grabError';&lt;br /&gt;
$segmHay = 1;&lt;br /&gt;
$segmUmbralTiempo = 10;&lt;br /&gt;
$segmMargenTiempo = 5;&lt;br /&gt;
$segmAudioCalidad = 32;&lt;br /&gt;
$segmAudioFormato = 'ogg';&lt;br /&gt;
$segmAudioExten = 'ogg';&lt;br /&gt;
$segmAudioCifrado = 0;&lt;br /&gt;
$segmRutaUsaTimestamp = 1;&lt;br /&gt;
$segmRutaTmp = '/var/lib/recordProcesad/segmTmp';&lt;br /&gt;
$segmRutaDest = '/var/lib/recordProcesad/segmRecord';&lt;br /&gt;
$segmRutaError = '/var/lib/recordProcesad/segmError';&lt;br /&gt;
&lt;br /&gt;
# Seleccion de tipos de segmento a grabar separados por comas ('' = todos)&lt;br /&gt;
$tiposSegmentoGrabar = '';&lt;br /&gt;
&lt;br /&gt;
# Indica si se graba ring&lt;br /&gt;
$grabarRing = 0;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/recordCentral.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== recordNodo ====&lt;br /&gt;
Se considera como proceso con función de agente de grabación para un nodo. Solo debe existir uno por maquina o por nodo (configurado como grabador) en el '''portal de administración de ''VIVA''it'''.&lt;br /&gt;
&lt;br /&gt;
Para su funcionamiento utiliza un ''disco RAM''  por que su tiempo de acceso mejora drásticamente, debido a que la memoria RAM es varios órdenes de magnitud más rápida que las unidades de disco reales, haciendo que la velocidad de procesamiento de las grabaciones sea mucho mas rápida.&lt;br /&gt;
&lt;br /&gt;
Este ''disco RAM'' normalmente ocupa la mitad de la memoria RAM de una maquina pero no es obligatorio pues dependerá de la memoria disponible en cada maquina, y además, se configura con un tamaño no superior a 2GB de memoria RAM. Hay que tener especial cuidado en que no se llene en espacio  ni tampoco los i-nodos. Se puede  monitorizar a través de la aplicación '''zabbix'''.&lt;br /&gt;
&lt;br /&gt;
El '''''recordNodo''''' se encarga de recoger todas las grabaciones de segmentos que tienen de estado  ''proceso(2)'', es decir, aquellos segmentos de llamadas que han sido grabadas pero no están siendo procesadas, moviéndolas del ''disco RAM'' a su carpeta correspondiente.&lt;br /&gt;
&lt;br /&gt;
La forma de obtener la carpeta correspondiente es obteniendo el dato del campo D_HORA_INICIO en la tabla DAT_LLAMADAS para cada segmento,tras un tratamiento del campo creara la subruta correspondientes: /año/mes/dia/hora/min. Entonces, la ruta correcta seria /var/lib/recordNodo/grabaciones/año/mes/dia/hora/min, donde año, mes, dia , hora y min son los valores numéricos obtenidos del campo D_HORA_INICIO.&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando '''''nc ip_maquina 1113''''' en la maquina donde creamos que debe estar ejecutando el proceso recordNodo:&lt;br /&gt;
&lt;br /&gt;
 root@smadavgw5:~#nc localhost 1113&lt;br /&gt;
 recordNodo SIS ver='04.00.00' inic='20160326 105137' alarmas=2 ultAlar='20160326 105542'&lt;br /&gt;
 recordNodo MYSQL cnx=1&lt;br /&gt;
 recordNodo REC grabNum=0 grabErr=0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La explicación de los campos se muestra en la tabla siguiente:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parámetro  !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ver || Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/inic  || Fecha de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/amarmas || Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ultAlar || Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
| MYSQL/cnx || Conectado (1) a MySQL&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamNum || Llamadas procesadas&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamErr || Llamadas con error&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmNum || Segmentos procesados&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmErr || Segmentos con error&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/recordNodo.pconf'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:Se muestran a continuación las variables que son modificadas con mayor frecuencia:&lt;br /&gt;
# Conexion de base de datos&lt;br /&gt;
$db='nimitz';&lt;br /&gt;
$dbHost = 'BDTR';&lt;br /&gt;
$dbPort = '3306';&lt;br /&gt;
$dbUsuario = 'nimitz';&lt;br /&gt;
$dbClave = 'ivivanimitz';&lt;br /&gt;
&lt;br /&gt;
# Quien es mi nodo para filtrar grabaciones&lt;br /&gt;
$miNodo = 1;&lt;br /&gt;
&lt;br /&gt;
# Indica si se procesan segmentos de tipo tipoSegmEliminarGrabacion y patron eliminación&lt;br /&gt;
$segmEliminarGrabacionTrato = 1;&lt;br /&gt;
$patronEliminarGrabacion = '/etc/MDtel/null.bin';&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/recordNodo.log'''&lt;br /&gt;
&lt;br /&gt;
==== Vivait-CTI ====&lt;br /&gt;
Permite la comunicación entre la aplicación '''''VIVA'''''it Desk de agente y el asterisk, sincronizando; convierte el protocolo “asterisk manager” a CSTA ('''''VIVA'''''it Desk “habla” CSTA).&lt;br /&gt;
&lt;br /&gt;
Es un proceso importante para que el uso de '''''VIVA'''''it Desk, y que los agentes puedan realizar su operativa normal con la entrada y salida de llamadas… si bien el cursado telefónico de llamadas es factible, no disponer de las facilidades de '''''VIVA'''''it Desk y formularios hace el sistema difícilmente manejable&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando “nc ip_maquina 1111”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1111'''&lt;br /&gt;
 vivait-cti sis ver='V01.5' inic='20140414 104312' alarmas=13 ultAlar='20140415 173152'&lt;br /&gt;
 vivait-cti gmp msj=1018/1024 buf=1023/1024 tarea=97/102&lt;br /&gt;
 vivait-cti tmp uptime=694748 (8d 0h 59m 8s)&lt;br /&gt;
 vivait-cti cti numConx=(0/511) numPend=(0/127) numMakeCallPend=0 numCall=(0/2047)&lt;br /&gt;
 numChan=(0/4095) numAuxStr=(0/511) numMoniColas=(0/511) numMoniDevice=0&lt;br /&gt;
 numMoniCall=0 numMoniCallAuto=0 numMoniCallByDevice=0 numMoni=(0/511)&lt;br /&gt;
 auditCallErr=0 auditAuxStrErr=0 auditMsjReqErr=0 araChanID=0 araUniqueID=0 araMoni=0&lt;br /&gt;
 vivait-cti ami esta=conx resp=652(0) evs=1397(0) descar=556(0) err=16 errConx=16&lt;br /&gt;
 numAct(0/0/127) auditErrAct=0&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!ver!!Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|sis/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|Sis/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|Sis/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/msj||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/buf||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/tarea||&lt;br /&gt;
|-&lt;br /&gt;
|Tmp/uptime||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numConx||Número de conexiones actuales / Número de conexiones máximo&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numPend||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMakeCallPend||Llamadas pendientes de realizar&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numcall||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numChan||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numAuxStr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniColas||Número de colas monitorizadas&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniDevice||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniCall||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniCallAuto||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniCallByDevice||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoni||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/auditCallErr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/auditAuxStrErr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ auditMsjReqErr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ araChanID||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ araUniqueID||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ araMoni||&lt;br /&gt;
|-&lt;br /&gt;
|Ami/esta||Estado de conexión contra manarger de asterisk&lt;br /&gt;
|-&lt;br /&gt;
|Ami/resp||&lt;br /&gt;
|-&lt;br /&gt;
|Ami/evs||Número de eventos (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
||Ami/descar&lt;br /&gt;
|-&lt;br /&gt;
|Ami/err||Errores&lt;br /&gt;
|-&lt;br /&gt;
|Ami/errConx||Errores de conexión&lt;br /&gt;
|-&lt;br /&gt;
|Ami/numAct||&lt;br /&gt;
|-&lt;br /&gt;
|Ami/auditErrAct||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/vivait-cti.conf'''&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/vivait-cti.conf'''&lt;br /&gt;
&lt;br /&gt;
==== Phoneprov-TFTP ====&lt;br /&gt;
&lt;br /&gt;
==== Introducción al aprovisionamiento ====&lt;br /&gt;
&lt;br /&gt;
En cada Centralita Telefónica existente, se puede configurar sus teléfonos IP y asignarles extensiones a cada teléfono. Para hacer un ''aprovisionamiento'' de los teléfonos es necesario que el técnico configure uno a uno manualmente utilizando su interfaz web, esto no es práctico, ya que genera muchos errores y el tiempo de implementación se incrementa drásticamente. Además, es casi imposible la administración cotidiana de los teléfonos IP. Desde '''MD'''tel se utiliza una herramienta que permite que los teléfonos IP soportados y homologados por '''MD'''tel ([[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_3.0#Terminales_telef.C3.B3nicos ver Terminales telefónicos]]) se puedan aprovisionar automáticamente, brindando una fácil implementación y administración cotidiana. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== ¿Qué es aprovisionar? =====&lt;br /&gt;
&lt;br /&gt;
Aprovisionar un teléfono es el proceso de configuración automático de teléfonos IP para su uso con una Centralita Telefónica de forma remota. Una vez que aprovisione un teléfono, el teléfono automáticamente se configurará correctamente y podrá administrar los teléfonos de forma centralizada y remota,  sin tener que iniciar sesión en la interfaz web de cada uno de los teléfonos. &lt;br /&gt;
&lt;br /&gt;
El aprovisionamiento de teléfono facilita enormemente la administración cotidiana de los teléfonos IP. Esto hace que sea fácil de cambiar las contraseñas de extensión,realizar desvíos de llamadas, nombre a mostrar, mensajería y demás configuraciones, ya que puede hacerlo de forma centralizada para todos los teléfonos desde el portal de administración y luego transferir los cambios al teléfono. &lt;br /&gt;
&lt;br /&gt;
===== TFTP =====&lt;br /&gt;
&lt;br /&gt;
'''TFTP''' son las siglas de '''T'''rivial '''F'''ile '''T'''ransfer '''P'''rotocol ''(Protocolo de transferencia de archivos trivial)''. &lt;br /&gt;
&lt;br /&gt;
Es un protocolo de transferencia muy simple semejante a una versión básica de FTP. TFTP a menudo se utiliza para transferir pequeños archivos entre terminales en una red. &lt;br /&gt;
&lt;br /&gt;
Algunos detalles del TFTP: &lt;br /&gt;
&lt;br /&gt;
* Utiliza UDP (puerto 69) como protocolo de transporte (a diferencia de FTP que utiliza los &lt;br /&gt;
puertos 20 y 21 TCP). &lt;br /&gt;
* No puede listar el contenido de los directorios. &lt;br /&gt;
* No existen mecanismos de autenticación o cifrado. &lt;br /&gt;
* Se utiliza para leer o escribir archivos de un servidor remoto. &lt;br /&gt;
* Soporta tres modos diferentes de transferencia, &amp;quot;netascii&amp;quot;, &amp;quot;octet&amp;quot; y &amp;quot;mail”.&lt;br /&gt;
&lt;br /&gt;
===== Funcionamiento del servidor phoneprove-TFTP =====&lt;br /&gt;
&lt;br /&gt;
A continuación se muestra un esquema que facilita el entendimiento del funcionamiento del servidor phoneprove-TFTP:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Funcionamiento_Servidor.png‎ |center]]&lt;br /&gt;
&lt;br /&gt;
El servidor Phoneprove-TFTP se ''encarga del aprovisionamiento masivo de terminales'', es de gran utilidad porque cualquier cambio en los teléfonos pueden ser realizados a nivel DHCP y todos los teléfonos tomarán la nueva configuración luego de reiniciarlos. &lt;br /&gt;
&lt;br /&gt;
Desde phoneprove-TFTP se generara los archivos necesarios para cada teléfono y que sirven para ser aprovisionados automáticamente. &lt;br /&gt;
El servidor phoneprove-TFTP  tiene alojados los ficheros de configuración están ordenados según las direcciones MAC de los teléfonos. El teléfono “preguntará” al servidor cual es su fichero de configuración utilizando su dirección MAC. Este a través de su MAC , consulta en la base de datos para ofrecer al terminal los datos de configuración según su plantilla, cual sera su extensión , cual sera el usuario propietario, entre otras cosas.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
  '''Nota:''' En instalaciones grandes habrá más de uno, quizás uno por sede grande; depende de la infraestructura de DHCP.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Parámetros necesarios de Aprovisionamiento de Teléfonos =====&lt;br /&gt;
&lt;br /&gt;
 '''Notas:''' el aprovisionamiento desarrollador por '''MD'''tel, no emplea un fichero por cada &lt;br /&gt;
 teléfono, sino que emplea una plantilla por cada modelo de teléfono.&lt;br /&gt;
 Debe haber una '''configuración previa del servidor DHCP''' es necesario coordinar con el cliente la asignación de direcciones para &lt;br /&gt;
 los diferentes elementos de la plataforma '''''VIVA'''''it, fundamentalmente para terminales telefónicos; en este caso además será necesario &lt;br /&gt;
 activar la opción 66 que permitirá definir el servidor TFTP del que los terminales cogerán sus ficheros de aprovisionamiento.&lt;br /&gt;
 El aprovisionamiento desde el portal de administración solo es posible para aquellos teléfonos IP homologados y probados desde '''MD'''tel   &lt;br /&gt;
 [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_3.0#Terminales_telef.C3.B3nicos ver Terminales  telefónicos]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como existen parámetros comunes de todos los teléfonos de la misma marca de fabricante, muchos de los parámetros necesarios para el aprovisionamiento  como comentamos se han generado desde MDtel en forma de plantillas, que estarán disponibles en el portal de administración VIVAit [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Plantillas | ver plantilla del portal de administración VIVAit]]. &lt;br /&gt;
&lt;br /&gt;
La configuración de un teléfono SIP es muy sencilla y en no es necesario tener conocimientos avanzados de informática o de telefonía. Cada una de estas plantillas que sirven para aprovisionar un teléfono IP homologado, algunos de los parámetros predeterminados se explicarán a continuación .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== Parámetros de Aprovisionamiento globales ======&lt;br /&gt;
&lt;br /&gt;
* Configuración de la red y MAC. &lt;br /&gt;
* Zona horaria. &lt;br /&gt;
&lt;br /&gt;
====== Parámetros de Aprovisionamiento Personales ======&lt;br /&gt;
&lt;br /&gt;
Además de los parámetros de aprovisionamiento globales, el teléfono también obtendrá información de configuración individual, tales como: &lt;br /&gt;
&lt;br /&gt;
*Número de Extensión.&lt;br /&gt;
*Nombre y Contraseña de usuario SIP. &lt;br /&gt;
*Configuración de Teclas BLF.&lt;br /&gt;
*Contraseña de la Interfaz Web del Teléfono IP.&lt;br /&gt;
*Idioma de la Pantalla.&lt;br /&gt;
*Orden de Preferencia de los Codecs.&lt;br /&gt;
&lt;br /&gt;
===== Aprovisionamiento de teléfonos nivel usuario =====&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
  '''Notas:''' La dirección MAC debe estar especificada en letras mayúsculas.&lt;br /&gt;
  La dirección MAC del teléfono se puede encontrar en la etiqueta adhesiva en la parte inferior del teléfono, o de lo contrario se deberá acceder desde&lt;br /&gt;
  el menú del propio terminal.   &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Los pasos a seguir son los siguientes: &lt;br /&gt;
&lt;br /&gt;
'''1)''' Dar de alta el teléfono en el portal de administración, se debe seleccionar el modelo del teléfono, e indicar la dirección MAC del teléfono a aprovisionar, todo ello desde el portal de administración VIVAit. &lt;br /&gt;
Para mas información ver [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Aprovisionamiento del portal de administracion| aprovisionamiento del portal de administración VIVAit]]. &lt;br /&gt;
&lt;br /&gt;
'''2)''' En el mismo portal de administración se deberá crear una extensión , asignar a la extensión el teléfono que se quiera aprovisionar, elegir la plantilla adecuada del teléfono y el usuario propietario (solo si sera un puesto fijo) desde [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Extensiones | extensiones del portal de administración]]. &lt;br /&gt;
&lt;br /&gt;
'''3)''' Conectar el teléfono a la red LAN informática (conectarlo al router o switch) para que tenga acceso a Internet:&lt;br /&gt;
&lt;br /&gt;
:*El teléfono enviará un mensaje de multidifusión a través de la LAN. &lt;br /&gt;
:*Este será captado por la Central Telefónica siempre que esté en la misma LAN. &lt;br /&gt;
:*Al teléfono se le enviará una URL de aprovisionamiento. &lt;br /&gt;
&lt;br /&gt;
'''4)''' Como la mayoría de teléfonos IP del mercado al arrancar una vez sabiendo la URL de aprovisionamiento piden una serie de archivos de configuración para aprovisionarse vía TFTP. EL servidor phoneprove-TFTP, detectara la petición y a través de la MAC y datos del usuario, consultará en la base de datos los datos necesarios para aprovisionar al teléfono y si todo funciona correctamente mandara al teléfono IP los datos de configuración necesarios para funcionar. &lt;br /&gt;
&lt;br /&gt;
'''5)''' Asegúrese de que el teléfono encuentren el servidor TFTP, para ello esperar un tiempo adecuado para que termine el aprovisionamiento. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''6)''' Finalmente aparecerá  como registrado en la centralita, obtendrá una dirección IP y podra funcionar según la configuración establecida.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
  '''Nota''': Si no se reaprovisiona tras un periodo largo de tiempo, desenchufe el cable de alimentación eléctrica &amp;lt;br /&amp;gt; o el cable Ethernet (si se utiliza la alimentación en línea PoE) para reiniciar los teléfonos. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Aprovisionamiento de teléfonos nivel técnico =====&lt;br /&gt;
&lt;br /&gt;
====== Plantilla de configuración ======&lt;br /&gt;
&lt;br /&gt;
La plantilla de configuración empleadas en el apartado  [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Plantillas | plantilla del portal de administración VIVAit]] de cada modelo está formada por una serie de variables. &lt;br /&gt;
&lt;br /&gt;
Los valores se obtienen de la tabla de la base de datos CEN_TELEFONOS, CEN_USUARIOS, ACD_EXTENSIONES, ACD_NODOS, COM_NODOS... correspondientes a la extensión del teléfono, usuario, nodo, etc. &lt;br /&gt;
&lt;br /&gt;
 variable ${NODO1_C_NOMBRE}='corp-ast13'&lt;br /&gt;
 variable ${EXTEN_C_CLAVE_REGISTRO}='Tel21002'&lt;br /&gt;
 variable ${USU_C_CODIGO_POSTAL}=''28034'&lt;br /&gt;
 variable ${SEDE_C_CODIGO_POSTAL}='28034' &lt;br /&gt;
 variable ${USU_C_NOMBRE}='Juan Antonio'&lt;br /&gt;
 variable ${USU_C_APELLIDO2}='Ramirez'&lt;br /&gt;
 variable ${SEDE_C_NOMBRE}='RED_LAB'&lt;br /&gt;
 variable ${NODO2_C_NOMBRE}= NULL&lt;br /&gt;
 variable ${EXTEN_C_NOMBRE}='' 21002&lt;br /&gt;
 variable ${USU_C_LOCALIDAD}='' &lt;br /&gt;
 variable ${USU_C_NOMBRE_MOSTRAR}='Juan' &lt;br /&gt;
 variable ${NODO1_C_IP}='175.25.129.70' &lt;br /&gt;
 variable ${MODEL_C_PREFIJO_PLANTILLA_MAC}='T28P' &lt;br /&gt;
 variable ${SEDE_C_LOCALIDAD}='Madrid' &lt;br /&gt;
 variable ${USU_C_APELLIDO1}='Casas' &lt;br /&gt;
 variable ${NODO2_C_IP}= NULL&lt;br /&gt;
 variable ${TF_ID_EXTENSION}='5' &lt;br /&gt;
 cargando campos idExten=5&lt;br /&gt;
&lt;br /&gt;
====== Ficheros y paquetes necesarios ======&lt;br /&gt;
&lt;br /&gt;
'''Paquetes previos:''' libnet-tftpd-perl, tftp-hpa, libnet-address-ip-local-perl &lt;br /&gt;
'''Usuario de funcionamiento:''' root &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
   '''Nota:'''  los archivos y directorios que generemos podrian necesitar que se permitiera el acceso al archivo de lectura &amp;lt;br/&amp;gt; y escritura en el servidor TFTP.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Archivos necesarios:''' &lt;br /&gt;
&lt;br /&gt;
 /usr/local/sbin/phoneprov-tftp.pl &lt;br /&gt;
 /usr/local/sbin/phoneprov-tftp.pm&lt;br /&gt;
 /etc/MDtel/phoneprov-tftp.pconf &lt;br /&gt;
 /etc/init/phoneprov-tftp.conf &lt;br /&gt;
 /etc/logrotate.d/phoneprov-tftp &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Directorios a crear:''' &lt;br /&gt;
&lt;br /&gt;
 /var/lib/phoneprov-tftp/plt &lt;br /&gt;
 /var/lib/phoneprov-tftp/bin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Watchdog ====&lt;br /&gt;
&lt;br /&gt;
Se trata de una aplicación del asterisk que monitoriza el SIP y en caso de fallo, pasado un cierto tiempo, reinicia el asterisk y genera un core.&lt;br /&gt;
Si escribimos en CLI de asterisk perro tenemos los siguientes comandos:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Activar||Activar el Watchdog&lt;br /&gt;
|-&lt;br /&gt;
|Desactivar||Desactiva el Watchdog&lt;br /&gt;
|-&lt;br /&gt;
|Parada||Reinicia el asterisk y genera un core para pruebas&lt;br /&gt;
|-&lt;br /&gt;
|Reload||Realiza una recarga del Watchdog y aplica cambios en su configuración&lt;br /&gt;
|-&lt;br /&gt;
|Show||Ver el estado del Watchdog&lt;br /&gt;
&lt;br /&gt;
perro avisado=0 activo=1 segsDormir=1 segsInic=60 segsGuarda=30 maxErr=3&lt;br /&gt;
perro        nombre=sip_monitor_udp lwp=[15437] segsInic=60 segsGuarda=30 hace=11 err=0/5&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El dato &amp;quot;hace&amp;quot; informa de cuanto tiempo ha transcurrido desde el último tick. Facilita la calibración del parámetro de configuración &amp;quot;segs_guarda&amp;quot;, normalmente es 30&lt;br /&gt;
&lt;br /&gt;
Tiene un fichero de configuración ubicado en /etc/asterisk/MDcrash.conf&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Sección [perro]&lt;br /&gt;
||activo=yes (Si esta o no activo)&lt;br /&gt;
segs_dormir=1 (Un tick por segundo)&lt;br /&gt;
&lt;br /&gt;
segs_inic=60&lt;br /&gt;
&lt;br /&gt;
segs_guarda=30 &lt;br /&gt;
&lt;br /&gt;
max_errores=3  &lt;br /&gt;
|-&lt;br /&gt;
|Sección [sip_monitor_udp]&lt;br /&gt;
||segs_inic=60&lt;br /&gt;
&lt;br /&gt;
segs_guarda=30 (Cada 30 segundos si no reciba trafico SIP genera core)&lt;br /&gt;
&lt;br /&gt;
max_errores=5 (Número máximo de errores)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Proceso de Backup ====&lt;br /&gt;
Las plataformas '''''VIVA'''''it Call y '''''VIVA'''''it Suite incluyen un script para realizar un proceso de backup.&lt;br /&gt;
&lt;br /&gt;
Se utilizará el script '''backup.sh''', que se encuentra en el directorio '''etc/MDTel'''.&lt;br /&gt;
&lt;br /&gt;
Se ejecuta automaticamente mediante el uso de un cron&lt;br /&gt;
&lt;br /&gt;
'''texto del cron:'''&lt;br /&gt;
&lt;br /&gt;
 SHELL=/bin/sh&lt;br /&gt;
 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin&lt;br /&gt;
 # m h dom mon dow user command&lt;br /&gt;
 0 2 * * * root  /etc/MDtel/backup.sh /etc/MDtel/backup.cfg&lt;br /&gt;
&lt;br /&gt;
Para activar el script hay que descomentar la línea&lt;br /&gt;
 # m h dom mon dow user command&lt;br /&gt;
&lt;br /&gt;
Los directorios de los que se hace copia son:&lt;br /&gt;
* DIR=var/lib/asterisk/sounds/Particular&lt;br /&gt;
* DIR=var/lib/asterisk/moh&lt;br /&gt;
* DIR=etc&lt;br /&gt;
* DIR=etc/asterisk&lt;br /&gt;
* DIR=etc/cron.d&lt;br /&gt;
* DIR=etc/dahdi&lt;br /&gt;
* DIR=etc/exim4&lt;br /&gt;
* DIR=etc/ha.d&lt;br /&gt;
* DIR=etc/logrotate.d&lt;br /&gt;
* DIR=etc/MDtel&lt;br /&gt;
* DIR=etc/mysql&lt;br /&gt;
* DIR=etc/network&lt;br /&gt;
* DIR=etc/zabbix&lt;br /&gt;
* DIR=usr/local/sbin&lt;br /&gt;
&lt;br /&gt;
Por defecto se realiza un backup cada dos horas en la carpeta '''/var/spool/MDtel/backup'''.&lt;br /&gt;
&lt;br /&gt;
Para cambiar la ruta de destino del backup habrá que modificar el fichero backup.sh, en concreto modificar la variable MDTEL.&lt;br /&gt;
&lt;br /&gt;
El fichero ''' backup.cfg''' que se genera incluye copia de la siguiente información:&lt;br /&gt;
* Ficheros de configuración de la aplicación.&lt;br /&gt;
* Base de Datos.&lt;br /&gt;
* Dialplan.&lt;br /&gt;
&lt;br /&gt;
Se guardarán 10 copias del fichero ''' backup.cfg '''&lt;br /&gt;
&lt;br /&gt;
Para recuperar una plataforma utilizando el backup, habrá que instalar una máquina nueva y cargar los ficheros de configuración, Base de Datos y Dialplan guardados en el proceso de backup.&lt;br /&gt;
&lt;br /&gt;
=== Requerimientos de conectividad ===&lt;br /&gt;
&lt;br /&gt;
El esquema siguiente muestra como ejemplo todos los flujos de información existentes en un entorno típico de &amp;lt;big&amp;gt;'''telefonía corporativa (sin presencia)'''&amp;lt;/big&amp;gt; ('''''VIVA'''''it Call)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Flujos corporativa.png|cebter]]&lt;br /&gt;
&lt;br /&gt;
En el entorno de &amp;lt;big&amp;gt;'''Contact Center'''&amp;lt;/big&amp;gt;, encontramos los siguientes flujos &amp;lt;big&amp;gt;'''entre servicios'''&amp;lt;/big&amp;gt; (comunicaciones entre servidores, ('''''VIVA'''''it Suite)) &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Flujos Contact servicios.png|650px|center]]&lt;br /&gt;
&lt;br /&gt;
y &amp;lt;big&amp;gt;'''entre usuarios y servicios'''&amp;lt;/big&amp;gt; los reflejados a continuación:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Flujos Contact puestos.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Lado A!!Lado B!!Puertos!!Sentido!!Observ.&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor||TCP 5060||A -&amp;gt; B||Señalización SIP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor||UDP 5060||A -&amp;gt; B||Señalización SIP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor||10000 a 20000||A -&amp;gt; B&lt;br /&gt;
B -&amp;gt; A&lt;br /&gt;
||RTP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor TFTP||UDP 69||A -&amp;gt; B&lt;br /&gt;
B -&amp;gt; A&lt;br /&gt;
||Para actualización de terminales por TFTP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor NTP||UDP 123||A -&amp;gt; B||&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Desk||Servidor||TCP 4500||A -&amp;gt; B||Comunicación CTI&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Desk||Servidor||TCP 3306||A -&amp;gt; B||Acceso a Mysql Base de datos&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Desk||Servidor Syslog||UDP 514||A -&amp;gt; B||Para envio de logs de agente&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Supervisor||Servidor||TCP 3306||A -&amp;gt; B||Acceso a Mysql Base de datos&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker||Servidor||TCP 3306||A -&amp;gt; B||Acceso a Mysql Base de datos&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker||Servidor||TCP 8180||A -&amp;gt; B||&lt;br /&gt;
|-&lt;br /&gt;
|Actualizador||Servidor||TCP 80||A -&amp;gt; B||Necesario para actualizaciones de versiones de aplicaciones de agente y supervisores&lt;br /&gt;
|-&lt;br /&gt;
|Portal de administración||Servidor||TCP 8180||A -&amp;gt; B||Acceso al portal de administración '''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker Web||Servidor||TCP 8180||A -&amp;gt; B||&lt;br /&gt;
|-&lt;br /&gt;
|Monitor||Servidor||TCP 8180||A -&amp;gt; B||Wallboard&lt;br /&gt;
|-&lt;br /&gt;
|Monitorización||Servidor||TCP 80||A -&amp;gt; B||Acceso a portal monitorización (Zabbix)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Gateways ===&lt;br /&gt;
El concepto de gateway como tal no existe en la plataforma '''''VIVA'''''it; existen nodos de ACD y nodos de corporativa.&lt;br /&gt;
&lt;br /&gt;
A efectos de operación un nodo de corporativa es el que en cualquier caso asumirá las funcionalidades de gateway, y recibirá las conexiones (analógicas, digitales o IP) a sistemas externos o a la RTC&lt;br /&gt;
&lt;br /&gt;
El concepto gateway queda pues suscrito a entornos meramente comerciales&lt;br /&gt;
&lt;br /&gt;
Incluimos no obstante en este apartado los diagnósticos y operaciones básicos de conexiones a sistemas externos o RTC&lt;br /&gt;
&lt;br /&gt;
Para verificar los enlaces establecidos ejecutamos el siguiente comando en el terminal: '''sip show peers''' &lt;br /&gt;
&lt;br /&gt;
Al ejecutar este comando obtenemos la salida:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Enlace_Exterior.png |center]]&lt;br /&gt;
&lt;br /&gt;
Las columnas ''Host'' y ''Port'' nos muestran las conexiones establecidas y nos informa de un posible problema de conexión. &lt;br /&gt;
&lt;br /&gt;
Sabremos que ''no existe conexión'' cuando la columna Host tiene el valor '''Unspecified''' y en la columna Port aparece un '''0''' , a continuación se muestra un ejemplo:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ejemplo_no_conexion.png |center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#00FF00&amp;quot;&amp;gt;FALTA AQUI DIAGNOSTICOS Y OPERACIONES DE ENLACES EXTERNOS&amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Servidor de grabación === &lt;br /&gt;
==== Almacenamiento en la nube ====&lt;br /&gt;
Almacenamiento en la nube.&lt;br /&gt;
Existe la posibilidad de que tras un determinado periodo de tiempo las grabaciones sean movidas a un almacenamiento externo. De esta operativa se encarga el proceso /usr/local/sbin/mueveGrabaciones.pl que recibe como parámetro la ruta al archivo de configuración. Dicho archivo tiene los siguientes elementos:&lt;br /&gt;
&lt;br /&gt;
*$db: Nombre de la base de datos.&lt;br /&gt;
*$dbHost: servidor de MySQL&lt;br /&gt;
*$dbPort: Puerto del MySQL.&lt;br /&gt;
*$dbUsuario: Usuario de conexión a MySQL.&lt;br /&gt;
*$dbClave: Clave del usuario anterior.&lt;br /&gt;
*$dirBase: Directorio donde residen las grabaciones&lt;br /&gt;
*$diasCaducidad: Dias de antigüedad para mover las grabaciones&lt;br /&gt;
*$sftpHost: Servidor SFTP de destino&lt;br /&gt;
*$sftpPort: Puerto SFTP.&lt;br /&gt;
*$sftpUsuario: Usuario SFTP.&lt;br /&gt;
*$sftpClave: Clave del usuario SFTP.&lt;br /&gt;
*$simula: Si este campo vale 1, las grabaciones se copian, pero no se borran del directorio original, ni se actualiza su ubicación en la base de datos.&lt;br /&gt;
&lt;br /&gt;
La grabación indica donde se encuentra mediante el campo E_UBICACION_GRABACION, que puede tener los siguientes valores:&lt;br /&gt;
*Sin definir (0)&lt;br /&gt;
*En línea (10): Las grabaciones se encuentran en el servidor de grabaciones.&lt;br /&gt;
*Fuera de línea (20): las grabaciones se encuentran en una ubicación externa.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Reporting ===&lt;br /&gt;
La aplicación de reporting en general no tiene procesos habituales de operación y mantenimiento.&lt;br /&gt;
Los informes son obtenidos desde la interfaz gráfica o mediante un procedimiento de scripting, descritos en “Formato de fichero de intercambio para '''''VIVA'''''it Reporting”.&lt;br /&gt;
&lt;br /&gt;
==== Formato de fichero de intercambio para '''''VIVA'''''it Reporting ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Nombre !! Descripción !! Ejemplo&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;| Selección de registros&lt;br /&gt;
|-&lt;br /&gt;
| SQL_selec || Expresión SQL que se añadirá al where a la SQL principal. || C_ORIGEN like '6%' and C_COD_CLIENTE= '023'&lt;br /&gt;
|-&lt;br /&gt;
| SQL_select_leido || Filtro de selección legible&lt;br /&gt;
 || Skill igual a 60310&lt;br /&gt;
|-&lt;br /&gt;
| SQL_orden || Lista de campos por los que se ordenará, después de los que estén ya definidos en la plantilla. || C_ORIGEN, C_COD_CLIENTE&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Salida&lt;br /&gt;
|-&lt;br /&gt;
| FIC_extension || Extensión de fichero de salida: PDF, XLSX, CSV || PDF&lt;br /&gt;
|-&lt;br /&gt;
| FIC_tipo_entrega || 'P': Pantalla, 'D': Directorio, 'C': Correo || D&lt;br /&gt;
|-&lt;br /&gt;
| FIC_destino || Si 'C', dirección de correo, si 'D', ruta del directorio || D:\informes\&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Plantilla&lt;br /&gt;
|-&lt;br /&gt;
| INF_modelo || Ruta del fichero de plantilla || C:\Modelos\llamadas.rep&lt;br /&gt;
|-&lt;br /&gt;
| INF_descripción || Descripción del informe || Informe detallado de llamadas&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Base de datos&lt;br /&gt;
|-&lt;br /&gt;
| BD_ip || IP o nombre de máquina || &lt;br /&gt;
|-&lt;br /&gt;
| BD_puerto || Puerto de MySQL || &lt;br /&gt;
|-&lt;br /&gt;
| BD_base_datos || Nombre de base de datos || &lt;br /&gt;
|-&lt;br /&gt;
| BD_usuario || Usuario de base de datos || &lt;br /&gt;
|-&lt;br /&gt;
| BD_clave || Clave de acceso cifrada || &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Parámetros&lt;br /&gt;
|-&lt;br /&gt;
| PAR_desde_vis || Fecha inicial de selección en formato legible (o '-' si no hay) || 01/01/2016&lt;br /&gt;
|-&lt;br /&gt;
| PAR_hasta_vis || Fecha final de selección en formato legible (o '-' si no hay) || 31/01/2016&lt;br /&gt;
|-&lt;br /&gt;
| PAR_01 || Parámetro opcional || &lt;br /&gt;
|-&lt;br /&gt;
| .. || .. || &lt;br /&gt;
|-&lt;br /&gt;
| PAR_20 || Parámetro opcional || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El fichero tendrá un nombre único para permitir la generación simultánea de informes.&lt;br /&gt;
El fichero es borrado por la aplicación de forma automática.&lt;br /&gt;
Se pasa a la aplicación de generación de informes como parámetro. Por ejemplo:&lt;br /&gt;
 “C:\Archivos de Programa\MDtel\Nimitz\LanzaInformes\LanzaInformes.exe”&lt;br /&gt;
 “C:\Archivos de Programa\MDtel\Nimitz\LanzaInformes\NIM00001.tmp”&lt;br /&gt;
&lt;br /&gt;
Ejemplo de fichero:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| SQL_selec=(DAT_ACUMULADOS_COLAS.ID_COLA in (11))&lt;br /&gt;
&lt;br /&gt;
SQL_select_leido=Skill igual a 60310&lt;br /&gt;
&lt;br /&gt;
SQL_orden=&lt;br /&gt;
FIC_extension=pdf&lt;br /&gt;
&lt;br /&gt;
FIC_tipo_entrega=P&lt;br /&gt;
&lt;br /&gt;
FIC_destino=C:\&lt;br /&gt;
&lt;br /&gt;
INF_modelo=skill_setsi.rep&lt;br /&gt;
&lt;br /&gt;
INF_descripcion=Skill. SETSI&lt;br /&gt;
&lt;br /&gt;
BD_ip=172.25.1.2&lt;br /&gt;
&lt;br /&gt;
BD_puerto=3306&lt;br /&gt;
&lt;br /&gt;
BD_base_datos=nimitz&lt;br /&gt;
&lt;br /&gt;
BD_usuario=nimitz&lt;br /&gt;
&lt;br /&gt;
BD_clave=UIk5jNY9PVX5ogg=&lt;br /&gt;
&lt;br /&gt;
PAR_desde_vis=-&lt;br /&gt;
&lt;br /&gt;
PAR_hasta_vis=-&lt;br /&gt;
&lt;br /&gt;
PAR_01=&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Resumen de significado de columnas en reporting histórico ====&lt;br /&gt;
Esta información se puede consultar en el siguiente enlace:&lt;br /&gt;
&lt;br /&gt;
http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Documentacion_de_usuario_VIVAit_Suite_3.3#Resumen_del_valor_de_las_columnas_que_aparecen_en_los_informes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===== Agente,asistencia diaria y agente. Asistencia diaria del grupo =====&lt;br /&gt;
&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo de llamado:''' Tiempo de ring en llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo disponible:''' Tiempo que el agente estuvo conectado y no está&lt;br /&gt;
incluido en ninguno de los anteriores.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas transferidas:''' Número de llamadas ACD que fueron&lt;br /&gt;
transferidas por el agente.&lt;br /&gt;
&lt;br /&gt;
===== Agente. Aux y Grupo Aux =====&lt;br /&gt;
&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Desglose de tiempos AUX:''' Tiempo que el agente estuvo en cada uno&lt;br /&gt;
de los motivos de pausa.&lt;br /&gt;
&lt;br /&gt;
===== Agente. Resumen diario =====&lt;br /&gt;
&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo de llamado:''' Tiempo de ring en llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo disponible:''' Tiempo que el agente estuvo conectado y no está&lt;br /&gt;
incluido en ninguno de los anteriores.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas entrada Ext:''' Número de llamadas entrantes NO ACD a la&lt;br /&gt;
extensión.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas salida Ext:''' Número de llamadas salientes NO ACD desde la&lt;br /&gt;
extensión.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas transferidas:''' Número de llamadas ACD que fueron&lt;br /&gt;
transferidas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas retenidas:''' Número de retenciones que sufrieron las&lt;br /&gt;
llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACD:''' Tiempo ACD/ Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACW:''' TiempoACW/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio de entrada a la Ext:''' Tiempo entrada Ext/&lt;br /&gt;
Llamadas entrada Ext.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio de salida a la Ext:''' Tiempo salida Ext/ Llamadas&lt;br /&gt;
salida Ext.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio retención:''' Tiempo retención/Llamadas retenidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % Ocupación con ACW:''' ((Tiempo ACD+ Tiempo retención+ Tiempo&lt;br /&gt;
ACW)/Tiempo con personal)* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % Ocupación sin ACW:''' ((Tiempo ACD+ Tiempo retención)/Tiempo&lt;br /&gt;
con personal)* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % disp.:''' (Tiempo disponible/Tiempo conectado)* 100.&lt;br /&gt;
&lt;br /&gt;
===== Agente. Grupo ACD diario =====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención de un grupo&lt;br /&gt;
ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Ayuda:''' Número de llamadas contestadas por el agente que necesitaron&lt;br /&gt;
de consulta de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas retenidas:''' Número de retenciones que el agente realizó&lt;br /&gt;
sobre las llamadas de ese grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas por&lt;br /&gt;
el agente en ese grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Trans. salida:''' Llamadas que finalizan con una transferencia.&lt;br /&gt;
&lt;br /&gt;
===== Grupo ACD. Reporte diario con AHT =====&lt;br /&gt;
&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACD:''' Tiempo ACD/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACW:''' Tiempo ACW/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención de un grupo&lt;br /&gt;
ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente de un grupo ACD.&lt;br /&gt;
'''• Tiempo de llamado:''' Tiempo de ring en llamadas ACD de un grupo&lt;br /&gt;
ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo disponible:''' Tiempo que el agente estuvo conectado y no está&lt;br /&gt;
incluido en ninguno de los anteriores.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Ayuda:''' Número de llamadas ACD contestadas por el agente en las que&lt;br /&gt;
necesito hacer uso de la consulta.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas retenidas:''' Número de retenciones que el agente realizó&lt;br /&gt;
sobre las llamadas ACD contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas contestadas ACD&lt;br /&gt;
estuvieron retenidas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Trans. salida:''' Número de llamadas ACD que fueron transferidas por el&lt;br /&gt;
agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• AHT:''' (Tiempo ACD+ Tiempo ACW+ Tiempo retención)/Llamadas&lt;br /&gt;
ACD.(Average Handle Time)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Grupo ACD. QOS  =====&lt;br /&gt;
&lt;br /&gt;
'''• Vel. prom. de resp.:''' Tiempo total de espera de llamadas antes de ser&lt;br /&gt;
atendidas/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo prom. de aban.:''' Tiempo abandonadas(tiempo que las&lt;br /&gt;
llamadas abandonadas estuvieron en el grupo ACD)/Llamadas&lt;br /&gt;
abandonadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ofrecidas:''' Número de llamadas entrantes al grupo&lt;br /&gt;
ACD(Llamadas ACD+ Abandonadas+ Desbordadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas contestadas por los agentes.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas abandonadas:''' Número de llamadas colgadas por el cliente&lt;br /&gt;
en el grupo ACD antes de ser contestadas o desbordadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Desconectadas por ACD:''' Número de llamadas desbordadas que al&lt;br /&gt;
salir del grupo ACD se cuelgan.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Desbordadas por ACD:''' Número total de llamadas desbordadas(incluye&lt;br /&gt;
las desconectadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas atendidas en &amp;lt; 20s:'''Número de llamadas contestadas con&lt;br /&gt;
tiempo de respuesta menor a 20 segundos.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo total de espera:''' Tiempo total que las llamadas estuvieron&lt;br /&gt;
esperando antes de ser atendidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % N.A.:''' Llamadas ACD/(Llamadas ACD+ Llamadas abandonadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % N.D.S.:''' (Llamadas atendidas en &amp;lt; 20s/Llamadas ofrecidas)* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• T.M.O:''' (Tiempo ACD+ Tiempo ACW+ Tiempo retención)/Llamadas&lt;br /&gt;
ACD.(Tiempo Medio Operación)&lt;br /&gt;
&lt;br /&gt;
===== Informe conducción (VDN Conducción) =====&lt;br /&gt;
&lt;br /&gt;
'''•Entrantes al grupo ACD:''' Número de llamadas ofrecidas al grupo&lt;br /&gt;
ACD(Contestadas+ Abandonadas+ Desbordadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Llamadas contestadas:''' Número de llamadas contestadas por un agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Contestadas NDS:''' Número de llamadas contestadas en nivel de servicio,&lt;br /&gt;
tiempo de respuesta&amp;lt; 20 segundos.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Abandonadas:''' Número de llamadas abandonadas, colgadas por el cliente&lt;br /&gt;
antes de ser contestadas por un agente o desbordadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Desconectadas:''' Número de llamadas desbordadas que fueron colgadas al&lt;br /&gt;
salir del grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Desbordadas:''' Número total de llamadas desbordadas (incluye desconectadas)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Llamadas retenidas:''' Número de retenciones que el agente realizó sobre las&lt;br /&gt;
llamadas ACD contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•% N.A.:''' (Llamadas contestadas/(Llamadas contestadas+ Abandonadas+&lt;br /&gt;
Desbordadas))* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•% N.D.S.:''' (Contestadas NDS/(Llamadas contestadas+ Abandonadas + Desbordadas))*100&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•% Abandonadas:''' (Abandonadas/(Llamadas contestadas+ Abandonadas+ Desbordadas))* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. RING:''' Tiempo de ring en llamadas ACD(entrantes).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•ACDTIME:''' Tiempo de conversación ACD de las llamadas contestadas o&lt;br /&gt;
realizadas por el agente excluido el tiempo de retención de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. ACW:''' Tiempo dedicado por el agente a tareas administrativas tras&lt;br /&gt;
finalizar las llamadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum HOLD:''' Tiempo que las llamadas contestadas ACD estuvieron retenidas&lt;br /&gt;
por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. OTHER:''' Tiempo total que las llamadas estuvieron esperando en el&lt;br /&gt;
grupo ACD antes de ser atendidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. AVAIL:''' Acum. STAFF- (ACDTIME+ Acum. ACW+ Acum. RING+ Acum.&lt;br /&gt;
HOLD+ Acum. AUX).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. Staff:''' Suma del Tiempo conectado de todos los agentes al grupo&lt;br /&gt;
ACD(Este tiempo se repercute en todos los grupos ACD a los que esta&lt;br /&gt;
conectado el agente).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. AUX:''' Suma del Tiempo en pausa de todos los agentes que estén&lt;br /&gt;
conectados al grupo ACD(Este tiempo se repercute en todos los grupos ACD a&lt;br /&gt;
los que esta conectado el agente).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Prom. ACD:''' ACDTIME/Llamadas contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Prom. ACW:''' Acum. ACW/Llamadas contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Prom. HOLD:''' Acum. HOLD/Llamadas retenidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•AHT:''' (ACDTIME+ Acum. ACW+ Acum. HOLD)/Llamadas contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Vel. prom. de resp.:''' Tiempo total de espera de llamadas antes de ser&lt;br /&gt;
atendidas/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Tiempo máx. de espera:''' Tiempo de la llamada que estuvo mas tiempo en el&lt;br /&gt;
grupo ACD hasta que fue atendida.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Agentes en PH:''' (Acum. Staff- Acum. AUX)/1800(Agentes conectados que no&lt;br /&gt;
están en pausa en el intervalo).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Agentes Staff:''' Acum. Staff/1800(Agentes conectados en el intervalo)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Desglose de tiempos AUX:''' Tiempo que el agente estuvo en cada uno de los&lt;br /&gt;
motivos de pausa.&lt;br /&gt;
&lt;br /&gt;
===== Informe de producción =====&lt;br /&gt;
&lt;br /&gt;
'''• LL. ACD:'''Número de llamadas contestadas por ese agente para ese&lt;br /&gt;
grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. HOLD:''' Número de retenciones efectuadas para las llamadas&lt;br /&gt;
contestadas en ese grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Redir.:''' Número de llamadas no contestadas por un agente que&lt;br /&gt;
fueron redirigidas de nuevo a la cola.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. No colgadas cliente:''' Número de llamadas que terminaron sin el&lt;br /&gt;
colgado del cliente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Aband.:''' Número de llamadas abandonadas en ese grupo ACD, este&lt;br /&gt;
valor es independiente del agente por tanto se repite el valor para todos&lt;br /&gt;
los agentes en un mismo grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Transfer.:''' Número de llamadas ACD que fueron transferidas por el&lt;br /&gt;
agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Conf:''' Número de llamadas ACD en las que el agente estableció&lt;br /&gt;
conferencia.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• S. Extensión:''' Número de llamadas salientes de extensión, este valor es&lt;br /&gt;
independiente del grupo ACD se repite el valor para todos los grupos&lt;br /&gt;
ACD en los que está conectado el agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. Staff:''' Tiempo que el agente estuvo conectado al grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. RING:''' Tiempo de ring en las llamadas ACD(entrantes) que&lt;br /&gt;
fueron contestadas por el agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. ACD:''' Tiempo de conversación de las llamadas ACD(entrantes)&lt;br /&gt;
que fueron contestadas por el agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas que fueron contestadas por él.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum HOLD:''' Tiempo que las llamadas ACD(entrantes) para ese grupo&lt;br /&gt;
ACD que fueron contestadas por el agente estuvieron retenidas.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. AVAIL:''' Acum. STAFF- (Acum. ACD+ Acum. ACW+ Acum. RING+&lt;br /&gt;
Acum. HOLD+ Acum. AUX)..&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. AUX:''' Tiempo que el agente estuvo en pausa este valor es&lt;br /&gt;
independiente del grupo ACD se repite el valor para todos los grupos&lt;br /&gt;
ACD en los que está conectado el agente..&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Desgloses de tiempos AUX, tiempo AUX por cada uno de los&lt;br /&gt;
motivos.''' este valor es independiente del grupo ACD se repite el valor&lt;br /&gt;
para todos los grupos ACD en los que está conectado el agente.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Consideraciones adicionales =====&lt;br /&gt;
&lt;br /&gt;
Los tiempos se insertan en el intervalo en el que se deja ese &amp;quot;estado&amp;quot;, esto provoca que en un intervalo pueda ser mayor el tiempo ACD que el tiempo conectado.&lt;br /&gt;
&lt;br /&gt;
''* Ejemplo:''&lt;br /&gt;
&lt;br /&gt;
 -Llamada: Duración 15 minutos Hora fin de la llamada 13:01&lt;br /&gt;
 -Llamada: Duración 20 minutos Hora fin de la llamada 13:24&lt;br /&gt;
 Suma de las duraciones de las llamadas para el intervalo ''35 minutos'' tiempo&lt;br /&gt;
 conectado del agente en el intervalo ''30 minutos.''&lt;br /&gt;
 Cuando los periodos consultados sean mas amplios (diario, mensual) los&lt;br /&gt;
 desfases tenderán a desaparecer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Otros Diagnósticos y operaciones básicas ==&lt;br /&gt;
=== Arranque y apagado de la plataforma ===&lt;br /&gt;
&lt;br /&gt;
En general el arranque y apagado de cada nodo de una plataforma '''''VIVA'''''it es el estándar de un procedimiento ordenado de apagado en una máquina linux: '''&amp;quot;Shutdown -h now&amp;quot;''' o comando de apagado inmediato o programado equivalente&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El orden de arranque de la plataforma deberá ser:&lt;br /&gt;
# En primer lugar arrancar el nodo con la base de datos de tiempo real&lt;br /&gt;
# Una vez finalizado el arranque del punto 1, arrancar el nodo con la base de datos de réplica&lt;br /&gt;
# Una vez finalizado el arranque del punto 2, arrancar el resto de nodos en cualquier orden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Al respecto del orden de apagado de nodos, es el siguiente:&lt;br /&gt;
# En primer lugar se apagarán, en cualquier orden, los nodos que NO CONTENGAN bases de datos de tiempo real ni bases de datos de réplica&lt;br /&gt;
# Una vez apagados totalmente todos los nodos del punto 1, apagaremos el nodo (o nodos) con bases de datos de réplica&lt;br /&gt;
# Una vez apagados totalmente todos los nodos del punto 2, se apagará el nodo con la base de datos de tiempo real&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== Nivel matriz de conmutación ===&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Grabación ===&lt;br /&gt;
&lt;br /&gt;
==== Configuración de la grabación en la plataforma corporativa ====&lt;br /&gt;
Para que una llamada se grabe, lo primero de todo es que  alguien tenga la capacidad de grabar. Esto se consigue diciendo al nodo que sea grabador. Esto provoca que el nodo llame al mixmonitor para grabar y se inserte un registro en el DAT_GRABACIONES. Esto no significa que ya las llamadas se vayan a grabar, ya que para eso tiene que ser procesadas por un nodo que sea grabador. Hay tres, llamémosle elementos, que se pueden grabar:&lt;br /&gt;
&lt;br /&gt;
* El nodo, es decir todo lo que el nodo enrute&lt;br /&gt;
* Prerutas&lt;br /&gt;
* Objetos: que son las extensiones, usuarios, grupos corporativos, etc.&lt;br /&gt;
&lt;br /&gt;
Tenemos tres formas de grabar:&lt;br /&gt;
&lt;br /&gt;
* Grabar con beep periódico&lt;br /&gt;
* Grabar sin beep periódico&lt;br /&gt;
* Descartar grabación&lt;br /&gt;
&lt;br /&gt;
Si de los tres elementos tenemos que uno grabe, ya sea con o sin beep periódico, esa llamada se va a grabar ya que son OR, en cuanto haya un elemento que diga que grabe se va a grabar.&lt;br /&gt;
&lt;br /&gt;
Al igual pasa si tenemos que un elemento tenga descartar la grabación. La grabación no se inicia.&lt;br /&gt;
&lt;br /&gt;
Referente al campo de Modo de grabación en infraestructura, este no se emplea para la grabación de corporativo, sino que solo tiene validez en ACD. Para grabación en el ACD hay que, como se ha dicho anteriormente poner un nodo que sea grabador y especificar un elemento de los tres que hay cual es el que se va a grabar.&lt;br /&gt;
&lt;br /&gt;
Para que exista una grabación a de existir un segmento asociado a esta. Los segmentos se tratan en las prerutas. Hay un campo es las prerutas que es Generar segmento al enrutar. Si está se generará el segmento del tipo de la preruta y su correspondiente grabación si esta está configurada. Si le decimos que no genere segmentos al enrutar y el sistema está configurado para que grabe, el recordCentral creará un tipo de segmento llamado externo para esa grabación. Podemos configurar si queremos que se cree o no ese segmento, para eso hay que modificar el fichero de configuración del recordCentral y poner un tiempo muy alto al campo $segmExternoMinSegs. También podemos configurar que segmentos queremos que se graben. Por defecto el recordCentral va configurado para que se graben todos los segmentos. Para decirle que solo grabe cierto tipo de segmentos hay que ponerlos los que queramos que si se graben en la variable $tiposSegmentoGrabar del fichero de configuración del recordCentral.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que el servidor de grabación esta activo ====&lt;br /&gt;
&lt;br /&gt;
Si al ejecutar el comando '''''nc ip_maquina 1114''''',si no se recibe ninguna respuesta, significa el servidor de grabación no estaría activo. &lt;br /&gt;
También usando el comando ''''' ps aux | grep recordCentral ''''', donde si no escribe ningún resultado implica que tampoco esta activo.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que los nodos están conectados al servidor de grabación ====&lt;br /&gt;
&lt;br /&gt;
Debemos fijarnos en la linea de respuesta del comando '''''nc ip_maquina 1114''''', que seria:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| root@smadavacdrecord1:~# nc localhost 1114&lt;br /&gt;
recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423&lt;br /&gt;
160112'&lt;br /&gt;
&lt;br /&gt;
recordCentral MYSQL cnx=1&lt;br /&gt;
&lt;br /&gt;
recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
&lt;br /&gt;
recordCenral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
&lt;br /&gt;
'''recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10''''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el parámetro &amp;quot;fase=0&amp;quot; es el numero que identifica el recordCentral, los demás parámetros nos indicaran los nodos disponibles , que funcionan o no en el servidor. Entonces &amp;quot;gestión=4,6,7,8,9,10&amp;quot; indica el id de los nodos que maneja el proceso.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que un nodo tiene activo el agente de grabación ====&lt;br /&gt;
Si al ejecutar el comando '''''nc ip_maquina 1113''''', no se recibe ninguna respuesta, significa que el nodo no tiene activo el agente de grabación.&lt;br /&gt;
También usando el comando ''''' ps aux | grep recordNodo''''', donde si no escribe ningun resultado implica que tampoco esta activo.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que un nodo está subiendo archivos de grabación al servidor ====&lt;br /&gt;
Debemos fijarnos en la linea de respuesta del comando '''''nc ip_maquina 1114''''', que seria:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| root@smadavacdrecord1:~# nc localhost 1114&lt;br /&gt;
recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423&lt;br /&gt;
160112'&lt;br /&gt;
&lt;br /&gt;
recordCentral MYSQL cnx=1&lt;br /&gt;
&lt;br /&gt;
recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
&lt;br /&gt;
recordCenral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
&lt;br /&gt;
'''recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10''''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Fijándonos en &amp;quot;descarga=8,6,4,7,10,9&amp;quot; nos confirma que todos los nodos que maneja el proceso funcionan perfectamente y el servidor puede manejar las grabaciones.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de grabaciones que se hayan quedado enganchadas en un nodo ====&lt;br /&gt;
Podemos fijarnos en los dos comandos, para '''''nc ip_maquina 1114''''':&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| root@smadavacdrecord1:~# nc localhost 1114&lt;br /&gt;
recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423&lt;br /&gt;
160112'&lt;br /&gt;
&lt;br /&gt;
recordCentral MYSQL cnx=1&lt;br /&gt;
&lt;br /&gt;
recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
&lt;br /&gt;
recordCenral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
&lt;br /&gt;
'''recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10''''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Fijándonos en el campo &amp;quot;cuarentena=''&amp;quot; indica que ninguno de los nodos tiene problemas.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación del estado de ocupación del almacenamiento temporal de grabaciones en un nodo. ====&lt;br /&gt;
&lt;br /&gt;
Desde un SSH ejecuta el comando '''''df - h''''' en la maquina donde creamos que debe estar ejecutando el proceso recordNod:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Filesystem !! Size !! Used !! Avail !! Use% !! Mounted on&lt;br /&gt;
|-&lt;br /&gt;
| udev || 486M || 4,0K || 486M || 1,00% || /dev&lt;br /&gt;
|-&lt;br /&gt;
| tmpfs || 100M || 416K || 99M || 1,00% || /run&lt;br /&gt;
|-&lt;br /&gt;
| '''/dev/vda1''' ||''' 236M''' ||''' 68M''' ||''' 156M''' ||''' 31,00% '''||''' /boot'''&lt;br /&gt;
|-&lt;br /&gt;
| tmpfs || 100M || 48K || 100M || 1,00% || /var/spool/asterisk/monitor&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Nos fijaríamos en la línea marcada en negrita, el campo &amp;quot;Use%&amp;quot; indicara el porcentaje de almacenamiento temporal de grabaciones en un nodo.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Escuchas e intrusiones en asterisk===&lt;br /&gt;
'''CallSpy''' es una aplicación elaborada para asterisk que permite a un usuario realizar escuchas e &lt;br /&gt;
intrusiones en llamadas. &lt;br /&gt;
En realidad tenemos dos aplicaciones en asterisk, CallSpy y CallSpyee. &lt;br /&gt;
====CallSpy ====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 '''Nota:''' Como mucho se pueden tener a dieciséis personas al mismo tiempo usando esta aplicación. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como hemos mencionado anteriormente, esta aplicación permite la escucha de llamadas y, &lt;br /&gt;
opcionalmente, realiza la función de intrusión. Tiene tres opciones de configuración obligatorios &lt;br /&gt;
que mostramos a continuación: &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 CallSpy(&amp;lt;tipoEspiado&amp;gt;,&amp;lt;expRegEspiado&amp;gt;,&amp;lt;parametrosConf&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
La opción '''&amp;lt;tipoEspiado&amp;gt;''' se refiere a que tipo de objeto que podemos espiar correspondiente, solo debe elegirse un único tipo: &lt;br /&gt;
*'''c:''' escuchar una cola&lt;br /&gt;
*'''v:''' escuchar un vdn &lt;br /&gt;
*'''a:''' escuchar a un agente &lt;br /&gt;
*'''e:''' escuchar extensión &lt;br /&gt;
La opción '''&amp;lt;expRegEspiado&amp;gt;''' representa el número de la cola, VDN, agente o extensión que queremos escuchar. Tiene que ser una expresión regular. &lt;br /&gt;
La opción '''&amp;lt;parametrosConf&amp;gt;''' se refiera a los parámetros de configuración para la llamada que podemos espiar, se pueden combinar o juntar : &lt;br /&gt;
*'''q:''' Desactiva el 'beep' al comienzo de cada nueva llamada. &lt;br /&gt;
*'''v([value]):''' Ajusta el volumen en el rango -4 a 4 (más alto, mas volumen). &lt;br /&gt;
*'''e:''' Habilita el que se pueda cambiar a otra llamada de la misma extensión. &lt;br /&gt;
*'''w:''' Habilita el que se pueda activar la intrusión (whisper).&lt;br /&gt;
Una vez iniciada la escucha, solo falta que entre una llamada al objetivo que estemos espiando. Al &lt;br /&gt;
iniciar la escucha, se puede hacer lo siguiente: &lt;br /&gt;
*Pulsando '''#''' modifica el volumen de escucha. &lt;br /&gt;
*Pulsando '''*''' cambia a una nueva llamada. &lt;br /&gt;
*Pulsando '''1''' si esta habilitado, cambia a otra llamada de la misma extensión. &lt;br /&gt;
*Pulsando '''2''' si esta habilitado, inicia la función de intrusión. &lt;br /&gt;
*Pulsando '''3''' desactiva la función de intrusión. &lt;br /&gt;
====CallSpyee (espiado)====&lt;br /&gt;
Mediante esta aplicación indicamos los parámetros que permite a una llamada ser seleccionada para &lt;br /&gt;
escuchar. Las opciones de configuración son: &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 CallSpyee([CID_NUM],[cola],[vdn],[agen],[exten]) &lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:'''No son parámetros obligatorios, por lo que no hace falta rellenar todos los campos pero si respetar sus posiciones separadas por comas.&amp;lt;small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
La explicación de los parámetros es la siguiente:&lt;br /&gt;
*'''CID_NUM:''' representa el call ID de la llamadas &lt;br /&gt;
*'''cola:'''representa el número de la cola que se quiere espiar (${QUEUE} ).&lt;br /&gt;
*'''vdn:'''   representa el número del VDN que se quiere espiar (${VDN} ).&lt;br /&gt;
*'''agen:''' representa el número del agente que se quiere espiar.&lt;br /&gt;
*'''exten:''' representa el número de la extensión que se quiere espiar (${EXTENSION}) .&lt;br /&gt;
&lt;br /&gt;
Por ejemplo si queremos escuchar todas las llamadas en las que participa una extensión determinada pondremos en la macro de extensiones: &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,,,${EXTENSION}) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Cambios para el dialplan de asterisk==== &lt;br /&gt;
El funcionamiento de este tipo de servicio conlleva un cambio en el dialplan de asterisk. En cada macro correspondiente se pondrá los diferentes CallSpyee para VDN, colas  , extensiones y agentes. &lt;br /&gt;
Pasos a seguir: &lt;br /&gt;
*Paso 1. Creación de un código de intrusión para cada tipo según necesidad (cola, VDN, agente y &lt;br /&gt;
extensión). &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Ejemplo '''MD'''tel:  declaramos como código de intrusión a Agente *44*NUMERO &lt;br /&gt;
 ;========================================== &lt;br /&gt;
 ;======== Intrusion a Agente &lt;br /&gt;
 ;========================================== &lt;br /&gt;
 exten =&amp;gt; _*44*X.,1,set(CadMarcar=intrusionEspiado) &lt;br /&gt;
 exten =&amp;gt; _*44*X.,n,set(DesL=SERVICIO) &lt;br /&gt;
 exten =&amp;gt; _*44*X.,n,set(datoServicio=^${EXTEN:4}) &lt;br /&gt;
 exten =&amp;gt; _*44*X.,n,Goto(finMacro,1) &lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' En la tercera línea podemos observar la expresión regular que se le pasara al CallSpy correspondiente con el número marcado por el espia. &amp;lt;small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*Paso 2.Llamar a CallSpy con la configuración deseada.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Ejemplo '''MD'''tel:  llamada a CallSpy especificando que vamos a espiar una cola (la c del primer parámetro, con la&lt;br /&gt;
 extensión introducida en el código de intrusión y con whisper, es decir, función de intrusión habilitada. &lt;br /&gt;
 ;------------------------------------------------------------------------ &lt;br /&gt;
 ; Intrusion a Espiado &lt;br /&gt;
 ;------------------------------------------------------------------------ &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,1,NoOp &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,n,GotoIf($[&amp;quot;${datoServicio}&amp;quot;=&amp;quot;&amp;quot;]?colgar) &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,n,CallSpy(c,${datoServicio},w) &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,n(colgar),Hangup &lt;br /&gt;
|}&lt;br /&gt;
* Paso 3. Llamar a CallSpyee con la configuración de las llamadas candidatas a ser escuchadas.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Ejemplo '''MD'''tel: &lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,,,,${EXTENSION}) → Para extensiones &lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,${QUEUE},,,) → Llamadas espiadas por cola &lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,,${VDN},,) → Llamadas espiadas por VDN &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Calendarios ===&lt;br /&gt;
&lt;br /&gt;
Para la configuración de los Calendarios se hace uso de '''CalDAV''', estándar de Internet que permite a un cliente acceder a información de planificación en un servidor remoto. Permite que varios clientes accedan a la misma información, facilitando la cooperación. Muchas aplicaciones, tanto clientes como servidores, son compatibles con este protocolo.&lt;br /&gt;
&lt;br /&gt;
Si deseamos crear un calendario en la plataforma '''VIVAit''' podemos hacerlo siguiendo el  siguiente enlace:  &lt;br /&gt;
Para comprobar que el servidor de calendarios funciona correctamente bastaría con cargar en la barra de direcciones la siguiente url: [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Calendarios |Calendarios]]&lt;br /&gt;
&lt;br /&gt;
http://${NODO.HOST}/dav/html/cal.php/calendars/${DAV.CUENTA}/${DAV.CALENDARIO}&lt;br /&gt;
&lt;br /&gt;
donde,&lt;br /&gt;
&lt;br /&gt;
* '''NODO.HOST:''' es la ip del servidor calendar&lt;br /&gt;
* '''DAV.CUENTA:''' hace referencia a la cuenta de usuario&lt;br /&gt;
* '''DAV.CALENDARIO:''' hace referencia el nombre de la cuenta&lt;br /&gt;
&lt;br /&gt;
Una vez que se carga la url sabremos que el servidor funciona correctamente si visualizamos lo siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla de 2016-07-21 12_43_58.png || 1020px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si el sistema nos pide usuario y clave querrá decir que el servidor de calendarios está operativo en esa maquina&lt;br /&gt;
&lt;br /&gt;
Para comprobar que funciona en la consola de asterisk usaremos los comandos &lt;br /&gt;
 calendar show calendars&lt;br /&gt;
 calendar show calendar [nombreCalendario]&lt;br /&gt;
&lt;br /&gt;
 '''Nota:''' Debido bugs detectados, el proceso requerirá:&lt;br /&gt;
       - La realización de una sincronización manual de la sección &amp;quot;mdcal&amp;quot; desde el portal de administración&lt;br /&gt;
       - Añadir la línea '''''#include &amp;quot;/etc/asterisk/mdcal.conf&amp;quot;''''' en el fichero calendars.conf y hacer &amp;quot;reload&amp;quot; de asterisk&lt;br /&gt;
       - En la máquina donde esté instalado el servidor de calendarios apuntar a la IP de la BDTR (/var/www/dav/config.php)&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Syslog de agentes ===&lt;br /&gt;
'''''Syslog''''' es un estándar para el envío de mensajes de registro en una red informática IP. Por '''''Syslog''''' se conoce tanto al protocolo de red como a la aplicación o biblioteca que envía los mensajes de registro. Se lanza automáticamente al arrancar un sistema Unix, y es el encargado de guardar informes sobre el funcionamiento de la máquina (eventos, seguridad del sistema, etc) pero puede contener también cualquier información como mensajes de las diferentes partes del sistema (núcleo, programas...) y los envía y/o almacena en diferentes localizaciones transmitiéndose mediante un puerto UDP. Esto permite concentrar los registros de múltiples máquinas en un único punto simplificando la labor de gestión al administrador siendo habitual que múltiples dispositivos lo soporten.&lt;br /&gt;
&lt;br /&gt;
El formato del mensaje se compone de tres campos :&lt;br /&gt;
&lt;br /&gt;
* La cabecera contiene la prioridad, fecha y hora del mensaje, máquina, proceso (nombre e identificador) que lo ha generado y la versión del protocolo utilizado.&lt;br /&gt;
* Una serie de pares clave-valor con metadatos.&lt;br /&gt;
* El texto del mensaje.&lt;br /&gt;
&lt;br /&gt;
Si es necesario podemos activar el registro de todos los eventos telefónicos que realiza un agente ACD llamado '''Syslog de agentes'''. Su activación se realiza mediante el '''portal de administración ''VIVA''it'''  configurando unos parámetros para un usuario llamado ''Rastreo BBDD&amp;quot; y ''Rastreo Syslog''. Para más información[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Pesta.C3.B1a_ACD | ver sección  Portal de administración - General - Usuarios - Pestaña ACD  ]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot;  align=&amp;quot;top&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot; |&amp;lt;big&amp;gt;'''Elemento'''&amp;lt;/big&amp;gt; &lt;br /&gt;
|align=&amp;quot;center&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot; | &amp;lt;big&amp;gt;'''Procedimiento'''&amp;lt;/big&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Operacion&lt;br /&gt;
|-&lt;br /&gt;
|Ubicación del proceso||Script arranque: /etc/init/ rsyslog.conf&lt;br /&gt;
Configuración :&lt;br /&gt;
/etc/rsyslog.d/30-vivait-&lt;br /&gt;
desk.conf&lt;br /&gt;
|-&lt;br /&gt;
|Arranque||service rsyslog start&lt;br /&gt;
|-&lt;br /&gt;
|Parada||service rsyslog stop&lt;br /&gt;
|-&lt;br /&gt;
|Reinicio||service rsyslog reload&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Diagnostico&lt;br /&gt;
|-&lt;br /&gt;
|Registro de logs||/var/log/MDtel/vivait-desk.log&lt;br /&gt;
Fichero del día actual. se guardan los 30&lt;br /&gt;
anteriores comprimidos en tar.g&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Generación de un Core ===&lt;br /&gt;
Un Core es la memoria de un programa.&lt;br /&gt;
&lt;br /&gt;
Para generar un Core rápido con Asterisk hay que hacer lo siguiente:&lt;br /&gt;
&lt;br /&gt;
    Ejecutar ps aux | grep asterisk y coger el PID del programa&lt;br /&gt;
    gdb /usr/sbin/asterisk [PID]&lt;br /&gt;
    gcore [file]&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==Funcionalidades específicas ==&lt;br /&gt;
=== Mecanismo de prioridad adaptativa ===&lt;br /&gt;
&lt;br /&gt;
El mecanismo de prioridad adaptativa permite en una plataforma '''''VIVA'''''it Suite establecer prioridades en las que se tenga en cuenta el tiempo de espera de las llamadas en cola, proporcionando una alternativa al mecanismo de prioridad absoluta que existe por defecto&lt;br /&gt;
&lt;br /&gt;
==== Introducción ====&lt;br /&gt;
&lt;br /&gt;
Este documento presenta una propuesta de mecanismo de asignación de llamadas en colas a agentes basado no solo en las prioridades de agente a cola,&lt;br /&gt;
sino en un factor de corrección de prioridad derivado del tiempo de espera de una llamada&lt;br /&gt;
&lt;br /&gt;
==== Terminología ====&lt;br /&gt;
&lt;br /&gt;
* '''Prioridad de llamada:''' A cada llamada susceptible de ser atendida en el ''Call Center'' se le asignará una prioridad de llamada; dicha prioridad será asignada cada vez que un agente quede disponible.&lt;br /&gt;
* '''Prioridad de grupo ACD:''' Los agentes del ''Call Center'' tendrán configurada una prioridad para cada grupo ACD al que pertenecen&lt;br /&gt;
* '''Tiempo de espera:''' Tiempo que una llamada lleva en espera en un determinado grupo ACD; si la llamada cambia de un grupo ACD a otro el tiempo de espera pasa a cero&lt;br /&gt;
* '''Objetivo de servicio:''' Tiempo objetivo máximo de espera por cada grupo ACD&lt;br /&gt;
&lt;br /&gt;
 '''Nota.-''' ''En terminología Asterisk el aumento de prioridad corresponde con números descendentes, es decir,&amp;lt;br /&amp;gt;&lt;br /&gt;
 prioridad 50 es mejor que prioridad 70''&lt;br /&gt;
&lt;br /&gt;
==== Mecanismo de asignación de llamadas ====&lt;br /&gt;
&lt;br /&gt;
En el momento en que exista un agente disponible para recibir llamada, el agente recepcionará la llamada con mejor prioridad de llamada (menor número). La prioridad de llamada para cada llamada se establecerá de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
- Agentes con prioridad de grupo ACD de 1 a 99 utilizarán el mecanismo convencional de asterisk de prioridad absoluta; será útil para grupos ACD críticos o en Call Centers muy convencionales&lt;br /&gt;
&lt;br /&gt;
'''Si un agente tiene prioridad menor de 100 en grupos ACD y hay llamadas en dichos grupos, estas llamadas serán atendidas por el agente con prioridad absoluta.'''&lt;br /&gt;
&lt;br /&gt;
- Agentes con prioridad de colas de 100 en adelante; se utilizará el siguiente mecanismo de prioridad ponderada:&lt;br /&gt;
&lt;br /&gt;
:*Si el grupo ACD de la llamada está dentro del objetivo de servicio, la prioridad de llamada será la prioridad de grupo ACD (a efectos prácticos se aplicará el mecanismo convencional de asignación de llamada a agente, equitativo entre grupos ACD con misma prioridad)&lt;br /&gt;
&lt;br /&gt;
:*Si el grupo ACD de la llamada está fuera del objetivo de servicio, se aplicará una ponderación que mejorará la prioridad de la llamada a medida que aumente el tiempo de espera:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Formula.png |center]]&lt;br /&gt;
&lt;br /&gt;
En una configuración de igualdad de prioridad de agente y objetivo de servicio, el tiempo de espera influiría de manera determinante (más o menos en&lt;br /&gt;
función del peso) en la asignación de la siguiente llamada&lt;br /&gt;
El peso podrá adquirir tres posibles valores: 0, 1 y 10&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Esquema.png |center]]&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;span style=&amp;quot;color:#000080&amp;quot;&amp;gt;- Calculo prioridad de llamada: se calcula por llamada cada vez que un agente queda libre&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span style=&amp;quot;color:#000080&amp;quot;&amp;gt;- Agente atiende llamada con mejor prioridad de llamada&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Medio:Asignación de llamadas por prioridad adaptativa.pdf|Asignación de llamadas por prioridad adaptativa]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Marcación saliente ===&lt;br /&gt;
Dentro del ACD hay un comportamiento especial que es la marcación saliente. Esta puede ser de tres tipos:&lt;br /&gt;
* '''Vista previa''': El agente demanda la siguiente llamada a realizar.&lt;br /&gt;
* '''Progresivo''': Se llama al agente y se lanza la llamada al contacto.&lt;br /&gt;
* '''Predictivo''': El sistema calcula cuando va a estar libre el agente y se adelanta lanzando varias llamadas (configurables por parámetros). La llamada que es contestada primero, se pasa a una cola (el resto se cuelgan) a la espera que el agente se quede libre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Esquema de funcionamiento====&lt;br /&gt;
[[Archivo:esquema funcionamiento marcador.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
Los contactos se agrupan en listas para su facilidad de asignación a campañas, aunque finalmente lo que se asigna a una campaña es un contacto.&lt;br /&gt;
&lt;br /&gt;
Las campañas tienen estrategias. Las estrategias definen como se ha de llamar (del primero al último, sólo los pares, etc.). Tienen una serie de parámetros que  dependiendo de la estrategia pueden tener distinta utilidad. Desde el punto de vista de la base de datos, las estrategias se definirían en la tabla ACD_CLASES_ESTRATEGIAS y se les da valor en la tabla ACD_ESTRATEGIAS_MARCADOR.&lt;br /&gt;
Una vez establecida la campaña y asignados sus contactos y dependiendo del modo de marcación (que se define en las colas) el proceso motorSal crea los intentos de marcación (siempre y cuando no estén en las listas Robinson), que serán leídos por el proceso myAcdSuperv que los convierte en llamadas para el Asterisk.&lt;br /&gt;
&lt;br /&gt;
====Flujo de estados====&lt;br /&gt;
&lt;br /&gt;
El flujo de estados es el reflejado en la figura siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:diagrama de flujo motorsal.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
Los diferentes estados de un contacto son:&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Estado !! ID_Estado!! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| Planificable || 0|| El contacto está preparado para que lo gestione motorSal y según la estrategia definida se establece el campo ACD_CONTACTOS_CAMPANNAS.D_HORA_PROXIMA&lt;br /&gt;
|-&lt;br /&gt;
|Planificado||10||Cuando ha llegado el tiempo marcado en HORA PROXIMA, motorSal ejecuta la 2ª fase de la estrategia, generando el intento de marcación.&lt;br /&gt;
|-&lt;br /&gt;
|Intento||20||El control pasa a myAcdSuperv, que a su vez genera la llamada en Asterisk. Cuando termina, se pasa a Planificable o Finalizado.&lt;br /&gt;
|-&lt;br /&gt;
|Finalizado||100||Las gestiones con este contacto han terminado.&lt;br /&gt;
|-&lt;br /&gt;
|Abortado||110||&lt;br /&gt;
|-&lt;br /&gt;
|Obsoleto||200||Se ha agotado el tiempo para contactar sin agotar todos los intentos. No se le vuelve a llamar nunca.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Carga de contactos====&lt;br /&gt;
&lt;br /&gt;
===== Descripción =====&lt;br /&gt;
&lt;br /&gt;
A continuación se explica la configuración y funcionamiento de la utilidad encargada de asignar contactos a campañas.&lt;br /&gt;
&lt;br /&gt;
===== Configuración =====&lt;br /&gt;
&lt;br /&gt;
El archivo de configuración recibe el nombre de '''cargaContactos.pconf.''' Este archivo reside en '''/etc/MDtel.''' El formato se describe en la tabla siguiente. Hay que tener en cuenta que las columnas empiezan a numerarse en 0.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Parámetro !! Valor !! Obligatorio !! Defecto&lt;br /&gt;
|- &lt;br /&gt;
| db|| Nombre de la base de datos|| SI || nimitz&lt;br /&gt;
|- &lt;br /&gt;
| dbHost|| Host MySQL || SI || localhost&lt;br /&gt;
|- &lt;br /&gt;
| dbPort|| Puerto MySQL || NO || 3306&lt;br /&gt;
|- &lt;br /&gt;
| dbUsuario || Usuario de acceso a la base de datos|| SI ||&lt;br /&gt;
|- &lt;br /&gt;
| dbClave || Clave del usuario || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| rutaContactos || Ruta hasta el archivo de contactos || NO || /var/spool/MDtel/contactos&lt;br /&gt;
|- &lt;br /&gt;
| obsoletos || Si vale 1, marcar como obsoletos los contactos anteriores || NO || 0&lt;br /&gt;
|- &lt;br /&gt;
| diasCaducidad || Número de dias a partir de los cuales caducarán los contactos || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| idCampanna || Número de columna que contiene el ID de la campaña || SI||&lt;br /&gt;
|- &lt;br /&gt;
| idLista || Numero de columna que contiene el ID de la lista || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| prioridad || Número de columna que contiene la prioridad || NO || Nota: El valor es de 0 a 99. A mayor número menor prioridad (se le llamará más tarde)&lt;br /&gt;
|- &lt;br /&gt;
| tipoTarea|| Número de columna que contiene el tipo de tarea || NO || Nota: los posibles valores de la columna son : &amp;lt;br /&amp;gt; *A: Alta &amp;lt;br /&amp;gt; *M: Modificación &amp;lt;br /&amp;gt; *B: Baja&amp;lt;br /&amp;gt; Por defecto el valor es A&lt;br /&gt;
|- &lt;br /&gt;
| codCli || Número de columna del CSV que contiene el código de cliente || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| nombreCon || Número de columna del CSV que contiene el nombre || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| apellido1 || Número de columna del CSV que contiene el primer apellido|| NO ||&lt;br /&gt;
|- &lt;br /&gt;
| apellido2 || Número de columna del CSV que contiene el segundo apellido || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| empresa || Número de columna del CSV que contiene la empresa || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| direccion1 || Número de columna del CSV que contiene la dirección || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| direccion2 || Número de columna del CSV que contiene la dirección 2 || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| codPostal || Número de columna del CSV que contiene el código postal || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| localidad || Número de columna del CSV que contiene la localidad || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| provin || Número de columna del CSV que contiene la provincia || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| email || Número de columna del CSV que contiene el email || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_1 || Número de columna del CSV que contiene el primer número fijo del contacto || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_2 || Número de columna del CSV que contiene el segundo número fijo del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_3 || Número de columna del CSV que contiene el tercer número fijo del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_4 || Número de columna del CSV que contiene el cuarto número fijo del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_1 || Número de columna del CSV que contiene el primer número móvil del contacto || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_2 || Número de columna del CSV que contiene el segundo número móvil del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_3 || Número de columna del CSV que contiene el tercer número móvil del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_4 || Número de columna del CSV que contiene el CUARTO número móvil del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| edad || Número de columna del CSV que contiene la edad || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc1|| Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc2 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc3 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc4 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc5 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc6 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc7 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc8 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc1 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc2 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc3 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc4 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc5 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc6 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc7 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc8 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|-&lt;br /&gt;
| Idioma || Idioma del contacto || NO ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Funcionamiento =====&lt;br /&gt;
&lt;br /&gt;
Para ejecutar la utilidad se debe teclear la siguiente orden en la línea de comandos:&lt;br /&gt;
&lt;br /&gt;
'''cmd# cargaContactos.pl /&amp;lt;ruta hasta el conf&amp;gt;/cargaContactos.pconf &amp;lt;archivo CSV&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
El archivo con los contactos deberá ser un CSV con los campos separados por ';'. La utilidad parsea el archivo conforme a la distribución indicada en la configuración y crea las correspondientes entradas en las tablas '''ACD_CONTACTOS''' y '''ACD_CONTACTOS_CAMPANNAS.'''&lt;br /&gt;
&lt;br /&gt;
La utilidad crea un log en '''/var/log/cargaContactos.log''' en el que vuelca toda la operativa.&lt;br /&gt;
Por pantalla se va mostrando un lista con el ID asignado al contacto y el ID de campaña al que se le ha asignado.&lt;br /&gt;
&lt;br /&gt;
Un ejemplo de fichero de carga de contactos sería el siguiente: &lt;br /&gt;
&lt;br /&gt;
 #&lt;br /&gt;
 # Configuracion de recordGwd.pl&lt;br /&gt;
 #&lt;br /&gt;
 # Conexion de base de datos&lt;br /&gt;
 $db='nimitz';&lt;br /&gt;
 $dbHost = 'localhost';&lt;br /&gt;
 $dbPort = '3306';&lt;br /&gt;
 $dbUsuario = 'nimitz';&lt;br /&gt;
 $dbClave = 'LA QUE SEA';&lt;br /&gt;
 $diasCaducidad='300';&lt;br /&gt;
 $rutaGrab = '/var/spool/MDtel/contactos';&lt;br /&gt;
 $idCampanna = '31';&lt;br /&gt;
 $idLista = '32';&lt;br /&gt;
 $obsoletos = 0;&lt;br /&gt;
 $codCli = '1';&lt;br /&gt;
 $nombreCon = '2';&lt;br /&gt;
 $apellido1 = '3';&lt;br /&gt;
 $apellido2 = '4';&lt;br /&gt;
 $empresa = '5';&lt;br /&gt;
 $direccion1 = '6';&lt;br /&gt;
 $direccion2 = '7';&lt;br /&gt;
 $codPostal = '8';&lt;br /&gt;
 $localidad = '9';&lt;br /&gt;
 $provin = '10';&lt;br /&gt;
 $email = '11';&lt;br /&gt;
 $valFijo_1 = '12';&lt;br /&gt;
 $valFijo_2 = '13';&lt;br /&gt;
 $valFijo_3 = '14';&lt;br /&gt;
 $valFijo_4 = '15';&lt;br /&gt;
 $valMovil_1 = '16';&lt;br /&gt;
 $valMovil_2 = '17';&lt;br /&gt;
 $valMovil_3 = '18';&lt;br /&gt;
 $valMovil_4 = '19';&lt;br /&gt;
 $edad = '20';&lt;br /&gt;
 $nOpc1 = '21';&lt;br /&gt;
 $nOpc2 = '22';&lt;br /&gt;
 $nOpc3 = '23';&lt;br /&gt;
 $nOpc4 = '24';&lt;br /&gt;
 $cOpc1 = '25';&lt;br /&gt;
 $cOpc2 = '26';&lt;br /&gt;
 $cOpc3 = '27';&lt;br /&gt;
 $cOpc4 = '28';&lt;br /&gt;
 $prioridad = '29';&lt;br /&gt;
 $tipoTarea = '30';&lt;br /&gt;
&lt;br /&gt;
====Comportamiento de reprogramaciones de llamadas en función del estado del agente====&lt;br /&gt;
&lt;br /&gt;
Se ha preparado la sigueinte maqueta:&lt;br /&gt;
&lt;br /&gt;
Campaña saliente.&lt;br /&gt;
Cola saliente progresiva.&lt;br /&gt;
Dos agentes logados en VIVAit Suite.&lt;br /&gt;
&lt;br /&gt;
En el formulario de la llamada se indica: llamada redirigida&lt;br /&gt;
Se selecciona el &amp;quot;check dirigida&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Las posibilidades de prueba son dos: &amp;quot;'''Cualquier agente'''&amp;quot; y &amp;quot;'''Solo agente'''&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Resultados son los siguientes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''Estado del agente''' || '''Modo Cualquier Agente'''|| '''Modo Solo Agente'''&lt;br /&gt;
|-&lt;br /&gt;
| '''Agente Preparado''' || Entra llamada a agente|| Entra llamada a agente&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente en Pausa'''||Entra llamada a otro agente disponible||Espera a agente y entra llamada.&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente Hablando'''||Espera a agente y entra llamada||Espera a agente y entra llamada.&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente en Tiempo administrativo'''||Espera a agente y entra llamada||Espera a agente y entra llamada.&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente no logado'''||Entra llamada a otro agenete disponible||Consume intento.&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente con una pestaña de chat abierta y el otro agente en pausa'''||Entra llamada a otro agente disponible||Espera a agente y entra llamada.&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente con dos pestañas de chat abiertas'''||Espera a agente y entra llamada||Espera a agente y entra llamada.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Movilidad ===&lt;br /&gt;
La movilidad es una función integral de las comunicaciones en la empresa. Cualquier empleado (usuario) es móvil en cierto grado, sea dentro o fuera de la organización.La solución óptima debe proporcionar continuidad de servicios y acceso a nuestros servicios, sin importar donde se esté.&lt;br /&gt;
&lt;br /&gt;
==== Ofrecer movilidad a un usuario ====&lt;br /&gt;
&amp;lt;!--parte daniel--&amp;gt;&lt;br /&gt;
Para permitir la movilidad a un usuario, puede ser en el momento de crear o editar un usuario en el apartado ''Administración de usuario'' en ''General'' del '''portal de administración ''VIVA''it'''.  Asignándole un '''''numero login''''' (numero personal corporativo para el usuario) y una '''''clave login''''' ( se debe asignar una clave por defecto, pero puede cambiarla en el [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_3.0#Portal_de_usuario |portal de usuario]]). &amp;lt;br/&amp;gt;Para más información[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Pesta.C3.B1a_Centralita | ver sección Portal de administración - General - Usuarios - administración de usuarios - Pestaña Centralita]].&lt;br /&gt;
&lt;br /&gt;
Además, de crear un permiso de la '''aplicación ''Centralita''''' a cualquier nivel, desde el apartado ''Permisos de usuarios'' en ''General'' del '''portal de administración ''VIVA''it'''.&amp;lt;br/&amp;gt;Para más información[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Asignaci.C3.B3n_de_Permisos_de_Usuario_por_Administrador | ver sección  Portal de administración - General - Usuarios - Permisos a usuarios]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''La movilidad permite''' disponer de las extensiones telefónicas empresariales en cualquier lugar. Por&lt;br /&gt;
ejemplo, con un ordenador portátil o smartphone en una ubicación remota con conexión a Internet,&lt;br /&gt;
podríamos tener registrada nuestra extensión remotamente, y así las llamadas hacia/desde nuestra&lt;br /&gt;
oficina serían enrutadas por Internet hasta el equipo en cuestión sin coste alguno.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--parte daniel--&amp;gt;&lt;br /&gt;
Todo terminal tiene asociado una extensión y deberá permitir la movilidad de usuarios. La extensión se configura cambiando a '''''SI''''' el campo '''''Hay Movilidad''''' desde el apartado ''Extensiones'' de ''Dispositivos'' en ''VIVAit Call'' del '''portal de administración ''VIVA''it'''. Para más información [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Extensiones | ver sección Portal de administración - VIVAit Call - Dispositivos - Extensiones]]&lt;br /&gt;
&lt;br /&gt;
==== ¿Cómo funcionan las extensiones? ====&lt;br /&gt;
&lt;br /&gt;
Primeramente el usuario debe tener los ejes apropiados en la tabla '''COM_USUARIOS_APLICACION''' (aplicación centralita).&lt;br /&gt;
&lt;br /&gt;
La extensión debe de tener ''un teléfono'' y por tanto ''un modelo de teléfono asociado.''&lt;br /&gt;
&lt;br /&gt;
Es tan simple como especificar '''la extensión, el usuario y la clave de este.'''&lt;br /&gt;
&lt;br /&gt;
Para corroborar el funcionamiento de esta hay ''dos métodos'':&lt;br /&gt;
&lt;br /&gt;
'''* CLI asterisk:'''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenEntraUsuarioMovil 25001 20001 1234'''&lt;br /&gt;
&lt;br /&gt;
Y como resultado obtenemos lo siguiente:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br /&amp;gt;&lt;br /&gt;
 MOVIL_TIPO_RESET='10'&amp;lt;br /&amp;gt;&lt;br /&gt;
 MOVIL_CAD_RESET='notify_yealink'&amp;lt;br /&amp;gt;&lt;br /&gt;
 MdintzRes='OK'&lt;br /&gt;
&lt;br /&gt;
El usuario con el login numérico 20001 se ha &amp;quot;movido&amp;quot; a la extensión 25001&lt;br /&gt;
&lt;br /&gt;
Ahora ''nos quitamos de esa extensión mediante el siguiente comando:''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenSaleUsuarioMovil 25001'''&lt;br /&gt;
&lt;br /&gt;
Resultado del comando:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MOVIL_TIPO_RESET='10'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MOVIL_CAD_RESET='notify_yealink'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzRes='OK'&lt;br /&gt;
&lt;br /&gt;
Las pruebas anteriores han sido '''con extensiones con movilidad y con usuario con/sin&lt;br /&gt;
propietario.'''&lt;br /&gt;
&lt;br /&gt;
Ahora las realizamos '''con extensiones sin movilidad'''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenEntraUsuarioMovil 25002 20001 1234'''&lt;br /&gt;
&lt;br /&gt;
Obteniendo:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzRes='movil_error_datos'&lt;br /&gt;
&lt;br /&gt;
Como era lo previsible no nos deja &amp;quot;movernos&amp;quot; a esa extensión ya que no tiene movilidad.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''&amp;lt;u&amp;gt;Si un usuario ya se ha movido a una extensión no se puede mover a otra si no es deslogandose de esta antes.&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Esta línea se comenta porque se ha preparado el sistema para que los ususarios se puedan logar en una nueva extensión y el sistema lo deslogue de la primera a la que se movió. La variable que controla este funcionamiento es MD_AUTODES, con dos posibles valores:&lt;br /&gt;
0, para que el usuario deba deslogarse de una extensión para logarse en otra.&lt;br /&gt;
1, para que sea el sistema el que deslogue automátiamente al usuario cuando cambia de una extensión de movilidad a otra.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;Si un usuario ya se ha movido a una extensión y se mueve a otra, el sistema lo deslogará de la primera para logarlo en la segunda.&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenEntraUsuarioMovil 21000 20001 1234'''&lt;br /&gt;
&lt;br /&gt;
Con salida:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MOVIL_EXTEN='25001'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MDintzRes='movil_ya_login'&lt;br /&gt;
&lt;br /&gt;
'''* Dialplan'''&lt;br /&gt;
&lt;br /&gt;
Para llamar a la función de movilidad hay que marcar el '''9992.'''&lt;br /&gt;
&lt;br /&gt;
 Nota.- Para comprobar que se realiza todo correctamente habría que mirar las trazas de Asterisk&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Grabación ===&lt;br /&gt;
&lt;br /&gt;
La grabación en '''''VIVA'''''it Call está diseñada para ser lo mas flexible posible.&lt;br /&gt;
&lt;br /&gt;
====Configuración====&lt;br /&gt;
&lt;br /&gt;
Si deseamos grabar, debemos activar que alguno de los dispositivos/elementos que intervienen en la llamada se grabe.&lt;br /&gt;
&lt;br /&gt;
Estos dispositivos/elementos son:&lt;br /&gt;
&lt;br /&gt;
* Nodo.&lt;br /&gt;
* Usuario con Centralita.&lt;br /&gt;
* Agente.&lt;br /&gt;
* Grupo ACD corporativo y de Contact Center.&lt;br /&gt;
* Enlace exterior.&lt;br /&gt;
* Extensión.&lt;br /&gt;
* Facilidades.&lt;br /&gt;
* Grupo: grupo de salto o grupo de operadoras.&lt;br /&gt;
* Sala de conferencia.&lt;br /&gt;
* VDN corporativo y de Contact Center.&lt;br /&gt;
* Pre-rutas.&lt;br /&gt;
&lt;br /&gt;
Por otro lado necesitaremos que la llamada pase por un nodo que sea grabador, es decir, que si la llamada esta configurada para que se grabe pero no pasa por ningún nodo grabador, la llamada no se grabará.&lt;br /&gt;
&lt;br /&gt;
Al configurar un nodo existen cuatro campos que intervienen en la grabación.&lt;br /&gt;
&lt;br /&gt;
''''Grabador''''&lt;br /&gt;
&lt;br /&gt;
Se configura en el portal en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Este campo corresponde con el campo [[BD.COM_NODOS#B_ES_GRABADOR|B_ES_GRABADOR]] de la tabla [[BD.COM_NODOS|COM_NODOS]] , este campo define si el nodo va a grabar las llamas que pasen por el que necesiten ser grabadas y no se estén grabando ya.&lt;br /&gt;
&lt;br /&gt;
Es un campo booleano los posibles valores en el portal son si/no y en la base de datos 1/0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''''Modo grabación infraestructura''''&lt;br /&gt;
&lt;br /&gt;
Su configuración se realiza en el portal, en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Este campo define como está configurada la infraestructura, este campo existe por compatibilidad con '''''VIVA'''''it suite y para poder configurar la grabación bajo demanda.&lt;br /&gt;
&lt;br /&gt;
Este campo corresponde con el campo [[BD.COM_NODOS#E_MODO_GRABACION_INFRAESTRUCTURA|E_MODO_GRABACION_INFRAESTRUCTURA]] de la tabla [[BD.COM_NODOS|COM_NODOS]], Este campo usa los valores del enumerado BD.ENUM.TModoGrabacionInfraestructura|TModoGrabacionInfraestructura]].&lt;br /&gt;
&lt;br /&gt;
La formula que se seguiría para ver si una llamada se graba en ese nodo es:&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 (NODO.E_MODO_GRABACION_INFRAESTRUCTURA) AND (NODO.B_ENRU_GRABAR OR CEN_PRE_RUTA.B_ENRU_GRABAR OR &amp;quot;OBJETO&amp;quot;.B_ENRU_GRABAR)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Que sería que si la infraestructura esta en NoGraba no se graba nada de lo que se rute en ese nodo y en cualquiera de los 2 otros caso (GrabaTodo o GrabaPorPeticion) se grabaría dependiendo de la configuración del Nodo, la ruta o el objeto en cuestión (preruta, grupo ACD, extension,...).&lt;br /&gt;
&lt;br /&gt;
''''Grabar enrutamiento''''&lt;br /&gt;
&lt;br /&gt;
Se configura en el portal en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Este campo define si van a grabar las llamadas que se enruten en este nodo.&lt;br /&gt;
&lt;br /&gt;
Campo [[BD.COM_NODOS#E_ENRU_GRABAR|E_ENRU_GRABAR]] de la tabla [[BD.COM_NODOS|COM_NODOS]] que usa los valores del enumerado [[BD.ENUM.TTipoEnruGrabar|TTipoEnruGrabar]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''''RecordCentral''''&lt;br /&gt;
&lt;br /&gt;
Se configura en el portal en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Define que instancia del recordCentral es la encargada de tratar las grabaciones de este nodo.&lt;br /&gt;
&lt;br /&gt;
Para aumentar el rendimiento a la hora de traerse las grabaciones, se pueden definir varias instancias de proceso recordCentral, este campo define cual de estas instancias se encargara de este nodo.&lt;br /&gt;
&lt;br /&gt;
====Vivait Tracker====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL LA ÚNICA REFERENCIA A VIVAIT TRACKER EN LA DOCUMENTACIÓN &amp;quot;Vivait supervisor&amp;quot; QUE TENGO DICE LO SIGUIENTE. &amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Desde '''''VIVA'''''it Supervisor,  que es la aplicación dirigida a Supervisores, ofrece la posibilidad de supervisar y gestionar grupos ACD, agentes, asignaciones, prioridades,etc. Se puede obtener acceso directo a las aplicaciones de grabación ('''''VIVA'''''it tracker) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL FIN EXPLICACIÓN. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL De la documentacion creada por ivan. &amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Esquematico actual del proyecto tracker &lt;br /&gt;
[[Archivo:Esquematico_tracker_1.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1º El tracker web llama al web service Remote login para iniciar sesión y determinar si tiene permisos para la escucha y descarga de grabaciones.&lt;br /&gt;
&lt;br /&gt;
2º Si la ubicación de la grabación es local, mira la ruta de esta y se procede a la escucha o descarga de esta.&lt;br /&gt;
&lt;br /&gt;
3º Si la ubicación de la grabación es remota, entra en escena el proxy. Es el que realiza la petición.&lt;br /&gt;
&lt;br /&gt;
4º Si utilizamos el tracker windows, este, como el tracker web, llama primero al web service remote login para la autenticación y tema de Permisos.&lt;br /&gt;
&lt;br /&gt;
5º Para descargar o escuchar una grabación desde el tracker windows, se llama al web service servidor de grabaciones pasándole simplemente el ID de segmento.mp3. Este web service, con el ID de segmento, se encarga de determinar la ubicación de la grabación.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL De la documentación creada por ivan. &amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Esquematico actual del proyecto tracker &lt;br /&gt;
[[Archivo:Esquematico_tracker_2_https.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1º El tracker web llama al web service Remote login para iniciar sesión (comunicación https) y determinar si tiene permisos para la escucha y descarga de grabaciones. Se elimina el proxy&lt;br /&gt;
&lt;br /&gt;
2º Si la ubicación de la grabación es local, mira la ruta de esta y se procede a la escucha o descarga de esta.&lt;br /&gt;
&lt;br /&gt;
3º Si la ubicación de la grabación es remota, se realiza una petición al host remoto. El tipo de petición vendrá fijada por base de datos (http, https, ftp,ftps)&lt;br /&gt;
&lt;br /&gt;
4º Si utilizamos el tracker windows, este, como el tracker web, llama primero al web service remote login para la autenticación y tema de permisos (comunicación https extremo a extremo).&lt;br /&gt;
&lt;br /&gt;
5º Para descargar o escuchar una grabación desde el tracker windows, se llama al web service servidor de grabaciones pasándole simplemente el ID de segmento.mp3. Este web service, con el ID de segmento, se encarga de determinar la ubicación de la grabación.&lt;br /&gt;
&lt;br /&gt;
[[#Grabación_(Vivait_Tracker)| Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operación_plataforma_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
=== Enrutamiento ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Enrutamiento.png|885px |center]]&lt;br /&gt;
&lt;br /&gt;
==== Funcionamiento ====&lt;br /&gt;
El proceso de enrutamiento, como vemos en el esquemático, se compone de dos fases:&lt;br /&gt;
&lt;br /&gt;
# Preenrutameinto, que se encarga de tratar todas las llamadas&lt;br /&gt;
# Enrutamiento externo, que tiene módulos dedicados al enrutamiento hacia:&lt;br /&gt;
:*Enlaces externos. &lt;br /&gt;
:*Extensiones. &lt;br /&gt;
:*Usuarios de telefonía corporativa. &lt;br /&gt;
:*Facilidades. &lt;br /&gt;
:*Salas de conferencia. &lt;br /&gt;
:*Agentes de grupos ACD. &lt;br /&gt;
:*Grupos ACD. &lt;br /&gt;
:*Vdn. &lt;br /&gt;
:*Buzones para dejar mensaje. &lt;br /&gt;
:*Buzones para su gestión.&lt;br /&gt;
&lt;br /&gt;
Se asume que existen rutas directas entre todos los nodos de la red.&lt;br /&gt;
&lt;br /&gt;
Se asume que están directamente enrutadas todas las direcciones IP involucradas, tanto nodos, como terminales.&lt;br /&gt;
&lt;br /&gt;
Se asume que todas las facilidades están disponibles en todos los nodos, aunque es posible que la implementación sea diferente entre ellos.&lt;br /&gt;
&lt;br /&gt;
Los datos de entrada básicos al proceso de enrutamiento (pdEntr) son:&lt;br /&gt;
* Dispositivo&lt;br /&gt;
* Cola&lt;br /&gt;
* Origen&lt;br /&gt;
* Nodo entrada&lt;br /&gt;
* UCID&lt;br /&gt;
* CALLER_ID_NAME&lt;br /&gt;
* CALLER_ID_NUM&lt;br /&gt;
* DNIS&lt;br /&gt;
* Desvío por dialplan&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A partir de los datos de entrada básicos anteriores se pueden deducir los siguientes valores:&lt;br /&gt;
* Sede del dispositivo de entrada&lt;br /&gt;
* Sede del nodo de entrada&lt;br /&gt;
* Ancho de banda disponible en la sede del dispositivo&lt;br /&gt;
* Ancho de banda disponible en la sede del nodo&lt;br /&gt;
* Categoría entrante&lt;br /&gt;
* Valor del eje1 asignado a la llamadas&lt;br /&gt;
* CALLER_ID_NUM_EXTERNO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los datos de salida globales del proceso de enrutamiento (pdSale) son:&lt;br /&gt;
* Categoría saliente&lt;br /&gt;
* Código de cliente (opcional)&lt;br /&gt;
* Tipo de destino:	&lt;br /&gt;
:* No existe&lt;br /&gt;
:* Ruta externa&lt;br /&gt;
:* Extensión&lt;br /&gt;
:* Usuario de telefonía corporativa&lt;br /&gt;
:* Facilidad&lt;br /&gt;
:* Salas de conferencia&lt;br /&gt;
:* Agentes de grupos ACD&lt;br /&gt;
:* Grupos ACD&lt;br /&gt;
:* VDN&lt;br /&gt;
:* Buzón para dejar mensaje. &lt;br /&gt;
:* Buzón para dejar mensaje por ocupado. &lt;br /&gt;
:* Buzón para dejar mensaje por no contestación. &lt;br /&gt;
:* Buzón para su gestión.&lt;br /&gt;
* Destinatario (cuando se trata de un usuario o de un agente)&lt;br /&gt;
* Valor del eje1 asignado a la llamada&lt;br /&gt;
* Buzón de las extensiones y usuarios que los tengan asignados&lt;br /&gt;
* Si el buzón está en nodo distinto al de entrada&lt;br /&gt;
* DESVIO_INCONDICIONAL (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable) &lt;br /&gt;
* DESVIO_NO_CONTESTA (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable) &lt;br /&gt;
* DESVIO_OCUPADO (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable) &lt;br /&gt;
* DESVIO_FUERA_SERV (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los datos de salida para cada una de las posibles rutas en orden son (nn va de 01 maxRutas [nn son dos dígitos decimales]):&lt;br /&gt;
* CONTADOR_ABDE_nn (contador para control de ancho de banda en sede de dispositivo de entrada).  &lt;br /&gt;
* CONTADOR_ABNE_nn (contador para control de ancho de banda en sede de nodo de entrada).  &lt;br /&gt;
* CONTADOR_ABDS_nn (contador para control de ancho de banda en sede de dispositivo de salida).  &lt;br /&gt;
* CONTADOR_ABNS_nn (contador para control de ancho de banda en sede de nodo de salida).  &lt;br /&gt;
* CALLER_NAME_SAL_nn , puede salir de una extensión, un usuario o de un agente. &lt;br /&gt;
* CALLER_NUM_SAL_nn, puede salir de una extensión, un usuario o de un agente.  &lt;br /&gt;
* DESTINO_SAL_nn , en general, el valor C_NOMBRE o destino de salida.  &lt;br /&gt;
* RUTA_NODO_nn , Cadena de marcación para ir la nodo que soporta DESTINO_SAL_nn, si es distinto del nodo de entrada.  &lt;br /&gt;
* RUTA_SAL_nn &lt;br /&gt;
:* Extensión: cadena marcación. &lt;br /&gt;
:* Facilidad: E_CODIGO_FACILIDAD obtenido de la tabla CEN_FACILIDADES. &lt;br /&gt;
:* Usuario: cadena marcación de la extensión asignada al usuario en movilidad o en propiedad. &lt;br /&gt;
:* Agente: cadena marcación de la extensión a la que está conectado el agente. &lt;br /&gt;
:* Ruta externa: contexto que gestiona la llamada saliente.&lt;br /&gt;
&lt;br /&gt;
=====Fase preenrutamiento =====&lt;br /&gt;
&lt;br /&gt;
La fase de preenrutamiento (basada en la tabla CEN_PRE_RUTA) se usa en todas las llamadas entrantes, tanto internas, como externas. Permite desarrollar un “prerouting” estándar para ACD y para telefonía corporativa.&lt;br /&gt;
&lt;br /&gt;
Los datos de entrada al proceso de enrutamiento son iguales a los del proceso global de enrutamiento, excepto en que este proceso no usa el nodo de entrada ya que es independiente de éste.&lt;br /&gt;
&lt;br /&gt;
Los datos de salida de la fase de preenrutamiento:&lt;br /&gt;
* D_CATEGORIA_SAL &lt;br /&gt;
* COD_CLIENTE (opcional) &lt;br /&gt;
* TIPO_DESTINO_SAL&lt;br /&gt;
:* No existe.   &lt;br /&gt;
:* Volver a preenrutar.   &lt;br /&gt;
:* Ruta externa.   &lt;br /&gt;
:* Extensión.   &lt;br /&gt;
:* Usuario de telefonía corporativa.   &lt;br /&gt;
:* Facilidad.   &lt;br /&gt;
:* Sala de conferencia.   &lt;br /&gt;
:* Agente de grupos ACD.   &lt;br /&gt;
:* Grupos ACD.   &lt;br /&gt;
:* VDN.   &lt;br /&gt;
:* Buzón para dejar mensaje.   &lt;br /&gt;
:* Buzón para dejar mensaje por ocupado.   &lt;br /&gt;
:* Buzón para dejar mensaje por no contestación.   &lt;br /&gt;
:* Buzón para su gestión. &lt;br /&gt;
* COD_CLIENTE &lt;br /&gt;
* Valor del eje1 asignado a la llamada &lt;br /&gt;
* CALLER_NAME &lt;br /&gt;
* CALLER_NUM &lt;br /&gt;
* DESTINO&lt;br /&gt;
&lt;br /&gt;
El proceso de preenrutamiento consiste en seleccionar un único registro de la tabla CEN_PRE_RUTA y, con sus valores y con los valores de entrada al proceso, generar los datos de salida.&lt;br /&gt;
&lt;br /&gt;
Un posible tipo de salida es &amp;quot;Volver a preenrutar&amp;quot;. Esto permite realimentar el proceso un máximo de &amp;quot;max_pre_ruta_regs&amp;quot; veces (en archivo .conf) para simplificar configuración. Sólo tiene sentido realimentar si se ha hecho alguna modificación en los datos de selección de registro, ya que en caso contrario se produciría un bucle que el proceso de preenrutamiento es capaz de detectar y evitar.&lt;br /&gt;
&lt;br /&gt;
Para elegir el registro de CEN_PRE_RUTA, se tienen en cuenta los datos de entrada de la llamada, de modo que se cumpla con todos los puntos siguientes: &lt;br /&gt;
* ID_CATEGORIA_ENT igual a la del dispositivo de entrada.  &lt;br /&gt;
* CALLER_NUM de entrada  &lt;br /&gt;
:* Debe comenzar por la cadena C_ORIGEN_ENT_PREF o C_ORIGEN_ENT_PREF=NULL, con menos prioridad. Es conveniente rellenar este dato del modo más restrictivo que sea posible, independientemente de C_ORIGEN_ENT_EXPR. Ello permite disminuir el uso innecesario de recursos de evaluación de expresiones regulares.    &lt;br /&gt;
:* Debe de tener un número de dígitos igual o superior a N_ORIGEN_ENT_MIN_DIGITOS, si este valor no es NULL o cero.    &lt;br /&gt;
:* Debe de tener un número de dígitos igual o inferior a N_ORIGEN_ENT_MAX_DIGITOS, si este valor no es NULL o cero.    &lt;br /&gt;
:* Debe cumplir la expresión regular C_ORIGEN_ENT_EXPR, si ésta no es NULL.  &lt;br /&gt;
* DNIS empiece con C_DESTINO_ENT_PREF o C_DESTINO_ENT_PREF=NULL. Es conveniente rellenar este dato del modo más restrictivo que sea posible, independientemente de C_DESTINO_ENT_EXPR. Ello permite disminuir el uso innecesario de recursos de evaluación de expresiones regulares.  &lt;br /&gt;
* Si varias entradas cumplen la condición anterior, se prueba primero la que el campo C_DESTINO_ENT_PREF tenga una longitud mayor y, de entre éstas, la que C_ORIGEN_ENT_PREF tenga una longitud mayor.  &lt;br /&gt;
* DNIS tenga un número de dígitos igual o superior a N_DESTINO_ENT_MIN_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* DNIS tenga un número de dígitos igual o inferior a N_ORIGEN_ENT_MIN_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* DNIS cumpla la expresión regular C_DESTINO_ENT_EXPR, si ésta no es NULL. &lt;br /&gt;
&lt;br /&gt;
Si no se encuentra ninguna entrada adecuada, quiere decir que es una llamada prohibida y se devuelve el tipo de destino &amp;quot;No existe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Puede conseguirse un destino &amp;quot;por defecto&amp;quot; diferente, creando una entrada que encaje siempre para cada categoría: C_ORIGEN_ENT, C_ORIGEN_ENT_MIN_DIGITOS, C_ORIGEN_ENT_MAX_DIGITOS, C_ORIGEN_ENT_EXPR, C_DESTINO_ENT_PREF, N_DESTINO_ENT_MIN_DIGITOS, N_DESTINO_ENT_MAX_DIGITOS y C_DESTINO_ENT_EXPR a valor NULL.&lt;br /&gt;
&lt;br /&gt;
Una vez elegida una entrada, ésta puede transformar o sustituir el valor de ID_CATEGORIA, CALLER_NAME, CALLER_NUM, DESTINO, COD_CLIENTE y/o EJE1_MSK a la salida del proceso. &lt;br /&gt;
&lt;br /&gt;
Si ID_CATEGORIA_SAL es cero, se propaga a la salida el valor de la entrada. En caso contrario, se sustituye. &lt;br /&gt;
&lt;br /&gt;
Si C_CALLER_NAME está vacío, se mantiene el valor hubiese a la entrada. En caso contrario, se sustituye. &lt;br /&gt;
&lt;br /&gt;
C_CALLER_NUM puede contener una cadena que identifica el nuevo CALLER_NUM. Además, si la cadena comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo CALLER_NUM es igual al de entrada al proceso. &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo CALLER_NUM es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo. &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;. &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al CALLER_NUM de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo CALLER_NUM de salida. Si la expresión regular no se cumpliese, se propagará el valor de entrada al proceso. &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante que sustituye el valor a la entrada.&lt;br /&gt;
&lt;br /&gt;
Cada vez que se utilice una preruta, se incrementará el valor de N_CONTA si el valor de N_UMBRAL es mayor que cero.&lt;br /&gt;
&lt;br /&gt;
Un valor N_UMBRAL mayor que cero permite modificar el destino de salida cuando el valor de actual de N_CONTA (antes de incrementarse) supere o sea igual el valor de N_UMBRAL. Si se cumple la condición indicada, se usa como destino tras el preenrutamiento, los valores de los campos E_TIPO_DESTINO_SAL_2 y C_DESTINO_SAL_2.&lt;br /&gt;
&lt;br /&gt;
Si el valor de N_UMBRAL es menor o igual a cero o si N_CONTA es inferior a N_UMBRAL, se usa como destino tras el preenrutamiento, los valores de los campos E_TIPO_DESTINO_SAL_1 y C_DESTINO_SAL_1.&lt;br /&gt;
Con este mecanismo de N_CONTA y N_UMBRAL, se pretende facilitar el discriminar a los llamantes reincidentes, cuando sea necesario. &lt;br /&gt;
&lt;br /&gt;
Un proceso periódico externo debe encargarse de poner a cero o decrementar el valor de N_CONTA.&lt;br /&gt;
Como resultado de los procesos de filtrado y de verificación anteriores, se habrá obtenido un TIPO_DESTINO_SAL y un C_DESTINO_SAL a partir de los campos con sufijo &amp;quot;_1&amp;quot; o &amp;quot;_2&amp;quot;, con una metodología similar al caso C_CALLER_NUM.&lt;br /&gt;
&lt;br /&gt;
C_DESTINO_SAL_x puede contener cadena que permite obtener el nuevo destino. Además, si la cadena comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo destino es igual al de entrada al proceso.  &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo destino es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo.  &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;.  &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al destino de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo destino de salida. Si la expresión regular no se cumpliese, quiere decir que es una llamada prohibida y se encaminará hacia una facilidad por defecto.  &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante que sustituye el valor a la entrada. &lt;br /&gt;
Información de salida del proceso de preenrutamiento: Cuando TIPO_DESTINO_SAL_x toma los valores que se indican, el proceso global de enrutamiento sólo requiere de preenrutamiento y la información a devolver se obtiene dependiendo de TIPO_DESTINO_SAL_x: &lt;br /&gt;
* No existe: Se asume que no se conoce un destino para los datos de entrada, por lo que la llamada se encamina hacia una facilidad por defecto que gestiona su tratamiento.  &lt;br /&gt;
* Extensión: A partir de las tablas CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar la extensión en el nodo principal y en el secundario.  &lt;br /&gt;
* Facilidad: A partir de las tablas CEN_DISPOSITIVOS, CEN_FACILIDADES y CEN_NODOS.  &lt;br /&gt;
* Usuario de telefonía corporativa: A partir de las tablas CEN_USUARIOS, CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar al usuario en el nodo principal y en el secundario de la extensión que corresponde en base a movilidad, con prioridad, o en base a propiedad.  El caso de movilidad no se tiene en cuenta si el proceso de enrutamiento se realiza en &amp;quot;modo supervivencia&amp;quot;.  &lt;br /&gt;
* Sala conferencia: A partir de las tablas CEN_SALAS_CONFERENCIAS y CEN_NODOS.  &lt;br /&gt;
* Agente de ACD: A partir de las tablas ACD_USUARIOS, DAT_TR_ACD_EXTENSIONES, CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar al agente en el nodo principal y en el secundario.  &lt;br /&gt;
* VDN: A partir de las tablas ACD_VDN y CEN_NODOS, se devolverán los valores que permiten alcanzar al VDN en su nodo.  &lt;br /&gt;
* Grupo ACD: A partir de las tablas ACD_COLAS y CEN_NODOS, se devolverán los valores que permiten alcanzar al grupo ACD en su nodo. &lt;br /&gt;
&lt;br /&gt;
El campo B_GENERAR_SEGMENTO de la tabla CEN_PRE_RUTA indica al proceso de preenrutamiento que es preciso generar un segmento de tipo &amp;quot;preenrutamiento&amp;quot;. En el segmento generado, se rellena el campo C_ETIQUETA1 del nuevo segmento con el valor que contiene el campo homónimo del registro asociado en la tabla CEN_LISTA_PRE_RUTAS.&lt;br /&gt;
&lt;br /&gt;
===== Fase de enrutamiento en casos en que el destino no es externo =====&lt;br /&gt;
Datos de entrada al proceso de enrutamiento externo: iguales a los de salida del proceso de preenrutamiento (pdPreSale), uniéndose a éstos los datos globales de entrada al proceso (pdEntr). &lt;br /&gt;
&lt;br /&gt;
Datos de salida de la fase de enrutamiento: iguales que los del proceso global de enrutamiento (pdSale). &lt;br /&gt;
&lt;br /&gt;
Específicamente y sólo para los casos en que el destino es una extensión (tipo de destino extensión, usuario de telefonía corporativa o agente) es cuando son válidos los datos correspondientes al buzón asociado y los datos de los posibles desvíos previstos. &lt;br /&gt;
&lt;br /&gt;
También en este caso, se prevén dos posibles rutas, una se corresponde con el acceso a la extensión en el nodo principal de ésta y la otra en el nodo secundario. &lt;br /&gt;
&lt;br /&gt;
En el resto de tipos de destino, sólo se prevé una ruta que puede incluir o no un enlace internodal. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Fase de enrutamiento en el caso de destino externo =====&lt;br /&gt;
Datos de entrada al proceso de enrutamiento externo: iguales a los de salida del proceso de preenrutamiento (pdPreSale), uniéndose a éstos los datos globales de entrada al proceso (pdEntr). &lt;br /&gt;
Datos de salida de la fase de enrutamiento: iguales que los del proceso global de enrutamiento (pdSale). &lt;br /&gt;
&lt;br /&gt;
Se elige los primeros &amp;quot;max_ruta&amp;quot; registros (configurado en archivo .conf) en CEN_DESTINOS_EXTERNOS unido con CEN_RELACION_DESTINOS_ENLACES_EXTERNOS que, teniendo en cuenta los datos de entrada al proceso de enrutamiento, cumpla con todos los puntos siguientes: &lt;br /&gt;
* ID_CATEGORIA_ENT igual a la de salida del proceso de preenrutamiento.  &lt;br /&gt;
* C_DESTINO_SAL de proceso de preenrutamiento empiece con C_DESTINO_ENT_PREF. &lt;br /&gt;
* Si varias entradas cumplen la condicion anterior, se prueba primero la que el campo C_DESTINO_ENT_PREF tenga una longitud mayor.  &lt;br /&gt;
* C_DESTINO_SAL tenga un número de dígitos igual o superior a N_DESTINO_ENT_MIN_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* C_DESTINO_SAL tenga un número de dígitos igual o inferior a N_DESTINO_ENT_MAX_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* C_DESTINO_SAL cumpla la expresión regular C_DESTINO_ENT_EXPR, si ésta no es NULL. &lt;br /&gt;
&lt;br /&gt;
Aparte de la longitud del campo C_DESTINO_ENT_PREF, se usa N_PRIORIDAD como campo para ordenar los registros y seleccionar lo &amp;quot;max_ruta&amp;quot; primeros. &lt;br /&gt;
&lt;br /&gt;
Una vez que un registro es válido, se descartan todos los registros cuyo C_DESTINO_ENT_PREF es diferente del primero seleccionado. &lt;br /&gt;
&lt;br /&gt;
Como resultado de los procesos de filtrado y de verificación anteriores, se habrá obtenido hasta un máximo de &amp;quot;max_rutas&amp;quot; valores para posibles rutas. Las posibles propagaciones y transformaciones en los datos de cada ruta son función de los datos de cada registro seleccionado: &lt;br /&gt;
&lt;br /&gt;
CALLER_NAME_nn: Si C_CALLER_NAME está vacío, se propaga el valor de entrada. En caso contrario, se sustituye. &lt;br /&gt;
&lt;br /&gt;
CALLER_NUM_nn: Sale de C_CALLER_NUM que puede contener una cadena que identifica el nuevo CALLER_NUM_n. Además, si C_CALLER_NUM comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo CALLER_NUM_nn es igual al de entrada al proceso.  &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo CALLER_NUM_nn es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo.  &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;.  &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al CALLER_NUM de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo CALLER_NUM de salida. Si la expresión regular no se cumpliese, se propaga el valor de entrada al proceso.  &lt;br /&gt;
* &amp;quot;&amp;gt;&amp;quot; Si existe valor para CALLER_NUM_EXTERNO, se propagará éste a la salida. En caso contrario y si no está vacía la cadena que queda al eliminar el prefijo &amp;quot;&amp;gt;&amp;quot;, se susituye en la salida por el valor de la cadena sin prefijo. Si la cadena estuviese únicamente constituida por el valor &amp;quot;&amp;gt;&amp;quot;, se propaga el valor de entrada.  &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante sin ninguna modificación. &lt;br /&gt;
&lt;br /&gt;
C_DESTINO_SAL_nn: Se obtiene a partir de C_DESTINO_SAL que puede contener una cadena que identifica el nuevo destino. Además, si la cadena comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo destino es igual al de entrada al proceso. &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo destino es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo. &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;. &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al destino de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo destino de salida. Si la expresión regular no se cumpliese, se propaga el valor de entrada al proceso. &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante sin ninguna modificación. &lt;br /&gt;
&lt;br /&gt;
RUTA_NODO_nn: Sólo se usa si el nodo de salida es diferente del nodo de entrada. Contiene la cadena de marcación para ir la nodo que soporta DESTINO_SAL_nn. Sale del campo C_FORMATO_DIAL (sustituyendo variables) correspondiente al tipo de dispositivo del enlace exterior. &lt;br /&gt;
&lt;br /&gt;
RUTA_SAL_nn: Es el campo C_DATO_ASTERISK obtenido a partir del registro en la tabla CEN_ENLACE_EXTERIOR que se corresponde con ID_ENLACE_EXTERIOR de la tabla CEN_RELACION_DESTINOS_ENLACES_EXTERNOS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Control de ancho de banda ===&lt;br /&gt;
&lt;br /&gt;
Para el control de ancho de banda, primero hemos de tener en consideración que una llamada puede tener asociadas hasta cuatro sedes&lt;br /&gt;
:* Sede del terminal origen (terminal A)&lt;br /&gt;
:* Sede del nodo de registro del terminal origen (nodo A)&lt;br /&gt;
:* Sede del terminal destino (terminal B)&lt;br /&gt;
:* Sede del nodo de registro del terminal destino (nodo B)&lt;br /&gt;
&lt;br /&gt;
Además hemos de tener en cuenta que el audio de la conversación podrá ir:&lt;br /&gt;
:* De manera directa entre terminal A y terminal B&lt;br /&gt;
:* De manera indirecta, a través de los nodos A y B&lt;br /&gt;
&lt;br /&gt;
[[Archivo:ancho de banda.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Cuando se va a cursar una llamada de terminal A a terminal B, el proceso de enrutamiento del nodo A devuelve 4 variables de canal al dialplan:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! Variable!!Campos &lt;br /&gt;
|- &lt;br /&gt;
|R_ABDE_xx||R = Variable de rutas --- AB = ancho de banda --- D = dispositivo --- E = Entrante --- xx = de 0 a 3&lt;br /&gt;
|-&lt;br /&gt;
|R_ABNE_xx||R = Variable de rutas --- AB = ancho de banda --- N = nodo --- E = Entrante --- xx = de 0 a 3&lt;br /&gt;
|-&lt;br /&gt;
|R_ABDS_xx||R = Variable de rutas --- AB = ancho de banda --- D = dispositivo --- S = Saliente --- xx = de 0 a 3&lt;br /&gt;
|- &lt;br /&gt;
|R_ABNS_xx||R = Variable de rutas --- AB = ancho de banda --- N = nodo --- S = Saliente --- xx = de 0 a 3&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El valor de cada variable es una cadena del tipo '''AB.wwww.xxxx.y.z''' donde cada valor es:&lt;br /&gt;
:* '''wwww''' --&amp;gt; id de sede&lt;br /&gt;
:* '''xxxx''' --&amp;gt; ancho de banda total de la sede&lt;br /&gt;
:* '''y''' --&amp;gt; número de llamadas a sumar si conversación directa&lt;br /&gt;
:* '''z''' --&amp;gt; número de llamadas a sumar si conversación indirecta&lt;br /&gt;
&lt;br /&gt;
Por otro lado tenemos que tener en cuenta que el dialplan tiene control de las llamadas que cada sede puede cursar&lt;br /&gt;
&lt;br /&gt;
De esta forma, cuando existe una nueva llamada el dialplan aplica la fórmula, suma el resultado al número de llamadas en curso y lo compara con el máximo...si el resultado es mayor que le máximo la llamada no se cursará por congestión&lt;br /&gt;
&lt;br /&gt;
Configuraremos el ancho de banda por sede en el portal de administración y el consumo que hace cada llamada en la variable '''AB_CONSUMO_LLAMADA''' del fichero '''ext_MDtel_particular.conf''' de cada nodo de conmutación; el valor por defecto es 32&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Puesto de trabajo ==&lt;br /&gt;
El puesto de trabajo del agente en la plataforma '''''VIVA'''''it  (para el producto '''''VIVA'''''it Suite) estará compuesto por:&lt;br /&gt;
* PC (típicamente windows) en el que reside la aplicación '''''VIVA'''''it Desk&lt;br /&gt;
* Terminal telefónico con extensión física asociada.&lt;br /&gt;
&lt;br /&gt;
Para más información [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Puestos | ver sección Portal de administración-VIVAit Suite ACD+ - Puestos]].&lt;br /&gt;
&lt;br /&gt;
=== Relación PC/teléfono en puesto de trabajo ===&lt;br /&gt;
&lt;br /&gt;
Existirá una relación única entre nombre PC y extensión física asociada, si bien los agentes se identificarán por su login que les acompaña al puesto de trabajo en el que se loguen&lt;br /&gt;
Existe un procedimiento documentado para la operativa de cambio de puesto de trabajo, en caso de ser necesario el cambio de PC o de teléfono de un puesto de trabajo.&lt;br /&gt;
==== Procedimiento para un cambio de puesto de trabajo ====&lt;br /&gt;
Se basa en una asignación de PC a teléfono relaccionando la extensión telefónica del terminal físico con el nombre del puesto de trabajo. La configuración de dicha asociación se realiza en el portal de administración de la plataforma. &lt;br /&gt;
&lt;br /&gt;
Cualquier cambio que se realice en terminal telefónico o PC de agente ha de mantener la asociación en el portal a efectos de permitir el funcionamiento del sistema.&lt;br /&gt;
&lt;br /&gt;
A continuación se reflejan los cambios más habituales:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cambio !! Procedimiento !! Punto de acción&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| Cambio de ubicación de un PC || Opción 1.- Renombrar el PC para que conserve el nombre que tenía el anterior en esa ubicación || PC de agente&lt;br /&gt;
|-&lt;br /&gt;
|  Opción 2.- Rehacer la asignación extensión/puesto || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot;| Instalación de PC nuevo en puesto existente || Opción 1.- Renombrar el PC para que conserve el nombre que tenía el anterior en esa ubicación || PC de agente&lt;br /&gt;
|-&lt;br /&gt;
| Opción 2.- Rehacer la asignación extensión/puesto || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| Cambio de nombre en un PC || Rehacer asignación extensión/puesto || Rehacer asignación extensión/puesto&lt;br /&gt;
|-&lt;br /&gt;
|Cambio de ubicación de un teléfono  || Rehacer la asignación extensión/puesto&lt;br /&gt;
 || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| Instalación de un teléfono nuevo en puesto existente || Rehacer la asignación extensión/puesto || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| Instalación de un nuevo puesto de agente|| Hacer asignación extensión/puesto || Portal de administración&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:relacion_puesto_agente.png|center|500px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Estructura de aplicaciones en puesto de trabajo ===&lt;br /&gt;
Las aplicaciones del puesto de trabajo pueden estar ubicadas en cualquier carpeta del sistema. Es importante tener en cuenta que los procesos de actualización, logs… escriben en dichas carpetas, por lo que el usuario de windows deberá tener permisos de lectura/escritura y borrado sobre dichas carpetas&lt;br /&gt;
La instalación del puesto de trabajo es muy liviana para el sistema; las aplicaciones ocupan poco espacio y no se modifican ficheros del sistema operativo (registry o similares)&lt;br /&gt;
Los ficheros importantes son&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Fichero !! Descrición&lt;br /&gt;
|-&lt;br /&gt;
| Vivait-desk.exe || Contiene la aplicación '''''VIVA'''''it Desk de agente&lt;br /&gt;
|-&lt;br /&gt;
| vivait_desk_dll.dll||Este fichero contiene controles sobre los formularios (controles de&lt;br /&gt;
texto, algunas reglas de obligatoriedad…)&lt;br /&gt;
|-&lt;br /&gt;
| nimitz.ini || Configuración del puesto de agente&lt;br /&gt;
|-&lt;br /&gt;
| lanzador.exe || Aplicación de actualización de versiones&lt;br /&gt;
|-&lt;br /&gt;
| lanzador.ini || Configuración del actualizador de aplicaciones&lt;br /&gt;
|-&lt;br /&gt;
| Carpeta forms || En esta carpeta están ubicados los formularios que se abren ante llamada entrante o saliente&lt;br /&gt;
|-&lt;br /&gt;
| Carpeta imágenes || Contiene las imágenes izquierda y derecha de la barra de '''''VIVA'''''it Desk&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Secciones de utilidad en nimitz.ini ===&lt;br /&gt;
&lt;br /&gt;
==== Configuración del puesto de agente ====&lt;br /&gt;
&lt;br /&gt;
El fichero nimitz.ini contiene la configuración del puesto de agente; sus principales parámetros son:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| |''' Fichero'''&lt;br /&gt;
|| '''Descripción'''&lt;br /&gt;
|-&lt;br /&gt;
|Sección [bd1]&lt;br /&gt;
||host=&amp;quot;ip_BBDD_tiempo_real&amp;quot;&lt;br /&gt;
puerto=&amp;quot;Nº puerto&amp;quot;&lt;br /&gt;
basedatos=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
usuario=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
clave=&amp;quot;UIk5jMY9PVX6ogg=&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Contiene información para la conexión a BBDD de tiempo real, en la que '''''VIVA'''''it Desk fundamentalmente inserta información&lt;br /&gt;
|-&lt;br /&gt;
|Sección [bd2]&lt;br /&gt;
||host=&amp;quot; ip_BBDD_replica &amp;quot;&lt;br /&gt;
puerto=&amp;quot;Nº puerto&amp;quot;&lt;br /&gt;
basedatos=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
usuario=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
clave=&amp;quot;UIk5jMY9PVX6ogg=&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Contiene información para la conexión a BBDD de réplica, en la que '''''VIVA'''''it Desk solo leerá información&lt;br /&gt;
|-&lt;br /&gt;
|Sección [telefono]&lt;br /&gt;
||pruebas=1 (Valores válidos 0 ó 1)&lt;br /&gt;
Activación de funcionalidad &amp;quot;servicio técnico&amp;quot; en '''''VIVA'''''it Desk.&lt;br /&gt;
&lt;br /&gt;
puesto=&amp;quot;Nombre puesto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Sección [trazas]&lt;br /&gt;
|| nivel=3&lt;br /&gt;
&lt;br /&gt;
archivo=1&lt;br /&gt;
&lt;br /&gt;
consola=0&lt;br /&gt;
&lt;br /&gt;
sobreescribir=1&lt;br /&gt;
&lt;br /&gt;
Activación de generación de ficheros de trazas &amp;quot;viva-desk.log&amp;quot; en carpeta de aplicaciones &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Parámetros en invocación a '''''VIVA'''''it Desk ===&lt;br /&gt;
&lt;br /&gt;
La aplicación '''''VIVA'''''it Desk puede ser invocada con una serie de parámetros que condicionan su funcionamiento; los parámetros son:&lt;br /&gt;
* Primer parámetro: Nombre del archivo .ini; usado como alternativa al fichero por defecto &amp;quot;nimitz.ini&amp;quot;&lt;br /&gt;
* Segundo parámetro: Nombre de puesto; usado como alternativa al nombre de puesto del ordenador&lt;br /&gt;
* Tercer parámetro: Nombre de login; para forzar un usuario; es de utilidad si el sistema está configurado como &amp;quot;confiar en sistema operativo&amp;quot;, en cuyo caso no permite seleccionar un login de agente para acceder a la aplicación&lt;br /&gt;
&lt;br /&gt;
=== Instalación y actualización de aplicaciones de puestos de trabajo ===&lt;br /&gt;
La instalación y actualización de las aplicaciones en el puesto de trabajo pasan por disponer de los ficheros “lanzador.exe” y “lanzador.ini” (debidamente configurado) dentro de la carpeta en la que se desee instalar.&lt;br /&gt;
Lanzando la aplicación “lanzador.exe” se instalará o actualizará el sistema. &lt;br /&gt;
&lt;br /&gt;
El fichero “lanzador.ini” tiene el siguiente aspecto:&lt;br /&gt;
 URL=&amp;quot;http://IP_Servidor:8180/WSActualizaXML/actualizar.xml&amp;quot;&lt;br /&gt;
 BASE_URL_DESCARGAS=&amp;quot;http://IP_servidor:8180/XMLFILES/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Servicio técnico en '''''VIVA'''''it Desk ===&lt;br /&gt;
La activación de la funcionalidad de servicio técnico en '''''VIVA'''''it Desk nos permite realizar sincronizaciones manuales de la aplicación y activar trazas a nivel de Base de Datos o a nivel de log sobre el propio '''''VIVA'''''it Desk. Pulsando el botón derecho del ratón sobre la barra '''''VIVA'''''it Desk accederemos a las capacidades de soporte técnico&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Funcionamiento de la plataforma en modo emergencia ==&lt;br /&gt;
== Accesos Web ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Aplicación !! Enlace&lt;br /&gt;
|-&lt;br /&gt;
|Portal de administración '''''VIVA'''''it Suite || http://ip_admin:8180/Vivait-Call&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker||http://ip_tracker:8180/Vivait-Tracker&lt;br /&gt;
|-&lt;br /&gt;
|Monitor Web||http://ip_monitor:8180/MonitorWeb&lt;br /&gt;
|-&lt;br /&gt;
|Monitorización Zabbix||http://ip_zabbix:80/zabbix&lt;br /&gt;
|-&lt;br /&gt;
|Base de datos tiempo real||http://ip_bbdd_tr:80/phpmyadmin/&lt;br /&gt;
|-&lt;br /&gt;
|Base de datos réplica||http://ip_bbdd_replica:80/phpmyadmin&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Permisos de aplicaciones ===&lt;br /&gt;
Se crean a través del '''portal de administración ''VIVA''it''' . Debe conocerse como funcionan los ejes [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Ejes| ver sección Portal de administracion - General - Ejes]] y que existen cuatro aplicaciones creadas en la plataforma:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:17_2 Pestaña Genera - Usuarios - Explicacion permisos.png|center]]&lt;br /&gt;
&lt;br /&gt;
La forma como dar permisos de aplicaciones a un usuario esta explicada en la [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Asignaci.C3.B3n_de_Permisos_de_Usuario_por_Administrador | sección  Portal de administracion - General - Usuarios ]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elementos monitorizados del sistema ==&lt;br /&gt;
===Generalidades de Zabbix===&lt;br /&gt;
====Zabbix ====&lt;br /&gt;
Zabbix es una solución de código abierto que ofrece características de monitorización avanzada de forma tecnica y para el negocio, para todo tipo de servidores, aplicaciones y equipos que forman parte de una red. La versión que utilizamos en '''md'''tel es Zabbix 2.2.2.&lt;br /&gt;
&lt;br /&gt;
Zabbix  monitoriza los  recursos  de un equipo en forma remota, permite centralizar la información en un servidor que permite visualizar el monitoreo, cuenta con una interfaz de administración vía web y utiliza un mecanismo flexible de la notificación que permita que los usuarios configuren las alarmas basadas email para informar virtualmente cualquier acontecimiento. Esto permite una reacción rápida a los problemas del servidor. &lt;br /&gt;
&lt;br /&gt;
Para acceder al servidor Zabbix abrimos el navegador y ponemos la dirección de red (IP) de la maquina donde se encuentra instalado el servidor de Zabbix seguido de &amp;quot;/Zabbix.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Direccion.IP.Zabbix.Server/zabbix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Zabbix posee documentación tanto en wiki, foros y comunidades.Para ampliar la información se puede visitar:&lt;br /&gt;
[[http://www.zabbix.com Sitio oficial de Zabbix]]&lt;br /&gt;
===== Glosario Zabbix =====&lt;br /&gt;
Se trata de una lista de conceptos básicos de Zabbix, pero para ampliar la información sobre otros términos, visite el [[http://www.zabbix.com Sitio oficial de Zabbix]].&lt;br /&gt;
* '''host''' &lt;br /&gt;
:En Zabbix, un host es una entidad que define el elemento en red que se desea monitorizar/supervisar activamente sus recursos locales y aplicaciones. Este puede ser una impresa, router, switch, sensores de temperatura, un servidor, un ordenador,etc, o también una aplicación. La característica de un host es que debe poseer una dirección de red (IP).&lt;br /&gt;
&lt;br /&gt;
* '''host group'''&lt;br /&gt;
:En Zabbix, un host group (grupo host) es una agrupación lógica de los host, como una forma de organizar los dispositivos &amp;quot;Host&amp;quot; registrados en Zabbix para su monitorización. Puede contener hosts y templates.  Los grupos host se utilizan en la asignación de derechos de acceso a los hosts para diferentes grupos de usuarios.&lt;br /&gt;
&lt;br /&gt;
* '''item'''&lt;br /&gt;
:En Zabbix, un item (medida) es el parámetro que deseamos obtener del host, básicamente es una medida especifica que el servidor Zabbix recogerá de los agentes de Zabbix instalados en los host.&lt;br /&gt;
&lt;br /&gt;
* '''trigger'''&lt;br /&gt;
:En Zabbix, un trigger(disparador) es una entidad que define un umbral para detectar la existencia de un problema en un dispositivo.  Son valores recolectados por los &amp;quot;items&amp;quot;, se usa para &amp;quot;evaluar&amp;quot; los datos recibidos con condiciones definidas. Las condiciones son de tipo aritmético y lógico.&lt;br /&gt;
* '''event'''&lt;br /&gt;
:En Zabbix, un event (evento) es la aparición de un suceso en Zabbix que necesita atención. Por ejemplo, el cambio de estado a raíz de un trigger, el descubrimiento de un nuevo agente (autoregistro),etc.&lt;br /&gt;
* '''action'''&lt;br /&gt;
:En Zabbix, una action(acción) son reglas predefinidas para reaccionar a un evento disparado por los triggers, es decir, define qué hacer ante un evento. Consta de operaciones (por ejemplo, una notificacion, comandos remotos) y condiciones (cuando  la operación se lleva a cabo).&lt;br /&gt;
* '''notification'''&lt;br /&gt;
:En Zabbix, una notification (notificacion) es la entidad con que Zabbix nos puede notificar (Correo Electrónico,mensajes vía &amp;quot;SMS&amp;quot; o Jabber).&lt;br /&gt;
* '''template'''&lt;br /&gt;
:En Zabbix, un témplate (plantilla) viene predefinida en la instalación de Zabbix Server, con el fin de ser aplicada en base al tipo de sistema operativo(Linux, Mac, Window, etc) o en elementos que comparten los mismos parámetros de medición, por ejemplo la carga del procesador, uso de memoria y  uso de recursos de red. Las plantillas son un conjunto de módulos &amp;quot;ITEM, TRIGGERS y GRÁFICAS&amp;quot;, que están preconfigurados y listas para ser aplicadas a uno o varios hosts.&lt;br /&gt;
* '''application'''&lt;br /&gt;
:En Zabbix, una application (aplicación) es una agrupación lógica de los items.&lt;br /&gt;
* '''Zabbix server'''&lt;br /&gt;
:El Zabbix server (servidor de Zabbix) es el proceso central donde están definidas las configuraciones y donde se almacenan todos los datos y estadísticas recogidas de los agentes Zabbix.Consta de una base de datos, una interfaz web y el propio server. Como servidor, se encarga de recoger los datos de los agentes, calcular los triggers, enviar notificaciones, etc. &lt;br /&gt;
* '''Zabbix agent'''&lt;br /&gt;
:El zabbix agent (agente de Zabbix)  es un proceso desplegado en los host que son supervisados, que funciona como un servicio y puede funcionar de forma activa y pasiva simultáneamente.&lt;br /&gt;
&lt;br /&gt;
=====Discovery=====&lt;br /&gt;
La funcionalidad discovery(detección) lista los dispositivos que se integran en nuestra red y el tipo de servicios que proporciona. Por ejemplo, si la empresa tuviera cien colas ACDs, y veinticinco VDNS, y en cada cola como veinte medidas, seria muy laborioso registrar una por uno cada uno.  &lt;br /&gt;
Gracias a esta funcionalidad, se descubre todas las interfaces de red que se tiene, automáticamente y tanto para colas nodos o IVR. Para utilizar esta funcionalidad , se hace el uso de dos script, que se instalan en el momento de instalación de Zabbix en el directorio &amp;quot;/usr/local/sbin&amp;quot;, que son:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
'''zabbixDiscoveryQueues.pl''' : script utilizado para buscar colas ACD.&lt;br /&gt;
&lt;br /&gt;
'''zabbixDiscoveryVDN.pl''' : script utilizado para buscar VDNS.&lt;br /&gt;
|}&lt;br /&gt;
La explicación de como configurarla se encuentra en el manual oficial [[https://www.zabbix.com/documentation/2.2/manual/discovery/network_discovery/rule | Zabbix detección de redes]].&lt;br /&gt;
&lt;br /&gt;
=====Notificaciones=====&lt;br /&gt;
&lt;br /&gt;
Necesariamente, debe darse de alta al usuario y darse de alta el servidor de correo electrónico para poder ser capaz de enviar correos.&lt;br /&gt;
&lt;br /&gt;
Por otro lado, el formato del correo electrónico y las condiciones de envío de correo al usuario se configura en las acciones. Véase  el [[https://www.zabbix.com/documentation/2.2/manual/quickstart/notification  | manual oficial de Zabbix 2.2]]&lt;br /&gt;
&lt;br /&gt;
=====Usuarios=====&lt;br /&gt;
Zabbix permite la organización de usuarios en grupos para establecer los permisos adecuados de acuerdo al tipo de perfil que deseemos crear. Necesariamente un usuario debe permanecer a un grupo o varios grupos.Todos los usuarios acceden a la aplicación de Zabbix a través de la interfaz Web. &lt;br /&gt;
&lt;br /&gt;
Cada usuario Zabbix se le asigna un nombre de usuario único , una contraseña y podemos indicarle que tipo de comunicación que posee, normalmente es vía email, pero puede ser vía a otro tipo de medios. Para mas información ver el [[https://www.zabbix.com/documentation/2.2/manual/web_interface/user_profile || manual oficial ]].&lt;br /&gt;
 &lt;br /&gt;
=====Visualización=====&lt;br /&gt;
Con Zabbix es posible visualizar los datos como  gráficos, pantallas, mapas y hasta presentaciones cambiantes, entre otros. En este apartado solo nombraremos características esenciales que se tendra que completar con el [[https://www.zabbix.com/documentation/2.2/manual/config/visualisation | manual oficial]]&lt;br /&gt;
======Graphs======&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''Nota:''' Debe crearse algun item dentro del host para poder utilizar una gráfica.&lt;br /&gt;
|}&lt;br /&gt;
En Zabbix una gráfica sirve para representar gráficamente los resultados obtenidos de uno item o varios items.&lt;br /&gt;
[[File:EjemploGrafica.png|center|750px]]&lt;br /&gt;
Los valores min / avg / max que Zabbix obtiene y representa son de un registro de datos de la tabla tendencias.&lt;br /&gt;
&lt;br /&gt;
======Screens======&lt;br /&gt;
La pantalla refiere a otra característica adaptable de ZABBIX cuál permite que los usuarios creen las pantallas personalizadas dentro de ZABBIX para exhibir la información. Se considera como una colección de gráficas y no depende del host. Una pantalla puede consistir en gráficos simples, gráficos personalizados, integrar mapas, Alertas, gráficos estadísticos o texto llano tal como los 5 valores pasados de un item particular entre otros; y mostrar la información de forma dinámica.&lt;br /&gt;
&lt;br /&gt;
[[File:EjemploScreen.png|center|750px]]&lt;br /&gt;
&lt;br /&gt;
======Maps======&lt;br /&gt;
En Zabbix, un map (mapa) es una representación gráfica de la situacion de nuestros dispositivos en red. Es un escenario que muestra nuestra red, aplicaciones y servicios a través de figuras o iconos.  Dichas figuras toman vida en respuesta a los eventos que se dan en nuestro entorno.&lt;br /&gt;
[[File:EjemploMaps.png|center|750px]]&lt;br /&gt;
[[File:EstadosMaps.png|center|750px]]&lt;br /&gt;
===Zabbix en '''MD'''tel===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Configuraciones de Zabbix ====&lt;br /&gt;
&lt;br /&gt;
===== Agentes Zabbix =====&lt;br /&gt;
{|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 '''Nota:''' Hay que instalar un agente Zabbix en cada maquina que se quiera monitorizar.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El agente de Zabbix puede recoger datos: &lt;br /&gt;
*'''De forma pasiva:''' el server contacta al agente pidiéndole un dato (por ejemplo el consumo de CPU en ese instante) y el agente responde al server con ese dato. A esta acción del agente le llamaremos '''Agente activo'''.&lt;br /&gt;
*'''De forma activa:''' en un primer momento, el server le enviará al agente el listado de items a monitorizar. A partir de ese momento, será el agente que de forma periódica recogerá datos sobre esos ítems y se los hará llegar al server. A esta acción del agente le llamaremos ''''''Agente pasivo''''''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== Configurar agente de forma pasiva======&lt;br /&gt;
Para configurar el agente de Zabbix necesitamos acceder a la maquina que actuará como agente, y en el directorio /etc/zabbix modificar el fichero '''zabbix_agentd.conf''' e indicar cual es la dirección de red (IP) del servidor Zabbix.&lt;br /&gt;
&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 ##### Passive checks related&lt;br /&gt;
 ### Option: Server&lt;br /&gt;
 #       List of comma delimited IP addresses (or hostnames) of Zabbix servers.&lt;br /&gt;
 #       Incoming connections will be accepted only from the hosts listed here.&lt;br /&gt;
 #       If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1'  &lt;br /&gt;
 #       are treated equall$&lt;br /&gt;
 #&lt;br /&gt;
 # Mandatory: no&lt;br /&gt;
 # Default:&lt;br /&gt;
 Server= IP.Server Zabbix.&lt;br /&gt;
|}&lt;br /&gt;
Tras la configuración del fichero, debemos reiniciar el servicio de los agentes.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 sudo service zabbix-agent restart&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====== Configurar agente de forma activa ======&lt;br /&gt;
&lt;br /&gt;
Para configurar el agente de Zabbix necesitamos acceder a la máquina que actuará como agente, y en el directorio /etc/zabbix modificar el fichero '''zabbix_agentd.conf''' e indicar cual es la dirección de red (IP) del servidor Zabbix.&lt;br /&gt;
&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 ##### Active checks related&lt;br /&gt;
 ### Option: ServerActive&lt;br /&gt;
 #       List of comma delimited IP:port (or hostname:port) pairs of Zabbix serv$&lt;br /&gt;
 #       If port is not specified, default port is used.&lt;br /&gt;
 #       IPv6 addresses must be enclosed in square brackets if port for that hos$&lt;br /&gt;
 #       If port is not specified, square brackets for IPv6 addresses are option$&lt;br /&gt;
 #       If this parameter is not specified, active checks are disabled.&lt;br /&gt;
 #       Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12$&lt;br /&gt;
 #&lt;br /&gt;
 # Mandatory: no&lt;br /&gt;
 # Default:&lt;br /&gt;
 ServerActive=127.0.0.1&lt;br /&gt;
 --------------------------sección separada----------------------------&lt;br /&gt;
 ### Option: UserParameter&lt;br /&gt;
 #       User-defined parameter to monitor. There can be several user-defined pa$&lt;br /&gt;
 #       Format: UserParameter=&amp;lt;key&amp;gt;,&amp;lt;shell command&amp;gt;&lt;br /&gt;
 #       See 'zabbix_agentd' directory for examples.&lt;br /&gt;
 #&lt;br /&gt;
 # Mandatory: no&lt;br /&gt;
 # Default:&lt;br /&gt;
 # UserParameter=&lt;br /&gt;
 User_parameters:asterisk.pid, /usr/bin/asterisk -rx 'core show chanels'|grep 'active calls'| cat -d -f 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El parámetro '''User_parameters''' tiene un formato de este estilo:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 User_parameters: NombreMedida, comando.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El nombre de la medida se refiere al nombre que demos a la aplicación , no hace falta que exista una aplicación con ese nombre en Zabbix, y el comando , es el comando remoto que tiene que ejecutar el servidor Zabbix. Posiblemente necesita darse permisos para ejecutar el comando y siempre debe devolver un valor (un numero o un tiempo) que el servidor Zabbix puede manejar.&lt;br /&gt;
Tras la configuración del fichero, debemos reiniciar el servicio de los agentes.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 sudo service zabbix-agent restart&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Scripts del Servidor Zabbix =====&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''': &amp;lt;small&amp;gt;No olvidar que en la misma maquina del server Zabbix, debe configurarse como agente de Zabbix.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Después de realizar la [[# Instalación de Zabbix | Instalación de Zabbix ]] correctamente. Se han creado otros ficheros scripts (''scripts propios de '''md'''tel'') que facilitarán la petición del servidor a los agentes activos, para poder parametrizar todos los elementos del negocio que suelen monitorizarse. &lt;br /&gt;
Dependiendo de lo que vaya a monitorizarse necesitaremos algún script o todos. Algunos nos informan sobre elementos de negocio, saber si asterisk funciona , monitorizar el CTI (lanzara nc localhost 1111) , controlar el Intz-Nimitz, comprobar si funciona motalsal, ect.&lt;br /&gt;
&lt;br /&gt;
Cada script se exportara a los host, para que pueda facilitar los datos que pide el servidor Zabbix y configurarse.&lt;br /&gt;
Por ejemplo,para monitorizar las llamadas en curso del ACD, agentes conectados, agentes desconectados, etc.&lt;br /&gt;
Todos los scripts se deben colocar en el directorio /usr/local/sbin con permisos 755, su nombre es parecido a &amp;quot;zabbixSenderXXXXX.pl&amp;quot;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 ls /usr/local/sbin/ |grep zabbixSender&lt;br /&gt;
 '''zabbixSenderACDBD.pl'''&lt;br /&gt;
 '''zabbixSenderACD.pl'''&lt;br /&gt;
 '''zabbixSenderCTI.pl'''&lt;br /&gt;
 '''zabbixSender-intz-nimitz.pl'''&lt;br /&gt;
 '''zabbixSenderMotorSal.pl'''&lt;br /&gt;
 '''zabbixSenderMyACDSuperv.pl'''&lt;br /&gt;
 '''zabbixSenderRecordNodo.pl'''&lt;br /&gt;
 '''zabbixSenderRecordCentral.pl'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Se crea una tarea programada en linux para poder ejecutarse los scripts, programando el tiempo en que debe ejecutarse.&lt;br /&gt;
&lt;br /&gt;
Si visualizo que &amp;quot;............&amp;quot; aparece:&lt;br /&gt;
&lt;br /&gt;
*****  root zabbix&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderACDBD.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtiene diversos valores por cada cola, estados de agente por cola y estados de agente generales.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor BDTR.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:''' Ruta al archivo de configuración (Por ejemplo: ''/etc/MDtel/zabbixSenderACDBD.pconf'')&lt;br /&gt;
&lt;br /&gt;
'''Archivo de configuración:''' zabbixSenderACDBD.pconf&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''$db:''' Nombre de la BBDD (normalmente nimitz)&lt;br /&gt;
 '''$dbHost:''' Dirección IP del servidor de BBDD de TR (normalmente BDTR)&lt;br /&gt;
 '''$dbPort:''' Puerto MySQL (normalmente 3306)&lt;br /&gt;
 '''$dbUsuario:''' Usuario MySQL (normalmente nimitz)&lt;br /&gt;
 '''$dbClave:''' Clave del usuario&lt;br /&gt;
 '''$sZab:''' Dirección IP del servidor Zabbix&lt;br /&gt;
 '''$hZab:''' Nombre del host Zabbix (normalmente el nombre de máquina, tal y como se configura en &lt;br /&gt;
 zabbix_agentd.conf o en el host en la web de Zabbix)&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderACD.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener el PID de Asterisk para revisar si se ha reiniciado en caso de que cambie.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor ACD.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:''' Ruta al archivo de configuración (Por ejemplo: ''/etc/MDtel/zabbixSenderACD.pconf'').&lt;br /&gt;
&lt;br /&gt;
'''Archivo de configuración:''' zabbixSenderACDBD.pconf.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''$db:''' Nombre de la BBDD (normalmente nimitz)&lt;br /&gt;
 '''$dbHost:''' Dirección IP del servidor de BBDD de TR (normalmente BDTR)&lt;br /&gt;
 '''$dbPort:''' Puerto MySQL (normalmente 3306)&lt;br /&gt;
 '''$dbUsuario:''' Usuario MySQL (normalmente nimitz)&lt;br /&gt;
 '''$dbClave:''' Clave del usuario&lt;br /&gt;
 '''$sZab:''' Dirección IP del servidor Zabbix&lt;br /&gt;
 '''$hZab:''' Nombre del host Zabbix (normalmente el nombre de máquina, tal y como se configura en&lt;br /&gt;
 zabbix_agentd.conf o en el host en la web de Zabbix)&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
======zabbixSenderCTI.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de vivait-cti.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute vivait-cti. Normalmente el servidor ACD.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======zabbixSender-intz-nimitz.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de intz-nimitz.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute intz-nimitz.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
======zabbixSenderMotorSal.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de motorSal.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute motorSal.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderMyACDSuperv.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de myAcdSuperv.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute myAcdSuperv.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderRecordNodo.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de recordNodo.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute recordNodo.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderRecordCentral.pl======&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de recordCentral.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute recordCentral.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A continuación se muestra una tabla resumen de los distintos scripts y sus funcionalidades: &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Zabbix_scripts.png |960px]]&lt;br /&gt;
&lt;br /&gt;
====== Dimensionamiento del servidor (Startpollers) ======&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''': &amp;lt;small&amp;gt;EL parámetro StartPollers es un &amp;lt;u&amp;gt;parámetro numérico&amp;lt;/u&amp;gt; que forma parte del fichero de configuración &lt;br /&gt;
 del servidor Zabbix(zabbix_server.conf). Por defecto el servidor Zabbix esta configurado para&lt;br /&gt;
 iniciar con cinco startpollers.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El servidor Zabbix puede hace peticiones a los agentes de las medidas que necesita o quiere. O en caso contrario los agentes envian en un tiempo determinado la información al servidor. Para recibir todas estas peticiones necesitamos los pollers.  &lt;br /&gt;
&lt;br /&gt;
Los poller son los procesos encargados de recibir todas las peticiones de medidas. Aumentaremos su cantidad dependiendo de la necesitad que tengamos. Para ello podemos observar la queue , que es la encargada de almacenar un listado de todas las cosas que están pedidas para medirse y recibirse.  SI por ejemplo esta cola (queue) muestra mas de mil medidas seguramente estos pollers sean un cuello de botella y habrá que aumentar su numero.&lt;br /&gt;
&lt;br /&gt;
=====Templates=====&lt;br /&gt;
&lt;br /&gt;
Zabbix cuenta con templates (plantillas) que facilitan la tarea de &amp;quot;Registrar Equipos y Dispositivos&amp;quot; y agregarles métricas; acelerar el despliegue de las tareas de supervisión en un host; aplicar cambios masivos a tareas de supervisión. En '''md'''tel hemos creado plantillas propias que facilitan estos procesos, los cuales necesitaremos [[#Importar templates |importar templates]].&lt;br /&gt;
&lt;br /&gt;
Las plantillas están vinculados directamente a los hosts individuales, por tanto se necesitaran utilizar en cada host.&lt;br /&gt;
&lt;br /&gt;
Automáticamente, cada template rellena por item las aplicaciones, trigers, alarmas,gráficos,... etc. &lt;br /&gt;
&lt;br /&gt;
A continuación, se muestran los distintos bloques de funciones de la instalación en función de cada template:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! Se instalan en general &lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| SI (si clúster)&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| si&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| -&lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| si(si no posee ip virtuales de clúster)&lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| si&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ '''Dependiendo del tipo de nodo:'''&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! ACD !! Corporativo/GW&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| Si || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - || Si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - || Si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ '''Dependiendo del tipo de Base de dato'''s:&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! BBDD &amp;lt;br /&amp;gt;Tiempo Real !! BBDD&amp;lt;br /&amp;gt; Réplica !! BBDD Copia&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| Si(si ACD) || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| si || si || si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| si || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! Administración&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - &lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - &lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal||SI (si posee servidor calendarios)&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! Servidor de grabaciones&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - &lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| Si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - &lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal||-&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ '''Monitorización'''&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! General !! Contact Center&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - || - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - || - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| si || - &lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - || - &lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 * El template OS Linux tiene asociado el Template App Zabbix Agent.&lt;br /&gt;
 Una '''base de datos unificada''' es una base de datos de tiempo real junto a  una base de datos de replica&lt;br /&gt;
&lt;br /&gt;
====== Importar templates======&lt;br /&gt;
&lt;br /&gt;
Las plantillas propias de '''md'''tel se encuentran en la ruta &amp;quot;'''/usr/src/nimitz/archivos'''&amp;quot; y empiezan con el nombre de &amp;quot;TemplateXXX.xml&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 ls /usr/src/nimitz/archivos | grep Template&lt;br /&gt;
 '''Template DRBD.xml'''&lt;br /&gt;
 '''Template motorSal.xml'''&lt;br /&gt;
 '''Templates Vivait-Suite_GW.xml'''&lt;br /&gt;
 '''Templates Vivait-Suite.xml'''&lt;br /&gt;
 '''Template Vivait-Call Asterisk.xml'''&lt;br /&gt;
 '''Template Vivait-Call bdCentral.xml'''&lt;br /&gt;
 '''Template Vivait-Call bdNodo.xml'''&lt;br /&gt;
 '''Template Vivait-Call cambiarPerfil_Cal.xml'''&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La importación se realizara una vez a través de la web, no hace falta desde el servidor Zabbix, puede ser en cualquier  computadora con acceso a la interfaz web de Zabbix.&lt;br /&gt;
&lt;br /&gt;
[[File:ImportarTemplates.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
Hay opciones varias opciones a elegir para importación de templates, pero podemos dejar por defecto las señaladas y pulsar el botón &amp;quot;import&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Configuración para un primer funcionamiento de Zabbix===&lt;br /&gt;
Se describe una básica configuracion de Zabbix para cualquier equipo que utilice Windows o linux. Pues  mediante la definición de hosts, items, triggers y acciones, Zabbix permite efectuar un monitoreo efectivo de plataformas IT heterogéneas. &lt;br /&gt;
&lt;br /&gt;
====Configuración de los equipost (host) para la monitorización====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''': Tenga en cuenta que debe de estar previamente configurado el agente Zabbix del &lt;br /&gt;
 dispositivo a ser monitorizado apuntando a la IP del &amp;quot;Servidor Zabbix&amp;quot;.&lt;br /&gt;
|}&lt;br /&gt;
Existen dos tipos de host:&lt;br /&gt;
* '''Host físico''': donde la dirección de red que registramos en Zabbix, corresponde al dispositivo que deseamos monitorizar.&lt;br /&gt;
* '''Host virtual''': es una dirección IP virtual, que puede relacionarse con un servidor Web, clusters, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:CreacionHost.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
﻿Las opciones basicas para configurar un host son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center ;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Host Name'''&lt;br /&gt;
|  | Definir un nombre para el host.&lt;br /&gt;
||Se puede utilizar números, letras, espacios y guiones bajos están permitidos.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Visible Name'''&lt;br /&gt;
|  | Identificar con un nombre, la maquina a la que se refiere el host.&lt;br /&gt;
||Si no tiene valor, se mostrara como nombre &amp;quot;Host Name&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Groups'''&lt;br /&gt;
|  | Seleccionar al grupo de host que pertence.Seleccione uno o varios grupos de la caja derecha.&lt;br /&gt;
|| Los valores que puede seleccionar por defecto:&lt;br /&gt;
Discoverd hosts.&lt;br /&gt;
&lt;br /&gt;
Switches.&lt;br /&gt;
&lt;br /&gt;
Templates.&lt;br /&gt;
&lt;br /&gt;
Templates MDtel.&lt;br /&gt;
&lt;br /&gt;
Zabbix servers.&lt;br /&gt;
&lt;br /&gt;
Linux Servers.&lt;br /&gt;
&lt;br /&gt;
Hypervisors.&lt;br /&gt;
&lt;br /&gt;
Virtual machines.&lt;br /&gt;
&lt;br /&gt;
O crear uno nuevo en '''New group'''.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Agent interfaces'''&lt;br /&gt;
|  |Se recomienda usar una dirección IP, en vez de un nombre de la maquina para resolver por un servidor de DNS que puede fallar.&lt;br /&gt;
|  | 10050 por defecto&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cuando termine, haga clic en nel boton &amp;quot;Save&amp;quot;.  Su nuevo &amp;quot;Host&amp;quot; debe ser visible en la lista de &amp;quot;Host registrados&amp;quot;.Despues el zabbix, intentara configurarse el zabbix para conectarse a la IP.... cada x tiempo hace un barrido. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Comprobación de disponibilidad del host=====&lt;br /&gt;
Para saber si todo esta bien debemos ver la Z de disponibilidad.   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:EstadosZHost.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Indicacion de los colores del icono Z:&lt;br /&gt;
&lt;br /&gt;
* Si el icono Z en la columna de disponibilidad es de color rojo, indica que hay un error en la comunicación - mueva el cursor del ratón sobre él para ver el mensaje de error. &lt;br /&gt;
&lt;br /&gt;
* Si el icono es gris, significa que esta en proceso de comunicación con el &amp;quot;Agente Zabbix&amp;quot;. Compruebe que el servidor Zabbix está en marcha, y pruebe a actualizar la página más tarde.  El tiempo estimado para revisar si existe problemas es de 5 minutos.&lt;br /&gt;
&lt;br /&gt;
* Si el icono es verde, esta funcionando correctamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Indicar que plantilla(template) tendra el host [opcional]====&lt;br /&gt;
Tras [[#Importar templates |importar templates]] nos dirigimos al host ya configurado, y en su pestaña de templates pulsamos &amp;quot;add&amp;quot; y añadimos la plantilla/s adecuadas.&lt;br /&gt;
&lt;br /&gt;
====Asignar items al host ====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''':Un host puede tener un ITEM sin necesitad de tener template.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Todos lo ITEMS se agrupan por HOST, esto significa que cada HOST tiene sus propios &amp;quot;Módulos que recogen datos del Host&amp;quot;.   Para agregar un nuevo módulo vamos a &amp;quot;Configuration → Hosts&amp;quot; y localizamos el &amp;quot;Host&amp;quot; al cual queremos agregarle un nuevo &amp;quot;Item&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:CrearItemEjemplo.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
Parametros o campos a rellenar para una configuración básica :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center ;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Name'''&lt;br /&gt;
|  | Definir un nombre para el item.  Este nombre va a ser nuestro identificador para todas la gestiones en donde lo involucremos como el caso de Triggers.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Type'''&lt;br /&gt;
|| Indicar de que entidad queremos recibir informacion.&lt;br /&gt;
||Puede ser al &amp;quot;Agente Zabbix&amp;quot; o a el Hardware como impresoras, switch o routers.   &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Key'''&lt;br /&gt;
|  | los &amp;quot;Items&amp;quot; utilizan &amp;quot;Key&amp;quot; que son parámetros de Zabbix.  Los &amp;quot;Key&amp;quot; nos permiten indicar específicamente que tipo de información vamos a solicitara a la entidad. Se puede considerar también como el nombre de alguna aplicación.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''host interface'''&lt;br /&gt;
|  |Es la direccion de red del servidor zabbix (puede ser uno o mas)&lt;br /&gt;
|  | &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Units'''&lt;br /&gt;
|  |Es la dirección de red del servidor zabbix (puede ser uno o mas)&lt;br /&gt;
|  | &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Type of information'''&lt;br /&gt;
|  |Tipo de unidades con el que mostrar Zabbix el valor segundos, minutos, euros,....&lt;br /&gt;
|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cuando termine, haga clic en Guardar.   El nuevo elemento debe aparecer en la ITEMLIST. &lt;br /&gt;
Para mas informacion [[http://entation/1.8/manual/config/items#zabbix_agent. ver documentación Zabbix]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Ver la información recolectada por el item =====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' Normalmente para ver la información lo encontraremos en &amp;quot;Monitoring → Latest data&amp;quot;,luego &lt;br /&gt;
 clic en el signo &amp;quot;+&amp;quot; en &amp;quot;other&amp;quot; siempre que no pertenezca a una aplicación. &lt;br /&gt;
 En caso contrario, estará bajo el nombre de la aplicación.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Después de definir el &amp;quot;Item&amp;quot; vamos a revisar la información que esta recolectando.  .  La información comenzará a ser recolectada según el tiempo que le indicamos en el &amp;quot;Item&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:VerInfoITEM.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
La espera para recibir la información varía dependiendo del tiempo de recolección del item, la mayoría suele ser aproximadamente al minuto de generar el &amp;quot;Item&amp;quot;. Zabbix le ofrece la opción de visualizar la información en forma gráfica (sencilla).  En el &amp;quot;Item&amp;quot; en lista haga clic en la columna &amp;quot;History - Graph&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:VIsualGraficaValorItem.png|center|750px]]&lt;br /&gt;
Si en un caso usted no observa información le recomendamos:&lt;br /&gt;
  &lt;br /&gt;
* Ingrese al &amp;quot;Item&amp;quot; y revise que la información del &amp;quot;Key&amp;quot; este igual al ejemplo &amp;quot;system.cpu.load&amp;quot; &lt;br /&gt;
* Verifique que el agente este funcionando en el &amp;quot;Servidor a ser monitoreado&amp;quot; y que &amp;quot;El Servidor recolector Zabbix&amp;quot; este funcionando. &lt;br /&gt;
* El icono &amp;quot;Z&amp;quot; en el host debe estar en color verde. &lt;br /&gt;
* Asegure que esta monitoreando el servidor que le agregó este &amp;quot;Item&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Configurar los Triggers para los host====&lt;br /&gt;
A partir de la información que captura los agentes , el servidor de Zabbix comienza a efectuar la recolección de estos items en la base de datos. Con esto se tiene un registro histórico de tales mediciones, que pueden ser tan simples como un simple ping hasta datos de uso de disco, memoria, cpu, etc.&lt;br /&gt;
A partir de los datos que se reciben de los agentes lo que sigue es definir y configurar Triggers, que son evaluaciones que hace Zabix de estos datos para determinar la existencia de un Problema en un dispositivo.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Nota: Un trigger necesita una accion, que indica que hacer cuando se activa el trigger.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un trigger(disparador) es un tipo de reacción ante unas medidas, como un disparador en el que si pasa algo se activa. Los Trigger en Zabbix son módulos que creamos a uno o múltiples &amp;quot;Items&amp;quot; para evaluar o comparar los valores recolectados por los &amp;quot;Items&amp;quot; con condiciones que nosotros definamos.  Las condiciones son de tipo aritmético y lógico.&lt;br /&gt;
&lt;br /&gt;
Para configurar un &amp;quot;Trigger o Disparador&amp;quot; seleccionamos &amp;quot;Configuration → Hosts&amp;quot; localizamos el &amp;quot;Host&amp;quot; de ejemplo que creamos y luego hacemos clic en &amp;quot;Trigger&amp;quot;, después haga clic en &amp;quot;Create Trigger&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Parametros o campos a rellenar para una configuración básica :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center ;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Name'''&lt;br /&gt;
|  | Definir un nombre para el trigger.  Este nombre va a ser nuestro identificador para todas la gestiones en donde lo involucremos como el caso de los eventos.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Expression'''&lt;br /&gt;
||  Hay que indicar para que medida se crea (item) y sus funciones con los parametros adecuados. '''''Recomendación usar expression constructor que pedirá siempre al crearlo, para que item es y sus funciones...'''''&lt;br /&gt;
||Ejemplo: {New host:system.cpu.load.avg(180)}&amp;gt;2 &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Key'''&lt;br /&gt;
|  | los &amp;quot;Items&amp;quot; utilizan &amp;quot;Key&amp;quot; que son parámetros de Zabbix.  Los &amp;quot;Key&amp;quot; nos permiten indicar específicamente que tipo de información vamos a solicitara a la entidad. Se puede considerar tambien como el nombre de alguna aplicacion.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Una descripción breve sobre el trigger.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Severity'''&lt;br /&gt;
|  | everidad distinguida por colores,&lt;br /&gt;
|| No classified&lt;br /&gt;
 Information&lt;br /&gt;
 Warning&lt;br /&gt;
 Average&lt;br /&gt;
 High&lt;br /&gt;
 Disaster&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Comprobar el estado del trigger =====&lt;br /&gt;
Podemos ver el estado del &amp;quot;Trigger&amp;quot; en &amp;quot;Monitoring → Triggers&amp;quot;.El  color en caso de que se active depende de la severidad definida. Por ejemplo,  si el &amp;quot;Trigger&amp;quot; esta en color verde indica que el resultado de la métrica se mantiene por debajo de la condición que indicamos.  Por el contrario si el resultado esta &amp;quot;sobre lo indicado&amp;quot; su color sera rojo.&lt;br /&gt;
&lt;br /&gt;
[[File:EstadoTrigger.png|center|750px]]&lt;br /&gt;
&lt;br /&gt;
====Asociar un Action al trigger====&lt;br /&gt;
&lt;br /&gt;
Una action(acción) sirve para configurar un mensaje de alerta o una accion para Zabbix, ante un problema. Hay varias formas de gestionar un problema a través de una acción:&lt;br /&gt;
&lt;br /&gt;
# A través de mensajes simples, alertando al instante.&lt;br /&gt;
# Escalar los mensajes hacia el jefe y/o otros grupos.&lt;br /&gt;
# Ejecución de commandos remotos.&lt;br /&gt;
# Notificaciones repetidas hasta que se resuelve el problema.&lt;br /&gt;
# Notificaciones y comandos retardados.&lt;br /&gt;
# Escenario complejo, la combinación de todo lo anterior.&lt;br /&gt;
&lt;br /&gt;
Para crear una configuración en &amp;quot;Configuration-Actions&amp;quot;. La explicación esta en la [[ https://www.zabbix.com/documentation/2.0/manual/config/notifications/action documentación de Zabbix]].&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integraciones con servicios externos ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Presencia con Openfire ===&lt;br /&gt;
'''''VIVA'''''it se integra con servidor XMPP Openfire en su versión 3.10.2 (última probada)&lt;br /&gt;
&lt;br /&gt;
Además del servidor, es necesario instalar un plugin de integración con asterisk 13, denominado &amp;quot;asterisk IM&amp;quot;, versión 1.4.1&lt;br /&gt;
&lt;br /&gt;
La instalación del servidor Openfire es una instalación estándar, realizada de paquete&lt;br /&gt;
&lt;br /&gt;
La instalación del plugin es un &amp;quot;jar&amp;quot; que se carga desde la pagina de plugins de openfire&lt;br /&gt;
&lt;br /&gt;
Con esto conseguiremos comunicar asterisk y OPenfire de manera que:&lt;br /&gt;
*Los estados telefónicos de una extensión '''''VIVA'''''it  se reflejen en Openfire&lt;br /&gt;
*Poder marcar desde los clientes de IM instalados en los puestos&lt;br /&gt;
*Ver en el cliente llamadas entrantes al teléfono&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;Enlaces de interes:&amp;lt;/big&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
[http://www.igniterealtime.org/projects/openfire/ Página proyecto openfire]&lt;br /&gt;
&lt;br /&gt;
[https://community.igniterealtime.org/thread/56076 Página proyecto &amp;quot;asterisk IM&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reuniones virtuales con Openmeetings ===&lt;br /&gt;
'''OpenMeetings''' es un sistema de vídeo web-conferencia en tiempo real. Usando recursos como audio (micrófono), vídeo (cámara web), posibilidad de subir y convertir presentaciones (en PDF , PPT o ODP que se convierten a Flash), compartición de la pantalla de tu ordenador, o pizarra digital compartida, panel de administración, posibilidad de grabar las sesiones… y completo soporte multiplataforma, es decir, que aparte de poder grabar las sesiones, se puede compartir un escritorio también desde una máquina Linux.&lt;br /&gt;
&lt;br /&gt;
Para instalar '''OpenMettings''' debe seguir el [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manuales_de_instalaci%C3%B3n#Instalaci.C3.B3n_de_Openmeetings | manual de Instalación de Openmeetings]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]] &lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:VIVAit Suite]]&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Howto%27s&amp;diff=6047</id>
		<title>Howto's</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Howto%27s&amp;diff=6047"/>
		<updated>2017-08-07T09:57:42Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* Generación de un Core */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!! VIVAit Call&lt;br /&gt;
VIVAit Suite&lt;br /&gt;
&lt;br /&gt;
VIVAit Fax&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Como parar asterisk ==&lt;br /&gt;
En situaciones límite en el que es necesario parar el asterisk y volver a arrancarlo hay que realizar los siguientes pasos:&lt;br /&gt;
&lt;br /&gt;
 Entrar en la consola de asterisk e introducir el comando core stop now&lt;br /&gt;
&lt;br /&gt;
 Si esto no funciona, tendremos que matar el proceso a mano. Esto es, primero el safe asterisk y luego el asterisk mediante el comando &lt;br /&gt;
 kill -9 nºPID&lt;br /&gt;
 &lt;br /&gt;
 Tras estos pasos, volveremos a arrancar el servicio asterisk mediante /etc/init.d/asterisk start&lt;br /&gt;
&lt;br /&gt;
== Como configurar la megafonía ==&lt;br /&gt;
&lt;br /&gt;
El servicio de megafonía se basa en el protocolo multicast.&lt;br /&gt;
&lt;br /&gt;
Para configurar la megafonía tenemos que activar en los teléfonos que para que estén &amp;quot;escuchando&amp;quot; en una dirección multicast y tener un emisor en esa dirección multicast.&lt;br /&gt;
&lt;br /&gt;
Los teléfonos suelen tener en su configuración un apartado para configurar el multicast. Por ejemplo en los yealink está en la pestaña directory sección multicast IP.&lt;br /&gt;
&lt;br /&gt;
En los teléfonos se puede configurar manualmente o incluirlo en las plantillas de aprovisionamiento.&lt;br /&gt;
&lt;br /&gt;
El asterisk tiene un canal para hacer multicast. Este canal es MulticastRTP.&lt;br /&gt;
&lt;br /&gt;
Para esto podemos crear un VDN que contenga la siguiente línea. (en el ejemplo la dirección multicast es 239.0.126.1 y el puerto es el 10001).&lt;br /&gt;
&lt;br /&gt;
 [Cen_VDN_90000]&lt;br /&gt;
 exten =&amp;gt; _X.,1,NoOp(MDVDN_90000*****EXTEN=${EXTEN}**CID=${CALLERID(NUM)}**UCID=${UCID}*)&lt;br /&gt;
  same =&amp;gt;     n,Answer&lt;br /&gt;
  same =&amp;gt;     n,Dial(MulticastRTP/basic/239.0.126.1:10001)&lt;br /&gt;
 include =&amp;gt; Cen_finLlamada&lt;br /&gt;
&lt;br /&gt;
== Como configurar el candado ==&lt;br /&gt;
El candado permite prohibir temporalmente la posibilidad de realizar llamadas hacia fuera. Sí se pueden seguir haciendo llamadas a extensiones fijas de la plataforma, es decir, llamadas sin coste.&lt;br /&gt;
&lt;br /&gt;
Para configurar dicha funcionalidad basta con crear extensiones con la categoría mas restrictiva posible y habilitar la movilidad, con lo que la extensión solo tendrá &amp;quot;permisos&amp;quot; para realizar llamadas internas.&lt;br /&gt;
&lt;br /&gt;
Para permitir llamadas externas solo hay que &amp;quot;mover&amp;quot; a un usuario con categoría suficiente a la extensión deseada.&lt;br /&gt;
== Como crear un grupo de captura y que se vea en cada teléfono el número que llama ==&lt;br /&gt;
&lt;br /&gt;
'''ATENCIÓN: SE CREAN CONFIGURACIONES NO REFLEJADAS EN PORTAL DE ADMINISTRACIÓN'''&lt;br /&gt;
&lt;br /&gt;
Para la simulación de grupos de captura y conseguir que todos los terminales vean el ANI del llamante:&lt;br /&gt;
&lt;br /&gt;
- Hacen falta teléfonos con dos líneas&lt;br /&gt;
&lt;br /&gt;
- Cada teléfono del grupo tiene en la línea 1 su extensión habitual (por ejemplo 40000)&lt;br /&gt;
&lt;br /&gt;
- Además, en el fichero &amp;quot;sip_Estatico.conf&amp;quot;, creamos una segunda extensión para cada teléfono, que le ocupará la segunda línea (por ejemplo 42000)&lt;br /&gt;
&lt;br /&gt;
- En esta segunda linea ponemos que cuando se llame tenga otro tono de llamada (un beep o nada...) que se asemeje en funcionamiento al de un mensaje de llamada en otra extension de mi grupo de captura&lt;br /&gt;
&lt;br /&gt;
- Se ha creado una variable global por cada teléfono en el fichero de variables &amp;quot;ext_MDtel_Particular.conf&amp;quot; de nombre EXTxxxxx (por ejemplo EXT40000); esa variable contiene las otras extensiones virtuales del grupo&lt;br /&gt;
por ejemplo EXT40000=&amp;gt;SIP/42001&amp;amp;SIP/42005&lt;br /&gt;
&lt;br /&gt;
- Hemos creado en el dialplan programación para que cuando exista esa variable global se añada a la marcación el contenido&lt;br /&gt;
&lt;br /&gt;
== Como crear supletorios ==&lt;br /&gt;
&lt;br /&gt;
'''ATENCIÓN: SE CREAN CONFIGURACIONES NO REFLEJADAS EN PORTAL DE ADMINISTRACIÓN'''&lt;br /&gt;
&lt;br /&gt;
Igual que el caso anterior pero en la variable ponemos números reales. Debido a un bug en el enrutador, que no devuelve la variable R_PARA, en el fichero ext_MARCAR_Extension.conf hay que sustituir la siguiente linea:&lt;br /&gt;
 &lt;br /&gt;
 ;same =&amp;gt;                   n,ExecIf($[&amp;quot;${EXT${R_PARA}}&amp;quot;=&amp;quot;&amp;quot;]?NoOp:Set(ENR_CADMARCAR=${ENR_CADMARCAR}&amp;amp;${EXT${R_PARA}}))&lt;br /&gt;
Por esta otra:&lt;br /&gt;
  same =&amp;gt;                   n,ExecIf($[&amp;quot;${EXT${R_DEST_${ENR_RUTA_CAD}}}&amp;quot;=&amp;quot;&amp;quot;]?NoOp:Set(ENR_CADMARCAR=${ENR_CADMARCAR}&amp;amp;${EXT${R_DEST_${ENR_RUTA_CAD}}}))&lt;br /&gt;
ATENCIÓN !!! en las llamadas salientes cada uno presenta su número&lt;br /&gt;
&lt;br /&gt;
Para emplear números externos en los supletorios hay que poner, al crear la variable que hemos explicado en el apartado anterior en el ext_MDtel_Particular.conf: &lt;br /&gt;
&lt;br /&gt;
 EXT335=&amp;gt;SIP/0999999999@Trunk_Movil ;En este caso suena en la ext 335 y en el móvil 999999999&lt;br /&gt;
&lt;br /&gt;
== Generación de llamada automática ==&lt;br /&gt;
&lt;br /&gt;
Para activar la funcionalidad es necesario lo siguiente: &lt;br /&gt;
&lt;br /&gt;
* Definir una variable ID_LISTA_LLAMAME con el ID de la lista que se va a usar para generar la llamada. Cuando se cree la lista hay que asegurarse que el campo &amp;quot;Nº segundos límite&amp;quot; tiene un valor lo suficientemente amplio para evitar que la llamada caduque antes de ejecutarse.&lt;br /&gt;
&lt;br /&gt;
* Establecer un timeout para la cola (en el Gosub Cen_Sub_GrupoACD se indica justo después de ${COLA})&lt;br /&gt;
&lt;br /&gt;
* Llamar a la función de MySQL ACD_FUNC_LLAMAME_CREAR a través de MDintz&lt;br /&gt;
&lt;br /&gt;
* En la función se usan los siguientes elementos variables:&lt;br /&gt;
&lt;br /&gt;
        ${ID_LISTA_LLAMAME}: Definida antes clienteTOCola: &lt;br /&gt;
        Nombre del cliente. Al no tener ningún nombre, se usa un denominador genérico&lt;br /&gt;
        ${CALLERID}: Número llamante, donde se dirigirá la llamada.&lt;br /&gt;
&lt;br /&gt;
Ejemplo:&lt;br /&gt;
&lt;br /&gt;
 [Cen_VDN_99001]&lt;br /&gt;
 ;----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 ;----------------------- VDN 99001 ------------------------------------------------------------&lt;br /&gt;
 ;----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 exten =&amp;gt; _X.,1,NoOp(MDENTGW_99001*****EXTEN=${EXTEN}**CID=${CALLERID(NUM)}**UCID=${UCID}*)&lt;br /&gt;
  same =&amp;gt;     n,Set(__COLA=89001)&lt;br /&gt;
  same =&amp;gt;     n,Set(ctiDiriTrato=0)&lt;br /&gt;
  same =&amp;gt;     n,Set(ctiDiriInterface=)&lt;br /&gt;
  same =&amp;gt;     n,Set(ID_LISTA_LLAMAME=2)&lt;br /&gt;
  same =&amp;gt;     n(cola),Gosub(Cen_Sub_GrupoACD,${EXTEN},1(${COLA},10,,Si,))&lt;br /&gt;
  same =&amp;gt;     n,GotoIf($[&amp;quot;${QUEUESTATUS}&amp;quot;!=&amp;quot;TIMEOUT&amp;quot;]?colgar)&lt;br /&gt;
  same =&amp;gt;     n,MDintz(nimitz|bd|sqlDato|select ACD_FUNC_LLAMAME_CREAR(CURRENT_TIMESTAMP\,${ID_LISTA_LLAMAME}\,&amp;quot;&amp;quot;\,&amp;quot;clienteTOCola&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,1\,&amp;quot;&amp;quot;\,&amp;quot;${CALLERID(NUM)}&amp;quot;\,1\,3\,1\,&amp;quot;&amp;quot;\,0\,0\,0\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;))&lt;br /&gt;
  same =&amp;gt;     n,GotoIf($[&amp;quot;${MDintzRes}&amp;quot;=&amp;quot;OK&amp;quot;]?colgar)&lt;br /&gt;
  same =&amp;gt;     n,NoOp(ACD_FUNC_LLAMAME_CREAR ${MDintzRes})&lt;br /&gt;
  same =&amp;gt;     n(colgar),Hangup&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cancelación de eco en la plataforma ==&lt;br /&gt;
&lt;br /&gt;
Comprobar que el chan_dahdi.conf este configurado los parametros: &lt;br /&gt;
 echocancel=yes&lt;br /&gt;
 echocancelwhenbridged=yes&lt;br /&gt;
 Jugar con los valores txgain y rxgain &lt;br /&gt;
&lt;br /&gt;
Si esto no es suficiente el siguiente paso sería emplear una canceladora de echo por hardware.&lt;br /&gt;
&lt;br /&gt;
== Como &amp;quot;dar paso&amp;quot; a través de un enlace exterior si hay una llamada para una extensión creada en el sistema pero no registrada ==&lt;br /&gt;
&lt;br /&gt;
Este procedimiento es de utilidad en procesos de migración, en los que recibimos las llamadas de la RTC, nos las quedamos si la extensión ya está registrada en VIVAit y la mandamos hacia la plataforma a migrar si aún sigue migrada ahí&lt;br /&gt;
&lt;br /&gt;
El procedimiento es:&lt;br /&gt;
* Activar desvío por no contesta en la extensión (portal de administración - VIVAit Call - Dispositivos - Extensiones - campo &amp;quot;Desvio no contesta&amp;quot;, indicando como destino un prefijo (por ejemplo &amp;quot;99&amp;quot;) seguido de la extensión destino&lt;br /&gt;
&lt;br /&gt;
* Creamos una preruta en vivait-call - rutas -prerutas con origen &amp;quot;99&amp;quot;, le quitamos el prefijo en campo &amp;quot;Destino saliente 1&amp;quot; (valor -2) e indicamos en campo &amp;quot;Tipo destino sal. 1&amp;quot; como &amp;quot;Ruta externa&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Debera existir una ruta externa para esa numeración&lt;br /&gt;
&lt;br /&gt;
== Comprobación de versiones de elementos de la plataforma ==&lt;br /&gt;
&lt;br /&gt;
'''Aplicaciones'''&lt;br /&gt;
:* Botón derecho del ratón, Acerca De&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Portales'''&lt;br /&gt;
:* En el Vivait-Call, en la pantalla de inicio de sesión pone el número de versión del portal.&lt;br /&gt;
:* Tanto en el Monitor como en el Tracker no se puede saber.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Demonios'''&lt;br /&gt;
:* Mediante el comando nc localhost &amp;lt;Puerto demonio&amp;gt;. Ejemplo:&lt;br /&gt;
::nc localhost 1120&lt;br /&gt;
::motorSal sis ver='03.02.00' inic='20150427 123457' alarmas=0 ultAlar='00000000000000'&lt;br /&gt;
::motorSal gmp msj=253/256 buf=256/256 tarea=99/102&lt;br /&gt;
::motorSal tmp uptime=12624 (0d 3h 30m 24s)&lt;br /&gt;
::motorSal mtr mys=1 ocup=0% planif=13(0) intento=11(0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::Ejemplos puertos demonios:&lt;br /&gt;
:::*1111: vivait-cti&lt;br /&gt;
:::*1112: myAcdSuperv&lt;br /&gt;
:::*1113: recordNodo&lt;br /&gt;
:::*1114: recordCentral&lt;br /&gt;
:::*1115: intz-nimitz&lt;br /&gt;
:::*1120: motorSal&lt;br /&gt;
:::*1123: phoneprov-tftp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Base de datos'''&lt;br /&gt;
:* No se puede saber la versión a no ser que se comparen esquemáticos con los subidos en el redmine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:administrador]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:VIVAit Suite]]&lt;br /&gt;
[[Category:VIVAit Fax]]&lt;br /&gt;
&lt;br /&gt;
== Añadir Auto-Answer a la cabecera SIP ==&lt;br /&gt;
&lt;br /&gt;
Si queremos que un teléfono tenga autoanswer:&lt;br /&gt;
* En el peer poner: headeraa=Call-Info: answer-after=0, esto tiene que ir en la plantilla de la extensión o como campo en la extensión. Dependiendo del terminal que utilicemos el valor de este campo variará:&lt;br /&gt;
&lt;br /&gt;
    Aastra: Alert-Info: info=alert-autoanswer&lt;br /&gt;
    Grandstream: Call-Info: answer-after=0&lt;br /&gt;
    Linksys: Call-Info:\;Answer-After=0&lt;br /&gt;
    Polycom: Alert-Info: Ring Answer&lt;br /&gt;
    Snom: Call-Info: answer-after=0&lt;br /&gt;
    Snom (nuevo firmware): Call-Info: &amp;lt;sip:IP&amp;gt;\;answer-after=0&lt;br /&gt;
    Yealink: Call-Info: answer-after=0&lt;br /&gt;
&lt;br /&gt;
* Luego en el diaplan añadir lo siguiente: exten =&amp;gt; _[*#%0-9a-zA-Z].,n,set(__AutoAnswer=AA) (Esto tendremos que ver como ponerlo de manera automática). De manera provisional si queremos que sea para llamadas salientes pondremos esto en el ext_n_marcador.conf. Si queremos que sea llamadas entrantes lo pondremos en ext_n_MARCAR.conf&lt;br /&gt;
&lt;br /&gt;
== Configuración de los portales web en HTTPS ==&lt;br /&gt;
&lt;br /&gt;
Desde /usr/lib/jvm/default-java/bin/ ejecutamos:&lt;br /&gt;
&lt;br /&gt;
keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/share/tomcat7/.keystore&lt;br /&gt;
&lt;br /&gt;
Escriba la contraseña del almacén de claves: (t0mc4t)&lt;br /&gt;
 Volver a escribir la contraseña nueva: (t0mc4t)&lt;br /&gt;
 *Personalizar para el cliente&lt;br /&gt;
 ¿Cuáles son su nombre y su apellido?&lt;br /&gt;
 [Unknown]: VIVAit Suite&lt;br /&gt;
 ¿Cuál es el nombre de su unidad de organización?&lt;br /&gt;
 [Unknown]: Desarrollo&lt;br /&gt;
 ¿Cuál es el nombre de su organización?&lt;br /&gt;
 [Unknown]: MDtel&lt;br /&gt;
 ¿Cuál es el nombre de su ciudad o localidad?&lt;br /&gt;
 [Unknown]: Madrid&lt;br /&gt;
 ¿Cuál es el nombre de su estado o provincia?&lt;br /&gt;
 [Unknown]: Madrid&lt;br /&gt;
 ¿Cuál es el código de país de dos letras de la unidad?&lt;br /&gt;
 [Unknown]: es&lt;br /&gt;
 ¿Es correcto CN=VIVAit Suite, OU=Desarrollo, O=MDtel, L=es, ST=Madrid,&lt;br /&gt;
 C=Unknown?&lt;br /&gt;
 [no]: si&lt;br /&gt;
 Escriba la contraseña clave para &amp;lt;tomcat&amp;gt;&lt;br /&gt;
 (INTRO si es la misma contraseña que la del almacén de claves)&lt;br /&gt;
&lt;br /&gt;
nano /var/lib/tomcat7/conf/server.xml&lt;br /&gt;
&lt;br /&gt;
Descomentar la línea:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; protocol=&amp;quot;HTTP/1.1&amp;quot; SSLEnabled=&amp;quot;true&amp;quot; &lt;br /&gt;
&lt;br /&gt;
 maxThreads=&amp;quot;150&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Añadir después de sslProtocol=&amp;quot;TLS&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 keystorePass=&amp;quot;t0mc4t&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Crear un motivo desconexión para el Supervisor en '''''VIVA'''''it Suite==&lt;br /&gt;
&lt;br /&gt;
Para crear motivos de desconexión adicionales a los que ya ofrece la aplicación tendremos que añadir una nueva entrada en la BD. El comando que emplearíamos seria el siguiente:&lt;br /&gt;
&lt;br /&gt;
INSERT INTO `nimitz`.`COM_ENUMERADOS` (`ID`, `C_NOMBRE`, `C_TEXTO`, `N_POSICION`, `C_OBSERV`) VALUES(1000700, 'TSesAgMotDesc', 'Nombre Motivo de desconexión', 60, ' ');&lt;br /&gt;
&lt;br /&gt;
El ID debe ser mayor o igual a 1000700 y menor a 1000800. El N_POSICION debe ser mayor o igual a 60 y menor que 100.&lt;br /&gt;
&lt;br /&gt;
== Envío de variables CTI al ACD ante un GW con asterisk 13==&lt;br /&gt;
Dado que para un GW con asterisk 13 un nodo ACD es considerado un elemento externo, por defecto, no se envían variables CTI (UCID, ...). En una fututa versión del nodo ACD, ya no se considerará un elemento externo por lo que si se enviarán dichas variables. Para lograrlo en la versión 3.0 de la plataforma Vivait hay que modificar el fichero ext_MARCAR_Externo_Particular.conf del GW. Deberemos poner la siguiente linea.&lt;br /&gt;
&lt;br /&gt;
 same =&amp;gt; n,Macro(escribirDatosCti)&lt;br /&gt;
&lt;br /&gt;
== Script para cambio automático de claves en salas de conferencia estáticas ==&lt;br /&gt;
&lt;br /&gt;
Para cambiar la clave de las salas de conferencias crear un script llamado cambioClaveConfe.sh con el siguiente contenido:&lt;br /&gt;
	&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 CLAVE=$(shuf -i 1111-9999 -n 1)&lt;br /&gt;
 &lt;br /&gt;
 echo $CLAVE&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;update CEN_SALAS_CONFERENCIAS set C_PIN='$CLAVE' WHERE C_NOMBRE='$1'&amp;quot; | mysql -u nimitz -pivivanimitz nimitz&lt;br /&gt;
 &lt;br /&gt;
 FROM=sat@mdtel.es&lt;br /&gt;
 FECHA=`date +&amp;quot;%Y%m%d%H%M%S&amp;quot;`&lt;br /&gt;
 CLIENTE=&amp;lt;PONER EL CLIENTE&amp;gt;&lt;br /&gt;
 TO=&amp;lt;DESTINATARIOS&amp;gt;&lt;br /&gt;
 ASUNTO=&amp;quot;Nueva clave en sala $1&amp;quot;&lt;br /&gt;
 CUERPO=&amp;quot;La nueva clave para la sala $1 es: $CLAVE&amp;quot;&lt;br /&gt;
 /usr/sbin/sendmail -oi -t -v -f $FROM &amp;lt;&amp;lt;EOF&lt;br /&gt;
 From: $FROM&lt;br /&gt;
 To: $TO&lt;br /&gt;
 Bcc: $BCC&lt;br /&gt;
 Subject: $ASUNTO&lt;br /&gt;
 &lt;br /&gt;
 $CUERPO&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
El script cambiará la clave de la sala pasada por parámetro por una aleatoria de 4 dígitos y la enviará por correo a los &amp;lt;DESTINATARIOS&amp;gt; (direcciones de correo electrónico separadas por coma).&lt;br /&gt;
&lt;br /&gt;
Hay que crear una tarea en /etc/crontab añadiendo una linea como la siguiente:&lt;br /&gt;
 30 6	* * 7	root	cambioClaveConfe.sh 6173&lt;br /&gt;
&lt;br /&gt;
Esto ejecutará el script todos los domingos a las 6:30 horas cambiando la clave de la sala 6173. Añadir tantas linéas como salas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Monitorización en Zabbix de un trunk caído ==&lt;br /&gt;
Para monitorizar un o varios trunk por separado y saber el estado de cada uno es necesario lo siguiente: &lt;br /&gt;
&lt;br /&gt;
*Añadir el UserParameter adjunto que contiene el siguiente texto:&lt;br /&gt;
&lt;br /&gt;
 UserParameter=asterisk.trunkEstado[*],sudo /usr/sbin/asterisk -rx 'sip show peers' | grep  --text -i '$1' |  grep OK &amp;gt;/dev/null; if [ $? -eq 0 ]; then echo 1; else echo 0; fi&lt;br /&gt;
&lt;br /&gt;
*Añadir en el portal de zabbix un item por cada trunk. En el campo Key se pondrá &amp;quot;asterisk.trunkEstado[nombre_trunk]&amp;quot;, donde nombre_trunk es el nombre del trunk tal y como se ve en Asterisk.&lt;br /&gt;
[[File:zabbix_item_trunkEstado.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Crear un trigger que avise cuando el último valor sea 0. Por ejemplo:&lt;br /&gt;
 {corp-bdtr:asterisk.trunkEstado[PrePro-ACD].last()}=0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:zabbix_trigger_trunkEstado.png]]&lt;br /&gt;
&lt;br /&gt;
== Agendas en terminales Yealink ==&lt;br /&gt;
En la agenda se mostrará como nombre lo que contenga el campo CEN_AGENDAS.C_NOMBRE_MOSTRAR y como teléfono el indicado en CEN_AGENDAS_TELEFONOS.C_TELEFONO&lt;br /&gt;
Para hacer funcionar la agenda:&lt;br /&gt;
&lt;br /&gt;
*En el archivo de aprovisionamiento correspondiente (Yealink-XXXX-comun.cfg) establecer los siguientes parámetros:&lt;br /&gt;
&lt;br /&gt;
    remote_phonebook.data.1.url = http://&amp;lt;direc IP&amp;gt;/vivait-agenda/yealink/contactData1.xml &lt;br /&gt;
    remote_phonebook.data.1.name = NOMBRE DE LA AGENDA EN EL TELEFONO&lt;br /&gt;
&lt;br /&gt;
*En el archivo /etc/apache2/apache2.conf añadir tras el último Directory:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Directory /var/www/html/vivait-agenda/&amp;gt;&lt;br /&gt;
             AddType application/x-httpd-php .xml&lt;br /&gt;
             Options Indexes FollowSymLinks MultiViews&lt;br /&gt;
             AllowOverride None&lt;br /&gt;
             Order allow,deny&lt;br /&gt;
             allow from all&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Ejecutar el comando:&lt;br /&gt;
&lt;br /&gt;
    /etc/init.d/apache2 reload&lt;br /&gt;
&lt;br /&gt;
== Calendarios ==&lt;br /&gt;
&lt;br /&gt;
=== Enrutamiento inteligente ===&lt;br /&gt;
&lt;br /&gt;
Ante una llamada a un destino, si hay cita de ocupado en el calendario se desvia al número indicado en el campo &amp;quot;location&amp;quot; del calendario o a su buzon de voz si hay valor en dicho campo&lt;br /&gt;
&lt;br /&gt;
 same =&amp;gt; n,Set(CalendarBusy=${CALENDAR_BUSY(GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,Set(id=${CALENDAR_QUERY(GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,NoOP(hay ${CALENDAR_QUERY_RESULT(${id},getnum)} eventos)&lt;br /&gt;
 same =&amp;gt; n,Verbose(3,The state of GoogleCalendar is $&lt;br /&gt;
 {DEVICE_STATE(Calendar:GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,Set(CalendarLocation=${CALENDAR_QUERY_RESULT(GoogleCalendar,location)})&lt;br /&gt;
 same =&amp;gt; n,GotoIf($[&amp;quot;${CalendarBusy}&amp;quot;==&amp;quot;1&amp;quot;]?:conCategoria)&lt;br /&gt;
 same =&amp;gt; n,GotoIf($[&amp;quot;${CalendarLocation}&amp;quot;==&amp;quot;&amp;quot;]?buzon)&lt;br /&gt;
 same =&amp;gt; n,Goto(Cen_iniLlam,${CalendarLocation},1)&lt;br /&gt;
 same =&amp;gt; n(buzon),Playback(Particular/buzon)&lt;br /&gt;
 same =&amp;gt; n,Hangup&lt;br /&gt;
 same=&amp;gt; n(conCategoria),Goto(Cen_iniLlam,${EXTEN},1)&lt;br /&gt;
&lt;br /&gt;
=== Conexión de cliente Outlook a calendarios VIVAit mediante Caldav===&lt;br /&gt;
Por defecto, el cliente outlook no soporta Caldav; si queremos disponer de calendarios de VIVAit en Outlook tendríamos dos opciones:&lt;br /&gt;
# Tener los calendarios en el servidor Exchange&lt;br /&gt;
# Instalar un plugin en el cliente outlook que permita conectar vía Caldav los calendarios que estén ubicados en el servidor de calendarios de VIVAit&lt;br /&gt;
&lt;br /&gt;
Este howto se centra en esta segunda posibilidad&lt;br /&gt;
&lt;br /&gt;
Procedimiento: &lt;br /&gt;
&lt;br /&gt;
1.- Instalar Calldavsincronizer (valdrían otros plugin de Caldav para Outlook)&lt;br /&gt;
&lt;br /&gt;
[https://sourceforge.net/projects/outlookcaldavsynchronizer/ https://sourceforge.net/projects/outlookcaldavsynchronizer/]&lt;br /&gt;
&lt;br /&gt;
2.- Entrar en Synchronization Profiles en la nueva pestaña Calldav Syncronizer de outlook       [[File:Syncronizer.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.- Añadir nuevo perfil (tecla +)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Nuevo.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A tener en cuenta:&lt;br /&gt;
&lt;br /&gt;
*Crear un nuevo “Outlook folder”, entendemos que es adecuado (quizás necesario) para que las entradas de calendario de VIVAit queden diferenciadas.&lt;br /&gt;
*Lo mejor es haber creado antes el calendario en el servidor para que al darlo de alta en oulook comprobemos que se conecta.&lt;br /&gt;
*Dando al botón “Test or discover settings” se nos muestran todos los calendarios del servidor y elegimos el que queramos; en “elementos de la carpeta” diremos “elementos de calendario”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Calendario.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
== Uso de reloj hardware en nodos de procesamiento ==&lt;br /&gt;
&lt;br /&gt;
=== En nodo de procesamiento ACD ===&lt;br /&gt;
En un nodo de procesamiento ACD es obligatorio instalar dahdi y una tarjeta de primario para emplear reloj hardware, ya que el reloj software que va en el asterisk 1.4 es defectuoso.&lt;br /&gt;
Para configurarlo basta con instalar la tarjeta en el servidor, instalar dahdi y posteriormente ejecutar el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
 dahdi_cfg&lt;br /&gt;
&lt;br /&gt;
Este comando generaŕa el fichero /etc/dahdi/system.conf&lt;br /&gt;
&lt;br /&gt;
Para comprobar que el comando se ha ejecutado satisfactoriamente lo abriremos y tendrá que tener un formato semejante al siguiente ejemplo:&lt;br /&gt;
&lt;br /&gt;
 # Autogenerated by /usr/sbin/dahdi_genconf on Tue Oct 22 17:42:59 2013&lt;br /&gt;
 # If you edit this file and execute /usr/sbin/dahdi_genconf again,&lt;br /&gt;
 # your manual changes will be LOST.&lt;br /&gt;
 # Dahdi Configuration File&lt;br /&gt;
 #&lt;br /&gt;
 # This file is parsed by the Dahdi Configurator, dahdi_cfg&lt;br /&gt;
 #&lt;br /&gt;
 # Span 1: WCT1/0 &amp;quot;Digium Wildcard TE110P T1/E1 Card 0&amp;quot; HDB3/CCS/CRC4&lt;br /&gt;
 span=1,1,0,ccs,hdb3,crc4&lt;br /&gt;
 # termtype: te&lt;br /&gt;
 bchan=1-15,17-31&lt;br /&gt;
 dchan=16&lt;br /&gt;
 echocanceller=oslec,1-15,17-31&lt;br /&gt;
 # Global data&lt;br /&gt;
 loadzone        = es&lt;br /&gt;
 defaultzone     = es&lt;br /&gt;
&lt;br /&gt;
=== En nodo de procesamiento de corporativa ===&lt;br /&gt;
En un nodo de procesamiento de corporativa no obligatorio instalar dahdi y una tarjeta de primario para emplear reloj hardware, ya que el no se han detectado errores en el reloj por software. Sin embargo si instalamos dahdi y una tarjeta de primario para emplear reloj hardware, el sistema funcionará mejor.&lt;br /&gt;
Para configurarlo basta con instalar la tarjeta en el servidor, instalar dahdi y posteriormente ejecutar el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
 dahdi_cfg&lt;br /&gt;
&lt;br /&gt;
Este comando generaŕa el fichero /etc/dahdi/system.conf&lt;br /&gt;
&lt;br /&gt;
Para comprobar que el comando se ha ejecutado satisfactoriamente lo abriremos y tendrá que tener un formato semejante al siguiente ejemplo:&lt;br /&gt;
&lt;br /&gt;
 # Autogenerated by /usr/sbin/dahdi_genconf on Tue Oct 22 17:42:59 2013&lt;br /&gt;
 # If you edit this file and execute /usr/sbin/dahdi_genconf again,&lt;br /&gt;
 # your manual changes will be LOST.&lt;br /&gt;
 # Dahdi Configuration File&lt;br /&gt;
 #&lt;br /&gt;
 # This file is parsed by the Dahdi Configurator, dahdi_cfg&lt;br /&gt;
 #&lt;br /&gt;
 # Span 1: WCT1/0 &amp;quot;Digium Wildcard TE110P T1/E1 Card 0&amp;quot; HDB3/CCS/CRC4&lt;br /&gt;
 span=1,1,0,ccs,hdb3,crc4&lt;br /&gt;
 # termtype: te&lt;br /&gt;
 bchan=1-15,17-31&lt;br /&gt;
 dchan=16&lt;br /&gt;
 echocanceller=oslec,1-15,17-31&lt;br /&gt;
 # Global data&lt;br /&gt;
 loadzone        = es&lt;br /&gt;
 defaultzone     = es&lt;br /&gt;
&lt;br /&gt;
== Aprovisionamiento terminales Cisco ==&lt;br /&gt;
=== Configurar protocolo SIP TCP o UDP en terminal Cisco ===&lt;br /&gt;
&lt;br /&gt;
Configuración de terminal Cisco para para funcionar bajo TCP o UDP:&lt;br /&gt;
Modificar parámetro&lt;br /&gt;
 &amp;lt;transportLayerProtocol&amp;gt;X&amp;lt;/transportLayerProtocol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde X es:&lt;br /&gt;
    1: TCP&lt;br /&gt;
    2: UDP&lt;br /&gt;
    4: Valor por defecto del firmware (al menos en la última versión equivale a TCP)&lt;br /&gt;
&lt;br /&gt;
=== Habilitar/Deshabilitar llamada en espera en terminales Cisco ===&lt;br /&gt;
&lt;br /&gt;
En el fichero de aprovisionamiento del terminal añadiremos la siguiente linea&lt;br /&gt;
 &amp;lt;callWaiting&amp;gt;X&amp;lt;/callWaiting&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde X es:&lt;br /&gt;
   0=off but can be changed through the settings menu.&lt;br /&gt;
   1=on but can be changed through the settings menu.&lt;br /&gt;
   2=off and locked so it can't be changed through the settings menu.&lt;br /&gt;
   3=on and locked so it can't be changed through the settings menu.&lt;br /&gt;
&lt;br /&gt;
== Como configurar servicio DHCP en Ubuntu Linux ==&lt;br /&gt;
=== ¿Que es un servicio DHCP? ===&lt;br /&gt;
Un servidor Dynamic Host Configuration Protocol (DHCP) asigna dinámicamente las direcciones IP y otras configuraciones de red a otros terminales que están conectados a la red.&lt;br /&gt;
&lt;br /&gt;
=== Instalar un servicio DHCP ===&lt;br /&gt;
Para instalar el servidor de asignacion automatica de direccion IP ejecutamos el comando:&lt;br /&gt;
 sudo apt-get install isc-dhcp-server&lt;br /&gt;
&lt;br /&gt;
=== Configurando el servicio DHCP ===&lt;br /&gt;
Editamos el archivo /etc/dhcp/dhcpd.conf creando primero un backup del mismo:&lt;br /&gt;
 mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.original&lt;br /&gt;
 nano /etc/dhcp/dhcpd.conf&lt;br /&gt;
&lt;br /&gt;
El archivo debe quedar de una forma muy similar a esta:&lt;br /&gt;
 authoritative&lt;br /&gt;
 subnet  10.254.239.0 netmask 255.255.255.254&lt;br /&gt;
 {&lt;br /&gt;
 range dynamic-bootp  10.254.239.40 10.254.239.60;&lt;br /&gt;
 option domain-name-servers ns1.example.org, ns2.example.org;&lt;br /&gt;
 option domain-name &amp;quot;example.org&amp;quot;;&lt;br /&gt;
 option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org ;&lt;br /&gt;
 option broadcast-address 10.254.239.255;&lt;br /&gt;
 default-lease-time 3600;&lt;br /&gt;
 max-lease-time 7200;&lt;br /&gt;
 option option-150 10.254.239.25&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Donde los campos:&lt;br /&gt;
*subnet: Direccion de red&lt;br /&gt;
*netmask: Máscara de red&lt;br /&gt;
*range dynamic-bootp: Rango de IPs que va a proporcionar el DHCP&lt;br /&gt;
*option domain-name-servers: Direcciones IPs de los DNS&lt;br /&gt;
*option domain-name: Nombre de dominio&lt;br /&gt;
*option routers:IPs de las puertas de enlace&lt;br /&gt;
*option broadcast-address: Dirección de broadcast&lt;br /&gt;
*default-lease-time: Tiempo de concesión por defecto&lt;br /&gt;
*max-lease-time: Valor máximo del tiempo de concesión&lt;br /&gt;
*option option-150: IPs de los servidores TFTPs que tiene la red&lt;br /&gt;
&lt;br /&gt;
===  Reiniciamos el servicio ===&lt;br /&gt;
 service isc-dhcp-server restart&lt;br /&gt;
&lt;br /&gt;
=== Direcciones IP estáticas basadas en la MAC ===&lt;br /&gt;
Pueden conocerse las MAC de las máquinas conectadas a la red ejecutando el comando arp desde la terminal.&lt;br /&gt;
&lt;br /&gt;
 host ejemplo {&lt;br /&gt;
        hardware ethernet 00:0B:82:19:A8:04;&lt;br /&gt;
        option option-150 10.254.239.0;&lt;br /&gt;
 #      fixed-address 10.254.239.52;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Protocolo Skinny en VIVAit Call mediante uso de Chan-SCCP ==&lt;br /&gt;
=== Instalación de chan_sccp ===&lt;br /&gt;
*Copiar el fichero chan-sccp-4.2.1.1.tar.gz en el directorio donde estén los fuentes de Asterisk (normalmente /usr/src/MDtel)&lt;br /&gt;
*Descomprimir&lt;br /&gt;
*Entrar al directorio chan-sccp-4.2.1.1&lt;br /&gt;
*Ejecutar: ./configure --with-asterisk=../DIRECTORIO_ASTERISK --enable-conference. Donde DIRECTORIO_ASTERISK es el nombre del directorio donde están los fuentes de asterisk.&lt;br /&gt;
*Tras el ejecutar el configure (si todo va bien al final se verá un resumen con el S.O, arquitectura, etc), ejecutar make y make install&lt;br /&gt;
*El nuevo módulo chan_sccp.so se generará dentro del DIRECTORIO_ASTERISK en lib/asterisk/modules/ y se deberá copiar en /usr/lib/asterisk/modules/&lt;br /&gt;
*Copiar el fichero sccp.conf a /etc/asterisk&lt;br /&gt;
*Entra a Asterisk y ejecutar: module load chan_sccp.so&lt;br /&gt;
*Si se ha cargado correctamente, desde dentro de Asterisk, si se teclea sccp show version deberá devolver: &amp;quot;Skinny Client Control Protocol (SCCP). Release: 4.3.0 4.3.0 - unknown (built by 'root' on '2016-06-01 10:42:32 UTC')&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Crear extensiones ===&lt;br /&gt;
*En el portal crear una nueva clase de dispositivo (Vivait-Call/Dispositivos/Clases de dispositivos), donde la clase sea extensión la subclase H323 (todavía no existe la subclase SCCP) y el formato SCCP/${DEST}&lt;br /&gt;
*Crear la nueva extensión, pero el dispositivo debe ser el creado en el campo anterior.&lt;br /&gt;
*Las extensiones creadas habrá que añadirlas al fichero sccp.conf así como los teléfonos que las usarán. En el fichero sccp.conf incluido hay ejemplos.&lt;br /&gt;
&lt;br /&gt;
=== Aprovisionamiento ===&lt;br /&gt;
Los terminales se aprovisionan de la misma manera que los SIP, exceptuando que las plantillas XML no tiene referencias a SIP. Se incluye un xml genérico con todas las opciones.&lt;br /&gt;
Dentro del directorio chan-sccp-4.2.1.1 hay un directorio conf con todos los archivos de configuración necesarios. Las versiones annotated contienen todas las opciones posibles comentadas.&lt;br /&gt;
&lt;br /&gt;
== Instalación y configuración Postfix en RedHat7 ==&lt;br /&gt;
&lt;br /&gt;
'''Postfix''' es un ''servidor de correo'' de software libre/código abierto, un programa informático para el enrutamiento y envío de correo electrónico.&lt;br /&gt;
&lt;br /&gt;
=== Instalación ===&lt;br /&gt;
 yum install postfix&lt;br /&gt;
&lt;br /&gt;
=== Configuración ===&lt;br /&gt;
Sobre la configuración de postfix por defecto (recién instalado):&lt;br /&gt;
Editar el fichero /etc/postfix/main.cf&lt;br /&gt;
 inet_protocols = ipv4&lt;br /&gt;
 relayhost = smtp.renfe.es&lt;br /&gt;
Revisar la configuración:&lt;br /&gt;
 postfix check&lt;br /&gt;
Configurar postfix como servicio (sólo en redhat y similares)&lt;br /&gt;
 chkconfig postfix on&lt;br /&gt;
Iniciar postfix:&lt;br /&gt;
 service postfix start&lt;br /&gt;
Instalar mailx para disponer de los comandos mail y sendmail:&lt;br /&gt;
 yum install mailx&lt;br /&gt;
Probar configuración:&lt;br /&gt;
 echo &amp;quot;Prueba de correo&amp;quot; | mail -vs &amp;quot;Prueba&amp;quot; correo@destino.soy&lt;br /&gt;
&lt;br /&gt;
== Como crear un TRIGGER en Zabbix ==&lt;br /&gt;
&lt;br /&gt;
'''1.''' Hay '''dos posibilidades''' dependiendo si el trigger es para un solo host o es para varios, los cuales tienen en común un template:&lt;br /&gt;
&lt;br /&gt;
:# Si es para ''un host'': Ir a '''Configuración/Hosts'''&lt;br /&gt;
:# Si es para ''un template'': Ir a '''Configuración/Templates'''&lt;br /&gt;
&lt;br /&gt;
'''2.''' En la fila correspondiente al host/template al que queramos añadirle el trigger, pulsar sobre la '''columna triggers.'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''3.''' En la ventana de triggers, pulsar sobre el botón '''Create trigger''', situado en la esquina superior derecha.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''4.''' Aparecerá la ventana de creación de triggers, que tiene los siguientes campos:&lt;br /&gt;
:1. '''Name:''' Nombre del trigger, que deberá ser lo ''suficientemente descriptivo''. Aparecerá cuando se&lt;br /&gt;
active, en la ventana principal de Zabbix así como en los correos de aviso.&lt;br /&gt;
:2. '''Expression:''' Define la fórmula cuyo resultado activará el trigger. Hay que pulsar el botón '''Add'''. Se mostrará una &lt;br /&gt;
nueva ventana donde habrá que elegir el item (medida) sobre el que se basará el trigger (evidentemente la medida deberá &lt;br /&gt;
existir previamente) y la función necesaria para el cálculo. Para una descripción de las disponibles dirigirse a &lt;br /&gt;
https://www.zabbix.com/documentation/2.2/manual/appendix/triggers/functions.&amp;lt;br/&amp;gt;&lt;br /&gt;
Tras rellenar los campos anteriores y dar a la función los valores que necesite pulsar el botón '''Insert.'''&lt;br /&gt;
:3. '''Expression constructor:''' Permite crear expresiones complejas, uniendo varias.&lt;br /&gt;
:4. '''Description:''' Una explicación del trigger&lt;br /&gt;
:5. '''Severity:''' Criticidad el trigger&lt;br /&gt;
:6. Para una descripción del resto de campos visitar la página: https://www.zabbix.com/documentation/2.2/manual/config/triggers/trigger&lt;br /&gt;
'''5.''' Tras rellenar los campos, pulsar el botón '''Save'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''6.''' Si el trigger se ha añadido en un template, aparecerá en todos los hosts que tienen el template configurado.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''7.''' '''El trigger por si solo no envía ningún aviso''', solo se activa si se cumple la expresión definida.&lt;br /&gt;
Para enviar un aviso (normalmente un correo electrónico) cuando se active el trigger, será necesario definir una acción (Configuración/Actions).&lt;br /&gt;
&lt;br /&gt;
 '''NOTA.-''' Para consultar cualquier cuestión relativa a Zabbix, se encuentra a su disposición el manual: &amp;lt;br/&amp;gt;&lt;br /&gt;
 https://www.zabbix.com/documentation/2.2/manual&lt;br /&gt;
&lt;br /&gt;
== Como mostrar callername queues FOP2 ==&lt;br /&gt;
&lt;br /&gt;
Es necesario añadir el siguiente código al contexto de entrada:&lt;br /&gt;
&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Connect connid localhost usuario clave bd)&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Query resultid ${connid} SELECT\ firstname\,lastname\ from\ fop2\ where\ phone1=${CALLERID(num)}\ OR\ phone2=${CALLERID(num)})&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Fetch fetchid ${resultid} nombre apellidos)&lt;br /&gt;
 exten =&amp;gt; _X.,n,GotoIf($[${fetchid} = 1]?:noExiste)&lt;br /&gt;
 exten =&amp;gt; _X.,n,Set(CALLERID(name)=${nombre}${apellidos})&lt;br /&gt;
 exten =&amp;gt; _X.,n(noExiste),Continuar&lt;br /&gt;
&lt;br /&gt;
En la primera línea cambiar según lo necesario:&lt;br /&gt;
&lt;br /&gt;
*localhost: Dirección IP del servidor de MySQL donde está la BBDD de FOP2&lt;br /&gt;
*usuario: Usuario con permisos de acceso a la bbdd de FOP2&lt;br /&gt;
*clave: Clave del usuario&lt;br /&gt;
*bd: Nombre de la BBDD&lt;br /&gt;
&lt;br /&gt;
== Como ver los directorios de un NAS a montar con NFS ==&lt;br /&gt;
&lt;br /&gt;
Con el siguiente comando vemos los diferentes volúmenes de un NAS:&lt;br /&gt;
&lt;br /&gt;
 showmount -e IP_NAS&lt;br /&gt;
&lt;br /&gt;
Ejemplo de salida:&lt;br /&gt;
&lt;br /&gt;
 Export list for 192.168.10.10:&lt;br /&gt;
 /Backup/backup       *&lt;br /&gt;
 /DISCOS_1/VOL1_AUDIO *&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Instalación de ActivaSTP con VIVAit Call 3 y marcación desde Outlook ==&lt;br /&gt;
&lt;br /&gt;
Instalamos ActivaSTP desde:&lt;br /&gt;
 &lt;br /&gt;
 (http://activa.sourceforge.net/)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- *SIPTAPI, según la pagina Web, su ultima versión publicada es del 2014 con versión 0.2.17 (http://activa.sourceforge.net/)&lt;br /&gt;
&lt;br /&gt;
Hemos probado con http://www.xtelsio.com/en/products/ast_tsp/tapi_for_asterisk.htm.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La configuración necesaria se muestra en la siguiente imagen:&lt;br /&gt;
&lt;br /&gt;
[[File:Ventana ActivaTSP.jpg]]&lt;br /&gt;
&lt;br /&gt;
 El usuario del manager debe tener permisos originate para poder realizar llamadas.&lt;br /&gt;
&lt;br /&gt;
Se han realizado pruebas con Outlook 2013.&lt;br /&gt;
&lt;br /&gt;
Se ha comprobado la correcta realización de pruebas utilizando ActivaSTP, realizadon llamadas desde la pestaña &amp;quot;personas&amp;quot; con la vista en modo tarjeta de Pesentación, tarjeta, teléfono o lista.&lt;br /&gt;
&lt;br /&gt;
Outlook 2013 no da la opción de llamar si la vista está en modo personas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Como volver a procesar grabaciones con error ==&lt;br /&gt;
&lt;br /&gt;
Las grabaciones con error son aquellas que tienen el valor E_GRABACION=120 en la tabla DAT_GRABACIONES.&lt;br /&gt;
&lt;br /&gt;
Las grabaciones con error se producen normalmente por la pérdida de conexión entre el nodo servidor de grabaciones y el resto.&lt;br /&gt;
&lt;br /&gt;
Para reprocesar la grabación hay que modificar el campo E_GRABACION de la tabla DAT_GRABACIONES y ponerlo con valor 20 para que así el recordCentral la vuelva a procesar.&lt;br /&gt;
&lt;br /&gt;
== FOP2. Problemas en transferencias asistidas ==&lt;br /&gt;
&lt;br /&gt;
 Para habilitar la transferencia atendida del asterisk (funcion atxfer), hay que poner la opción tT en el queue() si la llamada origen la realiza a una cola o &lt;br /&gt;
 al dial() de las extensiones.&lt;br /&gt;
 Con eso vemos como al intentar hacer la llamada de consulta ya se va a nuestro dialplan. Sin embargo la llamada no funciona ya que el enrutador nos da error de&lt;br /&gt;
 enrutamiento porque no tenemos ID_DISPOSITIVO origen ya que el fop no es un elemento creado desde el portal.&lt;br /&gt;
 Por lo que se propone como solución crear un contexto de inicio del fop y asignarle un ID_DISPOSITIVO para que así se enrute la llamada. El contexto tienen que&lt;br /&gt;
 ser similar a ext_InicioLlamada_Chrome.conf&lt;br /&gt;
&lt;br /&gt;
Para que funcione las transferencias supervisadas desde el fop2 hay que realizar lo siguiente:&lt;br /&gt;
&lt;br /&gt;
*El usuario del manager debe tener permisos Atxfer para poder realizar transferencias.&lt;br /&gt;
*Habilitar la transferencia atxfer en el fuatures.conf del asterisk. atxfer =&amp;gt; *2&lt;br /&gt;
*Crear el fichero ext_InicioLlamada_FOP.conf con el siguiente contenido:&lt;br /&gt;
&lt;br /&gt;
 [Cen_Inicio_FOP]&lt;br /&gt;
 exten =&amp;gt; [*#%0-9].,1,NoOp(MDINICHR**EXTEN=${EXTEN}**CID=${CHROME_ANI}*)&lt;br /&gt;
 same =&amp;gt; n,dumpchan()&lt;br /&gt;
 ;same =&amp;gt; n,Set(CALLERID=${CHROME_ANI})&lt;br /&gt;
 same =&amp;gt; n,Gosub(Cen_Sub_getIdExtension,s,1(${R_CID_NUM_00}))&lt;br /&gt;
 same =&amp;gt; n,ExecIf($[&amp;quot;${GOSUB_RETVAL}&amp;quot;!=&amp;quot;OK&amp;quot; | &amp;quot;${sqlDato}&amp;quot;=&amp;quot;&amp;quot;]?HangUp)&lt;br /&gt;
 same =&amp;gt; n,Set(ID_DISPOSITIVO=${sqlDato})&lt;br /&gt;
 ; . Modificar MARCAR en funcion de reglas de marcacion saliente (prefijo 0, ...)&lt;br /&gt;
 ; Esto se modificara en el contexto Cen_Inicio_Chrome_Particular&lt;br /&gt;
 same =&amp;gt; n,Set(MARCAR=${EXTEN})&lt;br /&gt;
 ;---------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ;--- Llamada a contexto particular&lt;br /&gt;
 ;---------------------------------&lt;br /&gt;
 ; Esta llamada es para hacer cosas especcificas del cliente (cambiar callerid...)&lt;br /&gt;
 ; La subrutina Cen_Inicio_Chrome_Particular esta en el archivo ext_InicioLlamada_Chrome_Particular.conf&lt;br /&gt;
 ; Si no existe el archivo copiar el archivo ext_InicioLlamada_Chrome_Particular.conf.ejemplo como ext_Inicio_Chrome_Particular.conf&lt;br /&gt;
 ; y realizar las modificaciones necesarias&lt;br /&gt;
 ; El fichero ext_InicioLlamada_Chrome_Particular.conf se carga automaticamente al ser creado con el include de ext_InicioLlamada.conf&lt;br /&gt;
 ; #include &amp;quot;ext_InicioLlamada*.conf&amp;quot;&lt;br /&gt;
 ;&lt;br /&gt;
 same =&amp;gt; n,GosubIf($[${DIALPLAN_EXISTS(Cen_Inicio_FOP_Particular,${EXTEN},1)}&amp;gt;0]?Cen_Inicio_FOP_Particular,${EXTEN},1)&lt;br /&gt;
 same =&amp;gt; n,Goto(Cen_Inicio_SIP,${MARCAR},1)&lt;br /&gt;
&lt;br /&gt;
*En el fichero /usr/local/fop2/buttons.cfg poner como contexto de las extensiones el creado anteriormente (Cen_Inicio_FOP)&lt;br /&gt;
*Modificar el fichero /usr/local/fop2/fop2.cfg:&lt;br /&gt;
&lt;br /&gt;
 blind_transfer = 0&lt;br /&gt;
 supervised_transfer = 1&lt;br /&gt;
&lt;br /&gt;
Para realizar la transferencia con consulta, hay que pulsar el supervised transfer del FOP2 y una vez se haya establecido la llamada, seleccionar la extensión que &amp;quot;sobra&amp;quot; en la conversación y pulsar la tecla de hangup y colgar la llamada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Problemas de conmutación en cluster ==&lt;br /&gt;
El problema detectado fue que en la conmutacion de maquinas en el cluster cuando el control lo tiene la maquina 2 no funciona el servicio phoneprov-tftp.&lt;br /&gt;
&lt;br /&gt;
Hay que hacer las siguientes comprobaciones:&lt;br /&gt;
&lt;br /&gt;
 Que el directorio /var/lib/phoneprov-tftp esté en la partición /HDcluster&lt;br /&gt;
 Que fichero /etc/MDtel/phoneprov-tftp esté puesta como IP de la máquina la IP flotante del cluster (campo $dbHost)&lt;br /&gt;
 Que el servicio phoneprov-tftp del directorio /usr/local/sbin/phoneprov-tftp.pl tenga permisos de ejecución 755&lt;br /&gt;
 Que exista el fichero /etc/init/phoneprov-tftp.conf&lt;br /&gt;
&lt;br /&gt;
Para más información ver los log del phoneprov en /var/log/phoneprov-tftp.log&lt;br /&gt;
&lt;br /&gt;
El problema era que no se encontraba instalado el paquete phoneprov-tftp, hay que instalarlo manualmente. Instalar el paquete libnet-tftpd-perl.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Como borrar contenido de la tabla BDTR con el script borraRegistrosNimitz.pl ==&lt;br /&gt;
&lt;br /&gt;
Este script se ejecuta mediante una tarea del crontab, tal como la siguiente:&lt;br /&gt;
&lt;br /&gt;
 SHELL=/bin/sh&lt;br /&gt;
 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin&lt;br /&gt;
 # m h dom mon dow user  command&lt;br /&gt;
 00 01     * * *   root    /usr/local/sbin/borraRegistrosNimitz.pl --hDB localhost&lt;br /&gt;
&lt;br /&gt;
Para establecer el número de días que vamos a dejar en la base de datos debemos editar el archivo borraRegistrosNimitz.pl, el campo my $numDias.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ocasionalmente No saltan los formularios en  '''VIVAit Suite''' cuando existen marcadores ==&lt;br /&gt;
En los sistemas con marcadores, se ha observado que, en un porcentaje muy bajo, cuando entra una llamada a un agente no se presenta el formulario. &lt;br /&gt;
En una traza del vivait-desk se pudo comprobar que no había eventos CTI de la llamada, pero telefónicamente la llamada si quedaba establecida.&lt;br /&gt;
&lt;br /&gt;
El problema viene ocasionado porque el CTI tiene auditorías para descartar llamadas,evitando que se queden enganchadas.&lt;br /&gt;
&lt;br /&gt;
Una de esas auditorías es el tiempo máximo de las llamadas no contestadas.&lt;br /&gt;
&lt;br /&gt;
El marcador tiene puesto a fuego que el tiempo que permanece una llamada en cola a la espera de un agente libre es de 10 minutos.&lt;br /&gt;
&lt;br /&gt;
Hay que poner el tiempo de auditoría en un valor superior (por ejemplo 12 minutos)&lt;br /&gt;
&lt;br /&gt;
En el archivo de configuración '''vivait-cti.conf'''&lt;br /&gt;
&lt;br /&gt;
 audit_call_minutNoContestada = 12&lt;br /&gt;
&lt;br /&gt;
El paŕametro audit_call_minutContestada, es el tiempo que el cti &amp;quot;conserva&amp;quot; una llamada, dado que el dialplan tiene puesto el timeout absolute a 7200 (120 minutos), deberiamos modificar este parámetro para que esté sincronizado&lt;br /&gt;
&lt;br /&gt;
 audit_call_minutContestada = 120&lt;br /&gt;
&lt;br /&gt;
Estos cambios se implementarán en el instalador de la próxima versión.&lt;br /&gt;
&lt;br /&gt;
== Generación de un Core ==&lt;br /&gt;
Un Core es la memoria de un programa.&lt;br /&gt;
&lt;br /&gt;
Para generar un Core rápido con Asterisk hay que hacer lo siguiente:&lt;br /&gt;
&lt;br /&gt;
    Ejecutar ps aux | grep asterisk y coger el PID del programa&lt;br /&gt;
    gdb /usr/sbin/asterisk [PID]&lt;br /&gt;
    gcore [file]&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Howto%27s&amp;diff=5998</id>
		<title>Howto's</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Howto%27s&amp;diff=5998"/>
		<updated>2017-07-26T07:02:41Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* Como borrar contenido de la tabla BDTR con el script borraRegistrosNimitz.pl */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!! VIVAit Call&lt;br /&gt;
VIVAit Suite&lt;br /&gt;
&lt;br /&gt;
VIVAit Fax&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Como parar asterisk ==&lt;br /&gt;
En situaciones límite en el que es necesario parar el asterisk y volver a arrancarlo hay que realizar los siguientes pasos:&lt;br /&gt;
&lt;br /&gt;
 Entrar en la consola de asterisk e introducir el comando core stop now&lt;br /&gt;
&lt;br /&gt;
 Si esto no funciona, tendremos que matar el proceso a mano. Esto es, primero el safe asterisk y luego el asterisk mediante el comando &lt;br /&gt;
 kill -9 nºPID&lt;br /&gt;
 &lt;br /&gt;
 Tras estos pasos, volveremos a arrancar el servicio asterisk mediante /etc/init.d/asterisk start&lt;br /&gt;
&lt;br /&gt;
== Como configurar la megafonía ==&lt;br /&gt;
&lt;br /&gt;
El servicio de megafonía se basa en el protocolo multicast.&lt;br /&gt;
&lt;br /&gt;
Para configurar la megafonía tenemos que activar en los teléfonos que para que estén &amp;quot;escuchando&amp;quot; en una dirección multicast y tener un emisor en esa dirección multicast.&lt;br /&gt;
&lt;br /&gt;
Los teléfonos suelen tener en su configuración un apartado para configurar el multicast. Por ejemplo en los yealink está en la pestaña directory sección multicast IP.&lt;br /&gt;
&lt;br /&gt;
En los teléfonos se puede configurar manualmente o incluirlo en las plantillas de aprovisionamiento.&lt;br /&gt;
&lt;br /&gt;
El asterisk tiene un canal para hacer multicast. Este canal es MulticastRTP.&lt;br /&gt;
&lt;br /&gt;
Para esto podemos crear un VDN que contenga la siguiente línea. (en el ejemplo la dirección multicast es 239.0.126.1 y el puerto es el 10001).&lt;br /&gt;
&lt;br /&gt;
 [Cen_VDN_90000]&lt;br /&gt;
 exten =&amp;gt; _X.,1,NoOp(MDVDN_90000*****EXTEN=${EXTEN}**CID=${CALLERID(NUM)}**UCID=${UCID}*)&lt;br /&gt;
  same =&amp;gt;     n,Answer&lt;br /&gt;
  same =&amp;gt;     n,Dial(MulticastRTP/basic/239.0.126.1:10001)&lt;br /&gt;
 include =&amp;gt; Cen_finLlamada&lt;br /&gt;
&lt;br /&gt;
== Como configurar el candado ==&lt;br /&gt;
El candado permite prohibir temporalmente la posibilidad de realizar llamadas hacia fuera. Sí se pueden seguir haciendo llamadas a extensiones fijas de la plataforma, es decir, llamadas sin coste.&lt;br /&gt;
&lt;br /&gt;
Para configurar dicha funcionalidad basta con crear extensiones con la categoría mas restrictiva posible y habilitar la movilidad, con lo que la extensión solo tendrá &amp;quot;permisos&amp;quot; para realizar llamadas internas.&lt;br /&gt;
&lt;br /&gt;
Para permitir llamadas externas solo hay que &amp;quot;mover&amp;quot; a un usuario con categoría suficiente a la extensión deseada.&lt;br /&gt;
== Como crear un grupo de captura y que se vea en cada teléfono el número que llama ==&lt;br /&gt;
&lt;br /&gt;
'''ATENCIÓN: SE CREAN CONFIGURACIONES NO REFLEJADAS EN PORTAL DE ADMINISTRACIÓN'''&lt;br /&gt;
&lt;br /&gt;
Para la simulación de grupos de captura y conseguir que todos los terminales vean el ANI del llamante:&lt;br /&gt;
&lt;br /&gt;
- Hacen falta teléfonos con dos líneas&lt;br /&gt;
&lt;br /&gt;
- Cada teléfono del grupo tiene en la línea 1 su extensión habitual (por ejemplo 40000)&lt;br /&gt;
&lt;br /&gt;
- Además, en el fichero &amp;quot;sip_Estatico.conf&amp;quot;, creamos una segunda extensión para cada teléfono, que le ocupará la segunda línea (por ejemplo 42000)&lt;br /&gt;
&lt;br /&gt;
- En esta segunda linea ponemos que cuando se llame tenga otro tono de llamada (un beep o nada...) que se asemeje en funcionamiento al de un mensaje de llamada en otra extension de mi grupo de captura&lt;br /&gt;
&lt;br /&gt;
- Se ha creado una variable global por cada teléfono en el fichero de variables &amp;quot;ext_MDtel_Particular.conf&amp;quot; de nombre EXTxxxxx (por ejemplo EXT40000); esa variable contiene las otras extensiones virtuales del grupo&lt;br /&gt;
por ejemplo EXT40000=&amp;gt;SIP/42001&amp;amp;SIP/42005&lt;br /&gt;
&lt;br /&gt;
- Hemos creado en el dialplan programación para que cuando exista esa variable global se añada a la marcación el contenido&lt;br /&gt;
&lt;br /&gt;
== Como crear supletorios ==&lt;br /&gt;
&lt;br /&gt;
'''ATENCIÓN: SE CREAN CONFIGURACIONES NO REFLEJADAS EN PORTAL DE ADMINISTRACIÓN'''&lt;br /&gt;
&lt;br /&gt;
Igual que el caso anterior pero en la variable ponemos números reales. Debido a un bug en el enrutador, que no devuelve la variable R_PARA, en el fichero ext_MARCAR_Extension.conf hay que sustituir la siguiente linea:&lt;br /&gt;
 &lt;br /&gt;
 ;same =&amp;gt;                   n,ExecIf($[&amp;quot;${EXT${R_PARA}}&amp;quot;=&amp;quot;&amp;quot;]?NoOp:Set(ENR_CADMARCAR=${ENR_CADMARCAR}&amp;amp;${EXT${R_PARA}}))&lt;br /&gt;
Por esta otra:&lt;br /&gt;
  same =&amp;gt;                   n,ExecIf($[&amp;quot;${EXT${R_DEST_${ENR_RUTA_CAD}}}&amp;quot;=&amp;quot;&amp;quot;]?NoOp:Set(ENR_CADMARCAR=${ENR_CADMARCAR}&amp;amp;${EXT${R_DEST_${ENR_RUTA_CAD}}}))&lt;br /&gt;
ATENCIÓN !!! en las llamadas salientes cada uno presenta su número&lt;br /&gt;
&lt;br /&gt;
Para emplear números externos en los supletorios hay que poner, al crear la variable que hemos explicado en el apartado anterior en el ext_MDtel_Particular.conf: &lt;br /&gt;
&lt;br /&gt;
 EXT335=&amp;gt;SIP/0999999999@Trunk_Movil ;En este caso suena en la ext 335 y en el móvil 999999999&lt;br /&gt;
&lt;br /&gt;
== Generación de llamada automática ==&lt;br /&gt;
&lt;br /&gt;
Para activar la funcionalidad es necesario lo siguiente: &lt;br /&gt;
&lt;br /&gt;
* Definir una variable ID_LISTA_LLAMAME con el ID de la lista que se va a usar para generar la llamada. Cuando se cree la lista hay que asegurarse que el campo &amp;quot;Nº segundos límite&amp;quot; tiene un valor lo suficientemente amplio para evitar que la llamada caduque antes de ejecutarse.&lt;br /&gt;
&lt;br /&gt;
* Establecer un timeout para la cola (en el Gosub Cen_Sub_GrupoACD se indica justo después de ${COLA})&lt;br /&gt;
&lt;br /&gt;
* Llamar a la función de MySQL ACD_FUNC_LLAMAME_CREAR a través de MDintz&lt;br /&gt;
&lt;br /&gt;
* En la función se usan los siguientes elementos variables:&lt;br /&gt;
&lt;br /&gt;
        ${ID_LISTA_LLAMAME}: Definida antes clienteTOCola: &lt;br /&gt;
        Nombre del cliente. Al no tener ningún nombre, se usa un denominador genérico&lt;br /&gt;
        ${CALLERID}: Número llamante, donde se dirigirá la llamada.&lt;br /&gt;
&lt;br /&gt;
Ejemplo:&lt;br /&gt;
&lt;br /&gt;
 [Cen_VDN_99001]&lt;br /&gt;
 ;----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 ;----------------------- VDN 99001 ------------------------------------------------------------&lt;br /&gt;
 ;----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 exten =&amp;gt; _X.,1,NoOp(MDENTGW_99001*****EXTEN=${EXTEN}**CID=${CALLERID(NUM)}**UCID=${UCID}*)&lt;br /&gt;
  same =&amp;gt;     n,Set(__COLA=89001)&lt;br /&gt;
  same =&amp;gt;     n,Set(ctiDiriTrato=0)&lt;br /&gt;
  same =&amp;gt;     n,Set(ctiDiriInterface=)&lt;br /&gt;
  same =&amp;gt;     n,Set(ID_LISTA_LLAMAME=2)&lt;br /&gt;
  same =&amp;gt;     n(cola),Gosub(Cen_Sub_GrupoACD,${EXTEN},1(${COLA},10,,Si,))&lt;br /&gt;
  same =&amp;gt;     n,GotoIf($[&amp;quot;${QUEUESTATUS}&amp;quot;!=&amp;quot;TIMEOUT&amp;quot;]?colgar)&lt;br /&gt;
  same =&amp;gt;     n,MDintz(nimitz|bd|sqlDato|select ACD_FUNC_LLAMAME_CREAR(CURRENT_TIMESTAMP\,${ID_LISTA_LLAMAME}\,&amp;quot;&amp;quot;\,&amp;quot;clienteTOCola&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,1\,&amp;quot;&amp;quot;\,&amp;quot;${CALLERID(NUM)}&amp;quot;\,1\,3\,1\,&amp;quot;&amp;quot;\,0\,0\,0\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;))&lt;br /&gt;
  same =&amp;gt;     n,GotoIf($[&amp;quot;${MDintzRes}&amp;quot;=&amp;quot;OK&amp;quot;]?colgar)&lt;br /&gt;
  same =&amp;gt;     n,NoOp(ACD_FUNC_LLAMAME_CREAR ${MDintzRes})&lt;br /&gt;
  same =&amp;gt;     n(colgar),Hangup&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cancelación de eco en la plataforma ==&lt;br /&gt;
&lt;br /&gt;
Comprobar que el chan_dahdi.conf este configurado los parametros: &lt;br /&gt;
 echocancel=yes&lt;br /&gt;
 echocancelwhenbridged=yes&lt;br /&gt;
 Jugar con los valores txgain y rxgain &lt;br /&gt;
&lt;br /&gt;
Si esto no es suficiente el siguiente paso sería emplear una canceladora de echo por hardware.&lt;br /&gt;
&lt;br /&gt;
== Como &amp;quot;dar paso&amp;quot; a través de un enlace exterior si hay una llamada para una extensión creada en el sistema pero no registrada ==&lt;br /&gt;
&lt;br /&gt;
Este procedimiento es de utilidad en procesos de migración, en los que recibimos las llamadas de la RTC, nos las quedamos si la extensión ya está registrada en VIVAit y la mandamos hacia la plataforma a migrar si aún sigue migrada ahí&lt;br /&gt;
&lt;br /&gt;
El procedimiento es:&lt;br /&gt;
* Activar desvío por no contesta en la extensión (portal de administración - VIVAit Call - Dispositivos - Extensiones - campo &amp;quot;Desvio no contesta&amp;quot;, indicando como destino un prefijo (por ejemplo &amp;quot;99&amp;quot;) seguido de la extensión destino&lt;br /&gt;
&lt;br /&gt;
* Creamos una preruta en vivait-call - rutas -prerutas con origen &amp;quot;99&amp;quot;, le quitamos el prefijo en campo &amp;quot;Destino saliente 1&amp;quot; (valor -2) e indicamos en campo &amp;quot;Tipo destino sal. 1&amp;quot; como &amp;quot;Ruta externa&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Debera existir una ruta externa para esa numeración&lt;br /&gt;
&lt;br /&gt;
== Comprobación de versiones de elementos de la plataforma ==&lt;br /&gt;
&lt;br /&gt;
'''Aplicaciones'''&lt;br /&gt;
:* Botón derecho del ratón, Acerca De&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Portales'''&lt;br /&gt;
:* En el Vivait-Call, en la pantalla de inicio de sesión pone el número de versión del portal.&lt;br /&gt;
:* Tanto en el Monitor como en el Tracker no se puede saber.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Demonios'''&lt;br /&gt;
:* Mediante el comando nc localhost &amp;lt;Puerto demonio&amp;gt;. Ejemplo:&lt;br /&gt;
::nc localhost 1120&lt;br /&gt;
::motorSal sis ver='03.02.00' inic='20150427 123457' alarmas=0 ultAlar='00000000000000'&lt;br /&gt;
::motorSal gmp msj=253/256 buf=256/256 tarea=99/102&lt;br /&gt;
::motorSal tmp uptime=12624 (0d 3h 30m 24s)&lt;br /&gt;
::motorSal mtr mys=1 ocup=0% planif=13(0) intento=11(0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::Ejemplos puertos demonios:&lt;br /&gt;
:::*1111: vivait-cti&lt;br /&gt;
:::*1112: myAcdSuperv&lt;br /&gt;
:::*1113: recordNodo&lt;br /&gt;
:::*1114: recordCentral&lt;br /&gt;
:::*1115: intz-nimitz&lt;br /&gt;
:::*1120: motorSal&lt;br /&gt;
:::*1123: phoneprov-tftp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Base de datos'''&lt;br /&gt;
:* No se puede saber la versión a no ser que se comparen esquemáticos con los subidos en el redmine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:administrador]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:VIVAit Suite]]&lt;br /&gt;
[[Category:VIVAit Fax]]&lt;br /&gt;
&lt;br /&gt;
== Añadir Auto-Answer a la cabecera SIP ==&lt;br /&gt;
&lt;br /&gt;
Si queremos que un teléfono tenga autoanswer:&lt;br /&gt;
* En el peer poner: headeraa=Call-Info: answer-after=0, esto tiene que ir en la plantilla de la extensión o como campo en la extensión. Dependiendo del terminal que utilicemos el valor de este campo variará:&lt;br /&gt;
&lt;br /&gt;
    Aastra: Alert-Info: info=alert-autoanswer&lt;br /&gt;
    Grandstream: Call-Info: answer-after=0&lt;br /&gt;
    Linksys: Call-Info:\;Answer-After=0&lt;br /&gt;
    Polycom: Alert-Info: Ring Answer&lt;br /&gt;
    Snom: Call-Info: answer-after=0&lt;br /&gt;
    Snom (nuevo firmware): Call-Info: &amp;lt;sip:IP&amp;gt;\;answer-after=0&lt;br /&gt;
    Yealink: Call-Info: answer-after=0&lt;br /&gt;
&lt;br /&gt;
* Luego en el diaplan añadir lo siguiente: exten =&amp;gt; _[*#%0-9a-zA-Z].,n,set(__AutoAnswer=AA) (Esto tendremos que ver como ponerlo de manera automática). De manera provisional si queremos que sea para llamadas salientes pondremos esto en el ext_n_marcador.conf. Si queremos que sea llamadas entrantes lo pondremos en ext_n_MARCAR.conf&lt;br /&gt;
&lt;br /&gt;
== Configuración de los portales web en HTTPS ==&lt;br /&gt;
&lt;br /&gt;
Desde /usr/lib/jvm/default-java/bin/ ejecutamos:&lt;br /&gt;
&lt;br /&gt;
keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/share/tomcat7/.keystore&lt;br /&gt;
&lt;br /&gt;
Escriba la contraseña del almacén de claves: (t0mc4t)&lt;br /&gt;
 Volver a escribir la contraseña nueva: (t0mc4t)&lt;br /&gt;
 *Personalizar para el cliente&lt;br /&gt;
 ¿Cuáles son su nombre y su apellido?&lt;br /&gt;
 [Unknown]: VIVAit Suite&lt;br /&gt;
 ¿Cuál es el nombre de su unidad de organización?&lt;br /&gt;
 [Unknown]: Desarrollo&lt;br /&gt;
 ¿Cuál es el nombre de su organización?&lt;br /&gt;
 [Unknown]: MDtel&lt;br /&gt;
 ¿Cuál es el nombre de su ciudad o localidad?&lt;br /&gt;
 [Unknown]: Madrid&lt;br /&gt;
 ¿Cuál es el nombre de su estado o provincia?&lt;br /&gt;
 [Unknown]: Madrid&lt;br /&gt;
 ¿Cuál es el código de país de dos letras de la unidad?&lt;br /&gt;
 [Unknown]: es&lt;br /&gt;
 ¿Es correcto CN=VIVAit Suite, OU=Desarrollo, O=MDtel, L=es, ST=Madrid,&lt;br /&gt;
 C=Unknown?&lt;br /&gt;
 [no]: si&lt;br /&gt;
 Escriba la contraseña clave para &amp;lt;tomcat&amp;gt;&lt;br /&gt;
 (INTRO si es la misma contraseña que la del almacén de claves)&lt;br /&gt;
&lt;br /&gt;
nano /var/lib/tomcat7/conf/server.xml&lt;br /&gt;
&lt;br /&gt;
Descomentar la línea:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; protocol=&amp;quot;HTTP/1.1&amp;quot; SSLEnabled=&amp;quot;true&amp;quot; &lt;br /&gt;
&lt;br /&gt;
 maxThreads=&amp;quot;150&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Añadir después de sslProtocol=&amp;quot;TLS&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 keystorePass=&amp;quot;t0mc4t&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Crear un motivo desconexión para el Supervisor en '''''VIVA'''''it Suite==&lt;br /&gt;
&lt;br /&gt;
Para crear motivos de desconexión adicionales a los que ya ofrece la aplicación tendremos que añadir una nueva entrada en la BD. El comando que emplearíamos seria el siguiente:&lt;br /&gt;
&lt;br /&gt;
INSERT INTO `nimitz`.`COM_ENUMERADOS` (`ID`, `C_NOMBRE`, `C_TEXTO`, `N_POSICION`, `C_OBSERV`) VALUES(1000700, 'TSesAgMotDesc', 'Nombre Motivo de desconexión', 60, ' ');&lt;br /&gt;
&lt;br /&gt;
El ID debe ser mayor o igual a 1000700 y menor a 1000800. El N_POSICION debe ser mayor o igual a 60 y menor que 100.&lt;br /&gt;
&lt;br /&gt;
== Envío de variables CTI al ACD ante un GW con asterisk 13==&lt;br /&gt;
Dado que para un GW con asterisk 13 un nodo ACD es considerado un elemento externo, por defecto, no se envían variables CTI (UCID, ...). En una fututa versión del nodo ACD, ya no se considerará un elemento externo por lo que si se enviarán dichas variables. Para lograrlo en la versión 3.0 de la plataforma Vivait hay que modificar el fichero ext_MARCAR_Externo_Particular.conf del GW. Deberemos poner la siguiente linea.&lt;br /&gt;
&lt;br /&gt;
 same =&amp;gt; n,Macro(escribirDatosCti)&lt;br /&gt;
&lt;br /&gt;
== Script para cambio automático de claves en salas de conferencia estáticas ==&lt;br /&gt;
&lt;br /&gt;
Para cambiar la clave de las salas de conferencias crear un script llamado cambioClaveConfe.sh con el siguiente contenido:&lt;br /&gt;
	&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 CLAVE=$(shuf -i 1111-9999 -n 1)&lt;br /&gt;
 &lt;br /&gt;
 echo $CLAVE&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;update CEN_SALAS_CONFERENCIAS set C_PIN='$CLAVE' WHERE C_NOMBRE='$1'&amp;quot; | mysql -u nimitz -pivivanimitz nimitz&lt;br /&gt;
 &lt;br /&gt;
 FROM=sat@mdtel.es&lt;br /&gt;
 FECHA=`date +&amp;quot;%Y%m%d%H%M%S&amp;quot;`&lt;br /&gt;
 CLIENTE=&amp;lt;PONER EL CLIENTE&amp;gt;&lt;br /&gt;
 TO=&amp;lt;DESTINATARIOS&amp;gt;&lt;br /&gt;
 ASUNTO=&amp;quot;Nueva clave en sala $1&amp;quot;&lt;br /&gt;
 CUERPO=&amp;quot;La nueva clave para la sala $1 es: $CLAVE&amp;quot;&lt;br /&gt;
 /usr/sbin/sendmail -oi -t -v -f $FROM &amp;lt;&amp;lt;EOF&lt;br /&gt;
 From: $FROM&lt;br /&gt;
 To: $TO&lt;br /&gt;
 Bcc: $BCC&lt;br /&gt;
 Subject: $ASUNTO&lt;br /&gt;
 &lt;br /&gt;
 $CUERPO&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
El script cambiará la clave de la sala pasada por parámetro por una aleatoria de 4 dígitos y la enviará por correo a los &amp;lt;DESTINATARIOS&amp;gt; (direcciones de correo electrónico separadas por coma).&lt;br /&gt;
&lt;br /&gt;
Hay que crear una tarea en /etc/crontab añadiendo una linea como la siguiente:&lt;br /&gt;
 30 6	* * 7	root	cambioClaveConfe.sh 6173&lt;br /&gt;
&lt;br /&gt;
Esto ejecutará el script todos los domingos a las 6:30 horas cambiando la clave de la sala 6173. Añadir tantas linéas como salas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Monitorización en Zabbix de un trunk caído ==&lt;br /&gt;
Para monitorizar un o varios trunk por separado y saber el estado de cada uno es necesario lo siguiente: &lt;br /&gt;
&lt;br /&gt;
*Añadir el UserParameter adjunto que contiene el siguiente texto:&lt;br /&gt;
&lt;br /&gt;
 UserParameter=asterisk.trunkEstado[*],sudo /usr/sbin/asterisk -rx 'sip show peers' | grep  --text -i '$1' |  grep OK &amp;gt;/dev/null; if [ $? -eq 0 ]; then echo 1; else echo 0; fi&lt;br /&gt;
&lt;br /&gt;
*Añadir en el portal de zabbix un item por cada trunk. En el campo Key se pondrá &amp;quot;asterisk.trunkEstado[nombre_trunk]&amp;quot;, donde nombre_trunk es el nombre del trunk tal y como se ve en Asterisk.&lt;br /&gt;
[[File:zabbix_item_trunkEstado.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Crear un trigger que avise cuando el último valor sea 0. Por ejemplo:&lt;br /&gt;
 {corp-bdtr:asterisk.trunkEstado[PrePro-ACD].last()}=0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:zabbix_trigger_trunkEstado.png]]&lt;br /&gt;
&lt;br /&gt;
== Agendas en terminales Yealink ==&lt;br /&gt;
En la agenda se mostrará como nombre lo que contenga el campo CEN_AGENDAS.C_NOMBRE_MOSTRAR y como teléfono el indicado en CEN_AGENDAS_TELEFONOS.C_TELEFONO&lt;br /&gt;
Para hacer funcionar la agenda:&lt;br /&gt;
&lt;br /&gt;
*En el archivo de aprovisionamiento correspondiente (Yealink-XXXX-comun.cfg) establecer los siguientes parámetros:&lt;br /&gt;
&lt;br /&gt;
    remote_phonebook.data.1.url = http://&amp;lt;direc IP&amp;gt;/vivait-agenda/yealink/contactData1.xml &lt;br /&gt;
    remote_phonebook.data.1.name = NOMBRE DE LA AGENDA EN EL TELEFONO&lt;br /&gt;
&lt;br /&gt;
*En el archivo /etc/apache2/apache2.conf añadir tras el último Directory:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Directory /var/www/html/vivait-agenda/&amp;gt;&lt;br /&gt;
             AddType application/x-httpd-php .xml&lt;br /&gt;
             Options Indexes FollowSymLinks MultiViews&lt;br /&gt;
             AllowOverride None&lt;br /&gt;
             Order allow,deny&lt;br /&gt;
             allow from all&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Ejecutar el comando:&lt;br /&gt;
&lt;br /&gt;
    /etc/init.d/apache2 reload&lt;br /&gt;
&lt;br /&gt;
== Calendarios ==&lt;br /&gt;
&lt;br /&gt;
=== Enrutamiento inteligente ===&lt;br /&gt;
&lt;br /&gt;
Ante una llamada a un destino, si hay cita de ocupado en el calendario se desvia al número indicado en el campo &amp;quot;location&amp;quot; del calendario o a su buzon de voz si hay valor en dicho campo&lt;br /&gt;
&lt;br /&gt;
 same =&amp;gt; n,Set(CalendarBusy=${CALENDAR_BUSY(GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,Set(id=${CALENDAR_QUERY(GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,NoOP(hay ${CALENDAR_QUERY_RESULT(${id},getnum)} eventos)&lt;br /&gt;
 same =&amp;gt; n,Verbose(3,The state of GoogleCalendar is $&lt;br /&gt;
 {DEVICE_STATE(Calendar:GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,Set(CalendarLocation=${CALENDAR_QUERY_RESULT(GoogleCalendar,location)})&lt;br /&gt;
 same =&amp;gt; n,GotoIf($[&amp;quot;${CalendarBusy}&amp;quot;==&amp;quot;1&amp;quot;]?:conCategoria)&lt;br /&gt;
 same =&amp;gt; n,GotoIf($[&amp;quot;${CalendarLocation}&amp;quot;==&amp;quot;&amp;quot;]?buzon)&lt;br /&gt;
 same =&amp;gt; n,Goto(Cen_iniLlam,${CalendarLocation},1)&lt;br /&gt;
 same =&amp;gt; n(buzon),Playback(Particular/buzon)&lt;br /&gt;
 same =&amp;gt; n,Hangup&lt;br /&gt;
 same=&amp;gt; n(conCategoria),Goto(Cen_iniLlam,${EXTEN},1)&lt;br /&gt;
&lt;br /&gt;
=== Conexión de cliente Outlook a calendarios VIVAit mediante Caldav===&lt;br /&gt;
Por defecto, el cliente outlook no soporta Caldav; si queremos disponer de calendarios de VIVAit en Outlook tendríamos dos opciones:&lt;br /&gt;
# Tener los calendarios en el servidor Exchange&lt;br /&gt;
# Instalar un plugin en el cliente outlook que permita conectar vía Caldav los calendarios que estén ubicados en el servidor de calendarios de VIVAit&lt;br /&gt;
&lt;br /&gt;
Este howto se centra en esta segunda posibilidad&lt;br /&gt;
&lt;br /&gt;
Procedimiento: &lt;br /&gt;
&lt;br /&gt;
1.- Instalar Calldavsincronizer (valdrían otros plugin de Caldav para Outlook)&lt;br /&gt;
&lt;br /&gt;
[https://sourceforge.net/projects/outlookcaldavsynchronizer/ https://sourceforge.net/projects/outlookcaldavsynchronizer/]&lt;br /&gt;
&lt;br /&gt;
2.- Entrar en Synchronization Profiles en la nueva pestaña Calldav Syncronizer de outlook       [[File:Syncronizer.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.- Añadir nuevo perfil (tecla +)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Nuevo.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A tener en cuenta:&lt;br /&gt;
&lt;br /&gt;
*Crear un nuevo “Outlook folder”, entendemos que es adecuado (quizás necesario) para que las entradas de calendario de VIVAit queden diferenciadas.&lt;br /&gt;
*Lo mejor es haber creado antes el calendario en el servidor para que al darlo de alta en oulook comprobemos que se conecta.&lt;br /&gt;
*Dando al botón “Test or discover settings” se nos muestran todos los calendarios del servidor y elegimos el que queramos; en “elementos de la carpeta” diremos “elementos de calendario”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Calendario.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
== Uso de reloj hardware en nodos de procesamiento ==&lt;br /&gt;
&lt;br /&gt;
=== En nodo de procesamiento ACD ===&lt;br /&gt;
En un nodo de procesamiento ACD es obligatorio instalar dahdi y una tarjeta de primario para emplear reloj hardware, ya que el reloj software que va en el asterisk 1.4 es defectuoso.&lt;br /&gt;
Para configurarlo basta con instalar la tarjeta en el servidor, instalar dahdi y posteriormente ejecutar el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
 dahdi_cfg&lt;br /&gt;
&lt;br /&gt;
Este comando generaŕa el fichero /etc/dahdi/system.conf&lt;br /&gt;
&lt;br /&gt;
Para comprobar que el comando se ha ejecutado satisfactoriamente lo abriremos y tendrá que tener un formato semejante al siguiente ejemplo:&lt;br /&gt;
&lt;br /&gt;
 # Autogenerated by /usr/sbin/dahdi_genconf on Tue Oct 22 17:42:59 2013&lt;br /&gt;
 # If you edit this file and execute /usr/sbin/dahdi_genconf again,&lt;br /&gt;
 # your manual changes will be LOST.&lt;br /&gt;
 # Dahdi Configuration File&lt;br /&gt;
 #&lt;br /&gt;
 # This file is parsed by the Dahdi Configurator, dahdi_cfg&lt;br /&gt;
 #&lt;br /&gt;
 # Span 1: WCT1/0 &amp;quot;Digium Wildcard TE110P T1/E1 Card 0&amp;quot; HDB3/CCS/CRC4&lt;br /&gt;
 span=1,1,0,ccs,hdb3,crc4&lt;br /&gt;
 # termtype: te&lt;br /&gt;
 bchan=1-15,17-31&lt;br /&gt;
 dchan=16&lt;br /&gt;
 echocanceller=oslec,1-15,17-31&lt;br /&gt;
 # Global data&lt;br /&gt;
 loadzone        = es&lt;br /&gt;
 defaultzone     = es&lt;br /&gt;
&lt;br /&gt;
=== En nodo de procesamiento de corporativa ===&lt;br /&gt;
En un nodo de procesamiento de corporativa no obligatorio instalar dahdi y una tarjeta de primario para emplear reloj hardware, ya que el no se han detectado errores en el reloj por software. Sin embargo si instalamos dahdi y una tarjeta de primario para emplear reloj hardware, el sistema funcionará mejor.&lt;br /&gt;
Para configurarlo basta con instalar la tarjeta en el servidor, instalar dahdi y posteriormente ejecutar el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
 dahdi_cfg&lt;br /&gt;
&lt;br /&gt;
Este comando generaŕa el fichero /etc/dahdi/system.conf&lt;br /&gt;
&lt;br /&gt;
Para comprobar que el comando se ha ejecutado satisfactoriamente lo abriremos y tendrá que tener un formato semejante al siguiente ejemplo:&lt;br /&gt;
&lt;br /&gt;
 # Autogenerated by /usr/sbin/dahdi_genconf on Tue Oct 22 17:42:59 2013&lt;br /&gt;
 # If you edit this file and execute /usr/sbin/dahdi_genconf again,&lt;br /&gt;
 # your manual changes will be LOST.&lt;br /&gt;
 # Dahdi Configuration File&lt;br /&gt;
 #&lt;br /&gt;
 # This file is parsed by the Dahdi Configurator, dahdi_cfg&lt;br /&gt;
 #&lt;br /&gt;
 # Span 1: WCT1/0 &amp;quot;Digium Wildcard TE110P T1/E1 Card 0&amp;quot; HDB3/CCS/CRC4&lt;br /&gt;
 span=1,1,0,ccs,hdb3,crc4&lt;br /&gt;
 # termtype: te&lt;br /&gt;
 bchan=1-15,17-31&lt;br /&gt;
 dchan=16&lt;br /&gt;
 echocanceller=oslec,1-15,17-31&lt;br /&gt;
 # Global data&lt;br /&gt;
 loadzone        = es&lt;br /&gt;
 defaultzone     = es&lt;br /&gt;
&lt;br /&gt;
== Aprovisionamiento terminales Cisco ==&lt;br /&gt;
=== Configurar protocolo SIP TCP o UDP en terminal Cisco ===&lt;br /&gt;
&lt;br /&gt;
Configuración de terminal Cisco para para funcionar bajo TCP o UDP:&lt;br /&gt;
Modificar parámetro&lt;br /&gt;
 &amp;lt;transportLayerProtocol&amp;gt;X&amp;lt;/transportLayerProtocol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde X es:&lt;br /&gt;
    1: TCP&lt;br /&gt;
    2: UDP&lt;br /&gt;
    4: Valor por defecto del firmware (al menos en la última versión equivale a TCP)&lt;br /&gt;
&lt;br /&gt;
=== Habilitar/Deshabilitar llamada en espera en terminales Cisco ===&lt;br /&gt;
&lt;br /&gt;
En el fichero de aprovisionamiento del terminal añadiremos la siguiente linea&lt;br /&gt;
 &amp;lt;callWaiting&amp;gt;X&amp;lt;/callWaiting&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde X es:&lt;br /&gt;
   0=off but can be changed through the settings menu.&lt;br /&gt;
   1=on but can be changed through the settings menu.&lt;br /&gt;
   2=off and locked so it can't be changed through the settings menu.&lt;br /&gt;
   3=on and locked so it can't be changed through the settings menu.&lt;br /&gt;
&lt;br /&gt;
== Como configurar servicio DHCP en Ubuntu Linux ==&lt;br /&gt;
=== ¿Que es un servicio DHCP? ===&lt;br /&gt;
Un servidor Dynamic Host Configuration Protocol (DHCP) asigna dinámicamente las direcciones IP y otras configuraciones de red a otros terminales que están conectados a la red.&lt;br /&gt;
&lt;br /&gt;
=== Instalar un servicio DHCP ===&lt;br /&gt;
Para instalar el servidor de asignacion automatica de direccion IP ejecutamos el comando:&lt;br /&gt;
 sudo apt-get install isc-dhcp-server&lt;br /&gt;
&lt;br /&gt;
=== Configurando el servicio DHCP ===&lt;br /&gt;
Editamos el archivo /etc/dhcp/dhcpd.conf creando primero un backup del mismo:&lt;br /&gt;
 mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.original&lt;br /&gt;
 nano /etc/dhcp/dhcpd.conf&lt;br /&gt;
&lt;br /&gt;
El archivo debe quedar de una forma muy similar a esta:&lt;br /&gt;
 authoritative&lt;br /&gt;
 subnet  10.254.239.0 netmask 255.255.255.254&lt;br /&gt;
 {&lt;br /&gt;
 range dynamic-bootp  10.254.239.40 10.254.239.60;&lt;br /&gt;
 option domain-name-servers ns1.example.org, ns2.example.org;&lt;br /&gt;
 option domain-name &amp;quot;example.org&amp;quot;;&lt;br /&gt;
 option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org ;&lt;br /&gt;
 option broadcast-address 10.254.239.255;&lt;br /&gt;
 default-lease-time 3600;&lt;br /&gt;
 max-lease-time 7200;&lt;br /&gt;
 option option-150 10.254.239.25&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Donde los campos:&lt;br /&gt;
*subnet: Direccion de red&lt;br /&gt;
*netmask: Máscara de red&lt;br /&gt;
*range dynamic-bootp: Rango de IPs que va a proporcionar el DHCP&lt;br /&gt;
*option domain-name-servers: Direcciones IPs de los DNS&lt;br /&gt;
*option domain-name: Nombre de dominio&lt;br /&gt;
*option routers:IPs de las puertas de enlace&lt;br /&gt;
*option broadcast-address: Dirección de broadcast&lt;br /&gt;
*default-lease-time: Tiempo de concesión por defecto&lt;br /&gt;
*max-lease-time: Valor máximo del tiempo de concesión&lt;br /&gt;
*option option-150: IPs de los servidores TFTPs que tiene la red&lt;br /&gt;
&lt;br /&gt;
===  Reiniciamos el servicio ===&lt;br /&gt;
 service isc-dhcp-server restart&lt;br /&gt;
&lt;br /&gt;
=== Direcciones IP estáticas basadas en la MAC ===&lt;br /&gt;
Pueden conocerse las MAC de las máquinas conectadas a la red ejecutando el comando arp desde la terminal.&lt;br /&gt;
&lt;br /&gt;
 host ejemplo {&lt;br /&gt;
        hardware ethernet 00:0B:82:19:A8:04;&lt;br /&gt;
        option option-150 10.254.239.0;&lt;br /&gt;
 #      fixed-address 10.254.239.52;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Protocolo Skinny en VIVAit Call mediante uso de Chan-SCCP ==&lt;br /&gt;
=== Instalación de chan_sccp ===&lt;br /&gt;
*Copiar el fichero chan-sccp-4.2.1.1.tar.gz en el directorio donde estén los fuentes de Asterisk (normalmente /usr/src/MDtel)&lt;br /&gt;
*Descomprimir&lt;br /&gt;
*Entrar al directorio chan-sccp-4.2.1.1&lt;br /&gt;
*Ejecutar: ./configure --with-asterisk=../DIRECTORIO_ASTERISK --enable-conference. Donde DIRECTORIO_ASTERISK es el nombre del directorio donde están los fuentes de asterisk.&lt;br /&gt;
*Tras el ejecutar el configure (si todo va bien al final se verá un resumen con el S.O, arquitectura, etc), ejecutar make y make install&lt;br /&gt;
*El nuevo módulo chan_sccp.so se generará dentro del DIRECTORIO_ASTERISK en lib/asterisk/modules/ y se deberá copiar en /usr/lib/asterisk/modules/&lt;br /&gt;
*Copiar el fichero sccp.conf a /etc/asterisk&lt;br /&gt;
*Entra a Asterisk y ejecutar: module load chan_sccp.so&lt;br /&gt;
*Si se ha cargado correctamente, desde dentro de Asterisk, si se teclea sccp show version deberá devolver: &amp;quot;Skinny Client Control Protocol (SCCP). Release: 4.3.0 4.3.0 - unknown (built by 'root' on '2016-06-01 10:42:32 UTC')&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Crear extensiones ===&lt;br /&gt;
*En el portal crear una nueva clase de dispositivo (Vivait-Call/Dispositivos/Clases de dispositivos), donde la clase sea extensión la subclase H323 (todavía no existe la subclase SCCP) y el formato SCCP/${DEST}&lt;br /&gt;
*Crear la nueva extensión, pero el dispositivo debe ser el creado en el campo anterior.&lt;br /&gt;
*Las extensiones creadas habrá que añadirlas al fichero sccp.conf así como los teléfonos que las usarán. En el fichero sccp.conf incluido hay ejemplos.&lt;br /&gt;
&lt;br /&gt;
=== Aprovisionamiento ===&lt;br /&gt;
Los terminales se aprovisionan de la misma manera que los SIP, exceptuando que las plantillas XML no tiene referencias a SIP. Se incluye un xml genérico con todas las opciones.&lt;br /&gt;
Dentro del directorio chan-sccp-4.2.1.1 hay un directorio conf con todos los archivos de configuración necesarios. Las versiones annotated contienen todas las opciones posibles comentadas.&lt;br /&gt;
&lt;br /&gt;
== Instalación y configuración Postfix en RedHat7 ==&lt;br /&gt;
&lt;br /&gt;
'''Postfix''' es un ''servidor de correo'' de software libre/código abierto, un programa informático para el enrutamiento y envío de correo electrónico.&lt;br /&gt;
&lt;br /&gt;
=== Instalación ===&lt;br /&gt;
 yum install postfix&lt;br /&gt;
&lt;br /&gt;
=== Configuración ===&lt;br /&gt;
Sobre la configuración de postfix por defecto (recién instalado):&lt;br /&gt;
Editar el fichero /etc/postfix/main.cf&lt;br /&gt;
 inet_protocols = ipv4&lt;br /&gt;
 relayhost = smtp.renfe.es&lt;br /&gt;
Revisar la configuración:&lt;br /&gt;
 postfix check&lt;br /&gt;
Configurar postfix como servicio (sólo en redhat y similares)&lt;br /&gt;
 chkconfig postfix on&lt;br /&gt;
Iniciar postfix:&lt;br /&gt;
 service postfix start&lt;br /&gt;
Instalar mailx para disponer de los comandos mail y sendmail:&lt;br /&gt;
 yum install mailx&lt;br /&gt;
Probar configuración:&lt;br /&gt;
 echo &amp;quot;Prueba de correo&amp;quot; | mail -vs &amp;quot;Prueba&amp;quot; correo@destino.soy&lt;br /&gt;
&lt;br /&gt;
== Como crear un TRIGGER en Zabbix ==&lt;br /&gt;
&lt;br /&gt;
'''1.''' Hay '''dos posibilidades''' dependiendo si el trigger es para un solo host o es para varios, los cuales tienen en común un template:&lt;br /&gt;
&lt;br /&gt;
:# Si es para ''un host'': Ir a '''Configuración/Hosts'''&lt;br /&gt;
:# Si es para ''un template'': Ir a '''Configuración/Templates'''&lt;br /&gt;
&lt;br /&gt;
'''2.''' En la fila correspondiente al host/template al que queramos añadirle el trigger, pulsar sobre la '''columna triggers.'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''3.''' En la ventana de triggers, pulsar sobre el botón '''Create trigger''', situado en la esquina superior derecha.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''4.''' Aparecerá la ventana de creación de triggers, que tiene los siguientes campos:&lt;br /&gt;
:1. '''Name:''' Nombre del trigger, que deberá ser lo ''suficientemente descriptivo''. Aparecerá cuando se&lt;br /&gt;
active, en la ventana principal de Zabbix así como en los correos de aviso.&lt;br /&gt;
:2. '''Expression:''' Define la fórmula cuyo resultado activará el trigger. Hay que pulsar el botón '''Add'''. Se mostrará una &lt;br /&gt;
nueva ventana donde habrá que elegir el item (medida) sobre el que se basará el trigger (evidentemente la medida deberá &lt;br /&gt;
existir previamente) y la función necesaria para el cálculo. Para una descripción de las disponibles dirigirse a &lt;br /&gt;
https://www.zabbix.com/documentation/2.2/manual/appendix/triggers/functions.&amp;lt;br/&amp;gt;&lt;br /&gt;
Tras rellenar los campos anteriores y dar a la función los valores que necesite pulsar el botón '''Insert.'''&lt;br /&gt;
:3. '''Expression constructor:''' Permite crear expresiones complejas, uniendo varias.&lt;br /&gt;
:4. '''Description:''' Una explicación del trigger&lt;br /&gt;
:5. '''Severity:''' Criticidad el trigger&lt;br /&gt;
:6. Para una descripción del resto de campos visitar la página: https://www.zabbix.com/documentation/2.2/manual/config/triggers/trigger&lt;br /&gt;
'''5.''' Tras rellenar los campos, pulsar el botón '''Save'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''6.''' Si el trigger se ha añadido en un template, aparecerá en todos los hosts que tienen el template configurado.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''7.''' '''El trigger por si solo no envía ningún aviso''', solo se activa si se cumple la expresión definida.&lt;br /&gt;
Para enviar un aviso (normalmente un correo electrónico) cuando se active el trigger, será necesario definir una acción (Configuración/Actions).&lt;br /&gt;
&lt;br /&gt;
 '''NOTA.-''' Para consultar cualquier cuestión relativa a Zabbix, se encuentra a su disposición el manual: &amp;lt;br/&amp;gt;&lt;br /&gt;
 https://www.zabbix.com/documentation/2.2/manual&lt;br /&gt;
&lt;br /&gt;
== Como mostrar callername queues FOP2 ==&lt;br /&gt;
&lt;br /&gt;
Es necesario añadir el siguiente código al contexto de entrada:&lt;br /&gt;
&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Connect connid localhost usuario clave bd)&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Query resultid ${connid} SELECT\ firstname\,lastname\ from\ fop2\ where\ phone1=${CALLERID(num)}\ OR\ phone2=${CALLERID(num)})&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Fetch fetchid ${resultid} nombre apellidos)&lt;br /&gt;
 exten =&amp;gt; _X.,n,GotoIf($[${fetchid} = 1]?:noExiste)&lt;br /&gt;
 exten =&amp;gt; _X.,n,Set(CALLERID(name)=${nombre}${apellidos})&lt;br /&gt;
 exten =&amp;gt; _X.,n(noExiste),Continuar&lt;br /&gt;
&lt;br /&gt;
En la primera línea cambiar según lo necesario:&lt;br /&gt;
&lt;br /&gt;
*localhost: Dirección IP del servidor de MySQL donde está la BBDD de FOP2&lt;br /&gt;
*usuario: Usuario con permisos de acceso a la bbdd de FOP2&lt;br /&gt;
*clave: Clave del usuario&lt;br /&gt;
*bd: Nombre de la BBDD&lt;br /&gt;
&lt;br /&gt;
== Como ver los directorios de un NAS a montar con NFS ==&lt;br /&gt;
&lt;br /&gt;
Con el siguiente comando vemos los diferentes volúmenes de un NAS:&lt;br /&gt;
&lt;br /&gt;
 showmount -e IP_NAS&lt;br /&gt;
&lt;br /&gt;
Ejemplo de salida:&lt;br /&gt;
&lt;br /&gt;
 Export list for 192.168.10.10:&lt;br /&gt;
 /Backup/backup       *&lt;br /&gt;
 /DISCOS_1/VOL1_AUDIO *&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Instalación de ActivaSTP con VIVAit Call 3 y marcación desde Outlook ==&lt;br /&gt;
&lt;br /&gt;
Instalamos ActivaSTP desde:&lt;br /&gt;
 &lt;br /&gt;
 (http://activa.sourceforge.net/)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- *SIPTAPI, según la pagina Web, su ultima versión publicada es del 2014 con versión 0.2.17 (http://activa.sourceforge.net/)&lt;br /&gt;
&lt;br /&gt;
Hemos probado con http://www.xtelsio.com/en/products/ast_tsp/tapi_for_asterisk.htm.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La configuración necesaria se muestra en la siguiente imagen:&lt;br /&gt;
&lt;br /&gt;
[[File:Ventana ActivaTSP.jpg]]&lt;br /&gt;
&lt;br /&gt;
 El usuario del manager debe tener permisos originate para poder realizar llamadas.&lt;br /&gt;
&lt;br /&gt;
Se han realizado pruebas con Outlook 2013.&lt;br /&gt;
&lt;br /&gt;
Se ha comprobado la correcta realización de pruebas utilizando ActivaSTP, realizadon llamadas desde la pestaña &amp;quot;personas&amp;quot; con la vista en modo tarjeta de Pesentación, tarjeta, teléfono o lista.&lt;br /&gt;
&lt;br /&gt;
Outlook 2013 no da la opción de llamar si la vista está en modo personas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Como volver a procesar grabaciones con error ==&lt;br /&gt;
&lt;br /&gt;
Las grabaciones con error son aquellas que tienen el valor E_GRABACION=120 en la tabla DAT_GRABACIONES.&lt;br /&gt;
&lt;br /&gt;
Las grabaciones con error se produce normalmente a perdida de conexión entre el nodo servidor de grabaciones y el resto.&lt;br /&gt;
&lt;br /&gt;
Para reprocesar la grabación hay que modificar el campo E_GRABACION de la tabla DAT_GRABACIONES y ponerlo con valor 20 para que así el recordCentral la vuelva a procesar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== FOP2. Problemas en transferencias asistidas ==&lt;br /&gt;
&lt;br /&gt;
 Para habilitar la transferencia atendida del asterisk (funcion atxfer), hay que poner la opción tT en el queue() si la llamada origen la realiza a una cola o &lt;br /&gt;
 al dial() de las extensiones.&lt;br /&gt;
 Con eso vemos como al intentar hacer la llamada de consulta ya se va a nuestro dialplan. Sin embargo la llamada no funciona ya que el enrutador nos da error de&lt;br /&gt;
 enrutamiento porque no tenemos ID_DISPOSITIVO origen ya que el fop no es un elemento creado desde el portal.&lt;br /&gt;
 Por lo que se propone como solución crear un contexto de inicio del fop y asignarle un ID_DISPOSITIVO para que así se enrute la llamada. El contexto tienen que&lt;br /&gt;
 ser similar a ext_InicioLlamada_Chrome.conf&lt;br /&gt;
&lt;br /&gt;
Para que funcione las transferencias supervisadas desde el fop2 hay que realizar lo siguiente:&lt;br /&gt;
&lt;br /&gt;
*El usuario del manager debe tener permisos Atxfer para poder realizar transferencias.&lt;br /&gt;
*Habilitar la transferencia atxfer en el fuatures.conf del asterisk. atxfer =&amp;gt; *2&lt;br /&gt;
*Crear el fichero ext_InicioLlamada_FOP.conf con el siguiente contenido:&lt;br /&gt;
&lt;br /&gt;
 [Cen_Inicio_FOP]&lt;br /&gt;
 exten =&amp;gt; [*#%0-9].,1,NoOp(MDINICHR**EXTEN=${EXTEN}**CID=${CHROME_ANI}*)&lt;br /&gt;
 same =&amp;gt; n,dumpchan()&lt;br /&gt;
 ;same =&amp;gt; n,Set(CALLERID=${CHROME_ANI})&lt;br /&gt;
 same =&amp;gt; n,Gosub(Cen_Sub_getIdExtension,s,1(${R_CID_NUM_00}))&lt;br /&gt;
 same =&amp;gt; n,ExecIf($[&amp;quot;${GOSUB_RETVAL}&amp;quot;!=&amp;quot;OK&amp;quot; | &amp;quot;${sqlDato}&amp;quot;=&amp;quot;&amp;quot;]?HangUp)&lt;br /&gt;
 same =&amp;gt; n,Set(ID_DISPOSITIVO=${sqlDato})&lt;br /&gt;
 ; . Modificar MARCAR en funcion de reglas de marcacion saliente (prefijo 0, ...)&lt;br /&gt;
 ; Esto se modificara en el contexto Cen_Inicio_Chrome_Particular&lt;br /&gt;
 same =&amp;gt; n,Set(MARCAR=${EXTEN})&lt;br /&gt;
 ;---------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ;--- Llamada a contexto particular&lt;br /&gt;
 ;---------------------------------&lt;br /&gt;
 ; Esta llamada es para hacer cosas especcificas del cliente (cambiar callerid...)&lt;br /&gt;
 ; La subrutina Cen_Inicio_Chrome_Particular esta en el archivo ext_InicioLlamada_Chrome_Particular.conf&lt;br /&gt;
 ; Si no existe el archivo copiar el archivo ext_InicioLlamada_Chrome_Particular.conf.ejemplo como ext_Inicio_Chrome_Particular.conf&lt;br /&gt;
 ; y realizar las modificaciones necesarias&lt;br /&gt;
 ; El fichero ext_InicioLlamada_Chrome_Particular.conf se carga automaticamente al ser creado con el include de ext_InicioLlamada.conf&lt;br /&gt;
 ; #include &amp;quot;ext_InicioLlamada*.conf&amp;quot;&lt;br /&gt;
 ;&lt;br /&gt;
 same =&amp;gt; n,GosubIf($[${DIALPLAN_EXISTS(Cen_Inicio_FOP_Particular,${EXTEN},1)}&amp;gt;0]?Cen_Inicio_FOP_Particular,${EXTEN},1)&lt;br /&gt;
 same =&amp;gt; n,Goto(Cen_Inicio_SIP,${MARCAR},1)&lt;br /&gt;
&lt;br /&gt;
*En el fichero /usr/local/fop2/buttons.cfg poner como contexto de las extensiones el creado anteriormente (Cen_Inicio_FOP)&lt;br /&gt;
*Modificar el fichero /usr/local/fop2/fop2.cfg:&lt;br /&gt;
&lt;br /&gt;
 blind_transfer = 0&lt;br /&gt;
 supervised_transfer = 1&lt;br /&gt;
&lt;br /&gt;
Para realizar la transferencia con consulta, hay que pulsar el supervised transfer del FOP2 y una vez se haya establecido la llamada, seleccionar la extensión que &amp;quot;sobra&amp;quot; en la conversación y pulsar la tecla de hangup y colgar la llamada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Problemas de conmutación en cluster ==&lt;br /&gt;
El problema detectado fue que en la conmutacion de maquinas en el cluster cuando el control lo tiene la maquina 2 no funciona el servicio phoneprov-tftp.&lt;br /&gt;
&lt;br /&gt;
Hay que hacer las siguientes comprobaciones:&lt;br /&gt;
&lt;br /&gt;
 Que el directorio /var/lib/phoneprov-tftp esté en la partición /HDcluster&lt;br /&gt;
 Que fichero /etc/MDtel/phoneprov-tftp esté puesta como IP de la máquina la IP flotante del cluster (campo $dbHost)&lt;br /&gt;
 Que el servicio phoneprov-tftp del directorio /usr/local/sbin/phoneprov-tftp.pl tenga permisos de ejecución 755&lt;br /&gt;
 Que exista el fichero /etc/init/phoneprov-tftp.conf&lt;br /&gt;
&lt;br /&gt;
Para más información ver los log del phoneprov en /var/log/phoneprov-tftp.log&lt;br /&gt;
&lt;br /&gt;
El problema era que no se encontraba instalado el paquete phoneprov-tftp, hay que instalarlo manualmente. Instalar el paquete libnet-tftpd-perl.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Como borrar contenido de la tabla BDTR con el script borraRegistrosNimitz.pl ==&lt;br /&gt;
&lt;br /&gt;
Este script se ejecuta mediante una tarea del crontab, tal como la siguiente:&lt;br /&gt;
&lt;br /&gt;
 SHELL=/bin/sh&lt;br /&gt;
 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin&lt;br /&gt;
 # m h dom mon dow user  command&lt;br /&gt;
 00 01     * * *   root    /usr/local/sbin/borraRegistrosNimitz.pl --hDB localhost&lt;br /&gt;
&lt;br /&gt;
Para establecer el número de días que vamos a dejar en la base de datos debemos editar el archivo borraRegistrosNimitz.pl, el campo my $numDias.&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Howto%27s&amp;diff=5997</id>
		<title>Howto's</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Howto%27s&amp;diff=5997"/>
		<updated>2017-07-26T06:59:30Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* Como borrar contenido de la tabla BDTR con el script borraRegistrosNimitz.pl */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!! VIVAit Call&lt;br /&gt;
VIVAit Suite&lt;br /&gt;
&lt;br /&gt;
VIVAit Fax&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Como parar asterisk ==&lt;br /&gt;
En situaciones límite en el que es necesario parar el asterisk y volver a arrancarlo hay que realizar los siguientes pasos:&lt;br /&gt;
&lt;br /&gt;
 Entrar en la consola de asterisk e introducir el comando core stop now&lt;br /&gt;
&lt;br /&gt;
 Si esto no funciona, tendremos que matar el proceso a mano. Esto es, primero el safe asterisk y luego el asterisk mediante el comando &lt;br /&gt;
 kill -9 nºPID&lt;br /&gt;
 &lt;br /&gt;
 Tras estos pasos, volveremos a arrancar el servicio asterisk mediante /etc/init.d/asterisk start&lt;br /&gt;
&lt;br /&gt;
== Como configurar la megafonía ==&lt;br /&gt;
&lt;br /&gt;
El servicio de megafonía se basa en el protocolo multicast.&lt;br /&gt;
&lt;br /&gt;
Para configurar la megafonía tenemos que activar en los teléfonos que para que estén &amp;quot;escuchando&amp;quot; en una dirección multicast y tener un emisor en esa dirección multicast.&lt;br /&gt;
&lt;br /&gt;
Los teléfonos suelen tener en su configuración un apartado para configurar el multicast. Por ejemplo en los yealink está en la pestaña directory sección multicast IP.&lt;br /&gt;
&lt;br /&gt;
En los teléfonos se puede configurar manualmente o incluirlo en las plantillas de aprovisionamiento.&lt;br /&gt;
&lt;br /&gt;
El asterisk tiene un canal para hacer multicast. Este canal es MulticastRTP.&lt;br /&gt;
&lt;br /&gt;
Para esto podemos crear un VDN que contenga la siguiente línea. (en el ejemplo la dirección multicast es 239.0.126.1 y el puerto es el 10001).&lt;br /&gt;
&lt;br /&gt;
 [Cen_VDN_90000]&lt;br /&gt;
 exten =&amp;gt; _X.,1,NoOp(MDVDN_90000*****EXTEN=${EXTEN}**CID=${CALLERID(NUM)}**UCID=${UCID}*)&lt;br /&gt;
  same =&amp;gt;     n,Answer&lt;br /&gt;
  same =&amp;gt;     n,Dial(MulticastRTP/basic/239.0.126.1:10001)&lt;br /&gt;
 include =&amp;gt; Cen_finLlamada&lt;br /&gt;
&lt;br /&gt;
== Como configurar el candado ==&lt;br /&gt;
El candado permite prohibir temporalmente la posibilidad de realizar llamadas hacia fuera. Sí se pueden seguir haciendo llamadas a extensiones fijas de la plataforma, es decir, llamadas sin coste.&lt;br /&gt;
&lt;br /&gt;
Para configurar dicha funcionalidad basta con crear extensiones con la categoría mas restrictiva posible y habilitar la movilidad, con lo que la extensión solo tendrá &amp;quot;permisos&amp;quot; para realizar llamadas internas.&lt;br /&gt;
&lt;br /&gt;
Para permitir llamadas externas solo hay que &amp;quot;mover&amp;quot; a un usuario con categoría suficiente a la extensión deseada.&lt;br /&gt;
== Como crear un grupo de captura y que se vea en cada teléfono el número que llama ==&lt;br /&gt;
&lt;br /&gt;
'''ATENCIÓN: SE CREAN CONFIGURACIONES NO REFLEJADAS EN PORTAL DE ADMINISTRACIÓN'''&lt;br /&gt;
&lt;br /&gt;
Para la simulación de grupos de captura y conseguir que todos los terminales vean el ANI del llamante:&lt;br /&gt;
&lt;br /&gt;
- Hacen falta teléfonos con dos líneas&lt;br /&gt;
&lt;br /&gt;
- Cada teléfono del grupo tiene en la línea 1 su extensión habitual (por ejemplo 40000)&lt;br /&gt;
&lt;br /&gt;
- Además, en el fichero &amp;quot;sip_Estatico.conf&amp;quot;, creamos una segunda extensión para cada teléfono, que le ocupará la segunda línea (por ejemplo 42000)&lt;br /&gt;
&lt;br /&gt;
- En esta segunda linea ponemos que cuando se llame tenga otro tono de llamada (un beep o nada...) que se asemeje en funcionamiento al de un mensaje de llamada en otra extension de mi grupo de captura&lt;br /&gt;
&lt;br /&gt;
- Se ha creado una variable global por cada teléfono en el fichero de variables &amp;quot;ext_MDtel_Particular.conf&amp;quot; de nombre EXTxxxxx (por ejemplo EXT40000); esa variable contiene las otras extensiones virtuales del grupo&lt;br /&gt;
por ejemplo EXT40000=&amp;gt;SIP/42001&amp;amp;SIP/42005&lt;br /&gt;
&lt;br /&gt;
- Hemos creado en el dialplan programación para que cuando exista esa variable global se añada a la marcación el contenido&lt;br /&gt;
&lt;br /&gt;
== Como crear supletorios ==&lt;br /&gt;
&lt;br /&gt;
'''ATENCIÓN: SE CREAN CONFIGURACIONES NO REFLEJADAS EN PORTAL DE ADMINISTRACIÓN'''&lt;br /&gt;
&lt;br /&gt;
Igual que el caso anterior pero en la variable ponemos números reales. Debido a un bug en el enrutador, que no devuelve la variable R_PARA, en el fichero ext_MARCAR_Extension.conf hay que sustituir la siguiente linea:&lt;br /&gt;
 &lt;br /&gt;
 ;same =&amp;gt;                   n,ExecIf($[&amp;quot;${EXT${R_PARA}}&amp;quot;=&amp;quot;&amp;quot;]?NoOp:Set(ENR_CADMARCAR=${ENR_CADMARCAR}&amp;amp;${EXT${R_PARA}}))&lt;br /&gt;
Por esta otra:&lt;br /&gt;
  same =&amp;gt;                   n,ExecIf($[&amp;quot;${EXT${R_DEST_${ENR_RUTA_CAD}}}&amp;quot;=&amp;quot;&amp;quot;]?NoOp:Set(ENR_CADMARCAR=${ENR_CADMARCAR}&amp;amp;${EXT${R_DEST_${ENR_RUTA_CAD}}}))&lt;br /&gt;
ATENCIÓN !!! en las llamadas salientes cada uno presenta su número&lt;br /&gt;
&lt;br /&gt;
Para emplear números externos en los supletorios hay que poner, al crear la variable que hemos explicado en el apartado anterior en el ext_MDtel_Particular.conf: &lt;br /&gt;
&lt;br /&gt;
 EXT335=&amp;gt;SIP/0999999999@Trunk_Movil ;En este caso suena en la ext 335 y en el móvil 999999999&lt;br /&gt;
&lt;br /&gt;
== Generación de llamada automática ==&lt;br /&gt;
&lt;br /&gt;
Para activar la funcionalidad es necesario lo siguiente: &lt;br /&gt;
&lt;br /&gt;
* Definir una variable ID_LISTA_LLAMAME con el ID de la lista que se va a usar para generar la llamada. Cuando se cree la lista hay que asegurarse que el campo &amp;quot;Nº segundos límite&amp;quot; tiene un valor lo suficientemente amplio para evitar que la llamada caduque antes de ejecutarse.&lt;br /&gt;
&lt;br /&gt;
* Establecer un timeout para la cola (en el Gosub Cen_Sub_GrupoACD se indica justo después de ${COLA})&lt;br /&gt;
&lt;br /&gt;
* Llamar a la función de MySQL ACD_FUNC_LLAMAME_CREAR a través de MDintz&lt;br /&gt;
&lt;br /&gt;
* En la función se usan los siguientes elementos variables:&lt;br /&gt;
&lt;br /&gt;
        ${ID_LISTA_LLAMAME}: Definida antes clienteTOCola: &lt;br /&gt;
        Nombre del cliente. Al no tener ningún nombre, se usa un denominador genérico&lt;br /&gt;
        ${CALLERID}: Número llamante, donde se dirigirá la llamada.&lt;br /&gt;
&lt;br /&gt;
Ejemplo:&lt;br /&gt;
&lt;br /&gt;
 [Cen_VDN_99001]&lt;br /&gt;
 ;----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 ;----------------------- VDN 99001 ------------------------------------------------------------&lt;br /&gt;
 ;----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 exten =&amp;gt; _X.,1,NoOp(MDENTGW_99001*****EXTEN=${EXTEN}**CID=${CALLERID(NUM)}**UCID=${UCID}*)&lt;br /&gt;
  same =&amp;gt;     n,Set(__COLA=89001)&lt;br /&gt;
  same =&amp;gt;     n,Set(ctiDiriTrato=0)&lt;br /&gt;
  same =&amp;gt;     n,Set(ctiDiriInterface=)&lt;br /&gt;
  same =&amp;gt;     n,Set(ID_LISTA_LLAMAME=2)&lt;br /&gt;
  same =&amp;gt;     n(cola),Gosub(Cen_Sub_GrupoACD,${EXTEN},1(${COLA},10,,Si,))&lt;br /&gt;
  same =&amp;gt;     n,GotoIf($[&amp;quot;${QUEUESTATUS}&amp;quot;!=&amp;quot;TIMEOUT&amp;quot;]?colgar)&lt;br /&gt;
  same =&amp;gt;     n,MDintz(nimitz|bd|sqlDato|select ACD_FUNC_LLAMAME_CREAR(CURRENT_TIMESTAMP\,${ID_LISTA_LLAMAME}\,&amp;quot;&amp;quot;\,&amp;quot;clienteTOCola&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,1\,&amp;quot;&amp;quot;\,&amp;quot;${CALLERID(NUM)}&amp;quot;\,1\,3\,1\,&amp;quot;&amp;quot;\,0\,0\,0\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;))&lt;br /&gt;
  same =&amp;gt;     n,GotoIf($[&amp;quot;${MDintzRes}&amp;quot;=&amp;quot;OK&amp;quot;]?colgar)&lt;br /&gt;
  same =&amp;gt;     n,NoOp(ACD_FUNC_LLAMAME_CREAR ${MDintzRes})&lt;br /&gt;
  same =&amp;gt;     n(colgar),Hangup&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cancelación de eco en la plataforma ==&lt;br /&gt;
&lt;br /&gt;
Comprobar que el chan_dahdi.conf este configurado los parametros: &lt;br /&gt;
 echocancel=yes&lt;br /&gt;
 echocancelwhenbridged=yes&lt;br /&gt;
 Jugar con los valores txgain y rxgain &lt;br /&gt;
&lt;br /&gt;
Si esto no es suficiente el siguiente paso sería emplear una canceladora de echo por hardware.&lt;br /&gt;
&lt;br /&gt;
== Como &amp;quot;dar paso&amp;quot; a través de un enlace exterior si hay una llamada para una extensión creada en el sistema pero no registrada ==&lt;br /&gt;
&lt;br /&gt;
Este procedimiento es de utilidad en procesos de migración, en los que recibimos las llamadas de la RTC, nos las quedamos si la extensión ya está registrada en VIVAit y la mandamos hacia la plataforma a migrar si aún sigue migrada ahí&lt;br /&gt;
&lt;br /&gt;
El procedimiento es:&lt;br /&gt;
* Activar desvío por no contesta en la extensión (portal de administración - VIVAit Call - Dispositivos - Extensiones - campo &amp;quot;Desvio no contesta&amp;quot;, indicando como destino un prefijo (por ejemplo &amp;quot;99&amp;quot;) seguido de la extensión destino&lt;br /&gt;
&lt;br /&gt;
* Creamos una preruta en vivait-call - rutas -prerutas con origen &amp;quot;99&amp;quot;, le quitamos el prefijo en campo &amp;quot;Destino saliente 1&amp;quot; (valor -2) e indicamos en campo &amp;quot;Tipo destino sal. 1&amp;quot; como &amp;quot;Ruta externa&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Debera existir una ruta externa para esa numeración&lt;br /&gt;
&lt;br /&gt;
== Comprobación de versiones de elementos de la plataforma ==&lt;br /&gt;
&lt;br /&gt;
'''Aplicaciones'''&lt;br /&gt;
:* Botón derecho del ratón, Acerca De&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Portales'''&lt;br /&gt;
:* En el Vivait-Call, en la pantalla de inicio de sesión pone el número de versión del portal.&lt;br /&gt;
:* Tanto en el Monitor como en el Tracker no se puede saber.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Demonios'''&lt;br /&gt;
:* Mediante el comando nc localhost &amp;lt;Puerto demonio&amp;gt;. Ejemplo:&lt;br /&gt;
::nc localhost 1120&lt;br /&gt;
::motorSal sis ver='03.02.00' inic='20150427 123457' alarmas=0 ultAlar='00000000000000'&lt;br /&gt;
::motorSal gmp msj=253/256 buf=256/256 tarea=99/102&lt;br /&gt;
::motorSal tmp uptime=12624 (0d 3h 30m 24s)&lt;br /&gt;
::motorSal mtr mys=1 ocup=0% planif=13(0) intento=11(0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::Ejemplos puertos demonios:&lt;br /&gt;
:::*1111: vivait-cti&lt;br /&gt;
:::*1112: myAcdSuperv&lt;br /&gt;
:::*1113: recordNodo&lt;br /&gt;
:::*1114: recordCentral&lt;br /&gt;
:::*1115: intz-nimitz&lt;br /&gt;
:::*1120: motorSal&lt;br /&gt;
:::*1123: phoneprov-tftp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Base de datos'''&lt;br /&gt;
:* No se puede saber la versión a no ser que se comparen esquemáticos con los subidos en el redmine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:administrador]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:VIVAit Suite]]&lt;br /&gt;
[[Category:VIVAit Fax]]&lt;br /&gt;
&lt;br /&gt;
== Añadir Auto-Answer a la cabecera SIP ==&lt;br /&gt;
&lt;br /&gt;
Si queremos que un teléfono tenga autoanswer:&lt;br /&gt;
* En el peer poner: headeraa=Call-Info: answer-after=0, esto tiene que ir en la plantilla de la extensión o como campo en la extensión. Dependiendo del terminal que utilicemos el valor de este campo variará:&lt;br /&gt;
&lt;br /&gt;
    Aastra: Alert-Info: info=alert-autoanswer&lt;br /&gt;
    Grandstream: Call-Info: answer-after=0&lt;br /&gt;
    Linksys: Call-Info:\;Answer-After=0&lt;br /&gt;
    Polycom: Alert-Info: Ring Answer&lt;br /&gt;
    Snom: Call-Info: answer-after=0&lt;br /&gt;
    Snom (nuevo firmware): Call-Info: &amp;lt;sip:IP&amp;gt;\;answer-after=0&lt;br /&gt;
    Yealink: Call-Info: answer-after=0&lt;br /&gt;
&lt;br /&gt;
* Luego en el diaplan añadir lo siguiente: exten =&amp;gt; _[*#%0-9a-zA-Z].,n,set(__AutoAnswer=AA) (Esto tendremos que ver como ponerlo de manera automática). De manera provisional si queremos que sea para llamadas salientes pondremos esto en el ext_n_marcador.conf. Si queremos que sea llamadas entrantes lo pondremos en ext_n_MARCAR.conf&lt;br /&gt;
&lt;br /&gt;
== Configuración de los portales web en HTTPS ==&lt;br /&gt;
&lt;br /&gt;
Desde /usr/lib/jvm/default-java/bin/ ejecutamos:&lt;br /&gt;
&lt;br /&gt;
keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/share/tomcat7/.keystore&lt;br /&gt;
&lt;br /&gt;
Escriba la contraseña del almacén de claves: (t0mc4t)&lt;br /&gt;
 Volver a escribir la contraseña nueva: (t0mc4t)&lt;br /&gt;
 *Personalizar para el cliente&lt;br /&gt;
 ¿Cuáles son su nombre y su apellido?&lt;br /&gt;
 [Unknown]: VIVAit Suite&lt;br /&gt;
 ¿Cuál es el nombre de su unidad de organización?&lt;br /&gt;
 [Unknown]: Desarrollo&lt;br /&gt;
 ¿Cuál es el nombre de su organización?&lt;br /&gt;
 [Unknown]: MDtel&lt;br /&gt;
 ¿Cuál es el nombre de su ciudad o localidad?&lt;br /&gt;
 [Unknown]: Madrid&lt;br /&gt;
 ¿Cuál es el nombre de su estado o provincia?&lt;br /&gt;
 [Unknown]: Madrid&lt;br /&gt;
 ¿Cuál es el código de país de dos letras de la unidad?&lt;br /&gt;
 [Unknown]: es&lt;br /&gt;
 ¿Es correcto CN=VIVAit Suite, OU=Desarrollo, O=MDtel, L=es, ST=Madrid,&lt;br /&gt;
 C=Unknown?&lt;br /&gt;
 [no]: si&lt;br /&gt;
 Escriba la contraseña clave para &amp;lt;tomcat&amp;gt;&lt;br /&gt;
 (INTRO si es la misma contraseña que la del almacén de claves)&lt;br /&gt;
&lt;br /&gt;
nano /var/lib/tomcat7/conf/server.xml&lt;br /&gt;
&lt;br /&gt;
Descomentar la línea:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; protocol=&amp;quot;HTTP/1.1&amp;quot; SSLEnabled=&amp;quot;true&amp;quot; &lt;br /&gt;
&lt;br /&gt;
 maxThreads=&amp;quot;150&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Añadir después de sslProtocol=&amp;quot;TLS&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 keystorePass=&amp;quot;t0mc4t&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Crear un motivo desconexión para el Supervisor en '''''VIVA'''''it Suite==&lt;br /&gt;
&lt;br /&gt;
Para crear motivos de desconexión adicionales a los que ya ofrece la aplicación tendremos que añadir una nueva entrada en la BD. El comando que emplearíamos seria el siguiente:&lt;br /&gt;
&lt;br /&gt;
INSERT INTO `nimitz`.`COM_ENUMERADOS` (`ID`, `C_NOMBRE`, `C_TEXTO`, `N_POSICION`, `C_OBSERV`) VALUES(1000700, 'TSesAgMotDesc', 'Nombre Motivo de desconexión', 60, ' ');&lt;br /&gt;
&lt;br /&gt;
El ID debe ser mayor o igual a 1000700 y menor a 1000800. El N_POSICION debe ser mayor o igual a 60 y menor que 100.&lt;br /&gt;
&lt;br /&gt;
== Envío de variables CTI al ACD ante un GW con asterisk 13==&lt;br /&gt;
Dado que para un GW con asterisk 13 un nodo ACD es considerado un elemento externo, por defecto, no se envían variables CTI (UCID, ...). En una fututa versión del nodo ACD, ya no se considerará un elemento externo por lo que si se enviarán dichas variables. Para lograrlo en la versión 3.0 de la plataforma Vivait hay que modificar el fichero ext_MARCAR_Externo_Particular.conf del GW. Deberemos poner la siguiente linea.&lt;br /&gt;
&lt;br /&gt;
 same =&amp;gt; n,Macro(escribirDatosCti)&lt;br /&gt;
&lt;br /&gt;
== Script para cambio automático de claves en salas de conferencia estáticas ==&lt;br /&gt;
&lt;br /&gt;
Para cambiar la clave de las salas de conferencias crear un script llamado cambioClaveConfe.sh con el siguiente contenido:&lt;br /&gt;
	&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 CLAVE=$(shuf -i 1111-9999 -n 1)&lt;br /&gt;
 &lt;br /&gt;
 echo $CLAVE&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;update CEN_SALAS_CONFERENCIAS set C_PIN='$CLAVE' WHERE C_NOMBRE='$1'&amp;quot; | mysql -u nimitz -pivivanimitz nimitz&lt;br /&gt;
 &lt;br /&gt;
 FROM=sat@mdtel.es&lt;br /&gt;
 FECHA=`date +&amp;quot;%Y%m%d%H%M%S&amp;quot;`&lt;br /&gt;
 CLIENTE=&amp;lt;PONER EL CLIENTE&amp;gt;&lt;br /&gt;
 TO=&amp;lt;DESTINATARIOS&amp;gt;&lt;br /&gt;
 ASUNTO=&amp;quot;Nueva clave en sala $1&amp;quot;&lt;br /&gt;
 CUERPO=&amp;quot;La nueva clave para la sala $1 es: $CLAVE&amp;quot;&lt;br /&gt;
 /usr/sbin/sendmail -oi -t -v -f $FROM &amp;lt;&amp;lt;EOF&lt;br /&gt;
 From: $FROM&lt;br /&gt;
 To: $TO&lt;br /&gt;
 Bcc: $BCC&lt;br /&gt;
 Subject: $ASUNTO&lt;br /&gt;
 &lt;br /&gt;
 $CUERPO&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
El script cambiará la clave de la sala pasada por parámetro por una aleatoria de 4 dígitos y la enviará por correo a los &amp;lt;DESTINATARIOS&amp;gt; (direcciones de correo electrónico separadas por coma).&lt;br /&gt;
&lt;br /&gt;
Hay que crear una tarea en /etc/crontab añadiendo una linea como la siguiente:&lt;br /&gt;
 30 6	* * 7	root	cambioClaveConfe.sh 6173&lt;br /&gt;
&lt;br /&gt;
Esto ejecutará el script todos los domingos a las 6:30 horas cambiando la clave de la sala 6173. Añadir tantas linéas como salas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Monitorización en Zabbix de un trunk caído ==&lt;br /&gt;
Para monitorizar un o varios trunk por separado y saber el estado de cada uno es necesario lo siguiente: &lt;br /&gt;
&lt;br /&gt;
*Añadir el UserParameter adjunto que contiene el siguiente texto:&lt;br /&gt;
&lt;br /&gt;
 UserParameter=asterisk.trunkEstado[*],sudo /usr/sbin/asterisk -rx 'sip show peers' | grep  --text -i '$1' |  grep OK &amp;gt;/dev/null; if [ $? -eq 0 ]; then echo 1; else echo 0; fi&lt;br /&gt;
&lt;br /&gt;
*Añadir en el portal de zabbix un item por cada trunk. En el campo Key se pondrá &amp;quot;asterisk.trunkEstado[nombre_trunk]&amp;quot;, donde nombre_trunk es el nombre del trunk tal y como se ve en Asterisk.&lt;br /&gt;
[[File:zabbix_item_trunkEstado.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Crear un trigger que avise cuando el último valor sea 0. Por ejemplo:&lt;br /&gt;
 {corp-bdtr:asterisk.trunkEstado[PrePro-ACD].last()}=0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:zabbix_trigger_trunkEstado.png]]&lt;br /&gt;
&lt;br /&gt;
== Agendas en terminales Yealink ==&lt;br /&gt;
En la agenda se mostrará como nombre lo que contenga el campo CEN_AGENDAS.C_NOMBRE_MOSTRAR y como teléfono el indicado en CEN_AGENDAS_TELEFONOS.C_TELEFONO&lt;br /&gt;
Para hacer funcionar la agenda:&lt;br /&gt;
&lt;br /&gt;
*En el archivo de aprovisionamiento correspondiente (Yealink-XXXX-comun.cfg) establecer los siguientes parámetros:&lt;br /&gt;
&lt;br /&gt;
    remote_phonebook.data.1.url = http://&amp;lt;direc IP&amp;gt;/vivait-agenda/yealink/contactData1.xml &lt;br /&gt;
    remote_phonebook.data.1.name = NOMBRE DE LA AGENDA EN EL TELEFONO&lt;br /&gt;
&lt;br /&gt;
*En el archivo /etc/apache2/apache2.conf añadir tras el último Directory:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Directory /var/www/html/vivait-agenda/&amp;gt;&lt;br /&gt;
             AddType application/x-httpd-php .xml&lt;br /&gt;
             Options Indexes FollowSymLinks MultiViews&lt;br /&gt;
             AllowOverride None&lt;br /&gt;
             Order allow,deny&lt;br /&gt;
             allow from all&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Ejecutar el comando:&lt;br /&gt;
&lt;br /&gt;
    /etc/init.d/apache2 reload&lt;br /&gt;
&lt;br /&gt;
== Calendarios ==&lt;br /&gt;
&lt;br /&gt;
=== Enrutamiento inteligente ===&lt;br /&gt;
&lt;br /&gt;
Ante una llamada a un destino, si hay cita de ocupado en el calendario se desvia al número indicado en el campo &amp;quot;location&amp;quot; del calendario o a su buzon de voz si hay valor en dicho campo&lt;br /&gt;
&lt;br /&gt;
 same =&amp;gt; n,Set(CalendarBusy=${CALENDAR_BUSY(GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,Set(id=${CALENDAR_QUERY(GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,NoOP(hay ${CALENDAR_QUERY_RESULT(${id},getnum)} eventos)&lt;br /&gt;
 same =&amp;gt; n,Verbose(3,The state of GoogleCalendar is $&lt;br /&gt;
 {DEVICE_STATE(Calendar:GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,Set(CalendarLocation=${CALENDAR_QUERY_RESULT(GoogleCalendar,location)})&lt;br /&gt;
 same =&amp;gt; n,GotoIf($[&amp;quot;${CalendarBusy}&amp;quot;==&amp;quot;1&amp;quot;]?:conCategoria)&lt;br /&gt;
 same =&amp;gt; n,GotoIf($[&amp;quot;${CalendarLocation}&amp;quot;==&amp;quot;&amp;quot;]?buzon)&lt;br /&gt;
 same =&amp;gt; n,Goto(Cen_iniLlam,${CalendarLocation},1)&lt;br /&gt;
 same =&amp;gt; n(buzon),Playback(Particular/buzon)&lt;br /&gt;
 same =&amp;gt; n,Hangup&lt;br /&gt;
 same=&amp;gt; n(conCategoria),Goto(Cen_iniLlam,${EXTEN},1)&lt;br /&gt;
&lt;br /&gt;
=== Conexión de cliente Outlook a calendarios VIVAit mediante Caldav===&lt;br /&gt;
Por defecto, el cliente outlook no soporta Caldav; si queremos disponer de calendarios de VIVAit en Outlook tendríamos dos opciones:&lt;br /&gt;
# Tener los calendarios en el servidor Exchange&lt;br /&gt;
# Instalar un plugin en el cliente outlook que permita conectar vía Caldav los calendarios que estén ubicados en el servidor de calendarios de VIVAit&lt;br /&gt;
&lt;br /&gt;
Este howto se centra en esta segunda posibilidad&lt;br /&gt;
&lt;br /&gt;
Procedimiento: &lt;br /&gt;
&lt;br /&gt;
1.- Instalar Calldavsincronizer (valdrían otros plugin de Caldav para Outlook)&lt;br /&gt;
&lt;br /&gt;
[https://sourceforge.net/projects/outlookcaldavsynchronizer/ https://sourceforge.net/projects/outlookcaldavsynchronizer/]&lt;br /&gt;
&lt;br /&gt;
2.- Entrar en Synchronization Profiles en la nueva pestaña Calldav Syncronizer de outlook       [[File:Syncronizer.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.- Añadir nuevo perfil (tecla +)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Nuevo.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A tener en cuenta:&lt;br /&gt;
&lt;br /&gt;
*Crear un nuevo “Outlook folder”, entendemos que es adecuado (quizás necesario) para que las entradas de calendario de VIVAit queden diferenciadas.&lt;br /&gt;
*Lo mejor es haber creado antes el calendario en el servidor para que al darlo de alta en oulook comprobemos que se conecta.&lt;br /&gt;
*Dando al botón “Test or discover settings” se nos muestran todos los calendarios del servidor y elegimos el que queramos; en “elementos de la carpeta” diremos “elementos de calendario”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Calendario.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
== Uso de reloj hardware en nodos de procesamiento ==&lt;br /&gt;
&lt;br /&gt;
=== En nodo de procesamiento ACD ===&lt;br /&gt;
En un nodo de procesamiento ACD es obligatorio instalar dahdi y una tarjeta de primario para emplear reloj hardware, ya que el reloj software que va en el asterisk 1.4 es defectuoso.&lt;br /&gt;
Para configurarlo basta con instalar la tarjeta en el servidor, instalar dahdi y posteriormente ejecutar el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
 dahdi_cfg&lt;br /&gt;
&lt;br /&gt;
Este comando generaŕa el fichero /etc/dahdi/system.conf&lt;br /&gt;
&lt;br /&gt;
Para comprobar que el comando se ha ejecutado satisfactoriamente lo abriremos y tendrá que tener un formato semejante al siguiente ejemplo:&lt;br /&gt;
&lt;br /&gt;
 # Autogenerated by /usr/sbin/dahdi_genconf on Tue Oct 22 17:42:59 2013&lt;br /&gt;
 # If you edit this file and execute /usr/sbin/dahdi_genconf again,&lt;br /&gt;
 # your manual changes will be LOST.&lt;br /&gt;
 # Dahdi Configuration File&lt;br /&gt;
 #&lt;br /&gt;
 # This file is parsed by the Dahdi Configurator, dahdi_cfg&lt;br /&gt;
 #&lt;br /&gt;
 # Span 1: WCT1/0 &amp;quot;Digium Wildcard TE110P T1/E1 Card 0&amp;quot; HDB3/CCS/CRC4&lt;br /&gt;
 span=1,1,0,ccs,hdb3,crc4&lt;br /&gt;
 # termtype: te&lt;br /&gt;
 bchan=1-15,17-31&lt;br /&gt;
 dchan=16&lt;br /&gt;
 echocanceller=oslec,1-15,17-31&lt;br /&gt;
 # Global data&lt;br /&gt;
 loadzone        = es&lt;br /&gt;
 defaultzone     = es&lt;br /&gt;
&lt;br /&gt;
=== En nodo de procesamiento de corporativa ===&lt;br /&gt;
En un nodo de procesamiento de corporativa no obligatorio instalar dahdi y una tarjeta de primario para emplear reloj hardware, ya que el no se han detectado errores en el reloj por software. Sin embargo si instalamos dahdi y una tarjeta de primario para emplear reloj hardware, el sistema funcionará mejor.&lt;br /&gt;
Para configurarlo basta con instalar la tarjeta en el servidor, instalar dahdi y posteriormente ejecutar el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
 dahdi_cfg&lt;br /&gt;
&lt;br /&gt;
Este comando generaŕa el fichero /etc/dahdi/system.conf&lt;br /&gt;
&lt;br /&gt;
Para comprobar que el comando se ha ejecutado satisfactoriamente lo abriremos y tendrá que tener un formato semejante al siguiente ejemplo:&lt;br /&gt;
&lt;br /&gt;
 # Autogenerated by /usr/sbin/dahdi_genconf on Tue Oct 22 17:42:59 2013&lt;br /&gt;
 # If you edit this file and execute /usr/sbin/dahdi_genconf again,&lt;br /&gt;
 # your manual changes will be LOST.&lt;br /&gt;
 # Dahdi Configuration File&lt;br /&gt;
 #&lt;br /&gt;
 # This file is parsed by the Dahdi Configurator, dahdi_cfg&lt;br /&gt;
 #&lt;br /&gt;
 # Span 1: WCT1/0 &amp;quot;Digium Wildcard TE110P T1/E1 Card 0&amp;quot; HDB3/CCS/CRC4&lt;br /&gt;
 span=1,1,0,ccs,hdb3,crc4&lt;br /&gt;
 # termtype: te&lt;br /&gt;
 bchan=1-15,17-31&lt;br /&gt;
 dchan=16&lt;br /&gt;
 echocanceller=oslec,1-15,17-31&lt;br /&gt;
 # Global data&lt;br /&gt;
 loadzone        = es&lt;br /&gt;
 defaultzone     = es&lt;br /&gt;
&lt;br /&gt;
== Aprovisionamiento terminales Cisco ==&lt;br /&gt;
=== Configurar protocolo SIP TCP o UDP en terminal Cisco ===&lt;br /&gt;
&lt;br /&gt;
Configuración de terminal Cisco para para funcionar bajo TCP o UDP:&lt;br /&gt;
Modificar parámetro&lt;br /&gt;
 &amp;lt;transportLayerProtocol&amp;gt;X&amp;lt;/transportLayerProtocol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde X es:&lt;br /&gt;
    1: TCP&lt;br /&gt;
    2: UDP&lt;br /&gt;
    4: Valor por defecto del firmware (al menos en la última versión equivale a TCP)&lt;br /&gt;
&lt;br /&gt;
=== Habilitar/Deshabilitar llamada en espera en terminales Cisco ===&lt;br /&gt;
&lt;br /&gt;
En el fichero de aprovisionamiento del terminal añadiremos la siguiente linea&lt;br /&gt;
 &amp;lt;callWaiting&amp;gt;X&amp;lt;/callWaiting&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde X es:&lt;br /&gt;
   0=off but can be changed through the settings menu.&lt;br /&gt;
   1=on but can be changed through the settings menu.&lt;br /&gt;
   2=off and locked so it can't be changed through the settings menu.&lt;br /&gt;
   3=on and locked so it can't be changed through the settings menu.&lt;br /&gt;
&lt;br /&gt;
== Como configurar servicio DHCP en Ubuntu Linux ==&lt;br /&gt;
=== ¿Que es un servicio DHCP? ===&lt;br /&gt;
Un servidor Dynamic Host Configuration Protocol (DHCP) asigna dinámicamente las direcciones IP y otras configuraciones de red a otros terminales que están conectados a la red.&lt;br /&gt;
&lt;br /&gt;
=== Instalar un servicio DHCP ===&lt;br /&gt;
Para instalar el servidor de asignacion automatica de direccion IP ejecutamos el comando:&lt;br /&gt;
 sudo apt-get install isc-dhcp-server&lt;br /&gt;
&lt;br /&gt;
=== Configurando el servicio DHCP ===&lt;br /&gt;
Editamos el archivo /etc/dhcp/dhcpd.conf creando primero un backup del mismo:&lt;br /&gt;
 mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.original&lt;br /&gt;
 nano /etc/dhcp/dhcpd.conf&lt;br /&gt;
&lt;br /&gt;
El archivo debe quedar de una forma muy similar a esta:&lt;br /&gt;
 authoritative&lt;br /&gt;
 subnet  10.254.239.0 netmask 255.255.255.254&lt;br /&gt;
 {&lt;br /&gt;
 range dynamic-bootp  10.254.239.40 10.254.239.60;&lt;br /&gt;
 option domain-name-servers ns1.example.org, ns2.example.org;&lt;br /&gt;
 option domain-name &amp;quot;example.org&amp;quot;;&lt;br /&gt;
 option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org ;&lt;br /&gt;
 option broadcast-address 10.254.239.255;&lt;br /&gt;
 default-lease-time 3600;&lt;br /&gt;
 max-lease-time 7200;&lt;br /&gt;
 option option-150 10.254.239.25&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Donde los campos:&lt;br /&gt;
*subnet: Direccion de red&lt;br /&gt;
*netmask: Máscara de red&lt;br /&gt;
*range dynamic-bootp: Rango de IPs que va a proporcionar el DHCP&lt;br /&gt;
*option domain-name-servers: Direcciones IPs de los DNS&lt;br /&gt;
*option domain-name: Nombre de dominio&lt;br /&gt;
*option routers:IPs de las puertas de enlace&lt;br /&gt;
*option broadcast-address: Dirección de broadcast&lt;br /&gt;
*default-lease-time: Tiempo de concesión por defecto&lt;br /&gt;
*max-lease-time: Valor máximo del tiempo de concesión&lt;br /&gt;
*option option-150: IPs de los servidores TFTPs que tiene la red&lt;br /&gt;
&lt;br /&gt;
===  Reiniciamos el servicio ===&lt;br /&gt;
 service isc-dhcp-server restart&lt;br /&gt;
&lt;br /&gt;
=== Direcciones IP estáticas basadas en la MAC ===&lt;br /&gt;
Pueden conocerse las MAC de las máquinas conectadas a la red ejecutando el comando arp desde la terminal.&lt;br /&gt;
&lt;br /&gt;
 host ejemplo {&lt;br /&gt;
        hardware ethernet 00:0B:82:19:A8:04;&lt;br /&gt;
        option option-150 10.254.239.0;&lt;br /&gt;
 #      fixed-address 10.254.239.52;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Protocolo Skinny en VIVAit Call mediante uso de Chan-SCCP ==&lt;br /&gt;
=== Instalación de chan_sccp ===&lt;br /&gt;
*Copiar el fichero chan-sccp-4.2.1.1.tar.gz en el directorio donde estén los fuentes de Asterisk (normalmente /usr/src/MDtel)&lt;br /&gt;
*Descomprimir&lt;br /&gt;
*Entrar al directorio chan-sccp-4.2.1.1&lt;br /&gt;
*Ejecutar: ./configure --with-asterisk=../DIRECTORIO_ASTERISK --enable-conference. Donde DIRECTORIO_ASTERISK es el nombre del directorio donde están los fuentes de asterisk.&lt;br /&gt;
*Tras el ejecutar el configure (si todo va bien al final se verá un resumen con el S.O, arquitectura, etc), ejecutar make y make install&lt;br /&gt;
*El nuevo módulo chan_sccp.so se generará dentro del DIRECTORIO_ASTERISK en lib/asterisk/modules/ y se deberá copiar en /usr/lib/asterisk/modules/&lt;br /&gt;
*Copiar el fichero sccp.conf a /etc/asterisk&lt;br /&gt;
*Entra a Asterisk y ejecutar: module load chan_sccp.so&lt;br /&gt;
*Si se ha cargado correctamente, desde dentro de Asterisk, si se teclea sccp show version deberá devolver: &amp;quot;Skinny Client Control Protocol (SCCP). Release: 4.3.0 4.3.0 - unknown (built by 'root' on '2016-06-01 10:42:32 UTC')&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Crear extensiones ===&lt;br /&gt;
*En el portal crear una nueva clase de dispositivo (Vivait-Call/Dispositivos/Clases de dispositivos), donde la clase sea extensión la subclase H323 (todavía no existe la subclase SCCP) y el formato SCCP/${DEST}&lt;br /&gt;
*Crear la nueva extensión, pero el dispositivo debe ser el creado en el campo anterior.&lt;br /&gt;
*Las extensiones creadas habrá que añadirlas al fichero sccp.conf así como los teléfonos que las usarán. En el fichero sccp.conf incluido hay ejemplos.&lt;br /&gt;
&lt;br /&gt;
=== Aprovisionamiento ===&lt;br /&gt;
Los terminales se aprovisionan de la misma manera que los SIP, exceptuando que las plantillas XML no tiene referencias a SIP. Se incluye un xml genérico con todas las opciones.&lt;br /&gt;
Dentro del directorio chan-sccp-4.2.1.1 hay un directorio conf con todos los archivos de configuración necesarios. Las versiones annotated contienen todas las opciones posibles comentadas.&lt;br /&gt;
&lt;br /&gt;
== Instalación y configuración Postfix en RedHat7 ==&lt;br /&gt;
&lt;br /&gt;
'''Postfix''' es un ''servidor de correo'' de software libre/código abierto, un programa informático para el enrutamiento y envío de correo electrónico.&lt;br /&gt;
&lt;br /&gt;
=== Instalación ===&lt;br /&gt;
 yum install postfix&lt;br /&gt;
&lt;br /&gt;
=== Configuración ===&lt;br /&gt;
Sobre la configuración de postfix por defecto (recién instalado):&lt;br /&gt;
Editar el fichero /etc/postfix/main.cf&lt;br /&gt;
 inet_protocols = ipv4&lt;br /&gt;
 relayhost = smtp.renfe.es&lt;br /&gt;
Revisar la configuración:&lt;br /&gt;
 postfix check&lt;br /&gt;
Configurar postfix como servicio (sólo en redhat y similares)&lt;br /&gt;
 chkconfig postfix on&lt;br /&gt;
Iniciar postfix:&lt;br /&gt;
 service postfix start&lt;br /&gt;
Instalar mailx para disponer de los comandos mail y sendmail:&lt;br /&gt;
 yum install mailx&lt;br /&gt;
Probar configuración:&lt;br /&gt;
 echo &amp;quot;Prueba de correo&amp;quot; | mail -vs &amp;quot;Prueba&amp;quot; correo@destino.soy&lt;br /&gt;
&lt;br /&gt;
== Como crear un TRIGGER en Zabbix ==&lt;br /&gt;
&lt;br /&gt;
'''1.''' Hay '''dos posibilidades''' dependiendo si el trigger es para un solo host o es para varios, los cuales tienen en común un template:&lt;br /&gt;
&lt;br /&gt;
:# Si es para ''un host'': Ir a '''Configuración/Hosts'''&lt;br /&gt;
:# Si es para ''un template'': Ir a '''Configuración/Templates'''&lt;br /&gt;
&lt;br /&gt;
'''2.''' En la fila correspondiente al host/template al que queramos añadirle el trigger, pulsar sobre la '''columna triggers.'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''3.''' En la ventana de triggers, pulsar sobre el botón '''Create trigger''', situado en la esquina superior derecha.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''4.''' Aparecerá la ventana de creación de triggers, que tiene los siguientes campos:&lt;br /&gt;
:1. '''Name:''' Nombre del trigger, que deberá ser lo ''suficientemente descriptivo''. Aparecerá cuando se&lt;br /&gt;
active, en la ventana principal de Zabbix así como en los correos de aviso.&lt;br /&gt;
:2. '''Expression:''' Define la fórmula cuyo resultado activará el trigger. Hay que pulsar el botón '''Add'''. Se mostrará una &lt;br /&gt;
nueva ventana donde habrá que elegir el item (medida) sobre el que se basará el trigger (evidentemente la medida deberá &lt;br /&gt;
existir previamente) y la función necesaria para el cálculo. Para una descripción de las disponibles dirigirse a &lt;br /&gt;
https://www.zabbix.com/documentation/2.2/manual/appendix/triggers/functions.&amp;lt;br/&amp;gt;&lt;br /&gt;
Tras rellenar los campos anteriores y dar a la función los valores que necesite pulsar el botón '''Insert.'''&lt;br /&gt;
:3. '''Expression constructor:''' Permite crear expresiones complejas, uniendo varias.&lt;br /&gt;
:4. '''Description:''' Una explicación del trigger&lt;br /&gt;
:5. '''Severity:''' Criticidad el trigger&lt;br /&gt;
:6. Para una descripción del resto de campos visitar la página: https://www.zabbix.com/documentation/2.2/manual/config/triggers/trigger&lt;br /&gt;
'''5.''' Tras rellenar los campos, pulsar el botón '''Save'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''6.''' Si el trigger se ha añadido en un template, aparecerá en todos los hosts que tienen el template configurado.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''7.''' '''El trigger por si solo no envía ningún aviso''', solo se activa si se cumple la expresión definida.&lt;br /&gt;
Para enviar un aviso (normalmente un correo electrónico) cuando se active el trigger, será necesario definir una acción (Configuración/Actions).&lt;br /&gt;
&lt;br /&gt;
 '''NOTA.-''' Para consultar cualquier cuestión relativa a Zabbix, se encuentra a su disposición el manual: &amp;lt;br/&amp;gt;&lt;br /&gt;
 https://www.zabbix.com/documentation/2.2/manual&lt;br /&gt;
&lt;br /&gt;
== Como mostrar callername queues FOP2 ==&lt;br /&gt;
&lt;br /&gt;
Es necesario añadir el siguiente código al contexto de entrada:&lt;br /&gt;
&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Connect connid localhost usuario clave bd)&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Query resultid ${connid} SELECT\ firstname\,lastname\ from\ fop2\ where\ phone1=${CALLERID(num)}\ OR\ phone2=${CALLERID(num)})&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Fetch fetchid ${resultid} nombre apellidos)&lt;br /&gt;
 exten =&amp;gt; _X.,n,GotoIf($[${fetchid} = 1]?:noExiste)&lt;br /&gt;
 exten =&amp;gt; _X.,n,Set(CALLERID(name)=${nombre}${apellidos})&lt;br /&gt;
 exten =&amp;gt; _X.,n(noExiste),Continuar&lt;br /&gt;
&lt;br /&gt;
En la primera línea cambiar según lo necesario:&lt;br /&gt;
&lt;br /&gt;
*localhost: Dirección IP del servidor de MySQL donde está la BBDD de FOP2&lt;br /&gt;
*usuario: Usuario con permisos de acceso a la bbdd de FOP2&lt;br /&gt;
*clave: Clave del usuario&lt;br /&gt;
*bd: Nombre de la BBDD&lt;br /&gt;
&lt;br /&gt;
== Como ver los directorios de un NAS a montar con NFS ==&lt;br /&gt;
&lt;br /&gt;
Con el siguiente comando vemos los diferentes volúmenes de un NAS:&lt;br /&gt;
&lt;br /&gt;
 showmount -e IP_NAS&lt;br /&gt;
&lt;br /&gt;
Ejemplo de salida:&lt;br /&gt;
&lt;br /&gt;
 Export list for 192.168.10.10:&lt;br /&gt;
 /Backup/backup       *&lt;br /&gt;
 /DISCOS_1/VOL1_AUDIO *&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Instalación de ActivaSTP con VIVAit Call 3 y marcación desde Outlook ==&lt;br /&gt;
&lt;br /&gt;
Instalamos ActivaSTP desde:&lt;br /&gt;
 &lt;br /&gt;
 (http://activa.sourceforge.net/)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- *SIPTAPI, según la pagina Web, su ultima versión publicada es del 2014 con versión 0.2.17 (http://activa.sourceforge.net/)&lt;br /&gt;
&lt;br /&gt;
Hemos probado con http://www.xtelsio.com/en/products/ast_tsp/tapi_for_asterisk.htm.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La configuración necesaria se muestra en la siguiente imagen:&lt;br /&gt;
&lt;br /&gt;
[[File:Ventana ActivaTSP.jpg]]&lt;br /&gt;
&lt;br /&gt;
 El usuario del manager debe tener permisos originate para poder realizar llamadas.&lt;br /&gt;
&lt;br /&gt;
Se han realizado pruebas con Outlook 2013.&lt;br /&gt;
&lt;br /&gt;
Se ha comprobado la correcta realización de pruebas utilizando ActivaSTP, realizadon llamadas desde la pestaña &amp;quot;personas&amp;quot; con la vista en modo tarjeta de Pesentación, tarjeta, teléfono o lista.&lt;br /&gt;
&lt;br /&gt;
Outlook 2013 no da la opción de llamar si la vista está en modo personas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Como volver a procesar grabaciones con error ==&lt;br /&gt;
&lt;br /&gt;
Las grabaciones con error son aquellas que tienen el valor E_GRABACION=120 en la tabla DAT_GRABACIONES.&lt;br /&gt;
&lt;br /&gt;
Las grabaciones con error se produce normalmente a perdida de conexión entre el nodo servidor de grabaciones y el resto.&lt;br /&gt;
&lt;br /&gt;
Para reprocesar la grabación hay que modificar el campo E_GRABACION de la tabla DAT_GRABACIONES y ponerlo con valor 20 para que así el recordCentral la vuelva a procesar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== FOP2. Problemas en transferencias asistidas ==&lt;br /&gt;
&lt;br /&gt;
 Para habilitar la transferencia atendida del asterisk (funcion atxfer), hay que poner la opción tT en el queue() si la llamada origen la realiza a una cola o &lt;br /&gt;
 al dial() de las extensiones.&lt;br /&gt;
 Con eso vemos como al intentar hacer la llamada de consulta ya se va a nuestro dialplan. Sin embargo la llamada no funciona ya que el enrutador nos da error de&lt;br /&gt;
 enrutamiento porque no tenemos ID_DISPOSITIVO origen ya que el fop no es un elemento creado desde el portal.&lt;br /&gt;
 Por lo que se propone como solución crear un contexto de inicio del fop y asignarle un ID_DISPOSITIVO para que así se enrute la llamada. El contexto tienen que&lt;br /&gt;
 ser similar a ext_InicioLlamada_Chrome.conf&lt;br /&gt;
&lt;br /&gt;
Para que funcione las transferencias supervisadas desde el fop2 hay que realizar lo siguiente:&lt;br /&gt;
&lt;br /&gt;
*El usuario del manager debe tener permisos Atxfer para poder realizar transferencias.&lt;br /&gt;
*Habilitar la transferencia atxfer en el fuatures.conf del asterisk. atxfer =&amp;gt; *2&lt;br /&gt;
*Crear el fichero ext_InicioLlamada_FOP.conf con el siguiente contenido:&lt;br /&gt;
&lt;br /&gt;
 [Cen_Inicio_FOP]&lt;br /&gt;
 exten =&amp;gt; [*#%0-9].,1,NoOp(MDINICHR**EXTEN=${EXTEN}**CID=${CHROME_ANI}*)&lt;br /&gt;
 same =&amp;gt; n,dumpchan()&lt;br /&gt;
 ;same =&amp;gt; n,Set(CALLERID=${CHROME_ANI})&lt;br /&gt;
 same =&amp;gt; n,Gosub(Cen_Sub_getIdExtension,s,1(${R_CID_NUM_00}))&lt;br /&gt;
 same =&amp;gt; n,ExecIf($[&amp;quot;${GOSUB_RETVAL}&amp;quot;!=&amp;quot;OK&amp;quot; | &amp;quot;${sqlDato}&amp;quot;=&amp;quot;&amp;quot;]?HangUp)&lt;br /&gt;
 same =&amp;gt; n,Set(ID_DISPOSITIVO=${sqlDato})&lt;br /&gt;
 ; . Modificar MARCAR en funcion de reglas de marcacion saliente (prefijo 0, ...)&lt;br /&gt;
 ; Esto se modificara en el contexto Cen_Inicio_Chrome_Particular&lt;br /&gt;
 same =&amp;gt; n,Set(MARCAR=${EXTEN})&lt;br /&gt;
 ;---------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ;--- Llamada a contexto particular&lt;br /&gt;
 ;---------------------------------&lt;br /&gt;
 ; Esta llamada es para hacer cosas especcificas del cliente (cambiar callerid...)&lt;br /&gt;
 ; La subrutina Cen_Inicio_Chrome_Particular esta en el archivo ext_InicioLlamada_Chrome_Particular.conf&lt;br /&gt;
 ; Si no existe el archivo copiar el archivo ext_InicioLlamada_Chrome_Particular.conf.ejemplo como ext_Inicio_Chrome_Particular.conf&lt;br /&gt;
 ; y realizar las modificaciones necesarias&lt;br /&gt;
 ; El fichero ext_InicioLlamada_Chrome_Particular.conf se carga automaticamente al ser creado con el include de ext_InicioLlamada.conf&lt;br /&gt;
 ; #include &amp;quot;ext_InicioLlamada*.conf&amp;quot;&lt;br /&gt;
 ;&lt;br /&gt;
 same =&amp;gt; n,GosubIf($[${DIALPLAN_EXISTS(Cen_Inicio_FOP_Particular,${EXTEN},1)}&amp;gt;0]?Cen_Inicio_FOP_Particular,${EXTEN},1)&lt;br /&gt;
 same =&amp;gt; n,Goto(Cen_Inicio_SIP,${MARCAR},1)&lt;br /&gt;
&lt;br /&gt;
*En el fichero /usr/local/fop2/buttons.cfg poner como contexto de las extensiones el creado anteriormente (Cen_Inicio_FOP)&lt;br /&gt;
*Modificar el fichero /usr/local/fop2/fop2.cfg:&lt;br /&gt;
&lt;br /&gt;
 blind_transfer = 0&lt;br /&gt;
 supervised_transfer = 1&lt;br /&gt;
&lt;br /&gt;
Para realizar la transferencia con consulta, hay que pulsar el supervised transfer del FOP2 y una vez se haya establecido la llamada, seleccionar la extensión que &amp;quot;sobra&amp;quot; en la conversación y pulsar la tecla de hangup y colgar la llamada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Problemas de conmutación en cluster ==&lt;br /&gt;
El problema detectado fue que en la conmutacion de maquinas en el cluster cuando el control lo tiene la maquina 2 no funciona el servicio phoneprov-tftp.&lt;br /&gt;
&lt;br /&gt;
Hay que hacer las siguientes comprobaciones:&lt;br /&gt;
&lt;br /&gt;
 Que el directorio /var/lib/phoneprov-tftp esté en la partición /HDcluster&lt;br /&gt;
 Que fichero /etc/MDtel/phoneprov-tftp esté puesta como IP de la máquina la IP flotante del cluster (campo $dbHost)&lt;br /&gt;
 Que el servicio phoneprov-tftp del directorio /usr/local/sbin/phoneprov-tftp.pl tenga permisos de ejecución 755&lt;br /&gt;
 Que exista el fichero /etc/init/phoneprov-tftp.conf&lt;br /&gt;
&lt;br /&gt;
Para más información ver los log del phoneprov en /var/log/phoneprov-tftp.log&lt;br /&gt;
&lt;br /&gt;
El problema era que no se encontraba instalado el paquete phoneprov-tftp, hay que instalarlo manualmente. Instalar el paquete libnet-tftpd-perl.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Como borrar contenido de la tabla BDTR con el script borraRegistrosNimitz.pl ==&lt;br /&gt;
&lt;br /&gt;
Este script se ejecuta mediante una tarea del crontab, tal como la siguiente:&lt;br /&gt;
&lt;br /&gt;
 SHELL=/bin/sh&lt;br /&gt;
 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin&lt;br /&gt;
 # m h dom mon dow user  command&lt;br /&gt;
 00 01     * * *   root    /usr/local/sbin/borraRegistrosNimitz.pl --hDB localhost&lt;br /&gt;
&lt;br /&gt;
Para establecer el número de días que vamos a dejar en la base de datos debemos editar el archivo borraRegistrosNimitz.pl, el campo my $numDias&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Howto%27s&amp;diff=5996</id>
		<title>Howto's</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Howto%27s&amp;diff=5996"/>
		<updated>2017-07-26T06:59:21Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* FOP2. Problemas en transferencias asistidas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!! VIVAit Call&lt;br /&gt;
VIVAit Suite&lt;br /&gt;
&lt;br /&gt;
VIVAit Fax&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Como parar asterisk ==&lt;br /&gt;
En situaciones límite en el que es necesario parar el asterisk y volver a arrancarlo hay que realizar los siguientes pasos:&lt;br /&gt;
&lt;br /&gt;
 Entrar en la consola de asterisk e introducir el comando core stop now&lt;br /&gt;
&lt;br /&gt;
 Si esto no funciona, tendremos que matar el proceso a mano. Esto es, primero el safe asterisk y luego el asterisk mediante el comando &lt;br /&gt;
 kill -9 nºPID&lt;br /&gt;
 &lt;br /&gt;
 Tras estos pasos, volveremos a arrancar el servicio asterisk mediante /etc/init.d/asterisk start&lt;br /&gt;
&lt;br /&gt;
== Como configurar la megafonía ==&lt;br /&gt;
&lt;br /&gt;
El servicio de megafonía se basa en el protocolo multicast.&lt;br /&gt;
&lt;br /&gt;
Para configurar la megafonía tenemos que activar en los teléfonos que para que estén &amp;quot;escuchando&amp;quot; en una dirección multicast y tener un emisor en esa dirección multicast.&lt;br /&gt;
&lt;br /&gt;
Los teléfonos suelen tener en su configuración un apartado para configurar el multicast. Por ejemplo en los yealink está en la pestaña directory sección multicast IP.&lt;br /&gt;
&lt;br /&gt;
En los teléfonos se puede configurar manualmente o incluirlo en las plantillas de aprovisionamiento.&lt;br /&gt;
&lt;br /&gt;
El asterisk tiene un canal para hacer multicast. Este canal es MulticastRTP.&lt;br /&gt;
&lt;br /&gt;
Para esto podemos crear un VDN que contenga la siguiente línea. (en el ejemplo la dirección multicast es 239.0.126.1 y el puerto es el 10001).&lt;br /&gt;
&lt;br /&gt;
 [Cen_VDN_90000]&lt;br /&gt;
 exten =&amp;gt; _X.,1,NoOp(MDVDN_90000*****EXTEN=${EXTEN}**CID=${CALLERID(NUM)}**UCID=${UCID}*)&lt;br /&gt;
  same =&amp;gt;     n,Answer&lt;br /&gt;
  same =&amp;gt;     n,Dial(MulticastRTP/basic/239.0.126.1:10001)&lt;br /&gt;
 include =&amp;gt; Cen_finLlamada&lt;br /&gt;
&lt;br /&gt;
== Como configurar el candado ==&lt;br /&gt;
El candado permite prohibir temporalmente la posibilidad de realizar llamadas hacia fuera. Sí se pueden seguir haciendo llamadas a extensiones fijas de la plataforma, es decir, llamadas sin coste.&lt;br /&gt;
&lt;br /&gt;
Para configurar dicha funcionalidad basta con crear extensiones con la categoría mas restrictiva posible y habilitar la movilidad, con lo que la extensión solo tendrá &amp;quot;permisos&amp;quot; para realizar llamadas internas.&lt;br /&gt;
&lt;br /&gt;
Para permitir llamadas externas solo hay que &amp;quot;mover&amp;quot; a un usuario con categoría suficiente a la extensión deseada.&lt;br /&gt;
== Como crear un grupo de captura y que se vea en cada teléfono el número que llama ==&lt;br /&gt;
&lt;br /&gt;
'''ATENCIÓN: SE CREAN CONFIGURACIONES NO REFLEJADAS EN PORTAL DE ADMINISTRACIÓN'''&lt;br /&gt;
&lt;br /&gt;
Para la simulación de grupos de captura y conseguir que todos los terminales vean el ANI del llamante:&lt;br /&gt;
&lt;br /&gt;
- Hacen falta teléfonos con dos líneas&lt;br /&gt;
&lt;br /&gt;
- Cada teléfono del grupo tiene en la línea 1 su extensión habitual (por ejemplo 40000)&lt;br /&gt;
&lt;br /&gt;
- Además, en el fichero &amp;quot;sip_Estatico.conf&amp;quot;, creamos una segunda extensión para cada teléfono, que le ocupará la segunda línea (por ejemplo 42000)&lt;br /&gt;
&lt;br /&gt;
- En esta segunda linea ponemos que cuando se llame tenga otro tono de llamada (un beep o nada...) que se asemeje en funcionamiento al de un mensaje de llamada en otra extension de mi grupo de captura&lt;br /&gt;
&lt;br /&gt;
- Se ha creado una variable global por cada teléfono en el fichero de variables &amp;quot;ext_MDtel_Particular.conf&amp;quot; de nombre EXTxxxxx (por ejemplo EXT40000); esa variable contiene las otras extensiones virtuales del grupo&lt;br /&gt;
por ejemplo EXT40000=&amp;gt;SIP/42001&amp;amp;SIP/42005&lt;br /&gt;
&lt;br /&gt;
- Hemos creado en el dialplan programación para que cuando exista esa variable global se añada a la marcación el contenido&lt;br /&gt;
&lt;br /&gt;
== Como crear supletorios ==&lt;br /&gt;
&lt;br /&gt;
'''ATENCIÓN: SE CREAN CONFIGURACIONES NO REFLEJADAS EN PORTAL DE ADMINISTRACIÓN'''&lt;br /&gt;
&lt;br /&gt;
Igual que el caso anterior pero en la variable ponemos números reales. Debido a un bug en el enrutador, que no devuelve la variable R_PARA, en el fichero ext_MARCAR_Extension.conf hay que sustituir la siguiente linea:&lt;br /&gt;
 &lt;br /&gt;
 ;same =&amp;gt;                   n,ExecIf($[&amp;quot;${EXT${R_PARA}}&amp;quot;=&amp;quot;&amp;quot;]?NoOp:Set(ENR_CADMARCAR=${ENR_CADMARCAR}&amp;amp;${EXT${R_PARA}}))&lt;br /&gt;
Por esta otra:&lt;br /&gt;
  same =&amp;gt;                   n,ExecIf($[&amp;quot;${EXT${R_DEST_${ENR_RUTA_CAD}}}&amp;quot;=&amp;quot;&amp;quot;]?NoOp:Set(ENR_CADMARCAR=${ENR_CADMARCAR}&amp;amp;${EXT${R_DEST_${ENR_RUTA_CAD}}}))&lt;br /&gt;
ATENCIÓN !!! en las llamadas salientes cada uno presenta su número&lt;br /&gt;
&lt;br /&gt;
Para emplear números externos en los supletorios hay que poner, al crear la variable que hemos explicado en el apartado anterior en el ext_MDtel_Particular.conf: &lt;br /&gt;
&lt;br /&gt;
 EXT335=&amp;gt;SIP/0999999999@Trunk_Movil ;En este caso suena en la ext 335 y en el móvil 999999999&lt;br /&gt;
&lt;br /&gt;
== Generación de llamada automática ==&lt;br /&gt;
&lt;br /&gt;
Para activar la funcionalidad es necesario lo siguiente: &lt;br /&gt;
&lt;br /&gt;
* Definir una variable ID_LISTA_LLAMAME con el ID de la lista que se va a usar para generar la llamada. Cuando se cree la lista hay que asegurarse que el campo &amp;quot;Nº segundos límite&amp;quot; tiene un valor lo suficientemente amplio para evitar que la llamada caduque antes de ejecutarse.&lt;br /&gt;
&lt;br /&gt;
* Establecer un timeout para la cola (en el Gosub Cen_Sub_GrupoACD se indica justo después de ${COLA})&lt;br /&gt;
&lt;br /&gt;
* Llamar a la función de MySQL ACD_FUNC_LLAMAME_CREAR a través de MDintz&lt;br /&gt;
&lt;br /&gt;
* En la función se usan los siguientes elementos variables:&lt;br /&gt;
&lt;br /&gt;
        ${ID_LISTA_LLAMAME}: Definida antes clienteTOCola: &lt;br /&gt;
        Nombre del cliente. Al no tener ningún nombre, se usa un denominador genérico&lt;br /&gt;
        ${CALLERID}: Número llamante, donde se dirigirá la llamada.&lt;br /&gt;
&lt;br /&gt;
Ejemplo:&lt;br /&gt;
&lt;br /&gt;
 [Cen_VDN_99001]&lt;br /&gt;
 ;----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 ;----------------------- VDN 99001 ------------------------------------------------------------&lt;br /&gt;
 ;----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 exten =&amp;gt; _X.,1,NoOp(MDENTGW_99001*****EXTEN=${EXTEN}**CID=${CALLERID(NUM)}**UCID=${UCID}*)&lt;br /&gt;
  same =&amp;gt;     n,Set(__COLA=89001)&lt;br /&gt;
  same =&amp;gt;     n,Set(ctiDiriTrato=0)&lt;br /&gt;
  same =&amp;gt;     n,Set(ctiDiriInterface=)&lt;br /&gt;
  same =&amp;gt;     n,Set(ID_LISTA_LLAMAME=2)&lt;br /&gt;
  same =&amp;gt;     n(cola),Gosub(Cen_Sub_GrupoACD,${EXTEN},1(${COLA},10,,Si,))&lt;br /&gt;
  same =&amp;gt;     n,GotoIf($[&amp;quot;${QUEUESTATUS}&amp;quot;!=&amp;quot;TIMEOUT&amp;quot;]?colgar)&lt;br /&gt;
  same =&amp;gt;     n,MDintz(nimitz|bd|sqlDato|select ACD_FUNC_LLAMAME_CREAR(CURRENT_TIMESTAMP\,${ID_LISTA_LLAMAME}\,&amp;quot;&amp;quot;\,&amp;quot;clienteTOCola&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,1\,&amp;quot;&amp;quot;\,&amp;quot;${CALLERID(NUM)}&amp;quot;\,1\,3\,1\,&amp;quot;&amp;quot;\,0\,0\,0\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;))&lt;br /&gt;
  same =&amp;gt;     n,GotoIf($[&amp;quot;${MDintzRes}&amp;quot;=&amp;quot;OK&amp;quot;]?colgar)&lt;br /&gt;
  same =&amp;gt;     n,NoOp(ACD_FUNC_LLAMAME_CREAR ${MDintzRes})&lt;br /&gt;
  same =&amp;gt;     n(colgar),Hangup&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cancelación de eco en la plataforma ==&lt;br /&gt;
&lt;br /&gt;
Comprobar que el chan_dahdi.conf este configurado los parametros: &lt;br /&gt;
 echocancel=yes&lt;br /&gt;
 echocancelwhenbridged=yes&lt;br /&gt;
 Jugar con los valores txgain y rxgain &lt;br /&gt;
&lt;br /&gt;
Si esto no es suficiente el siguiente paso sería emplear una canceladora de echo por hardware.&lt;br /&gt;
&lt;br /&gt;
== Como &amp;quot;dar paso&amp;quot; a través de un enlace exterior si hay una llamada para una extensión creada en el sistema pero no registrada ==&lt;br /&gt;
&lt;br /&gt;
Este procedimiento es de utilidad en procesos de migración, en los que recibimos las llamadas de la RTC, nos las quedamos si la extensión ya está registrada en VIVAit y la mandamos hacia la plataforma a migrar si aún sigue migrada ahí&lt;br /&gt;
&lt;br /&gt;
El procedimiento es:&lt;br /&gt;
* Activar desvío por no contesta en la extensión (portal de administración - VIVAit Call - Dispositivos - Extensiones - campo &amp;quot;Desvio no contesta&amp;quot;, indicando como destino un prefijo (por ejemplo &amp;quot;99&amp;quot;) seguido de la extensión destino&lt;br /&gt;
&lt;br /&gt;
* Creamos una preruta en vivait-call - rutas -prerutas con origen &amp;quot;99&amp;quot;, le quitamos el prefijo en campo &amp;quot;Destino saliente 1&amp;quot; (valor -2) e indicamos en campo &amp;quot;Tipo destino sal. 1&amp;quot; como &amp;quot;Ruta externa&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Debera existir una ruta externa para esa numeración&lt;br /&gt;
&lt;br /&gt;
== Comprobación de versiones de elementos de la plataforma ==&lt;br /&gt;
&lt;br /&gt;
'''Aplicaciones'''&lt;br /&gt;
:* Botón derecho del ratón, Acerca De&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Portales'''&lt;br /&gt;
:* En el Vivait-Call, en la pantalla de inicio de sesión pone el número de versión del portal.&lt;br /&gt;
:* Tanto en el Monitor como en el Tracker no se puede saber.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Demonios'''&lt;br /&gt;
:* Mediante el comando nc localhost &amp;lt;Puerto demonio&amp;gt;. Ejemplo:&lt;br /&gt;
::nc localhost 1120&lt;br /&gt;
::motorSal sis ver='03.02.00' inic='20150427 123457' alarmas=0 ultAlar='00000000000000'&lt;br /&gt;
::motorSal gmp msj=253/256 buf=256/256 tarea=99/102&lt;br /&gt;
::motorSal tmp uptime=12624 (0d 3h 30m 24s)&lt;br /&gt;
::motorSal mtr mys=1 ocup=0% planif=13(0) intento=11(0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::Ejemplos puertos demonios:&lt;br /&gt;
:::*1111: vivait-cti&lt;br /&gt;
:::*1112: myAcdSuperv&lt;br /&gt;
:::*1113: recordNodo&lt;br /&gt;
:::*1114: recordCentral&lt;br /&gt;
:::*1115: intz-nimitz&lt;br /&gt;
:::*1120: motorSal&lt;br /&gt;
:::*1123: phoneprov-tftp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Base de datos'''&lt;br /&gt;
:* No se puede saber la versión a no ser que se comparen esquemáticos con los subidos en el redmine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:administrador]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:VIVAit Suite]]&lt;br /&gt;
[[Category:VIVAit Fax]]&lt;br /&gt;
&lt;br /&gt;
== Añadir Auto-Answer a la cabecera SIP ==&lt;br /&gt;
&lt;br /&gt;
Si queremos que un teléfono tenga autoanswer:&lt;br /&gt;
* En el peer poner: headeraa=Call-Info: answer-after=0, esto tiene que ir en la plantilla de la extensión o como campo en la extensión. Dependiendo del terminal que utilicemos el valor de este campo variará:&lt;br /&gt;
&lt;br /&gt;
    Aastra: Alert-Info: info=alert-autoanswer&lt;br /&gt;
    Grandstream: Call-Info: answer-after=0&lt;br /&gt;
    Linksys: Call-Info:\;Answer-After=0&lt;br /&gt;
    Polycom: Alert-Info: Ring Answer&lt;br /&gt;
    Snom: Call-Info: answer-after=0&lt;br /&gt;
    Snom (nuevo firmware): Call-Info: &amp;lt;sip:IP&amp;gt;\;answer-after=0&lt;br /&gt;
    Yealink: Call-Info: answer-after=0&lt;br /&gt;
&lt;br /&gt;
* Luego en el diaplan añadir lo siguiente: exten =&amp;gt; _[*#%0-9a-zA-Z].,n,set(__AutoAnswer=AA) (Esto tendremos que ver como ponerlo de manera automática). De manera provisional si queremos que sea para llamadas salientes pondremos esto en el ext_n_marcador.conf. Si queremos que sea llamadas entrantes lo pondremos en ext_n_MARCAR.conf&lt;br /&gt;
&lt;br /&gt;
== Configuración de los portales web en HTTPS ==&lt;br /&gt;
&lt;br /&gt;
Desde /usr/lib/jvm/default-java/bin/ ejecutamos:&lt;br /&gt;
&lt;br /&gt;
keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/share/tomcat7/.keystore&lt;br /&gt;
&lt;br /&gt;
Escriba la contraseña del almacén de claves: (t0mc4t)&lt;br /&gt;
 Volver a escribir la contraseña nueva: (t0mc4t)&lt;br /&gt;
 *Personalizar para el cliente&lt;br /&gt;
 ¿Cuáles son su nombre y su apellido?&lt;br /&gt;
 [Unknown]: VIVAit Suite&lt;br /&gt;
 ¿Cuál es el nombre de su unidad de organización?&lt;br /&gt;
 [Unknown]: Desarrollo&lt;br /&gt;
 ¿Cuál es el nombre de su organización?&lt;br /&gt;
 [Unknown]: MDtel&lt;br /&gt;
 ¿Cuál es el nombre de su ciudad o localidad?&lt;br /&gt;
 [Unknown]: Madrid&lt;br /&gt;
 ¿Cuál es el nombre de su estado o provincia?&lt;br /&gt;
 [Unknown]: Madrid&lt;br /&gt;
 ¿Cuál es el código de país de dos letras de la unidad?&lt;br /&gt;
 [Unknown]: es&lt;br /&gt;
 ¿Es correcto CN=VIVAit Suite, OU=Desarrollo, O=MDtel, L=es, ST=Madrid,&lt;br /&gt;
 C=Unknown?&lt;br /&gt;
 [no]: si&lt;br /&gt;
 Escriba la contraseña clave para &amp;lt;tomcat&amp;gt;&lt;br /&gt;
 (INTRO si es la misma contraseña que la del almacén de claves)&lt;br /&gt;
&lt;br /&gt;
nano /var/lib/tomcat7/conf/server.xml&lt;br /&gt;
&lt;br /&gt;
Descomentar la línea:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; protocol=&amp;quot;HTTP/1.1&amp;quot; SSLEnabled=&amp;quot;true&amp;quot; &lt;br /&gt;
&lt;br /&gt;
 maxThreads=&amp;quot;150&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Añadir después de sslProtocol=&amp;quot;TLS&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 keystorePass=&amp;quot;t0mc4t&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Crear un motivo desconexión para el Supervisor en '''''VIVA'''''it Suite==&lt;br /&gt;
&lt;br /&gt;
Para crear motivos de desconexión adicionales a los que ya ofrece la aplicación tendremos que añadir una nueva entrada en la BD. El comando que emplearíamos seria el siguiente:&lt;br /&gt;
&lt;br /&gt;
INSERT INTO `nimitz`.`COM_ENUMERADOS` (`ID`, `C_NOMBRE`, `C_TEXTO`, `N_POSICION`, `C_OBSERV`) VALUES(1000700, 'TSesAgMotDesc', 'Nombre Motivo de desconexión', 60, ' ');&lt;br /&gt;
&lt;br /&gt;
El ID debe ser mayor o igual a 1000700 y menor a 1000800. El N_POSICION debe ser mayor o igual a 60 y menor que 100.&lt;br /&gt;
&lt;br /&gt;
== Envío de variables CTI al ACD ante un GW con asterisk 13==&lt;br /&gt;
Dado que para un GW con asterisk 13 un nodo ACD es considerado un elemento externo, por defecto, no se envían variables CTI (UCID, ...). En una fututa versión del nodo ACD, ya no se considerará un elemento externo por lo que si se enviarán dichas variables. Para lograrlo en la versión 3.0 de la plataforma Vivait hay que modificar el fichero ext_MARCAR_Externo_Particular.conf del GW. Deberemos poner la siguiente linea.&lt;br /&gt;
&lt;br /&gt;
 same =&amp;gt; n,Macro(escribirDatosCti)&lt;br /&gt;
&lt;br /&gt;
== Script para cambio automático de claves en salas de conferencia estáticas ==&lt;br /&gt;
&lt;br /&gt;
Para cambiar la clave de las salas de conferencias crear un script llamado cambioClaveConfe.sh con el siguiente contenido:&lt;br /&gt;
	&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 CLAVE=$(shuf -i 1111-9999 -n 1)&lt;br /&gt;
 &lt;br /&gt;
 echo $CLAVE&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;update CEN_SALAS_CONFERENCIAS set C_PIN='$CLAVE' WHERE C_NOMBRE='$1'&amp;quot; | mysql -u nimitz -pivivanimitz nimitz&lt;br /&gt;
 &lt;br /&gt;
 FROM=sat@mdtel.es&lt;br /&gt;
 FECHA=`date +&amp;quot;%Y%m%d%H%M%S&amp;quot;`&lt;br /&gt;
 CLIENTE=&amp;lt;PONER EL CLIENTE&amp;gt;&lt;br /&gt;
 TO=&amp;lt;DESTINATARIOS&amp;gt;&lt;br /&gt;
 ASUNTO=&amp;quot;Nueva clave en sala $1&amp;quot;&lt;br /&gt;
 CUERPO=&amp;quot;La nueva clave para la sala $1 es: $CLAVE&amp;quot;&lt;br /&gt;
 /usr/sbin/sendmail -oi -t -v -f $FROM &amp;lt;&amp;lt;EOF&lt;br /&gt;
 From: $FROM&lt;br /&gt;
 To: $TO&lt;br /&gt;
 Bcc: $BCC&lt;br /&gt;
 Subject: $ASUNTO&lt;br /&gt;
 &lt;br /&gt;
 $CUERPO&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
El script cambiará la clave de la sala pasada por parámetro por una aleatoria de 4 dígitos y la enviará por correo a los &amp;lt;DESTINATARIOS&amp;gt; (direcciones de correo electrónico separadas por coma).&lt;br /&gt;
&lt;br /&gt;
Hay que crear una tarea en /etc/crontab añadiendo una linea como la siguiente:&lt;br /&gt;
 30 6	* * 7	root	cambioClaveConfe.sh 6173&lt;br /&gt;
&lt;br /&gt;
Esto ejecutará el script todos los domingos a las 6:30 horas cambiando la clave de la sala 6173. Añadir tantas linéas como salas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Monitorización en Zabbix de un trunk caído ==&lt;br /&gt;
Para monitorizar un o varios trunk por separado y saber el estado de cada uno es necesario lo siguiente: &lt;br /&gt;
&lt;br /&gt;
*Añadir el UserParameter adjunto que contiene el siguiente texto:&lt;br /&gt;
&lt;br /&gt;
 UserParameter=asterisk.trunkEstado[*],sudo /usr/sbin/asterisk -rx 'sip show peers' | grep  --text -i '$1' |  grep OK &amp;gt;/dev/null; if [ $? -eq 0 ]; then echo 1; else echo 0; fi&lt;br /&gt;
&lt;br /&gt;
*Añadir en el portal de zabbix un item por cada trunk. En el campo Key se pondrá &amp;quot;asterisk.trunkEstado[nombre_trunk]&amp;quot;, donde nombre_trunk es el nombre del trunk tal y como se ve en Asterisk.&lt;br /&gt;
[[File:zabbix_item_trunkEstado.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Crear un trigger que avise cuando el último valor sea 0. Por ejemplo:&lt;br /&gt;
 {corp-bdtr:asterisk.trunkEstado[PrePro-ACD].last()}=0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:zabbix_trigger_trunkEstado.png]]&lt;br /&gt;
&lt;br /&gt;
== Agendas en terminales Yealink ==&lt;br /&gt;
En la agenda se mostrará como nombre lo que contenga el campo CEN_AGENDAS.C_NOMBRE_MOSTRAR y como teléfono el indicado en CEN_AGENDAS_TELEFONOS.C_TELEFONO&lt;br /&gt;
Para hacer funcionar la agenda:&lt;br /&gt;
&lt;br /&gt;
*En el archivo de aprovisionamiento correspondiente (Yealink-XXXX-comun.cfg) establecer los siguientes parámetros:&lt;br /&gt;
&lt;br /&gt;
    remote_phonebook.data.1.url = http://&amp;lt;direc IP&amp;gt;/vivait-agenda/yealink/contactData1.xml &lt;br /&gt;
    remote_phonebook.data.1.name = NOMBRE DE LA AGENDA EN EL TELEFONO&lt;br /&gt;
&lt;br /&gt;
*En el archivo /etc/apache2/apache2.conf añadir tras el último Directory:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Directory /var/www/html/vivait-agenda/&amp;gt;&lt;br /&gt;
             AddType application/x-httpd-php .xml&lt;br /&gt;
             Options Indexes FollowSymLinks MultiViews&lt;br /&gt;
             AllowOverride None&lt;br /&gt;
             Order allow,deny&lt;br /&gt;
             allow from all&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Ejecutar el comando:&lt;br /&gt;
&lt;br /&gt;
    /etc/init.d/apache2 reload&lt;br /&gt;
&lt;br /&gt;
== Calendarios ==&lt;br /&gt;
&lt;br /&gt;
=== Enrutamiento inteligente ===&lt;br /&gt;
&lt;br /&gt;
Ante una llamada a un destino, si hay cita de ocupado en el calendario se desvia al número indicado en el campo &amp;quot;location&amp;quot; del calendario o a su buzon de voz si hay valor en dicho campo&lt;br /&gt;
&lt;br /&gt;
 same =&amp;gt; n,Set(CalendarBusy=${CALENDAR_BUSY(GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,Set(id=${CALENDAR_QUERY(GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,NoOP(hay ${CALENDAR_QUERY_RESULT(${id},getnum)} eventos)&lt;br /&gt;
 same =&amp;gt; n,Verbose(3,The state of GoogleCalendar is $&lt;br /&gt;
 {DEVICE_STATE(Calendar:GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,Set(CalendarLocation=${CALENDAR_QUERY_RESULT(GoogleCalendar,location)})&lt;br /&gt;
 same =&amp;gt; n,GotoIf($[&amp;quot;${CalendarBusy}&amp;quot;==&amp;quot;1&amp;quot;]?:conCategoria)&lt;br /&gt;
 same =&amp;gt; n,GotoIf($[&amp;quot;${CalendarLocation}&amp;quot;==&amp;quot;&amp;quot;]?buzon)&lt;br /&gt;
 same =&amp;gt; n,Goto(Cen_iniLlam,${CalendarLocation},1)&lt;br /&gt;
 same =&amp;gt; n(buzon),Playback(Particular/buzon)&lt;br /&gt;
 same =&amp;gt; n,Hangup&lt;br /&gt;
 same=&amp;gt; n(conCategoria),Goto(Cen_iniLlam,${EXTEN},1)&lt;br /&gt;
&lt;br /&gt;
=== Conexión de cliente Outlook a calendarios VIVAit mediante Caldav===&lt;br /&gt;
Por defecto, el cliente outlook no soporta Caldav; si queremos disponer de calendarios de VIVAit en Outlook tendríamos dos opciones:&lt;br /&gt;
# Tener los calendarios en el servidor Exchange&lt;br /&gt;
# Instalar un plugin en el cliente outlook que permita conectar vía Caldav los calendarios que estén ubicados en el servidor de calendarios de VIVAit&lt;br /&gt;
&lt;br /&gt;
Este howto se centra en esta segunda posibilidad&lt;br /&gt;
&lt;br /&gt;
Procedimiento: &lt;br /&gt;
&lt;br /&gt;
1.- Instalar Calldavsincronizer (valdrían otros plugin de Caldav para Outlook)&lt;br /&gt;
&lt;br /&gt;
[https://sourceforge.net/projects/outlookcaldavsynchronizer/ https://sourceforge.net/projects/outlookcaldavsynchronizer/]&lt;br /&gt;
&lt;br /&gt;
2.- Entrar en Synchronization Profiles en la nueva pestaña Calldav Syncronizer de outlook       [[File:Syncronizer.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.- Añadir nuevo perfil (tecla +)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Nuevo.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A tener en cuenta:&lt;br /&gt;
&lt;br /&gt;
*Crear un nuevo “Outlook folder”, entendemos que es adecuado (quizás necesario) para que las entradas de calendario de VIVAit queden diferenciadas.&lt;br /&gt;
*Lo mejor es haber creado antes el calendario en el servidor para que al darlo de alta en oulook comprobemos que se conecta.&lt;br /&gt;
*Dando al botón “Test or discover settings” se nos muestran todos los calendarios del servidor y elegimos el que queramos; en “elementos de la carpeta” diremos “elementos de calendario”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Calendario.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
== Uso de reloj hardware en nodos de procesamiento ==&lt;br /&gt;
&lt;br /&gt;
=== En nodo de procesamiento ACD ===&lt;br /&gt;
En un nodo de procesamiento ACD es obligatorio instalar dahdi y una tarjeta de primario para emplear reloj hardware, ya que el reloj software que va en el asterisk 1.4 es defectuoso.&lt;br /&gt;
Para configurarlo basta con instalar la tarjeta en el servidor, instalar dahdi y posteriormente ejecutar el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
 dahdi_cfg&lt;br /&gt;
&lt;br /&gt;
Este comando generaŕa el fichero /etc/dahdi/system.conf&lt;br /&gt;
&lt;br /&gt;
Para comprobar que el comando se ha ejecutado satisfactoriamente lo abriremos y tendrá que tener un formato semejante al siguiente ejemplo:&lt;br /&gt;
&lt;br /&gt;
 # Autogenerated by /usr/sbin/dahdi_genconf on Tue Oct 22 17:42:59 2013&lt;br /&gt;
 # If you edit this file and execute /usr/sbin/dahdi_genconf again,&lt;br /&gt;
 # your manual changes will be LOST.&lt;br /&gt;
 # Dahdi Configuration File&lt;br /&gt;
 #&lt;br /&gt;
 # This file is parsed by the Dahdi Configurator, dahdi_cfg&lt;br /&gt;
 #&lt;br /&gt;
 # Span 1: WCT1/0 &amp;quot;Digium Wildcard TE110P T1/E1 Card 0&amp;quot; HDB3/CCS/CRC4&lt;br /&gt;
 span=1,1,0,ccs,hdb3,crc4&lt;br /&gt;
 # termtype: te&lt;br /&gt;
 bchan=1-15,17-31&lt;br /&gt;
 dchan=16&lt;br /&gt;
 echocanceller=oslec,1-15,17-31&lt;br /&gt;
 # Global data&lt;br /&gt;
 loadzone        = es&lt;br /&gt;
 defaultzone     = es&lt;br /&gt;
&lt;br /&gt;
=== En nodo de procesamiento de corporativa ===&lt;br /&gt;
En un nodo de procesamiento de corporativa no obligatorio instalar dahdi y una tarjeta de primario para emplear reloj hardware, ya que el no se han detectado errores en el reloj por software. Sin embargo si instalamos dahdi y una tarjeta de primario para emplear reloj hardware, el sistema funcionará mejor.&lt;br /&gt;
Para configurarlo basta con instalar la tarjeta en el servidor, instalar dahdi y posteriormente ejecutar el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
 dahdi_cfg&lt;br /&gt;
&lt;br /&gt;
Este comando generaŕa el fichero /etc/dahdi/system.conf&lt;br /&gt;
&lt;br /&gt;
Para comprobar que el comando se ha ejecutado satisfactoriamente lo abriremos y tendrá que tener un formato semejante al siguiente ejemplo:&lt;br /&gt;
&lt;br /&gt;
 # Autogenerated by /usr/sbin/dahdi_genconf on Tue Oct 22 17:42:59 2013&lt;br /&gt;
 # If you edit this file and execute /usr/sbin/dahdi_genconf again,&lt;br /&gt;
 # your manual changes will be LOST.&lt;br /&gt;
 # Dahdi Configuration File&lt;br /&gt;
 #&lt;br /&gt;
 # This file is parsed by the Dahdi Configurator, dahdi_cfg&lt;br /&gt;
 #&lt;br /&gt;
 # Span 1: WCT1/0 &amp;quot;Digium Wildcard TE110P T1/E1 Card 0&amp;quot; HDB3/CCS/CRC4&lt;br /&gt;
 span=1,1,0,ccs,hdb3,crc4&lt;br /&gt;
 # termtype: te&lt;br /&gt;
 bchan=1-15,17-31&lt;br /&gt;
 dchan=16&lt;br /&gt;
 echocanceller=oslec,1-15,17-31&lt;br /&gt;
 # Global data&lt;br /&gt;
 loadzone        = es&lt;br /&gt;
 defaultzone     = es&lt;br /&gt;
&lt;br /&gt;
== Aprovisionamiento terminales Cisco ==&lt;br /&gt;
=== Configurar protocolo SIP TCP o UDP en terminal Cisco ===&lt;br /&gt;
&lt;br /&gt;
Configuración de terminal Cisco para para funcionar bajo TCP o UDP:&lt;br /&gt;
Modificar parámetro&lt;br /&gt;
 &amp;lt;transportLayerProtocol&amp;gt;X&amp;lt;/transportLayerProtocol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde X es:&lt;br /&gt;
    1: TCP&lt;br /&gt;
    2: UDP&lt;br /&gt;
    4: Valor por defecto del firmware (al menos en la última versión equivale a TCP)&lt;br /&gt;
&lt;br /&gt;
=== Habilitar/Deshabilitar llamada en espera en terminales Cisco ===&lt;br /&gt;
&lt;br /&gt;
En el fichero de aprovisionamiento del terminal añadiremos la siguiente linea&lt;br /&gt;
 &amp;lt;callWaiting&amp;gt;X&amp;lt;/callWaiting&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde X es:&lt;br /&gt;
   0=off but can be changed through the settings menu.&lt;br /&gt;
   1=on but can be changed through the settings menu.&lt;br /&gt;
   2=off and locked so it can't be changed through the settings menu.&lt;br /&gt;
   3=on and locked so it can't be changed through the settings menu.&lt;br /&gt;
&lt;br /&gt;
== Como configurar servicio DHCP en Ubuntu Linux ==&lt;br /&gt;
=== ¿Que es un servicio DHCP? ===&lt;br /&gt;
Un servidor Dynamic Host Configuration Protocol (DHCP) asigna dinámicamente las direcciones IP y otras configuraciones de red a otros terminales que están conectados a la red.&lt;br /&gt;
&lt;br /&gt;
=== Instalar un servicio DHCP ===&lt;br /&gt;
Para instalar el servidor de asignacion automatica de direccion IP ejecutamos el comando:&lt;br /&gt;
 sudo apt-get install isc-dhcp-server&lt;br /&gt;
&lt;br /&gt;
=== Configurando el servicio DHCP ===&lt;br /&gt;
Editamos el archivo /etc/dhcp/dhcpd.conf creando primero un backup del mismo:&lt;br /&gt;
 mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.original&lt;br /&gt;
 nano /etc/dhcp/dhcpd.conf&lt;br /&gt;
&lt;br /&gt;
El archivo debe quedar de una forma muy similar a esta:&lt;br /&gt;
 authoritative&lt;br /&gt;
 subnet  10.254.239.0 netmask 255.255.255.254&lt;br /&gt;
 {&lt;br /&gt;
 range dynamic-bootp  10.254.239.40 10.254.239.60;&lt;br /&gt;
 option domain-name-servers ns1.example.org, ns2.example.org;&lt;br /&gt;
 option domain-name &amp;quot;example.org&amp;quot;;&lt;br /&gt;
 option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org ;&lt;br /&gt;
 option broadcast-address 10.254.239.255;&lt;br /&gt;
 default-lease-time 3600;&lt;br /&gt;
 max-lease-time 7200;&lt;br /&gt;
 option option-150 10.254.239.25&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Donde los campos:&lt;br /&gt;
*subnet: Direccion de red&lt;br /&gt;
*netmask: Máscara de red&lt;br /&gt;
*range dynamic-bootp: Rango de IPs que va a proporcionar el DHCP&lt;br /&gt;
*option domain-name-servers: Direcciones IPs de los DNS&lt;br /&gt;
*option domain-name: Nombre de dominio&lt;br /&gt;
*option routers:IPs de las puertas de enlace&lt;br /&gt;
*option broadcast-address: Dirección de broadcast&lt;br /&gt;
*default-lease-time: Tiempo de concesión por defecto&lt;br /&gt;
*max-lease-time: Valor máximo del tiempo de concesión&lt;br /&gt;
*option option-150: IPs de los servidores TFTPs que tiene la red&lt;br /&gt;
&lt;br /&gt;
===  Reiniciamos el servicio ===&lt;br /&gt;
 service isc-dhcp-server restart&lt;br /&gt;
&lt;br /&gt;
=== Direcciones IP estáticas basadas en la MAC ===&lt;br /&gt;
Pueden conocerse las MAC de las máquinas conectadas a la red ejecutando el comando arp desde la terminal.&lt;br /&gt;
&lt;br /&gt;
 host ejemplo {&lt;br /&gt;
        hardware ethernet 00:0B:82:19:A8:04;&lt;br /&gt;
        option option-150 10.254.239.0;&lt;br /&gt;
 #      fixed-address 10.254.239.52;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Protocolo Skinny en VIVAit Call mediante uso de Chan-SCCP ==&lt;br /&gt;
=== Instalación de chan_sccp ===&lt;br /&gt;
*Copiar el fichero chan-sccp-4.2.1.1.tar.gz en el directorio donde estén los fuentes de Asterisk (normalmente /usr/src/MDtel)&lt;br /&gt;
*Descomprimir&lt;br /&gt;
*Entrar al directorio chan-sccp-4.2.1.1&lt;br /&gt;
*Ejecutar: ./configure --with-asterisk=../DIRECTORIO_ASTERISK --enable-conference. Donde DIRECTORIO_ASTERISK es el nombre del directorio donde están los fuentes de asterisk.&lt;br /&gt;
*Tras el ejecutar el configure (si todo va bien al final se verá un resumen con el S.O, arquitectura, etc), ejecutar make y make install&lt;br /&gt;
*El nuevo módulo chan_sccp.so se generará dentro del DIRECTORIO_ASTERISK en lib/asterisk/modules/ y se deberá copiar en /usr/lib/asterisk/modules/&lt;br /&gt;
*Copiar el fichero sccp.conf a /etc/asterisk&lt;br /&gt;
*Entra a Asterisk y ejecutar: module load chan_sccp.so&lt;br /&gt;
*Si se ha cargado correctamente, desde dentro de Asterisk, si se teclea sccp show version deberá devolver: &amp;quot;Skinny Client Control Protocol (SCCP). Release: 4.3.0 4.3.0 - unknown (built by 'root' on '2016-06-01 10:42:32 UTC')&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Crear extensiones ===&lt;br /&gt;
*En el portal crear una nueva clase de dispositivo (Vivait-Call/Dispositivos/Clases de dispositivos), donde la clase sea extensión la subclase H323 (todavía no existe la subclase SCCP) y el formato SCCP/${DEST}&lt;br /&gt;
*Crear la nueva extensión, pero el dispositivo debe ser el creado en el campo anterior.&lt;br /&gt;
*Las extensiones creadas habrá que añadirlas al fichero sccp.conf así como los teléfonos que las usarán. En el fichero sccp.conf incluido hay ejemplos.&lt;br /&gt;
&lt;br /&gt;
=== Aprovisionamiento ===&lt;br /&gt;
Los terminales se aprovisionan de la misma manera que los SIP, exceptuando que las plantillas XML no tiene referencias a SIP. Se incluye un xml genérico con todas las opciones.&lt;br /&gt;
Dentro del directorio chan-sccp-4.2.1.1 hay un directorio conf con todos los archivos de configuración necesarios. Las versiones annotated contienen todas las opciones posibles comentadas.&lt;br /&gt;
&lt;br /&gt;
== Instalación y configuración Postfix en RedHat7 ==&lt;br /&gt;
&lt;br /&gt;
'''Postfix''' es un ''servidor de correo'' de software libre/código abierto, un programa informático para el enrutamiento y envío de correo electrónico.&lt;br /&gt;
&lt;br /&gt;
=== Instalación ===&lt;br /&gt;
 yum install postfix&lt;br /&gt;
&lt;br /&gt;
=== Configuración ===&lt;br /&gt;
Sobre la configuración de postfix por defecto (recién instalado):&lt;br /&gt;
Editar el fichero /etc/postfix/main.cf&lt;br /&gt;
 inet_protocols = ipv4&lt;br /&gt;
 relayhost = smtp.renfe.es&lt;br /&gt;
Revisar la configuración:&lt;br /&gt;
 postfix check&lt;br /&gt;
Configurar postfix como servicio (sólo en redhat y similares)&lt;br /&gt;
 chkconfig postfix on&lt;br /&gt;
Iniciar postfix:&lt;br /&gt;
 service postfix start&lt;br /&gt;
Instalar mailx para disponer de los comandos mail y sendmail:&lt;br /&gt;
 yum install mailx&lt;br /&gt;
Probar configuración:&lt;br /&gt;
 echo &amp;quot;Prueba de correo&amp;quot; | mail -vs &amp;quot;Prueba&amp;quot; correo@destino.soy&lt;br /&gt;
&lt;br /&gt;
== Como crear un TRIGGER en Zabbix ==&lt;br /&gt;
&lt;br /&gt;
'''1.''' Hay '''dos posibilidades''' dependiendo si el trigger es para un solo host o es para varios, los cuales tienen en común un template:&lt;br /&gt;
&lt;br /&gt;
:# Si es para ''un host'': Ir a '''Configuración/Hosts'''&lt;br /&gt;
:# Si es para ''un template'': Ir a '''Configuración/Templates'''&lt;br /&gt;
&lt;br /&gt;
'''2.''' En la fila correspondiente al host/template al que queramos añadirle el trigger, pulsar sobre la '''columna triggers.'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''3.''' En la ventana de triggers, pulsar sobre el botón '''Create trigger''', situado en la esquina superior derecha.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''4.''' Aparecerá la ventana de creación de triggers, que tiene los siguientes campos:&lt;br /&gt;
:1. '''Name:''' Nombre del trigger, que deberá ser lo ''suficientemente descriptivo''. Aparecerá cuando se&lt;br /&gt;
active, en la ventana principal de Zabbix así como en los correos de aviso.&lt;br /&gt;
:2. '''Expression:''' Define la fórmula cuyo resultado activará el trigger. Hay que pulsar el botón '''Add'''. Se mostrará una &lt;br /&gt;
nueva ventana donde habrá que elegir el item (medida) sobre el que se basará el trigger (evidentemente la medida deberá &lt;br /&gt;
existir previamente) y la función necesaria para el cálculo. Para una descripción de las disponibles dirigirse a &lt;br /&gt;
https://www.zabbix.com/documentation/2.2/manual/appendix/triggers/functions.&amp;lt;br/&amp;gt;&lt;br /&gt;
Tras rellenar los campos anteriores y dar a la función los valores que necesite pulsar el botón '''Insert.'''&lt;br /&gt;
:3. '''Expression constructor:''' Permite crear expresiones complejas, uniendo varias.&lt;br /&gt;
:4. '''Description:''' Una explicación del trigger&lt;br /&gt;
:5. '''Severity:''' Criticidad el trigger&lt;br /&gt;
:6. Para una descripción del resto de campos visitar la página: https://www.zabbix.com/documentation/2.2/manual/config/triggers/trigger&lt;br /&gt;
'''5.''' Tras rellenar los campos, pulsar el botón '''Save'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''6.''' Si el trigger se ha añadido en un template, aparecerá en todos los hosts que tienen el template configurado.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''7.''' '''El trigger por si solo no envía ningún aviso''', solo se activa si se cumple la expresión definida.&lt;br /&gt;
Para enviar un aviso (normalmente un correo electrónico) cuando se active el trigger, será necesario definir una acción (Configuración/Actions).&lt;br /&gt;
&lt;br /&gt;
 '''NOTA.-''' Para consultar cualquier cuestión relativa a Zabbix, se encuentra a su disposición el manual: &amp;lt;br/&amp;gt;&lt;br /&gt;
 https://www.zabbix.com/documentation/2.2/manual&lt;br /&gt;
&lt;br /&gt;
== Como mostrar callername queues FOP2 ==&lt;br /&gt;
&lt;br /&gt;
Es necesario añadir el siguiente código al contexto de entrada:&lt;br /&gt;
&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Connect connid localhost usuario clave bd)&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Query resultid ${connid} SELECT\ firstname\,lastname\ from\ fop2\ where\ phone1=${CALLERID(num)}\ OR\ phone2=${CALLERID(num)})&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Fetch fetchid ${resultid} nombre apellidos)&lt;br /&gt;
 exten =&amp;gt; _X.,n,GotoIf($[${fetchid} = 1]?:noExiste)&lt;br /&gt;
 exten =&amp;gt; _X.,n,Set(CALLERID(name)=${nombre}${apellidos})&lt;br /&gt;
 exten =&amp;gt; _X.,n(noExiste),Continuar&lt;br /&gt;
&lt;br /&gt;
En la primera línea cambiar según lo necesario:&lt;br /&gt;
&lt;br /&gt;
*localhost: Dirección IP del servidor de MySQL donde está la BBDD de FOP2&lt;br /&gt;
*usuario: Usuario con permisos de acceso a la bbdd de FOP2&lt;br /&gt;
*clave: Clave del usuario&lt;br /&gt;
*bd: Nombre de la BBDD&lt;br /&gt;
&lt;br /&gt;
== Como ver los directorios de un NAS a montar con NFS ==&lt;br /&gt;
&lt;br /&gt;
Con el siguiente comando vemos los diferentes volúmenes de un NAS:&lt;br /&gt;
&lt;br /&gt;
 showmount -e IP_NAS&lt;br /&gt;
&lt;br /&gt;
Ejemplo de salida:&lt;br /&gt;
&lt;br /&gt;
 Export list for 192.168.10.10:&lt;br /&gt;
 /Backup/backup       *&lt;br /&gt;
 /DISCOS_1/VOL1_AUDIO *&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Instalación de ActivaSTP con VIVAit Call 3 y marcación desde Outlook ==&lt;br /&gt;
&lt;br /&gt;
Instalamos ActivaSTP desde:&lt;br /&gt;
 &lt;br /&gt;
 (http://activa.sourceforge.net/)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- *SIPTAPI, según la pagina Web, su ultima versión publicada es del 2014 con versión 0.2.17 (http://activa.sourceforge.net/)&lt;br /&gt;
&lt;br /&gt;
Hemos probado con http://www.xtelsio.com/en/products/ast_tsp/tapi_for_asterisk.htm.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La configuración necesaria se muestra en la siguiente imagen:&lt;br /&gt;
&lt;br /&gt;
[[File:Ventana ActivaTSP.jpg]]&lt;br /&gt;
&lt;br /&gt;
 El usuario del manager debe tener permisos originate para poder realizar llamadas.&lt;br /&gt;
&lt;br /&gt;
Se han realizado pruebas con Outlook 2013.&lt;br /&gt;
&lt;br /&gt;
Se ha comprobado la correcta realización de pruebas utilizando ActivaSTP, realizadon llamadas desde la pestaña &amp;quot;personas&amp;quot; con la vista en modo tarjeta de Pesentación, tarjeta, teléfono o lista.&lt;br /&gt;
&lt;br /&gt;
Outlook 2013 no da la opción de llamar si la vista está en modo personas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Como volver a procesar grabaciones con error ==&lt;br /&gt;
&lt;br /&gt;
Las grabaciones con error son aquellas que tienen el valor E_GRABACION=120 en la tabla DAT_GRABACIONES.&lt;br /&gt;
&lt;br /&gt;
Las grabaciones con error se produce normalmente a perdida de conexión entre el nodo servidor de grabaciones y el resto.&lt;br /&gt;
&lt;br /&gt;
Para reprocesar la grabación hay que modificar el campo E_GRABACION de la tabla DAT_GRABACIONES y ponerlo con valor 20 para que así el recordCentral la vuelva a procesar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== FOP2. Problemas en transferencias asistidas ==&lt;br /&gt;
&lt;br /&gt;
 Para habilitar la transferencia atendida del asterisk (funcion atxfer), hay que poner la opción tT en el queue() si la llamada origen la realiza a una cola o &lt;br /&gt;
 al dial() de las extensiones.&lt;br /&gt;
 Con eso vemos como al intentar hacer la llamada de consulta ya se va a nuestro dialplan. Sin embargo la llamada no funciona ya que el enrutador nos da error de&lt;br /&gt;
 enrutamiento porque no tenemos ID_DISPOSITIVO origen ya que el fop no es un elemento creado desde el portal.&lt;br /&gt;
 Por lo que se propone como solución crear un contexto de inicio del fop y asignarle un ID_DISPOSITIVO para que así se enrute la llamada. El contexto tienen que&lt;br /&gt;
 ser similar a ext_InicioLlamada_Chrome.conf&lt;br /&gt;
&lt;br /&gt;
Para que funcione las transferencias supervisadas desde el fop2 hay que realizar lo siguiente:&lt;br /&gt;
&lt;br /&gt;
*El usuario del manager debe tener permisos Atxfer para poder realizar transferencias.&lt;br /&gt;
*Habilitar la transferencia atxfer en el fuatures.conf del asterisk. atxfer =&amp;gt; *2&lt;br /&gt;
*Crear el fichero ext_InicioLlamada_FOP.conf con el siguiente contenido:&lt;br /&gt;
&lt;br /&gt;
 [Cen_Inicio_FOP]&lt;br /&gt;
 exten =&amp;gt; [*#%0-9].,1,NoOp(MDINICHR**EXTEN=${EXTEN}**CID=${CHROME_ANI}*)&lt;br /&gt;
 same =&amp;gt; n,dumpchan()&lt;br /&gt;
 ;same =&amp;gt; n,Set(CALLERID=${CHROME_ANI})&lt;br /&gt;
 same =&amp;gt; n,Gosub(Cen_Sub_getIdExtension,s,1(${R_CID_NUM_00}))&lt;br /&gt;
 same =&amp;gt; n,ExecIf($[&amp;quot;${GOSUB_RETVAL}&amp;quot;!=&amp;quot;OK&amp;quot; | &amp;quot;${sqlDato}&amp;quot;=&amp;quot;&amp;quot;]?HangUp)&lt;br /&gt;
 same =&amp;gt; n,Set(ID_DISPOSITIVO=${sqlDato})&lt;br /&gt;
 ; . Modificar MARCAR en funcion de reglas de marcacion saliente (prefijo 0, ...)&lt;br /&gt;
 ; Esto se modificara en el contexto Cen_Inicio_Chrome_Particular&lt;br /&gt;
 same =&amp;gt; n,Set(MARCAR=${EXTEN})&lt;br /&gt;
 ;---------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ;--- Llamada a contexto particular&lt;br /&gt;
 ;---------------------------------&lt;br /&gt;
 ; Esta llamada es para hacer cosas especcificas del cliente (cambiar callerid...)&lt;br /&gt;
 ; La subrutina Cen_Inicio_Chrome_Particular esta en el archivo ext_InicioLlamada_Chrome_Particular.conf&lt;br /&gt;
 ; Si no existe el archivo copiar el archivo ext_InicioLlamada_Chrome_Particular.conf.ejemplo como ext_Inicio_Chrome_Particular.conf&lt;br /&gt;
 ; y realizar las modificaciones necesarias&lt;br /&gt;
 ; El fichero ext_InicioLlamada_Chrome_Particular.conf se carga automaticamente al ser creado con el include de ext_InicioLlamada.conf&lt;br /&gt;
 ; #include &amp;quot;ext_InicioLlamada*.conf&amp;quot;&lt;br /&gt;
 ;&lt;br /&gt;
 same =&amp;gt; n,GosubIf($[${DIALPLAN_EXISTS(Cen_Inicio_FOP_Particular,${EXTEN},1)}&amp;gt;0]?Cen_Inicio_FOP_Particular,${EXTEN},1)&lt;br /&gt;
 same =&amp;gt; n,Goto(Cen_Inicio_SIP,${MARCAR},1)&lt;br /&gt;
&lt;br /&gt;
*En el fichero /usr/local/fop2/buttons.cfg poner como contexto de las extensiones el creado anteriormente (Cen_Inicio_FOP)&lt;br /&gt;
*Modificar el fichero /usr/local/fop2/fop2.cfg:&lt;br /&gt;
&lt;br /&gt;
 blind_transfer = 0&lt;br /&gt;
 supervised_transfer = 1&lt;br /&gt;
&lt;br /&gt;
Para realizar la transferencia con consulta, hay que pulsar el supervised transfer del FOP2 y una vez se haya establecido la llamada, seleccionar la extensión que &amp;quot;sobra&amp;quot; en la conversación y pulsar la tecla de hangup y colgar la llamada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Problemas de conmutación en cluster ==&lt;br /&gt;
El problema detectado fue que en la conmutacion de maquinas en el cluster cuando el control lo tiene la maquina 2 no funciona el servicio phoneprov-tftp.&lt;br /&gt;
&lt;br /&gt;
Hay que hacer las siguientes comprobaciones:&lt;br /&gt;
&lt;br /&gt;
 Que el directorio /var/lib/phoneprov-tftp esté en la partición /HDcluster&lt;br /&gt;
 Que fichero /etc/MDtel/phoneprov-tftp esté puesta como IP de la máquina la IP flotante del cluster (campo $dbHost)&lt;br /&gt;
 Que el servicio phoneprov-tftp del directorio /usr/local/sbin/phoneprov-tftp.pl tenga permisos de ejecución 755&lt;br /&gt;
 Que exista el fichero /etc/init/phoneprov-tftp.conf&lt;br /&gt;
&lt;br /&gt;
Para más información ver los log del phoneprov en /var/log/phoneprov-tftp.log&lt;br /&gt;
&lt;br /&gt;
El problema era que no se encontraba instalado el paquete phoneprov-tftp, hay que instalarlo manualmente. Instalar el paquete libnet-tftpd-perl.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Como borrar contenido de la tabla BDTR con el script borraRegistrosNimitz.pl ==&lt;br /&gt;
&lt;br /&gt;
Este script se ejecuta mediante una tarea del crontab, tal como la siguiente:&lt;br /&gt;
&lt;br /&gt;
 SHELL=/bin/sh&lt;br /&gt;
 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin&lt;br /&gt;
&lt;br /&gt;
 # m h dom mon dow user  command&lt;br /&gt;
 00 01     * * *   root    /usr/local/sbin/borraRegistrosNimitz.pl --hDB localhost&lt;br /&gt;
&lt;br /&gt;
Para establecer el número de días que vamos a dejar en la base de datos debemos editar el archivo borraRegistrosNimitz.pl, el campo my $numDias&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_plataforma_VIVAit&amp;diff=5995</id>
		<title>Manual de operación plataforma VIVAit</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_plataforma_VIVAit&amp;diff=5995"/>
		<updated>2017-07-26T06:53:28Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* BBDD Tiempo Real */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!! '''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; ALFREDO: INSISTIR EN EXPLICAR CONCEPTOS&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
En este documento se describe la arquitectura general de la plataforma '''''VIVA'''''it, detallando aquellos procesos principales que componen cada uno de los elementos del sistema, y sus principales elementos de diagnóstico&lt;br /&gt;
Quedan fuera del ámbito de este documento:&lt;br /&gt;
* Uso de aplicación de agente ('''''VIVA'''''it Desk)&lt;br /&gt;
* Uso de aplicación de supervisor ('''''VIVA'''''it Supervisor), incluyendo sus módulos autónomos ('''''VIVA'''''it reporting, '''''VIVA'''''it Tracker)&lt;br /&gt;
* Uso de portal de administración&lt;br /&gt;
* Uso de portal de traceo de llamadas y agentes ('''''VIVA'''''it Tracker web)&lt;br /&gt;
* Uso de portal de monitorización zabbix&lt;br /&gt;
&lt;br /&gt;
== Arquitectura ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura plataforma VIVAit.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Descripción de los elementos, diagnósticos y operaciones ==&lt;br /&gt;
Las siguientes tablas definen los principales elementos software de la plataforma '''''VIVA'''''it, que son detallados en apartados siguientes:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de sistema operativo'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu Server LTS 64 bits || Uno por servidor|| ||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|| Actualmente (Oct-2015) 14.04&lt;br /&gt;
Bajo proyecto puede cambiarse&lt;br /&gt;
|-&lt;br /&gt;
| Almacenamiento de grabaciones|| Uno por sistema|| Almacenamiento de las grabaciones, ya sean de entorno corporativo o de contact center||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|| Típicamente un espacio grande de almacenamiento proporcionado por el cliente y que se monta como un sistema de archivos local en los servidores de la plataforma&lt;br /&gt;
Pueden existir sistemas secundarios de almacenamiento de grabaciones&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de conmutación de voz'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Asterisk 1.4.24 by MDtel||Uno por servidor ACD||Núcleo de conmutación de voz basado en Asterisk 1.4 y modificado por MDtel||'''''VIVA'''''it Suite||Fuertemente modificado por MDtel&lt;br /&gt;
En el futuro migrará a Asterisk 13 Certified&lt;br /&gt;
|-&lt;br /&gt;
|Dialplan ACD by MDtel||Uno por servidor ACD||Configuración de voz||'''''VIVA'''''it Suite||En el futuro se unificará con corporativa&lt;br /&gt;
|-&lt;br /&gt;
|Asterisk 13 Certified by MDtel||Uno por servidor corporativo/gateway||Núcleo de conmutación de voz basado en Asterisk 13 y modificado por MDtel||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Actualmente asterisk estándar (10/15)&lt;br /&gt;
La instalación contempla descargar de la red el más actualizado, siempre CERTIFIED&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Dialplan corporativo||Uno por servidor corporativo/gateway||Configuración de voz||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||En el futuro se unificará con ACD&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de base de datos'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|MySQL 5.5||Donde haya BBDD de cualquier tipo (incluso zabbix)||Motor de Base de Datos||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||A efectos prácticos va a ser en todos los servidores con casi total seguridad&lt;br /&gt;
|-&lt;br /&gt;
|BBDD tiempo real||Una por sistema||Base de Datos sobre la que trabaja todo el entorno de tiempo real||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|BBDD réplica||Una por sistema multinodo||Base de Datos para acceso a información de reporting…y similar||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de una&lt;br /&gt;
En el nodo en el que exista réplica existirá además copia (excepto nodo ACD)&lt;br /&gt;
|-&lt;br /&gt;
|BBDD copia||Uno por servidor corporativo/gateway||Copias de tablas de configuración para respaldo de la misma||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Local en cada nodo&lt;br /&gt;
Los nodos de ACD actualmente no trabajan con copia; en caso de fallo de BBDD TR se usa el modo emergencia&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de procesos ''VIVA''it'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Intz-Nimitz||Donde haya una BBDD de tiempo real o copia||Interfaz entre el dialplan y la base de datos||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||No donde haya BBDD de réplica&lt;br /&gt;
Sistemas grandes pueden contemplar mas de un intz-nimitz central&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|vivait-cti||Uno por servidor ACD||Interfaz entre '''''VIVA'''''it Desk, supervisor y el manager de asterisk||'''''VIVA'''''it Suite||&lt;br /&gt;
|-&lt;br /&gt;
|myAcdSuperv||Uno por servidor ACD||Recopilador de datos de asterisk y actualiza en la BBDD&lt;br /&gt;
Genera llamadas en el marcador&lt;br /&gt;
||'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|motorSal||Uno por sistema con ACD||Motor de marcador saliente automático||'''''VIVA'''''it Suite||Solo si hay marcación saliente&lt;br /&gt;
Junto a la BBDD de tiempo real&lt;br /&gt;
|-&lt;br /&gt;
|recordCentral||Uno por sistema||Servidor de grabaciones, se conectan los agentes a el||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Se arrancan varias instancias en función del número de nodos&lt;br /&gt;
Debe instalarse en un servidor que tenga el almacenamiento de grabaciones en su sistema de archivos&lt;br /&gt;
|-&lt;br /&gt;
|recordNodo||Uno por servidor corporativo/gateway||Agente de grabación||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|bdCentral||Uno, en el nodo con la BBDD de tiempo real||Genera la base de datos que se copiará para respaldo a otros nodos||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|bdNodo||En cada nodo con BBDD de copia||Recoge la base de datos del servidor central con el objeto de tener el respaldo||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|Actualizador||Uno por sistema con ACD||Se encarga de proporcionar las versiones actualizadas de las aplicaciones de puesto de trabajo||'''''VIVA'''''it Suite||En el mismo servidor que el portal de administración&lt;br /&gt;
|-&lt;br /&gt;
|phoneProv-tftp||Uno por sistema||Se encarga del aprovisionamiento masivo de terminales||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||En instalaciones grandes habrá más de uno, quizás uno por sede grande; depende de la infraestructura de DHCP&lt;br /&gt;
|-&lt;br /&gt;
|borraregistrosnimitz||||||||				&lt;br /&gt;
|-&lt;br /&gt;
|Mover grabaciones a nube||||||||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Administración'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Tomcat 7||Uno por servidor con portales||Servidor de aplicaciones JAVA||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|Portal de administración ||Uno por sistema||Portal de administración del sistema||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Portal usuario||Uno por sistema||Portal de usuario, para acceso a buzones, su configuración||'''''VIVA'''''it Call||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Tracker web||Uno por sistema||Portal de seguimiento de llamadas||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Debe instalarse en un servidor que tenga los ficheros de grabación montados en su sistema de archivos&lt;br /&gt;
Ligado a recordCentral&lt;br /&gt;
Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Monitor||Uno por sistema||Portal de monitores de pared de Call Center||'''''VIVA'''''it Suite||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Apache||Uno por servidor de calendarios||Servidor de portales WEB||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|Servidor de calendarios||Uno por sistema||Aloja calendarios para su uso en diferentes entornos de NIMITZ||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Monitorización'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Servidor zabbix||Uno por instalación||Monitorización técnica y de negocio||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de uno&lt;br /&gt;
Tipicamente irá o en BBDD replica o en nodo de gestión en instalaciones grandes&lt;br /&gt;
|-&lt;br /&gt;
|Templates zabbix||Uno por instalación||Adaptaciones específicas||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|Agente Zabbix||Uno por servidor||Agente de monitorización||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
||Scripts monitorización zabbix||Uno por servidor||Agente de monitorización||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Versiones de módulos===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Módulo  !! VSuite &lt;br /&gt;
V.3.10 &lt;br /&gt;
! VSuite &lt;br /&gt;
V.3.2.0 &lt;br /&gt;
! VSuite &lt;br /&gt;
V.3.3.0 &lt;br /&gt;
! VIVAit V.3.0.0&lt;br /&gt;
(VSuite 3.4+VCall3.0) &lt;br /&gt;
!  VIVAit V.3.1.0&lt;br /&gt;
(VSuite 3.5+VCall3.1)&lt;br /&gt;
|-&lt;br /&gt;
| Sistema Operativo || || || || &lt;br /&gt;
|| Ubuntu 14.0.4&lt;br /&gt;
Server 64 Kb&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk || 1.4 || 1.4 || 1.4 || 1.4 Nodo ACD&lt;br /&gt;
13 resto nodos&lt;br /&gt;
|| 1.4 Nodo ACD&lt;br /&gt;
13 resto nodos&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk ACD '''(VS)'''  ||  ||  || || 3.3.1 || 3.4.1 &lt;br /&gt;
|-&lt;br /&gt;
| Dialplan ACD '''(VS)''' || ||  ||  || || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk Corp '''(C)''' ||  ||  ||  || 3.3.4 || 3.4.4&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk Cisco '''(VC)''' ||  ||  ||  || 3.3.4 || 3.4.4&lt;br /&gt;
|-&lt;br /&gt;
| Dialplan Corp '''(C)''' || ||  ||  || 3.3.1 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Lazarus común '''(VS)''' || 3.1.0  || 3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| BD '''(C)''' || 3.2.0 || 3.4.0 || 3.5.0 || 3.6.0 || 3.8.0&lt;br /&gt;
|-&lt;br /&gt;
| Generaconf '''(C)''' || 3.0.0  || 3.0.0  || 3.2.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Instalador '''(C)''' || 3.1.0  || 3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Intz-nimitz '''(C)''' || 2.6.0  || 3.0.1 || 3.0.3 ||  3.4.1 || 3.4.2&lt;br /&gt;
|-&lt;br /&gt;
| recordgwd '''(C)'''  ||  1.3.0 ||  1.3.0 || 3.1.0 ||  ----- || -----&lt;br /&gt;
|-&lt;br /&gt;
| recordNodo '''(C)''' || ----- || ----- || ----- ||  4.0.0 || 4.0.0&lt;br /&gt;
|-&lt;br /&gt;
| recordprocesad '''(C)''' || 1.2.0 ||1.2.0|| 3.0.0 || ----- || -----&lt;br /&gt;
|-&lt;br /&gt;
| recordCentral '''(C)''' || ----- || ----- || -----||  4.0.0 || 4.0.1&lt;br /&gt;
|-&lt;br /&gt;
| MyACDSuperv '''(VS)''' || 5.2.0 || 5.3.0  ||  5.3.0  ||  5.3.2 || 5.3.2&lt;br /&gt;
|-&lt;br /&gt;
| Motorsal '''(VS)''' || 1.4.0 || 3.1.0  || 3.2.0 || 3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| Vivait-cti '''(VS)'''  || 3.0.0 ||  3.0.1  ||  3.0.1  ||  3.0.1 || 3.0.2&lt;br /&gt;
|-&lt;br /&gt;
| Multimonitorweb '''(VS)''' ||  3.0.1 ||  3.0.2  || 3.1.0  || 3.1.0 || 3.2.0&lt;br /&gt;
|-&lt;br /&gt;
| Portal de administración '''(C)''' || 3.1.0  || 3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Tracker Web '''(C)''' || 3.0.2  || 3.1.0 ||  3.2.0 ||  3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
|  VIVA supervisor '''(VS)''' || 3.0.0 ||  3.1.0  ||  3.2.0  ||  3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| Tracker windows '''(C)''' || 3.0.0  || 3.1.0  || 3.2.0 || 3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| VIVA report '''(VS)''' || 1.2.0  || 3.1.0  || 3.2.0  ||  3.2.2 || 3.3.0&lt;br /&gt;
|-&lt;br /&gt;
| VIVA desk '''(VS)''' || 3.0.2 ||  3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| VIVA designer '''(VS)''' || 1.0.23 || 3.0.1  || 3.1.0 ||  3.1.0 || 3.2.0&lt;br /&gt;
|-&lt;br /&gt;
|  Preview '''(VS)''' || 1.0.18 || 3.2.0  || 3.3.0 || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Phone_prov '''(C)''' || ------ || ------ || 3.0.1 || 3.0.3 || 3.0.3&lt;br /&gt;
|-&lt;br /&gt;
| Portal usuario '''(VC)''' || ------ || ------ || ------ || 3.0.0 || 3.1.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''(C)''': Módulo común&lt;br /&gt;
&lt;br /&gt;
'''(VC)''': Módulo de VIVAit Call&lt;br /&gt;
&lt;br /&gt;
'''(VS)''': Módulo de VIVAit Suite&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Sistema Operativo ===&lt;br /&gt;
Los sistemas operativos de nuestra plataforma se corresponden a las versiones de Ubuntu Server LTS , ya que son las versiones estables, con un soporte continuado y mas estables a actualizaciones desde la salida Ubuntu 14.04.1. En concreto el sistema operativo utilizado para la plataforma '''''VIVA'''''it es Ubuntu Server 14.04.4 LTS. Para más información https://help.ubuntu.com/lts/serverguide/index.html.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ubuntu Kernel Release Schedule.png|750px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Funcionamiento en cluster ====&lt;br /&gt;
&lt;br /&gt;
Un clúster es un grupo de múltiples ordenadores unidos mediante una red de alta velocidad, de tal forma que el conjunto es visto como un único ordenador.&lt;br /&gt;
&lt;br /&gt;
De un clúster se espera que presente combinaciones de los siguientes servicios:&lt;br /&gt;
&lt;br /&gt;
# Alto rendimiento &lt;br /&gt;
# Alta disponibilidad&lt;br /&gt;
# Balanceo de carga &lt;br /&gt;
# Escalabilidad &lt;br /&gt;
&lt;br /&gt;
Tal y como esta definido el cluster de MDtel, este comprueba conectividad con la otra máquina que lo forma y con un punto de confianza. Si la máquina no tiene conectividad con la otra y si con el punto de confianza es que el servidor está vivo, mientas que si no tengo conectividad ni con la otra máquina ni con el punto de confianza es que el muerto soy yo, por lo que balanceo.&lt;br /&gt;
&lt;br /&gt;
Por lo que las máquinas balancean en los casos siguientes:&lt;br /&gt;
&lt;br /&gt;
* Todo lo que tenga que ver con la red, es decir, caída de la tarjeta de red, apagado de la máquina, corte en la red..&lt;br /&gt;
&lt;br /&gt;
Y no balancea en los siguientes:&lt;br /&gt;
&lt;br /&gt;
* No balancea en los demás casos, es decir, todo lo que tenga que ver con procesos de una máquina (caída asterisk, base de datos, intz-nimitz)&lt;br /&gt;
&lt;br /&gt;
El funcionamiento en cluster se basa en:&lt;br /&gt;
&lt;br /&gt;
* Heartbeat: IP flotante entre las dos máquinas que componen el cluster; típicamente este &amp;quot;latido&amp;quot; entre máquinas se realizará mediante conexión directa con cable cruzado para asegurar que no existan problemas de comunicaciones tales como retardo, pérdida de paquetes, etc en este latido y pueda ser causa de un balanceo inadecuado.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|  '''Nota 17-11-2015:''' Se ha realizado en un cliente un cluster distribuido, con dos servidores en diferentes sedes, realizando el heartbeat mediante enlace Gigabit. Si bien la solución no está validada por desarrollo, se está observando el funcionamiento.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* DRBD que se encargar de mantener una serie de carpetas totalmente replicadas entre los dos nodos; dichas las carpetas son:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El cluster es &amp;lt;big&amp;gt;'''activo/pasivo'''&amp;lt;/big&amp;gt;; la máquina activa posee la IP flotante y tiene arrancados los servicios.&lt;br /&gt;
&lt;br /&gt;
==== Configuración del cluster ====&lt;br /&gt;
Para montar un cluster de asterisk partimos de la siguiente situación inicial:&lt;br /&gt;
* Dos maquinas con '''''VIVA'''''it Call 3.0 instalado.&lt;br /&gt;
* El driver bonding de Interfaces de Red en Ubuntu Server.&lt;br /&gt;
&lt;br /&gt;
Los pasos a seguir para la configuración en el Ubuntu Server son los siguientes:&lt;br /&gt;
* Instalar ifenslave: &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 aptitude install ifenslave.&lt;br /&gt;
|}&lt;br /&gt;
: Finalizada la instalación, comprobamos que la instalación de Bonding se ha configurado para empezar desde el arranque del sistema operativo desde el fichero '''/etc/modules''':&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| vi /etc/modules&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 # Parameters can be specified after the module name.&lt;br /&gt;
 lp&lt;br /&gt;
 rtc&lt;br /&gt;
 bonding&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Crear o editar el archivo llamado '''/etc/modprobe.d/bonding.conf''' y añadir la siguiente linea en negrita:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 echo &amp;quot;alias bond0 bonding&amp;quot;&amp;gt; /etc/modprobe.d/bonding.conf&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Editar el fichero /etc/network/interfaces y añadir lo que esta en negrita:&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
 # This file describes the network interfaces available on your system&lt;br /&gt;
 # and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 &lt;br /&gt;
 '''# Bonding'''&lt;br /&gt;
 &lt;br /&gt;
 '''#em1 ip manual y esclavo en el &amp;quot;bond0&amp;quot; NIC'''&lt;br /&gt;
 '''auto em1'''&lt;br /&gt;
 '''iface em1 inet manual'''&lt;br /&gt;
 '''bond-master bond0'''&lt;br /&gt;
 '''bond-primary em0''' &lt;br /&gt;
 &lt;br /&gt;
 '''#em2 ídem, creando así un vínculo de enlace 2.'''&lt;br /&gt;
 '''auto em2'''&lt;br /&gt;
 '''iface em2 inet manual'''&lt;br /&gt;
 '''bond-master bond0'''&lt;br /&gt;
 '''auto bond0'''&lt;br /&gt;
 '''iface bond0 inet static'''&lt;br /&gt;
         '''address 10.255.255.11'''&lt;br /&gt;
        '''netmask 255.255.255.0'''&lt;br /&gt;
        '''gateway 10.255.255.254'''&lt;br /&gt;
 '''bond-mode active-backup'''&lt;br /&gt;
 '''bond-miimon 100'''&lt;br /&gt;
 '''bond-slaves none'''&lt;br /&gt;
 &lt;br /&gt;
 '''# em3 replica entre servidores'''&lt;br /&gt;
 '''auto em3'''&lt;br /&gt;
 '''iface em3 inet static'''&lt;br /&gt;
         '''address 10.255.254.10'''&lt;br /&gt;
        '''netmask 255.255.255.0'''&lt;br /&gt;
 &lt;br /&gt;
 '''# em4 gestion'''&lt;br /&gt;
 '''auto em4'''&lt;br /&gt;
 '''iface em4 inet static'''&lt;br /&gt;
         '''address 172.17.47.255'''&lt;br /&gt;
         '''netmask 255.255.0.0'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Reiniciamos el sistema para que el kernel tome los cambios.&lt;br /&gt;
&lt;br /&gt;
* Comprobación que en las dos maquinas el archivo '''/etc/host''' contenga el los nombre de las dos maquinas a vincular. En el ejemplo el archivo en ambas maquinas es:&lt;br /&gt;
&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 127.0.0.1       localhost&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.11   vivaitcall-CL-UAH-1&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.12   vivaitcall-CL-UAH-2&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.10   vivaitcall-CL-UAH&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.10   BDTR&lt;br /&gt;
 &lt;br /&gt;
 10.255.254.10   vivaitcall-CL-UAH-1-em3&lt;br /&gt;
 &lt;br /&gt;
 10.255.254.11   vivaitcall-CL-UAH-2-em3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Creamos dos particiones iguales en ambos ordenadores , usando el comando '''parted'''.&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# '''parted /dev/sda'''&lt;br /&gt;
 GNU Parted 2.3&lt;br /&gt;
 Using /dev/sda&lt;br /&gt;
 Welcome to GNU Parted! Type 'help' to view a list of commands.&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Number  Start   End     Size    File system     Name  Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 &lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                 boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
        237GB   1000GB  763GB   Free Space&lt;br /&gt;
 &lt;br /&gt;
 (parted) mkpart primary 237GB 1000GB&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Number  Start   End     Size    File system     Name     Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                    boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
 5      237GB   1000GB  763GB                   primary  No File System como ext4&lt;br /&gt;
        1000GB  1000GB  204kB   Free Space&lt;br /&gt;
 (parted)quit&lt;br /&gt;
 mkfs.ext4 /dev/sda5&lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# '''parted /dev/sda'''&lt;br /&gt;
 GNU Parted 2.3&lt;br /&gt;
 Using /dev/sda&lt;br /&gt;
 Welcome to GNU Parted! Type 'help' to view a list of commands.&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Number  Start   End     Size    File system     Name     Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                    boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
 5      237GB   1000GB  763GB                   primary&lt;br /&gt;
        1000GB  1000GB  204kB   Free Space&lt;br /&gt;
 (parted) rm 5&lt;br /&gt;
 (parted) mkpart primary 237GB 1000GB&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 &lt;br /&gt;
 Number  Start   End     Size    File system     Name     Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                    boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
 5      237GB   1000GB  763GB   ext4            primary  Si File Sytem ext4&lt;br /&gt;
        1000GB  1000GB  204kB   Free Space&lt;br /&gt;
 (parted)quit&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Instalar los paquetes necesarios para el drbd. '''En Ubuntu server 14.04 ya está instalado.'''&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 aptitude install drbd8-utils  &lt;br /&gt;
 aptitude update (si no instala el drbd8-utils actualizar)&lt;br /&gt;
 aptitude install drbd8-utils  (volver a lanzar)&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
* Creamos el archivo '''/etc/drbd.conf''' en ambas maquinas:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 # You can find an example in  /usr/share/doc/drbd.../drbd.conf.example&lt;br /&gt;
 include &amp;quot;drbd.d/global_common.conf&amp;quot;;&lt;br /&gt;
 include &amp;quot;drbd.d/*.res&amp;quot;;&lt;br /&gt;
 resource MDcluster {&lt;br /&gt;
         protocol C;&lt;br /&gt;
         on vivaitcall-CL-UAH-1 {&lt;br /&gt;
               device /dev/drbd0;&lt;br /&gt;
               disk /dev/sda5;&lt;br /&gt;
               address 10.255.254.10:7788;&lt;br /&gt;
               meta-disk internal;&lt;br /&gt;
        }&lt;br /&gt;
        on vivaitcall-CL-UAH-2 {&lt;br /&gt;
               device /dev/drbd0;&lt;br /&gt;
               disk /dev/sda5;&lt;br /&gt;
               address 10.255.254.11:7788;&lt;br /&gt;
               meta-disk internal;&lt;br /&gt;
        }&lt;br /&gt;
        disk {&lt;br /&gt;
               on-io-error detach;&lt;br /&gt;
        }&lt;br /&gt;
        net {&lt;br /&gt;
               max-buffers 2048;&lt;br /&gt;
               ko-count 4;&lt;br /&gt;
        }&lt;br /&gt;
        syncer {&lt;br /&gt;
               rate 100M;&lt;br /&gt;
               al-extents 257;&lt;br /&gt;
        }&lt;br /&gt;
        startup {&lt;br /&gt;
                wfc-timeout 0;&lt;br /&gt;
                degr-wfc-timeout 120;&lt;br /&gt;
        }&lt;br /&gt;
 }&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Reiniciamos el sistema para que el kernel tome los cambios.&lt;br /&gt;
* Inicializamos el recurso, para ello primero deberemos crear los recursos DRBD teclearemos en ambas maquinas. Desde /etc.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
  drbdadm create-md MDcluster  (no y yes )&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Si tenemos algún problema porque ya exista sistema de ficheros.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 dd if=/dev/zero of=/dev/sda5 bs=1M count=128&lt;br /&gt;
 drbdadm create-md MDcluster  (no y yes )&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Reiniciamos ambas maquinas para que su kernel tome los cambios.&lt;br /&gt;
* Levantamos el servicio del DRBD en ambos servidores (nos preguntara que si queremos enviar los datos a los desarrolladores de drbd) tecleando no, no se envían.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 service drbd start&lt;br /&gt;
 /etc/init.d/drbd start&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Ahora &amp;lt;u&amp;gt;ambas maquinas son secundarias&amp;lt;/u&amp;gt;.&lt;br /&gt;
: Indicar cual de las dos maquinas usaremos como primaria, por tanto en la maquina elegida habra que ejecutar:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 drbdadm -- --overwrite-data-of-peer primary all (en una máquina)&lt;br /&gt;
:&amp;lt;small&amp;gt;'''Nota:''' La ip virtual que va a estar asignada a la maquina activa es  172.25.129.70.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Podemos teclear el comando '''''cat''''' para ver si esta sincronizando  y su progreso:&lt;br /&gt;
&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 cat /proc/drbd&lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' El servicio DRBD  aparecera como '''''Primary/Secondary'''''  si ejecutamos en el primario ; &lt;br /&gt;
 y aparecerá ''''Secondary/Primary'''' si lo ejecutamos en el secundario. &amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
* Instalación de los script de arranque:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 update-rc.d -f drbd remove (en las dos maquinas)&lt;br /&gt;
 update-rc.d drbd start 13 2 3 4 5 . stop 87 0 1 6 . (en las dos máquinas)&lt;br /&gt;
|}&lt;br /&gt;
* Seleccionar la fuente de sincronización.&lt;br /&gt;
:Formateamos un disco de la maquina que queramos que funcione como fuente del servicio DRBD, para evitar conflictos:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 mkfs.ext4  /dev/drbd0&lt;br /&gt;
|}&lt;br /&gt;
: Creamos el directorio sobre el que vamos a montar el disco, en ambas maquinas.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 mkdir  /HDcluster&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Creamos un archivo dentro '''''/HDcluster''''' de que se verá solo cuando el disco no está montado en ambas maquinas.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 touch sinMontar&lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' Este archivo nos puede servir para monitorizar mediante zabbix, nagios, ... que el disco no está montado.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:  En una de las maquinas montamos el disco (desde fuera del directorio HDcluster) &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 mount  /dev/drbd0 /HDcluster&lt;br /&gt;
|}&lt;br /&gt;
* Procedemos a mover todos los datos que necesitemos en este disco y a crear accesos directos, los directorios que vamos a mover son los siguientes:&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 /etc/asterisk&lt;br /&gt;
 /var/lib/asterisk&lt;br /&gt;
 /usr/lib/asterisk&lt;br /&gt;
 /usr/spool/asterisk&lt;br /&gt;
 /var/lib/mysql&lt;br /&gt;
 /var/tftp/&lt;br /&gt;
|}&lt;br /&gt;
: El procedimiento que vamos a seguir es el siguiente, en el primer ordenador:&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 '''Cd /HDcluster'''&lt;br /&gt;
 '''tar -zcvf etc-asterisk.tgz /etc/asterisk'''&lt;br /&gt;
 '''tar -zxvf  etc-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /etc/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/etc/asterisk /etc/asterisk'''&lt;br /&gt;
 '''tar -zcvf var-lib-asterisk.tgz /var/lib/asterisk'''&lt;br /&gt;
 '''tar -zxvf  var-lib-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /var/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/asterisk /var/lib/asterisk'''&lt;br /&gt;
 '''tar -zcvf usr-lib-asterisk.tgz /usr/lib/asterisk'''&lt;br /&gt;
 '''tar -zxvf  usr-lib-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /usr/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/usr/lib/asterisk /usr/lib/asterisk'''&lt;br /&gt;
 '''tar -zcvf var-spool-asterisk.tgz /var/spool/asterisk'''&lt;br /&gt;
 '''tar -zxvf  var-spool-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /var/spool/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/spool/asterisk /var/spool/asterisk'''&lt;br /&gt;
 '''tar -zcvf var-lib-mysql.tgz /var/lib/mysql'''&lt;br /&gt;
 '''tar -zxvf  var-lib-mysql.tgz'''&lt;br /&gt;
 '''rm -rf /var/lib/mysql'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/mysql /var/lib/mysql'''&lt;br /&gt;
 '''tar -zcvf var-lib-phoneprov-tftp.tgz /var/lib/phoneprov-tftp/'''&lt;br /&gt;
 '''tar -zxvf  var-lib-phoneprov-tftp.tgz'''&lt;br /&gt;
 '''rm -rf /var/lib/phoneprov-tftp/'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/phoneprov-tftp /var/lib/phoneprov-tftp'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: En la segunda maquina debemos borrar los directorios y crear los accesos directos.&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''rm -rf /etc/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/etc/asterisk /etc/asterisk'''&lt;br /&gt;
 '''rm -rf /var/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/asterisk /var/lib/asterisk'''&lt;br /&gt;
 '''rm -rf /usr/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/usr/lib/asterisk /usr/lib/asterisk'''&lt;br /&gt;
 '''rm -rf /var/spool/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/spool/asterisk /var/spool/asterisk'''&lt;br /&gt;
 '''rm -rf /var/lib/mysql'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/mysql /var/lib/mysql'''&lt;br /&gt;
 '''rm -rf /var/lib/phoneprov-tftp'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/phoneprov-tftp /var/lib/phoneprov-tftp'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Configurar heartbeat para las dos maquinas.&lt;br /&gt;
: Instalamos heartbeat en las dos maquinas. '''En UBUNTU Server 14.04 ya está instalado.'''&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 aptitude install heartbeat&lt;br /&gt;
|}&lt;br /&gt;
: Debemos modificar 3 ficheros en cada una de las maquinas, estos se encuentran en '''/etc/ha.d'''. El primer fichero a modificar es '''''ha.cf.''''':&lt;br /&gt;
:: En la maquina ''vivaitcall-CL-UAH-1'' es: &lt;br /&gt;
::{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# cat /etc/ha.d/ha.cf&lt;br /&gt;
 '''# Explicacion en /usr/share/doc/heartbeat/ha.cf.gz'''&lt;br /&gt;
 &lt;br /&gt;
 '''udpport 694'''&lt;br /&gt;
 '''baud 19200'''&lt;br /&gt;
 '''auto_failback off'''&lt;br /&gt;
 '''use_logd yes'''&lt;br /&gt;
 '''crm no'''&lt;br /&gt;
 &lt;br /&gt;
 '''# Temporizaciones en segs'''&lt;br /&gt;
 '''logfacility local0'''&lt;br /&gt;
 '''keepalive 2'''&lt;br /&gt;
 '''deadtime 8'''&lt;br /&gt;
 '''warntime 16'''&lt;br /&gt;
 '''initdead 64'''&lt;br /&gt;
 '''deadping 6'''&lt;br /&gt;
 &lt;br /&gt;
 '''#ucast bond0 vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''ucast bond0 vivaitcall-CL-UAH-2'''&lt;br /&gt;
 &lt;br /&gt;
 '''#ucast em3 vivaitcall-CL-UAH-1-em3'''&lt;br /&gt;
 '''ucast em3 vivaitcall-CL-UAH-2-em3'''&lt;br /&gt;
 &lt;br /&gt;
 '''#Ping a puerta de enlace,gw1,gw2,gw3,gw4'''&lt;br /&gt;
 '''ping_group red_local 10.255.255.12'''&lt;br /&gt;
 &lt;br /&gt;
 '''respawn hacluster /usr/lib/heartbeat/ipfail'''&lt;br /&gt;
 '''apiauth ipfail gid=haclient uid=hacluster'''&lt;br /&gt;
 &lt;br /&gt;
 '''node vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''node vivaitcall-CL-UAH-2'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:: Y en la maquina ''vivaitcall-CL-palacio-2'' es:&lt;br /&gt;
::{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# cat /etc/ha.d/ha.cf&lt;br /&gt;
 '''# Explicacion en /usr/share/doc/heartbeat/ha.cf.gz'''&lt;br /&gt;
 &lt;br /&gt;
 '''udpport 694'''&lt;br /&gt;
 '''baud 19200'''&lt;br /&gt;
 '''auto_failback off'''&lt;br /&gt;
 '''use_logd yes'''&lt;br /&gt;
 '''crm no'''&lt;br /&gt;
 &lt;br /&gt;
 '''# Temporizaciones en segs'''&lt;br /&gt;
 '''logfacility local0'''&lt;br /&gt;
 '''keepalive 2'''&lt;br /&gt;
 '''deadtime 8'''&lt;br /&gt;
 '''warntime 16'''&lt;br /&gt;
 '''initdead 64'''&lt;br /&gt;
 '''deadping 6'''&lt;br /&gt;
 &lt;br /&gt;
 '''ucast bond0 vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''#ucast bond0 vivaitcall-CL-UAH-2'''&lt;br /&gt;
 &lt;br /&gt;
 '''ucast em3 vivaitcall-CL-UAH-1-em3'''&lt;br /&gt;
 '''#ucast em3 vivaitcall-CL-UAH-2-em3'''&lt;br /&gt;
 &lt;br /&gt;
 '''#Ping a puerta de enlace gw1 gw2 gw3 gw4'''&lt;br /&gt;
 '''ping_group red_local 10.255.255.12'''&lt;br /&gt;
 &lt;br /&gt;
 '''respawn hacluster /usr/lib/heartbeat/ipfail'''&lt;br /&gt;
 '''apiauth ipfail gid=haclient uid=hacluster'''&lt;br /&gt;
 &lt;br /&gt;
 '''node vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''node vivaitcall-CL-UAH-2'''&lt;br /&gt;
|}&lt;br /&gt;
::'''Nota:''' El parámetro '''auto_failback''' se utiliza para indicar si queremos que al recuperarse una maquina adquiera los recursos sobre los que tiene prioridad.&lt;br /&gt;
:El segundo fichero es '''''authkeys''''',, este fichero es el mismo en ambas maquinas: &lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 chmod 600 authkeys '''(importante)'''&lt;br /&gt;
 auth 1&lt;br /&gt;
 1 sha1 claveSecretaATope&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:El tercer fichero '''haresources''', donde especificaremos en las dos maquinas que deben apuntar a la maquina que queremos que tenga prioridad en la adquisición de los recursos, este fichero es el mismo en las dos maquinas: &lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 MÁQUINA 1 -&amp;gt; vivaitcall-CL-palacio-1 hb_mdtel&lt;br /&gt;
 MÁQUINA 2-&amp;gt; vivaitcall-CL-palacio-1 hb_mdtel &lt;br /&gt;
|}&lt;br /&gt;
: Copiaremos en el directorio '''/etc/ha.d/resource.d/''' los scripts de arranque con permisos 755 (lo podemos hacer mediante WINSCP). Los scripts se encuentran en '''''C:\Documents and Settings\javier.gutierrez.MDTEL\Mis documentos\Centrales\Asterisk\Cluster\scripts'''''.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 chmod 755 hb_catalina&lt;br /&gt;
 chmod 755 hb_mdtel&lt;br /&gt;
 chmod 755 hb_mdtel_firewall&lt;br /&gt;
|}&lt;br /&gt;
: Deberemos editar  el archivo '''hb_mdtel'''&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 (IP flotante a.b.c.d./mask) 10.255.255.10&lt;br /&gt;
 CAD_IP_FLOTA=10.255.255.10/24/bond0&lt;br /&gt;
|}&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* Paramos el proceso '''myAcdSuperv'''.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 mv /etc/rc2.d/S02myAcdSuperv s02myAcdSuperv&lt;br /&gt;
|}&lt;br /&gt;
* Reiniciamos ambas maquinas para que su kernel tome los cambios.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de buen funcionamiento del cluster ====&lt;br /&gt;
* La maquina activa tiene que tener en HDcluster montado el disco con todos sus directorios y la maquina inactiva no (tenemos que ver el archivo que hemos creado &amp;quot;sinMontar&amp;quot;). &lt;br /&gt;
* La ip virtual tiene que estar en la maquina activa (ifconfig)  y no tiene que estar en la inactiva. &lt;br /&gt;
* El asterisk tiene que estar arrancado en la maquina activa y parado en la inactiva. &lt;br /&gt;
* Tecleando la ip de la maquina activa en un navegador debemos acceder al portal de vivait-call y en la inactiva no debe de estar activo. &lt;br /&gt;
* Para cambiar el cluster manualmente podemos utilizar los siguientes comandos:&lt;br /&gt;
:{|&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
  /usr/share/heartbeat/hb_takeover&lt;br /&gt;
|}&lt;br /&gt;
: La maquina desde la que se ejecuta se convierte en la maquina activa&lt;br /&gt;
:{|&lt;br /&gt;
 |- &lt;br /&gt;
 |&lt;br /&gt;
  /usr/share/heartbeat/hb_standby&lt;br /&gt;
 |}&lt;br /&gt;
: La maquina desde la que se ejecuta deja de ser la maquina activa&lt;br /&gt;
&lt;br /&gt;
==== Notas para MySQL ====&lt;br /&gt;
Si mysql es parte del cluster tenemos que tener en cuenta dos cosas:&lt;br /&gt;
&lt;br /&gt;
* El archivo '''/etc/mysql/debían.cnf''' contiene una clave que debe ser igual en ambas maquinas y debe ser la clave de la máquina de donde cojamos la base de datos.&amp;lt;br&amp;gt;&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 # Automatically generated for Debian scripts. DO NOT TOUCH!&lt;br /&gt;
 [client]&lt;br /&gt;
 host     = localhost&lt;br /&gt;
 user     = debian-sys-maint&lt;br /&gt;
 password = AI6AdPtnhLUrNm1S&lt;br /&gt;
 socket   = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysql_upgrade]&lt;br /&gt;
 user     = debian-sys-maint&lt;br /&gt;
 password = AI6AdPtnhLUrNm1S&lt;br /&gt;
 socket   = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 basedir  = /usr&lt;br /&gt;
|} &amp;lt;br&amp;gt;&lt;br /&gt;
* El archivo '''/etc/apparmor.d/usr.sbin.mysqld''' contiene donde pueden estar ubicados los archivos de mysql, al cambiar su ubicación y poner un enlace directo en /var/lib/mysql si no modificamos este archivo mysql no arrancara al no tener la nueva ubicación entre sus localizaciones permitidas. Este es un ejemplo de las líneas que debemos añadir. &amp;lt;br&amp;gt;&lt;br /&gt;
:{|&lt;br /&gt;
|-  &lt;br /&gt;
|&lt;br /&gt;
 /var/run/mysqld/mysqld.sock w, (copiar después de esta linea)&lt;br /&gt;
 &lt;br /&gt;
 #//!!&lt;br /&gt;
   /HDcluster/var/lib/mysql/ r,&lt;br /&gt;
   /HDcluster/var/lib/mysql/** rwk,&lt;br /&gt;
   #//!!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Notas de desincronización ====&lt;br /&gt;
EL servicio del DRBD esta iniciado pero al teclear el comando cat /proc/drbd para ver si esta sincronizando se presenta &amp;quot;'''primary/unknown&amp;quot; y/o secondary/unknown''' &amp;quot;.&lt;br /&gt;
* En el nodo primary  &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 drbdadm connect all &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* En el nodo secondary  &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 drbdadm disconnect all  &lt;br /&gt;
 drbdadm -- --discard-my-data connect all&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Adaptar red a cliente ====&lt;br /&gt;
Para adaptar la red de los equipos al entorno del cliente hay que editar los siguientes ficheros:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 /etc/network/interfaces&lt;br /&gt;
 /etc/resolv.conf&lt;br /&gt;
 /etc/hosts&lt;br /&gt;
 /etc/ha.d/resource.d/hb_mdtel&lt;br /&gt;
 /etc/ha.d/ha.cf &lt;br /&gt;
 - TFTP: &lt;br /&gt;
 /etc/inetd.conf (IP del cluster)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
Tras la modificaciones oportunas, se debe reiniciar las dos máquinas para cargar las nuevas configuraciones.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Matriz de conmutación ===&lt;br /&gt;
&lt;br /&gt;
Encontramos dos diferentes núcleos de conmutación en la plataforma VIVAit:&lt;br /&gt;
&lt;br /&gt;
* Para los nodos de procesamiento ACD el núcleo de conmutación es asterisk 1.4 RSP con fuertes modificaciones realizadas por MDtel en determinados módulos (queues, chan_spy entre otros)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Para los nodos que realizan funcionalidad de gateway y/o procesamiento de telefonía corporativa, se utiliza como núcleo de conmutación asterisk 13, versión certified&lt;br /&gt;
https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Documentation&lt;br /&gt;
&lt;br /&gt;
==== Modificaciones realizadas sobre Asterisk 13 certified 2 ====&lt;br /&gt;
&lt;br /&gt;
===== Archivos añadidos por '''MD'''tel =====&lt;br /&gt;
Los archivos añadidos son los siguientes:&lt;br /&gt;
&lt;br /&gt;
* '''apps/app_ucid.c'''&lt;br /&gt;
* '''apps/app_cli.c'''&lt;br /&gt;
* '''apps/app_crash.c'''&lt;br /&gt;
* '''apps/app_mdintz.c'''&lt;br /&gt;
* '''apps/app_mdintz.exports.in'''&lt;br /&gt;
* '''include/asterisk/mdintz.h'''&lt;br /&gt;
* '''include/asterisk/ucid.h'''&lt;br /&gt;
* '''res/res_mdcal.c'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ apps/app_mdintz.exports.in '''&lt;br /&gt;
&lt;br /&gt;
Este archivo sirve para la exportación de funciones del mdintz para el uso por aplicaciones externas&lt;br /&gt;
&lt;br /&gt;
===== Modificaciones de archivos =====&lt;br /&gt;
&lt;br /&gt;
Los archivos modificados por '''MD'''tel son los mostrados a continuación:&lt;br /&gt;
&lt;br /&gt;
* '''apps/app_mixmonitor.c''' &lt;br /&gt;
* '''res/res_calendar_caldav.c'''&lt;br /&gt;
* '''contrib/scripts/safe_asterisk'''&lt;br /&gt;
* '''contrib/init.d/rc.debian.asterisk'''&lt;br /&gt;
* '''channels/sig_pri.c'''&lt;br /&gt;
* '''channels/chan_sip.c'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ main/audiohook.c''' &amp;lt;!--style=&amp;quot;color:#0000ff&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''audiohook.c''' ha sido modificado para solucionar un crash de asterisk al utilizar en el mixmonitor las opciónes r y t &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ app_crash.c '''&lt;br /&gt;
&lt;br /&gt;
Esta nueva aplicación es sólo compatible con '''Asterisk 13'''. &lt;br /&gt;
&lt;br /&gt;
La documentación de la misma se encuentra en el comando: '''&amp;quot;core show application Crash&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
Esta nueva aplicación ''permite añadir'' al plan de pruebas:&lt;br /&gt;
&lt;br /&gt;
* Generación de una parada de asterisk.&lt;br /&gt;
* Verificación de su impacto. Por ejemplo, no deben cortarse las llamadas en curso, si así está previsto por la topología.&lt;br /&gt;
* Correcta generación de los &amp;quot;core&amp;quot;, comprobando que funciona &amp;quot;backtrace&amp;quot; (bt).&lt;br /&gt;
&lt;br /&gt;
 '''Nota.-''' Esta aplicación no debería estar presente en una instalación de '''Asterisk 13'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ app_mdintz.c y mdintz.h''' &amp;lt;!--style=&amp;quot;color:#0000ff&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esta aplicación sirve como interfaz a entornos (funcionalidades) creados por MDtel&lt;br /&gt;
&lt;br /&gt;
Para mas información consultar la página de [[MDintz|MDintz]].&lt;br /&gt;
&lt;br /&gt;
Las rutas de estos archivos son las siguientes:&lt;br /&gt;
&lt;br /&gt;
'''apps/app_mdintz.c''' &amp;lt;br/&amp;gt;&lt;br /&gt;
'''include/asterisk/mdintz.h '''&lt;br /&gt;
&lt;br /&gt;
 '''app_mdintz.c''' :&lt;br /&gt;
&lt;br /&gt;
'''app_mdintz.c''' orientada al proceso de enrutamiento a implementar en ''intz-nimitz.''&lt;br /&gt;
&lt;br /&gt;
El archivo '''.c''' es casi igual para asterisk 1.4.24 y asterisk 13. &lt;br /&gt;
 '''Nota.-''' Cuando se compila para asterisk 13, es necesario comentar la línea que pone&amp;lt;br /&amp;gt; '''&amp;quot;#define ASTERISK_OLD&amp;quot;.'''&lt;br /&gt;
&lt;br /&gt;
Los cambios implementados son:&lt;br /&gt;
&lt;br /&gt;
* Unificación de código entre las versiones de asterisk&lt;br /&gt;
* Nuevo comando &amp;quot;qry&amp;quot;&lt;br /&gt;
* Posible resolución de &amp;quot;Mal write&amp;quot; en intz-nimitz (a verificar)&lt;br /&gt;
&lt;br /&gt;
En cuanto al nuevo comando, el formato es:&lt;br /&gt;
&lt;br /&gt;
 '''mdintz qry &amp;lt;nHostFijo&amp;gt; &amp;lt;entorno&amp;gt; &amp;lt;servicio&amp;gt; &amp;lt;par1&amp;gt;...&amp;lt;parN&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Permite interrogar a un servidor de igual modo que hace el dialplan con '''fines de diagnóstico'''. La única diferencia es que se ha añadido el parámetro '''&amp;quot;nHostFijo&amp;quot;''' que puede tomar como valor '''&amp;quot;*&amp;quot;''' (lo que solicita una interrogación secuencial a todos los servidores definidos, igual a la funcionalidad del dialplan) ó '''&amp;quot;0&amp;quot;''' a '''&amp;quot;3&amp;quot;''' (que solicita un interrogación dirigida el host indicado como hostN, y sólo a él, en archivo de configuración).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para instalarlo, es necesario copiar:&lt;br /&gt;
&lt;br /&gt;
* '''asterisk/apps/app_mdintz.c'''&lt;br /&gt;
* '''asterisk/include/asterisk/mdintz.h'''&lt;br /&gt;
* En asterisk 1.4.24 conviene asegurar que se ha actualizado '''&amp;quot;asterisk/apps/app_queue.o&amp;quot;''' y '''&amp;quot;asterisk/apps/app_queue.so&amp;quot;'''&lt;br /&gt;
* Luego '''&amp;quot;make&amp;quot;, &amp;quot;make install&amp;quot;''' y module '''&amp;quot;unload/load&amp;quot;''' (mejor &amp;quot;stop now&amp;quot; y start)&lt;br /&gt;
&lt;br /&gt;
'''→ scripts y rc.debian.asterisk'''&lt;br /&gt;
&lt;br /&gt;
cambiado contrib/scripts por el modificado por MDtel&amp;lt;br /&amp;gt;&lt;br /&gt;
cambiado contrib/init.d/rc.debian.asterisk por el modificado por MDtel &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ Carpeta mp3 añadida al directorio addons'''&lt;br /&gt;
&lt;br /&gt;
La carpeta mp3 en addons permite la reproducción desde el diaplan de los mensajes en mp3. En make menuselect hay que marcar el format_mp3 y app_mp3 e instalar el paquete mpg123 de ubuntu &lt;br /&gt;
&lt;br /&gt;
'''→ sig_pri.c'''&lt;br /&gt;
&lt;br /&gt;
Modificado para enviar/recibir el ucid en un primario qsig &lt;br /&gt;
&lt;br /&gt;
Para que se envie el ucis tenemos que habilitar el envio de facilidades en el chan_dahdi.conf&lt;br /&gt;
&lt;br /&gt;
facilityenable = yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ init.d''' &amp;lt;!--style=&amp;quot;color:#0000ff&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Uno de los archivos modificados ha sido '''init.d''', se encuentra en la ruta: '''/etc/init.d/asterisk'''. La modificación realizada es la siguiente:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;background-color:#ffffcc;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| SAFE_ASTEISK=/usr/sbin/safe_asterisk &amp;lt;br/&amp;gt;&lt;br /&gt;
if [ -x $SAFE_ASTERISK ] ; then&amp;lt;br/&amp;gt;&lt;br /&gt;
:# //!! wkw&amp;lt;br/&amp;gt;&lt;br /&gt;
:DAEMON=$SAFE_ASTERISK&amp;lt;br/&amp;gt;&lt;br /&gt;
fi&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--archivo--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''→ safe-asterisk'''&lt;br /&gt;
* Se encuentra en la siguiente ruta:'''/usr/sbin/safe-asterisk''' .En este archivo se ha modificado MAXFILES=32768&lt;br /&gt;
&lt;br /&gt;
'''→ default'''&lt;br /&gt;
&lt;br /&gt;
* Este fichero podemos encontrarlo en: '''/etc/default/asterisk'''. La finalidad de la modificación de este fichero es poder correr como usuario Asterisk, grupo asterisk y generar cores (descomentar línea)&lt;br /&gt;
Las modificaciones realizadas han sido:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;background-color:#ffffcc;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| AST_USER=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
AST_GROUP=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
COREDUMP=yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Nueva función de asterisk: app_cli.so =====&lt;br /&gt;
&lt;br /&gt;
Esta función permite ejecutar desde el '''dialplan''' un comando de línea de consola de '''asterisk (CLI).''' Su primer uso (y esperamos que no último) será para lanzar los '''notify''' que los teléfonos necesitan para el ''reaprovisionamiento'' desde el portal o desde la facilidad de movilidad de usuario.&lt;br /&gt;
&lt;br /&gt;
Básicamente ejecuta un comando y devuelve su salida. Utiliza un archivo intermedio que puede ser:&lt;br /&gt;
&lt;br /&gt;
* '''/dev/null''' si el campo se deja vacío, por tanto, no se puede recuperar la salida.&lt;br /&gt;
* '''TEMP''', en cuyo caso se crea un archivo temporal que se borra antes de finalizar la ejecución de la función.&lt;br /&gt;
* Un nombre de fichero que es responsabilidad del dialplan el borrarlo cuando proceda.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para instalarlo basta copiar '''apps/app_cli.c''' en el directorio ''' &amp;quot;apps&amp;quot; ''' de los fuentes y luego  ejecutar '''&amp;quot;make&amp;quot; y &amp;quot;make install&amp;quot;.'''&lt;br /&gt;
&lt;br /&gt;
A continuación se pasa el resultado de '''&amp;quot;core show function CLI&amp;quot; '''&lt;br /&gt;
&lt;br /&gt;
'''[Synopsis]'''&lt;br /&gt;
&lt;br /&gt;
 Lanza un comando CLI desde dialplan&lt;br /&gt;
&lt;br /&gt;
'''[Description]''' &amp;lt;br /&amp;gt;&lt;br /&gt;
 - CLI(nomArchSal,cmd)&amp;lt;br /&amp;gt;&lt;br /&gt;
 - Si 'nomArchSal' está vacio, se usa '/dev/null' y no se recupera resultado&amp;lt;br /&amp;gt;&lt;br /&gt;
 - Si 'nomArchSal'=TEMP, Se crea un archivo temporal que se borra al final&amp;lt;br /&amp;gt;&lt;br /&gt;
 - En otro caso, se crea el archivo y no se borra&lt;br /&gt;
&lt;br /&gt;
'''[Syntax]'''&amp;lt;br /&amp;gt;&lt;br /&gt;
 CLI(nomArchSal,cmd)&lt;br /&gt;
&lt;br /&gt;
'''[Arguments]'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''nomArchSal'''&lt;br /&gt;
    Archivo de salida (si se omite, /dev/null)&lt;br /&gt;
'''cmd'''&lt;br /&gt;
    Comando a ejecutar via CLI&lt;br /&gt;
&lt;br /&gt;
==== Dialplan  ====&lt;br /&gt;
&lt;br /&gt;
El Dialplan podría considerarse la columna vertebral del sistema ''Asterisk''.&lt;br /&gt;
&lt;br /&gt;
Es una colección ordenada de acciones que se llevan a cabo cuando un usuario marca una serie de números. Hace la función de una tabla de enrutamiento de llamadas.&lt;br /&gt;
&lt;br /&gt;
Todas las configuraciones generales de Asterisk están accesibles en la ruta '''/etc/asterisk'''&lt;br /&gt;
&lt;br /&gt;
'''CONCEPTOS BÁSICOS'''&lt;br /&gt;
&lt;br /&gt;
♦ '''EXTENSIONES'''&lt;br /&gt;
&lt;br /&gt;
Una extensión es una marcación en el teclado de un teléfono. Dicha configuración podemos encontrarla en el archivo '''extensions.conf''' &lt;br /&gt;
&lt;br /&gt;
Por ejemplo, un usuario podría marcar “3001” en su teléfono, y eso sería una extensión. También podría marcar un número de teléfono nacional, como por ejemplo “915881000”, y también sería una extensión.&lt;br /&gt;
&lt;br /&gt;
En Asterisk pueden definirse también extensiones como texto, por tanto no debemos relacionar las extensiones únicamente con números.&lt;br /&gt;
&lt;br /&gt;
Algunas reglas que sería interesante conocer serían las siguientes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Regla''' !! '''Descripción'''&lt;br /&gt;
|-&lt;br /&gt;
| '''X''' || Cualquier cifra de 0 a 9&lt;br /&gt;
|-&lt;br /&gt;
|'''Z'''||Cualquier cifra de 1 a 9&lt;br /&gt;
|-&lt;br /&gt;
|'''N'''||Cualquier cifra de 2 a 9&lt;br /&gt;
|-&lt;br /&gt;
|'''[x-y]'''||Cualquier cifra de &amp;quot;x&amp;quot; a &amp;quot;y&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''[xyz]'''|| 	Las cifras &amp;quot;x&amp;quot;, &amp;quot;y&amp;quot; o &amp;quot;z&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''.'''||Una o más repeticiones del símbolo anterior&lt;br /&gt;
|-&lt;br /&gt;
|'''!'''||Cero o más repeticiones del símbolo anterior&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Estas reglas son necesarias a la hora de definir por ejemplo todos los números de teléfono posibles en España &lt;br /&gt;
&lt;br /&gt;
♦ '''PRIORIDADES'''&lt;br /&gt;
&lt;br /&gt;
En lenguaje scripting, las acciones se van ejecutando de arriba a abajo en orden. En cambio, en Asterisk, el orden en el que se ejecutan las acciones es el indicado mediante números.&lt;br /&gt;
Primero se ejecutará la acción 1, luego la 2...así sucesivamente.&lt;br /&gt;
&lt;br /&gt;
Es decir no basta con definir las acciones que se llevarán a cabo, también debemos indicar el orden en el que se llevarán a cabo.&lt;br /&gt;
&lt;br /&gt;
♦ '''CONTEXTOS'''&lt;br /&gt;
&lt;br /&gt;
Es mecanismo que nos permite variar el comportamiento del sistema en función del número que se marque. Su misión es aumentar la seguridad del sistema ofreciendo servicios diferenciados en función del usuario.&lt;br /&gt;
&lt;br /&gt;
La sintaxis típica es el nombre del contexto englobado entre corchetes [nombre_contexto]. Si un dispositivo no tiene un contexto definido se redirige directamente al contexto por defecto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los ficheros que conforman el Dialplan se clasifican en:&lt;br /&gt;
&lt;br /&gt;
* '''Generales'''&lt;br /&gt;
* '''Particulares'''&lt;br /&gt;
* '''Web'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Fichero''' !! '''Función'''&lt;br /&gt;
|-&lt;br /&gt;
| '''Generales''' || Se encuentran los ficheros de propios de MDtel y Asterisk. Es importante remarcar que estos ficheros NO pueden ser modificados por el usuario.&lt;br /&gt;
|-&lt;br /&gt;
|'''Particular'''||Estos ficheros son los únicos que puede modificar el usuario&lt;br /&gt;
|-&lt;br /&gt;
|'''Web'''|| Se encierran aquí los archivos generados automáticamente por la plataforma, a través del portal&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
En función del nodo en el que estemos trabajando, encontraremos dos tipos de dialplan:&lt;br /&gt;
&lt;br /&gt;
'''* Dialplan ACD''' --&amp;gt; Dialplan que aplica a nodos ACD&lt;br /&gt;
&lt;br /&gt;
'''* Dialplan corporativa''' --&amp;gt; Dialplan que aplica a nodos de corporativa o gateways (ya sean de corporativa o ACD)&lt;br /&gt;
&lt;br /&gt;
A continuación se muestran las tablas con los ficheros correspondientes a cada Dialplan.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;FloralWhite&amp;quot;&lt;br /&gt;
|+ '''Ficheros de configuración Dialplan Corporativo'''&lt;br /&gt;
| '''GENERALES'''&lt;br /&gt;
| '''PARTICULARES'''&lt;br /&gt;
| '''WEB'''&lt;br /&gt;
|-&lt;br /&gt;
| ext_Grabaciones.conf &amp;lt;br /&amp;gt;ext_InicioLlamada.conf &amp;lt;br /&amp;gt; ext_InicioLlamada_Dahdi.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP.conf &amp;lt;br/&amp;gt;ext_InicioLlamada_TrunkSIP.conf &amp;lt;br /&amp;gt;ext_MARCAR_ColaCentralita.conf &amp;lt;br /&amp;gt; ext_MARCAR_ColaCentralita_Dial.conf&amp;lt;br /&amp;gt; ext_MARCAR_Cola.conf &amp;lt;br /&amp;gt;ext_MARCAR_Cola_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR.conf  &amp;lt;br /&amp;gt; ext_MARCAR_DejarMensaje.conf &amp;lt;br /&amp;gt; ext_MARCAR_DejarMensaje_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Extension.conf&amp;lt;br /&amp;gt;ext_MARCAR_Extension_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_nimitz.conf&amp;lt;br /&amp;gt;ext_MARCAR_Interno.conf &amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje.conf &amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR_Nodo.conf&amp;lt;br /&amp;gt;ext_MARCAR_Nodo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Servicios.conf &amp;lt;br /&amp;gt;ext_MARCAR_VDN.conf &amp;lt;br /&amp;gt;MARCAR_VDN_Dial.conf&amp;lt;br /&amp;gt;ext_MDtel.conf &amp;lt;br /&amp;gt;ext_MDtel_Var.conf &amp;lt;br /&amp;gt;ext_Subrutinas_AnchoBanda.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD_Facilidad.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD_Facilidad.conf &amp;lt;br /&amp;gt; ext_Subrutinas_Colas.conf &amp;lt;br /&amp;gt;ext_Subrutinas.conf &amp;lt;br /&amp;gt;ext_Subrutinas_Enrutamiento.conf &amp;lt;br /&amp;gt;ext_Subrutinas_finLlamada.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Grabacion.conf&amp;lt;br /&amp;gt;ext_Subrutinas_nimitz.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Varias.conf&amp;lt;br /&amp;gt;ext_Subscribe.conf&amp;lt;br /&amp;gt;ext_Transfer.conf &amp;lt;br /&amp;gt;ext_Transfer_ExtSIP.conf&amp;lt;br /&amp;gt;ext_Transfer_TrunkInternos.conf &amp;lt;br /&amp;gt;ext_TrunkInternos.conf&amp;lt;br /&amp;gt;ext_TrunkInternos_Dial.conf &amp;lt;br /&amp;gt;sip_Estatico.conf&amp;lt;br /&amp;gt; sip_GENCUST.conf &amp;lt;br /&amp;gt;sip_notify.conf &amp;lt;br /&amp;gt;queues.conf &amp;lt;br /&amp;gt; queues_GENERAL.conf &amp;lt;br /&amp;gt;queues_PLANTILLACOLAS.conf&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| ext_Enrutador_Particular.conf&amp;lt;br /&amp;gt; ext_InicioLlamada_Dahdi_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_Particular.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_TrunkSIP_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_Extension_Particular.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo_Particular.conf &amp;lt;br/&amp;gt; ext_MARCAR_Facilidad_Particular.conf&amp;lt;br /&amp;gt; ext_MARCAR_VDN_Particular.conf &amp;lt;br /&amp;gt;ext_MDtel_Particular.conf &amp;lt;br/&amp;gt; ext_TrunkInternos_Particular.conf &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|asterisk_WEB.conf &amp;lt;br /&amp;gt; ext_MDtel_WEB.conf &amp;lt;br /&amp;gt; sip_trunkExt_WEB.conf &amp;lt;br /&amp;gt;sip_trunkInt_WEB.conf &amp;lt;br /&amp;gt;sip_trunk_WEB.conf &amp;lt;br /&amp;gt; sip_WEB.conf &amp;lt;br /&amp;gt; queues_WEB.conf&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;FloralWhite&amp;quot;&lt;br /&gt;
|+ '''Ficheros de configuración Dialplan ACD'''&lt;br /&gt;
| '''GENERALES'''&lt;br /&gt;
| '''PARTICULARES'''&lt;br /&gt;
| '''WEB'''&lt;br /&gt;
|-&lt;br /&gt;
| ext_Enrutador.conf&amp;lt;br /&amp;gt;ext_Grabaciones.conf &amp;lt;br /&amp;gt; ext_InicioLlamada.conf &amp;lt;br /&amp;gt; ext_InicioLlamada_CTI.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_Dahdi.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_Marcador.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_TrunkSIP.conf &amp;lt;br /&amp;gt;ext_MARCAR_ColaCentralita.conf &amp;lt;br /&amp;gt;ext_MARCAR_ColaCentralita_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR_Cola.conf &amp;lt;br /&amp;gt;ext_MARCAR_Cola_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR.conf &amp;lt;br /&amp;gt;ext_MARCAR_DejarMensaje.conf &amp;lt;br /&amp;gt;ext_MARCAR_DejarMensaje_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Extension.conf &amp;lt;br /&amp;gt;ext_MARCAR_Extension_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_nimitz.conf&amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje.conf &amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Nodo.conf &amp;lt;br /&amp;gt;ext_MARCAR_Nodo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR_Servicios.conf &amp;lt;br /&amp;gt;ext_MARCAR_VDN.conf &amp;lt;br /&amp;gt;ext_MARCAR_VDN_Dial.conf&amp;lt;br /&amp;gt;ext_MDtel.conf &amp;lt;br /&amp;gt;ext_MDtel_Var.conf &amp;lt;br /&amp;gt;ext_Subrutinas_AnchoBanda.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD_Facilidad.conf &amp;lt;br /&amp;gt; ext_Subrutinas_Colas.conf &amp;lt;br /&amp;gt;ext_Subrutinas.conf &amp;lt;br /&amp;gt;ext_Subrutinas_Enrutamiento.conf &amp;lt;br /&amp;gt; ext_Subrutinas_finLlamada.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Grabacion.conf &amp;lt;br /&amp;gt;ext_Subrutinas_nimitz.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Varias.conf &amp;lt;br /&amp;gt;ext_Subscribe.conf&amp;lt;br /&amp;gt;ext_Transfer.conf &amp;lt;br /&amp;gt;ext_Transfer_ExtSIP.conf&amp;lt;br /&amp;gt;ext_Transfer_TrunkInternos.conf &amp;lt;br /&amp;gt;ext_TrunkInternos.conf &amp;lt;br /&amp;gt;ext_TrunkInternos_Dial.conf &amp;lt;br /&amp;gt;queues_GENERAL.conf&amp;lt;br /&amp;gt;queues_PLANTILLACOLAS.conf &amp;lt;br /&amp;gt;sip_GENCUST.conf &amp;lt;br /&amp;gt;sip_GENERAL.conf &amp;lt;br /&amp;gt;sip_notify.conf &amp;lt;br /&amp;gt;sip_PLANTILLAEXT.conf&amp;lt;br /&amp;gt;sip_supervision.conf &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| ext_Enrutador_Particular.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_CTI_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_Dahdi_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_Marcador_Particular.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_Particular.conf.&amp;lt;br /&amp;gt;ext_InicioLlamada_TrunkSIP_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_Externo_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_VDN_Particular.conf&amp;lt;br /&amp;gt; ext_MDtel_Particular.conf&amp;lt;br /&amp;gt;ext_TrunkInternos_Particular.conf&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
|asterisk_WEB.conf &amp;lt;br /&amp;gt; ext_MDtel_WEB.conf &amp;lt;br /&amp;gt;queues_WEB.conf&amp;lt;br /&amp;gt; sip_trunkInt_WEB.conf &amp;lt;br /&amp;gt;sip_WEB.conf &amp;lt;br /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Servicios networking ===&lt;br /&gt;
Son muy importantes las configuraciones adecuadas de los servicios de:&lt;br /&gt;
&lt;br /&gt;
* '''NTP''': El sistema en global ha de estar sincronizado; todos los servidores y puestos de trabajo (en el caso de ''VIVA''it Suite) han de estar perfectamente sincronizados; los servidores de la plataforma se sincronizarán con el NTP del cliente; si el cliente no tiene NTP será necesario que un servidor de la plataforma se sincronice con un NTP externo y este sea el servidor para el resto de la plataforma&lt;br /&gt;
&lt;br /&gt;
* '''DNS''': La configuración de DNS de la plataforma será coherente con el resto de la plataforma IT del cliente&lt;br /&gt;
&lt;br /&gt;
* '''DHCP''': Es necesario coordinar con el cliente la asignación de direcciones para los diferentes elementos de la plataforma '''''VIVA'''''it, fundamentalmente para terminales telefónicos; en este caso además será necesario activa la opción 66 que permitirá definir el servidor TFTP del que los terminales cogerán sus ficheros de aprovisionamiento&lt;br /&gt;
&lt;br /&gt;
=== Bases de datos (BBDD)===&lt;br /&gt;
&lt;br /&gt;
La base de datos del sistema se basa en el motor de base de datos MySQL, es un elemento crítico del sistema, en el que insertan y del que obtiene mucha información múltiples procesos.&lt;br /&gt;
Muchas comunicaciones entre procesos se realizan vía Base de Datos (tabla COM_COMUNICADOS). Pueden existir distintas instancias de base de datos que explicadas en las siguientes secciones, nuestra base de datos tiene la siguiente estructura: [[Base de datos|Información completa de la BD]]. Podéis ampliar más información en https://dev.mysql.com/doc/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== BBDD Tiempo Real ====&lt;br /&gt;
En la base de datos de tiempo real insertan información todos los procesos del sistema, y se realizan los cambios en configuración utilizando como herramienta el portal de administración y '''''VIVA'''''it Supervisor&lt;br /&gt;
&lt;br /&gt;
De la base de datos de tiempo real leen los procesos que requieren información, y las aplicaciones:&lt;br /&gt;
*'''''VIVA'''''it Supervisor (para reporting de tiempo real)&lt;br /&gt;
*PanelWeb&lt;br /&gt;
*Datos de sesión de '''''VIVA'''''it Desk&lt;br /&gt;
*Monitorización Zabbix&lt;br /&gt;
* Otros&lt;br /&gt;
&lt;br /&gt;
El portal de administración se encarga de escribir las configuraciones añadidas o modificadas en la base de datos&lt;br /&gt;
&lt;br /&gt;
Para cuando la BDTR contienen un número masivo de datos, existe un script que borra el contenido de ciertas tablas de la BD (tablas DAT_) dejando solamente datos de un cierto número de días configurable.&lt;br /&gt;
Este script se llama borraRegistrosNimitz.pl; para más información consultar el apartado de Howto's.&lt;br /&gt;
&lt;br /&gt;
==== BBDD Réplica ====&lt;br /&gt;
A efectos de asegurar las prestaciones del sistema, se establece una réplica de la base de datos, sincronizada con la de tiempo real; los procesos y aplicaciones pesados, que realicen consultas a las base de datos que puedan comprometer las prestaciones del sistema atacan a la réplica y nunca a la base de datos de tiempo real&lt;br /&gt;
&lt;br /&gt;
Es posible que en instalaciones pequeñas no exista réplica, en cuyo caso se establece una base de datos unificada sobre la de tiempo real, en la que se añaden índices y procedimientos almacenados que típicamente residen en la de réplica.&lt;br /&gt;
&lt;br /&gt;
Es posible establecer tantas réplicas como sean necesarias si diferentes procesos pesados se penalizan en exceso, si bien una implantación tipo contemplará una sola&lt;br /&gt;
&lt;br /&gt;
Algunos procesos que utilizan la base de datos de réplica son:&lt;br /&gt;
*'''''VIVA'''''it Reporting&lt;br /&gt;
*'''''VIVA'''''it Tracker&lt;br /&gt;
*Histórico en tiempo real de '''''VIVA'''''it Supervisor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANTE: Ningún proceso, programa, aplicación, etc. escribe en la base de datos de réplica; tan solo se extrae información'''&lt;br /&gt;
&lt;br /&gt;
==== BBDD de copia ====&lt;br /&gt;
A efectos de asegurar el funcionamiento y como medida de contingencia ante un problema puntual de comunicación con la BD de tiempo real, en cada nodo disponemos de una BD de copia local. Posiblemente de un tamaño menor que la BD de tiempo real, dependiendo de cuanto tiempo pase hasta la próxima sincronización con la base de tiempo real.Esta base de datos llamada '''nimitzCopia'''.&lt;br /&gt;
  &lt;br /&gt;
Solo entrara en funcionamiento,cuando se produzca el problema mencionado, dejando acceder a los datos y poder dar servicio a la empresa mientras se soluciona el problema.&lt;br /&gt;
&lt;br /&gt;
===== Backup y restore =====&lt;br /&gt;
&lt;br /&gt;
Se utilizan dos script, para realizar la copia de seguridad y restaurar en la base de datos de copia local que son:&lt;br /&gt;
&lt;br /&gt;
* El proceso '''bdCentral.sh''' que es el encargado de realizar la copia de seguridad. Tiene un archivo de configuración bdCentral.conf. En este archivo hay un parámetro (IGNORE_TABLAS) que indica las tablas de las que NO se realizará copia de seguridad. Toda tabla que no se indique formará parte de la copia de seguridad. Vuelca los resultados en /var/log/bdCentral.log&lt;br /&gt;
* El proceso '''bdNodo.sh''' que es el encargado de descargar la copia de seguridad y restaurarla en local. Tiene un archivo de configuración bdNodo.conf. Vuelca los resultados en /var/log/bdNodo.log. El fichero de backup se copia mediante el usuario sincroniza, que deberá poder acceder sin contraseña al servidor donde reside la copia.&lt;br /&gt;
&lt;br /&gt;
En caso de producirse algún error en alguno de los procesos, marcarán dicho error en el log con una línea que comienza con la cadena &amp;quot;*ERROR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Diagnósticos y operaciones sobre bases de datos ====&lt;br /&gt;
&lt;br /&gt;
=====Comprobación que una base de datos está arrancada=====&lt;br /&gt;
Para comprobar si la base de datos está arrancada debemos poner en el terminal : '''ps aux | grep mysql'''&lt;br /&gt;
&lt;br /&gt;
Si la base de datos está arrancada y funcionando correctamente se nos mostrará en el terminal:&lt;br /&gt;
[[Archivo:Base_Datos_bien.png‎ |500px|center]]&lt;br /&gt;
&lt;br /&gt;
Por el contrario, si la base de datos presenta algun problema el mensaje mostrado será:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Base_datos_mal.png |center]]&lt;br /&gt;
&lt;br /&gt;
=====Comprobación que la base de datos de réplica está sincronizada con la base de datos de tiempo real.=====&lt;br /&gt;
&lt;br /&gt;
Si se necesita verificar que la base de réplica está sincronizada con la base de datos en tiempo real basta con acudir al comando : '''show slave status\G'''.&lt;br /&gt;
&lt;br /&gt;
Una vez introducido veremos:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Replica.png |980px|center]]&lt;br /&gt;
&lt;br /&gt;
Comandos importantes, desde dentro consola de Mysql:&lt;br /&gt;
&lt;br /&gt;
 '''show master status''': Realizado desde el master&lt;br /&gt;
 '''show slave status''': Realizado desde el esclavo; el valor &amp;quot;seconds behind master&amp;quot; nos indica&lt;br /&gt;
 cuanto está retrasada la réplica con respecto a la base de datos de tiempo real. Si el valor de este campo es elevado nos indicará &lt;br /&gt;
 que la base de datos real con la réplica no estará sincronizada, por tanto, nos interesa que este valor sea lo más pequeño posible.&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Procesos propios ===&lt;br /&gt;
&lt;br /&gt;
==== bdCentral ====&lt;br /&gt;
&lt;br /&gt;
El proceso ''bdCentral.sh'' es el encargado de realizar la copia de seguridad. Tiene un archivo de configuración ''bdCentral.conf'' el cual puede encontrarse en la ruta '''/etc/MDtel/bdCentral.conf'''. En este archivo hay un parámetro (IGNORE_TABLAS) que indica las tablas de las que NO se realizará copia de seguridad. Toda tabla que no se indique formará parte de la copia de seguridad. Vuelca los resultados en /var/log/bdCentral.log&lt;br /&gt;
&lt;br /&gt;
En caso de producirse algún error, se marcará dicho error en el log con una línea que comienza con la cadena &amp;quot;*ERROR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Para ejecutar bdCentral:&lt;br /&gt;
 bdCentral.sh /etc/MDtel/bdCentral.conf&lt;br /&gt;
&lt;br /&gt;
Estos procesos se ejecutan automáticamente. Para ello está copiado el fichero bdCentral a /etc/cron.d.&lt;br /&gt;
&lt;br /&gt;
Por defecto la programación vienen comentada por lo que será necesario activarlo.&lt;br /&gt;
&lt;br /&gt;
Para que se roten los logs hay que copiar el fichero bdCentral.logrotate a /etc/logrotate.d (como bdCentral)&lt;br /&gt;
La ruta donde se encuentran los logs es la siguiente: '''/var/log/myAcdSuperv.log'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
*A continuación se explica la utilidad de los campos mas relevantes del fichero de configuración bdCentral.conf. &lt;br /&gt;
ARCH_LOG : &lt;br /&gt;
BDHOST: Localización de la base de datos&lt;br /&gt;
BDUSU: Usuario para la base de datos&lt;br /&gt;
BDRUTA: Ruta donde se encuentra la base de datos&lt;br /&gt;
IGNORE_TABLAS:&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== bdNodo ====&lt;br /&gt;
El proceso bdNodo.sh es el encargado de descargar la copia de seguridad y restaurarla en local. Tiene un archivo de configuración bdNodo.conf, este archivo puede encontrarse en la ruta '''/etc/MDtel/bdNodo.conf.''' Vuelca los resultados en /var/log/bdNodo.log. El fichero de backup se copia mediante el usuario sincroniza, que deberá poder acceder sin contraseña al servidor donde reside la copia.&lt;br /&gt;
&lt;br /&gt;
En caso de producirse algún error, se marcará dicho error en el log con una línea que comienza con la cadena &amp;quot;*ERROR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Para ejecutar bdNodo:&lt;br /&gt;
&lt;br /&gt;
 bdNodo.sh /etc/MDtel/bdNodo.conf&lt;br /&gt;
&lt;br /&gt;
Estos procesos se ejecutan automáticamente. Para ello está copiado el fichero bdNodo a /etc/cron.d.&lt;br /&gt;
&lt;br /&gt;
Por defecto la programación vienen comentada por lo que será necesario activarlo.&lt;br /&gt;
&lt;br /&gt;
Para que se roten los logs hay que copiar el fichero bdNodo.logrotate a /etc/logrotate.d (como bdNodo)&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Intz-Nimitz ====&lt;br /&gt;
&lt;br /&gt;
Permite integrar procesos de asterisk (del dialplan) con la base de datos; por ejemplo es el que graba segmentos, inspecciona donde esta registrado un agente…etc. La estabilidad de este proceso es importante para el funcionamiento del sistema, si bien las llamadas entran en caso de no estar disponible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para mas información consultar la página de [[intz-nimitz|intz-nimitz]].&lt;br /&gt;
&lt;br /&gt;
Desde un SSH ejecuta el comando “nc ip_maquina 1115”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1115'''&lt;br /&gt;
 intz-nimitz sis ver='V02.6' inic='20140401 110116' alarmas=21 ultAlar='20140414 171244'&lt;br /&gt;
 intz-nimitz gmp msj=942/1024 buf=1024/1024 tarea=16/102&lt;br /&gt;
 intz-nimitz tmp uptime=1816550 (21d 0h 35m 50s)&lt;br /&gt;
 intz-nimitz vic identif='cms1' entorno='nimitz' conx=0/128 numConx=1018(0)&lt;br /&gt;
 intz-nimitz mys curro=80/0/0/0 soli=1012(0) soliErr=6(0) soliEncol=0(0/0)&lt;br /&gt;
 intz-nimitz cache colas=128/10/0/0 vdn=128/8/0/0 usuExten=10/0/0/0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parámetro!!Descripción&lt;br /&gt;
|-&lt;br /&gt;
|sis/ver||Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|sis/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|Sis/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|Sis/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/msj||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/buf||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/tarea||&lt;br /&gt;
|-&lt;br /&gt;
|Tmp/uptime||Tiempo que lleva el servicio activo&lt;br /&gt;
|-&lt;br /&gt;
|Vic/identif||Etiqueta de identificación del servicio&lt;br /&gt;
|-&lt;br /&gt;
|Vic/entorno||Entorno de base de datos&lt;br /&gt;
|-&lt;br /&gt;
|Vic/conx||Conexiones activas/conexiones máximas&lt;br /&gt;
|-&lt;br /&gt;
|Vic/numConx||Conexiones totales (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|Mys/curro||Número de hilos contra la base de datos&lt;br /&gt;
|-&lt;br /&gt;
|Mys/soli||Conexiones solicitadas (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|Mys/soliErr||Conexiones solicitadas con error (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|Mys/soliEncol||Conexiones encoladas&lt;br /&gt;
|-&lt;br /&gt;
|Cache/cola|| Colas monitorizadas/&lt;br /&gt;
|-&lt;br /&gt;
|Cache/vdn||VDN’s monitorizados&lt;br /&gt;
|-&lt;br /&gt;
|Cache/usuExten||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en  '''/etc/MDtel/intz-nimitz.conf'''&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/intz-nimitz.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
A continuación se muestran los campos mas importantes del fichero de configuración intz-nimitz.conf:&lt;br /&gt;
&lt;br /&gt;
enrutamiento &lt;br /&gt;
{ &lt;br /&gt;
        hay_enrutamiento = 1 &lt;br /&gt;
        max_pre_ruta_regs = 4 &lt;br /&gt;
        max_ruta = 4 &lt;br /&gt;
        max_ruta_desvios = 2 &lt;br /&gt;
# Filtro de informacion de ancho de banda &lt;br /&gt;
# MYSDanchoBandaPasoNinguno      0 &lt;br /&gt;
# MYSDanchoBandaPasoSoloDirectos 1 &lt;br /&gt;
# MYSDanchoBandaPasoSoloEnPaso   2 &lt;br /&gt;
# MYSDanchoBandaPasoTodos        3 &lt;br /&gt;
        filtro_ancho_banda = 1 &lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
mysql &lt;br /&gt;
{ &lt;br /&gt;
        hay_mysql = 1   Indica si hay base de datos mysql&lt;br /&gt;
        host = BDTR &lt;br /&gt;
        usuario = nimitz   Usuario base de datos&lt;br /&gt;
        clave = phikau3iwCe4O0PP5b09ng==   clave base de datos&lt;br /&gt;
        base_datos = nimitz &lt;br /&gt;
        bd_supervivencia = 0 &lt;br /&gt;
        num_curro = 10 &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== motorSal ====&lt;br /&gt;
Parte fundamental del proceso de marcación saliente, gestiona como hay que llamar a los diferentes contactos asignados a las campañas. Transforma los contactos en intentos de marcación.&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH ejecuta el comando “nc ip_maquina 1120”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1120'''&lt;br /&gt;
 motorSal sis ver='V01.4' inic='20140725 140832' alarmas=1 ultAlar='20140725 140832'&lt;br /&gt;
 motorSal gmp msj=253/256 buf=256/256 tarea=99/102&lt;br /&gt;
 motorSal tmp uptime=600165 (6d 22h 42m 45s)&lt;br /&gt;
 motorSal mtr mys=1 ocup=0% planif=28(0) intento=26(0)&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parámetro!!Descripción&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ver||Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/msj||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/buf||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/tarea||&lt;br /&gt;
|-&lt;br /&gt;
|Tmp/uptime||Tiempo que lleva corriendo&lt;br /&gt;
|-&lt;br /&gt;
|mtr/mys||Si está conectado al MySQL&lt;br /&gt;
|-&lt;br /&gt;
|mtr/ocup||Porcentaje de ocupación&lt;br /&gt;
|-&lt;br /&gt;
|mtr/planif||Contactos planificados Totales (Último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|mtr/intento||Intentos totales (Ültimo minuto)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Posee un fichero de configuración llamado ''motorSal.conf'' en la ruta '''/etc/MDtel/motorSal.conf'''.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:Las variables que normalmente son modificadas son las siguientes:&lt;br /&gt;
&lt;br /&gt;
mysql&lt;br /&gt;
{&lt;br /&gt;
hay_mysql = 1&lt;br /&gt;
Indica si hay base de datos mysql&lt;br /&gt;
host = localhost&lt;br /&gt;
usuario = nimitz&lt;br /&gt;
Usuario base de datos&lt;br /&gt;
Clave base de datos&lt;br /&gt;
base_datos = nimitz&lt;br /&gt;
}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Respecto a los logs del motorSal consultar el siguiente apartado: [[Trazas motorSal]]. Los logs pueden verse en la ruta '''/var/log/intz-nimitz.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== MyACDSuperv ====&lt;br /&gt;
Refleja el estado de las colas de asterisk en la base de datos; tiene sentido a efectos de estadísticas e informes, pero no a efectos de funcionamiento de la conmutación de voz&lt;br /&gt;
&lt;br /&gt;
Es también el proceso que genera las llamadas en el marcador automático de '''''VIVA'''''it Suite&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando “nc ip_maquina 1112”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1112'''&lt;br /&gt;
 myAcdSuperv SIS ver='04.6' inic='20140416 081613' alarmas=6 ultAlar='20140416 121652'&lt;br /&gt;
 myAcdSuperv AMI cnx=1 ocup=28% exten=2/2/511 asig=0/11/4095&lt;br /&gt;
 myAcdSuperv MYSQL cnx=1 ms=316&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parámetro!!Descripción&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ver||Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|AMI/cnx||Conectado (1) a asterisk&lt;br /&gt;
|-&lt;br /&gt;
|AMI/ocup||Porcentaje de ocupación de MyACDSuperv&lt;br /&gt;
|-&lt;br /&gt;
|AMI/exten||Extensiones/Extensiones/Extensiones monitorizadas|-&lt;br /&gt;
|-&lt;br /&gt;
|AMI/asig||&lt;br /&gt;
|-&lt;br /&gt;
|MYSQL/cnx||Conectado (1) a MySQL&lt;br /&gt;
|-&lt;br /&gt;
|MYSQL/ms||Tiempo de última operación en ejecutarse&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/myAcdSuperv.cnf'''&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/myAcdSuperv.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Proceso escoba ====&lt;br /&gt;
El proceso escoba se encarga de resolver y consolidar todos aquellos segmentos de grabación que han quedado almacenados en los gateways por falta de información o incoherencias. Existen dos tipos de procesos escobas:&lt;br /&gt;
# Proceso escoba perteneciente a nodo con agente de grabación (recordNodo) llamado '''''escobaGW.pl'''''.&lt;br /&gt;
# Proceso escoba perteneciente o no a un servidor de grabación (recordCentral) llamado '''''escobaGrabsBd.pl'''''.&lt;br /&gt;
&lt;br /&gt;
===== escobaGW.pl =====&lt;br /&gt;
Proceso que se ejecuta en los nodos busca en el disco RAM , las grabaciones de segmentos cuya antigüedad sea superior a mas de un día, es decir, si el proceso por ejemplo se ejecuta a la 01:00 a.m. del día 24/03/2016 buscara todas aquellas grabacionesn de segmentos realizadas antes de la 01:00 a.m del día 22/03/2016.&lt;br /&gt;
Una vez realizada la busqueda, obtendra el UCID a traves del nombre del fichero, y comprobara su correspondencia con la tabla DAT_LLAMADAS. Si existe una llamada con ese UCID, cambiara el estado de la llamada para que sea procesada correctamente. En caso contrario, es movida a la carpeta ''/var/lib/recordNodo/grabError''.&lt;br /&gt;
&lt;br /&gt;
===== escobaGrabsBd.pl =====&lt;br /&gt;
Se ejecuta sobre la base de datos de histórico, normalmente se ejecuta en un servidor de grabación (recordCentral). El proceso hace una búsqueda en dos tablas:&lt;br /&gt;
* En DAT_SEGMENTOS obtiene todos aquellos segmentos con grabaciones que dieron error, su estado tendrá valor 120.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
* En DAT_LLAMADAS obtendremos todos los registros correspondiente al segmentos anteriores.&lt;br /&gt;
Después hace una búsqueda en el sistema, usando como ruta el campo D_HORA_INICIO de cada llamada, que indica la ruta entera donde se encuentra el archivo. Una vez encontrado el archivo cambia el estado del segmento que tenia un error a estado de grabación disponible , que tendrá valor 100. Si no encontramos el segmento, no realizara nada.&lt;br /&gt;
&lt;br /&gt;
==== recordCentral ====&lt;br /&gt;
Se considera como un servidor de grabaciones. Todas las grabaciones de llamadas son un activo importante y una empresa con Contact Center pueda recibir millones de llamadas que necesitan estar registradas y almacenadas en discos duros con gran capacidad, dichas maquinas donde suelen alojarse estos servidores poseen discos duros limitados, lo que hace necesario en algunos casos incorporar ''dispositivos NAS''.&lt;br /&gt;
&lt;br /&gt;
Los ''dispositivos NAS'' son dispositivos de almacenamiento conectados a una red que permite el almacenamiento y la recuperación de datos desde una ubicación centralizada, flexibles y escalables, lo que significa que a medida que necesite almacenamiento adicional, puede añadirlo al que tiene. Esto no indica que sea necesario poseer de ''dispositivos NAS'' para funcionar, sino que puede tomar datos de diferentes sitios.&lt;br /&gt;
&lt;br /&gt;
En '''recordCentral''' pueden existir tres tipos de dispositivos NAS:&lt;br /&gt;
* Uno dedicado para las llamadas &lt;br /&gt;
* Uno dedicado para los segmentos &lt;br /&gt;
* Uno mixto para todas las llamadas y segmentos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El '''recordCentral''' se encarga de recoger todas las grabaciones de segmentos que tienen de estado proceso(3) en cada nodo gestionado, es decir, coger aquellos segmentos de llamadas marcados como llamadas disponibles, intenta descargar los segmentos de las llamadas y convertirlas al formato adecuado (MP3).&lt;br /&gt;
Como una característica particular cada diez minutos, siempre que no tenga ninguna otra tarea, intenta ver si puede establecer conexión con un nodo en cuarentena, para sacarlos de cuarentena y recoger todas las grabaciones de segmentos disponibles, para intentar convertir y descargar todas las grabaciones.  &lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando '''''nc ip_maquina 1114''''' en la maquina donde creamos que debe estar ejecutando el proceso recordCentral. Ejemplo:&lt;br /&gt;
 '''root@smadavacdrecord1:~# nc localhost 1114'''&lt;br /&gt;
 recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423 160112'&lt;br /&gt;
 recordCentral MYSQL cnx=1&lt;br /&gt;
 recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
 recordCentral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
 recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10'&lt;br /&gt;
La explicación de los campos se muestra en la tabla siguiente:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parámetro !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ver || Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/inic || Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/alarmas || Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ultAlar || Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
| MYSQL/cnx || Conectado (1) a MySQL&lt;br /&gt;
|-&lt;br /&gt;
| NAS/llamadas || Alojamiento en NAS de llamadas activo (grabación de llamada completa en un único archivo)&lt;br /&gt;
|-&lt;br /&gt;
| NAS/segmentos || Alojamiento en NAS de segmentos activo&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamNum || Llamadas procesadas&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamErr || Llamadas con error&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmNum || Segmentos procesados&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmErr || Segmentos con error&lt;br /&gt;
|-&lt;br /&gt;
| NODO/fase  || Número de proceso de recordCentral&lt;br /&gt;
|-&lt;br /&gt;
| NODO/cuarentena  || Lista de nodos en cuarentena, separada por comas&lt;br /&gt;
|-&lt;br /&gt;
| NODO/descarga || Lista de nodos en descarga, separada por comas&lt;br /&gt;
|-&lt;br /&gt;
| NODO/gestion || Lista de nodos gestionados, separada por comas (cuarentena + descarga = gestión)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/recordCentral.pconf'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:Se explican a continuación las variables más importantes del proceso RecordCentral:&lt;br /&gt;
&lt;br /&gt;
# Conexion de base de datos&lt;br /&gt;
$db='nimitz';&lt;br /&gt;
$dbHost = 'BDTR';&lt;br /&gt;
$dbPort = '3306';&lt;br /&gt;
$dbUsuario = 'nimitz';&lt;br /&gt;
$dbClave = 'ivivanimitz';&lt;br /&gt;
&lt;br /&gt;
# Configuracion de archivos con grabaciones (Orig en nodo)&lt;br /&gt;
$grabHay = 0;&lt;br /&gt;
$grabAudioCalidad = 32;&lt;br /&gt;
$grabAudioFormato = 'ogg';&lt;br /&gt;
$grabAudioExten = 'ogg';&lt;br /&gt;
$grabAudioCifrado = 0;&lt;br /&gt;
$grabRutaUsaTimestamp = 1;&lt;br /&gt;
$grabRutaOrig = '/var/lib/recordNodo/grabaciones';&lt;br /&gt;
$grabRutaTmp = '/var/lib/recordProcesad/grabTmp';&lt;br /&gt;
$grabRutaDest = '/var/lib/recordProcesad/grabRecord';&lt;br /&gt;
$grabRutaError = '/var/lib/recordProcesad/grabError';&lt;br /&gt;
$segmHay = 1;&lt;br /&gt;
$segmUmbralTiempo = 10;&lt;br /&gt;
$segmMargenTiempo = 5;&lt;br /&gt;
$segmAudioCalidad = 32;&lt;br /&gt;
$segmAudioFormato = 'ogg';&lt;br /&gt;
$segmAudioExten = 'ogg';&lt;br /&gt;
$segmAudioCifrado = 0;&lt;br /&gt;
$segmRutaUsaTimestamp = 1;&lt;br /&gt;
$segmRutaTmp = '/var/lib/recordProcesad/segmTmp';&lt;br /&gt;
$segmRutaDest = '/var/lib/recordProcesad/segmRecord';&lt;br /&gt;
$segmRutaError = '/var/lib/recordProcesad/segmError';&lt;br /&gt;
&lt;br /&gt;
# Seleccion de tipos de segmento a grabar separados por comas ('' = todos)&lt;br /&gt;
$tiposSegmentoGrabar = '';&lt;br /&gt;
&lt;br /&gt;
# Indica si se graba ring&lt;br /&gt;
$grabarRing = 0;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/recordCentral.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== recordNodo ====&lt;br /&gt;
Se considera como proceso con función de agente de grabación para un nodo. Solo debe existir uno por maquina o por nodo (configurado como grabador) en el '''portal de administración de ''VIVA''it'''.&lt;br /&gt;
&lt;br /&gt;
Para su funcionamiento utiliza un ''disco RAM''  por que su tiempo de acceso mejora drásticamente, debido a que la memoria RAM es varios órdenes de magnitud más rápida que las unidades de disco reales, haciendo que la velocidad de procesamiento de las grabaciones sea mucho mas rápida.&lt;br /&gt;
&lt;br /&gt;
Este ''disco RAM'' normalmente ocupa la mitad de la memoria RAM de una maquina pero no es obligatorio pues dependerá de la memoria disponible en cada maquina, y además, se configura con un tamaño no superior a 2GB de memoria RAM. Hay que tener especial cuidado en que no se llene en espacio  ni tampoco los i-nodos. Se puede  monitorizar a través de la aplicación '''zabbix'''.&lt;br /&gt;
&lt;br /&gt;
El '''''recordNodo''''' se encarga de recoger todas las grabaciones de segmentos que tienen de estado  ''proceso(2)'', es decir, aquellos segmentos de llamadas que han sido grabadas pero no están siendo procesadas, moviéndolas del ''disco RAM'' a su carpeta correspondiente.&lt;br /&gt;
&lt;br /&gt;
La forma de obtener la carpeta correspondiente es obteniendo el dato del campo D_HORA_INICIO en la tabla DAT_LLAMADAS para cada segmento,tras un tratamiento del campo creara la subruta correspondientes: /año/mes/dia/hora/min. Entonces, la ruta correcta seria /var/lib/recordNodo/grabaciones/año/mes/dia/hora/min, donde año, mes, dia , hora y min son los valores numéricos obtenidos del campo D_HORA_INICIO.&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando '''''nc ip_maquina 1113''''' en la maquina donde creamos que debe estar ejecutando el proceso recordNodo:&lt;br /&gt;
&lt;br /&gt;
 root@smadavgw5:~#nc localhost 1113&lt;br /&gt;
 recordNodo SIS ver='04.00.00' inic='20160326 105137' alarmas=2 ultAlar='20160326 105542'&lt;br /&gt;
 recordNodo MYSQL cnx=1&lt;br /&gt;
 recordNodo REC grabNum=0 grabErr=0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La explicación de los campos se muestra en la tabla siguiente:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parámetro  !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ver || Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/inic  || Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/amarmas || Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ultAlar || Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
| MYSQL/cnx || Conectado (1) a MySQL&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamNum || Llamadas procesadas&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamErr || Llamadas con error&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmNum || Segmentos procesados&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmErr || Segmentos con error&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/recordNodo.pconf'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:Se muestran a continuación las variables que son modificadas con mayor frecuencia:&lt;br /&gt;
# Conexion de base de datos&lt;br /&gt;
$db='nimitz';&lt;br /&gt;
$dbHost = 'BDTR';&lt;br /&gt;
$dbPort = '3306';&lt;br /&gt;
$dbUsuario = 'nimitz';&lt;br /&gt;
$dbClave = 'ivivanimitz';&lt;br /&gt;
&lt;br /&gt;
# Quien es mi nodo para filtrar grabaciones&lt;br /&gt;
$miNodo = 1;&lt;br /&gt;
&lt;br /&gt;
# Indica si se procesan segmentos de tipo tipoSegmEliminarGrabacion y patron eliminación&lt;br /&gt;
$segmEliminarGrabacionTrato = 1;&lt;br /&gt;
$patronEliminarGrabacion = '/etc/MDtel/null.bin';&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/recordNodo.log'''&lt;br /&gt;
&lt;br /&gt;
==== Vivait-CTI ====&lt;br /&gt;
Permite la comunicación entre la aplicación '''''VIVA'''''it Desk de agente y el asterisk, sincronizando; convierte el protocolo “asterisk manager” a CSTA ('''''VIVA'''''it Desk “habla” CSTA).&lt;br /&gt;
&lt;br /&gt;
Es un proceso importante para que el uso de '''''VIVA'''''it Desk, y que los agentes puedan realizar su operativa normal con la entrada y salida de llamadas… si bien el cursado telefónico de llamadas es factible, no disponer de las facilidades de '''''VIVA'''''it Desk y formularios hace el sistema difícilmente manejable&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando “nc ip_maquina 1111”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1111'''&lt;br /&gt;
 vivait-cti sis ver='V01.5' inic='20140414 104312' alarmas=13 ultAlar='20140415 173152'&lt;br /&gt;
 vivait-cti gmp msj=1018/1024 buf=1023/1024 tarea=97/102&lt;br /&gt;
 vivait-cti tmp uptime=694748 (8d 0h 59m 8s)&lt;br /&gt;
 vivait-cti cti numConx=(0/511) numPend=(0/127) numMakeCallPend=0 numCall=(0/2047)&lt;br /&gt;
 numChan=(0/4095) numAuxStr=(0/511) numMoniColas=(0/511) numMoniDevice=0&lt;br /&gt;
 numMoniCall=0 numMoniCallAuto=0 numMoniCallByDevice=0 numMoni=(0/511)&lt;br /&gt;
 auditCallErr=0 auditAuxStrErr=0 auditMsjReqErr=0 araChanID=0 araUniqueID=0 araMoni=0&lt;br /&gt;
 vivait-cti ami esta=conx resp=652(0) evs=1397(0) descar=556(0) err=16 errConx=16&lt;br /&gt;
 numAct(0/0/127) auditErrAct=0&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!ver!!Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|sis/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|Sis/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|Sis/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/msj||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/buf||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/tarea||&lt;br /&gt;
|-&lt;br /&gt;
|Tmp/uptime||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numConx||Número de conexiones actuales / Número de conexiones máximo&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numPend||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMakeCallPend||Llamadas pendientes de realizar&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numcall||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numChan||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numAuxStr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniColas||Número de colas monitorizadas&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniDevice||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniCall||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniCallAuto||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniCallByDevice||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoni||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/auditCallErr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/auditAuxStrErr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ auditMsjReqErr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ araChanID||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ araUniqueID||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ araMoni||&lt;br /&gt;
|-&lt;br /&gt;
|Ami/esta||Estado de conexión contra manarger de asterisk&lt;br /&gt;
|-&lt;br /&gt;
|Ami/resp||&lt;br /&gt;
|-&lt;br /&gt;
|Ami/evs||Número de eventos (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
||Ami/descar&lt;br /&gt;
|-&lt;br /&gt;
|Ami/err||Errores&lt;br /&gt;
|-&lt;br /&gt;
|Ami/errConx||Errores de conexión&lt;br /&gt;
|-&lt;br /&gt;
|Ami/numAct||&lt;br /&gt;
|-&lt;br /&gt;
|Ami/auditErrAct||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/vivait-cti.conf'''&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/vivait-cti.conf'''&lt;br /&gt;
&lt;br /&gt;
==== Phoneprov-TFTP ====&lt;br /&gt;
&lt;br /&gt;
==== Introducción al aprovisionamiento ====&lt;br /&gt;
&lt;br /&gt;
En cada Centralita Telefónica existente, se puede configurar sus teléfonos IP y asignarles extensiones a cada teléfono. Para hacer un ''aprovisionamiento'' de los teléfonos es necesario que el técnico configure uno a uno manualmente utilizando su interfaz web, esto no es práctico, ya que genera muchos errores y el tiempo de implementación se incrementa drásticamente. Además, es casi imposible la administración cotidiana de los teléfonos IP. Desde '''MD'''tel se utiliza una herramienta que permite que los teléfonos IP soportados y homologados por '''MD'''tel ([[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_3.0#Terminales_telef.C3.B3nicos ver Terminales telefónicos]]) se puedan aprovisionar automáticamente, brindando una fácil implementación y administración cotidiana. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== ¿Qué es aprovisionar? =====&lt;br /&gt;
&lt;br /&gt;
Aprovisionar un teléfono es el proceso de configuración automático de teléfonos IP para su uso con una Centralita Telefónica de forma remota. Una vez que aprovisione un teléfono, el teléfono automáticamente se configurará correctamente y podrá administrar los teléfonos de forma centralizada y remota,  sin tener que iniciar sesión en la interfaz web de cada uno de los teléfonos. &lt;br /&gt;
&lt;br /&gt;
El aprovisionamiento de teléfono facilita enormemente la administración cotidiana de los teléfonos IP. Esto hace que sea fácil de cambiar las contraseñas de extensión,realizar desvíos de llamadas, nombre a mostrar, mensajería y demás configuraciones, ya que puede hacerlo de forma centralizada para todos los teléfonos desde el portal de administración y luego transferir los cambios al teléfono. &lt;br /&gt;
&lt;br /&gt;
===== TFTP =====&lt;br /&gt;
&lt;br /&gt;
'''TFTP''' son las siglas de '''T'''rivial '''F'''ile '''T'''ransfer '''P'''rotocol ''(Protocolo de transferencia de archivos trivial)''. &lt;br /&gt;
&lt;br /&gt;
Es un protocolo de transferencia muy simple semejante a una versión básica de FTP. TFTP a menudo se utiliza para transferir pequeños archivos entre terminales en una red. &lt;br /&gt;
&lt;br /&gt;
Algunos detalles del TFTP: &lt;br /&gt;
&lt;br /&gt;
* Utiliza UDP (puerto 69) como protocolo de transporte (a diferencia de FTP que utiliza los &lt;br /&gt;
puertos 20 y 21 TCP). &lt;br /&gt;
* No puede listar el contenido de los directorios. &lt;br /&gt;
* No existen mecanismos de autenticación o cifrado. &lt;br /&gt;
* Se utiliza para leer o escribir archivos de un servidor remoto. &lt;br /&gt;
* Soporta tres modos diferentes de transferencia, &amp;quot;netascii&amp;quot;, &amp;quot;octet&amp;quot; y &amp;quot;mail”.&lt;br /&gt;
&lt;br /&gt;
===== Funcionamiento del servidor phoneprove-TFTP =====&lt;br /&gt;
&lt;br /&gt;
A continuación se muestra un esquema que facilita el entendimiento del funcionamiento del servidor phoneprove-TFTP:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Funcionamiento_Servidor.png‎ |center]]&lt;br /&gt;
&lt;br /&gt;
El servidor Phoneprove-TFTP se ''encarga del aprovisionamiento masivo de terminales'', es de gran utilidad porque cualquier cambio en los teléfonos pueden ser realizados a nivel DHCP y todos los teléfonos tomarán la nueva configuración luego de reiniciarlos. &lt;br /&gt;
&lt;br /&gt;
Desde phoneprove-TFTP se generara los archivos necesarios para cada teléfono y que sirven para ser aprovisionados automáticamente. &lt;br /&gt;
El servidor phoneprove-TFTP  tiene alojados los ficheros de configuración están ordenados según las direcciones MAC de los teléfonos. El teléfono “preguntará” al servidor cual es su fichero de configuración utilizando su dirección MAC. Este a través de su MAC , consulta en la base de datos para ofrecer al terminal los datos de configuración según su plantilla, cual sera su extensión , cual sera el usuario propietario, entre otras cosas.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
  '''Nota:''' En instalaciones grandes habrá más de uno, quizás uno por sede grande; depende de la infraestructura de DHCP.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Parámetros necesarios de Aprovisionamiento de Teléfonos =====&lt;br /&gt;
&lt;br /&gt;
 '''Notas:''' el aprovisionamiento desarrollador por '''MD'''tel, no emplea un fichero por cada &lt;br /&gt;
 teléfono, sino que emplea una plantilla por cada modelo de teléfono.&lt;br /&gt;
 Debe haber una '''configuración previa del servidor DHCP''' es necesario coordinar con el cliente la asignación de direcciones para &lt;br /&gt;
 los diferentes elementos de la plataforma '''''VIVA'''''it, fundamentalmente para terminales telefónicos; en este caso además será necesario &lt;br /&gt;
 activar la opción 66 que permitirá definir el servidor TFTP del que los terminales cogerán sus ficheros de aprovisionamiento.&lt;br /&gt;
 El aprovisionamiento desde el portal de administración solo es posible para aquellos teléfonos IP homologados y probados desde '''MD'''tel   &lt;br /&gt;
 [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_3.0#Terminales_telef.C3.B3nicos ver Terminales  telefónicos]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como existen parámetros comunes de todos los teléfonos de la misma marca de fabricante, muchos de los parámetros necesarios para el aprovisionamiento  como comentamos se han generado desde MDtel en forma de plantillas, que estarán disponibles en el portal de administración VIVAit [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Plantillas | ver plantilla del portal de administración VIVAit]]. &lt;br /&gt;
&lt;br /&gt;
La configuración de un teléfono SIP es muy sencilla y en no es necesario tener conocimientos avanzados de informática o de telefonía. Cada una de estas plantillas que sirven para aprovisionar un teléfono IP homologado, algunos de los parámetros predeterminados se explicarán a continuación .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== Parámetros de Aprovisionamiento globales ======&lt;br /&gt;
&lt;br /&gt;
* Configuración de la red y MAC. &lt;br /&gt;
* Zona horaria. &lt;br /&gt;
&lt;br /&gt;
====== Parámetros de Aprovisionamiento Personales ======&lt;br /&gt;
&lt;br /&gt;
Además de los parámetros de aprovisionamiento globales, el teléfono también obtendrá información de configuración individual, tales como: &lt;br /&gt;
&lt;br /&gt;
*Número de Extensión.&lt;br /&gt;
*Nombre y Contraseña de usuario SIP. &lt;br /&gt;
*Configuración de Teclas BLF.&lt;br /&gt;
*Contraseña de la Interfaz Web del Teléfono IP.&lt;br /&gt;
*Idioma de la Pantalla.&lt;br /&gt;
*Orden de Preferencia de los Codecs.&lt;br /&gt;
&lt;br /&gt;
===== Aprovisionamiento de teléfonos nivel usuario =====&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
  '''Notas:''' La dirección MAC debe estar especificada en letras mayúsculas.&lt;br /&gt;
  La dirección MAC del teléfono se puede encontrar en la etiqueta adhesiva en la parte inferior del teléfono, o de lo contrario se deberá acceder desde&lt;br /&gt;
  el menú del propio terminal.   &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Los pasos a seguir son los siguientes: &lt;br /&gt;
&lt;br /&gt;
'''1)''' Dar de alta el teléfono en el portal de administración, se debe seleccionar el modelo del teléfono, e indicar la dirección MAC del teléfono a aprovisionar, todo ello desde el portal de administración VIVAit. &lt;br /&gt;
Para mas información ver [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Aprovisionamiento del portal de administracion| aprovisionamiento del portal de administración VIVAit]]. &lt;br /&gt;
&lt;br /&gt;
'''2)''' En el mismo portal de administración se deberá crear una extensión , asignar a la extensión el teléfono que se quiera aprovisionar, elegir la plantilla adecuada del teléfono y el usuario propietario (solo si sera un puesto fijo) desde [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Extensiones | extensiones del portal de administración]]. &lt;br /&gt;
&lt;br /&gt;
'''3)''' Conectar el teléfono a la red LAN informática (conectarlo al router o switch) para que tenga acceso a Internet:&lt;br /&gt;
&lt;br /&gt;
:*El teléfono enviará un mensaje de multidifusión a través de la LAN. &lt;br /&gt;
:*Este será captado por la Central Telefónica siempre que esté en la misma LAN. &lt;br /&gt;
:*Al teléfono se le enviará una URL de aprovisionamiento. &lt;br /&gt;
&lt;br /&gt;
'''4)''' Como la mayoría de teléfonos IP del mercado al arrancar una vez sabiendo la URL de aprovisionamiento piden una serie de archivos de configuración para aprovisionarse vía TFTP. EL servidor phoneprove-TFTP, detectara la petición y a través de la MAC y datos del usuario, consultará en la base de datos los datos necesarios para aprovisionar al teléfono y si todo funciona correctamente mandara al teléfono IP los datos de configuración necesarios para funcionar. &lt;br /&gt;
&lt;br /&gt;
'''5)''' Asegúrese de que el teléfono encuentren el servidor TFTP, para ello esperar un tiempo adecuado para que termine el aprovisionamiento. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''6)''' Finalmente aparecerá  como registrado en la centralita, obtendrá una dirección IP y podra funcionar según la configuración establecida.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
  '''Nota''': Si no se reaprovisiona tras un periodo largo de tiempo, desenchufe el cable de alimentación eléctrica &amp;lt;br /&amp;gt; o el cable Ethernet (si se utiliza la alimentación en línea PoE) para reiniciar los teléfonos. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Aprovisionamiento de teléfonos nivel técnico =====&lt;br /&gt;
&lt;br /&gt;
====== Plantilla de configuración ======&lt;br /&gt;
&lt;br /&gt;
La plantilla de configuración empleadas en el apartado  [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Plantillas | plantilla del portal de administración VIVAit]] de cada modelo está formada por una serie de variables. &lt;br /&gt;
&lt;br /&gt;
Los valores se obtienen de la tabla de la base de datos CEN_TELEFONOS, CEN_USUARIOS, ACD_EXTENSIONES, ACD_NODOS, COM_NODOS... correspondientes a la extensión del teléfono, usuario, nodo, etc. &lt;br /&gt;
&lt;br /&gt;
 variable ${NODO1_C_NOMBRE}='corp-ast13'&lt;br /&gt;
 variable ${EXTEN_C_CLAVE_REGISTRO}='Tel21002'&lt;br /&gt;
 variable ${USU_C_CODIGO_POSTAL}=''28034'&lt;br /&gt;
 variable ${SEDE_C_CODIGO_POSTAL}='28034' &lt;br /&gt;
 variable ${USU_C_NOMBRE}='Juan Antonio'&lt;br /&gt;
 variable ${USU_C_APELLIDO2}='Ramirez'&lt;br /&gt;
 variable ${SEDE_C_NOMBRE}='RED_LAB'&lt;br /&gt;
 variable ${NODO2_C_NOMBRE}= NULL&lt;br /&gt;
 variable ${EXTEN_C_NOMBRE}='' 21002&lt;br /&gt;
 variable ${USU_C_LOCALIDAD}='' &lt;br /&gt;
 variable ${USU_C_NOMBRE_MOSTRAR}='Juan' &lt;br /&gt;
 variable ${NODO1_C_IP}='175.25.129.70' &lt;br /&gt;
 variable ${MODEL_C_PREFIJO_PLANTILLA_MAC}='T28P' &lt;br /&gt;
 variable ${SEDE_C_LOCALIDAD}='Madrid' &lt;br /&gt;
 variable ${USU_C_APELLIDO1}='Casas' &lt;br /&gt;
 variable ${NODO2_C_IP}= NULL&lt;br /&gt;
 variable ${TF_ID_EXTENSION}='5' &lt;br /&gt;
 cargando campos idExten=5&lt;br /&gt;
&lt;br /&gt;
====== Ficheros y paquetes necesarios ======&lt;br /&gt;
&lt;br /&gt;
'''Paquetes previos:''' libnet-tftpd-perl, tftp-hpa, libnet-address-ip-local-perl &lt;br /&gt;
'''Usuario de funcionamiento:''' root &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
   '''Nota:'''  los archivos y directorios que generemos podrian necesitar que se permitiera el acceso al archivo de lectura &amp;lt;br/&amp;gt; y escritura en el servidor TFTP.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Archivos necesarios:''' &lt;br /&gt;
&lt;br /&gt;
 /usr/local/sbin/phoneprov-tftp.pl &lt;br /&gt;
 /usr/local/sbin/phoneprov-tftp.pm&lt;br /&gt;
 /etc/MDtel/phoneprov-tftp.pconf &lt;br /&gt;
 /etc/init/phoneprov-tftp.conf &lt;br /&gt;
 /etc/logrotate.d/phoneprov-tftp &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Directorios a crear:''' &lt;br /&gt;
&lt;br /&gt;
 /var/lib/phoneprov-tftp/plt &lt;br /&gt;
 /var/lib/phoneprov-tftp/bin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Watchdog ====&lt;br /&gt;
&lt;br /&gt;
Se trata de una aplicación del astrisk que monitoriza el SIP y en caso de fallo, pasado un cierto tiempo, reinicia el asterisk y genera un core.&lt;br /&gt;
Si escribimos en CLI de asterisk perro tenemos los siguientes comandos:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Activar||Activar el Watchdog&lt;br /&gt;
|-&lt;br /&gt;
|Desactivar||Desactiva el Watchdog&lt;br /&gt;
|-&lt;br /&gt;
|Parada||Reinicia el asterisk y genera un core para pruebas&lt;br /&gt;
|-&lt;br /&gt;
|Reload||Realiza una recarga del Watchdog y aplica cambios en su configuración&lt;br /&gt;
|-&lt;br /&gt;
|Show||Ver el estado del Watchdog&lt;br /&gt;
&lt;br /&gt;
perro avisado=0 activo=1 segsDormir=1 segsInic=60 segsGuarda=30 maxErr=3&lt;br /&gt;
perro        nombre=sip_monitor_udp lwp=[15437] segsInic=60 segsGuarda=30 hace=11 err=0/5&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El dato &amp;quot;hace&amp;quot; informa de cuanto tiempo ha transcurrido desde el último tick. Facilita la calibración del parámetro de configuración &amp;quot;segs_guarda&amp;quot;, normalmente es 30&lt;br /&gt;
&lt;br /&gt;
Tiene un fichero de configuración ubicado en /etc/asterisk/MDcrash.conf&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Sección [perro]&lt;br /&gt;
||activo=yes (Si esta o no activo)&lt;br /&gt;
segs_dormir=1 (Un tick por segundo)&lt;br /&gt;
&lt;br /&gt;
segs_inic=60&lt;br /&gt;
&lt;br /&gt;
segs_guarda=30 &lt;br /&gt;
&lt;br /&gt;
max_errores=3  &lt;br /&gt;
|-&lt;br /&gt;
|Sección [sip_monitor_udp]&lt;br /&gt;
||segs_inic=60&lt;br /&gt;
&lt;br /&gt;
segs_guarda=30 (Cada 30 segundos si no reciba trafico SIP genera core)&lt;br /&gt;
&lt;br /&gt;
max_errores=5 (Número máximo de errores)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Proceso de Backup ====&lt;br /&gt;
Las plataformas '''''VIVA'''''it Call y '''''VIVA'''''it Suite incluyen un script para realizar un proceso de backup.&lt;br /&gt;
&lt;br /&gt;
Se utilizará el script '''backup.sh''', que se encuentra en el directorio '''etc/MDTel'''.&lt;br /&gt;
&lt;br /&gt;
Se ejecuta automaticamente mediante el uso de un cron&lt;br /&gt;
&lt;br /&gt;
'''texto del cron:'''&lt;br /&gt;
&lt;br /&gt;
 SHELL=/bin/sh&lt;br /&gt;
 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin&lt;br /&gt;
 # m h dom mon dow user command&lt;br /&gt;
 0 2 * * * root  /etc/MDtel/backup.sh /etc/MDtel/backup.cfg&lt;br /&gt;
&lt;br /&gt;
Para activar el script hay que descomentar la línea&lt;br /&gt;
 # m h dom mon dow user command&lt;br /&gt;
&lt;br /&gt;
Los directorios de los que se hace copia son:&lt;br /&gt;
* DIR=var/lib/asterisk/sounds/Particular&lt;br /&gt;
* DIR=var/lib/asterisk/moh&lt;br /&gt;
* DIR=etc&lt;br /&gt;
* DIR=etc/asterisk&lt;br /&gt;
* DIR=etc/cron.d&lt;br /&gt;
* DIR=etc/dahdi&lt;br /&gt;
* DIR=etc/exim4&lt;br /&gt;
* DIR=etc/ha.d&lt;br /&gt;
* DIR=etc/logrotate.d&lt;br /&gt;
* DIR=etc/MDtel&lt;br /&gt;
* DIR=etc/mysql&lt;br /&gt;
* DIR=etc/network&lt;br /&gt;
* DIR=etc/zabbix&lt;br /&gt;
* DIR=usr/local/sbin&lt;br /&gt;
&lt;br /&gt;
Por defecto se realiza un backup cada dos horas en la carpeta '''/var/spool/MDtel/backup'''.&lt;br /&gt;
&lt;br /&gt;
Para cambiar la ruta de destino del backup habrá que modificar el fichero backup.sh, en concreto modificar la variable MDTEL.&lt;br /&gt;
&lt;br /&gt;
El fichero ''' backup.cfg''' que se genera incluye copia de la siguiente información:&lt;br /&gt;
* Ficheros de configuración de la aplicación.&lt;br /&gt;
* Base de Datos.&lt;br /&gt;
* Dialplan.&lt;br /&gt;
&lt;br /&gt;
Se guardarán 10 copias del fichero ''' backup.cfg '''&lt;br /&gt;
&lt;br /&gt;
Para recuperar una plataforma utilizando el backup, habrá que instalar una máquina nueva y cargar los ficheros de configuración, Base de Datos y Dialplan guardados en el proceso de backup.&lt;br /&gt;
&lt;br /&gt;
=== Requerimientos de conectividad ===&lt;br /&gt;
&lt;br /&gt;
El esquema siguiente muestra como ejemplo todos los flujos de información existentes en un entorno típico de &amp;lt;big&amp;gt;'''telefonía corporativa (sin presencia)'''&amp;lt;/big&amp;gt; ('''''VIVA'''''it Call)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Flujos corporativa.png|cebter]]&lt;br /&gt;
&lt;br /&gt;
En el entorno de &amp;lt;big&amp;gt;'''Contact Center'''&amp;lt;/big&amp;gt;, encontramos los siguientes flujos &amp;lt;big&amp;gt;'''entre servicios'''&amp;lt;/big&amp;gt; (comunicaciones entre servidores, ('''''VIVA'''''it Suite)) &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Flujos Contact servicios.png|650px|center]]&lt;br /&gt;
&lt;br /&gt;
y &amp;lt;big&amp;gt;'''entre usuarios y servicios'''&amp;lt;/big&amp;gt; los reflejados a continuación:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Flujos Contact puestos.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Lado A!!Lado B!!Puertos!!Sentido!!Observ.&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor||TCP 5060||A -&amp;gt; B||Señalización SIP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor||UDP 5060||A -&amp;gt; B||Señalización SIP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor||10000 a 20000||A -&amp;gt; B&lt;br /&gt;
B -&amp;gt; A&lt;br /&gt;
||RTP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor TFTP||UDP 69||A -&amp;gt; B&lt;br /&gt;
B -&amp;gt; A&lt;br /&gt;
||Para actualización de terminales por TFTP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor NTP||UDP 123||A -&amp;gt; B||&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Desk||Servidor||TCP 4500||A -&amp;gt; B||Comunicación CTI&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Desk||Servidor||TCP 3306||A -&amp;gt; B||Acceso a Mysql Base de datos&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Desk||Servidor Syslog||UDP 514||A -&amp;gt; B||Para envio de logs de agente&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Supervisor||Servidor||TCP 3306||A -&amp;gt; B||Acceso a Mysql Base de datos&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker||Servidor||TCP 3306||A -&amp;gt; B||Acceso a Mysql Base de datos&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker||Servidor||TCP 8180||A -&amp;gt; B||&lt;br /&gt;
|-&lt;br /&gt;
|Actualizador||Servidor||TCP 80||A -&amp;gt; B||Necesario para actualizaciones de versiones de aplicaciones de agente y supervisores&lt;br /&gt;
|-&lt;br /&gt;
|Portal de administración||Servidor||TCP 8180||A -&amp;gt; B||Acceso al portal de administración '''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker Web||Servidor||TCP 8180||A -&amp;gt; B||&lt;br /&gt;
|-&lt;br /&gt;
|Monitor||Servidor||TCP 8180||A -&amp;gt; B||Wallboard&lt;br /&gt;
|-&lt;br /&gt;
|Monitorización||Servidor||TCP 80||A -&amp;gt; B||Acceso a portal monitorización (Zabbix)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Gateways ===&lt;br /&gt;
El concepto de gateway como tal no existe en la plataforma '''''VIVA'''''it; existen nodos de ACD y nodos de corporativa.&lt;br /&gt;
&lt;br /&gt;
A efectos de operación un nodo de corporativa es el que en cualquier caso asumirá las funcionalidades de gateway, y recibirá las conexiones (analógicas, digitales o IP) a sistemas externos o a la RTC&lt;br /&gt;
&lt;br /&gt;
El concepto gateway queda pues suscrito a entornos meramente comerciales&lt;br /&gt;
&lt;br /&gt;
Incluimos no obstante en este apartado los diagnósticos y operaciones básicos de conexiones a sistemas externos o RTC&lt;br /&gt;
&lt;br /&gt;
Para verificar los enlaces establecidos ejecutamos el siguiente comando en el terminal: '''sip show peers''' &lt;br /&gt;
&lt;br /&gt;
Al ejecutar este comando obtenemos la salida:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Enlace_Exterior.png |center]]&lt;br /&gt;
&lt;br /&gt;
Las columnas ''Host'' y ''Port'' nos muestran las conexiones establecidas y nos informa de un posible problema de conexión. &lt;br /&gt;
&lt;br /&gt;
Sabremos que ''no existe conexión'' cuando la columna Host tiene el valor '''Unspecified''' y en la columna Port aparece un '''0''' , a continuación se muestra un ejemplo:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ejemplo_no_conexion.png |center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#00FF00&amp;quot;&amp;gt;FALTA AQUI DIAGNOSTICOS Y OPERACIONES DE ENLACES EXTERNOS&amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Servidor de grabación === &lt;br /&gt;
==== Almacenamiento en la nube ====&lt;br /&gt;
Almacenamiento en la nube.&lt;br /&gt;
Existe la posibilidad de que tras un determinado periodo de tiempo las grabaciones sean movidas a un almacenamiento externo. De esta operativa se encarga el proceso /usr/local/sbin/mueveGrabaciones.pl que recibe como parámetro la ruta al archivo de configuración. Dicho archivo tiene los siguientes elementos:&lt;br /&gt;
&lt;br /&gt;
*$db: Nombre de la base de datos.&lt;br /&gt;
*$dbHost: servidor de MySQL&lt;br /&gt;
*$dbPort: Puerto del MySQL.&lt;br /&gt;
*$dbUsuario: Usuario de conexión a MySQL.&lt;br /&gt;
*$dbClave: Clave del usuario anterior.&lt;br /&gt;
*$dirBase: Directorio donde residen las grabaciones&lt;br /&gt;
*$diasCaducidad: Dias de antigüedad para mover las grabaciones&lt;br /&gt;
*$sftpHost: Servidor SFTP de destino&lt;br /&gt;
*$sftpPort: Puerto SFTP.&lt;br /&gt;
*$sftpUsuario: Usuario SFTP.&lt;br /&gt;
*$sftpClave: Clave del usuario SFTP.&lt;br /&gt;
*$simula: Si este campo vale 1, las grabaciones se copian, pero no se borran del directorio original, ni se actualiza su ubicación en la base de datos.&lt;br /&gt;
&lt;br /&gt;
La grabación indica donde se encuentra mediante el campo E_UBICACION_GRABACION, que puede tener los siguientes valores:&lt;br /&gt;
*Sin definir (0)&lt;br /&gt;
*En línea (10): Las grabaciones se encuentran en el servidor de grabaciones.&lt;br /&gt;
*Fuera de línea (20): las grabaciones se encuentran en una ubicación externa.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Reporting ===&lt;br /&gt;
La aplicación de reporting en general no tiene procesos habituales de operación y mantenimiento.&lt;br /&gt;
Los informes son obtenidos desde la interfaz gráfica o mediante un procedimiento de scripting, descritos en “Formato de fichero de intercambio para '''''VIVA'''''it Reporting”.&lt;br /&gt;
&lt;br /&gt;
==== Formato de fichero de intercambio para '''''VIVA'''''it Reporting ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Nombre !! Descripción !! Ejemplo&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;| Selección de registros&lt;br /&gt;
|-&lt;br /&gt;
| SQL_selec || Expresión SQL que se añadirá al where a la SQL principal. || C_ORIGEN like '6%' and C_COD_CLIENTE= '023'&lt;br /&gt;
|-&lt;br /&gt;
| SQL_select_leido || Filtro de selección legible&lt;br /&gt;
 || Skill igual a 60310&lt;br /&gt;
|-&lt;br /&gt;
| SQL_orden || Lista de campos por los que se ordenará, después de los que estén ya definidos en la plantilla. || C_ORIGEN, C_COD_CLIENTE&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Salida&lt;br /&gt;
|-&lt;br /&gt;
| FIC_extension || Extensión de fichero de salida: PDF, XLSX, CSV || PDF&lt;br /&gt;
|-&lt;br /&gt;
| FIC_tipo_entrega || 'P': Pantalla, 'D': Directorio, 'C': Correo || D&lt;br /&gt;
|-&lt;br /&gt;
| FIC_destino || Si 'C', dirección de correo, si 'D', ruta del directorio || D:\informes\&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Plantilla&lt;br /&gt;
|-&lt;br /&gt;
| INF_modelo || Ruta del fichero de plantilla || C:\Modelos\llamadas.rep&lt;br /&gt;
|-&lt;br /&gt;
| INF_descripción || Descripción del informe || Informe detallado de llamadas&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Base de datos&lt;br /&gt;
|-&lt;br /&gt;
| BD_ip || IP o nombre de máquina || &lt;br /&gt;
|-&lt;br /&gt;
| BD_puerto || Puerto de MySQL || &lt;br /&gt;
|-&lt;br /&gt;
| BD_base_datos || Nombre de base de datos || &lt;br /&gt;
|-&lt;br /&gt;
| BD_usuario || Usuario de base de datos || &lt;br /&gt;
|-&lt;br /&gt;
| BD_clave || Clave de acceso cifrada || &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Parámetros&lt;br /&gt;
|-&lt;br /&gt;
| PAR_desde_vis || Fecha inicial de selección en formato legible (o '-' si no hay) || 01/01/2016&lt;br /&gt;
|-&lt;br /&gt;
| PAR_hasta_vis || Fecha final de selección en formato legible (o '-' si no hay) || 31/01/2016&lt;br /&gt;
|-&lt;br /&gt;
| PAR_01 || Parámetro opcional || &lt;br /&gt;
|-&lt;br /&gt;
| .. || .. || &lt;br /&gt;
|-&lt;br /&gt;
| PAR_20 || Parámetro opcional || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El fichero tendrá un nombre único para permitir la generación simultánea de informes.&lt;br /&gt;
El fichero es borrado por la aplicación de forma automática.&lt;br /&gt;
Se pasa a la aplicación de generación de informes como parámetro. Por ejemplo:&lt;br /&gt;
 “C:\Archivos de Programa\MDtel\Nimitz\LanzaInformes\LanzaInformes.exe”&lt;br /&gt;
 “C:\Archivos de Programa\MDtel\Nimitz\LanzaInformes\NIM00001.tmp”&lt;br /&gt;
&lt;br /&gt;
Ejemplo de fichero:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| SQL_selec=(DAT_ACUMULADOS_COLAS.ID_COLA in (11))&lt;br /&gt;
&lt;br /&gt;
SQL_select_leido=Skill igual a 60310&lt;br /&gt;
&lt;br /&gt;
SQL_orden=&lt;br /&gt;
FIC_extension=pdf&lt;br /&gt;
&lt;br /&gt;
FIC_tipo_entrega=P&lt;br /&gt;
&lt;br /&gt;
FIC_destino=C:\&lt;br /&gt;
&lt;br /&gt;
INF_modelo=skill_setsi.rep&lt;br /&gt;
&lt;br /&gt;
INF_descripcion=Skill. SETSI&lt;br /&gt;
&lt;br /&gt;
BD_ip=172.25.1.2&lt;br /&gt;
&lt;br /&gt;
BD_puerto=3306&lt;br /&gt;
&lt;br /&gt;
BD_base_datos=nimitz&lt;br /&gt;
&lt;br /&gt;
BD_usuario=nimitz&lt;br /&gt;
&lt;br /&gt;
BD_clave=UIk5jNY9PVX5ogg=&lt;br /&gt;
&lt;br /&gt;
PAR_desde_vis=-&lt;br /&gt;
&lt;br /&gt;
PAR_hasta_vis=-&lt;br /&gt;
&lt;br /&gt;
PAR_01=&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Resumen de significado de columnas en reporting histórico ====&lt;br /&gt;
Esta información se puede consultar en el siguiente enlace:&lt;br /&gt;
&lt;br /&gt;
http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Documentacion_de_usuario_VIVAit_Suite_3.3#Resumen_del_valor_de_las_columnas_que_aparecen_en_los_informes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===== Agente,asistencia diaria y agente. Asistencia diaria del grupo =====&lt;br /&gt;
&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo de llamado:''' Tiempo de ring en llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo disponible:''' Tiempo que el agente estuvo conectado y no está&lt;br /&gt;
incluido en ninguno de los anteriores.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas transferidas:''' Número de llamadas ACD que fueron&lt;br /&gt;
transferidas por el agente.&lt;br /&gt;
&lt;br /&gt;
===== Agente. Aux y Grupo Aux =====&lt;br /&gt;
&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Desglose de tiempos AUX:''' Tiempo que el agente estuvo en cada uno&lt;br /&gt;
de los motivos de pausa.&lt;br /&gt;
&lt;br /&gt;
===== Agente. Resumen diario =====&lt;br /&gt;
&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo de llamado:''' Tiempo de ring en llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo disponible:''' Tiempo que el agente estuvo conectado y no está&lt;br /&gt;
incluido en ninguno de los anteriores.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas entrada Ext:''' Número de llamadas entrantes NO ACD a la&lt;br /&gt;
extensión.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas salida Ext:''' Número de llamadas salientes NO ACD desde la&lt;br /&gt;
extensión.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas transferidas:''' Número de llamadas ACD que fueron&lt;br /&gt;
transferidas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas retenidas:''' Número de retenciones que sufrieron las&lt;br /&gt;
llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACD:''' Tiempo ACD/ Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACW:''' TiempoACW/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio de entrada a la Ext:''' Tiempo entrada Ext/&lt;br /&gt;
Llamadas entrada Ext.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio de salida a la Ext:''' Tiempo salida Ext/ Llamadas&lt;br /&gt;
salida Ext.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio retención:''' Tiempo retención/Llamadas retenidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % Ocupación con ACW:''' ((Tiempo ACD+ Tiempo retención+ Tiempo&lt;br /&gt;
ACW)/Tiempo con personal)* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % Ocupación sin ACW:''' ((Tiempo ACD+ Tiempo retención)/Tiempo&lt;br /&gt;
con personal)* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % disp.:''' (Tiempo disponible/Tiempo conectado)* 100.&lt;br /&gt;
&lt;br /&gt;
===== Agente. Grupo ACD diario =====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención de un grupo&lt;br /&gt;
ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Ayuda:''' Número de llamadas contestadas por el agente que necesitaron&lt;br /&gt;
de consulta de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas retenidas:''' Número de retenciones que el agente realizó&lt;br /&gt;
sobre las llamadas de ese grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas por&lt;br /&gt;
el agente en ese grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Trans. salida:''' Llamadas que finalizan con una transferencia.&lt;br /&gt;
&lt;br /&gt;
===== Grupo ACD. Reporte diario con AHT =====&lt;br /&gt;
&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACD:''' Tiempo ACD/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACW:''' Tiempo ACW/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención de un grupo&lt;br /&gt;
ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente de un grupo ACD.&lt;br /&gt;
'''• Tiempo de llamado:''' Tiempo de ring en llamadas ACD de un grupo&lt;br /&gt;
ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo disponible:''' Tiempo que el agente estuvo conectado y no está&lt;br /&gt;
incluido en ninguno de los anteriores.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Ayuda:''' Número de llamadas ACD contestadas por el agente en las que&lt;br /&gt;
necesito hacer uso de la consulta.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas retenidas:''' Número de retenciones que el agente realizó&lt;br /&gt;
sobre las llamadas ACD contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas contestadas ACD&lt;br /&gt;
estuvieron retenidas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Trans. salida:''' Número de llamadas ACD que fueron transferidas por el&lt;br /&gt;
agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• AHT:''' (Tiempo ACD+ Tiempo ACW+ Tiempo retención)/Llamadas&lt;br /&gt;
ACD.(Average Handle Time)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Grupo ACD. QOS  =====&lt;br /&gt;
&lt;br /&gt;
'''• Vel. prom. de resp.:''' Tiempo total de espera de llamadas antes de ser&lt;br /&gt;
atendidas/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo prom. de aban.:''' Tiempo abandonadas(tiempo que las&lt;br /&gt;
llamadas abandonadas estuvieron en el grupo ACD)/Llamadas&lt;br /&gt;
abandonadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ofrecidas:''' Número de llamadas entrantes al grupo&lt;br /&gt;
ACD(Llamadas ACD+ Abandonadas+ Desbordadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas contestadas por los agentes.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas abandonadas:''' Número de llamadas colgadas por el cliente&lt;br /&gt;
en el grupo ACD antes de ser contestadas o desbordadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Desconectadas por ACD:''' Número de llamadas desbordadas que al&lt;br /&gt;
salir del grupo ACD se cuelgan.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Desbordadas por ACD:''' Número total de llamadas desbordadas(incluye&lt;br /&gt;
las desconectadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas atendidas en &amp;lt; 20s:'''Número de llamadas contestadas con&lt;br /&gt;
tiempo de respuesta menor a 20 segundos.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo total de espera:''' Tiempo total que las llamadas estuvieron&lt;br /&gt;
esperando antes de ser atendidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % N.A.:''' Llamadas ACD/(Llamadas ACD+ Llamadas abandonadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % N.D.S.:''' (Llamadas atendidas en &amp;lt; 20s/Llamadas ofrecidas)* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• T.M.O:''' (Tiempo ACD+ Tiempo ACW+ Tiempo retención)/Llamadas&lt;br /&gt;
ACD.(Tiempo Medio Operación)&lt;br /&gt;
&lt;br /&gt;
===== Informe conducción (VDN Conducción) =====&lt;br /&gt;
&lt;br /&gt;
'''•Entrantes al grupo ACD:''' Número de llamadas ofrecidas al grupo&lt;br /&gt;
ACD(Contestadas+ Abandonadas+ Desbordadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Llamadas contestadas:''' Número de llamadas contestadas por un agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Contestadas NDS:''' Número de llamadas contestadas en nivel de servicio,&lt;br /&gt;
tiempo de respuesta&amp;lt; 20 segundos.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Abandonadas:''' Número de llamadas abandonadas, colgadas por el cliente&lt;br /&gt;
antes de ser contestadas por un agente o desbordadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Desconectadas:''' Número de llamadas desbordadas que fueron colgadas al&lt;br /&gt;
salir del grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Desbordadas:''' Número total de llamadas desbordadas (incluye desconectadas)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Llamadas retenidas:''' Número de retenciones que el agente realizó sobre las&lt;br /&gt;
llamadas ACD contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•% N.A.:''' (Llamadas contestadas/(Llamadas contestadas+ Abandonadas+&lt;br /&gt;
Desbordadas))* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•% N.D.S.:''' (Contestadas NDS/(Llamadas contestadas+ Abandonadas + Desbordadas))*100&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•% Abandonadas:''' (Abandonadas/(Llamadas contestadas+ Abandonadas+ Desbordadas))* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. RING:''' Tiempo de ring en llamadas ACD(entrantes).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•ACDTIME:''' Tiempo de conversación ACD de las llamadas contestadas o&lt;br /&gt;
realizadas por el agente excluido el tiempo de retención de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. ACW:''' Tiempo dedicado por el agente a tareas administrativas tras&lt;br /&gt;
finalizar las llamadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum HOLD:''' Tiempo que las llamadas contestadas ACD estuvieron retenidas&lt;br /&gt;
por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. OTHER:''' Tiempo total que las llamadas estuvieron esperando en el&lt;br /&gt;
grupo ACD antes de ser atendidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. AVAIL:''' Acum. STAFF- (ACDTIME+ Acum. ACW+ Acum. RING+ Acum.&lt;br /&gt;
HOLD+ Acum. AUX).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. Staff:''' Suma del Tiempo conectado de todos los agentes al grupo&lt;br /&gt;
ACD(Este tiempo se repercute en todos los grupos ACD a los que esta&lt;br /&gt;
conectado el agente).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. AUX:''' Suma del Tiempo en pausa de todos los agentes que estén&lt;br /&gt;
conectados al grupo ACD(Este tiempo se repercute en todos los grupos ACD a&lt;br /&gt;
los que esta conectado el agente).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Prom. ACD:''' ACDTIME/Llamadas contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Prom. ACW:''' Acum. ACW/Llamadas contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Prom. HOLD:''' Acum. HOLD/Llamadas retenidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•AHT:''' (ACDTIME+ Acum. ACW+ Acum. HOLD)/Llamadas contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Vel. prom. de resp.:''' Tiempo total de espera de llamadas antes de ser&lt;br /&gt;
atendidas/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Tiempo máx. de espera:''' Tiempo de la llamada que estuvo mas tiempo en el&lt;br /&gt;
grupo ACD hasta que fue atendida.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Agentes en PH:''' (Acum. Staff- Acum. AUX)/1800(Agentes conectados que no&lt;br /&gt;
están en pausa en el intervalo).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Agentes Staff:''' Acum. Staff/1800(Agentes conectados en el intervalo)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Desglose de tiempos AUX:''' Tiempo que el agente estuvo en cada uno de los&lt;br /&gt;
motivos de pausa.&lt;br /&gt;
&lt;br /&gt;
===== Informe de producción =====&lt;br /&gt;
&lt;br /&gt;
'''• LL. ACD:'''Número de llamadas contestadas por ese agente para ese&lt;br /&gt;
grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. HOLD:''' Número de retenciones efectuadas para las llamadas&lt;br /&gt;
contestadas en ese grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Redir.:''' Número de llamadas no contestadas por un agente que&lt;br /&gt;
fueron redirigidas de nuevo a la cola.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. No colgadas cliente:''' Número de llamadas que terminaron sin el&lt;br /&gt;
colgado del cliente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Aband.:''' Número de llamadas abandonadas en ese grupo ACD, este&lt;br /&gt;
valor es independiente del agente por tanto se repite el valor para todos&lt;br /&gt;
los agentes en un mismo grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Transfer.:''' Número de llamadas ACD que fueron transferidas por el&lt;br /&gt;
agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Conf:''' Número de llamadas ACD en las que el agente estableció&lt;br /&gt;
conferencia.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• S. Extensión:''' Número de llamadas salientes de extensión, este valor es&lt;br /&gt;
independiente del grupo ACD se repite el valor para todos los grupos&lt;br /&gt;
ACD en los que está conectado el agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. Staff:''' Tiempo que el agente estuvo conectado al grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. RING:''' Tiempo de ring en las llamadas ACD(entrantes) que&lt;br /&gt;
fueron contestadas por el agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. ACD:''' Tiempo de conversación de las llamadas ACD(entrantes)&lt;br /&gt;
que fueron contestadas por el agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas que fueron contestadas por él.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum HOLD:''' Tiempo que las llamadas ACD(entrantes) para ese grupo&lt;br /&gt;
ACD que fueron contestadas por el agente estuvieron retenidas.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. AVAIL:''' Acum. STAFF- (Acum. ACD+ Acum. ACW+ Acum. RING+&lt;br /&gt;
Acum. HOLD+ Acum. AUX)..&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. AUX:''' Tiempo que el agente estuvo en pausa este valor es&lt;br /&gt;
independiente del grupo ACD se repite el valor para todos los grupos&lt;br /&gt;
ACD en los que está conectado el agente..&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Desgloses de tiempos AUX, tiempo AUX por cada uno de los&lt;br /&gt;
motivos.''' este valor es independiente del grupo ACD se repite el valor&lt;br /&gt;
para todos los grupos ACD en los que está conectado el agente.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Consideraciones adicionales =====&lt;br /&gt;
&lt;br /&gt;
Los tiempos se insertan en el intervalo en el que se deja ese &amp;quot;estado&amp;quot;, esto provoca que en un intervalo pueda ser mayor el tiempo ACD que el tiempo conectado.&lt;br /&gt;
&lt;br /&gt;
''* Ejemplo:''&lt;br /&gt;
&lt;br /&gt;
 -Llamada: Duración 15 minutos Hora fin de la llamada 13:01&lt;br /&gt;
 -Llamada: Duración 20 minutos Hora fin de la llamada 13:24&lt;br /&gt;
 Suma de las duraciones de las llamadas para el intervalo ''35 minutos'' tiempo&lt;br /&gt;
 conectado del agente en el intervalo ''30 minutos.''&lt;br /&gt;
 Cuando los periodos consultados sean mas amplios (diario, mensual) los&lt;br /&gt;
 desfases tenderán a desaparecer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Otros Diagnósticos y operaciones básicas ==&lt;br /&gt;
=== Arranque y apagado de la plataforma ===&lt;br /&gt;
&lt;br /&gt;
En general el arranque y apagado de cada nodo de una plataforma '''''VIVA'''''it es el estándar de un procedimiento ordenado de apagado en una máquina linux: '''&amp;quot;Shutdown -h now&amp;quot;''' o comando de apagado inmediato o programado equivalente&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El orden de arranque de la plataforma deberá ser:&lt;br /&gt;
# En primer lugar arrancar el nodo con la base de datos de tiempo real&lt;br /&gt;
# Una vez finalizado el arranque del punto 1, arrancar el nodo con la base de datos de réplica&lt;br /&gt;
# Una vez finalizado el arranque del punto 2, arrancar el resto de nodos en cualquier orden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Al respecto del orden de apagado de nodos, es el siguiente:&lt;br /&gt;
# En primer lugar se apagarán, en cualquier orden, los nodos que NO CONTENGAN bases de datos de tiempo real ni bases de datos de réplica&lt;br /&gt;
# Una vez apagados totalmente todos los nodos del punto 1, apagaremos el nodo (o nodos) con bases de datos de réplica&lt;br /&gt;
# Una vez apagados totalmente todos los nodos del punto 2, se apagará el nodo con la base de datos de tiempo real&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== Nivel matriz de conmutación ===&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Grabación ===&lt;br /&gt;
&lt;br /&gt;
==== Configuración de la grabación en la plataforma corporativa ====&lt;br /&gt;
Para que una llamada se grabe, lo primero de todo es que  alguien tenga la capacidad de grabar. Esto se consigue diciendo al nodo que sea grabador. Esto provoca que el nodo llame al mixmonitor para grabar y se inserte un registro en el DAT_GRABACIONES. Esto no significa que ya las llamadas se vayan a grabar, ya que para eso tiene que ser procesadas por un nodo que sea grabador. Hay tres, llamémosle elementos, que se pueden grabar:&lt;br /&gt;
&lt;br /&gt;
* El nodo, es decir todo lo que el nodo enrute&lt;br /&gt;
* Prerutas&lt;br /&gt;
* Objetos: que son las extensiones, usuarios, grupos corporativos, etc.&lt;br /&gt;
&lt;br /&gt;
Tenemos tres formas de grabar:&lt;br /&gt;
&lt;br /&gt;
* Grabar con beep periódico&lt;br /&gt;
* Grabar sin beep periódico&lt;br /&gt;
* Descartar grabación&lt;br /&gt;
&lt;br /&gt;
Si de los tres elementos tenemos que uno grabe, ya sea con o sin beep periódico, esa llamada se va a grabar ya que son OR, en cuanto haya un elemento que diga que grabe se va a grabar.&lt;br /&gt;
&lt;br /&gt;
Al igual pasa si tenemos que un elemento tenga descartar la grabación. La grabación no se inicia.&lt;br /&gt;
&lt;br /&gt;
Referente al campo de Modo de grabación en infraestructura, este no se emplea para la grabación de corporativo, sino que solo tiene validez en ACD. Para grabación en el ACD hay que, como se ha dicho anteriormente poner un nodo que sea grabador y especificar un elemento de los tres que hay cual es el que se va a grabar.&lt;br /&gt;
&lt;br /&gt;
Para que exista una grabación a de existir un segmento asociado a esta. Los segmentos se tratan en las prerutas. Hay un campo es las prerutas que es Generar segmento al enrutar. Si está se generará el segmento del tipo de la preruta y su correspondiente grabación si esta está configurada. Si le decimos que no genere segmentos al enrutar y el sistema está configurado para que grabe, el recordCentral creará un tipo de segmento llamado externo para esa grabación. Podemos configurar si queremos que se cree o no ese segmento, para eso hay que modificar el fichero de configuración del recordCentral y poner un tiempo muy alto al campo $segmExternoMinSegs. También podemos configurar que segmentos queremos que se graben. Por defecto el recordCentral va configurado para que se graben todos los segmentos. Para decirle que solo grabe cierto tipo de segmentos hay que ponerlos los que queramos que si se graben en la variable $tiposSegmentoGrabar del fichero de configuración del recordCentral.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que el servidor de grabación esta activo ====&lt;br /&gt;
&lt;br /&gt;
Si al ejecutar el comando '''''nc ip_maquina 1114''''',si no se recibe ninguna respuesta, significa el servidor de grabación no estaría activo. &lt;br /&gt;
También usando el comando ''''' ps aux | grep recordCentral ''''', donde si no escribe ningún resultado implica que tampoco esta activo.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que los nodos están conectados al servidor de grabación ====&lt;br /&gt;
&lt;br /&gt;
Debemos fijarnos en la linea de respuesta del comando '''''nc ip_maquina 1114''''', que seria:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| root@smadavacdrecord1:~# nc localhost 1114&lt;br /&gt;
recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423&lt;br /&gt;
160112'&lt;br /&gt;
&lt;br /&gt;
recordCentral MYSQL cnx=1&lt;br /&gt;
&lt;br /&gt;
recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
&lt;br /&gt;
recordCenral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
&lt;br /&gt;
'''recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10''''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el parámetro &amp;quot;fase=0&amp;quot; es el numero que identifica el recordCentral, los demás parámetros nos indicaran los nodos disponibles , que funcionan o no en el servidor. Entonces &amp;quot;gestión=4,6,7,8,9,10&amp;quot; indica el id de los nodos que maneja el proceso.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que un nodo tiene activo el agente de grabación ====&lt;br /&gt;
Si al ejecutar el comando '''''nc ip_maquina 1113''''', no se recibe ninguna respuesta, significa que el nodo no tiene activo el agente de grabación.&lt;br /&gt;
También usando el comando ''''' ps aux | grep recordNodo''''', donde si no escribe ningun resultado implica que tampoco esta activo.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que un nodo está subiendo archivos de grabación al servidor ====&lt;br /&gt;
Debemos fijarnos en la linea de respuesta del comando '''''nc ip_maquina 1114''''', que seria:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| root@smadavacdrecord1:~# nc localhost 1114&lt;br /&gt;
recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423&lt;br /&gt;
160112'&lt;br /&gt;
&lt;br /&gt;
recordCentral MYSQL cnx=1&lt;br /&gt;
&lt;br /&gt;
recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
&lt;br /&gt;
recordCenral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
&lt;br /&gt;
'''recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10''''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Fijándonos en &amp;quot;descarga=8,6,4,7,10,9&amp;quot; nos confirma que todos los nodos que maneja el proceso funcionan perfectamente y el servidor puede manejar las grabaciones.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de grabaciones que se hayan quedado enganchadas en un nodo ====&lt;br /&gt;
Podemos fijarnos en los dos comandos, para '''''nc ip_maquina 1114''''':&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| root@smadavacdrecord1:~# nc localhost 1114&lt;br /&gt;
recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423&lt;br /&gt;
160112'&lt;br /&gt;
&lt;br /&gt;
recordCentral MYSQL cnx=1&lt;br /&gt;
&lt;br /&gt;
recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
&lt;br /&gt;
recordCenral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
&lt;br /&gt;
'''recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10''''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Fijándonos en el campo &amp;quot;cuarentena=''&amp;quot; indica que ninguno de los nodos tiene problemas.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación del estado de ocupación del almacenamiento temporal de grabaciones en un nodo. ====&lt;br /&gt;
&lt;br /&gt;
Desde un SSH ejecuta el comando '''''df - h''''' en la maquina donde creamos que debe estar ejecutando el proceso recordNod:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Filesystem !! Size !! Used !! Avail !! Use% !! Mounted on&lt;br /&gt;
|-&lt;br /&gt;
| udev || 486M || 4,0K || 486M || 1,00% || /dev&lt;br /&gt;
|-&lt;br /&gt;
| tmpfs || 100M || 416K || 99M || 1,00% || /run&lt;br /&gt;
|-&lt;br /&gt;
| '''/dev/vda1''' ||''' 236M''' ||''' 68M''' ||''' 156M''' ||''' 31,00% '''||''' /boot'''&lt;br /&gt;
|-&lt;br /&gt;
| tmpfs || 100M || 48K || 100M || 1,00% || /var/spool/asterisk/monitor&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Nos fijaríamos en la línea marcada en negrita, el campo &amp;quot;Use%&amp;quot; indicara el porcentaje de almacenamiento temporal de grabaciones en un nodo.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Escuchas e intrusiones en asterisk===&lt;br /&gt;
'''CallSpy''' es una aplicación elaborada para asterisk que permite a un usuario realizar escuchas e &lt;br /&gt;
intrusiones en llamadas. &lt;br /&gt;
En realidad tenemos dos aplicaciones en asterisk, CallSpy y CallSpyee. &lt;br /&gt;
====CallSpy ====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 '''Nota:''' Como mucho se pueden tener a dieciséis personas al mismo tiempo usando esta aplicación. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como hemos mencionado anteriormente, esta aplicación permite la escucha de llamadas y, &lt;br /&gt;
opcionalmente, realiza la función de intrusión. Tiene tres opciones de configuración obligatorios &lt;br /&gt;
que mostramos a continuación: &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 CallSpy(&amp;lt;tipoEspiado&amp;gt;,&amp;lt;expRegEspiado&amp;gt;,&amp;lt;parametrosConf&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
La opción '''&amp;lt;tipoEspiado&amp;gt;''' se refiere a que tipo de objeto que podemos espiar correspondiente, solo debe elegirse un único tipo: &lt;br /&gt;
*'''c:''' escuchar una cola&lt;br /&gt;
*'''v:''' escuchar un vdn &lt;br /&gt;
*'''a:''' escuchar a un agente &lt;br /&gt;
*'''e:''' escuchar extensión &lt;br /&gt;
La opción '''&amp;lt;expRegEspiado&amp;gt;''' representa el número de la cola, VDN, agente o extensión que queremos escuchar. Tiene que ser una expresión regular. &lt;br /&gt;
La opción '''&amp;lt;parametrosConf&amp;gt;''' se refiera a los parámetros de configuración para la llamada que podemos espiar, se pueden combinar o juntar : &lt;br /&gt;
*'''q:''' Desactiva el 'beep' al comienzo de cada nueva llamada. &lt;br /&gt;
*'''v([value]):''' Ajusta el volumen en el rango -4 a 4 (más alto, mas volumen). &lt;br /&gt;
*'''e:''' Habilita el que se pueda cambiar a otra llamada de la misma extensión. &lt;br /&gt;
*'''w:''' Habilita el que se pueda activar la intrusión (whisper).&lt;br /&gt;
Una vez iniciada la escucha, solo falta que entre una llamada al objetivo que estemos espiando. Al &lt;br /&gt;
iniciar la escucha, se puede hacer lo siguiente: &lt;br /&gt;
*Pulsando '''#''' modifica el volumen de escucha. &lt;br /&gt;
*Pulsando '''*''' cambia a una nueva llamada. &lt;br /&gt;
*Pulsando '''1''' si esta habilitado, cambia a otra llamada de la misma extensión. &lt;br /&gt;
*Pulsando '''2''' si esta habilitado, inicia la función de intrusión. &lt;br /&gt;
*Pulsando '''3''' desactiva la función de intrusión. &lt;br /&gt;
====CallSpyee (espiado)====&lt;br /&gt;
Mediante esta aplicación indicamos los parámetros que permite a una llamada ser seleccionada para &lt;br /&gt;
escuchar. Las opciones de configuración son: &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 CallSpyee([CID_NUM],[cola],[vdn],[agen],[exten]) &lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:'''No son parámetros obligatorios, por lo que no hace falta rellenar todos los campos pero si respetar sus posiciones separadas por comas.&amp;lt;small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
La explicación de los parámetros es la siguiente:&lt;br /&gt;
*'''CID_NUM:''' representa el call ID de la llamadas &lt;br /&gt;
*'''cola:'''representa el número de la cola que se quiere espiar (${QUEUE} ).&lt;br /&gt;
*'''vdn:'''   representa el número del VDN que se quiere espiar (${VDN} ).&lt;br /&gt;
*'''agen:''' representa el número del agente que se quiere espiar.&lt;br /&gt;
*'''exten:''' representa el número de la extensión que se quiere espiar (${EXTENSION}) .&lt;br /&gt;
&lt;br /&gt;
Por ejemplo si queremos escuchar todas las llamadas en las que participa una extensión determinada pondremos en la macro de extensiones: &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,,,${EXTENSION}) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Cambios para el dialplan de asterisk==== &lt;br /&gt;
El funcionamiento de este tipo de servicio conlleva un cambio en el dialplan de asterisk. En cada macro correspondiente se pondrá los diferentes CallSpyee para VDN, colas  , extensiones y agentes. &lt;br /&gt;
Pasos a seguir: &lt;br /&gt;
*Paso 1. Creación de un código de intrusión para cada tipo según necesidad (cola, VDN, agente y &lt;br /&gt;
extensión). &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Ejemplo '''MD'''tel:  declaramos como código de intrusión a Agente *44*NUMERO &lt;br /&gt;
 ;========================================== &lt;br /&gt;
 ;======== Intrusion a Agente &lt;br /&gt;
 ;========================================== &lt;br /&gt;
 exten =&amp;gt; _*44*X.,1,set(CadMarcar=intrusionEspiado) &lt;br /&gt;
 exten =&amp;gt; _*44*X.,n,set(DesL=SERVICIO) &lt;br /&gt;
 exten =&amp;gt; _*44*X.,n,set(datoServicio=^${EXTEN:4}) &lt;br /&gt;
 exten =&amp;gt; _*44*X.,n,Goto(finMacro,1) &lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' En la tercera línea podemos observar la expresión regular que se le pasara al CallSpy correspondiente con el número marcado por el espia. &amp;lt;small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*Paso 2.Llamar a CallSpy con la configuración deseada.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Ejemplo '''MD'''tel:  llamada a CallSpy especificando que vamos a espiar una cola (la c del primer parámetro, con la&lt;br /&gt;
 extensión introducida en el código de intrusión y con whisper, es decir, función de intrusión habilitada. &lt;br /&gt;
 ;------------------------------------------------------------------------ &lt;br /&gt;
 ; Intrusion a Espiado &lt;br /&gt;
 ;------------------------------------------------------------------------ &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,1,NoOp &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,n,GotoIf($[&amp;quot;${datoServicio}&amp;quot;=&amp;quot;&amp;quot;]?colgar) &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,n,CallSpy(c,${datoServicio},w) &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,n(colgar),Hangup &lt;br /&gt;
|}&lt;br /&gt;
* Paso 3. Llamar a CallSpyee con la configuración de las llamadas candidatas a ser escuchadas.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Ejemplo '''MD'''tel: &lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,,,,${EXTENSION}) → Para extensiones &lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,${QUEUE},,,) → Llamadas espiadas por cola &lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,,${VDN},,) → Llamadas espiadas por VDN &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Calendarios ===&lt;br /&gt;
&lt;br /&gt;
Para la configuración de los Calendarios se hace uso de '''CalDAV''', estándar de Internet que permite a un cliente acceder a información de planificación en un servidor remoto. Permite que varios clientes accedan a la misma información, facilitando la cooperación. Muchas aplicaciones, tanto clientes como servidores, son compatibles con este protocolo.&lt;br /&gt;
&lt;br /&gt;
Si deseamos crear un calendario en la plataforma '''VIVAit''' podemos hacerlo siguiendo el  siguiente enlace:  &lt;br /&gt;
Para comprobar que el servidor de calendarios funciona correctamente bastaría con cargar en la barra de direcciones la siguiente url: [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Calendarios |Calendarios]]&lt;br /&gt;
&lt;br /&gt;
http://${NODO.HOST}/dav/html/cal.php/calendars/${DAV.CUENTA}/${DAV.CALENDARIO}&lt;br /&gt;
&lt;br /&gt;
donde,&lt;br /&gt;
&lt;br /&gt;
* '''NODO.HOST:''' es la ip del servidor calendar&lt;br /&gt;
* '''DAV.CUENTA:''' hace referencia a la cuenta de usuario&lt;br /&gt;
* '''DAV.CALENDARIO:''' hace referencia el nombre de la cuenta&lt;br /&gt;
&lt;br /&gt;
Una vez que se carga la url sabremos que el servidor funciona correctamente si visualizamos lo siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla de 2016-07-21 12_43_58.png || 1020px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si el sistema nos pide usuario y clave querrá decir que el servidor de calendarios está operativo en esa maquina&lt;br /&gt;
&lt;br /&gt;
Para comprobar que funciona en la consola de asterisk usaremos los comandos &lt;br /&gt;
 calendar show calendars&lt;br /&gt;
 calendar show calendar [nombreCalendario]&lt;br /&gt;
&lt;br /&gt;
 '''Nota:''' Debido bugs detectados, el proceso requerirá:&lt;br /&gt;
       - La realización de una sincronización manual de la sección &amp;quot;mdcal&amp;quot; desde el portal de administración&lt;br /&gt;
       - Añadir la línea '''''#include &amp;quot;/etc/asterisk/mdcal.conf&amp;quot;''''' en el fichero calendars.conf y hacer &amp;quot;reload&amp;quot; de asterisk&lt;br /&gt;
       - En la máquina donde esté instalado el servidor de calendarios apuntar a la IP de la BDTR (/var/www/dav/config.php)&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Syslog de agentes ===&lt;br /&gt;
'''''Syslog''''' es un estándar para el envío de mensajes de registro en una red informática IP. Por '''''Syslog''''' se conoce tanto al protocolo de red como a la aplicación o biblioteca que envía los mensajes de registro. Se lanza automáticamente al arrancar un sistema Unix, y es el encargado de guardar informes sobre el funcionamiento de la máquina (eventos, seguridad del sistema, etc) pero puede contener también cualquier información como mensajes de las diferentes partes del sistema (núcleo, programas...) y los envía y/o almacena en diferentes localizaciones transmitiéndose mediante un puerto UDP. Esto permite concentrar los registros de múltiples máquinas en un único punto simplificando la labor de gestión al administrador siendo habitual que múltiples dispositivos lo soporten.&lt;br /&gt;
&lt;br /&gt;
El formato del mensaje se compone de tres campos :&lt;br /&gt;
&lt;br /&gt;
* La cabecera contiene la prioridad, fecha y hora del mensaje, máquina, proceso (nombre e identificador) que lo ha generado y la versión del protocolo utilizado.&lt;br /&gt;
* Una serie de pares clave-valor con metadatos.&lt;br /&gt;
* El texto del mensaje.&lt;br /&gt;
&lt;br /&gt;
Si es necesario podemos activar el registro de todos los eventos telefónicos que realiza un agente ACD llamado '''Syslog de agentes'''. Su activación se realiza mediante el '''portal de administración ''VIVA''it'''  configurando unos parámetros para un usuario llamado ''Rastreo BBDD&amp;quot; y ''Rastreo Syslog''. Para más información[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Pesta.C3.B1a_ACD | ver sección  Portal de administración - General - Usuarios - Pestaña ACD  ]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot;  align=&amp;quot;top&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot; |&amp;lt;big&amp;gt;'''Elemento'''&amp;lt;/big&amp;gt; &lt;br /&gt;
|align=&amp;quot;center&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot; | &amp;lt;big&amp;gt;'''Procedimiento'''&amp;lt;/big&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Operacion&lt;br /&gt;
|-&lt;br /&gt;
|Ubicación del proceso||Script arranque: /etc/init/ rsyslog.conf&lt;br /&gt;
Configuración :&lt;br /&gt;
/etc/rsyslog.d/30-vivait-&lt;br /&gt;
desk.conf&lt;br /&gt;
|-&lt;br /&gt;
|Arranque||service rsyslog start&lt;br /&gt;
|-&lt;br /&gt;
|Parada||service rsyslog stop&lt;br /&gt;
|-&lt;br /&gt;
|Reinicio||service rsyslog reload&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Diagnostico&lt;br /&gt;
|-&lt;br /&gt;
|Registro de logs||/var/log/MDtel/vivait-desk.log&lt;br /&gt;
Fichero del día actual. se guardan los 30&lt;br /&gt;
anteriores comprimidos en tar.g&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==Funcionalidades específicas ==&lt;br /&gt;
=== Mecanismo de prioridad adaptativa ===&lt;br /&gt;
&lt;br /&gt;
El mecanismo de prioridad adaptativa permite en una plataforma '''''VIVA'''''it Suite establecer prioridades en las que se tenga en cuenta el tiempo de espera de las llamadas en cola, proporcionando una alternativa al mecanismo de prioridad absoluta que existe por defecto&lt;br /&gt;
&lt;br /&gt;
==== Introducción ====&lt;br /&gt;
&lt;br /&gt;
Este documento presenta una propuesta de mecanismo de asignación de llamadas en colas a agentes basado no solo en las prioridades de agente a cola,&lt;br /&gt;
sino en un factor de corrección de prioridad derivado del tiempo de espera de una llamada&lt;br /&gt;
&lt;br /&gt;
==== Terminología ====&lt;br /&gt;
&lt;br /&gt;
* '''Prioridad de llamada:''' A cada llamada susceptible de ser atendida en el ''Call Center'' se le asignará una prioridad de llamada; dicha prioridad será asignada cada vez que un agente quede disponible.&lt;br /&gt;
* '''Prioridad de grupo ACD:''' Los agentes del ''Call Center'' tendrán configurada una prioridad para cada grupo ACD al que pertenecen&lt;br /&gt;
* '''Tiempo de espera:''' Tiempo que una llamada lleva en espera en un determinado grupo ACD; si la llamada cambia de un grupo ACD a otro el tiempo de espera pasa a cero&lt;br /&gt;
* '''Objetivo de servicio:''' Tiempo objetivo máximo de espera por cada grupo ACD&lt;br /&gt;
&lt;br /&gt;
 '''Nota.-''' ''En terminología Asterisk el aumento de prioridad corresponde con números descendentes, es decir,&amp;lt;br /&amp;gt;&lt;br /&gt;
 prioridad 50 es mejor que prioridad 70''&lt;br /&gt;
&lt;br /&gt;
==== Mecanismo de asignación de llamadas ====&lt;br /&gt;
&lt;br /&gt;
En el momento en que exista un agente disponible para recibir llamada, el agente recepcionará la llamada con mejor prioridad de llamada (menor número). La prioridad de llamada para cada llamada se establecerá de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
- Agentes con prioridad de grupo ACD de 1 a 99 utilizarán el mecanismo convencional de asterisk de prioridad absoluta; será útil para grupos ACD críticos o en Call Centers muy convencionales&lt;br /&gt;
&lt;br /&gt;
'''Si un agente tiene prioridad menor de 100 en grupos ACD y hay llamadas en dichos grupos, estas llamadas serán atendidas por el agente con prioridad absoluta.'''&lt;br /&gt;
&lt;br /&gt;
- Agentes con prioridad de colas de 100 en adelante; se utilizará el siguiente mecanismo de prioridad ponderada:&lt;br /&gt;
&lt;br /&gt;
:*Si el grupo ACD de la llamada está dentro del objetivo de servicio, la prioridad de llamada será la prioridad de grupo ACD (a efectos prácticos se aplicará el mecanismo convencional de asignación de llamada a agente, equitativo entre grupos ACD con misma prioridad)&lt;br /&gt;
&lt;br /&gt;
:*Si el grupo ACD de la llamada está fuera del objetivo de servicio, se aplicará una ponderación que mejorará la prioridad de la llamada a medida que aumente el tiempo de espera:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Formula.png |center]]&lt;br /&gt;
&lt;br /&gt;
En una configuración de igualdad de prioridad de agente y objetivo de servicio, el tiempo de espera influiría de manera determinante (más o menos en&lt;br /&gt;
función del peso) en la asignación de la siguiente llamada&lt;br /&gt;
El peso podrá adquirir tres posibles valores: 0, 1 y 10&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Esquema.png |center]]&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;span style=&amp;quot;color:#000080&amp;quot;&amp;gt;- Calculo prioridad de llamada: se calcula por llamada cada vez que un agente queda libre&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span style=&amp;quot;color:#000080&amp;quot;&amp;gt;- Agente atiende llamada con mejor prioridad de llamada&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Medio:Asignación de llamadas por prioridad adaptativa.pdf|Asignación de llamadas por prioridad adaptativa]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Marcación saliente ===&lt;br /&gt;
Dentro del ACD hay un comportamiento especial que es la marcación saliente. Esta puede ser de tres tipos:&lt;br /&gt;
* '''Vista previa''': El agente demanda la siguiente llamada a realizar.&lt;br /&gt;
* '''Progresivo''': Se llama al agente y se lanza la llamada al contacto.&lt;br /&gt;
* '''Predictivo''': El sistema calcula cuando va a estar libre el agente y se adelanta lanzando varias llamadas (configurables por parámetros). La llamada que es contestada primero, se pasa a una cola (el resto se cuelgan) a la espera que el agente se quede libre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Esquema de funcionamiento====&lt;br /&gt;
[[Archivo:esquema funcionamiento marcador.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
Los contactos se agrupan en listas para su facilidad de asignación a campañas, aunque finalmente lo que se asigna a una campaña es un contacto.&lt;br /&gt;
&lt;br /&gt;
Las campañas tienen estrategias. Las estrategias definen como se ha de llamar (del primero al último, sólo los pares, etc.). Tienen una serie de parámetros que  dependiendo de la estrategia pueden tener distinta utilidad. Desde el punto de vista de la base de datos, las estrategias se definirían en la tabla ACD_CLASES_ESTRATEGIAS y se les da valor en la tabla ACD_ESTRATEGIAS_MARCADOR.&lt;br /&gt;
Una vez establecida la campaña y asignados sus contactos y dependiendo del modo de marcación (que se define en las colas) el proceso motorSal crea los intentos de marcación (siempre y cuando no estén en las listas Robinson), que serán leídos por el proceso myAcdSuperv que los convierte en llamadas para el Asterisk.&lt;br /&gt;
&lt;br /&gt;
====Flujo de estados====&lt;br /&gt;
&lt;br /&gt;
El flujo de estados es el reflejado en la figura siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:diagrama de flujo motorsal.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
Los diferentes estados de un contacto son:&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Estado !! ID_Estado!! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| Planificable || 0|| El contacto está preparado para que lo gestione motorSal y según la estrategia definida se establece el campo ACD_CONTACTOS_CAMPANNAS.D_HORA_PROXIMA&lt;br /&gt;
|-&lt;br /&gt;
|Planificado||10||Cuando ha llegado el tiempo marcado en HORA PROXIMA, motorSal ejecuta la 2ª fase de la estrategia, generando el intento de marcación.&lt;br /&gt;
|-&lt;br /&gt;
|Intento||20||El control pasa a myAcdSuperv, que a su vez genera la llamada en Asterisk. Cuando termina, se pasa a Planificable o Finalizado.&lt;br /&gt;
|-&lt;br /&gt;
|Finalizado||100||Las gestiones con este contacto han terminado.&lt;br /&gt;
|-&lt;br /&gt;
|Abortado||110||&lt;br /&gt;
|-&lt;br /&gt;
|Obsoleto||200||Se ha agotado el tiempo para contactar sin agotar todos los intentos. No se le vuelve a llamar nunca.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Carga de contactos====&lt;br /&gt;
&lt;br /&gt;
===== Descripción =====&lt;br /&gt;
&lt;br /&gt;
A continuación se explica la configuración y funcionamiento de la utilidad encargada de asignar contactos a campañas.&lt;br /&gt;
&lt;br /&gt;
===== Configuración =====&lt;br /&gt;
&lt;br /&gt;
El archivo de configuración recibe el nombre de '''cargaContactos.pconf.''' Este archivo reside en '''/etc/MDtel.''' El formato se describe en la tabla siguiente. Hay que tener en cuenta que las columnas empiezan a numerarse en 0.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Parámetro !! Valor !! Obligatorio !! Defecto&lt;br /&gt;
|- &lt;br /&gt;
| db|| Nombre de la base de datos|| SI || nimitz&lt;br /&gt;
|- &lt;br /&gt;
| dbHost|| Host MySQL || SI || localhost&lt;br /&gt;
|- &lt;br /&gt;
| dbPort|| Puerto MySQL || NO || 3306&lt;br /&gt;
|- &lt;br /&gt;
| dbUsuario || Usuario de acceso a la base de datos|| SI ||&lt;br /&gt;
|- &lt;br /&gt;
| dbClave || Clave del usuario || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| rutaContactos || Ruta hasta el archivo de contactos || NO || /var/spool/MDtel/contactos&lt;br /&gt;
|- &lt;br /&gt;
| obsoletos || Si vale 1, marcar como obsoletos los contactos anteriores || NO || 0&lt;br /&gt;
|- &lt;br /&gt;
| diasCaducidad || Número de dias a partir de los cuales caducarán los contactos || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| idCampanna || Número de columna que contiene el ID de la campaña || SI||&lt;br /&gt;
|- &lt;br /&gt;
| idLista || Numero de columna que contiene el ID de la lista || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| prioridad || Número de columna que contiene la prioridad || NO || Nota: El valor es de 0 a 99. A mayor número menor prioridad (se le llamará más tarde)&lt;br /&gt;
|- &lt;br /&gt;
| tipoTarea|| Número de columna que contiene el tipo de tarea || NO || Nota: los posibles valores de la columna son : &amp;lt;br /&amp;gt; *A: Alta &amp;lt;br /&amp;gt; *M: Modificación &amp;lt;br /&amp;gt; *B: Baja&amp;lt;br /&amp;gt; Por defecto el valor es A&lt;br /&gt;
|- &lt;br /&gt;
| codCli || Número de columna del CSV que contiene el código de cliente || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| nombreCon || Número de columna del CSV que contiene el nombre || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| apellido1 || Número de columna del CSV que contiene el primer apellido|| NO ||&lt;br /&gt;
|- &lt;br /&gt;
| apellido2 || Número de columna del CSV que contiene el segundo apellido || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| empresa || Número de columna del CSV que contiene la empresa || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| direccion1 || Número de columna del CSV que contiene la dirección || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| direccion2 || Número de columna del CSV que contiene la dirección 2 || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| codPostal || Número de columna del CSV que contiene el código postal || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| localidad || Número de columna del CSV que contiene la localidad || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| provin || Número de columna del CSV que contiene la provincia || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| email || Número de columna del CSV que contiene el email || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_1 || Número de columna del CSV que contiene el primer número fijo del contacto || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_2 || Número de columna del CSV que contiene el segundo número fijo del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_3 || Número de columna del CSV que contiene el tercer número fijo del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_4 || Número de columna del CSV que contiene el cuarto número fijo del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_1 || Número de columna del CSV que contiene el primer número móvil del contacto || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_2 || Número de columna del CSV que contiene el segundo número móvil del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_3 || Número de columna del CSV que contiene el tercer número móvil del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_4 || Número de columna del CSV que contiene el CUARTO número móvil del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| edad || Número de columna del CSV que contiene la edad || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc1|| Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc2 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc3 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc4 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc5 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc6 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc7 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc8 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc1 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc2 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc3 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc4 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc5 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc6 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc7 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc8 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|-&lt;br /&gt;
| Idioma || Idioma del contacto || NO ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Funcionamiento =====&lt;br /&gt;
&lt;br /&gt;
Para ejecutar la utilidad se debe teclear la siguiente orden en la línea de comandos:&lt;br /&gt;
&lt;br /&gt;
'''cmd# cargaContactos.pl /&amp;lt;ruta hasta el conf&amp;gt;/cargaContactos.pconf &amp;lt;archivo CSV&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
El archivo con los contactos deberá ser un CSV con los campos separados por ';'. La utilidad parsea el archivo conforme a la distribución indicada en la configuración y crea las correspondientes entradas en las tablas '''ACD_CONTACTOS''' y '''ACD_CONTACTOS_CAMPANNAS.'''&lt;br /&gt;
&lt;br /&gt;
La utilidad crea un log en '''/var/log/cargaContactos.log''' en el que vuelca toda la operativa.&lt;br /&gt;
Por pantalla se va mostrando un lista con el ID asignado al contacto y el ID de campaña al que se le ha asignado.&lt;br /&gt;
&lt;br /&gt;
Un ejemplo de fichero de carga de contactos sería el siguiente: &lt;br /&gt;
&lt;br /&gt;
 #&lt;br /&gt;
 # Configuracion de recordGwd.pl&lt;br /&gt;
 #&lt;br /&gt;
 # Conexion de base de datos&lt;br /&gt;
 $db='nimitz';&lt;br /&gt;
 $dbHost = 'localhost';&lt;br /&gt;
 $dbPort = '3306';&lt;br /&gt;
 $dbUsuario = 'nimitz';&lt;br /&gt;
 $dbClave = 'LA QUE SEA';&lt;br /&gt;
 $diasCaducidad='300';&lt;br /&gt;
 $rutaGrab = '/var/spool/MDtel/contactos';&lt;br /&gt;
 $idCampanna = '31';&lt;br /&gt;
 $idLista = '32';&lt;br /&gt;
 $obsoletos = 0;&lt;br /&gt;
 $codCli = '1';&lt;br /&gt;
 $nombreCon = '2';&lt;br /&gt;
 $apellido1 = '3';&lt;br /&gt;
 $apellido2 = '4';&lt;br /&gt;
 $empresa = '5';&lt;br /&gt;
 $direccion1 = '6';&lt;br /&gt;
 $direccion2 = '7';&lt;br /&gt;
 $codPostal = '8';&lt;br /&gt;
 $localidad = '9';&lt;br /&gt;
 $provin = '10';&lt;br /&gt;
 $email = '11';&lt;br /&gt;
 $valFijo_1 = '12';&lt;br /&gt;
 $valFijo_2 = '13';&lt;br /&gt;
 $valFijo_3 = '14';&lt;br /&gt;
 $valFijo_4 = '15';&lt;br /&gt;
 $valMovil_1 = '16';&lt;br /&gt;
 $valMovil_2 = '17';&lt;br /&gt;
 $valMovil_3 = '18';&lt;br /&gt;
 $valMovil_4 = '19';&lt;br /&gt;
 $edad = '20';&lt;br /&gt;
 $nOpc1 = '21';&lt;br /&gt;
 $nOpc2 = '22';&lt;br /&gt;
 $nOpc3 = '23';&lt;br /&gt;
 $nOpc4 = '24';&lt;br /&gt;
 $cOpc1 = '25';&lt;br /&gt;
 $cOpc2 = '26';&lt;br /&gt;
 $cOpc3 = '27';&lt;br /&gt;
 $cOpc4 = '28';&lt;br /&gt;
 $prioridad = '29';&lt;br /&gt;
 $tipoTarea = '30';&lt;br /&gt;
&lt;br /&gt;
====Comportamiento de reprogramaciones de llamadas en función del estado del agente====&lt;br /&gt;
&lt;br /&gt;
Se ha preparado la sigueinte maqueta:&lt;br /&gt;
&lt;br /&gt;
Campaña saliente.&lt;br /&gt;
Cola saliente progresiva.&lt;br /&gt;
Dos agentes logados en VIVAit Suite.&lt;br /&gt;
&lt;br /&gt;
En el formulario de la llamada se indica: llamada redirigida&lt;br /&gt;
Se selecciona el &amp;quot;check dirigida&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Las posibilidades de prueba son dos: &amp;quot;'''Cualquier agente'''&amp;quot; y &amp;quot;'''Solo agente'''&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Resultados son los siguientes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''Estado del agente''' || '''Modo Cualquier Agente'''|| '''Modo Solo Agente'''&lt;br /&gt;
|-&lt;br /&gt;
| '''Agente Preparado''' || Entra llamada a agente|| Entra llamada a agente&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente en Pausa'''||Entra llamada a otro agente disponible||Espera a agente y entra llamada.&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente Hablando'''||Espera a agente y entra llamada||Espera a agente y entra llamada.&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente en Tiempo administrativo'''||Espera a agente y entra llamada||Espera a agente y entra llamada.&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente no logado'''||Entra llamada a otro agenete disponible||Consume intento.&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente con una pestaña de chat abierta y el otro agente en pausa'''||Entra llamada a otro agente disponible||Espera a agente y entra llamada.&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente con dos pestañas de chat abiertas'''||Espera a agente y entra llamada||Espera a agente y entra llamada.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Movilidad ===&lt;br /&gt;
La movilidad es una función integral de las comunicaciones en la empresa. Cualquier empleado (usuario) es móvil en cierto grado, sea dentro o fuera de la organización.La solución óptima debe proporcionar continuidad de servicios y acceso a nuestros servicios, sin importar donde se esté.&lt;br /&gt;
&lt;br /&gt;
==== Ofrecer movilidad a un usuario ====&lt;br /&gt;
&amp;lt;!--parte daniel--&amp;gt;&lt;br /&gt;
Para permitir la movilidad a un usuario, puede ser en el momento de crear o editar un usuario en el apartado ''Administración de usuario'' en ''General'' del '''portal de administración ''VIVA''it'''.  Asignándole un '''''numero login''''' (numero personal corporativo para el usuario) y una '''''clave login''''' ( se debe asignar una clave por defecto, pero puede cambiarla en el [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_3.0#Portal_de_usuario |portal de usuario]]). &amp;lt;br/&amp;gt;Para más información[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Pesta.C3.B1a_Centralita | ver sección Portal de administración - General - Usuarios - administración de usuarios - Pestaña Centralita]].&lt;br /&gt;
&lt;br /&gt;
Además, de crear un permiso de la '''aplicación ''Centralita''''' a cualquier nivel, desde el apartado ''Permisos de usuarios'' en ''General'' del '''portal de administración ''VIVA''it'''.&amp;lt;br/&amp;gt;Para más información[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Asignaci.C3.B3n_de_Permisos_de_Usuario_por_Administrador | ver sección  Portal de administración - General - Usuarios - Permisos a usuarios]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''La movilidad permite''' disponer de las extensiones telefónicas empresariales en cualquier lugar. Por&lt;br /&gt;
ejemplo, con un ordenador portátil o smartphone en una ubicación remota con conexión a Internet,&lt;br /&gt;
podríamos tener registrada nuestra extensión remotamente, y así las llamadas hacia/desde nuestra&lt;br /&gt;
oficina serían enrutadas por Internet hasta el equipo en cuestión sin coste alguno.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--parte daniel--&amp;gt;&lt;br /&gt;
Todo terminal tiene asociado una extensión y deberá permitir la movilidad de usuarios. La extensión se configura cambiando a '''''SI''''' el campo '''''Hay Movilidad''''' desde el apartado ''Extensiones'' de ''Dispositivos'' en ''VIVAit Call'' del '''portal de administración ''VIVA''it'''. Para más información [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Extensiones | ver sección Portal de administración - VIVAit Call - Dispositivos - Extensiones]]&lt;br /&gt;
&lt;br /&gt;
==== ¿Cómo funcionan las extensiones? ====&lt;br /&gt;
&lt;br /&gt;
Primeramente el usuario debe tener los ejes apropiados en la tabla '''COM_USUARIOS_APLICACION''' (aplicación centralita).&lt;br /&gt;
&lt;br /&gt;
La extensión debe de tener ''un teléfono'' y por tanto ''un modelo de teléfono asociado.''&lt;br /&gt;
&lt;br /&gt;
Es tan simple como especificar '''la extensión, el usuario y la clave de este.'''&lt;br /&gt;
&lt;br /&gt;
Para corroborar el funcionamiento de esta hay ''dos métodos'':&lt;br /&gt;
&lt;br /&gt;
'''* CLI asterisk:'''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenEntraUsuarioMovil 25001 20001 1234'''&lt;br /&gt;
&lt;br /&gt;
Y como resultado obtenemos lo siguiente:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br /&amp;gt;&lt;br /&gt;
 MOVIL_TIPO_RESET='10'&amp;lt;br /&amp;gt;&lt;br /&gt;
 MOVIL_CAD_RESET='notify_yealink'&amp;lt;br /&amp;gt;&lt;br /&gt;
 MdintzRes='OK'&lt;br /&gt;
&lt;br /&gt;
El usuario con el login numérico 20001 se ha &amp;quot;movido&amp;quot; a la extensión 25001&lt;br /&gt;
&lt;br /&gt;
Ahora ''nos quitamos de esa extensión mediante el siguiente comando:''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenSaleUsuarioMovil 25001'''&lt;br /&gt;
&lt;br /&gt;
Resultado del comando:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MOVIL_TIPO_RESET='10'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MOVIL_CAD_RESET='notify_yealink'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzRes='OK'&lt;br /&gt;
&lt;br /&gt;
Las pruebas anteriores han sido '''con extensiones con movilidad y con usuario con/sin&lt;br /&gt;
propietario.'''&lt;br /&gt;
&lt;br /&gt;
Ahora las realizamos '''con extensiones sin movilidad'''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenEntraUsuarioMovil 25002 20001 1234'''&lt;br /&gt;
&lt;br /&gt;
Obteniendo:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzRes='movil_error_datos'&lt;br /&gt;
&lt;br /&gt;
Como era lo previsible no nos deja &amp;quot;movernos&amp;quot; a esa extensión ya que no tiene movilidad.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''&amp;lt;u&amp;gt;Si un usuario ya se ha movido a una extensión no se puede mover a otra si no es deslogandose de esta antes.&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Esta línea se comenta porque se ha preparado el sistema para que los ususarios se puedan logar en una nueva extensión y el sistema lo deslogue de la primera a la que se movió. La variable que controla este funcionamiento es MD_AUTODES, con dos posibles valores:&lt;br /&gt;
0, para que el usuario deba deslogarse de una extensión para logarse en otra.&lt;br /&gt;
1, para que sea el sistema el que deslogue automátiamente al usuario cuando cambia de una extensión de movilidad a otra.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;Si un usuario ya se ha movido a una extensión y se mueve a otra, el sistema lo deslogará de la primera para logarlo en la segunda.&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenEntraUsuarioMovil 21000 20001 1234'''&lt;br /&gt;
&lt;br /&gt;
Con salida:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MOVIL_EXTEN='25001'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MDintzRes='movil_ya_login'&lt;br /&gt;
&lt;br /&gt;
'''* Dialplan'''&lt;br /&gt;
&lt;br /&gt;
Para llamar a la función de movilidad hay que marcar el '''9992.'''&lt;br /&gt;
&lt;br /&gt;
 Nota.- Para comprobar que se realiza todo correctamente habría que mirar las trazas de Asterisk&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Grabación ===&lt;br /&gt;
&lt;br /&gt;
La grabación en '''''VIVA'''''it Call está diseñada para ser lo mas flexible posible.&lt;br /&gt;
&lt;br /&gt;
====Configuración====&lt;br /&gt;
&lt;br /&gt;
Si deseamos grabar, debemos activar que alguno de los dispositivos/elementos que intervienen en la llamada se grabe.&lt;br /&gt;
&lt;br /&gt;
Estos dispositivos/elementos son:&lt;br /&gt;
&lt;br /&gt;
* Nodo.&lt;br /&gt;
* Usuario con Centralita.&lt;br /&gt;
* Agente.&lt;br /&gt;
* Grupo ACD corporativo y de Contact Center.&lt;br /&gt;
* Enlace exterior.&lt;br /&gt;
* Extensión.&lt;br /&gt;
* Facilidades.&lt;br /&gt;
* Grupo: grupo de salto o grupo de operadoras.&lt;br /&gt;
* Sala de conferencia.&lt;br /&gt;
* VDN corporativo y de Contact Center.&lt;br /&gt;
* Pre-rutas.&lt;br /&gt;
&lt;br /&gt;
Por otro lado necesitaremos que la llamada pase por un nodo que sea grabador, es decir, que si la llamada esta configurada para que se grabe pero no pasa por ningún nodo grabador, la llamada no se grabará.&lt;br /&gt;
&lt;br /&gt;
Al configurar un nodo existen cuatro campos que intervienen en la grabación.&lt;br /&gt;
&lt;br /&gt;
''''Grabador''''&lt;br /&gt;
&lt;br /&gt;
Se configura en el portal en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Este campo corresponde con el campo [[BD.COM_NODOS#B_ES_GRABADOR|B_ES_GRABADOR]] de la tabla [[BD.COM_NODOS|COM_NODOS]] , este campo define si el nodo va a grabar las llamas que pasen por el que necesiten ser grabadas y no se estén grabando ya.&lt;br /&gt;
&lt;br /&gt;
Es un campo booleano los posibles valores en el portal son si/no y en la base de datos 1/0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''''Modo grabación infraestructura''''&lt;br /&gt;
&lt;br /&gt;
Su configuración se realiza en el portal, en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Este campo define como está configurada la infraestructura, este campo existe por compatibilidad con '''''VIVA'''''it suite y para poder configurar la grabación bajo demanda.&lt;br /&gt;
&lt;br /&gt;
Este campo corresponde con el campo [[BD.COM_NODOS#E_MODO_GRABACION_INFRAESTRUCTURA|E_MODO_GRABACION_INFRAESTRUCTURA]] de la tabla [[BD.COM_NODOS|COM_NODOS]], Este campo usa los valores del enumerado BD.ENUM.TModoGrabacionInfraestructura|TModoGrabacionInfraestructura]].&lt;br /&gt;
&lt;br /&gt;
La formula que se seguiría para ver si una llamada se graba en ese nodo es:&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 (NODO.E_MODO_GRABACION_INFRAESTRUCTURA) AND (NODO.B_ENRU_GRABAR OR CEN_PRE_RUTA.B_ENRU_GRABAR OR &amp;quot;OBJETO&amp;quot;.B_ENRU_GRABAR)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Que sería que si la infraestructura esta en NoGraba no se graba nada de lo que se rute en ese nodo y en cualquiera de los 2 otros caso (GrabaTodo o GrabaPorPeticion) se grabaría dependiendo de la configuración del Nodo, la ruta o el objeto en cuestión (preruta, grupo ACD, extension,...).&lt;br /&gt;
&lt;br /&gt;
''''Grabar enrutamiento''''&lt;br /&gt;
&lt;br /&gt;
Se configura en el portal en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Este campo define si van a grabar las llamadas que se enruten en este nodo.&lt;br /&gt;
&lt;br /&gt;
Campo [[BD.COM_NODOS#E_ENRU_GRABAR|E_ENRU_GRABAR]] de la tabla [[BD.COM_NODOS|COM_NODOS]] que usa los valores del enumerado [[BD.ENUM.TTipoEnruGrabar|TTipoEnruGrabar]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''''RecordCentral''''&lt;br /&gt;
&lt;br /&gt;
Se configura en el portal en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Define que instancia del recordCentral es la encargada de tratar las grabaciones de este nodo.&lt;br /&gt;
&lt;br /&gt;
Para aumentar el rendimiento a la hora de traerse las grabaciones, se pueden definir varias instancias de proceso recordCentral, este campo define cual de estas instancias se encargara de este nodo.&lt;br /&gt;
&lt;br /&gt;
====Vivait Tracker====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL LA ÚNICA REFERENCIA A VIVAIT TRACKER EN LA DOCUMENTACIÓN &amp;quot;Vivait supervisor&amp;quot; QUE TENGO DICE LO SIGUIENTE. &amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Desde '''''VIVA'''''it Supervisor,  que es la aplicación dirigida a Supervisores, ofrece la posibilidad de supervisar y gestionar grupos ACD, agentes, asignaciones, prioridades,etc. Se puede obtener acceso directo a las aplicaciones de grabación ('''''VIVA'''''it tracker) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL FIN EXPLICACIÓN. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL De la documentacion creada por ivan. &amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Esquematico actual del proyecto tracker &lt;br /&gt;
[[Archivo:Esquematico_tracker_1.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1º El tracker web llama al web service Remote login para iniciar sesión y determinar si tiene permisos para la escucha y descarga de grabaciones.&lt;br /&gt;
&lt;br /&gt;
2º Si la ubicación de la grabación es local, mira la ruta de esta y se procede a la escucha o descarga de esta.&lt;br /&gt;
&lt;br /&gt;
3º Si la ubicación de la grabación es remota, entra en escena el proxy. Es el que realiza la petición.&lt;br /&gt;
&lt;br /&gt;
4º Si utilizamos el tracker windows, este, como el tracker web, llama primero al web service remote login para la autenticación y tema de Permisos.&lt;br /&gt;
&lt;br /&gt;
5º Para descargar o escuchar una grabación desde el tracker windows, se llama al web service servidor de grabaciones pasándole simplemente el ID de segmento.mp3. Este web service, con el ID de segmento, se encarga de determinar la ubicación de la grabación.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL De la documentación creada por ivan. &amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Esquematico actual del proyecto tracker &lt;br /&gt;
[[Archivo:Esquematico_tracker_2_https.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1º El tracker web llama al web service Remote login para iniciar sesión (comunicación https) y determinar si tiene permisos para la escucha y descarga de grabaciones. Se elimina el proxy&lt;br /&gt;
&lt;br /&gt;
2º Si la ubicación de la grabación es local, mira la ruta de esta y se procede a la escucha o descarga de esta.&lt;br /&gt;
&lt;br /&gt;
3º Si la ubicación de la grabación es remota, se realiza una petición al host remoto. El tipo de petición vendrá fijada por base de datos (http, https, ftp,ftps)&lt;br /&gt;
&lt;br /&gt;
4º Si utilizamos el tracker windows, este, como el tracker web, llama primero al web service remote login para la autenticación y tema de permisos (comunicación https extremo a extremo).&lt;br /&gt;
&lt;br /&gt;
5º Para descargar o escuchar una grabación desde el tracker windows, se llama al web service servidor de grabaciones pasándole simplemente el ID de segmento.mp3. Este web service, con el ID de segmento, se encarga de determinar la ubicación de la grabación.&lt;br /&gt;
&lt;br /&gt;
[[#Grabación_(Vivait_Tracker)| Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operación_plataforma_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
=== Enrutamiento ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Enrutamiento.png|885px |center]]&lt;br /&gt;
&lt;br /&gt;
==== Funcionamiento ====&lt;br /&gt;
El proceso de enrutamiento, como vemos en el esquemático, se compone de dos fases:&lt;br /&gt;
&lt;br /&gt;
# Preenrutameinto, que se encarga de tratar todas las llamadas&lt;br /&gt;
# Enrutamiento externo, que tiene módulos dedicados al enrutamiento hacia:&lt;br /&gt;
:*Enlaces externos. &lt;br /&gt;
:*Extensiones. &lt;br /&gt;
:*Usuarios de telefonía corporativa. &lt;br /&gt;
:*Facilidades. &lt;br /&gt;
:*Salas de conferencia. &lt;br /&gt;
:*Agentes de grupos ACD. &lt;br /&gt;
:*Grupos ACD. &lt;br /&gt;
:*Vdn. &lt;br /&gt;
:*Buzones para dejar mensaje. &lt;br /&gt;
:*Buzones para su gestión.&lt;br /&gt;
&lt;br /&gt;
Se asume que existen rutas directas entre todos los nodos de la red.&lt;br /&gt;
&lt;br /&gt;
Se asume que están directamente enrutadas todas las direcciones IP involucradas, tanto nodos, como terminales.&lt;br /&gt;
&lt;br /&gt;
Se asume que todas las facilidades están disponibles en todos los nodos, aunque es posible que la implementación sea diferente entre ellos.&lt;br /&gt;
&lt;br /&gt;
Los datos de entrada básicos al proceso de enrutamiento (pdEntr) son:&lt;br /&gt;
* Dispositivo&lt;br /&gt;
* Cola&lt;br /&gt;
* Origen&lt;br /&gt;
* Nodo entrada&lt;br /&gt;
* UCID&lt;br /&gt;
* CALLER_ID_NAME&lt;br /&gt;
* CALLER_ID_NUM&lt;br /&gt;
* DNIS&lt;br /&gt;
* Desvío por dialplan&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A partir de los datos de entrada básicos anteriores se pueden deducir los siguientes valores:&lt;br /&gt;
* Sede del dispositivo de entrada&lt;br /&gt;
* Sede del nodo de entrada&lt;br /&gt;
* Ancho de banda disponible en la sede del dispositivo&lt;br /&gt;
* Ancho de banda disponible en la sede del nodo&lt;br /&gt;
* Categoría entrante&lt;br /&gt;
* Valor del eje1 asignado a la llamadas&lt;br /&gt;
* CALLER_ID_NUM_EXTERNO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los datos de salida globales del proceso de enrutamiento (pdSale) son:&lt;br /&gt;
* Categoría saliente&lt;br /&gt;
* Código de cliente (opcional)&lt;br /&gt;
* Tipo de destino:	&lt;br /&gt;
:* No existe&lt;br /&gt;
:* Ruta externa&lt;br /&gt;
:* Extensión&lt;br /&gt;
:* Usuario de telefonía corporativa&lt;br /&gt;
:* Facilidad&lt;br /&gt;
:* Salas de conferencia&lt;br /&gt;
:* Agentes de grupos ACD&lt;br /&gt;
:* Grupos ACD&lt;br /&gt;
:* VDN&lt;br /&gt;
:* Buzón para dejar mensaje. &lt;br /&gt;
:* Buzón para dejar mensaje por ocupado. &lt;br /&gt;
:* Buzón para dejar mensaje por no contestación. &lt;br /&gt;
:* Buzón para su gestión.&lt;br /&gt;
* Destinatario (cuando se trata de un usuario o de un agente)&lt;br /&gt;
* Valor del eje1 asignado a la llamada&lt;br /&gt;
* Buzón de las extensiones y usuarios que los tengan asignados&lt;br /&gt;
* Si el buzón está en nodo distinto al de entrada&lt;br /&gt;
* DESVIO_INCONDICIONAL (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable) &lt;br /&gt;
* DESVIO_NO_CONTESTA (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable) &lt;br /&gt;
* DESVIO_OCUPADO (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable) &lt;br /&gt;
* DESVIO_FUERA_SERV (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los datos de salida para cada una de las posibles rutas en orden son (nn va de 01 maxRutas [nn son dos dígitos decimales]):&lt;br /&gt;
* CONTADOR_ABDE_nn (contador para control de ancho de banda en sede de dispositivo de entrada).  &lt;br /&gt;
* CONTADOR_ABNE_nn (contador para control de ancho de banda en sede de nodo de entrada).  &lt;br /&gt;
* CONTADOR_ABDS_nn (contador para control de ancho de banda en sede de dispositivo de salida).  &lt;br /&gt;
* CONTADOR_ABNS_nn (contador para control de ancho de banda en sede de nodo de salida).  &lt;br /&gt;
* CALLER_NAME_SAL_nn , puede salir de una extensión, un usuario o de un agente. &lt;br /&gt;
* CALLER_NUM_SAL_nn, puede salir de una extensión, un usuario o de un agente.  &lt;br /&gt;
* DESTINO_SAL_nn , en general, el valor C_NOMBRE o destino de salida.  &lt;br /&gt;
* RUTA_NODO_nn , Cadena de marcación para ir la nodo que soporta DESTINO_SAL_nn, si es distinto del nodo de entrada.  &lt;br /&gt;
* RUTA_SAL_nn &lt;br /&gt;
:* Extensión: cadena marcación. &lt;br /&gt;
:* Facilidad: E_CODIGO_FACILIDAD obtenido de la tabla CEN_FACILIDADES. &lt;br /&gt;
:* Usuario: cadena marcación de la extensión asignada al usuario en movilidad o en propiedad. &lt;br /&gt;
:* Agente: cadena marcación de la extensión a la que está conectado el agente. &lt;br /&gt;
:* Ruta externa: contexto que gestiona la llamada saliente.&lt;br /&gt;
&lt;br /&gt;
=====Fase preenrutamiento =====&lt;br /&gt;
&lt;br /&gt;
La fase de preenrutamiento (basada en la tabla CEN_PRE_RUTA) se usa en todas las llamadas entrantes, tanto internas, como externas. Permite desarrollar un “prerouting” estándar para ACD y para telefonía corporativa.&lt;br /&gt;
&lt;br /&gt;
Los datos de entrada al proceso de enrutamiento son iguales a los del proceso global de enrutamiento, excepto en que este proceso no usa el nodo de entrada ya que es independiente de éste.&lt;br /&gt;
&lt;br /&gt;
Los datos de salida de la fase de preenrutamiento:&lt;br /&gt;
* D_CATEGORIA_SAL &lt;br /&gt;
* COD_CLIENTE (opcional) &lt;br /&gt;
* TIPO_DESTINO_SAL&lt;br /&gt;
:* No existe.   &lt;br /&gt;
:* Volver a preenrutar.   &lt;br /&gt;
:* Ruta externa.   &lt;br /&gt;
:* Extensión.   &lt;br /&gt;
:* Usuario de telefonía corporativa.   &lt;br /&gt;
:* Facilidad.   &lt;br /&gt;
:* Sala de conferencia.   &lt;br /&gt;
:* Agente de grupos ACD.   &lt;br /&gt;
:* Grupos ACD.   &lt;br /&gt;
:* VDN.   &lt;br /&gt;
:* Buzón para dejar mensaje.   &lt;br /&gt;
:* Buzón para dejar mensaje por ocupado.   &lt;br /&gt;
:* Buzón para dejar mensaje por no contestación.   &lt;br /&gt;
:* Buzón para su gestión. &lt;br /&gt;
* COD_CLIENTE &lt;br /&gt;
* Valor del eje1 asignado a la llamada &lt;br /&gt;
* CALLER_NAME &lt;br /&gt;
* CALLER_NUM &lt;br /&gt;
* DESTINO&lt;br /&gt;
&lt;br /&gt;
El proceso de preenrutamiento consiste en seleccionar un único registro de la tabla CEN_PRE_RUTA y, con sus valores y con los valores de entrada al proceso, generar los datos de salida.&lt;br /&gt;
&lt;br /&gt;
Un posible tipo de salida es &amp;quot;Volver a preenrutar&amp;quot;. Esto permite realimentar el proceso un máximo de &amp;quot;max_pre_ruta_regs&amp;quot; veces (en archivo .conf) para simplificar configuración. Sólo tiene sentido realimentar si se ha hecho alguna modificación en los datos de selección de registro, ya que en caso contrario se produciría un bucle que el proceso de preenrutamiento es capaz de detectar y evitar.&lt;br /&gt;
&lt;br /&gt;
Para elegir el registro de CEN_PRE_RUTA, se tienen en cuenta los datos de entrada de la llamada, de modo que se cumpla con todos los puntos siguientes: &lt;br /&gt;
* ID_CATEGORIA_ENT igual a la del dispositivo de entrada.  &lt;br /&gt;
* CALLER_NUM de entrada  &lt;br /&gt;
:* Debe comenzar por la cadena C_ORIGEN_ENT_PREF o C_ORIGEN_ENT_PREF=NULL, con menos prioridad. Es conveniente rellenar este dato del modo más restrictivo que sea posible, independientemente de C_ORIGEN_ENT_EXPR. Ello permite disminuir el uso innecesario de recursos de evaluación de expresiones regulares.    &lt;br /&gt;
:* Debe de tener un número de dígitos igual o superior a N_ORIGEN_ENT_MIN_DIGITOS, si este valor no es NULL o cero.    &lt;br /&gt;
:* Debe de tener un número de dígitos igual o inferior a N_ORIGEN_ENT_MAX_DIGITOS, si este valor no es NULL o cero.    &lt;br /&gt;
:* Debe cumplir la expresión regular C_ORIGEN_ENT_EXPR, si ésta no es NULL.  &lt;br /&gt;
* DNIS empiece con C_DESTINO_ENT_PREF o C_DESTINO_ENT_PREF=NULL. Es conveniente rellenar este dato del modo más restrictivo que sea posible, independientemente de C_DESTINO_ENT_EXPR. Ello permite disminuir el uso innecesario de recursos de evaluación de expresiones regulares.  &lt;br /&gt;
* Si varias entradas cumplen la condición anterior, se prueba primero la que el campo C_DESTINO_ENT_PREF tenga una longitud mayor y, de entre éstas, la que C_ORIGEN_ENT_PREF tenga una longitud mayor.  &lt;br /&gt;
* DNIS tenga un número de dígitos igual o superior a N_DESTINO_ENT_MIN_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* DNIS tenga un número de dígitos igual o inferior a N_ORIGEN_ENT_MIN_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* DNIS cumpla la expresión regular C_DESTINO_ENT_EXPR, si ésta no es NULL. &lt;br /&gt;
&lt;br /&gt;
Si no se encuentra ninguna entrada adecuada, quiere decir que es una llamada prohibida y se devuelve el tipo de destino &amp;quot;No existe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Puede conseguirse un destino &amp;quot;por defecto&amp;quot; diferente, creando una entrada que encaje siempre para cada categoría: C_ORIGEN_ENT, C_ORIGEN_ENT_MIN_DIGITOS, C_ORIGEN_ENT_MAX_DIGITOS, C_ORIGEN_ENT_EXPR, C_DESTINO_ENT_PREF, N_DESTINO_ENT_MIN_DIGITOS, N_DESTINO_ENT_MAX_DIGITOS y C_DESTINO_ENT_EXPR a valor NULL.&lt;br /&gt;
&lt;br /&gt;
Una vez elegida una entrada, ésta puede transformar o sustituir el valor de ID_CATEGORIA, CALLER_NAME, CALLER_NUM, DESTINO, COD_CLIENTE y/o EJE1_MSK a la salida del proceso. &lt;br /&gt;
&lt;br /&gt;
Si ID_CATEGORIA_SAL es cero, se propaga a la salida el valor de la entrada. En caso contrario, se sustituye. &lt;br /&gt;
&lt;br /&gt;
Si C_CALLER_NAME está vacío, se mantiene el valor hubiese a la entrada. En caso contrario, se sustituye. &lt;br /&gt;
&lt;br /&gt;
C_CALLER_NUM puede contener una cadena que identifica el nuevo CALLER_NUM. Además, si la cadena comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo CALLER_NUM es igual al de entrada al proceso. &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo CALLER_NUM es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo. &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;. &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al CALLER_NUM de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo CALLER_NUM de salida. Si la expresión regular no se cumpliese, se propagará el valor de entrada al proceso. &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante que sustituye el valor a la entrada.&lt;br /&gt;
&lt;br /&gt;
Cada vez que se utilice una preruta, se incrementará el valor de N_CONTA si el valor de N_UMBRAL es mayor que cero.&lt;br /&gt;
&lt;br /&gt;
Un valor N_UMBRAL mayor que cero permite modificar el destino de salida cuando el valor de actual de N_CONTA (antes de incrementarse) supere o sea igual el valor de N_UMBRAL. Si se cumple la condición indicada, se usa como destino tras el preenrutamiento, los valores de los campos E_TIPO_DESTINO_SAL_2 y C_DESTINO_SAL_2.&lt;br /&gt;
&lt;br /&gt;
Si el valor de N_UMBRAL es menor o igual a cero o si N_CONTA es inferior a N_UMBRAL, se usa como destino tras el preenrutamiento, los valores de los campos E_TIPO_DESTINO_SAL_1 y C_DESTINO_SAL_1.&lt;br /&gt;
Con este mecanismo de N_CONTA y N_UMBRAL, se pretende facilitar el discriminar a los llamantes reincidentes, cuando sea necesario. &lt;br /&gt;
&lt;br /&gt;
Un proceso periódico externo debe encargarse de poner a cero o decrementar el valor de N_CONTA.&lt;br /&gt;
Como resultado de los procesos de filtrado y de verificación anteriores, se habrá obtenido un TIPO_DESTINO_SAL y un C_DESTINO_SAL a partir de los campos con sufijo &amp;quot;_1&amp;quot; o &amp;quot;_2&amp;quot;, con una metodología similar al caso C_CALLER_NUM.&lt;br /&gt;
&lt;br /&gt;
C_DESTINO_SAL_x puede contener cadena que permite obtener el nuevo destino. Además, si la cadena comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo destino es igual al de entrada al proceso.  &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo destino es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo.  &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;.  &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al destino de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo destino de salida. Si la expresión regular no se cumpliese, quiere decir que es una llamada prohibida y se encaminará hacia una facilidad por defecto.  &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante que sustituye el valor a la entrada. &lt;br /&gt;
Información de salida del proceso de preenrutamiento: Cuando TIPO_DESTINO_SAL_x toma los valores que se indican, el proceso global de enrutamiento sólo requiere de preenrutamiento y la información a devolver se obtiene dependiendo de TIPO_DESTINO_SAL_x: &lt;br /&gt;
* No existe: Se asume que no se conoce un destino para los datos de entrada, por lo que la llamada se encamina hacia una facilidad por defecto que gestiona su tratamiento.  &lt;br /&gt;
* Extensión: A partir de las tablas CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar la extensión en el nodo principal y en el secundario.  &lt;br /&gt;
* Facilidad: A partir de las tablas CEN_DISPOSITIVOS, CEN_FACILIDADES y CEN_NODOS.  &lt;br /&gt;
* Usuario de telefonía corporativa: A partir de las tablas CEN_USUARIOS, CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar al usuario en el nodo principal y en el secundario de la extensión que corresponde en base a movilidad, con prioridad, o en base a propiedad.  El caso de movilidad no se tiene en cuenta si el proceso de enrutamiento se realiza en &amp;quot;modo supervivencia&amp;quot;.  &lt;br /&gt;
* Sala conferencia: A partir de las tablas CEN_SALAS_CONFERENCIAS y CEN_NODOS.  &lt;br /&gt;
* Agente de ACD: A partir de las tablas ACD_USUARIOS, DAT_TR_ACD_EXTENSIONES, CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar al agente en el nodo principal y en el secundario.  &lt;br /&gt;
* VDN: A partir de las tablas ACD_VDN y CEN_NODOS, se devolverán los valores que permiten alcanzar al VDN en su nodo.  &lt;br /&gt;
* Grupo ACD: A partir de las tablas ACD_COLAS y CEN_NODOS, se devolverán los valores que permiten alcanzar al grupo ACD en su nodo. &lt;br /&gt;
&lt;br /&gt;
El campo B_GENERAR_SEGMENTO de la tabla CEN_PRE_RUTA indica al proceso de preenrutamiento que es preciso generar un segmento de tipo &amp;quot;preenrutamiento&amp;quot;. En el segmento generado, se rellena el campo C_ETIQUETA1 del nuevo segmento con el valor que contiene el campo homónimo del registro asociado en la tabla CEN_LISTA_PRE_RUTAS.&lt;br /&gt;
&lt;br /&gt;
===== Fase de enrutamiento en casos en que el destino no es externo =====&lt;br /&gt;
Datos de entrada al proceso de enrutamiento externo: iguales a los de salida del proceso de preenrutamiento (pdPreSale), uniéndose a éstos los datos globales de entrada al proceso (pdEntr). &lt;br /&gt;
&lt;br /&gt;
Datos de salida de la fase de enrutamiento: iguales que los del proceso global de enrutamiento (pdSale). &lt;br /&gt;
&lt;br /&gt;
Específicamente y sólo para los casos en que el destino es una extensión (tipo de destino extensión, usuario de telefonía corporativa o agente) es cuando son válidos los datos correspondientes al buzón asociado y los datos de los posibles desvíos previstos. &lt;br /&gt;
&lt;br /&gt;
También en este caso, se prevén dos posibles rutas, una se corresponde con el acceso a la extensión en el nodo principal de ésta y la otra en el nodo secundario. &lt;br /&gt;
&lt;br /&gt;
En el resto de tipos de destino, sólo se prevé una ruta que puede incluir o no un enlace internodal. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Fase de enrutamiento en el caso de destino externo =====&lt;br /&gt;
Datos de entrada al proceso de enrutamiento externo: iguales a los de salida del proceso de preenrutamiento (pdPreSale), uniéndose a éstos los datos globales de entrada al proceso (pdEntr). &lt;br /&gt;
Datos de salida de la fase de enrutamiento: iguales que los del proceso global de enrutamiento (pdSale). &lt;br /&gt;
&lt;br /&gt;
Se elige los primeros &amp;quot;max_ruta&amp;quot; registros (configurado en archivo .conf) en CEN_DESTINOS_EXTERNOS unido con CEN_RELACION_DESTINOS_ENLACES_EXTERNOS que, teniendo en cuenta los datos de entrada al proceso de enrutamiento, cumpla con todos los puntos siguientes: &lt;br /&gt;
* ID_CATEGORIA_ENT igual a la de salida del proceso de preenrutamiento.  &lt;br /&gt;
* C_DESTINO_SAL de proceso de preenrutamiento empiece con C_DESTINO_ENT_PREF. &lt;br /&gt;
* Si varias entradas cumplen la condicion anterior, se prueba primero la que el campo C_DESTINO_ENT_PREF tenga una longitud mayor.  &lt;br /&gt;
* C_DESTINO_SAL tenga un número de dígitos igual o superior a N_DESTINO_ENT_MIN_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* C_DESTINO_SAL tenga un número de dígitos igual o inferior a N_DESTINO_ENT_MAX_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* C_DESTINO_SAL cumpla la expresión regular C_DESTINO_ENT_EXPR, si ésta no es NULL. &lt;br /&gt;
&lt;br /&gt;
Aparte de la longitud del campo C_DESTINO_ENT_PREF, se usa N_PRIORIDAD como campo para ordenar los registros y seleccionar lo &amp;quot;max_ruta&amp;quot; primeros. &lt;br /&gt;
&lt;br /&gt;
Una vez que un registro es válido, se descartan todos los registros cuyo C_DESTINO_ENT_PREF es diferente del primero seleccionado. &lt;br /&gt;
&lt;br /&gt;
Como resultado de los procesos de filtrado y de verificación anteriores, se habrá obtenido hasta un máximo de &amp;quot;max_rutas&amp;quot; valores para posibles rutas. Las posibles propagaciones y transformaciones en los datos de cada ruta son función de los datos de cada registro seleccionado: &lt;br /&gt;
&lt;br /&gt;
CALLER_NAME_nn: Si C_CALLER_NAME está vacío, se propaga el valor de entrada. En caso contrario, se sustituye. &lt;br /&gt;
&lt;br /&gt;
CALLER_NUM_nn: Sale de C_CALLER_NUM que puede contener una cadena que identifica el nuevo CALLER_NUM_n. Además, si C_CALLER_NUM comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo CALLER_NUM_nn es igual al de entrada al proceso.  &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo CALLER_NUM_nn es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo.  &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;.  &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al CALLER_NUM de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo CALLER_NUM de salida. Si la expresión regular no se cumpliese, se propaga el valor de entrada al proceso.  &lt;br /&gt;
* &amp;quot;&amp;gt;&amp;quot; Si existe valor para CALLER_NUM_EXTERNO, se propagará éste a la salida. En caso contrario y si no está vacía la cadena que queda al eliminar el prefijo &amp;quot;&amp;gt;&amp;quot;, se susituye en la salida por el valor de la cadena sin prefijo. Si la cadena estuviese únicamente constituida por el valor &amp;quot;&amp;gt;&amp;quot;, se propaga el valor de entrada.  &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante sin ninguna modificación. &lt;br /&gt;
&lt;br /&gt;
C_DESTINO_SAL_nn: Se obtiene a partir de C_DESTINO_SAL que puede contener una cadena que identifica el nuevo destino. Además, si la cadena comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo destino es igual al de entrada al proceso. &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo destino es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo. &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;. &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al destino de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo destino de salida. Si la expresión regular no se cumpliese, se propaga el valor de entrada al proceso. &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante sin ninguna modificación. &lt;br /&gt;
&lt;br /&gt;
RUTA_NODO_nn: Sólo se usa si el nodo de salida es diferente del nodo de entrada. Contiene la cadena de marcación para ir la nodo que soporta DESTINO_SAL_nn. Sale del campo C_FORMATO_DIAL (sustituyendo variables) correspondiente al tipo de dispositivo del enlace exterior. &lt;br /&gt;
&lt;br /&gt;
RUTA_SAL_nn: Es el campo C_DATO_ASTERISK obtenido a partir del registro en la tabla CEN_ENLACE_EXTERIOR que se corresponde con ID_ENLACE_EXTERIOR de la tabla CEN_RELACION_DESTINOS_ENLACES_EXTERNOS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Control de ancho de banda ===&lt;br /&gt;
&lt;br /&gt;
Para el control de ancho de banda, primero hemos de tener en consideración que una llamada puede tener asociadas hasta cuatro sedes&lt;br /&gt;
:* Sede del terminal origen (terminal A)&lt;br /&gt;
:* Sede del nodo de registro del terminal origen (nodo A)&lt;br /&gt;
:* Sede del terminal destino (terminal B)&lt;br /&gt;
:* Sede del nodo de registro del terminal destino (nodo B)&lt;br /&gt;
&lt;br /&gt;
Además hemos de tener en cuenta que el audio de la conversación podrá ir:&lt;br /&gt;
:* De manera directa entre terminal A y terminal B&lt;br /&gt;
:* De manera indirecta, a través de los nodos A y B&lt;br /&gt;
&lt;br /&gt;
[[Archivo:ancho de banda.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Cuando se va a cursar una llamada de terminal A a terminal B, el proceso de enrutamiento del nodo A devuelve 4 variables de canal al dialplan:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! Variable!!Campos &lt;br /&gt;
|- &lt;br /&gt;
|R_ABDE_xx||R = Variable de rutas --- AB = ancho de banda --- D = dispositivo --- E = Entrante --- xx = de 0 a 3&lt;br /&gt;
|-&lt;br /&gt;
|R_ABNE_xx||R = Variable de rutas --- AB = ancho de banda --- N = nodo --- E = Entrante --- xx = de 0 a 3&lt;br /&gt;
|-&lt;br /&gt;
|R_ABDS_xx||R = Variable de rutas --- AB = ancho de banda --- D = dispositivo --- S = Saliente --- xx = de 0 a 3&lt;br /&gt;
|- &lt;br /&gt;
|R_ABNS_xx||R = Variable de rutas --- AB = ancho de banda --- N = nodo --- S = Saliente --- xx = de 0 a 3&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El valor de cada variable es una cadena del tipo '''AB.wwww.xxxx.y.z''' donde cada valor es:&lt;br /&gt;
:* '''wwww''' --&amp;gt; id de sede&lt;br /&gt;
:* '''xxxx''' --&amp;gt; ancho de banda total de la sede&lt;br /&gt;
:* '''y''' --&amp;gt; número de llamadas a sumar si conversación directa&lt;br /&gt;
:* '''z''' --&amp;gt; número de llamadas a sumar si conversación indirecta&lt;br /&gt;
&lt;br /&gt;
Por otro lado tenemos que tener en cuenta que el dialplan tiene control de las llamadas que cada sede puede cursar&lt;br /&gt;
&lt;br /&gt;
De esta forma, cuando existe una nueva llamada el dialplan aplica la fórmula, suma el resultado al número de llamadas en curso y lo compara con el máximo...si el resultado es mayor que le máximo la llamada no se cursará por congestión&lt;br /&gt;
&lt;br /&gt;
Configuraremos el ancho de banda por sede en el portal de administración y el consumo que hace cada llamada en la variable '''AB_CONSUMO_LLAMADA''' del fichero '''ext_MDtel_particular.conf''' de cada nodo de conmutación; el valor por defecto es 32&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Puesto de trabajo ==&lt;br /&gt;
El puesto de trabajo del agente en la plataforma '''''VIVA'''''it  (para el producto '''''VIVA'''''it Suite) estará compuesto por:&lt;br /&gt;
* PC (típicamente windows) en el que reside la aplicación '''''VIVA'''''it Desk&lt;br /&gt;
* Terminal telefónico con extensión física asociada.&lt;br /&gt;
&lt;br /&gt;
Para más información [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Puestos | ver sección Portal de administración-VIVAit Suite ACD+ - Puestos]].&lt;br /&gt;
&lt;br /&gt;
=== Relación PC/teléfono en puesto de trabajo ===&lt;br /&gt;
&lt;br /&gt;
Existirá una relación única entre nombre PC y extensión física asociada, si bien los agentes se identificarán por su login que les acompaña al puesto de trabajo en el que se loguen&lt;br /&gt;
Existe un procedimiento documentado para la operativa de cambio de puesto de trabajo, en caso de ser necesario el cambio de PC o de teléfono de un puesto de trabajo.&lt;br /&gt;
==== Procedimiento para un cambio de puesto de trabajo ====&lt;br /&gt;
Se basa en una asignación de PC a teléfono relaccionando la extensión telefónica del terminal físico con el nombre del puesto de trabajo. La configuración de dicha asociación se realiza en el portal de administración de la plataforma. &lt;br /&gt;
&lt;br /&gt;
Cualquier cambio que se realice en terminal telefónico o PC de agente ha de mantener la asociación en el portal a efectos de permitir el funcionamiento del sistema.&lt;br /&gt;
&lt;br /&gt;
A continuación se reflejan los cambios más habituales:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cambio !! Procedimiento !! Punto de acción&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| Cambio de ubicación de un PC || Opción 1.- Renombrar el PC para que conserve el nombre que tenía el anterior en esa ubicación || PC de agente&lt;br /&gt;
|-&lt;br /&gt;
|  Opción 2.- Rehacer la asignación extensión/puesto || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot;| Instalación de PC nuevo en puesto existente || Opción 1.- Renombrar el PC para que conserve el nombre que tenía el anterior en esa ubicación || PC de agente&lt;br /&gt;
|-&lt;br /&gt;
| Opción 2.- Rehacer la asignación extensión/puesto || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| Cambio de nombre en un PC || Rehacer asignación extensión/puesto || Rehacer asignación extensión/puesto&lt;br /&gt;
|-&lt;br /&gt;
|Cambio de ubicación de un teléfono  || Rehacer la asignación extensión/puesto&lt;br /&gt;
 || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| Instalación de un teléfono nuevo en puesto existente || Rehacer la asignación extensión/puesto || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| Instalación de un nuevo puesto de agente|| Hacer asignación extensión/puesto || Portal de administración&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:relacion_puesto_agente.png|center|500px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Estructura de aplicaciones en puesto de trabajo ===&lt;br /&gt;
Las aplicaciones del puesto de trabajo pueden estar ubicadas en cualquier carpeta del sistema. Es importante tener en cuenta que los procesos de actualización, logs… escriben en dichas carpetas, por lo que el usuario de windows deberá tener permisos de lectura/escritura y borrado sobre dichas carpetas&lt;br /&gt;
La instalación del puesto de trabajo es muy liviana para el sistema; las aplicaciones ocupan poco espacio y no se modifican ficheros del sistema operativo (registry o similares)&lt;br /&gt;
Los ficheros importantes son&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Fichero !! Descrición&lt;br /&gt;
|-&lt;br /&gt;
| Vivait-desk.exe || Contiene la aplicación '''''VIVA'''''it Desk de agente&lt;br /&gt;
|-&lt;br /&gt;
| vivait_desk_dll.dll||Este fichero contiene controles sobre los formularios (controles de&lt;br /&gt;
texto, algunas reglas de obligatoriedad…)&lt;br /&gt;
|-&lt;br /&gt;
| nimitz.ini || Configuración del puesto de agente&lt;br /&gt;
|-&lt;br /&gt;
| lanzador.exe || Aplicación de actualización de versiones&lt;br /&gt;
|-&lt;br /&gt;
| lanzador.ini || Configuración del actualizador de aplicaciones&lt;br /&gt;
|-&lt;br /&gt;
| Carpeta forms || En esta carpeta están ubicados los formularios que se abren ante llamada entrante o saliente&lt;br /&gt;
|-&lt;br /&gt;
| Carpeta imágenes || Contiene las imágenes izquierda y derecha de la barra de '''''VIVA'''''it Desk&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Secciones de utilidad en nimitz.ini ===&lt;br /&gt;
&lt;br /&gt;
==== Configuración del puesto de agente ====&lt;br /&gt;
&lt;br /&gt;
El fichero nimitz.ini contiene la configuración del puesto de agente; sus principales parámetros son:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| |''' Fichero'''&lt;br /&gt;
|| '''Descripción'''&lt;br /&gt;
|-&lt;br /&gt;
|Sección [bd1]&lt;br /&gt;
||host=&amp;quot;ip_BBDD_tiempo_real&amp;quot;&lt;br /&gt;
puerto=&amp;quot;Nº puerto&amp;quot;&lt;br /&gt;
basedatos=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
usuario=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
clave=&amp;quot;UIk5jMY9PVX6ogg=&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Contiene información para la conexión a BBDD de tiempo real, en la que '''''VIVA'''''it Desk fundamentalmente inserta información&lt;br /&gt;
|-&lt;br /&gt;
|Sección [bd2]&lt;br /&gt;
||host=&amp;quot; ip_BBDD_replica &amp;quot;&lt;br /&gt;
puerto=&amp;quot;Nº puerto&amp;quot;&lt;br /&gt;
basedatos=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
usuario=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
clave=&amp;quot;UIk5jMY9PVX6ogg=&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Contiene información para la conexión a BBDD de réplica, en la que '''''VIVA'''''it Desk solo leerá información&lt;br /&gt;
|-&lt;br /&gt;
|Sección [telefono]&lt;br /&gt;
||pruebas=1 (Valores válidos 0 ó 1)&lt;br /&gt;
Activación de funcionalidad &amp;quot;servicio técnico&amp;quot; en '''''VIVA'''''it Desk.&lt;br /&gt;
&lt;br /&gt;
puesto=&amp;quot;Nombre puesto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Sección [trazas]&lt;br /&gt;
|| nivel=3&lt;br /&gt;
&lt;br /&gt;
archivo=1&lt;br /&gt;
&lt;br /&gt;
consola=0&lt;br /&gt;
&lt;br /&gt;
sobreescribir=1&lt;br /&gt;
&lt;br /&gt;
Activación de generación de ficheros de trazas &amp;quot;viva-desk.log&amp;quot; en carpeta de aplicaciones &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Parámetros en invocación a '''''VIVA'''''it Desk ===&lt;br /&gt;
&lt;br /&gt;
La aplicación '''''VIVA'''''it Desk puede ser invocada con una serie de parámetros que condicionan su funcionamiento; los parámetros son:&lt;br /&gt;
* Primer parámetro: Nombre del archivo .ini; usado como alternativa al fichero por defecto &amp;quot;nimitz.ini&amp;quot;&lt;br /&gt;
* Segundo parámetro: Nombre de puesto; usado como alternativa al nombre de puesto del ordenador&lt;br /&gt;
* Tercer parámetro: Nombre de login; para forzar un usuario; es de utilidad si el sistema está configurado como &amp;quot;confiar en sistema operativo&amp;quot;, en cuyo caso no permite seleccionar un login de agente para acceder a la aplicación&lt;br /&gt;
&lt;br /&gt;
=== Instalación y actualización de aplicaciones de puestos de trabajo ===&lt;br /&gt;
La instalación y actualización de las aplicaciones en el puesto de trabajo pasan por disponer de los ficheros “lanzador.exe” y “lanzador.ini” (debidamente configurado) dentro de la carpeta en la que se desee instalar.&lt;br /&gt;
Lanzando la aplicación “lanzador.exe” se instalará o actualizará el sistema. &lt;br /&gt;
&lt;br /&gt;
El fichero “lanzador.ini” tiene el siguiente aspecto:&lt;br /&gt;
 URL=&amp;quot;http://IP_Servidor:8180/WSActualizaXML/actualizar.xml&amp;quot;&lt;br /&gt;
 BASE_URL_DESCARGAS=&amp;quot;http://IP_servidor:8180/XMLFILES/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Servicio técnico en '''''VIVA'''''it Desk ===&lt;br /&gt;
La activación de la funcionalidad de servicio técnico en '''''VIVA'''''it Desk nos permite realizar sincronizaciones manuales de la aplicación y activar trazas a nivel de Base de Datos o a nivel de log sobre el propio '''''VIVA'''''it Desk. Pulsando el botón derecho del ratón sobre la barra '''''VIVA'''''it Desk accederemos a las capacidades de soporte técnico&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Funcionamiento de la plataforma en modo emergencia ==&lt;br /&gt;
== Accesos Web ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Aplicación !! Enlace&lt;br /&gt;
|-&lt;br /&gt;
|Portal de administración '''''VIVA'''''it Suite || http://ip_admin:8180/Vivait-Call&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker||http://ip_tracker:8180/Vivait-Tracker&lt;br /&gt;
|-&lt;br /&gt;
|Monitor Web||http://ip_monitor:8180/MonitorWeb&lt;br /&gt;
|-&lt;br /&gt;
|Monitorización Zabbix||http://ip_zabbix:80/zabbix&lt;br /&gt;
|-&lt;br /&gt;
|Base de datos tiempo real||http://ip_bbdd_tr:80/phpmyadmin/&lt;br /&gt;
|-&lt;br /&gt;
|Base de datos réplica||http://ip_bbdd_replica:80/phpmyadmin&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Permisos de aplicaciones ===&lt;br /&gt;
Se crean a través del '''portal de administración ''VIVA''it''' . Debe conocerse como funcionan los ejes [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Ejes| ver sección Portal de administracion - General - Ejes]] y que existen cuatro aplicaciones creadas en la plataforma:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:17_2 Pestaña Genera - Usuarios - Explicacion permisos.png|center]]&lt;br /&gt;
&lt;br /&gt;
La forma como dar permisos de aplicaciones a un usuario esta explicada en la [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Asignaci.C3.B3n_de_Permisos_de_Usuario_por_Administrador | sección  Portal de administracion - General - Usuarios ]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elementos monitorizados del sistema ==&lt;br /&gt;
===Generalidades de Zabbix===&lt;br /&gt;
====Zabbix ====&lt;br /&gt;
Zabbix es una solución de código abierto que ofrece características de monitorización avanzada de forma tecnica y para el negocio, para todo tipo de servidores, aplicaciones y equipos que forman parte de una red. La versión que utilizamos en '''md'''tel es Zabbix 2.2.2.&lt;br /&gt;
&lt;br /&gt;
Zabbix  monitoriza los  recursos  de un equipo en forma remota, permite centralizar la información en un servidor que permite visualizar el monitoreo, cuenta con una interfaz de administración vía web y utiliza un mecanismo flexible de la notificación que permita que los usuarios configuren las alarmas basadas email para informar virtualmente cualquier acontecimiento. Esto permite una reacción rápida a los problemas del servidor. &lt;br /&gt;
&lt;br /&gt;
Para acceder al servidor Zabbix abrimos el navegador y ponemos la dirección de red (IP) de la maquina donde se encuentra instalado el servidor de Zabbix seguido de &amp;quot;/Zabbix.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Direccion.IP.Zabbix.Server/zabbix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Zabbix posee documentación tanto en wiki, foros y comunidades.Para ampliar la información se puede visitar:&lt;br /&gt;
[[http://www.zabbix.com Sitio oficial de Zabbix]]&lt;br /&gt;
===== Glosario Zabbix =====&lt;br /&gt;
Se trata de una lista de conceptos básicos de Zabbix, pero para ampliar la información sobre otros términos, visite el [[http://www.zabbix.com Sitio oficial de Zabbix]].&lt;br /&gt;
* '''host''' &lt;br /&gt;
:En Zabbix, un host es una entidad que define el elemento en red que se desea monitorizar/supervisar activamente sus recursos locales y aplicaciones. Este puede ser una impresa, router, switch, sensores de temperatura, un servidor, un ordenador,etc, o también una aplicación. La característica de un host es que debe poseer una dirección de red (IP).&lt;br /&gt;
&lt;br /&gt;
* '''host group'''&lt;br /&gt;
:En Zabbix, un host group (grupo host) es una agrupación lógica de los host, como una forma de organizar los dispositivos &amp;quot;Host&amp;quot; registrados en Zabbix para su monitorización. Puede contener hosts y templates.  Los grupos host se utilizan en la asignación de derechos de acceso a los hosts para diferentes grupos de usuarios.&lt;br /&gt;
&lt;br /&gt;
* '''item'''&lt;br /&gt;
:En Zabbix, un item (medida) es el parámetro que deseamos obtener del host, básicamente es una medida especifica que el servidor Zabbix recogerá de los agentes de Zabbix instalados en los host.&lt;br /&gt;
&lt;br /&gt;
* '''trigger'''&lt;br /&gt;
:En Zabbix, un trigger(disparador) es una entidad que define un umbral para detectar la existencia de un problema en un dispositivo.  Son valores recolectados por los &amp;quot;items&amp;quot;, se usa para &amp;quot;evaluar&amp;quot; los datos recibidos con condiciones definidas. Las condiciones son de tipo aritmético y lógico.&lt;br /&gt;
* '''event'''&lt;br /&gt;
:En Zabbix, un event (evento) es la aparición de un suceso en Zabbix que necesita atención. Por ejemplo, el cambio de estado a raíz de un trigger, el descubrimiento de un nuevo agente (autoregistro),etc.&lt;br /&gt;
* '''action'''&lt;br /&gt;
:En Zabbix, una action(acción) son reglas predefinidas para reaccionar a un evento disparado por los triggers, es decir, define qué hacer ante un evento. Consta de operaciones (por ejemplo, una notificacion, comandos remotos) y condiciones (cuando  la operación se lleva a cabo).&lt;br /&gt;
* '''notification'''&lt;br /&gt;
:En Zabbix, una notification (notificacion) es la entidad con que Zabbix nos puede notificar (Correo Electrónico,mensajes vía &amp;quot;SMS&amp;quot; o Jabber).&lt;br /&gt;
* '''template'''&lt;br /&gt;
:En Zabbix, un témplate (plantilla) viene predefinida en la instalación de Zabbix Server, con el fin de ser aplicada en base al tipo de sistema operativo(Linux, Mac, Window, etc) o en elementos que comparten los mismos parámetros de medición, por ejemplo la carga del procesador, uso de memoria y  uso de recursos de red. Las plantillas son un conjunto de módulos &amp;quot;ITEM, TRIGGERS y GRÁFICAS&amp;quot;, que están preconfigurados y listas para ser aplicadas a uno o varios hosts.&lt;br /&gt;
* '''application'''&lt;br /&gt;
:En Zabbix, una application (aplicación) es una agrupación lógica de los items.&lt;br /&gt;
* '''Zabbix server'''&lt;br /&gt;
:El Zabbix server (servidor de Zabbix) es el proceso central donde están definidas las configuraciones y donde se almacenan todos los datos y estadísticas recogidas de los agentes Zabbix.Consta de una base de datos, una interfaz web y el propio server. Como servidor, se encarga de recoger los datos de los agentes, calcular los triggers, enviar notificaciones, etc. &lt;br /&gt;
* '''Zabbix agent'''&lt;br /&gt;
:El zabbix agent (agente de Zabbix)  es un proceso desplegado en los host que son supervisados, que funciona como un servicio y puede funcionar de forma activa y pasiva simultáneamente.&lt;br /&gt;
&lt;br /&gt;
=====Discovery=====&lt;br /&gt;
La funcionalidad discovery(detección) lista los dispositivos que se integran en nuestra red y el tipo de servicios que proporciona. Por ejemplo, si la empresa tuviera cien colas ACDs, y veinticinco VDNS, y en cada cola como veinte medidas, seria muy laborioso registrar una por uno cada uno.  &lt;br /&gt;
Gracias a esta funcionalidad, se descubre todas las interfaces de red que se tiene, automáticamente y tanto para colas nodos o IVR. Para utilizar esta funcionalidad , se hace el uso de dos script, que se instalan en el momento de instalación de Zabbix en el directorio &amp;quot;/usr/local/sbin&amp;quot;, que son:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
'''zabbixDiscoveryQueues.pl''' : script utilizado para buscar colas ACD.&lt;br /&gt;
&lt;br /&gt;
'''zabbixDiscoveryVDN.pl''' : script utilizado para buscar VDNS.&lt;br /&gt;
|}&lt;br /&gt;
La explicación de como configurarla se encuentra en el manual oficial [[https://www.zabbix.com/documentation/2.2/manual/discovery/network_discovery/rule | Zabbix detección de redes]].&lt;br /&gt;
&lt;br /&gt;
=====Notificaciones=====&lt;br /&gt;
&lt;br /&gt;
Necesariamente, debe darse de alta al usuario y darse de alta el servidor de correo electrónico para poder ser capaz de enviar correos.&lt;br /&gt;
&lt;br /&gt;
Por otro lado, el formato del correo electrónico y las condiciones de envío de correo al usuario se configura en las acciones. Véase  el [[https://www.zabbix.com/documentation/2.2/manual/quickstart/notification  | manual oficial de Zabbix 2.2]]&lt;br /&gt;
&lt;br /&gt;
=====Usuarios=====&lt;br /&gt;
Zabbix permite la organización de usuarios en grupos para establecer los permisos adecuados de acuerdo al tipo de perfil que deseemos crear. Necesariamente un usuario debe permanecer a un grupo o varios grupos.Todos los usuarios acceden a la aplicación de Zabbix a través de la interfaz Web. &lt;br /&gt;
&lt;br /&gt;
Cada usuario Zabbix se le asigna un nombre de usuario único , una contraseña y podemos indicarle que tipo de comunicación que posee, normalmente es vía email, pero puede ser vía a otro tipo de medios. Para mas información ver el [[https://www.zabbix.com/documentation/2.2/manual/web_interface/user_profile || manual oficial ]].&lt;br /&gt;
 &lt;br /&gt;
=====Visualización=====&lt;br /&gt;
Con Zabbix es posible visualizar los datos como  gráficos, pantallas, mapas y hasta presentaciones cambiantes, entre otros. En este apartado solo nombraremos características esenciales que se tendra que completar con el [[https://www.zabbix.com/documentation/2.2/manual/config/visualisation | manual oficial]]&lt;br /&gt;
======Graphs======&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''Nota:''' Debe crearse algun item dentro del host para poder utilizar una gráfica.&lt;br /&gt;
|}&lt;br /&gt;
En Zabbix una gráfica sirve para representar gráficamente los resultados obtenidos de uno item o varios items.&lt;br /&gt;
[[File:EjemploGrafica.png|center|750px]]&lt;br /&gt;
Los valores min / avg / max que Zabbix obtiene y representa son de un registro de datos de la tabla tendencias.&lt;br /&gt;
&lt;br /&gt;
======Screens======&lt;br /&gt;
La pantalla refiere a otra característica adaptable de ZABBIX cuál permite que los usuarios creen las pantallas personalizadas dentro de ZABBIX para exhibir la información. Se considera como una colección de gráficas y no depende del host. Una pantalla puede consistir en gráficos simples, gráficos personalizados, integrar mapas, Alertas, gráficos estadísticos o texto llano tal como los 5 valores pasados de un item particular entre otros; y mostrar la información de forma dinámica.&lt;br /&gt;
&lt;br /&gt;
[[File:EjemploScreen.png|center|750px]]&lt;br /&gt;
&lt;br /&gt;
======Maps======&lt;br /&gt;
En Zabbix, un map (mapa) es una representación gráfica de la situacion de nuestros dispositivos en red. Es un escenario que muestra nuestra red, aplicaciones y servicios a través de figuras o iconos.  Dichas figuras toman vida en respuesta a los eventos que se dan en nuestro entorno.&lt;br /&gt;
[[File:EjemploMaps.png|center|750px]]&lt;br /&gt;
[[File:EstadosMaps.png|center|750px]]&lt;br /&gt;
===Zabbix en '''MD'''tel===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Configuraciones de Zabbix ====&lt;br /&gt;
&lt;br /&gt;
===== Agentes Zabbix =====&lt;br /&gt;
{|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 '''Nota:''' Hay que instalar un agente Zabbix en cada maquina que se quiera monitorizar.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El agente de Zabbix puede recoger datos: &lt;br /&gt;
*'''De forma pasiva:''' el server contacta al agente pidiéndole un dato (por ejemplo el consumo de CPU en ese instante) y el agente responde al server con ese dato. A esta acción del agente le llamaremos '''Agente activo'''.&lt;br /&gt;
*'''De forma activa:''' en un primer momento, el server le enviará al agente el listado de items a monitorizar. A partir de ese momento, será el agente que de forma periódica recogerá datos sobre esos ítems y se los hará llegar al server. A esta acción del agente le llamaremos ''''''Agente pasivo''''''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== Configurar agente de forma pasiva======&lt;br /&gt;
Para configurar el agente de Zabbix necesitamos acceder a la maquina que actuará como agente, y en el directorio /etc/zabbix modificar el fichero '''zabbix_agentd.conf''' e indicar cual es la dirección de red (IP) del servidor Zabbix.&lt;br /&gt;
&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 ##### Passive checks related&lt;br /&gt;
 ### Option: Server&lt;br /&gt;
 #       List of comma delimited IP addresses (or hostnames) of Zabbix servers.&lt;br /&gt;
 #       Incoming connections will be accepted only from the hosts listed here.&lt;br /&gt;
 #       If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1'  &lt;br /&gt;
 #       are treated equall$&lt;br /&gt;
 #&lt;br /&gt;
 # Mandatory: no&lt;br /&gt;
 # Default:&lt;br /&gt;
 Server= IP.Server Zabbix.&lt;br /&gt;
|}&lt;br /&gt;
Tras la configuración del fichero, debemos reiniciar el servicio de los agentes.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 sudo service zabbix-agent restart&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====== Configurar agente de forma activa ======&lt;br /&gt;
&lt;br /&gt;
Para configurar el agente de Zabbix necesitamos acceder a la máquina que actuará como agente, y en el directorio /etc/zabbix modificar el fichero '''zabbix_agentd.conf''' e indicar cual es la dirección de red (IP) del servidor Zabbix.&lt;br /&gt;
&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 ##### Active checks related&lt;br /&gt;
 ### Option: ServerActive&lt;br /&gt;
 #       List of comma delimited IP:port (or hostname:port) pairs of Zabbix serv$&lt;br /&gt;
 #       If port is not specified, default port is used.&lt;br /&gt;
 #       IPv6 addresses must be enclosed in square brackets if port for that hos$&lt;br /&gt;
 #       If port is not specified, square brackets for IPv6 addresses are option$&lt;br /&gt;
 #       If this parameter is not specified, active checks are disabled.&lt;br /&gt;
 #       Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12$&lt;br /&gt;
 #&lt;br /&gt;
 # Mandatory: no&lt;br /&gt;
 # Default:&lt;br /&gt;
 ServerActive=127.0.0.1&lt;br /&gt;
 --------------------------sección separada----------------------------&lt;br /&gt;
 ### Option: UserParameter&lt;br /&gt;
 #       User-defined parameter to monitor. There can be several user-defined pa$&lt;br /&gt;
 #       Format: UserParameter=&amp;lt;key&amp;gt;,&amp;lt;shell command&amp;gt;&lt;br /&gt;
 #       See 'zabbix_agentd' directory for examples.&lt;br /&gt;
 #&lt;br /&gt;
 # Mandatory: no&lt;br /&gt;
 # Default:&lt;br /&gt;
 # UserParameter=&lt;br /&gt;
 User_parameters:asterisk.pid, /usr/bin/asterisk -rx 'core show chanels'|grep 'active calls'| cat -d -f 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El parámetro '''User_parameters''' tiene un formato de este estilo:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 User_parameters: NombreMedida, comando.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El nombre de la medida se refiere al nombre que demos a la aplicación , no hace falta que exista una aplicación con ese nombre en Zabbix, y el comando , es el comando remoto que tiene que ejecutar el servidor Zabbix. Posiblemente necesita darse permisos para ejecutar el comando y siempre debe devolver un valor (un numero o un tiempo) que el servidor Zabbix puede manejar.&lt;br /&gt;
Tras la configuración del fichero, debemos reiniciar el servicio de los agentes.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 sudo service zabbix-agent restart&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Scripts del Servidor Zabbix =====&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''': &amp;lt;small&amp;gt;No olvidar que en la misma maquina del server Zabbix, debe configurarse como agente de Zabbix.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Después de realizar la [[# Instalación de Zabbix | Instalación de Zabbix ]] correctamente. Se han creado otros ficheros scripts (''scripts propios de '''md'''tel'') que facilitarán la petición del servidor a los agentes activos, para poder parametrizar todos los elementos del negocio que suelen monitorizarse. &lt;br /&gt;
Dependiendo de lo que vaya a monitorizarse necesitaremos algún script o todos. Algunos nos informan sobre elementos de negocio, saber si asterisk funciona , monitorizar el CTI (lanzara nc localhost 1111) , controlar el Intz-Nimitz, comprobar si funciona motalsal, ect.&lt;br /&gt;
&lt;br /&gt;
Cada script se exportara a los host, para que pueda facilitar los datos que pide el servidor Zabbix y configurarse.&lt;br /&gt;
Por ejemplo,para monitorizar las llamadas en curso del ACD, agentes conectados, agentes desconectados, etc.&lt;br /&gt;
Todos los scripts se deben colocar en el directorio /usr/local/sbin con permisos 755, su nombre es parecido a &amp;quot;zabbixSenderXXXXX.pl&amp;quot;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 ls /usr/local/sbin/ |grep zabbixSender&lt;br /&gt;
 '''zabbixSenderACDBD.pl'''&lt;br /&gt;
 '''zabbixSenderACD.pl'''&lt;br /&gt;
 '''zabbixSenderCTI.pl'''&lt;br /&gt;
 '''zabbixSender-intz-nimitz.pl'''&lt;br /&gt;
 '''zabbixSenderMotorSal.pl'''&lt;br /&gt;
 '''zabbixSenderMyACDSuperv.pl'''&lt;br /&gt;
 '''zabbixSenderRecordNodo.pl'''&lt;br /&gt;
 '''zabbixSenderRecordCentral.pl'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Se crea una tarea programada en linux para poder ejecutarse los scripts, programando el tiempo en que debe ejecutarse.&lt;br /&gt;
&lt;br /&gt;
Si visualizo que &amp;quot;............&amp;quot; aparece:&lt;br /&gt;
&lt;br /&gt;
*****  root zabbix&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderACDBD.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtiene diversos valores por cada cola, estados de agente por cola y estados de agente generales.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor BDTR.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:''' Ruta al archivo de configuración (Por ejemplo: ''/etc/MDtel/zabbixSenderACDBD.pconf'')&lt;br /&gt;
&lt;br /&gt;
'''Archivo de configuración:''' zabbixSenderACDBD.pconf&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''$db:''' Nombre de la BBDD (normalmente nimitz)&lt;br /&gt;
 '''$dbHost:''' Dirección IP del servidor de BBDD de TR (normalmente BDTR)&lt;br /&gt;
 '''$dbPort:''' Puerto MySQL (normalmente 3306)&lt;br /&gt;
 '''$dbUsuario:''' Usuario MySQL (normalmente nimitz)&lt;br /&gt;
 '''$dbClave:''' Clave del usuario&lt;br /&gt;
 '''$sZab:''' Dirección IP del servidor Zabbix&lt;br /&gt;
 '''$hZab:''' Nombre del host Zabbix (normalmente el nombre de máquina, tal y como se configura en &lt;br /&gt;
 zabbix_agentd.conf o en el host en la web de Zabbix)&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderACD.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener el PID de Asterisk para revisar si se ha reiniciado en caso de que cambie.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor ACD.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:''' Ruta al archivo de configuración (Por ejemplo: ''/etc/MDtel/zabbixSenderACD.pconf'').&lt;br /&gt;
&lt;br /&gt;
'''Archivo de configuración:''' zabbixSenderACDBD.pconf.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''$db:''' Nombre de la BBDD (normalmente nimitz)&lt;br /&gt;
 '''$dbHost:''' Dirección IP del servidor de BBDD de TR (normalmente BDTR)&lt;br /&gt;
 '''$dbPort:''' Puerto MySQL (normalmente 3306)&lt;br /&gt;
 '''$dbUsuario:''' Usuario MySQL (normalmente nimitz)&lt;br /&gt;
 '''$dbClave:''' Clave del usuario&lt;br /&gt;
 '''$sZab:''' Dirección IP del servidor Zabbix&lt;br /&gt;
 '''$hZab:''' Nombre del host Zabbix (normalmente el nombre de máquina, tal y como se configura en&lt;br /&gt;
 zabbix_agentd.conf o en el host en la web de Zabbix)&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
======zabbixSenderCTI.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de vivait-cti.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute vivait-cti. Normalmente el servidor ACD.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======zabbixSender-intz-nimitz.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de intz-nimitz.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute intz-nimitz.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
======zabbixSenderMotorSal.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de motorSal.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute motorSal.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderMyACDSuperv.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de myAcdSuperv.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute myAcdSuperv.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderRecordNodo.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de recordNodo.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute recordNodo.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderRecordCentral.pl======&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de recordCentral.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute recordCentral.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A continuación se muestra una tabla resumen de los distintos scripts y sus funcionalidades: &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Zabbix_scripts.png |960px]]&lt;br /&gt;
&lt;br /&gt;
====== Dimensionamiento del servidor (Startpollers) ======&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''': &amp;lt;small&amp;gt;EL parámetro StartPollers es un &amp;lt;u&amp;gt;parámetro numérico&amp;lt;/u&amp;gt; que forma parte del fichero de configuración &lt;br /&gt;
 del servidor Zabbix(zabbix_server.conf). Por defecto el servidor Zabbix esta configurado para&lt;br /&gt;
 iniciar con cinco startpollers.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El servidor Zabbix puede hace peticiones a los agentes de las medidas que necesita o quiere. O en caso contrario los agentes envian en un tiempo determinado la información al servidor. Para recibir todas estas peticiones necesitamos los pollers.  &lt;br /&gt;
&lt;br /&gt;
Los poller son los procesos encargados de recibir todas las peticiones de medidas. Aumentaremos su cantidad dependiendo de la necesitad que tengamos. Para ello podemos observar la queue , que es la encargada de almacenar un listado de todas las cosas que están pedidas para medirse y recibirse.  SI por ejemplo esta cola (queue) muestra mas de mil medidas seguramente estos pollers sean un cuello de botella y habrá que aumentar su numero.&lt;br /&gt;
&lt;br /&gt;
=====Templates=====&lt;br /&gt;
&lt;br /&gt;
Zabbix cuenta con templates (plantillas) que facilitan la tarea de &amp;quot;Registrar Equipos y Dispositivos&amp;quot; y agregarles métricas; acelerar el despliegue de las tareas de supervisión en un host; aplicar cambios masivos a tareas de supervisión. En '''md'''tel hemos creado plantillas propias que facilitan estos procesos, los cuales necesitaremos [[#Importar templates |importar templates]].&lt;br /&gt;
&lt;br /&gt;
Las plantillas están vinculados directamente a los hosts individuales, por tanto se necesitaran utilizar en cada host.&lt;br /&gt;
&lt;br /&gt;
Automáticamente, cada template rellena por item las aplicaciones, trigers, alarmas,gráficos,... etc. &lt;br /&gt;
&lt;br /&gt;
A continuación, se muestran los distintos bloques de funciones de la instalación en función de cada template:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! Se instalan en general &lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| SI (si clúster)&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| si&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| -&lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| si(si no posee ip virtuales de clúster)&lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| si&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ '''Dependiendo del tipo de nodo:'''&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! ACD !! Corporativo/GW&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| Si || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - || Si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - || Si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ '''Dependiendo del tipo de Base de dato'''s:&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! BBDD &amp;lt;br /&amp;gt;Tiempo Real !! BBDD&amp;lt;br /&amp;gt; Réplica !! BBDD Copia&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| Si(si ACD) || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| si || si || si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| si || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! Administración&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - &lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - &lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal||SI (si posee servidor calendarios)&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! Servidor de grabaciones&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - &lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| Si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - &lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal||-&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ '''Monitorización'''&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! General !! Contact Center&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - || - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - || - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| si || - &lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - || - &lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 * El template OS Linux tiene asociado el Template App Zabbix Agent.&lt;br /&gt;
 Una '''base de datos unificada''' es una base de datos de tiempo real junto a  una base de datos de replica&lt;br /&gt;
&lt;br /&gt;
====== Importar templates======&lt;br /&gt;
&lt;br /&gt;
Las plantillas propias de '''md'''tel se encuentran en la ruta &amp;quot;'''/usr/src/nimitz/archivos'''&amp;quot; y empiezan con el nombre de &amp;quot;TemplateXXX.xml&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 ls /usr/src/nimitz/archivos | grep Template&lt;br /&gt;
 '''Template DRBD.xml'''&lt;br /&gt;
 '''Template motorSal.xml'''&lt;br /&gt;
 '''Templates Vivait-Suite_GW.xml'''&lt;br /&gt;
 '''Templates Vivait-Suite.xml'''&lt;br /&gt;
 '''Template Vivait-Call Asterisk.xml'''&lt;br /&gt;
 '''Template Vivait-Call bdCentral.xml'''&lt;br /&gt;
 '''Template Vivait-Call bdNodo.xml'''&lt;br /&gt;
 '''Template Vivait-Call cambiarPerfil_Cal.xml'''&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La importación se realizara una vez a través de la web, no hace falta desde el servidor Zabbix, puede ser en cualquier  computadora con acceso a la interfaz web de Zabbix.&lt;br /&gt;
&lt;br /&gt;
[[File:ImportarTemplates.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
Hay opciones varias opciones a elegir para importación de templates, pero podemos dejar por defecto las señaladas y pulsar el botón &amp;quot;import&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Configuración para un primer funcionamiento de Zabbix===&lt;br /&gt;
Se describe una básica configuracion de Zabbix para cualquier equipo que utilice Windows o linux. Pues  mediante la definición de hosts, items, triggers y acciones, Zabbix permite efectuar un monitoreo efectivo de plataformas IT heterogéneas. &lt;br /&gt;
&lt;br /&gt;
====Configuración de los equipost (host) para la monitorización====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''': Tenga en cuenta que debe de estar previamente configurado el agente Zabbix del &lt;br /&gt;
 dispositivo a ser monitorizado apuntando a la IP del &amp;quot;Servidor Zabbix&amp;quot;.&lt;br /&gt;
|}&lt;br /&gt;
Existen dos tipos de host:&lt;br /&gt;
* '''Host físico''': donde la dirección de red que registramos en Zabbix, corresponde al dispositivo que deseamos monitorizar.&lt;br /&gt;
* '''Host virtual''': es una dirección IP virtual, que puede relacionarse con un servidor Web, clusters, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:CreacionHost.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
﻿Las opciones basicas para configurar un host son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center ;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Host Name'''&lt;br /&gt;
|  | Definir un nombre para el host.&lt;br /&gt;
||Se puede utilizar números, letras, espacios y guiones bajos están permitidos.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Visible Name'''&lt;br /&gt;
|  | Identificar con un nombre, la maquina a la que se refiere el host.&lt;br /&gt;
||Si no tiene valor, se mostrara como nombre &amp;quot;Host Name&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Groups'''&lt;br /&gt;
|  | Seleccionar al grupo de host que pertence.Seleccione uno o varios grupos de la caja derecha.&lt;br /&gt;
|| Los valores que puede seleccionar por defecto:&lt;br /&gt;
Discoverd hosts.&lt;br /&gt;
&lt;br /&gt;
Switches.&lt;br /&gt;
&lt;br /&gt;
Templates.&lt;br /&gt;
&lt;br /&gt;
Templates MDtel.&lt;br /&gt;
&lt;br /&gt;
Zabbix servers.&lt;br /&gt;
&lt;br /&gt;
Linux Servers.&lt;br /&gt;
&lt;br /&gt;
Hypervisors.&lt;br /&gt;
&lt;br /&gt;
Virtual machines.&lt;br /&gt;
&lt;br /&gt;
O crear uno nuevo en '''New group'''.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Agent interfaces'''&lt;br /&gt;
|  |Se recomienda usar una dirección IP, en vez de un nombre de la maquina para resolver por un servidor de DNS que puede fallar.&lt;br /&gt;
|  | 10050 por defecto&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cuando termine, haga clic en nel boton &amp;quot;Save&amp;quot;.  Su nuevo &amp;quot;Host&amp;quot; debe ser visible en la lista de &amp;quot;Host registrados&amp;quot;.Despues el zabbix, intentara configurarse el zabbix para conectarse a la IP.... cada x tiempo hace un barrido. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Comprobación de disponibilidad del host=====&lt;br /&gt;
Para saber si todo esta bien debemos ver la Z de disponibilidad.   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:EstadosZHost.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Indicacion de los colores del icono Z:&lt;br /&gt;
&lt;br /&gt;
* Si el icono Z en la columna de disponibilidad es de color rojo, indica que hay un error en la comunicación - mueva el cursor del ratón sobre él para ver el mensaje de error. &lt;br /&gt;
&lt;br /&gt;
* Si el icono es gris, significa que esta en proceso de comunicación con el &amp;quot;Agente Zabbix&amp;quot;. Compruebe que el servidor Zabbix está en marcha, y pruebe a actualizar la página más tarde.  El tiempo estimado para revisar si existe problemas es de 5 minutos.&lt;br /&gt;
&lt;br /&gt;
* Si el icono es verde, esta funcionando correctamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Indicar que plantilla(template) tendra el host [opcional]====&lt;br /&gt;
Tras [[#Importar templates |importar templates]] nos dirigimos al host ya configurado, y en su pestaña de templates pulsamos &amp;quot;add&amp;quot; y añadimos la plantilla/s adecuadas.&lt;br /&gt;
&lt;br /&gt;
====Asignar items al host ====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''':Un host puede tener un ITEM sin necesitad de tener template.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Todos lo ITEMS se agrupan por HOST, esto significa que cada HOST tiene sus propios &amp;quot;Módulos que recogen datos del Host&amp;quot;.   Para agregar un nuevo módulo vamos a &amp;quot;Configuration → Hosts&amp;quot; y localizamos el &amp;quot;Host&amp;quot; al cual queremos agregarle un nuevo &amp;quot;Item&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:CrearItemEjemplo.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
Parametros o campos a rellenar para una configuración básica :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center ;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Name'''&lt;br /&gt;
|  | Definir un nombre para el item.  Este nombre va a ser nuestro identificador para todas la gestiones en donde lo involucremos como el caso de Triggers.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Type'''&lt;br /&gt;
|| Indicar de que entidad queremos recibir informacion.&lt;br /&gt;
||Puede ser al &amp;quot;Agente Zabbix&amp;quot; o a el Hardware como impresoras, switch o routers.   &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Key'''&lt;br /&gt;
|  | los &amp;quot;Items&amp;quot; utilizan &amp;quot;Key&amp;quot; que son parámetros de Zabbix.  Los &amp;quot;Key&amp;quot; nos permiten indicar específicamente que tipo de información vamos a solicitara a la entidad. Se puede considerar también como el nombre de alguna aplicación.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''host interface'''&lt;br /&gt;
|  |Es la direccion de red del servidor zabbix (puede ser uno o mas)&lt;br /&gt;
|  | &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Units'''&lt;br /&gt;
|  |Es la dirección de red del servidor zabbix (puede ser uno o mas)&lt;br /&gt;
|  | &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Type of information'''&lt;br /&gt;
|  |Tipo de unidades con el que mostrar Zabbix el valor segundos, minutos, euros,....&lt;br /&gt;
|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cuando termine, haga clic en Guardar.   El nuevo elemento debe aparecer en la ITEMLIST. &lt;br /&gt;
Para mas informacion [[http://entation/1.8/manual/config/items#zabbix_agent. ver documentación Zabbix]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Ver la información recolectada por el item =====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' Normalmente para ver la información lo encontraremos en &amp;quot;Monitoring → Latest data&amp;quot;,luego &lt;br /&gt;
 clic en el signo &amp;quot;+&amp;quot; en &amp;quot;other&amp;quot; siempre que no pertenezca a una aplicación. &lt;br /&gt;
 En caso contrario, estará bajo el nombre de la aplicación.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Después de definir el &amp;quot;Item&amp;quot; vamos a revisar la información que esta recolectando.  .  La información comenzará a ser recolectada según el tiempo que le indicamos en el &amp;quot;Item&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:VerInfoITEM.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
La espera para recibir la información varía dependiendo del tiempo de recolección del item, la mayoría suele ser aproximadamente al minuto de generar el &amp;quot;Item&amp;quot;. Zabbix le ofrece la opción de visualizar la información en forma gráfica (sencilla).  En el &amp;quot;Item&amp;quot; en lista haga clic en la columna &amp;quot;History - Graph&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:VIsualGraficaValorItem.png|center|750px]]&lt;br /&gt;
Si en un caso usted no observa información le recomendamos:&lt;br /&gt;
  &lt;br /&gt;
* Ingrese al &amp;quot;Item&amp;quot; y revise que la información del &amp;quot;Key&amp;quot; este igual al ejemplo &amp;quot;system.cpu.load&amp;quot; &lt;br /&gt;
* Verifique que el agente este funcionando en el &amp;quot;Servidor a ser monitoreado&amp;quot; y que &amp;quot;El Servidor recolector Zabbix&amp;quot; este funcionando. &lt;br /&gt;
* El icono &amp;quot;Z&amp;quot; en el host debe estar en color verde. &lt;br /&gt;
* Asegure que esta monitoreando el servidor que le agregó este &amp;quot;Item&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Configurar los Triggers para los host====&lt;br /&gt;
A partir de la información que captura los agentes , el servidor de Zabbix comienza a efectuar la recolección de estos items en la base de datos. Con esto se tiene un registro histórico de tales mediciones, que pueden ser tan simples como un simple ping hasta datos de uso de disco, memoria, cpu, etc.&lt;br /&gt;
A partir de los datos que se reciben de los agentes lo que sigue es definir y configurar Triggers, que son evaluaciones que hace Zabix de estos datos para determinar la existencia de un Problema en un dispositivo.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Nota: Un trigger necesita una accion, que indica que hacer cuando se activa el trigger.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un trigger(disparador) es un tipo de reacción ante unas medidas, como un disparador en el que si pasa algo se activa. Los Trigger en Zabbix son módulos que creamos a uno o múltiples &amp;quot;Items&amp;quot; para evaluar o comparar los valores recolectados por los &amp;quot;Items&amp;quot; con condiciones que nosotros definamos.  Las condiciones son de tipo aritmético y lógico.&lt;br /&gt;
&lt;br /&gt;
Para configurar un &amp;quot;Trigger o Disparador&amp;quot; seleccionamos &amp;quot;Configuration → Hosts&amp;quot; localizamos el &amp;quot;Host&amp;quot; de ejemplo que creamos y luego hacemos clic en &amp;quot;Trigger&amp;quot;, después haga clic en &amp;quot;Create Trigger&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Parametros o campos a rellenar para una configuración básica :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center ;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Name'''&lt;br /&gt;
|  | Definir un nombre para el trigger.  Este nombre va a ser nuestro identificador para todas la gestiones en donde lo involucremos como el caso de los eventos.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Expression'''&lt;br /&gt;
||  Hay que indicar para que medida se crea (item) y sus funciones con los parametros adecuados. '''''Recomendación usar expression constructor que pedirá siempre al crearlo, para que item es y sus funciones...'''''&lt;br /&gt;
||Ejemplo: {New host:system.cpu.load.avg(180)}&amp;gt;2 &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Key'''&lt;br /&gt;
|  | los &amp;quot;Items&amp;quot; utilizan &amp;quot;Key&amp;quot; que son parámetros de Zabbix.  Los &amp;quot;Key&amp;quot; nos permiten indicar específicamente que tipo de información vamos a solicitara a la entidad. Se puede considerar tambien como el nombre de alguna aplicacion.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Una descripción breve sobre el trigger.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Severity'''&lt;br /&gt;
|  | everidad distinguida por colores,&lt;br /&gt;
|| No classified&lt;br /&gt;
 Information&lt;br /&gt;
 Warning&lt;br /&gt;
 Average&lt;br /&gt;
 High&lt;br /&gt;
 Disaster&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Comprobar el estado del trigger =====&lt;br /&gt;
Podemos ver el estado del &amp;quot;Trigger&amp;quot; en &amp;quot;Monitoring → Triggers&amp;quot;.El  color en caso de que se active depende de la severidad definida. Por ejemplo,  si el &amp;quot;Trigger&amp;quot; esta en color verde indica que el resultado de la métrica se mantiene por debajo de la condición que indicamos.  Por el contrario si el resultado esta &amp;quot;sobre lo indicado&amp;quot; su color sera rojo.&lt;br /&gt;
&lt;br /&gt;
[[File:EstadoTrigger.png|center|750px]]&lt;br /&gt;
&lt;br /&gt;
====Asociar un Action al trigger====&lt;br /&gt;
&lt;br /&gt;
Una action(acción) sirve para configurar un mensaje de alerta o una accion para Zabbix, ante un problema. Hay varias formas de gestionar un problema a través de una acción:&lt;br /&gt;
&lt;br /&gt;
# A través de mensajes simples, alertando al instante.&lt;br /&gt;
# Escalar los mensajes hacia el jefe y/o otros grupos.&lt;br /&gt;
# Ejecución de commandos remotos.&lt;br /&gt;
# Notificaciones repetidas hasta que se resuelve el problema.&lt;br /&gt;
# Notificaciones y comandos retardados.&lt;br /&gt;
# Escenario complejo, la combinación de todo lo anterior.&lt;br /&gt;
&lt;br /&gt;
Para crear una configuración en &amp;quot;Configuration-Actions&amp;quot;. La explicación esta en la [[ https://www.zabbix.com/documentation/2.0/manual/config/notifications/action documentación de Zabbix]].&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integraciones con servicios externos ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Presencia con Openfire ===&lt;br /&gt;
'''''VIVA'''''it se integra con servidor XMPP Openfire en su versión 3.10.2 (última probada)&lt;br /&gt;
&lt;br /&gt;
Además del servidor, es necesario instalar un plugin de integración con asterisk 13, denominado &amp;quot;asterisk IM&amp;quot;, versión 1.4.1&lt;br /&gt;
&lt;br /&gt;
La instalación del servidor Openfire es una instalación estándar, realizada de paquete&lt;br /&gt;
&lt;br /&gt;
La instalación del plugin es un &amp;quot;jar&amp;quot; que se carga desde la pagina de plugins de openfire&lt;br /&gt;
&lt;br /&gt;
Con esto conseguiremos comunicar asterisk y OPenfire de manera que:&lt;br /&gt;
*Los estados telefónicos de una extensión '''''VIVA'''''it  se reflejen en Openfire&lt;br /&gt;
*Poder marcar desde los clientes de IM instalados en los puestos&lt;br /&gt;
*Ver en el cliente llamadas entrantes al teléfono&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;Enlaces de interes:&amp;lt;/big&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
[http://www.igniterealtime.org/projects/openfire/ Página proyecto openfire]&lt;br /&gt;
&lt;br /&gt;
[https://community.igniterealtime.org/thread/56076 Página proyecto &amp;quot;asterisk IM&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reuniones virtuales con Openmeetings ===&lt;br /&gt;
'''OpenMeetings''' es un sistema de vídeo web-conferencia en tiempo real. Usando recursos como audio (micrófono), vídeo (cámara web), posibilidad de subir y convertir presentaciones (en PDF , PPT o ODP que se convierten a Flash), compartición de la pantalla de tu ordenador, o pizarra digital compartida, panel de administración, posibilidad de grabar las sesiones… y completo soporte multiplataforma, es decir, que aparte de poder grabar las sesiones, se puede compartir un escritorio también desde una máquina Linux.&lt;br /&gt;
&lt;br /&gt;
Para instalar '''OpenMettings''' debe seguir el [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manuales_de_instalaci%C3%B3n#Instalaci.C3.B3n_de_Openmeetings | manual de Instalación de Openmeetings]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]] &lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:VIVAit Suite]]&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_plataforma_VIVAit&amp;diff=5994</id>
		<title>Manual de operación plataforma VIVAit</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_plataforma_VIVAit&amp;diff=5994"/>
		<updated>2017-07-26T06:53:10Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* BBDD Tiempo Real */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!! '''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; ALFREDO: INSISTIR EN EXPLICAR CONCEPTOS&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
En este documento se describe la arquitectura general de la plataforma '''''VIVA'''''it, detallando aquellos procesos principales que componen cada uno de los elementos del sistema, y sus principales elementos de diagnóstico&lt;br /&gt;
Quedan fuera del ámbito de este documento:&lt;br /&gt;
* Uso de aplicación de agente ('''''VIVA'''''it Desk)&lt;br /&gt;
* Uso de aplicación de supervisor ('''''VIVA'''''it Supervisor), incluyendo sus módulos autónomos ('''''VIVA'''''it reporting, '''''VIVA'''''it Tracker)&lt;br /&gt;
* Uso de portal de administración&lt;br /&gt;
* Uso de portal de traceo de llamadas y agentes ('''''VIVA'''''it Tracker web)&lt;br /&gt;
* Uso de portal de monitorización zabbix&lt;br /&gt;
&lt;br /&gt;
== Arquitectura ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura plataforma VIVAit.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Descripción de los elementos, diagnósticos y operaciones ==&lt;br /&gt;
Las siguientes tablas definen los principales elementos software de la plataforma '''''VIVA'''''it, que son detallados en apartados siguientes:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de sistema operativo'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu Server LTS 64 bits || Uno por servidor|| ||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|| Actualmente (Oct-2015) 14.04&lt;br /&gt;
Bajo proyecto puede cambiarse&lt;br /&gt;
|-&lt;br /&gt;
| Almacenamiento de grabaciones|| Uno por sistema|| Almacenamiento de las grabaciones, ya sean de entorno corporativo o de contact center||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|| Típicamente un espacio grande de almacenamiento proporcionado por el cliente y que se monta como un sistema de archivos local en los servidores de la plataforma&lt;br /&gt;
Pueden existir sistemas secundarios de almacenamiento de grabaciones&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de conmutación de voz'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Asterisk 1.4.24 by MDtel||Uno por servidor ACD||Núcleo de conmutación de voz basado en Asterisk 1.4 y modificado por MDtel||'''''VIVA'''''it Suite||Fuertemente modificado por MDtel&lt;br /&gt;
En el futuro migrará a Asterisk 13 Certified&lt;br /&gt;
|-&lt;br /&gt;
|Dialplan ACD by MDtel||Uno por servidor ACD||Configuración de voz||'''''VIVA'''''it Suite||En el futuro se unificará con corporativa&lt;br /&gt;
|-&lt;br /&gt;
|Asterisk 13 Certified by MDtel||Uno por servidor corporativo/gateway||Núcleo de conmutación de voz basado en Asterisk 13 y modificado por MDtel||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Actualmente asterisk estándar (10/15)&lt;br /&gt;
La instalación contempla descargar de la red el más actualizado, siempre CERTIFIED&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Dialplan corporativo||Uno por servidor corporativo/gateway||Configuración de voz||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||En el futuro se unificará con ACD&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de base de datos'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|MySQL 5.5||Donde haya BBDD de cualquier tipo (incluso zabbix)||Motor de Base de Datos||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||A efectos prácticos va a ser en todos los servidores con casi total seguridad&lt;br /&gt;
|-&lt;br /&gt;
|BBDD tiempo real||Una por sistema||Base de Datos sobre la que trabaja todo el entorno de tiempo real||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|BBDD réplica||Una por sistema multinodo||Base de Datos para acceso a información de reporting…y similar||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de una&lt;br /&gt;
En el nodo en el que exista réplica existirá además copia (excepto nodo ACD)&lt;br /&gt;
|-&lt;br /&gt;
|BBDD copia||Uno por servidor corporativo/gateway||Copias de tablas de configuración para respaldo de la misma||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Local en cada nodo&lt;br /&gt;
Los nodos de ACD actualmente no trabajan con copia; en caso de fallo de BBDD TR se usa el modo emergencia&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de procesos ''VIVA''it'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Intz-Nimitz||Donde haya una BBDD de tiempo real o copia||Interfaz entre el dialplan y la base de datos||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||No donde haya BBDD de réplica&lt;br /&gt;
Sistemas grandes pueden contemplar mas de un intz-nimitz central&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|vivait-cti||Uno por servidor ACD||Interfaz entre '''''VIVA'''''it Desk, supervisor y el manager de asterisk||'''''VIVA'''''it Suite||&lt;br /&gt;
|-&lt;br /&gt;
|myAcdSuperv||Uno por servidor ACD||Recopilador de datos de asterisk y actualiza en la BBDD&lt;br /&gt;
Genera llamadas en el marcador&lt;br /&gt;
||'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|motorSal||Uno por sistema con ACD||Motor de marcador saliente automático||'''''VIVA'''''it Suite||Solo si hay marcación saliente&lt;br /&gt;
Junto a la BBDD de tiempo real&lt;br /&gt;
|-&lt;br /&gt;
|recordCentral||Uno por sistema||Servidor de grabaciones, se conectan los agentes a el||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Se arrancan varias instancias en función del número de nodos&lt;br /&gt;
Debe instalarse en un servidor que tenga el almacenamiento de grabaciones en su sistema de archivos&lt;br /&gt;
|-&lt;br /&gt;
|recordNodo||Uno por servidor corporativo/gateway||Agente de grabación||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|bdCentral||Uno, en el nodo con la BBDD de tiempo real||Genera la base de datos que se copiará para respaldo a otros nodos||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|bdNodo||En cada nodo con BBDD de copia||Recoge la base de datos del servidor central con el objeto de tener el respaldo||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|Actualizador||Uno por sistema con ACD||Se encarga de proporcionar las versiones actualizadas de las aplicaciones de puesto de trabajo||'''''VIVA'''''it Suite||En el mismo servidor que el portal de administración&lt;br /&gt;
|-&lt;br /&gt;
|phoneProv-tftp||Uno por sistema||Se encarga del aprovisionamiento masivo de terminales||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||En instalaciones grandes habrá más de uno, quizás uno por sede grande; depende de la infraestructura de DHCP&lt;br /&gt;
|-&lt;br /&gt;
|borraregistrosnimitz||||||||				&lt;br /&gt;
|-&lt;br /&gt;
|Mover grabaciones a nube||||||||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Administración'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Tomcat 7||Uno por servidor con portales||Servidor de aplicaciones JAVA||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|Portal de administración ||Uno por sistema||Portal de administración del sistema||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Portal usuario||Uno por sistema||Portal de usuario, para acceso a buzones, su configuración||'''''VIVA'''''it Call||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Tracker web||Uno por sistema||Portal de seguimiento de llamadas||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Debe instalarse en un servidor que tenga los ficheros de grabación montados en su sistema de archivos&lt;br /&gt;
Ligado a recordCentral&lt;br /&gt;
Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Monitor||Uno por sistema||Portal de monitores de pared de Call Center||'''''VIVA'''''it Suite||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Apache||Uno por servidor de calendarios||Servidor de portales WEB||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|Servidor de calendarios||Uno por sistema||Aloja calendarios para su uso en diferentes entornos de NIMITZ||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Monitorización'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Servidor zabbix||Uno por instalación||Monitorización técnica y de negocio||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de uno&lt;br /&gt;
Tipicamente irá o en BBDD replica o en nodo de gestión en instalaciones grandes&lt;br /&gt;
|-&lt;br /&gt;
|Templates zabbix||Uno por instalación||Adaptaciones específicas||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|Agente Zabbix||Uno por servidor||Agente de monitorización||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
||Scripts monitorización zabbix||Uno por servidor||Agente de monitorización||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Versiones de módulos===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Módulo  !! VSuite &lt;br /&gt;
V.3.10 &lt;br /&gt;
! VSuite &lt;br /&gt;
V.3.2.0 &lt;br /&gt;
! VSuite &lt;br /&gt;
V.3.3.0 &lt;br /&gt;
! VIVAit V.3.0.0&lt;br /&gt;
(VSuite 3.4+VCall3.0) &lt;br /&gt;
!  VIVAit V.3.1.0&lt;br /&gt;
(VSuite 3.5+VCall3.1)&lt;br /&gt;
|-&lt;br /&gt;
| Sistema Operativo || || || || &lt;br /&gt;
|| Ubuntu 14.0.4&lt;br /&gt;
Server 64 Kb&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk || 1.4 || 1.4 || 1.4 || 1.4 Nodo ACD&lt;br /&gt;
13 resto nodos&lt;br /&gt;
|| 1.4 Nodo ACD&lt;br /&gt;
13 resto nodos&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk ACD '''(VS)'''  ||  ||  || || 3.3.1 || 3.4.1 &lt;br /&gt;
|-&lt;br /&gt;
| Dialplan ACD '''(VS)''' || ||  ||  || || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk Corp '''(C)''' ||  ||  ||  || 3.3.4 || 3.4.4&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk Cisco '''(VC)''' ||  ||  ||  || 3.3.4 || 3.4.4&lt;br /&gt;
|-&lt;br /&gt;
| Dialplan Corp '''(C)''' || ||  ||  || 3.3.1 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Lazarus común '''(VS)''' || 3.1.0  || 3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| BD '''(C)''' || 3.2.0 || 3.4.0 || 3.5.0 || 3.6.0 || 3.8.0&lt;br /&gt;
|-&lt;br /&gt;
| Generaconf '''(C)''' || 3.0.0  || 3.0.0  || 3.2.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Instalador '''(C)''' || 3.1.0  || 3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Intz-nimitz '''(C)''' || 2.6.0  || 3.0.1 || 3.0.3 ||  3.4.1 || 3.4.2&lt;br /&gt;
|-&lt;br /&gt;
| recordgwd '''(C)'''  ||  1.3.0 ||  1.3.0 || 3.1.0 ||  ----- || -----&lt;br /&gt;
|-&lt;br /&gt;
| recordNodo '''(C)''' || ----- || ----- || ----- ||  4.0.0 || 4.0.0&lt;br /&gt;
|-&lt;br /&gt;
| recordprocesad '''(C)''' || 1.2.0 ||1.2.0|| 3.0.0 || ----- || -----&lt;br /&gt;
|-&lt;br /&gt;
| recordCentral '''(C)''' || ----- || ----- || -----||  4.0.0 || 4.0.1&lt;br /&gt;
|-&lt;br /&gt;
| MyACDSuperv '''(VS)''' || 5.2.0 || 5.3.0  ||  5.3.0  ||  5.3.2 || 5.3.2&lt;br /&gt;
|-&lt;br /&gt;
| Motorsal '''(VS)''' || 1.4.0 || 3.1.0  || 3.2.0 || 3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| Vivait-cti '''(VS)'''  || 3.0.0 ||  3.0.1  ||  3.0.1  ||  3.0.1 || 3.0.2&lt;br /&gt;
|-&lt;br /&gt;
| Multimonitorweb '''(VS)''' ||  3.0.1 ||  3.0.2  || 3.1.0  || 3.1.0 || 3.2.0&lt;br /&gt;
|-&lt;br /&gt;
| Portal de administración '''(C)''' || 3.1.0  || 3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Tracker Web '''(C)''' || 3.0.2  || 3.1.0 ||  3.2.0 ||  3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
|  VIVA supervisor '''(VS)''' || 3.0.0 ||  3.1.0  ||  3.2.0  ||  3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| Tracker windows '''(C)''' || 3.0.0  || 3.1.0  || 3.2.0 || 3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| VIVA report '''(VS)''' || 1.2.0  || 3.1.0  || 3.2.0  ||  3.2.2 || 3.3.0&lt;br /&gt;
|-&lt;br /&gt;
| VIVA desk '''(VS)''' || 3.0.2 ||  3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| VIVA designer '''(VS)''' || 1.0.23 || 3.0.1  || 3.1.0 ||  3.1.0 || 3.2.0&lt;br /&gt;
|-&lt;br /&gt;
|  Preview '''(VS)''' || 1.0.18 || 3.2.0  || 3.3.0 || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Phone_prov '''(C)''' || ------ || ------ || 3.0.1 || 3.0.3 || 3.0.3&lt;br /&gt;
|-&lt;br /&gt;
| Portal usuario '''(VC)''' || ------ || ------ || ------ || 3.0.0 || 3.1.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''(C)''': Módulo común&lt;br /&gt;
&lt;br /&gt;
'''(VC)''': Módulo de VIVAit Call&lt;br /&gt;
&lt;br /&gt;
'''(VS)''': Módulo de VIVAit Suite&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Sistema Operativo ===&lt;br /&gt;
Los sistemas operativos de nuestra plataforma se corresponden a las versiones de Ubuntu Server LTS , ya que son las versiones estables, con un soporte continuado y mas estables a actualizaciones desde la salida Ubuntu 14.04.1. En concreto el sistema operativo utilizado para la plataforma '''''VIVA'''''it es Ubuntu Server 14.04.4 LTS. Para más información https://help.ubuntu.com/lts/serverguide/index.html.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ubuntu Kernel Release Schedule.png|750px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Funcionamiento en cluster ====&lt;br /&gt;
&lt;br /&gt;
Un clúster es un grupo de múltiples ordenadores unidos mediante una red de alta velocidad, de tal forma que el conjunto es visto como un único ordenador.&lt;br /&gt;
&lt;br /&gt;
De un clúster se espera que presente combinaciones de los siguientes servicios:&lt;br /&gt;
&lt;br /&gt;
# Alto rendimiento &lt;br /&gt;
# Alta disponibilidad&lt;br /&gt;
# Balanceo de carga &lt;br /&gt;
# Escalabilidad &lt;br /&gt;
&lt;br /&gt;
Tal y como esta definido el cluster de MDtel, este comprueba conectividad con la otra máquina que lo forma y con un punto de confianza. Si la máquina no tiene conectividad con la otra y si con el punto de confianza es que el servidor está vivo, mientas que si no tengo conectividad ni con la otra máquina ni con el punto de confianza es que el muerto soy yo, por lo que balanceo.&lt;br /&gt;
&lt;br /&gt;
Por lo que las máquinas balancean en los casos siguientes:&lt;br /&gt;
&lt;br /&gt;
* Todo lo que tenga que ver con la red, es decir, caída de la tarjeta de red, apagado de la máquina, corte en la red..&lt;br /&gt;
&lt;br /&gt;
Y no balancea en los siguientes:&lt;br /&gt;
&lt;br /&gt;
* No balancea en los demás casos, es decir, todo lo que tenga que ver con procesos de una máquina (caída asterisk, base de datos, intz-nimitz)&lt;br /&gt;
&lt;br /&gt;
El funcionamiento en cluster se basa en:&lt;br /&gt;
&lt;br /&gt;
* Heartbeat: IP flotante entre las dos máquinas que componen el cluster; típicamente este &amp;quot;latido&amp;quot; entre máquinas se realizará mediante conexión directa con cable cruzado para asegurar que no existan problemas de comunicaciones tales como retardo, pérdida de paquetes, etc en este latido y pueda ser causa de un balanceo inadecuado.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|  '''Nota 17-11-2015:''' Se ha realizado en un cliente un cluster distribuido, con dos servidores en diferentes sedes, realizando el heartbeat mediante enlace Gigabit. Si bien la solución no está validada por desarrollo, se está observando el funcionamiento.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* DRBD que se encargar de mantener una serie de carpetas totalmente replicadas entre los dos nodos; dichas las carpetas son:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El cluster es &amp;lt;big&amp;gt;'''activo/pasivo'''&amp;lt;/big&amp;gt;; la máquina activa posee la IP flotante y tiene arrancados los servicios.&lt;br /&gt;
&lt;br /&gt;
==== Configuración del cluster ====&lt;br /&gt;
Para montar un cluster de asterisk partimos de la siguiente situación inicial:&lt;br /&gt;
* Dos maquinas con '''''VIVA'''''it Call 3.0 instalado.&lt;br /&gt;
* El driver bonding de Interfaces de Red en Ubuntu Server.&lt;br /&gt;
&lt;br /&gt;
Los pasos a seguir para la configuración en el Ubuntu Server son los siguientes:&lt;br /&gt;
* Instalar ifenslave: &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 aptitude install ifenslave.&lt;br /&gt;
|}&lt;br /&gt;
: Finalizada la instalación, comprobamos que la instalación de Bonding se ha configurado para empezar desde el arranque del sistema operativo desde el fichero '''/etc/modules''':&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| vi /etc/modules&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 # Parameters can be specified after the module name.&lt;br /&gt;
 lp&lt;br /&gt;
 rtc&lt;br /&gt;
 bonding&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Crear o editar el archivo llamado '''/etc/modprobe.d/bonding.conf''' y añadir la siguiente linea en negrita:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 echo &amp;quot;alias bond0 bonding&amp;quot;&amp;gt; /etc/modprobe.d/bonding.conf&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Editar el fichero /etc/network/interfaces y añadir lo que esta en negrita:&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
 # This file describes the network interfaces available on your system&lt;br /&gt;
 # and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 &lt;br /&gt;
 '''# Bonding'''&lt;br /&gt;
 &lt;br /&gt;
 '''#em1 ip manual y esclavo en el &amp;quot;bond0&amp;quot; NIC'''&lt;br /&gt;
 '''auto em1'''&lt;br /&gt;
 '''iface em1 inet manual'''&lt;br /&gt;
 '''bond-master bond0'''&lt;br /&gt;
 '''bond-primary em0''' &lt;br /&gt;
 &lt;br /&gt;
 '''#em2 ídem, creando así un vínculo de enlace 2.'''&lt;br /&gt;
 '''auto em2'''&lt;br /&gt;
 '''iface em2 inet manual'''&lt;br /&gt;
 '''bond-master bond0'''&lt;br /&gt;
 '''auto bond0'''&lt;br /&gt;
 '''iface bond0 inet static'''&lt;br /&gt;
         '''address 10.255.255.11'''&lt;br /&gt;
        '''netmask 255.255.255.0'''&lt;br /&gt;
        '''gateway 10.255.255.254'''&lt;br /&gt;
 '''bond-mode active-backup'''&lt;br /&gt;
 '''bond-miimon 100'''&lt;br /&gt;
 '''bond-slaves none'''&lt;br /&gt;
 &lt;br /&gt;
 '''# em3 replica entre servidores'''&lt;br /&gt;
 '''auto em3'''&lt;br /&gt;
 '''iface em3 inet static'''&lt;br /&gt;
         '''address 10.255.254.10'''&lt;br /&gt;
        '''netmask 255.255.255.0'''&lt;br /&gt;
 &lt;br /&gt;
 '''# em4 gestion'''&lt;br /&gt;
 '''auto em4'''&lt;br /&gt;
 '''iface em4 inet static'''&lt;br /&gt;
         '''address 172.17.47.255'''&lt;br /&gt;
         '''netmask 255.255.0.0'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Reiniciamos el sistema para que el kernel tome los cambios.&lt;br /&gt;
&lt;br /&gt;
* Comprobación que en las dos maquinas el archivo '''/etc/host''' contenga el los nombre de las dos maquinas a vincular. En el ejemplo el archivo en ambas maquinas es:&lt;br /&gt;
&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 127.0.0.1       localhost&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.11   vivaitcall-CL-UAH-1&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.12   vivaitcall-CL-UAH-2&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.10   vivaitcall-CL-UAH&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.10   BDTR&lt;br /&gt;
 &lt;br /&gt;
 10.255.254.10   vivaitcall-CL-UAH-1-em3&lt;br /&gt;
 &lt;br /&gt;
 10.255.254.11   vivaitcall-CL-UAH-2-em3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Creamos dos particiones iguales en ambos ordenadores , usando el comando '''parted'''.&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# '''parted /dev/sda'''&lt;br /&gt;
 GNU Parted 2.3&lt;br /&gt;
 Using /dev/sda&lt;br /&gt;
 Welcome to GNU Parted! Type 'help' to view a list of commands.&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Number  Start   End     Size    File system     Name  Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 &lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                 boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
        237GB   1000GB  763GB   Free Space&lt;br /&gt;
 &lt;br /&gt;
 (parted) mkpart primary 237GB 1000GB&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Number  Start   End     Size    File system     Name     Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                    boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
 5      237GB   1000GB  763GB                   primary  No File System como ext4&lt;br /&gt;
        1000GB  1000GB  204kB   Free Space&lt;br /&gt;
 (parted)quit&lt;br /&gt;
 mkfs.ext4 /dev/sda5&lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# '''parted /dev/sda'''&lt;br /&gt;
 GNU Parted 2.3&lt;br /&gt;
 Using /dev/sda&lt;br /&gt;
 Welcome to GNU Parted! Type 'help' to view a list of commands.&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Number  Start   End     Size    File system     Name     Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                    boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
 5      237GB   1000GB  763GB                   primary&lt;br /&gt;
        1000GB  1000GB  204kB   Free Space&lt;br /&gt;
 (parted) rm 5&lt;br /&gt;
 (parted) mkpart primary 237GB 1000GB&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 &lt;br /&gt;
 Number  Start   End     Size    File system     Name     Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                    boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
 5      237GB   1000GB  763GB   ext4            primary  Si File Sytem ext4&lt;br /&gt;
        1000GB  1000GB  204kB   Free Space&lt;br /&gt;
 (parted)quit&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Instalar los paquetes necesarios para el drbd. '''En Ubuntu server 14.04 ya está instalado.'''&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 aptitude install drbd8-utils  &lt;br /&gt;
 aptitude update (si no instala el drbd8-utils actualizar)&lt;br /&gt;
 aptitude install drbd8-utils  (volver a lanzar)&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
* Creamos el archivo '''/etc/drbd.conf''' en ambas maquinas:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 # You can find an example in  /usr/share/doc/drbd.../drbd.conf.example&lt;br /&gt;
 include &amp;quot;drbd.d/global_common.conf&amp;quot;;&lt;br /&gt;
 include &amp;quot;drbd.d/*.res&amp;quot;;&lt;br /&gt;
 resource MDcluster {&lt;br /&gt;
         protocol C;&lt;br /&gt;
         on vivaitcall-CL-UAH-1 {&lt;br /&gt;
               device /dev/drbd0;&lt;br /&gt;
               disk /dev/sda5;&lt;br /&gt;
               address 10.255.254.10:7788;&lt;br /&gt;
               meta-disk internal;&lt;br /&gt;
        }&lt;br /&gt;
        on vivaitcall-CL-UAH-2 {&lt;br /&gt;
               device /dev/drbd0;&lt;br /&gt;
               disk /dev/sda5;&lt;br /&gt;
               address 10.255.254.11:7788;&lt;br /&gt;
               meta-disk internal;&lt;br /&gt;
        }&lt;br /&gt;
        disk {&lt;br /&gt;
               on-io-error detach;&lt;br /&gt;
        }&lt;br /&gt;
        net {&lt;br /&gt;
               max-buffers 2048;&lt;br /&gt;
               ko-count 4;&lt;br /&gt;
        }&lt;br /&gt;
        syncer {&lt;br /&gt;
               rate 100M;&lt;br /&gt;
               al-extents 257;&lt;br /&gt;
        }&lt;br /&gt;
        startup {&lt;br /&gt;
                wfc-timeout 0;&lt;br /&gt;
                degr-wfc-timeout 120;&lt;br /&gt;
        }&lt;br /&gt;
 }&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Reiniciamos el sistema para que el kernel tome los cambios.&lt;br /&gt;
* Inicializamos el recurso, para ello primero deberemos crear los recursos DRBD teclearemos en ambas maquinas. Desde /etc.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
  drbdadm create-md MDcluster  (no y yes )&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Si tenemos algún problema porque ya exista sistema de ficheros.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 dd if=/dev/zero of=/dev/sda5 bs=1M count=128&lt;br /&gt;
 drbdadm create-md MDcluster  (no y yes )&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Reiniciamos ambas maquinas para que su kernel tome los cambios.&lt;br /&gt;
* Levantamos el servicio del DRBD en ambos servidores (nos preguntara que si queremos enviar los datos a los desarrolladores de drbd) tecleando no, no se envían.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 service drbd start&lt;br /&gt;
 /etc/init.d/drbd start&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Ahora &amp;lt;u&amp;gt;ambas maquinas son secundarias&amp;lt;/u&amp;gt;.&lt;br /&gt;
: Indicar cual de las dos maquinas usaremos como primaria, por tanto en la maquina elegida habra que ejecutar:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 drbdadm -- --overwrite-data-of-peer primary all (en una máquina)&lt;br /&gt;
:&amp;lt;small&amp;gt;'''Nota:''' La ip virtual que va a estar asignada a la maquina activa es  172.25.129.70.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Podemos teclear el comando '''''cat''''' para ver si esta sincronizando  y su progreso:&lt;br /&gt;
&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 cat /proc/drbd&lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' El servicio DRBD  aparecera como '''''Primary/Secondary'''''  si ejecutamos en el primario ; &lt;br /&gt;
 y aparecerá ''''Secondary/Primary'''' si lo ejecutamos en el secundario. &amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
* Instalación de los script de arranque:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 update-rc.d -f drbd remove (en las dos maquinas)&lt;br /&gt;
 update-rc.d drbd start 13 2 3 4 5 . stop 87 0 1 6 . (en las dos máquinas)&lt;br /&gt;
|}&lt;br /&gt;
* Seleccionar la fuente de sincronización.&lt;br /&gt;
:Formateamos un disco de la maquina que queramos que funcione como fuente del servicio DRBD, para evitar conflictos:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 mkfs.ext4  /dev/drbd0&lt;br /&gt;
|}&lt;br /&gt;
: Creamos el directorio sobre el que vamos a montar el disco, en ambas maquinas.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 mkdir  /HDcluster&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Creamos un archivo dentro '''''/HDcluster''''' de que se verá solo cuando el disco no está montado en ambas maquinas.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 touch sinMontar&lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' Este archivo nos puede servir para monitorizar mediante zabbix, nagios, ... que el disco no está montado.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:  En una de las maquinas montamos el disco (desde fuera del directorio HDcluster) &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 mount  /dev/drbd0 /HDcluster&lt;br /&gt;
|}&lt;br /&gt;
* Procedemos a mover todos los datos que necesitemos en este disco y a crear accesos directos, los directorios que vamos a mover son los siguientes:&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 /etc/asterisk&lt;br /&gt;
 /var/lib/asterisk&lt;br /&gt;
 /usr/lib/asterisk&lt;br /&gt;
 /usr/spool/asterisk&lt;br /&gt;
 /var/lib/mysql&lt;br /&gt;
 /var/tftp/&lt;br /&gt;
|}&lt;br /&gt;
: El procedimiento que vamos a seguir es el siguiente, en el primer ordenador:&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 '''Cd /HDcluster'''&lt;br /&gt;
 '''tar -zcvf etc-asterisk.tgz /etc/asterisk'''&lt;br /&gt;
 '''tar -zxvf  etc-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /etc/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/etc/asterisk /etc/asterisk'''&lt;br /&gt;
 '''tar -zcvf var-lib-asterisk.tgz /var/lib/asterisk'''&lt;br /&gt;
 '''tar -zxvf  var-lib-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /var/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/asterisk /var/lib/asterisk'''&lt;br /&gt;
 '''tar -zcvf usr-lib-asterisk.tgz /usr/lib/asterisk'''&lt;br /&gt;
 '''tar -zxvf  usr-lib-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /usr/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/usr/lib/asterisk /usr/lib/asterisk'''&lt;br /&gt;
 '''tar -zcvf var-spool-asterisk.tgz /var/spool/asterisk'''&lt;br /&gt;
 '''tar -zxvf  var-spool-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /var/spool/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/spool/asterisk /var/spool/asterisk'''&lt;br /&gt;
 '''tar -zcvf var-lib-mysql.tgz /var/lib/mysql'''&lt;br /&gt;
 '''tar -zxvf  var-lib-mysql.tgz'''&lt;br /&gt;
 '''rm -rf /var/lib/mysql'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/mysql /var/lib/mysql'''&lt;br /&gt;
 '''tar -zcvf var-lib-phoneprov-tftp.tgz /var/lib/phoneprov-tftp/'''&lt;br /&gt;
 '''tar -zxvf  var-lib-phoneprov-tftp.tgz'''&lt;br /&gt;
 '''rm -rf /var/lib/phoneprov-tftp/'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/phoneprov-tftp /var/lib/phoneprov-tftp'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: En la segunda maquina debemos borrar los directorios y crear los accesos directos.&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''rm -rf /etc/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/etc/asterisk /etc/asterisk'''&lt;br /&gt;
 '''rm -rf /var/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/asterisk /var/lib/asterisk'''&lt;br /&gt;
 '''rm -rf /usr/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/usr/lib/asterisk /usr/lib/asterisk'''&lt;br /&gt;
 '''rm -rf /var/spool/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/spool/asterisk /var/spool/asterisk'''&lt;br /&gt;
 '''rm -rf /var/lib/mysql'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/mysql /var/lib/mysql'''&lt;br /&gt;
 '''rm -rf /var/lib/phoneprov-tftp'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/phoneprov-tftp /var/lib/phoneprov-tftp'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Configurar heartbeat para las dos maquinas.&lt;br /&gt;
: Instalamos heartbeat en las dos maquinas. '''En UBUNTU Server 14.04 ya está instalado.'''&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 aptitude install heartbeat&lt;br /&gt;
|}&lt;br /&gt;
: Debemos modificar 3 ficheros en cada una de las maquinas, estos se encuentran en '''/etc/ha.d'''. El primer fichero a modificar es '''''ha.cf.''''':&lt;br /&gt;
:: En la maquina ''vivaitcall-CL-UAH-1'' es: &lt;br /&gt;
::{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# cat /etc/ha.d/ha.cf&lt;br /&gt;
 '''# Explicacion en /usr/share/doc/heartbeat/ha.cf.gz'''&lt;br /&gt;
 &lt;br /&gt;
 '''udpport 694'''&lt;br /&gt;
 '''baud 19200'''&lt;br /&gt;
 '''auto_failback off'''&lt;br /&gt;
 '''use_logd yes'''&lt;br /&gt;
 '''crm no'''&lt;br /&gt;
 &lt;br /&gt;
 '''# Temporizaciones en segs'''&lt;br /&gt;
 '''logfacility local0'''&lt;br /&gt;
 '''keepalive 2'''&lt;br /&gt;
 '''deadtime 8'''&lt;br /&gt;
 '''warntime 16'''&lt;br /&gt;
 '''initdead 64'''&lt;br /&gt;
 '''deadping 6'''&lt;br /&gt;
 &lt;br /&gt;
 '''#ucast bond0 vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''ucast bond0 vivaitcall-CL-UAH-2'''&lt;br /&gt;
 &lt;br /&gt;
 '''#ucast em3 vivaitcall-CL-UAH-1-em3'''&lt;br /&gt;
 '''ucast em3 vivaitcall-CL-UAH-2-em3'''&lt;br /&gt;
 &lt;br /&gt;
 '''#Ping a puerta de enlace,gw1,gw2,gw3,gw4'''&lt;br /&gt;
 '''ping_group red_local 10.255.255.12'''&lt;br /&gt;
 &lt;br /&gt;
 '''respawn hacluster /usr/lib/heartbeat/ipfail'''&lt;br /&gt;
 '''apiauth ipfail gid=haclient uid=hacluster'''&lt;br /&gt;
 &lt;br /&gt;
 '''node vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''node vivaitcall-CL-UAH-2'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:: Y en la maquina ''vivaitcall-CL-palacio-2'' es:&lt;br /&gt;
::{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# cat /etc/ha.d/ha.cf&lt;br /&gt;
 '''# Explicacion en /usr/share/doc/heartbeat/ha.cf.gz'''&lt;br /&gt;
 &lt;br /&gt;
 '''udpport 694'''&lt;br /&gt;
 '''baud 19200'''&lt;br /&gt;
 '''auto_failback off'''&lt;br /&gt;
 '''use_logd yes'''&lt;br /&gt;
 '''crm no'''&lt;br /&gt;
 &lt;br /&gt;
 '''# Temporizaciones en segs'''&lt;br /&gt;
 '''logfacility local0'''&lt;br /&gt;
 '''keepalive 2'''&lt;br /&gt;
 '''deadtime 8'''&lt;br /&gt;
 '''warntime 16'''&lt;br /&gt;
 '''initdead 64'''&lt;br /&gt;
 '''deadping 6'''&lt;br /&gt;
 &lt;br /&gt;
 '''ucast bond0 vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''#ucast bond0 vivaitcall-CL-UAH-2'''&lt;br /&gt;
 &lt;br /&gt;
 '''ucast em3 vivaitcall-CL-UAH-1-em3'''&lt;br /&gt;
 '''#ucast em3 vivaitcall-CL-UAH-2-em3'''&lt;br /&gt;
 &lt;br /&gt;
 '''#Ping a puerta de enlace gw1 gw2 gw3 gw4'''&lt;br /&gt;
 '''ping_group red_local 10.255.255.12'''&lt;br /&gt;
 &lt;br /&gt;
 '''respawn hacluster /usr/lib/heartbeat/ipfail'''&lt;br /&gt;
 '''apiauth ipfail gid=haclient uid=hacluster'''&lt;br /&gt;
 &lt;br /&gt;
 '''node vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''node vivaitcall-CL-UAH-2'''&lt;br /&gt;
|}&lt;br /&gt;
::'''Nota:''' El parámetro '''auto_failback''' se utiliza para indicar si queremos que al recuperarse una maquina adquiera los recursos sobre los que tiene prioridad.&lt;br /&gt;
:El segundo fichero es '''''authkeys''''',, este fichero es el mismo en ambas maquinas: &lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 chmod 600 authkeys '''(importante)'''&lt;br /&gt;
 auth 1&lt;br /&gt;
 1 sha1 claveSecretaATope&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:El tercer fichero '''haresources''', donde especificaremos en las dos maquinas que deben apuntar a la maquina que queremos que tenga prioridad en la adquisición de los recursos, este fichero es el mismo en las dos maquinas: &lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 MÁQUINA 1 -&amp;gt; vivaitcall-CL-palacio-1 hb_mdtel&lt;br /&gt;
 MÁQUINA 2-&amp;gt; vivaitcall-CL-palacio-1 hb_mdtel &lt;br /&gt;
|}&lt;br /&gt;
: Copiaremos en el directorio '''/etc/ha.d/resource.d/''' los scripts de arranque con permisos 755 (lo podemos hacer mediante WINSCP). Los scripts se encuentran en '''''C:\Documents and Settings\javier.gutierrez.MDTEL\Mis documentos\Centrales\Asterisk\Cluster\scripts'''''.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 chmod 755 hb_catalina&lt;br /&gt;
 chmod 755 hb_mdtel&lt;br /&gt;
 chmod 755 hb_mdtel_firewall&lt;br /&gt;
|}&lt;br /&gt;
: Deberemos editar  el archivo '''hb_mdtel'''&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 (IP flotante a.b.c.d./mask) 10.255.255.10&lt;br /&gt;
 CAD_IP_FLOTA=10.255.255.10/24/bond0&lt;br /&gt;
|}&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* Paramos el proceso '''myAcdSuperv'''.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 mv /etc/rc2.d/S02myAcdSuperv s02myAcdSuperv&lt;br /&gt;
|}&lt;br /&gt;
* Reiniciamos ambas maquinas para que su kernel tome los cambios.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de buen funcionamiento del cluster ====&lt;br /&gt;
* La maquina activa tiene que tener en HDcluster montado el disco con todos sus directorios y la maquina inactiva no (tenemos que ver el archivo que hemos creado &amp;quot;sinMontar&amp;quot;). &lt;br /&gt;
* La ip virtual tiene que estar en la maquina activa (ifconfig)  y no tiene que estar en la inactiva. &lt;br /&gt;
* El asterisk tiene que estar arrancado en la maquina activa y parado en la inactiva. &lt;br /&gt;
* Tecleando la ip de la maquina activa en un navegador debemos acceder al portal de vivait-call y en la inactiva no debe de estar activo. &lt;br /&gt;
* Para cambiar el cluster manualmente podemos utilizar los siguientes comandos:&lt;br /&gt;
:{|&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
  /usr/share/heartbeat/hb_takeover&lt;br /&gt;
|}&lt;br /&gt;
: La maquina desde la que se ejecuta se convierte en la maquina activa&lt;br /&gt;
:{|&lt;br /&gt;
 |- &lt;br /&gt;
 |&lt;br /&gt;
  /usr/share/heartbeat/hb_standby&lt;br /&gt;
 |}&lt;br /&gt;
: La maquina desde la que se ejecuta deja de ser la maquina activa&lt;br /&gt;
&lt;br /&gt;
==== Notas para MySQL ====&lt;br /&gt;
Si mysql es parte del cluster tenemos que tener en cuenta dos cosas:&lt;br /&gt;
&lt;br /&gt;
* El archivo '''/etc/mysql/debían.cnf''' contiene una clave que debe ser igual en ambas maquinas y debe ser la clave de la máquina de donde cojamos la base de datos.&amp;lt;br&amp;gt;&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 # Automatically generated for Debian scripts. DO NOT TOUCH!&lt;br /&gt;
 [client]&lt;br /&gt;
 host     = localhost&lt;br /&gt;
 user     = debian-sys-maint&lt;br /&gt;
 password = AI6AdPtnhLUrNm1S&lt;br /&gt;
 socket   = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysql_upgrade]&lt;br /&gt;
 user     = debian-sys-maint&lt;br /&gt;
 password = AI6AdPtnhLUrNm1S&lt;br /&gt;
 socket   = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 basedir  = /usr&lt;br /&gt;
|} &amp;lt;br&amp;gt;&lt;br /&gt;
* El archivo '''/etc/apparmor.d/usr.sbin.mysqld''' contiene donde pueden estar ubicados los archivos de mysql, al cambiar su ubicación y poner un enlace directo en /var/lib/mysql si no modificamos este archivo mysql no arrancara al no tener la nueva ubicación entre sus localizaciones permitidas. Este es un ejemplo de las líneas que debemos añadir. &amp;lt;br&amp;gt;&lt;br /&gt;
:{|&lt;br /&gt;
|-  &lt;br /&gt;
|&lt;br /&gt;
 /var/run/mysqld/mysqld.sock w, (copiar después de esta linea)&lt;br /&gt;
 &lt;br /&gt;
 #//!!&lt;br /&gt;
   /HDcluster/var/lib/mysql/ r,&lt;br /&gt;
   /HDcluster/var/lib/mysql/** rwk,&lt;br /&gt;
   #//!!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Notas de desincronización ====&lt;br /&gt;
EL servicio del DRBD esta iniciado pero al teclear el comando cat /proc/drbd para ver si esta sincronizando se presenta &amp;quot;'''primary/unknown&amp;quot; y/o secondary/unknown''' &amp;quot;.&lt;br /&gt;
* En el nodo primary  &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 drbdadm connect all &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* En el nodo secondary  &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 drbdadm disconnect all  &lt;br /&gt;
 drbdadm -- --discard-my-data connect all&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Adaptar red a cliente ====&lt;br /&gt;
Para adaptar la red de los equipos al entorno del cliente hay que editar los siguientes ficheros:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 /etc/network/interfaces&lt;br /&gt;
 /etc/resolv.conf&lt;br /&gt;
 /etc/hosts&lt;br /&gt;
 /etc/ha.d/resource.d/hb_mdtel&lt;br /&gt;
 /etc/ha.d/ha.cf &lt;br /&gt;
 - TFTP: &lt;br /&gt;
 /etc/inetd.conf (IP del cluster)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
Tras la modificaciones oportunas, se debe reiniciar las dos máquinas para cargar las nuevas configuraciones.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Matriz de conmutación ===&lt;br /&gt;
&lt;br /&gt;
Encontramos dos diferentes núcleos de conmutación en la plataforma VIVAit:&lt;br /&gt;
&lt;br /&gt;
* Para los nodos de procesamiento ACD el núcleo de conmutación es asterisk 1.4 RSP con fuertes modificaciones realizadas por MDtel en determinados módulos (queues, chan_spy entre otros)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Para los nodos que realizan funcionalidad de gateway y/o procesamiento de telefonía corporativa, se utiliza como núcleo de conmutación asterisk 13, versión certified&lt;br /&gt;
https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Documentation&lt;br /&gt;
&lt;br /&gt;
==== Modificaciones realizadas sobre Asterisk 13 certified 2 ====&lt;br /&gt;
&lt;br /&gt;
===== Archivos añadidos por '''MD'''tel =====&lt;br /&gt;
Los archivos añadidos son los siguientes:&lt;br /&gt;
&lt;br /&gt;
* '''apps/app_ucid.c'''&lt;br /&gt;
* '''apps/app_cli.c'''&lt;br /&gt;
* '''apps/app_crash.c'''&lt;br /&gt;
* '''apps/app_mdintz.c'''&lt;br /&gt;
* '''apps/app_mdintz.exports.in'''&lt;br /&gt;
* '''include/asterisk/mdintz.h'''&lt;br /&gt;
* '''include/asterisk/ucid.h'''&lt;br /&gt;
* '''res/res_mdcal.c'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ apps/app_mdintz.exports.in '''&lt;br /&gt;
&lt;br /&gt;
Este archivo sirve para la exportación de funciones del mdintz para el uso por aplicaciones externas&lt;br /&gt;
&lt;br /&gt;
===== Modificaciones de archivos =====&lt;br /&gt;
&lt;br /&gt;
Los archivos modificados por '''MD'''tel son los mostrados a continuación:&lt;br /&gt;
&lt;br /&gt;
* '''apps/app_mixmonitor.c''' &lt;br /&gt;
* '''res/res_calendar_caldav.c'''&lt;br /&gt;
* '''contrib/scripts/safe_asterisk'''&lt;br /&gt;
* '''contrib/init.d/rc.debian.asterisk'''&lt;br /&gt;
* '''channels/sig_pri.c'''&lt;br /&gt;
* '''channels/chan_sip.c'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ main/audiohook.c''' &amp;lt;!--style=&amp;quot;color:#0000ff&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''audiohook.c''' ha sido modificado para solucionar un crash de asterisk al utilizar en el mixmonitor las opciónes r y t &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ app_crash.c '''&lt;br /&gt;
&lt;br /&gt;
Esta nueva aplicación es sólo compatible con '''Asterisk 13'''. &lt;br /&gt;
&lt;br /&gt;
La documentación de la misma se encuentra en el comando: '''&amp;quot;core show application Crash&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
Esta nueva aplicación ''permite añadir'' al plan de pruebas:&lt;br /&gt;
&lt;br /&gt;
* Generación de una parada de asterisk.&lt;br /&gt;
* Verificación de su impacto. Por ejemplo, no deben cortarse las llamadas en curso, si así está previsto por la topología.&lt;br /&gt;
* Correcta generación de los &amp;quot;core&amp;quot;, comprobando que funciona &amp;quot;backtrace&amp;quot; (bt).&lt;br /&gt;
&lt;br /&gt;
 '''Nota.-''' Esta aplicación no debería estar presente en una instalación de '''Asterisk 13'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ app_mdintz.c y mdintz.h''' &amp;lt;!--style=&amp;quot;color:#0000ff&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esta aplicación sirve como interfaz a entornos (funcionalidades) creados por MDtel&lt;br /&gt;
&lt;br /&gt;
Para mas información consultar la página de [[MDintz|MDintz]].&lt;br /&gt;
&lt;br /&gt;
Las rutas de estos archivos son las siguientes:&lt;br /&gt;
&lt;br /&gt;
'''apps/app_mdintz.c''' &amp;lt;br/&amp;gt;&lt;br /&gt;
'''include/asterisk/mdintz.h '''&lt;br /&gt;
&lt;br /&gt;
 '''app_mdintz.c''' :&lt;br /&gt;
&lt;br /&gt;
'''app_mdintz.c''' orientada al proceso de enrutamiento a implementar en ''intz-nimitz.''&lt;br /&gt;
&lt;br /&gt;
El archivo '''.c''' es casi igual para asterisk 1.4.24 y asterisk 13. &lt;br /&gt;
 '''Nota.-''' Cuando se compila para asterisk 13, es necesario comentar la línea que pone&amp;lt;br /&amp;gt; '''&amp;quot;#define ASTERISK_OLD&amp;quot;.'''&lt;br /&gt;
&lt;br /&gt;
Los cambios implementados son:&lt;br /&gt;
&lt;br /&gt;
* Unificación de código entre las versiones de asterisk&lt;br /&gt;
* Nuevo comando &amp;quot;qry&amp;quot;&lt;br /&gt;
* Posible resolución de &amp;quot;Mal write&amp;quot; en intz-nimitz (a verificar)&lt;br /&gt;
&lt;br /&gt;
En cuanto al nuevo comando, el formato es:&lt;br /&gt;
&lt;br /&gt;
 '''mdintz qry &amp;lt;nHostFijo&amp;gt; &amp;lt;entorno&amp;gt; &amp;lt;servicio&amp;gt; &amp;lt;par1&amp;gt;...&amp;lt;parN&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Permite interrogar a un servidor de igual modo que hace el dialplan con '''fines de diagnóstico'''. La única diferencia es que se ha añadido el parámetro '''&amp;quot;nHostFijo&amp;quot;''' que puede tomar como valor '''&amp;quot;*&amp;quot;''' (lo que solicita una interrogación secuencial a todos los servidores definidos, igual a la funcionalidad del dialplan) ó '''&amp;quot;0&amp;quot;''' a '''&amp;quot;3&amp;quot;''' (que solicita un interrogación dirigida el host indicado como hostN, y sólo a él, en archivo de configuración).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para instalarlo, es necesario copiar:&lt;br /&gt;
&lt;br /&gt;
* '''asterisk/apps/app_mdintz.c'''&lt;br /&gt;
* '''asterisk/include/asterisk/mdintz.h'''&lt;br /&gt;
* En asterisk 1.4.24 conviene asegurar que se ha actualizado '''&amp;quot;asterisk/apps/app_queue.o&amp;quot;''' y '''&amp;quot;asterisk/apps/app_queue.so&amp;quot;'''&lt;br /&gt;
* Luego '''&amp;quot;make&amp;quot;, &amp;quot;make install&amp;quot;''' y module '''&amp;quot;unload/load&amp;quot;''' (mejor &amp;quot;stop now&amp;quot; y start)&lt;br /&gt;
&lt;br /&gt;
'''→ scripts y rc.debian.asterisk'''&lt;br /&gt;
&lt;br /&gt;
cambiado contrib/scripts por el modificado por MDtel&amp;lt;br /&amp;gt;&lt;br /&gt;
cambiado contrib/init.d/rc.debian.asterisk por el modificado por MDtel &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ Carpeta mp3 añadida al directorio addons'''&lt;br /&gt;
&lt;br /&gt;
La carpeta mp3 en addons permite la reproducción desde el diaplan de los mensajes en mp3. En make menuselect hay que marcar el format_mp3 y app_mp3 e instalar el paquete mpg123 de ubuntu &lt;br /&gt;
&lt;br /&gt;
'''→ sig_pri.c'''&lt;br /&gt;
&lt;br /&gt;
Modificado para enviar/recibir el ucid en un primario qsig &lt;br /&gt;
&lt;br /&gt;
Para que se envie el ucis tenemos que habilitar el envio de facilidades en el chan_dahdi.conf&lt;br /&gt;
&lt;br /&gt;
facilityenable = yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ init.d''' &amp;lt;!--style=&amp;quot;color:#0000ff&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Uno de los archivos modificados ha sido '''init.d''', se encuentra en la ruta: '''/etc/init.d/asterisk'''. La modificación realizada es la siguiente:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;background-color:#ffffcc;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| SAFE_ASTEISK=/usr/sbin/safe_asterisk &amp;lt;br/&amp;gt;&lt;br /&gt;
if [ -x $SAFE_ASTERISK ] ; then&amp;lt;br/&amp;gt;&lt;br /&gt;
:# //!! wkw&amp;lt;br/&amp;gt;&lt;br /&gt;
:DAEMON=$SAFE_ASTERISK&amp;lt;br/&amp;gt;&lt;br /&gt;
fi&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--archivo--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''→ safe-asterisk'''&lt;br /&gt;
* Se encuentra en la siguiente ruta:'''/usr/sbin/safe-asterisk''' .En este archivo se ha modificado MAXFILES=32768&lt;br /&gt;
&lt;br /&gt;
'''→ default'''&lt;br /&gt;
&lt;br /&gt;
* Este fichero podemos encontrarlo en: '''/etc/default/asterisk'''. La finalidad de la modificación de este fichero es poder correr como usuario Asterisk, grupo asterisk y generar cores (descomentar línea)&lt;br /&gt;
Las modificaciones realizadas han sido:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;background-color:#ffffcc;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| AST_USER=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
AST_GROUP=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
COREDUMP=yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Nueva función de asterisk: app_cli.so =====&lt;br /&gt;
&lt;br /&gt;
Esta función permite ejecutar desde el '''dialplan''' un comando de línea de consola de '''asterisk (CLI).''' Su primer uso (y esperamos que no último) será para lanzar los '''notify''' que los teléfonos necesitan para el ''reaprovisionamiento'' desde el portal o desde la facilidad de movilidad de usuario.&lt;br /&gt;
&lt;br /&gt;
Básicamente ejecuta un comando y devuelve su salida. Utiliza un archivo intermedio que puede ser:&lt;br /&gt;
&lt;br /&gt;
* '''/dev/null''' si el campo se deja vacío, por tanto, no se puede recuperar la salida.&lt;br /&gt;
* '''TEMP''', en cuyo caso se crea un archivo temporal que se borra antes de finalizar la ejecución de la función.&lt;br /&gt;
* Un nombre de fichero que es responsabilidad del dialplan el borrarlo cuando proceda.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para instalarlo basta copiar '''apps/app_cli.c''' en el directorio ''' &amp;quot;apps&amp;quot; ''' de los fuentes y luego  ejecutar '''&amp;quot;make&amp;quot; y &amp;quot;make install&amp;quot;.'''&lt;br /&gt;
&lt;br /&gt;
A continuación se pasa el resultado de '''&amp;quot;core show function CLI&amp;quot; '''&lt;br /&gt;
&lt;br /&gt;
'''[Synopsis]'''&lt;br /&gt;
&lt;br /&gt;
 Lanza un comando CLI desde dialplan&lt;br /&gt;
&lt;br /&gt;
'''[Description]''' &amp;lt;br /&amp;gt;&lt;br /&gt;
 - CLI(nomArchSal,cmd)&amp;lt;br /&amp;gt;&lt;br /&gt;
 - Si 'nomArchSal' está vacio, se usa '/dev/null' y no se recupera resultado&amp;lt;br /&amp;gt;&lt;br /&gt;
 - Si 'nomArchSal'=TEMP, Se crea un archivo temporal que se borra al final&amp;lt;br /&amp;gt;&lt;br /&gt;
 - En otro caso, se crea el archivo y no se borra&lt;br /&gt;
&lt;br /&gt;
'''[Syntax]'''&amp;lt;br /&amp;gt;&lt;br /&gt;
 CLI(nomArchSal,cmd)&lt;br /&gt;
&lt;br /&gt;
'''[Arguments]'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''nomArchSal'''&lt;br /&gt;
    Archivo de salida (si se omite, /dev/null)&lt;br /&gt;
'''cmd'''&lt;br /&gt;
    Comando a ejecutar via CLI&lt;br /&gt;
&lt;br /&gt;
==== Dialplan  ====&lt;br /&gt;
&lt;br /&gt;
El Dialplan podría considerarse la columna vertebral del sistema ''Asterisk''.&lt;br /&gt;
&lt;br /&gt;
Es una colección ordenada de acciones que se llevan a cabo cuando un usuario marca una serie de números. Hace la función de una tabla de enrutamiento de llamadas.&lt;br /&gt;
&lt;br /&gt;
Todas las configuraciones generales de Asterisk están accesibles en la ruta '''/etc/asterisk'''&lt;br /&gt;
&lt;br /&gt;
'''CONCEPTOS BÁSICOS'''&lt;br /&gt;
&lt;br /&gt;
♦ '''EXTENSIONES'''&lt;br /&gt;
&lt;br /&gt;
Una extensión es una marcación en el teclado de un teléfono. Dicha configuración podemos encontrarla en el archivo '''extensions.conf''' &lt;br /&gt;
&lt;br /&gt;
Por ejemplo, un usuario podría marcar “3001” en su teléfono, y eso sería una extensión. También podría marcar un número de teléfono nacional, como por ejemplo “915881000”, y también sería una extensión.&lt;br /&gt;
&lt;br /&gt;
En Asterisk pueden definirse también extensiones como texto, por tanto no debemos relacionar las extensiones únicamente con números.&lt;br /&gt;
&lt;br /&gt;
Algunas reglas que sería interesante conocer serían las siguientes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Regla''' !! '''Descripción'''&lt;br /&gt;
|-&lt;br /&gt;
| '''X''' || Cualquier cifra de 0 a 9&lt;br /&gt;
|-&lt;br /&gt;
|'''Z'''||Cualquier cifra de 1 a 9&lt;br /&gt;
|-&lt;br /&gt;
|'''N'''||Cualquier cifra de 2 a 9&lt;br /&gt;
|-&lt;br /&gt;
|'''[x-y]'''||Cualquier cifra de &amp;quot;x&amp;quot; a &amp;quot;y&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''[xyz]'''|| 	Las cifras &amp;quot;x&amp;quot;, &amp;quot;y&amp;quot; o &amp;quot;z&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''.'''||Una o más repeticiones del símbolo anterior&lt;br /&gt;
|-&lt;br /&gt;
|'''!'''||Cero o más repeticiones del símbolo anterior&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Estas reglas son necesarias a la hora de definir por ejemplo todos los números de teléfono posibles en España &lt;br /&gt;
&lt;br /&gt;
♦ '''PRIORIDADES'''&lt;br /&gt;
&lt;br /&gt;
En lenguaje scripting, las acciones se van ejecutando de arriba a abajo en orden. En cambio, en Asterisk, el orden en el que se ejecutan las acciones es el indicado mediante números.&lt;br /&gt;
Primero se ejecutará la acción 1, luego la 2...así sucesivamente.&lt;br /&gt;
&lt;br /&gt;
Es decir no basta con definir las acciones que se llevarán a cabo, también debemos indicar el orden en el que se llevarán a cabo.&lt;br /&gt;
&lt;br /&gt;
♦ '''CONTEXTOS'''&lt;br /&gt;
&lt;br /&gt;
Es mecanismo que nos permite variar el comportamiento del sistema en función del número que se marque. Su misión es aumentar la seguridad del sistema ofreciendo servicios diferenciados en función del usuario.&lt;br /&gt;
&lt;br /&gt;
La sintaxis típica es el nombre del contexto englobado entre corchetes [nombre_contexto]. Si un dispositivo no tiene un contexto definido se redirige directamente al contexto por defecto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los ficheros que conforman el Dialplan se clasifican en:&lt;br /&gt;
&lt;br /&gt;
* '''Generales'''&lt;br /&gt;
* '''Particulares'''&lt;br /&gt;
* '''Web'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Fichero''' !! '''Función'''&lt;br /&gt;
|-&lt;br /&gt;
| '''Generales''' || Se encuentran los ficheros de propios de MDtel y Asterisk. Es importante remarcar que estos ficheros NO pueden ser modificados por el usuario.&lt;br /&gt;
|-&lt;br /&gt;
|'''Particular'''||Estos ficheros son los únicos que puede modificar el usuario&lt;br /&gt;
|-&lt;br /&gt;
|'''Web'''|| Se encierran aquí los archivos generados automáticamente por la plataforma, a través del portal&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
En función del nodo en el que estemos trabajando, encontraremos dos tipos de dialplan:&lt;br /&gt;
&lt;br /&gt;
'''* Dialplan ACD''' --&amp;gt; Dialplan que aplica a nodos ACD&lt;br /&gt;
&lt;br /&gt;
'''* Dialplan corporativa''' --&amp;gt; Dialplan que aplica a nodos de corporativa o gateways (ya sean de corporativa o ACD)&lt;br /&gt;
&lt;br /&gt;
A continuación se muestran las tablas con los ficheros correspondientes a cada Dialplan.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;FloralWhite&amp;quot;&lt;br /&gt;
|+ '''Ficheros de configuración Dialplan Corporativo'''&lt;br /&gt;
| '''GENERALES'''&lt;br /&gt;
| '''PARTICULARES'''&lt;br /&gt;
| '''WEB'''&lt;br /&gt;
|-&lt;br /&gt;
| ext_Grabaciones.conf &amp;lt;br /&amp;gt;ext_InicioLlamada.conf &amp;lt;br /&amp;gt; ext_InicioLlamada_Dahdi.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP.conf &amp;lt;br/&amp;gt;ext_InicioLlamada_TrunkSIP.conf &amp;lt;br /&amp;gt;ext_MARCAR_ColaCentralita.conf &amp;lt;br /&amp;gt; ext_MARCAR_ColaCentralita_Dial.conf&amp;lt;br /&amp;gt; ext_MARCAR_Cola.conf &amp;lt;br /&amp;gt;ext_MARCAR_Cola_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR.conf  &amp;lt;br /&amp;gt; ext_MARCAR_DejarMensaje.conf &amp;lt;br /&amp;gt; ext_MARCAR_DejarMensaje_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Extension.conf&amp;lt;br /&amp;gt;ext_MARCAR_Extension_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_nimitz.conf&amp;lt;br /&amp;gt;ext_MARCAR_Interno.conf &amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje.conf &amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR_Nodo.conf&amp;lt;br /&amp;gt;ext_MARCAR_Nodo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Servicios.conf &amp;lt;br /&amp;gt;ext_MARCAR_VDN.conf &amp;lt;br /&amp;gt;MARCAR_VDN_Dial.conf&amp;lt;br /&amp;gt;ext_MDtel.conf &amp;lt;br /&amp;gt;ext_MDtel_Var.conf &amp;lt;br /&amp;gt;ext_Subrutinas_AnchoBanda.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD_Facilidad.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD_Facilidad.conf &amp;lt;br /&amp;gt; ext_Subrutinas_Colas.conf &amp;lt;br /&amp;gt;ext_Subrutinas.conf &amp;lt;br /&amp;gt;ext_Subrutinas_Enrutamiento.conf &amp;lt;br /&amp;gt;ext_Subrutinas_finLlamada.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Grabacion.conf&amp;lt;br /&amp;gt;ext_Subrutinas_nimitz.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Varias.conf&amp;lt;br /&amp;gt;ext_Subscribe.conf&amp;lt;br /&amp;gt;ext_Transfer.conf &amp;lt;br /&amp;gt;ext_Transfer_ExtSIP.conf&amp;lt;br /&amp;gt;ext_Transfer_TrunkInternos.conf &amp;lt;br /&amp;gt;ext_TrunkInternos.conf&amp;lt;br /&amp;gt;ext_TrunkInternos_Dial.conf &amp;lt;br /&amp;gt;sip_Estatico.conf&amp;lt;br /&amp;gt; sip_GENCUST.conf &amp;lt;br /&amp;gt;sip_notify.conf &amp;lt;br /&amp;gt;queues.conf &amp;lt;br /&amp;gt; queues_GENERAL.conf &amp;lt;br /&amp;gt;queues_PLANTILLACOLAS.conf&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| ext_Enrutador_Particular.conf&amp;lt;br /&amp;gt; ext_InicioLlamada_Dahdi_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_Particular.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_TrunkSIP_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_Extension_Particular.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo_Particular.conf &amp;lt;br/&amp;gt; ext_MARCAR_Facilidad_Particular.conf&amp;lt;br /&amp;gt; ext_MARCAR_VDN_Particular.conf &amp;lt;br /&amp;gt;ext_MDtel_Particular.conf &amp;lt;br/&amp;gt; ext_TrunkInternos_Particular.conf &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|asterisk_WEB.conf &amp;lt;br /&amp;gt; ext_MDtel_WEB.conf &amp;lt;br /&amp;gt; sip_trunkExt_WEB.conf &amp;lt;br /&amp;gt;sip_trunkInt_WEB.conf &amp;lt;br /&amp;gt;sip_trunk_WEB.conf &amp;lt;br /&amp;gt; sip_WEB.conf &amp;lt;br /&amp;gt; queues_WEB.conf&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;FloralWhite&amp;quot;&lt;br /&gt;
|+ '''Ficheros de configuración Dialplan ACD'''&lt;br /&gt;
| '''GENERALES'''&lt;br /&gt;
| '''PARTICULARES'''&lt;br /&gt;
| '''WEB'''&lt;br /&gt;
|-&lt;br /&gt;
| ext_Enrutador.conf&amp;lt;br /&amp;gt;ext_Grabaciones.conf &amp;lt;br /&amp;gt; ext_InicioLlamada.conf &amp;lt;br /&amp;gt; ext_InicioLlamada_CTI.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_Dahdi.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_Marcador.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_TrunkSIP.conf &amp;lt;br /&amp;gt;ext_MARCAR_ColaCentralita.conf &amp;lt;br /&amp;gt;ext_MARCAR_ColaCentralita_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR_Cola.conf &amp;lt;br /&amp;gt;ext_MARCAR_Cola_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR.conf &amp;lt;br /&amp;gt;ext_MARCAR_DejarMensaje.conf &amp;lt;br /&amp;gt;ext_MARCAR_DejarMensaje_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Extension.conf &amp;lt;br /&amp;gt;ext_MARCAR_Extension_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_nimitz.conf&amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje.conf &amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Nodo.conf &amp;lt;br /&amp;gt;ext_MARCAR_Nodo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR_Servicios.conf &amp;lt;br /&amp;gt;ext_MARCAR_VDN.conf &amp;lt;br /&amp;gt;ext_MARCAR_VDN_Dial.conf&amp;lt;br /&amp;gt;ext_MDtel.conf &amp;lt;br /&amp;gt;ext_MDtel_Var.conf &amp;lt;br /&amp;gt;ext_Subrutinas_AnchoBanda.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD_Facilidad.conf &amp;lt;br /&amp;gt; ext_Subrutinas_Colas.conf &amp;lt;br /&amp;gt;ext_Subrutinas.conf &amp;lt;br /&amp;gt;ext_Subrutinas_Enrutamiento.conf &amp;lt;br /&amp;gt; ext_Subrutinas_finLlamada.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Grabacion.conf &amp;lt;br /&amp;gt;ext_Subrutinas_nimitz.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Varias.conf &amp;lt;br /&amp;gt;ext_Subscribe.conf&amp;lt;br /&amp;gt;ext_Transfer.conf &amp;lt;br /&amp;gt;ext_Transfer_ExtSIP.conf&amp;lt;br /&amp;gt;ext_Transfer_TrunkInternos.conf &amp;lt;br /&amp;gt;ext_TrunkInternos.conf &amp;lt;br /&amp;gt;ext_TrunkInternos_Dial.conf &amp;lt;br /&amp;gt;queues_GENERAL.conf&amp;lt;br /&amp;gt;queues_PLANTILLACOLAS.conf &amp;lt;br /&amp;gt;sip_GENCUST.conf &amp;lt;br /&amp;gt;sip_GENERAL.conf &amp;lt;br /&amp;gt;sip_notify.conf &amp;lt;br /&amp;gt;sip_PLANTILLAEXT.conf&amp;lt;br /&amp;gt;sip_supervision.conf &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| ext_Enrutador_Particular.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_CTI_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_Dahdi_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_Marcador_Particular.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_Particular.conf.&amp;lt;br /&amp;gt;ext_InicioLlamada_TrunkSIP_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_Externo_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_VDN_Particular.conf&amp;lt;br /&amp;gt; ext_MDtel_Particular.conf&amp;lt;br /&amp;gt;ext_TrunkInternos_Particular.conf&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
|asterisk_WEB.conf &amp;lt;br /&amp;gt; ext_MDtel_WEB.conf &amp;lt;br /&amp;gt;queues_WEB.conf&amp;lt;br /&amp;gt; sip_trunkInt_WEB.conf &amp;lt;br /&amp;gt;sip_WEB.conf &amp;lt;br /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Servicios networking ===&lt;br /&gt;
Son muy importantes las configuraciones adecuadas de los servicios de:&lt;br /&gt;
&lt;br /&gt;
* '''NTP''': El sistema en global ha de estar sincronizado; todos los servidores y puestos de trabajo (en el caso de ''VIVA''it Suite) han de estar perfectamente sincronizados; los servidores de la plataforma se sincronizarán con el NTP del cliente; si el cliente no tiene NTP será necesario que un servidor de la plataforma se sincronice con un NTP externo y este sea el servidor para el resto de la plataforma&lt;br /&gt;
&lt;br /&gt;
* '''DNS''': La configuración de DNS de la plataforma será coherente con el resto de la plataforma IT del cliente&lt;br /&gt;
&lt;br /&gt;
* '''DHCP''': Es necesario coordinar con el cliente la asignación de direcciones para los diferentes elementos de la plataforma '''''VIVA'''''it, fundamentalmente para terminales telefónicos; en este caso además será necesario activa la opción 66 que permitirá definir el servidor TFTP del que los terminales cogerán sus ficheros de aprovisionamiento&lt;br /&gt;
&lt;br /&gt;
=== Bases de datos (BBDD)===&lt;br /&gt;
&lt;br /&gt;
La base de datos del sistema se basa en el motor de base de datos MySQL, es un elemento crítico del sistema, en el que insertan y del que obtiene mucha información múltiples procesos.&lt;br /&gt;
Muchas comunicaciones entre procesos se realizan vía Base de Datos (tabla COM_COMUNICADOS). Pueden existir distintas instancias de base de datos que explicadas en las siguientes secciones, nuestra base de datos tiene la siguiente estructura: [[Base de datos|Información completa de la BD]]. Podéis ampliar más información en https://dev.mysql.com/doc/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== BBDD Tiempo Real ====&lt;br /&gt;
En la base de datos de tiempo real insertan información todos los procesos del sistema, y se realizan los cambios en configuración utilizando como herramienta el portal de administración y '''''VIVA'''''it Supervisor&lt;br /&gt;
&lt;br /&gt;
De la base de datos de tiempo real leen los procesos que requieren información, y las aplicaciones:&lt;br /&gt;
*'''''VIVA'''''it Supervisor (para reporting de tiempo real)&lt;br /&gt;
*PanelWeb&lt;br /&gt;
*Datos de sesión de '''''VIVA'''''it Desk&lt;br /&gt;
*Monitorización Zabbix&lt;br /&gt;
* Otros&lt;br /&gt;
&lt;br /&gt;
El portal de administración se encarga de escribir las configuraciones añadidas o modificadas en la base de datos&lt;br /&gt;
&lt;br /&gt;
Para cuando la BDTR contienen un número masivo de datos, existe un script que borra el contenido de ciertas tablas de la BD (tablas DAT_) dejando solamente datos de un cierto número de días configurable.&lt;br /&gt;
Este script se llama borraRegistrosNimitz.pl; para mas información consultar el apartado de Howto's.&lt;br /&gt;
&lt;br /&gt;
==== BBDD Réplica ====&lt;br /&gt;
A efectos de asegurar las prestaciones del sistema, se establece una réplica de la base de datos, sincronizada con la de tiempo real; los procesos y aplicaciones pesados, que realicen consultas a las base de datos que puedan comprometer las prestaciones del sistema atacan a la réplica y nunca a la base de datos de tiempo real&lt;br /&gt;
&lt;br /&gt;
Es posible que en instalaciones pequeñas no exista réplica, en cuyo caso se establece una base de datos unificada sobre la de tiempo real, en la que se añaden índices y procedimientos almacenados que típicamente residen en la de réplica.&lt;br /&gt;
&lt;br /&gt;
Es posible establecer tantas réplicas como sean necesarias si diferentes procesos pesados se penalizan en exceso, si bien una implantación tipo contemplará una sola&lt;br /&gt;
&lt;br /&gt;
Algunos procesos que utilizan la base de datos de réplica son:&lt;br /&gt;
*'''''VIVA'''''it Reporting&lt;br /&gt;
*'''''VIVA'''''it Tracker&lt;br /&gt;
*Histórico en tiempo real de '''''VIVA'''''it Supervisor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANTE: Ningún proceso, programa, aplicación, etc. escribe en la base de datos de réplica; tan solo se extrae información'''&lt;br /&gt;
&lt;br /&gt;
==== BBDD de copia ====&lt;br /&gt;
A efectos de asegurar el funcionamiento y como medida de contingencia ante un problema puntual de comunicación con la BD de tiempo real, en cada nodo disponemos de una BD de copia local. Posiblemente de un tamaño menor que la BD de tiempo real, dependiendo de cuanto tiempo pase hasta la próxima sincronización con la base de tiempo real.Esta base de datos llamada '''nimitzCopia'''.&lt;br /&gt;
  &lt;br /&gt;
Solo entrara en funcionamiento,cuando se produzca el problema mencionado, dejando acceder a los datos y poder dar servicio a la empresa mientras se soluciona el problema.&lt;br /&gt;
&lt;br /&gt;
===== Backup y restore =====&lt;br /&gt;
&lt;br /&gt;
Se utilizan dos script, para realizar la copia de seguridad y restaurar en la base de datos de copia local que son:&lt;br /&gt;
&lt;br /&gt;
* El proceso '''bdCentral.sh''' que es el encargado de realizar la copia de seguridad. Tiene un archivo de configuración bdCentral.conf. En este archivo hay un parámetro (IGNORE_TABLAS) que indica las tablas de las que NO se realizará copia de seguridad. Toda tabla que no se indique formará parte de la copia de seguridad. Vuelca los resultados en /var/log/bdCentral.log&lt;br /&gt;
* El proceso '''bdNodo.sh''' que es el encargado de descargar la copia de seguridad y restaurarla en local. Tiene un archivo de configuración bdNodo.conf. Vuelca los resultados en /var/log/bdNodo.log. El fichero de backup se copia mediante el usuario sincroniza, que deberá poder acceder sin contraseña al servidor donde reside la copia.&lt;br /&gt;
&lt;br /&gt;
En caso de producirse algún error en alguno de los procesos, marcarán dicho error en el log con una línea que comienza con la cadena &amp;quot;*ERROR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Diagnósticos y operaciones sobre bases de datos ====&lt;br /&gt;
&lt;br /&gt;
=====Comprobación que una base de datos está arrancada=====&lt;br /&gt;
Para comprobar si la base de datos está arrancada debemos poner en el terminal : '''ps aux | grep mysql'''&lt;br /&gt;
&lt;br /&gt;
Si la base de datos está arrancada y funcionando correctamente se nos mostrará en el terminal:&lt;br /&gt;
[[Archivo:Base_Datos_bien.png‎ |500px|center]]&lt;br /&gt;
&lt;br /&gt;
Por el contrario, si la base de datos presenta algun problema el mensaje mostrado será:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Base_datos_mal.png |center]]&lt;br /&gt;
&lt;br /&gt;
=====Comprobación que la base de datos de réplica está sincronizada con la base de datos de tiempo real.=====&lt;br /&gt;
&lt;br /&gt;
Si se necesita verificar que la base de réplica está sincronizada con la base de datos en tiempo real basta con acudir al comando : '''show slave status\G'''.&lt;br /&gt;
&lt;br /&gt;
Una vez introducido veremos:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Replica.png |980px|center]]&lt;br /&gt;
&lt;br /&gt;
Comandos importantes, desde dentro consola de Mysql:&lt;br /&gt;
&lt;br /&gt;
 '''show master status''': Realizado desde el master&lt;br /&gt;
 '''show slave status''': Realizado desde el esclavo; el valor &amp;quot;seconds behind master&amp;quot; nos indica&lt;br /&gt;
 cuanto está retrasada la réplica con respecto a la base de datos de tiempo real. Si el valor de este campo es elevado nos indicará &lt;br /&gt;
 que la base de datos real con la réplica no estará sincronizada, por tanto, nos interesa que este valor sea lo más pequeño posible.&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Procesos propios ===&lt;br /&gt;
&lt;br /&gt;
==== bdCentral ====&lt;br /&gt;
&lt;br /&gt;
El proceso ''bdCentral.sh'' es el encargado de realizar la copia de seguridad. Tiene un archivo de configuración ''bdCentral.conf'' el cual puede encontrarse en la ruta '''/etc/MDtel/bdCentral.conf'''. En este archivo hay un parámetro (IGNORE_TABLAS) que indica las tablas de las que NO se realizará copia de seguridad. Toda tabla que no se indique formará parte de la copia de seguridad. Vuelca los resultados en /var/log/bdCentral.log&lt;br /&gt;
&lt;br /&gt;
En caso de producirse algún error, se marcará dicho error en el log con una línea que comienza con la cadena &amp;quot;*ERROR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Para ejecutar bdCentral:&lt;br /&gt;
 bdCentral.sh /etc/MDtel/bdCentral.conf&lt;br /&gt;
&lt;br /&gt;
Estos procesos se ejecutan automáticamente. Para ello está copiado el fichero bdCentral a /etc/cron.d.&lt;br /&gt;
&lt;br /&gt;
Por defecto la programación vienen comentada por lo que será necesario activarlo.&lt;br /&gt;
&lt;br /&gt;
Para que se roten los logs hay que copiar el fichero bdCentral.logrotate a /etc/logrotate.d (como bdCentral)&lt;br /&gt;
La ruta donde se encuentran los logs es la siguiente: '''/var/log/myAcdSuperv.log'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
*A continuación se explica la utilidad de los campos mas relevantes del fichero de configuración bdCentral.conf. &lt;br /&gt;
ARCH_LOG : &lt;br /&gt;
BDHOST: Localización de la base de datos&lt;br /&gt;
BDUSU: Usuario para la base de datos&lt;br /&gt;
BDRUTA: Ruta donde se encuentra la base de datos&lt;br /&gt;
IGNORE_TABLAS:&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== bdNodo ====&lt;br /&gt;
El proceso bdNodo.sh es el encargado de descargar la copia de seguridad y restaurarla en local. Tiene un archivo de configuración bdNodo.conf, este archivo puede encontrarse en la ruta '''/etc/MDtel/bdNodo.conf.''' Vuelca los resultados en /var/log/bdNodo.log. El fichero de backup se copia mediante el usuario sincroniza, que deberá poder acceder sin contraseña al servidor donde reside la copia.&lt;br /&gt;
&lt;br /&gt;
En caso de producirse algún error, se marcará dicho error en el log con una línea que comienza con la cadena &amp;quot;*ERROR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Para ejecutar bdNodo:&lt;br /&gt;
&lt;br /&gt;
 bdNodo.sh /etc/MDtel/bdNodo.conf&lt;br /&gt;
&lt;br /&gt;
Estos procesos se ejecutan automáticamente. Para ello está copiado el fichero bdNodo a /etc/cron.d.&lt;br /&gt;
&lt;br /&gt;
Por defecto la programación vienen comentada por lo que será necesario activarlo.&lt;br /&gt;
&lt;br /&gt;
Para que se roten los logs hay que copiar el fichero bdNodo.logrotate a /etc/logrotate.d (como bdNodo)&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Intz-Nimitz ====&lt;br /&gt;
&lt;br /&gt;
Permite integrar procesos de asterisk (del dialplan) con la base de datos; por ejemplo es el que graba segmentos, inspecciona donde esta registrado un agente…etc. La estabilidad de este proceso es importante para el funcionamiento del sistema, si bien las llamadas entran en caso de no estar disponible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para mas información consultar la página de [[intz-nimitz|intz-nimitz]].&lt;br /&gt;
&lt;br /&gt;
Desde un SSH ejecuta el comando “nc ip_maquina 1115”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1115'''&lt;br /&gt;
 intz-nimitz sis ver='V02.6' inic='20140401 110116' alarmas=21 ultAlar='20140414 171244'&lt;br /&gt;
 intz-nimitz gmp msj=942/1024 buf=1024/1024 tarea=16/102&lt;br /&gt;
 intz-nimitz tmp uptime=1816550 (21d 0h 35m 50s)&lt;br /&gt;
 intz-nimitz vic identif='cms1' entorno='nimitz' conx=0/128 numConx=1018(0)&lt;br /&gt;
 intz-nimitz mys curro=80/0/0/0 soli=1012(0) soliErr=6(0) soliEncol=0(0/0)&lt;br /&gt;
 intz-nimitz cache colas=128/10/0/0 vdn=128/8/0/0 usuExten=10/0/0/0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parámetro!!Descripción&lt;br /&gt;
|-&lt;br /&gt;
|sis/ver||Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|sis/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|Sis/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|Sis/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/msj||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/buf||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/tarea||&lt;br /&gt;
|-&lt;br /&gt;
|Tmp/uptime||Tiempo que lleva el servicio activo&lt;br /&gt;
|-&lt;br /&gt;
|Vic/identif||Etiqueta de identificación del servicio&lt;br /&gt;
|-&lt;br /&gt;
|Vic/entorno||Entorno de base de datos&lt;br /&gt;
|-&lt;br /&gt;
|Vic/conx||Conexiones activas/conexiones máximas&lt;br /&gt;
|-&lt;br /&gt;
|Vic/numConx||Conexiones totales (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|Mys/curro||Número de hilos contra la base de datos&lt;br /&gt;
|-&lt;br /&gt;
|Mys/soli||Conexiones solicitadas (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|Mys/soliErr||Conexiones solicitadas con error (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|Mys/soliEncol||Conexiones encoladas&lt;br /&gt;
|-&lt;br /&gt;
|Cache/cola|| Colas monitorizadas/&lt;br /&gt;
|-&lt;br /&gt;
|Cache/vdn||VDN’s monitorizados&lt;br /&gt;
|-&lt;br /&gt;
|Cache/usuExten||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en  '''/etc/MDtel/intz-nimitz.conf'''&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/intz-nimitz.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
A continuación se muestran los campos mas importantes del fichero de configuración intz-nimitz.conf:&lt;br /&gt;
&lt;br /&gt;
enrutamiento &lt;br /&gt;
{ &lt;br /&gt;
        hay_enrutamiento = 1 &lt;br /&gt;
        max_pre_ruta_regs = 4 &lt;br /&gt;
        max_ruta = 4 &lt;br /&gt;
        max_ruta_desvios = 2 &lt;br /&gt;
# Filtro de informacion de ancho de banda &lt;br /&gt;
# MYSDanchoBandaPasoNinguno      0 &lt;br /&gt;
# MYSDanchoBandaPasoSoloDirectos 1 &lt;br /&gt;
# MYSDanchoBandaPasoSoloEnPaso   2 &lt;br /&gt;
# MYSDanchoBandaPasoTodos        3 &lt;br /&gt;
        filtro_ancho_banda = 1 &lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
mysql &lt;br /&gt;
{ &lt;br /&gt;
        hay_mysql = 1   Indica si hay base de datos mysql&lt;br /&gt;
        host = BDTR &lt;br /&gt;
        usuario = nimitz   Usuario base de datos&lt;br /&gt;
        clave = phikau3iwCe4O0PP5b09ng==   clave base de datos&lt;br /&gt;
        base_datos = nimitz &lt;br /&gt;
        bd_supervivencia = 0 &lt;br /&gt;
        num_curro = 10 &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== motorSal ====&lt;br /&gt;
Parte fundamental del proceso de marcación saliente, gestiona como hay que llamar a los diferentes contactos asignados a las campañas. Transforma los contactos en intentos de marcación.&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH ejecuta el comando “nc ip_maquina 1120”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1120'''&lt;br /&gt;
 motorSal sis ver='V01.4' inic='20140725 140832' alarmas=1 ultAlar='20140725 140832'&lt;br /&gt;
 motorSal gmp msj=253/256 buf=256/256 tarea=99/102&lt;br /&gt;
 motorSal tmp uptime=600165 (6d 22h 42m 45s)&lt;br /&gt;
 motorSal mtr mys=1 ocup=0% planif=28(0) intento=26(0)&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parámetro!!Descripción&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ver||Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/msj||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/buf||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/tarea||&lt;br /&gt;
|-&lt;br /&gt;
|Tmp/uptime||Tiempo que lleva corriendo&lt;br /&gt;
|-&lt;br /&gt;
|mtr/mys||Si está conectado al MySQL&lt;br /&gt;
|-&lt;br /&gt;
|mtr/ocup||Porcentaje de ocupación&lt;br /&gt;
|-&lt;br /&gt;
|mtr/planif||Contactos planificados Totales (Último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|mtr/intento||Intentos totales (Ültimo minuto)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Posee un fichero de configuración llamado ''motorSal.conf'' en la ruta '''/etc/MDtel/motorSal.conf'''.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:Las variables que normalmente son modificadas son las siguientes:&lt;br /&gt;
&lt;br /&gt;
mysql&lt;br /&gt;
{&lt;br /&gt;
hay_mysql = 1&lt;br /&gt;
Indica si hay base de datos mysql&lt;br /&gt;
host = localhost&lt;br /&gt;
usuario = nimitz&lt;br /&gt;
Usuario base de datos&lt;br /&gt;
Clave base de datos&lt;br /&gt;
base_datos = nimitz&lt;br /&gt;
}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Respecto a los logs del motorSal consultar el siguiente apartado: [[Trazas motorSal]]. Los logs pueden verse en la ruta '''/var/log/intz-nimitz.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== MyACDSuperv ====&lt;br /&gt;
Refleja el estado de las colas de asterisk en la base de datos; tiene sentido a efectos de estadísticas e informes, pero no a efectos de funcionamiento de la conmutación de voz&lt;br /&gt;
&lt;br /&gt;
Es también el proceso que genera las llamadas en el marcador automático de '''''VIVA'''''it Suite&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando “nc ip_maquina 1112”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1112'''&lt;br /&gt;
 myAcdSuperv SIS ver='04.6' inic='20140416 081613' alarmas=6 ultAlar='20140416 121652'&lt;br /&gt;
 myAcdSuperv AMI cnx=1 ocup=28% exten=2/2/511 asig=0/11/4095&lt;br /&gt;
 myAcdSuperv MYSQL cnx=1 ms=316&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parámetro!!Descripción&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ver||Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|AMI/cnx||Conectado (1) a asterisk&lt;br /&gt;
|-&lt;br /&gt;
|AMI/ocup||Porcentaje de ocupación de MyACDSuperv&lt;br /&gt;
|-&lt;br /&gt;
|AMI/exten||Extensiones/Extensiones/Extensiones monitorizadas|-&lt;br /&gt;
|-&lt;br /&gt;
|AMI/asig||&lt;br /&gt;
|-&lt;br /&gt;
|MYSQL/cnx||Conectado (1) a MySQL&lt;br /&gt;
|-&lt;br /&gt;
|MYSQL/ms||Tiempo de última operación en ejecutarse&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/myAcdSuperv.cnf'''&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/myAcdSuperv.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Proceso escoba ====&lt;br /&gt;
El proceso escoba se encarga de resolver y consolidar todos aquellos segmentos de grabación que han quedado almacenados en los gateways por falta de información o incoherencias. Existen dos tipos de procesos escobas:&lt;br /&gt;
# Proceso escoba perteneciente a nodo con agente de grabación (recordNodo) llamado '''''escobaGW.pl'''''.&lt;br /&gt;
# Proceso escoba perteneciente o no a un servidor de grabación (recordCentral) llamado '''''escobaGrabsBd.pl'''''.&lt;br /&gt;
&lt;br /&gt;
===== escobaGW.pl =====&lt;br /&gt;
Proceso que se ejecuta en los nodos busca en el disco RAM , las grabaciones de segmentos cuya antigüedad sea superior a mas de un día, es decir, si el proceso por ejemplo se ejecuta a la 01:00 a.m. del día 24/03/2016 buscara todas aquellas grabacionesn de segmentos realizadas antes de la 01:00 a.m del día 22/03/2016.&lt;br /&gt;
Una vez realizada la busqueda, obtendra el UCID a traves del nombre del fichero, y comprobara su correspondencia con la tabla DAT_LLAMADAS. Si existe una llamada con ese UCID, cambiara el estado de la llamada para que sea procesada correctamente. En caso contrario, es movida a la carpeta ''/var/lib/recordNodo/grabError''.&lt;br /&gt;
&lt;br /&gt;
===== escobaGrabsBd.pl =====&lt;br /&gt;
Se ejecuta sobre la base de datos de histórico, normalmente se ejecuta en un servidor de grabación (recordCentral). El proceso hace una búsqueda en dos tablas:&lt;br /&gt;
* En DAT_SEGMENTOS obtiene todos aquellos segmentos con grabaciones que dieron error, su estado tendrá valor 120.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
* En DAT_LLAMADAS obtendremos todos los registros correspondiente al segmentos anteriores.&lt;br /&gt;
Después hace una búsqueda en el sistema, usando como ruta el campo D_HORA_INICIO de cada llamada, que indica la ruta entera donde se encuentra el archivo. Una vez encontrado el archivo cambia el estado del segmento que tenia un error a estado de grabación disponible , que tendrá valor 100. Si no encontramos el segmento, no realizara nada.&lt;br /&gt;
&lt;br /&gt;
==== recordCentral ====&lt;br /&gt;
Se considera como un servidor de grabaciones. Todas las grabaciones de llamadas son un activo importante y una empresa con Contact Center pueda recibir millones de llamadas que necesitan estar registradas y almacenadas en discos duros con gran capacidad, dichas maquinas donde suelen alojarse estos servidores poseen discos duros limitados, lo que hace necesario en algunos casos incorporar ''dispositivos NAS''.&lt;br /&gt;
&lt;br /&gt;
Los ''dispositivos NAS'' son dispositivos de almacenamiento conectados a una red que permite el almacenamiento y la recuperación de datos desde una ubicación centralizada, flexibles y escalables, lo que significa que a medida que necesite almacenamiento adicional, puede añadirlo al que tiene. Esto no indica que sea necesario poseer de ''dispositivos NAS'' para funcionar, sino que puede tomar datos de diferentes sitios.&lt;br /&gt;
&lt;br /&gt;
En '''recordCentral''' pueden existir tres tipos de dispositivos NAS:&lt;br /&gt;
* Uno dedicado para las llamadas &lt;br /&gt;
* Uno dedicado para los segmentos &lt;br /&gt;
* Uno mixto para todas las llamadas y segmentos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El '''recordCentral''' se encarga de recoger todas las grabaciones de segmentos que tienen de estado proceso(3) en cada nodo gestionado, es decir, coger aquellos segmentos de llamadas marcados como llamadas disponibles, intenta descargar los segmentos de las llamadas y convertirlas al formato adecuado (MP3).&lt;br /&gt;
Como una característica particular cada diez minutos, siempre que no tenga ninguna otra tarea, intenta ver si puede establecer conexión con un nodo en cuarentena, para sacarlos de cuarentena y recoger todas las grabaciones de segmentos disponibles, para intentar convertir y descargar todas las grabaciones.  &lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando '''''nc ip_maquina 1114''''' en la maquina donde creamos que debe estar ejecutando el proceso recordCentral. Ejemplo:&lt;br /&gt;
 '''root@smadavacdrecord1:~# nc localhost 1114'''&lt;br /&gt;
 recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423 160112'&lt;br /&gt;
 recordCentral MYSQL cnx=1&lt;br /&gt;
 recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
 recordCentral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
 recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10'&lt;br /&gt;
La explicación de los campos se muestra en la tabla siguiente:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parámetro !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ver || Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/inic || Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/alarmas || Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ultAlar || Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
| MYSQL/cnx || Conectado (1) a MySQL&lt;br /&gt;
|-&lt;br /&gt;
| NAS/llamadas || Alojamiento en NAS de llamadas activo (grabación de llamada completa en un único archivo)&lt;br /&gt;
|-&lt;br /&gt;
| NAS/segmentos || Alojamiento en NAS de segmentos activo&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamNum || Llamadas procesadas&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamErr || Llamadas con error&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmNum || Segmentos procesados&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmErr || Segmentos con error&lt;br /&gt;
|-&lt;br /&gt;
| NODO/fase  || Número de proceso de recordCentral&lt;br /&gt;
|-&lt;br /&gt;
| NODO/cuarentena  || Lista de nodos en cuarentena, separada por comas&lt;br /&gt;
|-&lt;br /&gt;
| NODO/descarga || Lista de nodos en descarga, separada por comas&lt;br /&gt;
|-&lt;br /&gt;
| NODO/gestion || Lista de nodos gestionados, separada por comas (cuarentena + descarga = gestión)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/recordCentral.pconf'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:Se explican a continuación las variables más importantes del proceso RecordCentral:&lt;br /&gt;
&lt;br /&gt;
# Conexion de base de datos&lt;br /&gt;
$db='nimitz';&lt;br /&gt;
$dbHost = 'BDTR';&lt;br /&gt;
$dbPort = '3306';&lt;br /&gt;
$dbUsuario = 'nimitz';&lt;br /&gt;
$dbClave = 'ivivanimitz';&lt;br /&gt;
&lt;br /&gt;
# Configuracion de archivos con grabaciones (Orig en nodo)&lt;br /&gt;
$grabHay = 0;&lt;br /&gt;
$grabAudioCalidad = 32;&lt;br /&gt;
$grabAudioFormato = 'ogg';&lt;br /&gt;
$grabAudioExten = 'ogg';&lt;br /&gt;
$grabAudioCifrado = 0;&lt;br /&gt;
$grabRutaUsaTimestamp = 1;&lt;br /&gt;
$grabRutaOrig = '/var/lib/recordNodo/grabaciones';&lt;br /&gt;
$grabRutaTmp = '/var/lib/recordProcesad/grabTmp';&lt;br /&gt;
$grabRutaDest = '/var/lib/recordProcesad/grabRecord';&lt;br /&gt;
$grabRutaError = '/var/lib/recordProcesad/grabError';&lt;br /&gt;
$segmHay = 1;&lt;br /&gt;
$segmUmbralTiempo = 10;&lt;br /&gt;
$segmMargenTiempo = 5;&lt;br /&gt;
$segmAudioCalidad = 32;&lt;br /&gt;
$segmAudioFormato = 'ogg';&lt;br /&gt;
$segmAudioExten = 'ogg';&lt;br /&gt;
$segmAudioCifrado = 0;&lt;br /&gt;
$segmRutaUsaTimestamp = 1;&lt;br /&gt;
$segmRutaTmp = '/var/lib/recordProcesad/segmTmp';&lt;br /&gt;
$segmRutaDest = '/var/lib/recordProcesad/segmRecord';&lt;br /&gt;
$segmRutaError = '/var/lib/recordProcesad/segmError';&lt;br /&gt;
&lt;br /&gt;
# Seleccion de tipos de segmento a grabar separados por comas ('' = todos)&lt;br /&gt;
$tiposSegmentoGrabar = '';&lt;br /&gt;
&lt;br /&gt;
# Indica si se graba ring&lt;br /&gt;
$grabarRing = 0;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/recordCentral.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== recordNodo ====&lt;br /&gt;
Se considera como proceso con función de agente de grabación para un nodo. Solo debe existir uno por maquina o por nodo (configurado como grabador) en el '''portal de administración de ''VIVA''it'''.&lt;br /&gt;
&lt;br /&gt;
Para su funcionamiento utiliza un ''disco RAM''  por que su tiempo de acceso mejora drásticamente, debido a que la memoria RAM es varios órdenes de magnitud más rápida que las unidades de disco reales, haciendo que la velocidad de procesamiento de las grabaciones sea mucho mas rápida.&lt;br /&gt;
&lt;br /&gt;
Este ''disco RAM'' normalmente ocupa la mitad de la memoria RAM de una maquina pero no es obligatorio pues dependerá de la memoria disponible en cada maquina, y además, se configura con un tamaño no superior a 2GB de memoria RAM. Hay que tener especial cuidado en que no se llene en espacio  ni tampoco los i-nodos. Se puede  monitorizar a través de la aplicación '''zabbix'''.&lt;br /&gt;
&lt;br /&gt;
El '''''recordNodo''''' se encarga de recoger todas las grabaciones de segmentos que tienen de estado  ''proceso(2)'', es decir, aquellos segmentos de llamadas que han sido grabadas pero no están siendo procesadas, moviéndolas del ''disco RAM'' a su carpeta correspondiente.&lt;br /&gt;
&lt;br /&gt;
La forma de obtener la carpeta correspondiente es obteniendo el dato del campo D_HORA_INICIO en la tabla DAT_LLAMADAS para cada segmento,tras un tratamiento del campo creara la subruta correspondientes: /año/mes/dia/hora/min. Entonces, la ruta correcta seria /var/lib/recordNodo/grabaciones/año/mes/dia/hora/min, donde año, mes, dia , hora y min son los valores numéricos obtenidos del campo D_HORA_INICIO.&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando '''''nc ip_maquina 1113''''' en la maquina donde creamos que debe estar ejecutando el proceso recordNodo:&lt;br /&gt;
&lt;br /&gt;
 root@smadavgw5:~#nc localhost 1113&lt;br /&gt;
 recordNodo SIS ver='04.00.00' inic='20160326 105137' alarmas=2 ultAlar='20160326 105542'&lt;br /&gt;
 recordNodo MYSQL cnx=1&lt;br /&gt;
 recordNodo REC grabNum=0 grabErr=0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La explicación de los campos se muestra en la tabla siguiente:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parámetro  !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ver || Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/inic  || Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/amarmas || Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ultAlar || Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
| MYSQL/cnx || Conectado (1) a MySQL&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamNum || Llamadas procesadas&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamErr || Llamadas con error&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmNum || Segmentos procesados&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmErr || Segmentos con error&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/recordNodo.pconf'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:Se muestran a continuación las variables que son modificadas con mayor frecuencia:&lt;br /&gt;
# Conexion de base de datos&lt;br /&gt;
$db='nimitz';&lt;br /&gt;
$dbHost = 'BDTR';&lt;br /&gt;
$dbPort = '3306';&lt;br /&gt;
$dbUsuario = 'nimitz';&lt;br /&gt;
$dbClave = 'ivivanimitz';&lt;br /&gt;
&lt;br /&gt;
# Quien es mi nodo para filtrar grabaciones&lt;br /&gt;
$miNodo = 1;&lt;br /&gt;
&lt;br /&gt;
# Indica si se procesan segmentos de tipo tipoSegmEliminarGrabacion y patron eliminación&lt;br /&gt;
$segmEliminarGrabacionTrato = 1;&lt;br /&gt;
$patronEliminarGrabacion = '/etc/MDtel/null.bin';&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/recordNodo.log'''&lt;br /&gt;
&lt;br /&gt;
==== Vivait-CTI ====&lt;br /&gt;
Permite la comunicación entre la aplicación '''''VIVA'''''it Desk de agente y el asterisk, sincronizando; convierte el protocolo “asterisk manager” a CSTA ('''''VIVA'''''it Desk “habla” CSTA).&lt;br /&gt;
&lt;br /&gt;
Es un proceso importante para que el uso de '''''VIVA'''''it Desk, y que los agentes puedan realizar su operativa normal con la entrada y salida de llamadas… si bien el cursado telefónico de llamadas es factible, no disponer de las facilidades de '''''VIVA'''''it Desk y formularios hace el sistema difícilmente manejable&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando “nc ip_maquina 1111”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1111'''&lt;br /&gt;
 vivait-cti sis ver='V01.5' inic='20140414 104312' alarmas=13 ultAlar='20140415 173152'&lt;br /&gt;
 vivait-cti gmp msj=1018/1024 buf=1023/1024 tarea=97/102&lt;br /&gt;
 vivait-cti tmp uptime=694748 (8d 0h 59m 8s)&lt;br /&gt;
 vivait-cti cti numConx=(0/511) numPend=(0/127) numMakeCallPend=0 numCall=(0/2047)&lt;br /&gt;
 numChan=(0/4095) numAuxStr=(0/511) numMoniColas=(0/511) numMoniDevice=0&lt;br /&gt;
 numMoniCall=0 numMoniCallAuto=0 numMoniCallByDevice=0 numMoni=(0/511)&lt;br /&gt;
 auditCallErr=0 auditAuxStrErr=0 auditMsjReqErr=0 araChanID=0 araUniqueID=0 araMoni=0&lt;br /&gt;
 vivait-cti ami esta=conx resp=652(0) evs=1397(0) descar=556(0) err=16 errConx=16&lt;br /&gt;
 numAct(0/0/127) auditErrAct=0&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!ver!!Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|sis/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|Sis/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|Sis/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/msj||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/buf||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/tarea||&lt;br /&gt;
|-&lt;br /&gt;
|Tmp/uptime||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numConx||Número de conexiones actuales / Número de conexiones máximo&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numPend||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMakeCallPend||Llamadas pendientes de realizar&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numcall||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numChan||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numAuxStr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniColas||Número de colas monitorizadas&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniDevice||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniCall||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniCallAuto||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniCallByDevice||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoni||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/auditCallErr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/auditAuxStrErr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ auditMsjReqErr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ araChanID||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ araUniqueID||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ araMoni||&lt;br /&gt;
|-&lt;br /&gt;
|Ami/esta||Estado de conexión contra manarger de asterisk&lt;br /&gt;
|-&lt;br /&gt;
|Ami/resp||&lt;br /&gt;
|-&lt;br /&gt;
|Ami/evs||Número de eventos (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
||Ami/descar&lt;br /&gt;
|-&lt;br /&gt;
|Ami/err||Errores&lt;br /&gt;
|-&lt;br /&gt;
|Ami/errConx||Errores de conexión&lt;br /&gt;
|-&lt;br /&gt;
|Ami/numAct||&lt;br /&gt;
|-&lt;br /&gt;
|Ami/auditErrAct||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/vivait-cti.conf'''&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/vivait-cti.conf'''&lt;br /&gt;
&lt;br /&gt;
==== Phoneprov-TFTP ====&lt;br /&gt;
&lt;br /&gt;
==== Introducción al aprovisionamiento ====&lt;br /&gt;
&lt;br /&gt;
En cada Centralita Telefónica existente, se puede configurar sus teléfonos IP y asignarles extensiones a cada teléfono. Para hacer un ''aprovisionamiento'' de los teléfonos es necesario que el técnico configure uno a uno manualmente utilizando su interfaz web, esto no es práctico, ya que genera muchos errores y el tiempo de implementación se incrementa drásticamente. Además, es casi imposible la administración cotidiana de los teléfonos IP. Desde '''MD'''tel se utiliza una herramienta que permite que los teléfonos IP soportados y homologados por '''MD'''tel ([[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_3.0#Terminales_telef.C3.B3nicos ver Terminales telefónicos]]) se puedan aprovisionar automáticamente, brindando una fácil implementación y administración cotidiana. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== ¿Qué es aprovisionar? =====&lt;br /&gt;
&lt;br /&gt;
Aprovisionar un teléfono es el proceso de configuración automático de teléfonos IP para su uso con una Centralita Telefónica de forma remota. Una vez que aprovisione un teléfono, el teléfono automáticamente se configurará correctamente y podrá administrar los teléfonos de forma centralizada y remota,  sin tener que iniciar sesión en la interfaz web de cada uno de los teléfonos. &lt;br /&gt;
&lt;br /&gt;
El aprovisionamiento de teléfono facilita enormemente la administración cotidiana de los teléfonos IP. Esto hace que sea fácil de cambiar las contraseñas de extensión,realizar desvíos de llamadas, nombre a mostrar, mensajería y demás configuraciones, ya que puede hacerlo de forma centralizada para todos los teléfonos desde el portal de administración y luego transferir los cambios al teléfono. &lt;br /&gt;
&lt;br /&gt;
===== TFTP =====&lt;br /&gt;
&lt;br /&gt;
'''TFTP''' son las siglas de '''T'''rivial '''F'''ile '''T'''ransfer '''P'''rotocol ''(Protocolo de transferencia de archivos trivial)''. &lt;br /&gt;
&lt;br /&gt;
Es un protocolo de transferencia muy simple semejante a una versión básica de FTP. TFTP a menudo se utiliza para transferir pequeños archivos entre terminales en una red. &lt;br /&gt;
&lt;br /&gt;
Algunos detalles del TFTP: &lt;br /&gt;
&lt;br /&gt;
* Utiliza UDP (puerto 69) como protocolo de transporte (a diferencia de FTP que utiliza los &lt;br /&gt;
puertos 20 y 21 TCP). &lt;br /&gt;
* No puede listar el contenido de los directorios. &lt;br /&gt;
* No existen mecanismos de autenticación o cifrado. &lt;br /&gt;
* Se utiliza para leer o escribir archivos de un servidor remoto. &lt;br /&gt;
* Soporta tres modos diferentes de transferencia, &amp;quot;netascii&amp;quot;, &amp;quot;octet&amp;quot; y &amp;quot;mail”.&lt;br /&gt;
&lt;br /&gt;
===== Funcionamiento del servidor phoneprove-TFTP =====&lt;br /&gt;
&lt;br /&gt;
A continuación se muestra un esquema que facilita el entendimiento del funcionamiento del servidor phoneprove-TFTP:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Funcionamiento_Servidor.png‎ |center]]&lt;br /&gt;
&lt;br /&gt;
El servidor Phoneprove-TFTP se ''encarga del aprovisionamiento masivo de terminales'', es de gran utilidad porque cualquier cambio en los teléfonos pueden ser realizados a nivel DHCP y todos los teléfonos tomarán la nueva configuración luego de reiniciarlos. &lt;br /&gt;
&lt;br /&gt;
Desde phoneprove-TFTP se generara los archivos necesarios para cada teléfono y que sirven para ser aprovisionados automáticamente. &lt;br /&gt;
El servidor phoneprove-TFTP  tiene alojados los ficheros de configuración están ordenados según las direcciones MAC de los teléfonos. El teléfono “preguntará” al servidor cual es su fichero de configuración utilizando su dirección MAC. Este a través de su MAC , consulta en la base de datos para ofrecer al terminal los datos de configuración según su plantilla, cual sera su extensión , cual sera el usuario propietario, entre otras cosas.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
  '''Nota:''' En instalaciones grandes habrá más de uno, quizás uno por sede grande; depende de la infraestructura de DHCP.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Parámetros necesarios de Aprovisionamiento de Teléfonos =====&lt;br /&gt;
&lt;br /&gt;
 '''Notas:''' el aprovisionamiento desarrollador por '''MD'''tel, no emplea un fichero por cada &lt;br /&gt;
 teléfono, sino que emplea una plantilla por cada modelo de teléfono.&lt;br /&gt;
 Debe haber una '''configuración previa del servidor DHCP''' es necesario coordinar con el cliente la asignación de direcciones para &lt;br /&gt;
 los diferentes elementos de la plataforma '''''VIVA'''''it, fundamentalmente para terminales telefónicos; en este caso además será necesario &lt;br /&gt;
 activar la opción 66 que permitirá definir el servidor TFTP del que los terminales cogerán sus ficheros de aprovisionamiento.&lt;br /&gt;
 El aprovisionamiento desde el portal de administración solo es posible para aquellos teléfonos IP homologados y probados desde '''MD'''tel   &lt;br /&gt;
 [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_3.0#Terminales_telef.C3.B3nicos ver Terminales  telefónicos]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como existen parámetros comunes de todos los teléfonos de la misma marca de fabricante, muchos de los parámetros necesarios para el aprovisionamiento  como comentamos se han generado desde MDtel en forma de plantillas, que estarán disponibles en el portal de administración VIVAit [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Plantillas | ver plantilla del portal de administración VIVAit]]. &lt;br /&gt;
&lt;br /&gt;
La configuración de un teléfono SIP es muy sencilla y en no es necesario tener conocimientos avanzados de informática o de telefonía. Cada una de estas plantillas que sirven para aprovisionar un teléfono IP homologado, algunos de los parámetros predeterminados se explicarán a continuación .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== Parámetros de Aprovisionamiento globales ======&lt;br /&gt;
&lt;br /&gt;
* Configuración de la red y MAC. &lt;br /&gt;
* Zona horaria. &lt;br /&gt;
&lt;br /&gt;
====== Parámetros de Aprovisionamiento Personales ======&lt;br /&gt;
&lt;br /&gt;
Además de los parámetros de aprovisionamiento globales, el teléfono también obtendrá información de configuración individual, tales como: &lt;br /&gt;
&lt;br /&gt;
*Número de Extensión.&lt;br /&gt;
*Nombre y Contraseña de usuario SIP. &lt;br /&gt;
*Configuración de Teclas BLF.&lt;br /&gt;
*Contraseña de la Interfaz Web del Teléfono IP.&lt;br /&gt;
*Idioma de la Pantalla.&lt;br /&gt;
*Orden de Preferencia de los Codecs.&lt;br /&gt;
&lt;br /&gt;
===== Aprovisionamiento de teléfonos nivel usuario =====&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
  '''Notas:''' La dirección MAC debe estar especificada en letras mayúsculas.&lt;br /&gt;
  La dirección MAC del teléfono se puede encontrar en la etiqueta adhesiva en la parte inferior del teléfono, o de lo contrario se deberá acceder desde&lt;br /&gt;
  el menú del propio terminal.   &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Los pasos a seguir son los siguientes: &lt;br /&gt;
&lt;br /&gt;
'''1)''' Dar de alta el teléfono en el portal de administración, se debe seleccionar el modelo del teléfono, e indicar la dirección MAC del teléfono a aprovisionar, todo ello desde el portal de administración VIVAit. &lt;br /&gt;
Para mas información ver [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Aprovisionamiento del portal de administracion| aprovisionamiento del portal de administración VIVAit]]. &lt;br /&gt;
&lt;br /&gt;
'''2)''' En el mismo portal de administración se deberá crear una extensión , asignar a la extensión el teléfono que se quiera aprovisionar, elegir la plantilla adecuada del teléfono y el usuario propietario (solo si sera un puesto fijo) desde [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Extensiones | extensiones del portal de administración]]. &lt;br /&gt;
&lt;br /&gt;
'''3)''' Conectar el teléfono a la red LAN informática (conectarlo al router o switch) para que tenga acceso a Internet:&lt;br /&gt;
&lt;br /&gt;
:*El teléfono enviará un mensaje de multidifusión a través de la LAN. &lt;br /&gt;
:*Este será captado por la Central Telefónica siempre que esté en la misma LAN. &lt;br /&gt;
:*Al teléfono se le enviará una URL de aprovisionamiento. &lt;br /&gt;
&lt;br /&gt;
'''4)''' Como la mayoría de teléfonos IP del mercado al arrancar una vez sabiendo la URL de aprovisionamiento piden una serie de archivos de configuración para aprovisionarse vía TFTP. EL servidor phoneprove-TFTP, detectara la petición y a través de la MAC y datos del usuario, consultará en la base de datos los datos necesarios para aprovisionar al teléfono y si todo funciona correctamente mandara al teléfono IP los datos de configuración necesarios para funcionar. &lt;br /&gt;
&lt;br /&gt;
'''5)''' Asegúrese de que el teléfono encuentren el servidor TFTP, para ello esperar un tiempo adecuado para que termine el aprovisionamiento. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''6)''' Finalmente aparecerá  como registrado en la centralita, obtendrá una dirección IP y podra funcionar según la configuración establecida.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
  '''Nota''': Si no se reaprovisiona tras un periodo largo de tiempo, desenchufe el cable de alimentación eléctrica &amp;lt;br /&amp;gt; o el cable Ethernet (si se utiliza la alimentación en línea PoE) para reiniciar los teléfonos. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Aprovisionamiento de teléfonos nivel técnico =====&lt;br /&gt;
&lt;br /&gt;
====== Plantilla de configuración ======&lt;br /&gt;
&lt;br /&gt;
La plantilla de configuración empleadas en el apartado  [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Plantillas | plantilla del portal de administración VIVAit]] de cada modelo está formada por una serie de variables. &lt;br /&gt;
&lt;br /&gt;
Los valores se obtienen de la tabla de la base de datos CEN_TELEFONOS, CEN_USUARIOS, ACD_EXTENSIONES, ACD_NODOS, COM_NODOS... correspondientes a la extensión del teléfono, usuario, nodo, etc. &lt;br /&gt;
&lt;br /&gt;
 variable ${NODO1_C_NOMBRE}='corp-ast13'&lt;br /&gt;
 variable ${EXTEN_C_CLAVE_REGISTRO}='Tel21002'&lt;br /&gt;
 variable ${USU_C_CODIGO_POSTAL}=''28034'&lt;br /&gt;
 variable ${SEDE_C_CODIGO_POSTAL}='28034' &lt;br /&gt;
 variable ${USU_C_NOMBRE}='Juan Antonio'&lt;br /&gt;
 variable ${USU_C_APELLIDO2}='Ramirez'&lt;br /&gt;
 variable ${SEDE_C_NOMBRE}='RED_LAB'&lt;br /&gt;
 variable ${NODO2_C_NOMBRE}= NULL&lt;br /&gt;
 variable ${EXTEN_C_NOMBRE}='' 21002&lt;br /&gt;
 variable ${USU_C_LOCALIDAD}='' &lt;br /&gt;
 variable ${USU_C_NOMBRE_MOSTRAR}='Juan' &lt;br /&gt;
 variable ${NODO1_C_IP}='175.25.129.70' &lt;br /&gt;
 variable ${MODEL_C_PREFIJO_PLANTILLA_MAC}='T28P' &lt;br /&gt;
 variable ${SEDE_C_LOCALIDAD}='Madrid' &lt;br /&gt;
 variable ${USU_C_APELLIDO1}='Casas' &lt;br /&gt;
 variable ${NODO2_C_IP}= NULL&lt;br /&gt;
 variable ${TF_ID_EXTENSION}='5' &lt;br /&gt;
 cargando campos idExten=5&lt;br /&gt;
&lt;br /&gt;
====== Ficheros y paquetes necesarios ======&lt;br /&gt;
&lt;br /&gt;
'''Paquetes previos:''' libnet-tftpd-perl, tftp-hpa, libnet-address-ip-local-perl &lt;br /&gt;
'''Usuario de funcionamiento:''' root &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
   '''Nota:'''  los archivos y directorios que generemos podrian necesitar que se permitiera el acceso al archivo de lectura &amp;lt;br/&amp;gt; y escritura en el servidor TFTP.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Archivos necesarios:''' &lt;br /&gt;
&lt;br /&gt;
 /usr/local/sbin/phoneprov-tftp.pl &lt;br /&gt;
 /usr/local/sbin/phoneprov-tftp.pm&lt;br /&gt;
 /etc/MDtel/phoneprov-tftp.pconf &lt;br /&gt;
 /etc/init/phoneprov-tftp.conf &lt;br /&gt;
 /etc/logrotate.d/phoneprov-tftp &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Directorios a crear:''' &lt;br /&gt;
&lt;br /&gt;
 /var/lib/phoneprov-tftp/plt &lt;br /&gt;
 /var/lib/phoneprov-tftp/bin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Watchdog ====&lt;br /&gt;
&lt;br /&gt;
Se trata de una aplicación del astrisk que monitoriza el SIP y en caso de fallo, pasado un cierto tiempo, reinicia el asterisk y genera un core.&lt;br /&gt;
Si escribimos en CLI de asterisk perro tenemos los siguientes comandos:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Activar||Activar el Watchdog&lt;br /&gt;
|-&lt;br /&gt;
|Desactivar||Desactiva el Watchdog&lt;br /&gt;
|-&lt;br /&gt;
|Parada||Reinicia el asterisk y genera un core para pruebas&lt;br /&gt;
|-&lt;br /&gt;
|Reload||Realiza una recarga del Watchdog y aplica cambios en su configuración&lt;br /&gt;
|-&lt;br /&gt;
|Show||Ver el estado del Watchdog&lt;br /&gt;
&lt;br /&gt;
perro avisado=0 activo=1 segsDormir=1 segsInic=60 segsGuarda=30 maxErr=3&lt;br /&gt;
perro        nombre=sip_monitor_udp lwp=[15437] segsInic=60 segsGuarda=30 hace=11 err=0/5&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El dato &amp;quot;hace&amp;quot; informa de cuanto tiempo ha transcurrido desde el último tick. Facilita la calibración del parámetro de configuración &amp;quot;segs_guarda&amp;quot;, normalmente es 30&lt;br /&gt;
&lt;br /&gt;
Tiene un fichero de configuración ubicado en /etc/asterisk/MDcrash.conf&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Sección [perro]&lt;br /&gt;
||activo=yes (Si esta o no activo)&lt;br /&gt;
segs_dormir=1 (Un tick por segundo)&lt;br /&gt;
&lt;br /&gt;
segs_inic=60&lt;br /&gt;
&lt;br /&gt;
segs_guarda=30 &lt;br /&gt;
&lt;br /&gt;
max_errores=3  &lt;br /&gt;
|-&lt;br /&gt;
|Sección [sip_monitor_udp]&lt;br /&gt;
||segs_inic=60&lt;br /&gt;
&lt;br /&gt;
segs_guarda=30 (Cada 30 segundos si no reciba trafico SIP genera core)&lt;br /&gt;
&lt;br /&gt;
max_errores=5 (Número máximo de errores)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Proceso de Backup ====&lt;br /&gt;
Las plataformas '''''VIVA'''''it Call y '''''VIVA'''''it Suite incluyen un script para realizar un proceso de backup.&lt;br /&gt;
&lt;br /&gt;
Se utilizará el script '''backup.sh''', que se encuentra en el directorio '''etc/MDTel'''.&lt;br /&gt;
&lt;br /&gt;
Se ejecuta automaticamente mediante el uso de un cron&lt;br /&gt;
&lt;br /&gt;
'''texto del cron:'''&lt;br /&gt;
&lt;br /&gt;
 SHELL=/bin/sh&lt;br /&gt;
 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin&lt;br /&gt;
 # m h dom mon dow user command&lt;br /&gt;
 0 2 * * * root  /etc/MDtel/backup.sh /etc/MDtel/backup.cfg&lt;br /&gt;
&lt;br /&gt;
Para activar el script hay que descomentar la línea&lt;br /&gt;
 # m h dom mon dow user command&lt;br /&gt;
&lt;br /&gt;
Los directorios de los que se hace copia son:&lt;br /&gt;
* DIR=var/lib/asterisk/sounds/Particular&lt;br /&gt;
* DIR=var/lib/asterisk/moh&lt;br /&gt;
* DIR=etc&lt;br /&gt;
* DIR=etc/asterisk&lt;br /&gt;
* DIR=etc/cron.d&lt;br /&gt;
* DIR=etc/dahdi&lt;br /&gt;
* DIR=etc/exim4&lt;br /&gt;
* DIR=etc/ha.d&lt;br /&gt;
* DIR=etc/logrotate.d&lt;br /&gt;
* DIR=etc/MDtel&lt;br /&gt;
* DIR=etc/mysql&lt;br /&gt;
* DIR=etc/network&lt;br /&gt;
* DIR=etc/zabbix&lt;br /&gt;
* DIR=usr/local/sbin&lt;br /&gt;
&lt;br /&gt;
Por defecto se realiza un backup cada dos horas en la carpeta '''/var/spool/MDtel/backup'''.&lt;br /&gt;
&lt;br /&gt;
Para cambiar la ruta de destino del backup habrá que modificar el fichero backup.sh, en concreto modificar la variable MDTEL.&lt;br /&gt;
&lt;br /&gt;
El fichero ''' backup.cfg''' que se genera incluye copia de la siguiente información:&lt;br /&gt;
* Ficheros de configuración de la aplicación.&lt;br /&gt;
* Base de Datos.&lt;br /&gt;
* Dialplan.&lt;br /&gt;
&lt;br /&gt;
Se guardarán 10 copias del fichero ''' backup.cfg '''&lt;br /&gt;
&lt;br /&gt;
Para recuperar una plataforma utilizando el backup, habrá que instalar una máquina nueva y cargar los ficheros de configuración, Base de Datos y Dialplan guardados en el proceso de backup.&lt;br /&gt;
&lt;br /&gt;
=== Requerimientos de conectividad ===&lt;br /&gt;
&lt;br /&gt;
El esquema siguiente muestra como ejemplo todos los flujos de información existentes en un entorno típico de &amp;lt;big&amp;gt;'''telefonía corporativa (sin presencia)'''&amp;lt;/big&amp;gt; ('''''VIVA'''''it Call)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Flujos corporativa.png|cebter]]&lt;br /&gt;
&lt;br /&gt;
En el entorno de &amp;lt;big&amp;gt;'''Contact Center'''&amp;lt;/big&amp;gt;, encontramos los siguientes flujos &amp;lt;big&amp;gt;'''entre servicios'''&amp;lt;/big&amp;gt; (comunicaciones entre servidores, ('''''VIVA'''''it Suite)) &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Flujos Contact servicios.png|650px|center]]&lt;br /&gt;
&lt;br /&gt;
y &amp;lt;big&amp;gt;'''entre usuarios y servicios'''&amp;lt;/big&amp;gt; los reflejados a continuación:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Flujos Contact puestos.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Lado A!!Lado B!!Puertos!!Sentido!!Observ.&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor||TCP 5060||A -&amp;gt; B||Señalización SIP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor||UDP 5060||A -&amp;gt; B||Señalización SIP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor||10000 a 20000||A -&amp;gt; B&lt;br /&gt;
B -&amp;gt; A&lt;br /&gt;
||RTP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor TFTP||UDP 69||A -&amp;gt; B&lt;br /&gt;
B -&amp;gt; A&lt;br /&gt;
||Para actualización de terminales por TFTP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor NTP||UDP 123||A -&amp;gt; B||&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Desk||Servidor||TCP 4500||A -&amp;gt; B||Comunicación CTI&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Desk||Servidor||TCP 3306||A -&amp;gt; B||Acceso a Mysql Base de datos&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Desk||Servidor Syslog||UDP 514||A -&amp;gt; B||Para envio de logs de agente&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Supervisor||Servidor||TCP 3306||A -&amp;gt; B||Acceso a Mysql Base de datos&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker||Servidor||TCP 3306||A -&amp;gt; B||Acceso a Mysql Base de datos&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker||Servidor||TCP 8180||A -&amp;gt; B||&lt;br /&gt;
|-&lt;br /&gt;
|Actualizador||Servidor||TCP 80||A -&amp;gt; B||Necesario para actualizaciones de versiones de aplicaciones de agente y supervisores&lt;br /&gt;
|-&lt;br /&gt;
|Portal de administración||Servidor||TCP 8180||A -&amp;gt; B||Acceso al portal de administración '''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker Web||Servidor||TCP 8180||A -&amp;gt; B||&lt;br /&gt;
|-&lt;br /&gt;
|Monitor||Servidor||TCP 8180||A -&amp;gt; B||Wallboard&lt;br /&gt;
|-&lt;br /&gt;
|Monitorización||Servidor||TCP 80||A -&amp;gt; B||Acceso a portal monitorización (Zabbix)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Gateways ===&lt;br /&gt;
El concepto de gateway como tal no existe en la plataforma '''''VIVA'''''it; existen nodos de ACD y nodos de corporativa.&lt;br /&gt;
&lt;br /&gt;
A efectos de operación un nodo de corporativa es el que en cualquier caso asumirá las funcionalidades de gateway, y recibirá las conexiones (analógicas, digitales o IP) a sistemas externos o a la RTC&lt;br /&gt;
&lt;br /&gt;
El concepto gateway queda pues suscrito a entornos meramente comerciales&lt;br /&gt;
&lt;br /&gt;
Incluimos no obstante en este apartado los diagnósticos y operaciones básicos de conexiones a sistemas externos o RTC&lt;br /&gt;
&lt;br /&gt;
Para verificar los enlaces establecidos ejecutamos el siguiente comando en el terminal: '''sip show peers''' &lt;br /&gt;
&lt;br /&gt;
Al ejecutar este comando obtenemos la salida:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Enlace_Exterior.png |center]]&lt;br /&gt;
&lt;br /&gt;
Las columnas ''Host'' y ''Port'' nos muestran las conexiones establecidas y nos informa de un posible problema de conexión. &lt;br /&gt;
&lt;br /&gt;
Sabremos que ''no existe conexión'' cuando la columna Host tiene el valor '''Unspecified''' y en la columna Port aparece un '''0''' , a continuación se muestra un ejemplo:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ejemplo_no_conexion.png |center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#00FF00&amp;quot;&amp;gt;FALTA AQUI DIAGNOSTICOS Y OPERACIONES DE ENLACES EXTERNOS&amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Servidor de grabación === &lt;br /&gt;
==== Almacenamiento en la nube ====&lt;br /&gt;
Almacenamiento en la nube.&lt;br /&gt;
Existe la posibilidad de que tras un determinado periodo de tiempo las grabaciones sean movidas a un almacenamiento externo. De esta operativa se encarga el proceso /usr/local/sbin/mueveGrabaciones.pl que recibe como parámetro la ruta al archivo de configuración. Dicho archivo tiene los siguientes elementos:&lt;br /&gt;
&lt;br /&gt;
*$db: Nombre de la base de datos.&lt;br /&gt;
*$dbHost: servidor de MySQL&lt;br /&gt;
*$dbPort: Puerto del MySQL.&lt;br /&gt;
*$dbUsuario: Usuario de conexión a MySQL.&lt;br /&gt;
*$dbClave: Clave del usuario anterior.&lt;br /&gt;
*$dirBase: Directorio donde residen las grabaciones&lt;br /&gt;
*$diasCaducidad: Dias de antigüedad para mover las grabaciones&lt;br /&gt;
*$sftpHost: Servidor SFTP de destino&lt;br /&gt;
*$sftpPort: Puerto SFTP.&lt;br /&gt;
*$sftpUsuario: Usuario SFTP.&lt;br /&gt;
*$sftpClave: Clave del usuario SFTP.&lt;br /&gt;
*$simula: Si este campo vale 1, las grabaciones se copian, pero no se borran del directorio original, ni se actualiza su ubicación en la base de datos.&lt;br /&gt;
&lt;br /&gt;
La grabación indica donde se encuentra mediante el campo E_UBICACION_GRABACION, que puede tener los siguientes valores:&lt;br /&gt;
*Sin definir (0)&lt;br /&gt;
*En línea (10): Las grabaciones se encuentran en el servidor de grabaciones.&lt;br /&gt;
*Fuera de línea (20): las grabaciones se encuentran en una ubicación externa.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Reporting ===&lt;br /&gt;
La aplicación de reporting en general no tiene procesos habituales de operación y mantenimiento.&lt;br /&gt;
Los informes son obtenidos desde la interfaz gráfica o mediante un procedimiento de scripting, descritos en “Formato de fichero de intercambio para '''''VIVA'''''it Reporting”.&lt;br /&gt;
&lt;br /&gt;
==== Formato de fichero de intercambio para '''''VIVA'''''it Reporting ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Nombre !! Descripción !! Ejemplo&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;| Selección de registros&lt;br /&gt;
|-&lt;br /&gt;
| SQL_selec || Expresión SQL que se añadirá al where a la SQL principal. || C_ORIGEN like '6%' and C_COD_CLIENTE= '023'&lt;br /&gt;
|-&lt;br /&gt;
| SQL_select_leido || Filtro de selección legible&lt;br /&gt;
 || Skill igual a 60310&lt;br /&gt;
|-&lt;br /&gt;
| SQL_orden || Lista de campos por los que se ordenará, después de los que estén ya definidos en la plantilla. || C_ORIGEN, C_COD_CLIENTE&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Salida&lt;br /&gt;
|-&lt;br /&gt;
| FIC_extension || Extensión de fichero de salida: PDF, XLSX, CSV || PDF&lt;br /&gt;
|-&lt;br /&gt;
| FIC_tipo_entrega || 'P': Pantalla, 'D': Directorio, 'C': Correo || D&lt;br /&gt;
|-&lt;br /&gt;
| FIC_destino || Si 'C', dirección de correo, si 'D', ruta del directorio || D:\informes\&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Plantilla&lt;br /&gt;
|-&lt;br /&gt;
| INF_modelo || Ruta del fichero de plantilla || C:\Modelos\llamadas.rep&lt;br /&gt;
|-&lt;br /&gt;
| INF_descripción || Descripción del informe || Informe detallado de llamadas&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Base de datos&lt;br /&gt;
|-&lt;br /&gt;
| BD_ip || IP o nombre de máquina || &lt;br /&gt;
|-&lt;br /&gt;
| BD_puerto || Puerto de MySQL || &lt;br /&gt;
|-&lt;br /&gt;
| BD_base_datos || Nombre de base de datos || &lt;br /&gt;
|-&lt;br /&gt;
| BD_usuario || Usuario de base de datos || &lt;br /&gt;
|-&lt;br /&gt;
| BD_clave || Clave de acceso cifrada || &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Parámetros&lt;br /&gt;
|-&lt;br /&gt;
| PAR_desde_vis || Fecha inicial de selección en formato legible (o '-' si no hay) || 01/01/2016&lt;br /&gt;
|-&lt;br /&gt;
| PAR_hasta_vis || Fecha final de selección en formato legible (o '-' si no hay) || 31/01/2016&lt;br /&gt;
|-&lt;br /&gt;
| PAR_01 || Parámetro opcional || &lt;br /&gt;
|-&lt;br /&gt;
| .. || .. || &lt;br /&gt;
|-&lt;br /&gt;
| PAR_20 || Parámetro opcional || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El fichero tendrá un nombre único para permitir la generación simultánea de informes.&lt;br /&gt;
El fichero es borrado por la aplicación de forma automática.&lt;br /&gt;
Se pasa a la aplicación de generación de informes como parámetro. Por ejemplo:&lt;br /&gt;
 “C:\Archivos de Programa\MDtel\Nimitz\LanzaInformes\LanzaInformes.exe”&lt;br /&gt;
 “C:\Archivos de Programa\MDtel\Nimitz\LanzaInformes\NIM00001.tmp”&lt;br /&gt;
&lt;br /&gt;
Ejemplo de fichero:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| SQL_selec=(DAT_ACUMULADOS_COLAS.ID_COLA in (11))&lt;br /&gt;
&lt;br /&gt;
SQL_select_leido=Skill igual a 60310&lt;br /&gt;
&lt;br /&gt;
SQL_orden=&lt;br /&gt;
FIC_extension=pdf&lt;br /&gt;
&lt;br /&gt;
FIC_tipo_entrega=P&lt;br /&gt;
&lt;br /&gt;
FIC_destino=C:\&lt;br /&gt;
&lt;br /&gt;
INF_modelo=skill_setsi.rep&lt;br /&gt;
&lt;br /&gt;
INF_descripcion=Skill. SETSI&lt;br /&gt;
&lt;br /&gt;
BD_ip=172.25.1.2&lt;br /&gt;
&lt;br /&gt;
BD_puerto=3306&lt;br /&gt;
&lt;br /&gt;
BD_base_datos=nimitz&lt;br /&gt;
&lt;br /&gt;
BD_usuario=nimitz&lt;br /&gt;
&lt;br /&gt;
BD_clave=UIk5jNY9PVX5ogg=&lt;br /&gt;
&lt;br /&gt;
PAR_desde_vis=-&lt;br /&gt;
&lt;br /&gt;
PAR_hasta_vis=-&lt;br /&gt;
&lt;br /&gt;
PAR_01=&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Resumen de significado de columnas en reporting histórico ====&lt;br /&gt;
Esta información se puede consultar en el siguiente enlace:&lt;br /&gt;
&lt;br /&gt;
http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Documentacion_de_usuario_VIVAit_Suite_3.3#Resumen_del_valor_de_las_columnas_que_aparecen_en_los_informes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===== Agente,asistencia diaria y agente. Asistencia diaria del grupo =====&lt;br /&gt;
&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo de llamado:''' Tiempo de ring en llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo disponible:''' Tiempo que el agente estuvo conectado y no está&lt;br /&gt;
incluido en ninguno de los anteriores.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas transferidas:''' Número de llamadas ACD que fueron&lt;br /&gt;
transferidas por el agente.&lt;br /&gt;
&lt;br /&gt;
===== Agente. Aux y Grupo Aux =====&lt;br /&gt;
&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Desglose de tiempos AUX:''' Tiempo que el agente estuvo en cada uno&lt;br /&gt;
de los motivos de pausa.&lt;br /&gt;
&lt;br /&gt;
===== Agente. Resumen diario =====&lt;br /&gt;
&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo de llamado:''' Tiempo de ring en llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo disponible:''' Tiempo que el agente estuvo conectado y no está&lt;br /&gt;
incluido en ninguno de los anteriores.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas entrada Ext:''' Número de llamadas entrantes NO ACD a la&lt;br /&gt;
extensión.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas salida Ext:''' Número de llamadas salientes NO ACD desde la&lt;br /&gt;
extensión.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas transferidas:''' Número de llamadas ACD que fueron&lt;br /&gt;
transferidas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas retenidas:''' Número de retenciones que sufrieron las&lt;br /&gt;
llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACD:''' Tiempo ACD/ Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACW:''' TiempoACW/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio de entrada a la Ext:''' Tiempo entrada Ext/&lt;br /&gt;
Llamadas entrada Ext.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio de salida a la Ext:''' Tiempo salida Ext/ Llamadas&lt;br /&gt;
salida Ext.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio retención:''' Tiempo retención/Llamadas retenidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % Ocupación con ACW:''' ((Tiempo ACD+ Tiempo retención+ Tiempo&lt;br /&gt;
ACW)/Tiempo con personal)* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % Ocupación sin ACW:''' ((Tiempo ACD+ Tiempo retención)/Tiempo&lt;br /&gt;
con personal)* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % disp.:''' (Tiempo disponible/Tiempo conectado)* 100.&lt;br /&gt;
&lt;br /&gt;
===== Agente. Grupo ACD diario =====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención de un grupo&lt;br /&gt;
ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Ayuda:''' Número de llamadas contestadas por el agente que necesitaron&lt;br /&gt;
de consulta de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas retenidas:''' Número de retenciones que el agente realizó&lt;br /&gt;
sobre las llamadas de ese grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas por&lt;br /&gt;
el agente en ese grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Trans. salida:''' Llamadas que finalizan con una transferencia.&lt;br /&gt;
&lt;br /&gt;
===== Grupo ACD. Reporte diario con AHT =====&lt;br /&gt;
&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACD:''' Tiempo ACD/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACW:''' Tiempo ACW/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención de un grupo&lt;br /&gt;
ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente de un grupo ACD.&lt;br /&gt;
'''• Tiempo de llamado:''' Tiempo de ring en llamadas ACD de un grupo&lt;br /&gt;
ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo disponible:''' Tiempo que el agente estuvo conectado y no está&lt;br /&gt;
incluido en ninguno de los anteriores.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Ayuda:''' Número de llamadas ACD contestadas por el agente en las que&lt;br /&gt;
necesito hacer uso de la consulta.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas retenidas:''' Número de retenciones que el agente realizó&lt;br /&gt;
sobre las llamadas ACD contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas contestadas ACD&lt;br /&gt;
estuvieron retenidas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Trans. salida:''' Número de llamadas ACD que fueron transferidas por el&lt;br /&gt;
agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• AHT:''' (Tiempo ACD+ Tiempo ACW+ Tiempo retención)/Llamadas&lt;br /&gt;
ACD.(Average Handle Time)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Grupo ACD. QOS  =====&lt;br /&gt;
&lt;br /&gt;
'''• Vel. prom. de resp.:''' Tiempo total de espera de llamadas antes de ser&lt;br /&gt;
atendidas/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo prom. de aban.:''' Tiempo abandonadas(tiempo que las&lt;br /&gt;
llamadas abandonadas estuvieron en el grupo ACD)/Llamadas&lt;br /&gt;
abandonadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ofrecidas:''' Número de llamadas entrantes al grupo&lt;br /&gt;
ACD(Llamadas ACD+ Abandonadas+ Desbordadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas contestadas por los agentes.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas abandonadas:''' Número de llamadas colgadas por el cliente&lt;br /&gt;
en el grupo ACD antes de ser contestadas o desbordadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Desconectadas por ACD:''' Número de llamadas desbordadas que al&lt;br /&gt;
salir del grupo ACD se cuelgan.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Desbordadas por ACD:''' Número total de llamadas desbordadas(incluye&lt;br /&gt;
las desconectadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas atendidas en &amp;lt; 20s:'''Número de llamadas contestadas con&lt;br /&gt;
tiempo de respuesta menor a 20 segundos.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo total de espera:''' Tiempo total que las llamadas estuvieron&lt;br /&gt;
esperando antes de ser atendidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % N.A.:''' Llamadas ACD/(Llamadas ACD+ Llamadas abandonadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % N.D.S.:''' (Llamadas atendidas en &amp;lt; 20s/Llamadas ofrecidas)* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• T.M.O:''' (Tiempo ACD+ Tiempo ACW+ Tiempo retención)/Llamadas&lt;br /&gt;
ACD.(Tiempo Medio Operación)&lt;br /&gt;
&lt;br /&gt;
===== Informe conducción (VDN Conducción) =====&lt;br /&gt;
&lt;br /&gt;
'''•Entrantes al grupo ACD:''' Número de llamadas ofrecidas al grupo&lt;br /&gt;
ACD(Contestadas+ Abandonadas+ Desbordadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Llamadas contestadas:''' Número de llamadas contestadas por un agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Contestadas NDS:''' Número de llamadas contestadas en nivel de servicio,&lt;br /&gt;
tiempo de respuesta&amp;lt; 20 segundos.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Abandonadas:''' Número de llamadas abandonadas, colgadas por el cliente&lt;br /&gt;
antes de ser contestadas por un agente o desbordadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Desconectadas:''' Número de llamadas desbordadas que fueron colgadas al&lt;br /&gt;
salir del grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Desbordadas:''' Número total de llamadas desbordadas (incluye desconectadas)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Llamadas retenidas:''' Número de retenciones que el agente realizó sobre las&lt;br /&gt;
llamadas ACD contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•% N.A.:''' (Llamadas contestadas/(Llamadas contestadas+ Abandonadas+&lt;br /&gt;
Desbordadas))* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•% N.D.S.:''' (Contestadas NDS/(Llamadas contestadas+ Abandonadas + Desbordadas))*100&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•% Abandonadas:''' (Abandonadas/(Llamadas contestadas+ Abandonadas+ Desbordadas))* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. RING:''' Tiempo de ring en llamadas ACD(entrantes).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•ACDTIME:''' Tiempo de conversación ACD de las llamadas contestadas o&lt;br /&gt;
realizadas por el agente excluido el tiempo de retención de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. ACW:''' Tiempo dedicado por el agente a tareas administrativas tras&lt;br /&gt;
finalizar las llamadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum HOLD:''' Tiempo que las llamadas contestadas ACD estuvieron retenidas&lt;br /&gt;
por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. OTHER:''' Tiempo total que las llamadas estuvieron esperando en el&lt;br /&gt;
grupo ACD antes de ser atendidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. AVAIL:''' Acum. STAFF- (ACDTIME+ Acum. ACW+ Acum. RING+ Acum.&lt;br /&gt;
HOLD+ Acum. AUX).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. Staff:''' Suma del Tiempo conectado de todos los agentes al grupo&lt;br /&gt;
ACD(Este tiempo se repercute en todos los grupos ACD a los que esta&lt;br /&gt;
conectado el agente).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. AUX:''' Suma del Tiempo en pausa de todos los agentes que estén&lt;br /&gt;
conectados al grupo ACD(Este tiempo se repercute en todos los grupos ACD a&lt;br /&gt;
los que esta conectado el agente).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Prom. ACD:''' ACDTIME/Llamadas contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Prom. ACW:''' Acum. ACW/Llamadas contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Prom. HOLD:''' Acum. HOLD/Llamadas retenidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•AHT:''' (ACDTIME+ Acum. ACW+ Acum. HOLD)/Llamadas contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Vel. prom. de resp.:''' Tiempo total de espera de llamadas antes de ser&lt;br /&gt;
atendidas/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Tiempo máx. de espera:''' Tiempo de la llamada que estuvo mas tiempo en el&lt;br /&gt;
grupo ACD hasta que fue atendida.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Agentes en PH:''' (Acum. Staff- Acum. AUX)/1800(Agentes conectados que no&lt;br /&gt;
están en pausa en el intervalo).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Agentes Staff:''' Acum. Staff/1800(Agentes conectados en el intervalo)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Desglose de tiempos AUX:''' Tiempo que el agente estuvo en cada uno de los&lt;br /&gt;
motivos de pausa.&lt;br /&gt;
&lt;br /&gt;
===== Informe de producción =====&lt;br /&gt;
&lt;br /&gt;
'''• LL. ACD:'''Número de llamadas contestadas por ese agente para ese&lt;br /&gt;
grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. HOLD:''' Número de retenciones efectuadas para las llamadas&lt;br /&gt;
contestadas en ese grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Redir.:''' Número de llamadas no contestadas por un agente que&lt;br /&gt;
fueron redirigidas de nuevo a la cola.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. No colgadas cliente:''' Número de llamadas que terminaron sin el&lt;br /&gt;
colgado del cliente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Aband.:''' Número de llamadas abandonadas en ese grupo ACD, este&lt;br /&gt;
valor es independiente del agente por tanto se repite el valor para todos&lt;br /&gt;
los agentes en un mismo grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Transfer.:''' Número de llamadas ACD que fueron transferidas por el&lt;br /&gt;
agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Conf:''' Número de llamadas ACD en las que el agente estableció&lt;br /&gt;
conferencia.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• S. Extensión:''' Número de llamadas salientes de extensión, este valor es&lt;br /&gt;
independiente del grupo ACD se repite el valor para todos los grupos&lt;br /&gt;
ACD en los que está conectado el agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. Staff:''' Tiempo que el agente estuvo conectado al grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. RING:''' Tiempo de ring en las llamadas ACD(entrantes) que&lt;br /&gt;
fueron contestadas por el agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. ACD:''' Tiempo de conversación de las llamadas ACD(entrantes)&lt;br /&gt;
que fueron contestadas por el agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas que fueron contestadas por él.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum HOLD:''' Tiempo que las llamadas ACD(entrantes) para ese grupo&lt;br /&gt;
ACD que fueron contestadas por el agente estuvieron retenidas.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. AVAIL:''' Acum. STAFF- (Acum. ACD+ Acum. ACW+ Acum. RING+&lt;br /&gt;
Acum. HOLD+ Acum. AUX)..&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. AUX:''' Tiempo que el agente estuvo en pausa este valor es&lt;br /&gt;
independiente del grupo ACD se repite el valor para todos los grupos&lt;br /&gt;
ACD en los que está conectado el agente..&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Desgloses de tiempos AUX, tiempo AUX por cada uno de los&lt;br /&gt;
motivos.''' este valor es independiente del grupo ACD se repite el valor&lt;br /&gt;
para todos los grupos ACD en los que está conectado el agente.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Consideraciones adicionales =====&lt;br /&gt;
&lt;br /&gt;
Los tiempos se insertan en el intervalo en el que se deja ese &amp;quot;estado&amp;quot;, esto provoca que en un intervalo pueda ser mayor el tiempo ACD que el tiempo conectado.&lt;br /&gt;
&lt;br /&gt;
''* Ejemplo:''&lt;br /&gt;
&lt;br /&gt;
 -Llamada: Duración 15 minutos Hora fin de la llamada 13:01&lt;br /&gt;
 -Llamada: Duración 20 minutos Hora fin de la llamada 13:24&lt;br /&gt;
 Suma de las duraciones de las llamadas para el intervalo ''35 minutos'' tiempo&lt;br /&gt;
 conectado del agente en el intervalo ''30 minutos.''&lt;br /&gt;
 Cuando los periodos consultados sean mas amplios (diario, mensual) los&lt;br /&gt;
 desfases tenderán a desaparecer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Otros Diagnósticos y operaciones básicas ==&lt;br /&gt;
=== Arranque y apagado de la plataforma ===&lt;br /&gt;
&lt;br /&gt;
En general el arranque y apagado de cada nodo de una plataforma '''''VIVA'''''it es el estándar de un procedimiento ordenado de apagado en una máquina linux: '''&amp;quot;Shutdown -h now&amp;quot;''' o comando de apagado inmediato o programado equivalente&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El orden de arranque de la plataforma deberá ser:&lt;br /&gt;
# En primer lugar arrancar el nodo con la base de datos de tiempo real&lt;br /&gt;
# Una vez finalizado el arranque del punto 1, arrancar el nodo con la base de datos de réplica&lt;br /&gt;
# Una vez finalizado el arranque del punto 2, arrancar el resto de nodos en cualquier orden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Al respecto del orden de apagado de nodos, es el siguiente:&lt;br /&gt;
# En primer lugar se apagarán, en cualquier orden, los nodos que NO CONTENGAN bases de datos de tiempo real ni bases de datos de réplica&lt;br /&gt;
# Una vez apagados totalmente todos los nodos del punto 1, apagaremos el nodo (o nodos) con bases de datos de réplica&lt;br /&gt;
# Una vez apagados totalmente todos los nodos del punto 2, se apagará el nodo con la base de datos de tiempo real&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== Nivel matriz de conmutación ===&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Grabación ===&lt;br /&gt;
&lt;br /&gt;
==== Configuración de la grabación en la plataforma corporativa ====&lt;br /&gt;
Para que una llamada se grabe, lo primero de todo es que  alguien tenga la capacidad de grabar. Esto se consigue diciendo al nodo que sea grabador. Esto provoca que el nodo llame al mixmonitor para grabar y se inserte un registro en el DAT_GRABACIONES. Esto no significa que ya las llamadas se vayan a grabar, ya que para eso tiene que ser procesadas por un nodo que sea grabador. Hay tres, llamémosle elementos, que se pueden grabar:&lt;br /&gt;
&lt;br /&gt;
* El nodo, es decir todo lo que el nodo enrute&lt;br /&gt;
* Prerutas&lt;br /&gt;
* Objetos: que son las extensiones, usuarios, grupos corporativos, etc.&lt;br /&gt;
&lt;br /&gt;
Tenemos tres formas de grabar:&lt;br /&gt;
&lt;br /&gt;
* Grabar con beep periódico&lt;br /&gt;
* Grabar sin beep periódico&lt;br /&gt;
* Descartar grabación&lt;br /&gt;
&lt;br /&gt;
Si de los tres elementos tenemos que uno grabe, ya sea con o sin beep periódico, esa llamada se va a grabar ya que son OR, en cuanto haya un elemento que diga que grabe se va a grabar.&lt;br /&gt;
&lt;br /&gt;
Al igual pasa si tenemos que un elemento tenga descartar la grabación. La grabación no se inicia.&lt;br /&gt;
&lt;br /&gt;
Referente al campo de Modo de grabación en infraestructura, este no se emplea para la grabación de corporativo, sino que solo tiene validez en ACD. Para grabación en el ACD hay que, como se ha dicho anteriormente poner un nodo que sea grabador y especificar un elemento de los tres que hay cual es el que se va a grabar.&lt;br /&gt;
&lt;br /&gt;
Para que exista una grabación a de existir un segmento asociado a esta. Los segmentos se tratan en las prerutas. Hay un campo es las prerutas que es Generar segmento al enrutar. Si está se generará el segmento del tipo de la preruta y su correspondiente grabación si esta está configurada. Si le decimos que no genere segmentos al enrutar y el sistema está configurado para que grabe, el recordCentral creará un tipo de segmento llamado externo para esa grabación. Podemos configurar si queremos que se cree o no ese segmento, para eso hay que modificar el fichero de configuración del recordCentral y poner un tiempo muy alto al campo $segmExternoMinSegs. También podemos configurar que segmentos queremos que se graben. Por defecto el recordCentral va configurado para que se graben todos los segmentos. Para decirle que solo grabe cierto tipo de segmentos hay que ponerlos los que queramos que si se graben en la variable $tiposSegmentoGrabar del fichero de configuración del recordCentral.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que el servidor de grabación esta activo ====&lt;br /&gt;
&lt;br /&gt;
Si al ejecutar el comando '''''nc ip_maquina 1114''''',si no se recibe ninguna respuesta, significa el servidor de grabación no estaría activo. &lt;br /&gt;
También usando el comando ''''' ps aux | grep recordCentral ''''', donde si no escribe ningún resultado implica que tampoco esta activo.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que los nodos están conectados al servidor de grabación ====&lt;br /&gt;
&lt;br /&gt;
Debemos fijarnos en la linea de respuesta del comando '''''nc ip_maquina 1114''''', que seria:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| root@smadavacdrecord1:~# nc localhost 1114&lt;br /&gt;
recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423&lt;br /&gt;
160112'&lt;br /&gt;
&lt;br /&gt;
recordCentral MYSQL cnx=1&lt;br /&gt;
&lt;br /&gt;
recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
&lt;br /&gt;
recordCenral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
&lt;br /&gt;
'''recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10''''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el parámetro &amp;quot;fase=0&amp;quot; es el numero que identifica el recordCentral, los demás parámetros nos indicaran los nodos disponibles , que funcionan o no en el servidor. Entonces &amp;quot;gestión=4,6,7,8,9,10&amp;quot; indica el id de los nodos que maneja el proceso.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que un nodo tiene activo el agente de grabación ====&lt;br /&gt;
Si al ejecutar el comando '''''nc ip_maquina 1113''''', no se recibe ninguna respuesta, significa que el nodo no tiene activo el agente de grabación.&lt;br /&gt;
También usando el comando ''''' ps aux | grep recordNodo''''', donde si no escribe ningun resultado implica que tampoco esta activo.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que un nodo está subiendo archivos de grabación al servidor ====&lt;br /&gt;
Debemos fijarnos en la linea de respuesta del comando '''''nc ip_maquina 1114''''', que seria:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| root@smadavacdrecord1:~# nc localhost 1114&lt;br /&gt;
recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423&lt;br /&gt;
160112'&lt;br /&gt;
&lt;br /&gt;
recordCentral MYSQL cnx=1&lt;br /&gt;
&lt;br /&gt;
recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
&lt;br /&gt;
recordCenral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
&lt;br /&gt;
'''recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10''''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Fijándonos en &amp;quot;descarga=8,6,4,7,10,9&amp;quot; nos confirma que todos los nodos que maneja el proceso funcionan perfectamente y el servidor puede manejar las grabaciones.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de grabaciones que se hayan quedado enganchadas en un nodo ====&lt;br /&gt;
Podemos fijarnos en los dos comandos, para '''''nc ip_maquina 1114''''':&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| root@smadavacdrecord1:~# nc localhost 1114&lt;br /&gt;
recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423&lt;br /&gt;
160112'&lt;br /&gt;
&lt;br /&gt;
recordCentral MYSQL cnx=1&lt;br /&gt;
&lt;br /&gt;
recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
&lt;br /&gt;
recordCenral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
&lt;br /&gt;
'''recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10''''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Fijándonos en el campo &amp;quot;cuarentena=''&amp;quot; indica que ninguno de los nodos tiene problemas.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación del estado de ocupación del almacenamiento temporal de grabaciones en un nodo. ====&lt;br /&gt;
&lt;br /&gt;
Desde un SSH ejecuta el comando '''''df - h''''' en la maquina donde creamos que debe estar ejecutando el proceso recordNod:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Filesystem !! Size !! Used !! Avail !! Use% !! Mounted on&lt;br /&gt;
|-&lt;br /&gt;
| udev || 486M || 4,0K || 486M || 1,00% || /dev&lt;br /&gt;
|-&lt;br /&gt;
| tmpfs || 100M || 416K || 99M || 1,00% || /run&lt;br /&gt;
|-&lt;br /&gt;
| '''/dev/vda1''' ||''' 236M''' ||''' 68M''' ||''' 156M''' ||''' 31,00% '''||''' /boot'''&lt;br /&gt;
|-&lt;br /&gt;
| tmpfs || 100M || 48K || 100M || 1,00% || /var/spool/asterisk/monitor&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Nos fijaríamos en la línea marcada en negrita, el campo &amp;quot;Use%&amp;quot; indicara el porcentaje de almacenamiento temporal de grabaciones en un nodo.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Escuchas e intrusiones en asterisk===&lt;br /&gt;
'''CallSpy''' es una aplicación elaborada para asterisk que permite a un usuario realizar escuchas e &lt;br /&gt;
intrusiones en llamadas. &lt;br /&gt;
En realidad tenemos dos aplicaciones en asterisk, CallSpy y CallSpyee. &lt;br /&gt;
====CallSpy ====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 '''Nota:''' Como mucho se pueden tener a dieciséis personas al mismo tiempo usando esta aplicación. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como hemos mencionado anteriormente, esta aplicación permite la escucha de llamadas y, &lt;br /&gt;
opcionalmente, realiza la función de intrusión. Tiene tres opciones de configuración obligatorios &lt;br /&gt;
que mostramos a continuación: &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 CallSpy(&amp;lt;tipoEspiado&amp;gt;,&amp;lt;expRegEspiado&amp;gt;,&amp;lt;parametrosConf&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
La opción '''&amp;lt;tipoEspiado&amp;gt;''' se refiere a que tipo de objeto que podemos espiar correspondiente, solo debe elegirse un único tipo: &lt;br /&gt;
*'''c:''' escuchar una cola&lt;br /&gt;
*'''v:''' escuchar un vdn &lt;br /&gt;
*'''a:''' escuchar a un agente &lt;br /&gt;
*'''e:''' escuchar extensión &lt;br /&gt;
La opción '''&amp;lt;expRegEspiado&amp;gt;''' representa el número de la cola, VDN, agente o extensión que queremos escuchar. Tiene que ser una expresión regular. &lt;br /&gt;
La opción '''&amp;lt;parametrosConf&amp;gt;''' se refiera a los parámetros de configuración para la llamada que podemos espiar, se pueden combinar o juntar : &lt;br /&gt;
*'''q:''' Desactiva el 'beep' al comienzo de cada nueva llamada. &lt;br /&gt;
*'''v([value]):''' Ajusta el volumen en el rango -4 a 4 (más alto, mas volumen). &lt;br /&gt;
*'''e:''' Habilita el que se pueda cambiar a otra llamada de la misma extensión. &lt;br /&gt;
*'''w:''' Habilita el que se pueda activar la intrusión (whisper).&lt;br /&gt;
Una vez iniciada la escucha, solo falta que entre una llamada al objetivo que estemos espiando. Al &lt;br /&gt;
iniciar la escucha, se puede hacer lo siguiente: &lt;br /&gt;
*Pulsando '''#''' modifica el volumen de escucha. &lt;br /&gt;
*Pulsando '''*''' cambia a una nueva llamada. &lt;br /&gt;
*Pulsando '''1''' si esta habilitado, cambia a otra llamada de la misma extensión. &lt;br /&gt;
*Pulsando '''2''' si esta habilitado, inicia la función de intrusión. &lt;br /&gt;
*Pulsando '''3''' desactiva la función de intrusión. &lt;br /&gt;
====CallSpyee (espiado)====&lt;br /&gt;
Mediante esta aplicación indicamos los parámetros que permite a una llamada ser seleccionada para &lt;br /&gt;
escuchar. Las opciones de configuración son: &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 CallSpyee([CID_NUM],[cola],[vdn],[agen],[exten]) &lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:'''No son parámetros obligatorios, por lo que no hace falta rellenar todos los campos pero si respetar sus posiciones separadas por comas.&amp;lt;small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
La explicación de los parámetros es la siguiente:&lt;br /&gt;
*'''CID_NUM:''' representa el call ID de la llamadas &lt;br /&gt;
*'''cola:'''representa el número de la cola que se quiere espiar (${QUEUE} ).&lt;br /&gt;
*'''vdn:'''   representa el número del VDN que se quiere espiar (${VDN} ).&lt;br /&gt;
*'''agen:''' representa el número del agente que se quiere espiar.&lt;br /&gt;
*'''exten:''' representa el número de la extensión que se quiere espiar (${EXTENSION}) .&lt;br /&gt;
&lt;br /&gt;
Por ejemplo si queremos escuchar todas las llamadas en las que participa una extensión determinada pondremos en la macro de extensiones: &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,,,${EXTENSION}) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Cambios para el dialplan de asterisk==== &lt;br /&gt;
El funcionamiento de este tipo de servicio conlleva un cambio en el dialplan de asterisk. En cada macro correspondiente se pondrá los diferentes CallSpyee para VDN, colas  , extensiones y agentes. &lt;br /&gt;
Pasos a seguir: &lt;br /&gt;
*Paso 1. Creación de un código de intrusión para cada tipo según necesidad (cola, VDN, agente y &lt;br /&gt;
extensión). &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Ejemplo '''MD'''tel:  declaramos como código de intrusión a Agente *44*NUMERO &lt;br /&gt;
 ;========================================== &lt;br /&gt;
 ;======== Intrusion a Agente &lt;br /&gt;
 ;========================================== &lt;br /&gt;
 exten =&amp;gt; _*44*X.,1,set(CadMarcar=intrusionEspiado) &lt;br /&gt;
 exten =&amp;gt; _*44*X.,n,set(DesL=SERVICIO) &lt;br /&gt;
 exten =&amp;gt; _*44*X.,n,set(datoServicio=^${EXTEN:4}) &lt;br /&gt;
 exten =&amp;gt; _*44*X.,n,Goto(finMacro,1) &lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' En la tercera línea podemos observar la expresión regular que se le pasara al CallSpy correspondiente con el número marcado por el espia. &amp;lt;small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*Paso 2.Llamar a CallSpy con la configuración deseada.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Ejemplo '''MD'''tel:  llamada a CallSpy especificando que vamos a espiar una cola (la c del primer parámetro, con la&lt;br /&gt;
 extensión introducida en el código de intrusión y con whisper, es decir, función de intrusión habilitada. &lt;br /&gt;
 ;------------------------------------------------------------------------ &lt;br /&gt;
 ; Intrusion a Espiado &lt;br /&gt;
 ;------------------------------------------------------------------------ &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,1,NoOp &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,n,GotoIf($[&amp;quot;${datoServicio}&amp;quot;=&amp;quot;&amp;quot;]?colgar) &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,n,CallSpy(c,${datoServicio},w) &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,n(colgar),Hangup &lt;br /&gt;
|}&lt;br /&gt;
* Paso 3. Llamar a CallSpyee con la configuración de las llamadas candidatas a ser escuchadas.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Ejemplo '''MD'''tel: &lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,,,,${EXTENSION}) → Para extensiones &lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,${QUEUE},,,) → Llamadas espiadas por cola &lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,,${VDN},,) → Llamadas espiadas por VDN &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Calendarios ===&lt;br /&gt;
&lt;br /&gt;
Para la configuración de los Calendarios se hace uso de '''CalDAV''', estándar de Internet que permite a un cliente acceder a información de planificación en un servidor remoto. Permite que varios clientes accedan a la misma información, facilitando la cooperación. Muchas aplicaciones, tanto clientes como servidores, son compatibles con este protocolo.&lt;br /&gt;
&lt;br /&gt;
Si deseamos crear un calendario en la plataforma '''VIVAit''' podemos hacerlo siguiendo el  siguiente enlace:  &lt;br /&gt;
Para comprobar que el servidor de calendarios funciona correctamente bastaría con cargar en la barra de direcciones la siguiente url: [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Calendarios |Calendarios]]&lt;br /&gt;
&lt;br /&gt;
http://${NODO.HOST}/dav/html/cal.php/calendars/${DAV.CUENTA}/${DAV.CALENDARIO}&lt;br /&gt;
&lt;br /&gt;
donde,&lt;br /&gt;
&lt;br /&gt;
* '''NODO.HOST:''' es la ip del servidor calendar&lt;br /&gt;
* '''DAV.CUENTA:''' hace referencia a la cuenta de usuario&lt;br /&gt;
* '''DAV.CALENDARIO:''' hace referencia el nombre de la cuenta&lt;br /&gt;
&lt;br /&gt;
Una vez que se carga la url sabremos que el servidor funciona correctamente si visualizamos lo siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla de 2016-07-21 12_43_58.png || 1020px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si el sistema nos pide usuario y clave querrá decir que el servidor de calendarios está operativo en esa maquina&lt;br /&gt;
&lt;br /&gt;
Para comprobar que funciona en la consola de asterisk usaremos los comandos &lt;br /&gt;
 calendar show calendars&lt;br /&gt;
 calendar show calendar [nombreCalendario]&lt;br /&gt;
&lt;br /&gt;
 '''Nota:''' Debido bugs detectados, el proceso requerirá:&lt;br /&gt;
       - La realización de una sincronización manual de la sección &amp;quot;mdcal&amp;quot; desde el portal de administración&lt;br /&gt;
       - Añadir la línea '''''#include &amp;quot;/etc/asterisk/mdcal.conf&amp;quot;''''' en el fichero calendars.conf y hacer &amp;quot;reload&amp;quot; de asterisk&lt;br /&gt;
       - En la máquina donde esté instalado el servidor de calendarios apuntar a la IP de la BDTR (/var/www/dav/config.php)&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Syslog de agentes ===&lt;br /&gt;
'''''Syslog''''' es un estándar para el envío de mensajes de registro en una red informática IP. Por '''''Syslog''''' se conoce tanto al protocolo de red como a la aplicación o biblioteca que envía los mensajes de registro. Se lanza automáticamente al arrancar un sistema Unix, y es el encargado de guardar informes sobre el funcionamiento de la máquina (eventos, seguridad del sistema, etc) pero puede contener también cualquier información como mensajes de las diferentes partes del sistema (núcleo, programas...) y los envía y/o almacena en diferentes localizaciones transmitiéndose mediante un puerto UDP. Esto permite concentrar los registros de múltiples máquinas en un único punto simplificando la labor de gestión al administrador siendo habitual que múltiples dispositivos lo soporten.&lt;br /&gt;
&lt;br /&gt;
El formato del mensaje se compone de tres campos :&lt;br /&gt;
&lt;br /&gt;
* La cabecera contiene la prioridad, fecha y hora del mensaje, máquina, proceso (nombre e identificador) que lo ha generado y la versión del protocolo utilizado.&lt;br /&gt;
* Una serie de pares clave-valor con metadatos.&lt;br /&gt;
* El texto del mensaje.&lt;br /&gt;
&lt;br /&gt;
Si es necesario podemos activar el registro de todos los eventos telefónicos que realiza un agente ACD llamado '''Syslog de agentes'''. Su activación se realiza mediante el '''portal de administración ''VIVA''it'''  configurando unos parámetros para un usuario llamado ''Rastreo BBDD&amp;quot; y ''Rastreo Syslog''. Para más información[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Pesta.C3.B1a_ACD | ver sección  Portal de administración - General - Usuarios - Pestaña ACD  ]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot;  align=&amp;quot;top&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot; |&amp;lt;big&amp;gt;'''Elemento'''&amp;lt;/big&amp;gt; &lt;br /&gt;
|align=&amp;quot;center&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot; | &amp;lt;big&amp;gt;'''Procedimiento'''&amp;lt;/big&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Operacion&lt;br /&gt;
|-&lt;br /&gt;
|Ubicación del proceso||Script arranque: /etc/init/ rsyslog.conf&lt;br /&gt;
Configuración :&lt;br /&gt;
/etc/rsyslog.d/30-vivait-&lt;br /&gt;
desk.conf&lt;br /&gt;
|-&lt;br /&gt;
|Arranque||service rsyslog start&lt;br /&gt;
|-&lt;br /&gt;
|Parada||service rsyslog stop&lt;br /&gt;
|-&lt;br /&gt;
|Reinicio||service rsyslog reload&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Diagnostico&lt;br /&gt;
|-&lt;br /&gt;
|Registro de logs||/var/log/MDtel/vivait-desk.log&lt;br /&gt;
Fichero del día actual. se guardan los 30&lt;br /&gt;
anteriores comprimidos en tar.g&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==Funcionalidades específicas ==&lt;br /&gt;
=== Mecanismo de prioridad adaptativa ===&lt;br /&gt;
&lt;br /&gt;
El mecanismo de prioridad adaptativa permite en una plataforma '''''VIVA'''''it Suite establecer prioridades en las que se tenga en cuenta el tiempo de espera de las llamadas en cola, proporcionando una alternativa al mecanismo de prioridad absoluta que existe por defecto&lt;br /&gt;
&lt;br /&gt;
==== Introducción ====&lt;br /&gt;
&lt;br /&gt;
Este documento presenta una propuesta de mecanismo de asignación de llamadas en colas a agentes basado no solo en las prioridades de agente a cola,&lt;br /&gt;
sino en un factor de corrección de prioridad derivado del tiempo de espera de una llamada&lt;br /&gt;
&lt;br /&gt;
==== Terminología ====&lt;br /&gt;
&lt;br /&gt;
* '''Prioridad de llamada:''' A cada llamada susceptible de ser atendida en el ''Call Center'' se le asignará una prioridad de llamada; dicha prioridad será asignada cada vez que un agente quede disponible.&lt;br /&gt;
* '''Prioridad de grupo ACD:''' Los agentes del ''Call Center'' tendrán configurada una prioridad para cada grupo ACD al que pertenecen&lt;br /&gt;
* '''Tiempo de espera:''' Tiempo que una llamada lleva en espera en un determinado grupo ACD; si la llamada cambia de un grupo ACD a otro el tiempo de espera pasa a cero&lt;br /&gt;
* '''Objetivo de servicio:''' Tiempo objetivo máximo de espera por cada grupo ACD&lt;br /&gt;
&lt;br /&gt;
 '''Nota.-''' ''En terminología Asterisk el aumento de prioridad corresponde con números descendentes, es decir,&amp;lt;br /&amp;gt;&lt;br /&gt;
 prioridad 50 es mejor que prioridad 70''&lt;br /&gt;
&lt;br /&gt;
==== Mecanismo de asignación de llamadas ====&lt;br /&gt;
&lt;br /&gt;
En el momento en que exista un agente disponible para recibir llamada, el agente recepcionará la llamada con mejor prioridad de llamada (menor número). La prioridad de llamada para cada llamada se establecerá de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
- Agentes con prioridad de grupo ACD de 1 a 99 utilizarán el mecanismo convencional de asterisk de prioridad absoluta; será útil para grupos ACD críticos o en Call Centers muy convencionales&lt;br /&gt;
&lt;br /&gt;
'''Si un agente tiene prioridad menor de 100 en grupos ACD y hay llamadas en dichos grupos, estas llamadas serán atendidas por el agente con prioridad absoluta.'''&lt;br /&gt;
&lt;br /&gt;
- Agentes con prioridad de colas de 100 en adelante; se utilizará el siguiente mecanismo de prioridad ponderada:&lt;br /&gt;
&lt;br /&gt;
:*Si el grupo ACD de la llamada está dentro del objetivo de servicio, la prioridad de llamada será la prioridad de grupo ACD (a efectos prácticos se aplicará el mecanismo convencional de asignación de llamada a agente, equitativo entre grupos ACD con misma prioridad)&lt;br /&gt;
&lt;br /&gt;
:*Si el grupo ACD de la llamada está fuera del objetivo de servicio, se aplicará una ponderación que mejorará la prioridad de la llamada a medida que aumente el tiempo de espera:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Formula.png |center]]&lt;br /&gt;
&lt;br /&gt;
En una configuración de igualdad de prioridad de agente y objetivo de servicio, el tiempo de espera influiría de manera determinante (más o menos en&lt;br /&gt;
función del peso) en la asignación de la siguiente llamada&lt;br /&gt;
El peso podrá adquirir tres posibles valores: 0, 1 y 10&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Esquema.png |center]]&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;span style=&amp;quot;color:#000080&amp;quot;&amp;gt;- Calculo prioridad de llamada: se calcula por llamada cada vez que un agente queda libre&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span style=&amp;quot;color:#000080&amp;quot;&amp;gt;- Agente atiende llamada con mejor prioridad de llamada&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Medio:Asignación de llamadas por prioridad adaptativa.pdf|Asignación de llamadas por prioridad adaptativa]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Marcación saliente ===&lt;br /&gt;
Dentro del ACD hay un comportamiento especial que es la marcación saliente. Esta puede ser de tres tipos:&lt;br /&gt;
* '''Vista previa''': El agente demanda la siguiente llamada a realizar.&lt;br /&gt;
* '''Progresivo''': Se llama al agente y se lanza la llamada al contacto.&lt;br /&gt;
* '''Predictivo''': El sistema calcula cuando va a estar libre el agente y se adelanta lanzando varias llamadas (configurables por parámetros). La llamada que es contestada primero, se pasa a una cola (el resto se cuelgan) a la espera que el agente se quede libre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Esquema de funcionamiento====&lt;br /&gt;
[[Archivo:esquema funcionamiento marcador.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
Los contactos se agrupan en listas para su facilidad de asignación a campañas, aunque finalmente lo que se asigna a una campaña es un contacto.&lt;br /&gt;
&lt;br /&gt;
Las campañas tienen estrategias. Las estrategias definen como se ha de llamar (del primero al último, sólo los pares, etc.). Tienen una serie de parámetros que  dependiendo de la estrategia pueden tener distinta utilidad. Desde el punto de vista de la base de datos, las estrategias se definirían en la tabla ACD_CLASES_ESTRATEGIAS y se les da valor en la tabla ACD_ESTRATEGIAS_MARCADOR.&lt;br /&gt;
Una vez establecida la campaña y asignados sus contactos y dependiendo del modo de marcación (que se define en las colas) el proceso motorSal crea los intentos de marcación (siempre y cuando no estén en las listas Robinson), que serán leídos por el proceso myAcdSuperv que los convierte en llamadas para el Asterisk.&lt;br /&gt;
&lt;br /&gt;
====Flujo de estados====&lt;br /&gt;
&lt;br /&gt;
El flujo de estados es el reflejado en la figura siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:diagrama de flujo motorsal.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
Los diferentes estados de un contacto son:&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Estado !! ID_Estado!! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| Planificable || 0|| El contacto está preparado para que lo gestione motorSal y según la estrategia definida se establece el campo ACD_CONTACTOS_CAMPANNAS.D_HORA_PROXIMA&lt;br /&gt;
|-&lt;br /&gt;
|Planificado||10||Cuando ha llegado el tiempo marcado en HORA PROXIMA, motorSal ejecuta la 2ª fase de la estrategia, generando el intento de marcación.&lt;br /&gt;
|-&lt;br /&gt;
|Intento||20||El control pasa a myAcdSuperv, que a su vez genera la llamada en Asterisk. Cuando termina, se pasa a Planificable o Finalizado.&lt;br /&gt;
|-&lt;br /&gt;
|Finalizado||100||Las gestiones con este contacto han terminado.&lt;br /&gt;
|-&lt;br /&gt;
|Abortado||110||&lt;br /&gt;
|-&lt;br /&gt;
|Obsoleto||200||Se ha agotado el tiempo para contactar sin agotar todos los intentos. No se le vuelve a llamar nunca.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Carga de contactos====&lt;br /&gt;
&lt;br /&gt;
===== Descripción =====&lt;br /&gt;
&lt;br /&gt;
A continuación se explica la configuración y funcionamiento de la utilidad encargada de asignar contactos a campañas.&lt;br /&gt;
&lt;br /&gt;
===== Configuración =====&lt;br /&gt;
&lt;br /&gt;
El archivo de configuración recibe el nombre de '''cargaContactos.pconf.''' Este archivo reside en '''/etc/MDtel.''' El formato se describe en la tabla siguiente. Hay que tener en cuenta que las columnas empiezan a numerarse en 0.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Parámetro !! Valor !! Obligatorio !! Defecto&lt;br /&gt;
|- &lt;br /&gt;
| db|| Nombre de la base de datos|| SI || nimitz&lt;br /&gt;
|- &lt;br /&gt;
| dbHost|| Host MySQL || SI || localhost&lt;br /&gt;
|- &lt;br /&gt;
| dbPort|| Puerto MySQL || NO || 3306&lt;br /&gt;
|- &lt;br /&gt;
| dbUsuario || Usuario de acceso a la base de datos|| SI ||&lt;br /&gt;
|- &lt;br /&gt;
| dbClave || Clave del usuario || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| rutaContactos || Ruta hasta el archivo de contactos || NO || /var/spool/MDtel/contactos&lt;br /&gt;
|- &lt;br /&gt;
| obsoletos || Si vale 1, marcar como obsoletos los contactos anteriores || NO || 0&lt;br /&gt;
|- &lt;br /&gt;
| diasCaducidad || Número de dias a partir de los cuales caducarán los contactos || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| idCampanna || Número de columna que contiene el ID de la campaña || SI||&lt;br /&gt;
|- &lt;br /&gt;
| idLista || Numero de columna que contiene el ID de la lista || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| prioridad || Número de columna que contiene la prioridad || NO || Nota: El valor es de 0 a 99. A mayor número menor prioridad (se le llamará más tarde)&lt;br /&gt;
|- &lt;br /&gt;
| tipoTarea|| Número de columna que contiene el tipo de tarea || NO || Nota: los posibles valores de la columna son : &amp;lt;br /&amp;gt; *A: Alta &amp;lt;br /&amp;gt; *M: Modificación &amp;lt;br /&amp;gt; *B: Baja&amp;lt;br /&amp;gt; Por defecto el valor es A&lt;br /&gt;
|- &lt;br /&gt;
| codCli || Número de columna del CSV que contiene el código de cliente || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| nombreCon || Número de columna del CSV que contiene el nombre || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| apellido1 || Número de columna del CSV que contiene el primer apellido|| NO ||&lt;br /&gt;
|- &lt;br /&gt;
| apellido2 || Número de columna del CSV que contiene el segundo apellido || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| empresa || Número de columna del CSV que contiene la empresa || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| direccion1 || Número de columna del CSV que contiene la dirección || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| direccion2 || Número de columna del CSV que contiene la dirección 2 || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| codPostal || Número de columna del CSV que contiene el código postal || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| localidad || Número de columna del CSV que contiene la localidad || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| provin || Número de columna del CSV que contiene la provincia || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| email || Número de columna del CSV que contiene el email || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_1 || Número de columna del CSV que contiene el primer número fijo del contacto || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_2 || Número de columna del CSV que contiene el segundo número fijo del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_3 || Número de columna del CSV que contiene el tercer número fijo del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_4 || Número de columna del CSV que contiene el cuarto número fijo del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_1 || Número de columna del CSV que contiene el primer número móvil del contacto || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_2 || Número de columna del CSV que contiene el segundo número móvil del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_3 || Número de columna del CSV que contiene el tercer número móvil del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_4 || Número de columna del CSV que contiene el CUARTO número móvil del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| edad || Número de columna del CSV que contiene la edad || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc1|| Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc2 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc3 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc4 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc5 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc6 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc7 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc8 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc1 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc2 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc3 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc4 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc5 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc6 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc7 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc8 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|-&lt;br /&gt;
| Idioma || Idioma del contacto || NO ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Funcionamiento =====&lt;br /&gt;
&lt;br /&gt;
Para ejecutar la utilidad se debe teclear la siguiente orden en la línea de comandos:&lt;br /&gt;
&lt;br /&gt;
'''cmd# cargaContactos.pl /&amp;lt;ruta hasta el conf&amp;gt;/cargaContactos.pconf &amp;lt;archivo CSV&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
El archivo con los contactos deberá ser un CSV con los campos separados por ';'. La utilidad parsea el archivo conforme a la distribución indicada en la configuración y crea las correspondientes entradas en las tablas '''ACD_CONTACTOS''' y '''ACD_CONTACTOS_CAMPANNAS.'''&lt;br /&gt;
&lt;br /&gt;
La utilidad crea un log en '''/var/log/cargaContactos.log''' en el que vuelca toda la operativa.&lt;br /&gt;
Por pantalla se va mostrando un lista con el ID asignado al contacto y el ID de campaña al que se le ha asignado.&lt;br /&gt;
&lt;br /&gt;
Un ejemplo de fichero de carga de contactos sería el siguiente: &lt;br /&gt;
&lt;br /&gt;
 #&lt;br /&gt;
 # Configuracion de recordGwd.pl&lt;br /&gt;
 #&lt;br /&gt;
 # Conexion de base de datos&lt;br /&gt;
 $db='nimitz';&lt;br /&gt;
 $dbHost = 'localhost';&lt;br /&gt;
 $dbPort = '3306';&lt;br /&gt;
 $dbUsuario = 'nimitz';&lt;br /&gt;
 $dbClave = 'LA QUE SEA';&lt;br /&gt;
 $diasCaducidad='300';&lt;br /&gt;
 $rutaGrab = '/var/spool/MDtel/contactos';&lt;br /&gt;
 $idCampanna = '31';&lt;br /&gt;
 $idLista = '32';&lt;br /&gt;
 $obsoletos = 0;&lt;br /&gt;
 $codCli = '1';&lt;br /&gt;
 $nombreCon = '2';&lt;br /&gt;
 $apellido1 = '3';&lt;br /&gt;
 $apellido2 = '4';&lt;br /&gt;
 $empresa = '5';&lt;br /&gt;
 $direccion1 = '6';&lt;br /&gt;
 $direccion2 = '7';&lt;br /&gt;
 $codPostal = '8';&lt;br /&gt;
 $localidad = '9';&lt;br /&gt;
 $provin = '10';&lt;br /&gt;
 $email = '11';&lt;br /&gt;
 $valFijo_1 = '12';&lt;br /&gt;
 $valFijo_2 = '13';&lt;br /&gt;
 $valFijo_3 = '14';&lt;br /&gt;
 $valFijo_4 = '15';&lt;br /&gt;
 $valMovil_1 = '16';&lt;br /&gt;
 $valMovil_2 = '17';&lt;br /&gt;
 $valMovil_3 = '18';&lt;br /&gt;
 $valMovil_4 = '19';&lt;br /&gt;
 $edad = '20';&lt;br /&gt;
 $nOpc1 = '21';&lt;br /&gt;
 $nOpc2 = '22';&lt;br /&gt;
 $nOpc3 = '23';&lt;br /&gt;
 $nOpc4 = '24';&lt;br /&gt;
 $cOpc1 = '25';&lt;br /&gt;
 $cOpc2 = '26';&lt;br /&gt;
 $cOpc3 = '27';&lt;br /&gt;
 $cOpc4 = '28';&lt;br /&gt;
 $prioridad = '29';&lt;br /&gt;
 $tipoTarea = '30';&lt;br /&gt;
&lt;br /&gt;
====Comportamiento de reprogramaciones de llamadas en función del estado del agente====&lt;br /&gt;
&lt;br /&gt;
Se ha preparado la sigueinte maqueta:&lt;br /&gt;
&lt;br /&gt;
Campaña saliente.&lt;br /&gt;
Cola saliente progresiva.&lt;br /&gt;
Dos agentes logados en VIVAit Suite.&lt;br /&gt;
&lt;br /&gt;
En el formulario de la llamada se indica: llamada redirigida&lt;br /&gt;
Se selecciona el &amp;quot;check dirigida&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Las posibilidades de prueba son dos: &amp;quot;'''Cualquier agente'''&amp;quot; y &amp;quot;'''Solo agente'''&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Resultados son los siguientes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| '''Estado del agente''' || '''Modo Cualquier Agente'''|| '''Modo Solo Agente'''&lt;br /&gt;
|-&lt;br /&gt;
| '''Agente Preparado''' || Entra llamada a agente|| Entra llamada a agente&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente en Pausa'''||Entra llamada a otro agente disponible||Espera a agente y entra llamada.&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente Hablando'''||Espera a agente y entra llamada||Espera a agente y entra llamada.&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente en Tiempo administrativo'''||Espera a agente y entra llamada||Espera a agente y entra llamada.&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente no logado'''||Entra llamada a otro agenete disponible||Consume intento.&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente con una pestaña de chat abierta y el otro agente en pausa'''||Entra llamada a otro agente disponible||Espera a agente y entra llamada.&lt;br /&gt;
|-&lt;br /&gt;
|'''Agente con dos pestañas de chat abiertas'''||Espera a agente y entra llamada||Espera a agente y entra llamada.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Movilidad ===&lt;br /&gt;
La movilidad es una función integral de las comunicaciones en la empresa. Cualquier empleado (usuario) es móvil en cierto grado, sea dentro o fuera de la organización.La solución óptima debe proporcionar continuidad de servicios y acceso a nuestros servicios, sin importar donde se esté.&lt;br /&gt;
&lt;br /&gt;
==== Ofrecer movilidad a un usuario ====&lt;br /&gt;
&amp;lt;!--parte daniel--&amp;gt;&lt;br /&gt;
Para permitir la movilidad a un usuario, puede ser en el momento de crear o editar un usuario en el apartado ''Administración de usuario'' en ''General'' del '''portal de administración ''VIVA''it'''.  Asignándole un '''''numero login''''' (numero personal corporativo para el usuario) y una '''''clave login''''' ( se debe asignar una clave por defecto, pero puede cambiarla en el [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_3.0#Portal_de_usuario |portal de usuario]]). &amp;lt;br/&amp;gt;Para más información[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Pesta.C3.B1a_Centralita | ver sección Portal de administración - General - Usuarios - administración de usuarios - Pestaña Centralita]].&lt;br /&gt;
&lt;br /&gt;
Además, de crear un permiso de la '''aplicación ''Centralita''''' a cualquier nivel, desde el apartado ''Permisos de usuarios'' en ''General'' del '''portal de administración ''VIVA''it'''.&amp;lt;br/&amp;gt;Para más información[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Asignaci.C3.B3n_de_Permisos_de_Usuario_por_Administrador | ver sección  Portal de administración - General - Usuarios - Permisos a usuarios]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''La movilidad permite''' disponer de las extensiones telefónicas empresariales en cualquier lugar. Por&lt;br /&gt;
ejemplo, con un ordenador portátil o smartphone en una ubicación remota con conexión a Internet,&lt;br /&gt;
podríamos tener registrada nuestra extensión remotamente, y así las llamadas hacia/desde nuestra&lt;br /&gt;
oficina serían enrutadas por Internet hasta el equipo en cuestión sin coste alguno.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--parte daniel--&amp;gt;&lt;br /&gt;
Todo terminal tiene asociado una extensión y deberá permitir la movilidad de usuarios. La extensión se configura cambiando a '''''SI''''' el campo '''''Hay Movilidad''''' desde el apartado ''Extensiones'' de ''Dispositivos'' en ''VIVAit Call'' del '''portal de administración ''VIVA''it'''. Para más información [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Extensiones | ver sección Portal de administración - VIVAit Call - Dispositivos - Extensiones]]&lt;br /&gt;
&lt;br /&gt;
==== ¿Cómo funcionan las extensiones? ====&lt;br /&gt;
&lt;br /&gt;
Primeramente el usuario debe tener los ejes apropiados en la tabla '''COM_USUARIOS_APLICACION''' (aplicación centralita).&lt;br /&gt;
&lt;br /&gt;
La extensión debe de tener ''un teléfono'' y por tanto ''un modelo de teléfono asociado.''&lt;br /&gt;
&lt;br /&gt;
Es tan simple como especificar '''la extensión, el usuario y la clave de este.'''&lt;br /&gt;
&lt;br /&gt;
Para corroborar el funcionamiento de esta hay ''dos métodos'':&lt;br /&gt;
&lt;br /&gt;
'''* CLI asterisk:'''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenEntraUsuarioMovil 25001 20001 1234'''&lt;br /&gt;
&lt;br /&gt;
Y como resultado obtenemos lo siguiente:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br /&amp;gt;&lt;br /&gt;
 MOVIL_TIPO_RESET='10'&amp;lt;br /&amp;gt;&lt;br /&gt;
 MOVIL_CAD_RESET='notify_yealink'&amp;lt;br /&amp;gt;&lt;br /&gt;
 MdintzRes='OK'&lt;br /&gt;
&lt;br /&gt;
El usuario con el login numérico 20001 se ha &amp;quot;movido&amp;quot; a la extensión 25001&lt;br /&gt;
&lt;br /&gt;
Ahora ''nos quitamos de esa extensión mediante el siguiente comando:''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenSaleUsuarioMovil 25001'''&lt;br /&gt;
&lt;br /&gt;
Resultado del comando:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MOVIL_TIPO_RESET='10'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MOVIL_CAD_RESET='notify_yealink'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzRes='OK'&lt;br /&gt;
&lt;br /&gt;
Las pruebas anteriores han sido '''con extensiones con movilidad y con usuario con/sin&lt;br /&gt;
propietario.'''&lt;br /&gt;
&lt;br /&gt;
Ahora las realizamos '''con extensiones sin movilidad'''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenEntraUsuarioMovil 25002 20001 1234'''&lt;br /&gt;
&lt;br /&gt;
Obteniendo:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzRes='movil_error_datos'&lt;br /&gt;
&lt;br /&gt;
Como era lo previsible no nos deja &amp;quot;movernos&amp;quot; a esa extensión ya que no tiene movilidad.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''&amp;lt;u&amp;gt;Si un usuario ya se ha movido a una extensión no se puede mover a otra si no es deslogandose de esta antes.&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Esta línea se comenta porque se ha preparado el sistema para que los ususarios se puedan logar en una nueva extensión y el sistema lo deslogue de la primera a la que se movió. La variable que controla este funcionamiento es MD_AUTODES, con dos posibles valores:&lt;br /&gt;
0, para que el usuario deba deslogarse de una extensión para logarse en otra.&lt;br /&gt;
1, para que sea el sistema el que deslogue automátiamente al usuario cuando cambia de una extensión de movilidad a otra.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;Si un usuario ya se ha movido a una extensión y se mueve a otra, el sistema lo deslogará de la primera para logarlo en la segunda.&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenEntraUsuarioMovil 21000 20001 1234'''&lt;br /&gt;
&lt;br /&gt;
Con salida:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MOVIL_EXTEN='25001'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MDintzRes='movil_ya_login'&lt;br /&gt;
&lt;br /&gt;
'''* Dialplan'''&lt;br /&gt;
&lt;br /&gt;
Para llamar a la función de movilidad hay que marcar el '''9992.'''&lt;br /&gt;
&lt;br /&gt;
 Nota.- Para comprobar que se realiza todo correctamente habría que mirar las trazas de Asterisk&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Grabación ===&lt;br /&gt;
&lt;br /&gt;
La grabación en '''''VIVA'''''it Call está diseñada para ser lo mas flexible posible.&lt;br /&gt;
&lt;br /&gt;
====Configuración====&lt;br /&gt;
&lt;br /&gt;
Si deseamos grabar, debemos activar que alguno de los dispositivos/elementos que intervienen en la llamada se grabe.&lt;br /&gt;
&lt;br /&gt;
Estos dispositivos/elementos son:&lt;br /&gt;
&lt;br /&gt;
* Nodo.&lt;br /&gt;
* Usuario con Centralita.&lt;br /&gt;
* Agente.&lt;br /&gt;
* Grupo ACD corporativo y de Contact Center.&lt;br /&gt;
* Enlace exterior.&lt;br /&gt;
* Extensión.&lt;br /&gt;
* Facilidades.&lt;br /&gt;
* Grupo: grupo de salto o grupo de operadoras.&lt;br /&gt;
* Sala de conferencia.&lt;br /&gt;
* VDN corporativo y de Contact Center.&lt;br /&gt;
* Pre-rutas.&lt;br /&gt;
&lt;br /&gt;
Por otro lado necesitaremos que la llamada pase por un nodo que sea grabador, es decir, que si la llamada esta configurada para que se grabe pero no pasa por ningún nodo grabador, la llamada no se grabará.&lt;br /&gt;
&lt;br /&gt;
Al configurar un nodo existen cuatro campos que intervienen en la grabación.&lt;br /&gt;
&lt;br /&gt;
''''Grabador''''&lt;br /&gt;
&lt;br /&gt;
Se configura en el portal en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Este campo corresponde con el campo [[BD.COM_NODOS#B_ES_GRABADOR|B_ES_GRABADOR]] de la tabla [[BD.COM_NODOS|COM_NODOS]] , este campo define si el nodo va a grabar las llamas que pasen por el que necesiten ser grabadas y no se estén grabando ya.&lt;br /&gt;
&lt;br /&gt;
Es un campo booleano los posibles valores en el portal son si/no y en la base de datos 1/0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''''Modo grabación infraestructura''''&lt;br /&gt;
&lt;br /&gt;
Su configuración se realiza en el portal, en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Este campo define como está configurada la infraestructura, este campo existe por compatibilidad con '''''VIVA'''''it suite y para poder configurar la grabación bajo demanda.&lt;br /&gt;
&lt;br /&gt;
Este campo corresponde con el campo [[BD.COM_NODOS#E_MODO_GRABACION_INFRAESTRUCTURA|E_MODO_GRABACION_INFRAESTRUCTURA]] de la tabla [[BD.COM_NODOS|COM_NODOS]], Este campo usa los valores del enumerado BD.ENUM.TModoGrabacionInfraestructura|TModoGrabacionInfraestructura]].&lt;br /&gt;
&lt;br /&gt;
La formula que se seguiría para ver si una llamada se graba en ese nodo es:&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 (NODO.E_MODO_GRABACION_INFRAESTRUCTURA) AND (NODO.B_ENRU_GRABAR OR CEN_PRE_RUTA.B_ENRU_GRABAR OR &amp;quot;OBJETO&amp;quot;.B_ENRU_GRABAR)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Que sería que si la infraestructura esta en NoGraba no se graba nada de lo que se rute en ese nodo y en cualquiera de los 2 otros caso (GrabaTodo o GrabaPorPeticion) se grabaría dependiendo de la configuración del Nodo, la ruta o el objeto en cuestión (preruta, grupo ACD, extension,...).&lt;br /&gt;
&lt;br /&gt;
''''Grabar enrutamiento''''&lt;br /&gt;
&lt;br /&gt;
Se configura en el portal en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Este campo define si van a grabar las llamadas que se enruten en este nodo.&lt;br /&gt;
&lt;br /&gt;
Campo [[BD.COM_NODOS#E_ENRU_GRABAR|E_ENRU_GRABAR]] de la tabla [[BD.COM_NODOS|COM_NODOS]] que usa los valores del enumerado [[BD.ENUM.TTipoEnruGrabar|TTipoEnruGrabar]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''''RecordCentral''''&lt;br /&gt;
&lt;br /&gt;
Se configura en el portal en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Define que instancia del recordCentral es la encargada de tratar las grabaciones de este nodo.&lt;br /&gt;
&lt;br /&gt;
Para aumentar el rendimiento a la hora de traerse las grabaciones, se pueden definir varias instancias de proceso recordCentral, este campo define cual de estas instancias se encargara de este nodo.&lt;br /&gt;
&lt;br /&gt;
====Vivait Tracker====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL LA ÚNICA REFERENCIA A VIVAIT TRACKER EN LA DOCUMENTACIÓN &amp;quot;Vivait supervisor&amp;quot; QUE TENGO DICE LO SIGUIENTE. &amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Desde '''''VIVA'''''it Supervisor,  que es la aplicación dirigida a Supervisores, ofrece la posibilidad de supervisar y gestionar grupos ACD, agentes, asignaciones, prioridades,etc. Se puede obtener acceso directo a las aplicaciones de grabación ('''''VIVA'''''it tracker) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL FIN EXPLICACIÓN. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL De la documentacion creada por ivan. &amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Esquematico actual del proyecto tracker &lt;br /&gt;
[[Archivo:Esquematico_tracker_1.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1º El tracker web llama al web service Remote login para iniciar sesión y determinar si tiene permisos para la escucha y descarga de grabaciones.&lt;br /&gt;
&lt;br /&gt;
2º Si la ubicación de la grabación es local, mira la ruta de esta y se procede a la escucha o descarga de esta.&lt;br /&gt;
&lt;br /&gt;
3º Si la ubicación de la grabación es remota, entra en escena el proxy. Es el que realiza la petición.&lt;br /&gt;
&lt;br /&gt;
4º Si utilizamos el tracker windows, este, como el tracker web, llama primero al web service remote login para la autenticación y tema de Permisos.&lt;br /&gt;
&lt;br /&gt;
5º Para descargar o escuchar una grabación desde el tracker windows, se llama al web service servidor de grabaciones pasándole simplemente el ID de segmento.mp3. Este web service, con el ID de segmento, se encarga de determinar la ubicación de la grabación.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL De la documentación creada por ivan. &amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Esquematico actual del proyecto tracker &lt;br /&gt;
[[Archivo:Esquematico_tracker_2_https.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1º El tracker web llama al web service Remote login para iniciar sesión (comunicación https) y determinar si tiene permisos para la escucha y descarga de grabaciones. Se elimina el proxy&lt;br /&gt;
&lt;br /&gt;
2º Si la ubicación de la grabación es local, mira la ruta de esta y se procede a la escucha o descarga de esta.&lt;br /&gt;
&lt;br /&gt;
3º Si la ubicación de la grabación es remota, se realiza una petición al host remoto. El tipo de petición vendrá fijada por base de datos (http, https, ftp,ftps)&lt;br /&gt;
&lt;br /&gt;
4º Si utilizamos el tracker windows, este, como el tracker web, llama primero al web service remote login para la autenticación y tema de permisos (comunicación https extremo a extremo).&lt;br /&gt;
&lt;br /&gt;
5º Para descargar o escuchar una grabación desde el tracker windows, se llama al web service servidor de grabaciones pasándole simplemente el ID de segmento.mp3. Este web service, con el ID de segmento, se encarga de determinar la ubicación de la grabación.&lt;br /&gt;
&lt;br /&gt;
[[#Grabación_(Vivait_Tracker)| Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operación_plataforma_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
=== Enrutamiento ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Enrutamiento.png|885px |center]]&lt;br /&gt;
&lt;br /&gt;
==== Funcionamiento ====&lt;br /&gt;
El proceso de enrutamiento, como vemos en el esquemático, se compone de dos fases:&lt;br /&gt;
&lt;br /&gt;
# Preenrutameinto, que se encarga de tratar todas las llamadas&lt;br /&gt;
# Enrutamiento externo, que tiene módulos dedicados al enrutamiento hacia:&lt;br /&gt;
:*Enlaces externos. &lt;br /&gt;
:*Extensiones. &lt;br /&gt;
:*Usuarios de telefonía corporativa. &lt;br /&gt;
:*Facilidades. &lt;br /&gt;
:*Salas de conferencia. &lt;br /&gt;
:*Agentes de grupos ACD. &lt;br /&gt;
:*Grupos ACD. &lt;br /&gt;
:*Vdn. &lt;br /&gt;
:*Buzones para dejar mensaje. &lt;br /&gt;
:*Buzones para su gestión.&lt;br /&gt;
&lt;br /&gt;
Se asume que existen rutas directas entre todos los nodos de la red.&lt;br /&gt;
&lt;br /&gt;
Se asume que están directamente enrutadas todas las direcciones IP involucradas, tanto nodos, como terminales.&lt;br /&gt;
&lt;br /&gt;
Se asume que todas las facilidades están disponibles en todos los nodos, aunque es posible que la implementación sea diferente entre ellos.&lt;br /&gt;
&lt;br /&gt;
Los datos de entrada básicos al proceso de enrutamiento (pdEntr) son:&lt;br /&gt;
* Dispositivo&lt;br /&gt;
* Cola&lt;br /&gt;
* Origen&lt;br /&gt;
* Nodo entrada&lt;br /&gt;
* UCID&lt;br /&gt;
* CALLER_ID_NAME&lt;br /&gt;
* CALLER_ID_NUM&lt;br /&gt;
* DNIS&lt;br /&gt;
* Desvío por dialplan&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A partir de los datos de entrada básicos anteriores se pueden deducir los siguientes valores:&lt;br /&gt;
* Sede del dispositivo de entrada&lt;br /&gt;
* Sede del nodo de entrada&lt;br /&gt;
* Ancho de banda disponible en la sede del dispositivo&lt;br /&gt;
* Ancho de banda disponible en la sede del nodo&lt;br /&gt;
* Categoría entrante&lt;br /&gt;
* Valor del eje1 asignado a la llamadas&lt;br /&gt;
* CALLER_ID_NUM_EXTERNO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los datos de salida globales del proceso de enrutamiento (pdSale) son:&lt;br /&gt;
* Categoría saliente&lt;br /&gt;
* Código de cliente (opcional)&lt;br /&gt;
* Tipo de destino:	&lt;br /&gt;
:* No existe&lt;br /&gt;
:* Ruta externa&lt;br /&gt;
:* Extensión&lt;br /&gt;
:* Usuario de telefonía corporativa&lt;br /&gt;
:* Facilidad&lt;br /&gt;
:* Salas de conferencia&lt;br /&gt;
:* Agentes de grupos ACD&lt;br /&gt;
:* Grupos ACD&lt;br /&gt;
:* VDN&lt;br /&gt;
:* Buzón para dejar mensaje. &lt;br /&gt;
:* Buzón para dejar mensaje por ocupado. &lt;br /&gt;
:* Buzón para dejar mensaje por no contestación. &lt;br /&gt;
:* Buzón para su gestión.&lt;br /&gt;
* Destinatario (cuando se trata de un usuario o de un agente)&lt;br /&gt;
* Valor del eje1 asignado a la llamada&lt;br /&gt;
* Buzón de las extensiones y usuarios que los tengan asignados&lt;br /&gt;
* Si el buzón está en nodo distinto al de entrada&lt;br /&gt;
* DESVIO_INCONDICIONAL (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable) &lt;br /&gt;
* DESVIO_NO_CONTESTA (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable) &lt;br /&gt;
* DESVIO_OCUPADO (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable) &lt;br /&gt;
* DESVIO_FUERA_SERV (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los datos de salida para cada una de las posibles rutas en orden son (nn va de 01 maxRutas [nn son dos dígitos decimales]):&lt;br /&gt;
* CONTADOR_ABDE_nn (contador para control de ancho de banda en sede de dispositivo de entrada).  &lt;br /&gt;
* CONTADOR_ABNE_nn (contador para control de ancho de banda en sede de nodo de entrada).  &lt;br /&gt;
* CONTADOR_ABDS_nn (contador para control de ancho de banda en sede de dispositivo de salida).  &lt;br /&gt;
* CONTADOR_ABNS_nn (contador para control de ancho de banda en sede de nodo de salida).  &lt;br /&gt;
* CALLER_NAME_SAL_nn , puede salir de una extensión, un usuario o de un agente. &lt;br /&gt;
* CALLER_NUM_SAL_nn, puede salir de una extensión, un usuario o de un agente.  &lt;br /&gt;
* DESTINO_SAL_nn , en general, el valor C_NOMBRE o destino de salida.  &lt;br /&gt;
* RUTA_NODO_nn , Cadena de marcación para ir la nodo que soporta DESTINO_SAL_nn, si es distinto del nodo de entrada.  &lt;br /&gt;
* RUTA_SAL_nn &lt;br /&gt;
:* Extensión: cadena marcación. &lt;br /&gt;
:* Facilidad: E_CODIGO_FACILIDAD obtenido de la tabla CEN_FACILIDADES. &lt;br /&gt;
:* Usuario: cadena marcación de la extensión asignada al usuario en movilidad o en propiedad. &lt;br /&gt;
:* Agente: cadena marcación de la extensión a la que está conectado el agente. &lt;br /&gt;
:* Ruta externa: contexto que gestiona la llamada saliente.&lt;br /&gt;
&lt;br /&gt;
=====Fase preenrutamiento =====&lt;br /&gt;
&lt;br /&gt;
La fase de preenrutamiento (basada en la tabla CEN_PRE_RUTA) se usa en todas las llamadas entrantes, tanto internas, como externas. Permite desarrollar un “prerouting” estándar para ACD y para telefonía corporativa.&lt;br /&gt;
&lt;br /&gt;
Los datos de entrada al proceso de enrutamiento son iguales a los del proceso global de enrutamiento, excepto en que este proceso no usa el nodo de entrada ya que es independiente de éste.&lt;br /&gt;
&lt;br /&gt;
Los datos de salida de la fase de preenrutamiento:&lt;br /&gt;
* D_CATEGORIA_SAL &lt;br /&gt;
* COD_CLIENTE (opcional) &lt;br /&gt;
* TIPO_DESTINO_SAL&lt;br /&gt;
:* No existe.   &lt;br /&gt;
:* Volver a preenrutar.   &lt;br /&gt;
:* Ruta externa.   &lt;br /&gt;
:* Extensión.   &lt;br /&gt;
:* Usuario de telefonía corporativa.   &lt;br /&gt;
:* Facilidad.   &lt;br /&gt;
:* Sala de conferencia.   &lt;br /&gt;
:* Agente de grupos ACD.   &lt;br /&gt;
:* Grupos ACD.   &lt;br /&gt;
:* VDN.   &lt;br /&gt;
:* Buzón para dejar mensaje.   &lt;br /&gt;
:* Buzón para dejar mensaje por ocupado.   &lt;br /&gt;
:* Buzón para dejar mensaje por no contestación.   &lt;br /&gt;
:* Buzón para su gestión. &lt;br /&gt;
* COD_CLIENTE &lt;br /&gt;
* Valor del eje1 asignado a la llamada &lt;br /&gt;
* CALLER_NAME &lt;br /&gt;
* CALLER_NUM &lt;br /&gt;
* DESTINO&lt;br /&gt;
&lt;br /&gt;
El proceso de preenrutamiento consiste en seleccionar un único registro de la tabla CEN_PRE_RUTA y, con sus valores y con los valores de entrada al proceso, generar los datos de salida.&lt;br /&gt;
&lt;br /&gt;
Un posible tipo de salida es &amp;quot;Volver a preenrutar&amp;quot;. Esto permite realimentar el proceso un máximo de &amp;quot;max_pre_ruta_regs&amp;quot; veces (en archivo .conf) para simplificar configuración. Sólo tiene sentido realimentar si se ha hecho alguna modificación en los datos de selección de registro, ya que en caso contrario se produciría un bucle que el proceso de preenrutamiento es capaz de detectar y evitar.&lt;br /&gt;
&lt;br /&gt;
Para elegir el registro de CEN_PRE_RUTA, se tienen en cuenta los datos de entrada de la llamada, de modo que se cumpla con todos los puntos siguientes: &lt;br /&gt;
* ID_CATEGORIA_ENT igual a la del dispositivo de entrada.  &lt;br /&gt;
* CALLER_NUM de entrada  &lt;br /&gt;
:* Debe comenzar por la cadena C_ORIGEN_ENT_PREF o C_ORIGEN_ENT_PREF=NULL, con menos prioridad. Es conveniente rellenar este dato del modo más restrictivo que sea posible, independientemente de C_ORIGEN_ENT_EXPR. Ello permite disminuir el uso innecesario de recursos de evaluación de expresiones regulares.    &lt;br /&gt;
:* Debe de tener un número de dígitos igual o superior a N_ORIGEN_ENT_MIN_DIGITOS, si este valor no es NULL o cero.    &lt;br /&gt;
:* Debe de tener un número de dígitos igual o inferior a N_ORIGEN_ENT_MAX_DIGITOS, si este valor no es NULL o cero.    &lt;br /&gt;
:* Debe cumplir la expresión regular C_ORIGEN_ENT_EXPR, si ésta no es NULL.  &lt;br /&gt;
* DNIS empiece con C_DESTINO_ENT_PREF o C_DESTINO_ENT_PREF=NULL. Es conveniente rellenar este dato del modo más restrictivo que sea posible, independientemente de C_DESTINO_ENT_EXPR. Ello permite disminuir el uso innecesario de recursos de evaluación de expresiones regulares.  &lt;br /&gt;
* Si varias entradas cumplen la condición anterior, se prueba primero la que el campo C_DESTINO_ENT_PREF tenga una longitud mayor y, de entre éstas, la que C_ORIGEN_ENT_PREF tenga una longitud mayor.  &lt;br /&gt;
* DNIS tenga un número de dígitos igual o superior a N_DESTINO_ENT_MIN_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* DNIS tenga un número de dígitos igual o inferior a N_ORIGEN_ENT_MIN_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* DNIS cumpla la expresión regular C_DESTINO_ENT_EXPR, si ésta no es NULL. &lt;br /&gt;
&lt;br /&gt;
Si no se encuentra ninguna entrada adecuada, quiere decir que es una llamada prohibida y se devuelve el tipo de destino &amp;quot;No existe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Puede conseguirse un destino &amp;quot;por defecto&amp;quot; diferente, creando una entrada que encaje siempre para cada categoría: C_ORIGEN_ENT, C_ORIGEN_ENT_MIN_DIGITOS, C_ORIGEN_ENT_MAX_DIGITOS, C_ORIGEN_ENT_EXPR, C_DESTINO_ENT_PREF, N_DESTINO_ENT_MIN_DIGITOS, N_DESTINO_ENT_MAX_DIGITOS y C_DESTINO_ENT_EXPR a valor NULL.&lt;br /&gt;
&lt;br /&gt;
Una vez elegida una entrada, ésta puede transformar o sustituir el valor de ID_CATEGORIA, CALLER_NAME, CALLER_NUM, DESTINO, COD_CLIENTE y/o EJE1_MSK a la salida del proceso. &lt;br /&gt;
&lt;br /&gt;
Si ID_CATEGORIA_SAL es cero, se propaga a la salida el valor de la entrada. En caso contrario, se sustituye. &lt;br /&gt;
&lt;br /&gt;
Si C_CALLER_NAME está vacío, se mantiene el valor hubiese a la entrada. En caso contrario, se sustituye. &lt;br /&gt;
&lt;br /&gt;
C_CALLER_NUM puede contener una cadena que identifica el nuevo CALLER_NUM. Además, si la cadena comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo CALLER_NUM es igual al de entrada al proceso. &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo CALLER_NUM es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo. &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;. &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al CALLER_NUM de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo CALLER_NUM de salida. Si la expresión regular no se cumpliese, se propagará el valor de entrada al proceso. &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante que sustituye el valor a la entrada.&lt;br /&gt;
&lt;br /&gt;
Cada vez que se utilice una preruta, se incrementará el valor de N_CONTA si el valor de N_UMBRAL es mayor que cero.&lt;br /&gt;
&lt;br /&gt;
Un valor N_UMBRAL mayor que cero permite modificar el destino de salida cuando el valor de actual de N_CONTA (antes de incrementarse) supere o sea igual el valor de N_UMBRAL. Si se cumple la condición indicada, se usa como destino tras el preenrutamiento, los valores de los campos E_TIPO_DESTINO_SAL_2 y C_DESTINO_SAL_2.&lt;br /&gt;
&lt;br /&gt;
Si el valor de N_UMBRAL es menor o igual a cero o si N_CONTA es inferior a N_UMBRAL, se usa como destino tras el preenrutamiento, los valores de los campos E_TIPO_DESTINO_SAL_1 y C_DESTINO_SAL_1.&lt;br /&gt;
Con este mecanismo de N_CONTA y N_UMBRAL, se pretende facilitar el discriminar a los llamantes reincidentes, cuando sea necesario. &lt;br /&gt;
&lt;br /&gt;
Un proceso periódico externo debe encargarse de poner a cero o decrementar el valor de N_CONTA.&lt;br /&gt;
Como resultado de los procesos de filtrado y de verificación anteriores, se habrá obtenido un TIPO_DESTINO_SAL y un C_DESTINO_SAL a partir de los campos con sufijo &amp;quot;_1&amp;quot; o &amp;quot;_2&amp;quot;, con una metodología similar al caso C_CALLER_NUM.&lt;br /&gt;
&lt;br /&gt;
C_DESTINO_SAL_x puede contener cadena que permite obtener el nuevo destino. Además, si la cadena comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo destino es igual al de entrada al proceso.  &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo destino es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo.  &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;.  &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al destino de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo destino de salida. Si la expresión regular no se cumpliese, quiere decir que es una llamada prohibida y se encaminará hacia una facilidad por defecto.  &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante que sustituye el valor a la entrada. &lt;br /&gt;
Información de salida del proceso de preenrutamiento: Cuando TIPO_DESTINO_SAL_x toma los valores que se indican, el proceso global de enrutamiento sólo requiere de preenrutamiento y la información a devolver se obtiene dependiendo de TIPO_DESTINO_SAL_x: &lt;br /&gt;
* No existe: Se asume que no se conoce un destino para los datos de entrada, por lo que la llamada se encamina hacia una facilidad por defecto que gestiona su tratamiento.  &lt;br /&gt;
* Extensión: A partir de las tablas CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar la extensión en el nodo principal y en el secundario.  &lt;br /&gt;
* Facilidad: A partir de las tablas CEN_DISPOSITIVOS, CEN_FACILIDADES y CEN_NODOS.  &lt;br /&gt;
* Usuario de telefonía corporativa: A partir de las tablas CEN_USUARIOS, CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar al usuario en el nodo principal y en el secundario de la extensión que corresponde en base a movilidad, con prioridad, o en base a propiedad.  El caso de movilidad no se tiene en cuenta si el proceso de enrutamiento se realiza en &amp;quot;modo supervivencia&amp;quot;.  &lt;br /&gt;
* Sala conferencia: A partir de las tablas CEN_SALAS_CONFERENCIAS y CEN_NODOS.  &lt;br /&gt;
* Agente de ACD: A partir de las tablas ACD_USUARIOS, DAT_TR_ACD_EXTENSIONES, CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar al agente en el nodo principal y en el secundario.  &lt;br /&gt;
* VDN: A partir de las tablas ACD_VDN y CEN_NODOS, se devolverán los valores que permiten alcanzar al VDN en su nodo.  &lt;br /&gt;
* Grupo ACD: A partir de las tablas ACD_COLAS y CEN_NODOS, se devolverán los valores que permiten alcanzar al grupo ACD en su nodo. &lt;br /&gt;
&lt;br /&gt;
El campo B_GENERAR_SEGMENTO de la tabla CEN_PRE_RUTA indica al proceso de preenrutamiento que es preciso generar un segmento de tipo &amp;quot;preenrutamiento&amp;quot;. En el segmento generado, se rellena el campo C_ETIQUETA1 del nuevo segmento con el valor que contiene el campo homónimo del registro asociado en la tabla CEN_LISTA_PRE_RUTAS.&lt;br /&gt;
&lt;br /&gt;
===== Fase de enrutamiento en casos en que el destino no es externo =====&lt;br /&gt;
Datos de entrada al proceso de enrutamiento externo: iguales a los de salida del proceso de preenrutamiento (pdPreSale), uniéndose a éstos los datos globales de entrada al proceso (pdEntr). &lt;br /&gt;
&lt;br /&gt;
Datos de salida de la fase de enrutamiento: iguales que los del proceso global de enrutamiento (pdSale). &lt;br /&gt;
&lt;br /&gt;
Específicamente y sólo para los casos en que el destino es una extensión (tipo de destino extensión, usuario de telefonía corporativa o agente) es cuando son válidos los datos correspondientes al buzón asociado y los datos de los posibles desvíos previstos. &lt;br /&gt;
&lt;br /&gt;
También en este caso, se prevén dos posibles rutas, una se corresponde con el acceso a la extensión en el nodo principal de ésta y la otra en el nodo secundario. &lt;br /&gt;
&lt;br /&gt;
En el resto de tipos de destino, sólo se prevé una ruta que puede incluir o no un enlace internodal. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Fase de enrutamiento en el caso de destino externo =====&lt;br /&gt;
Datos de entrada al proceso de enrutamiento externo: iguales a los de salida del proceso de preenrutamiento (pdPreSale), uniéndose a éstos los datos globales de entrada al proceso (pdEntr). &lt;br /&gt;
Datos de salida de la fase de enrutamiento: iguales que los del proceso global de enrutamiento (pdSale). &lt;br /&gt;
&lt;br /&gt;
Se elige los primeros &amp;quot;max_ruta&amp;quot; registros (configurado en archivo .conf) en CEN_DESTINOS_EXTERNOS unido con CEN_RELACION_DESTINOS_ENLACES_EXTERNOS que, teniendo en cuenta los datos de entrada al proceso de enrutamiento, cumpla con todos los puntos siguientes: &lt;br /&gt;
* ID_CATEGORIA_ENT igual a la de salida del proceso de preenrutamiento.  &lt;br /&gt;
* C_DESTINO_SAL de proceso de preenrutamiento empiece con C_DESTINO_ENT_PREF. &lt;br /&gt;
* Si varias entradas cumplen la condicion anterior, se prueba primero la que el campo C_DESTINO_ENT_PREF tenga una longitud mayor.  &lt;br /&gt;
* C_DESTINO_SAL tenga un número de dígitos igual o superior a N_DESTINO_ENT_MIN_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* C_DESTINO_SAL tenga un número de dígitos igual o inferior a N_DESTINO_ENT_MAX_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* C_DESTINO_SAL cumpla la expresión regular C_DESTINO_ENT_EXPR, si ésta no es NULL. &lt;br /&gt;
&lt;br /&gt;
Aparte de la longitud del campo C_DESTINO_ENT_PREF, se usa N_PRIORIDAD como campo para ordenar los registros y seleccionar lo &amp;quot;max_ruta&amp;quot; primeros. &lt;br /&gt;
&lt;br /&gt;
Una vez que un registro es válido, se descartan todos los registros cuyo C_DESTINO_ENT_PREF es diferente del primero seleccionado. &lt;br /&gt;
&lt;br /&gt;
Como resultado de los procesos de filtrado y de verificación anteriores, se habrá obtenido hasta un máximo de &amp;quot;max_rutas&amp;quot; valores para posibles rutas. Las posibles propagaciones y transformaciones en los datos de cada ruta son función de los datos de cada registro seleccionado: &lt;br /&gt;
&lt;br /&gt;
CALLER_NAME_nn: Si C_CALLER_NAME está vacío, se propaga el valor de entrada. En caso contrario, se sustituye. &lt;br /&gt;
&lt;br /&gt;
CALLER_NUM_nn: Sale de C_CALLER_NUM que puede contener una cadena que identifica el nuevo CALLER_NUM_n. Además, si C_CALLER_NUM comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo CALLER_NUM_nn es igual al de entrada al proceso.  &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo CALLER_NUM_nn es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo.  &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;.  &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al CALLER_NUM de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo CALLER_NUM de salida. Si la expresión regular no se cumpliese, se propaga el valor de entrada al proceso.  &lt;br /&gt;
* &amp;quot;&amp;gt;&amp;quot; Si existe valor para CALLER_NUM_EXTERNO, se propagará éste a la salida. En caso contrario y si no está vacía la cadena que queda al eliminar el prefijo &amp;quot;&amp;gt;&amp;quot;, se susituye en la salida por el valor de la cadena sin prefijo. Si la cadena estuviese únicamente constituida por el valor &amp;quot;&amp;gt;&amp;quot;, se propaga el valor de entrada.  &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante sin ninguna modificación. &lt;br /&gt;
&lt;br /&gt;
C_DESTINO_SAL_nn: Se obtiene a partir de C_DESTINO_SAL que puede contener una cadena que identifica el nuevo destino. Además, si la cadena comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo destino es igual al de entrada al proceso. &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo destino es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo. &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;. &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al destino de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo destino de salida. Si la expresión regular no se cumpliese, se propaga el valor de entrada al proceso. &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante sin ninguna modificación. &lt;br /&gt;
&lt;br /&gt;
RUTA_NODO_nn: Sólo se usa si el nodo de salida es diferente del nodo de entrada. Contiene la cadena de marcación para ir la nodo que soporta DESTINO_SAL_nn. Sale del campo C_FORMATO_DIAL (sustituyendo variables) correspondiente al tipo de dispositivo del enlace exterior. &lt;br /&gt;
&lt;br /&gt;
RUTA_SAL_nn: Es el campo C_DATO_ASTERISK obtenido a partir del registro en la tabla CEN_ENLACE_EXTERIOR que se corresponde con ID_ENLACE_EXTERIOR de la tabla CEN_RELACION_DESTINOS_ENLACES_EXTERNOS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Control de ancho de banda ===&lt;br /&gt;
&lt;br /&gt;
Para el control de ancho de banda, primero hemos de tener en consideración que una llamada puede tener asociadas hasta cuatro sedes&lt;br /&gt;
:* Sede del terminal origen (terminal A)&lt;br /&gt;
:* Sede del nodo de registro del terminal origen (nodo A)&lt;br /&gt;
:* Sede del terminal destino (terminal B)&lt;br /&gt;
:* Sede del nodo de registro del terminal destino (nodo B)&lt;br /&gt;
&lt;br /&gt;
Además hemos de tener en cuenta que el audio de la conversación podrá ir:&lt;br /&gt;
:* De manera directa entre terminal A y terminal B&lt;br /&gt;
:* De manera indirecta, a través de los nodos A y B&lt;br /&gt;
&lt;br /&gt;
[[Archivo:ancho de banda.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Cuando se va a cursar una llamada de terminal A a terminal B, el proceso de enrutamiento del nodo A devuelve 4 variables de canal al dialplan:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! Variable!!Campos &lt;br /&gt;
|- &lt;br /&gt;
|R_ABDE_xx||R = Variable de rutas --- AB = ancho de banda --- D = dispositivo --- E = Entrante --- xx = de 0 a 3&lt;br /&gt;
|-&lt;br /&gt;
|R_ABNE_xx||R = Variable de rutas --- AB = ancho de banda --- N = nodo --- E = Entrante --- xx = de 0 a 3&lt;br /&gt;
|-&lt;br /&gt;
|R_ABDS_xx||R = Variable de rutas --- AB = ancho de banda --- D = dispositivo --- S = Saliente --- xx = de 0 a 3&lt;br /&gt;
|- &lt;br /&gt;
|R_ABNS_xx||R = Variable de rutas --- AB = ancho de banda --- N = nodo --- S = Saliente --- xx = de 0 a 3&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El valor de cada variable es una cadena del tipo '''AB.wwww.xxxx.y.z''' donde cada valor es:&lt;br /&gt;
:* '''wwww''' --&amp;gt; id de sede&lt;br /&gt;
:* '''xxxx''' --&amp;gt; ancho de banda total de la sede&lt;br /&gt;
:* '''y''' --&amp;gt; número de llamadas a sumar si conversación directa&lt;br /&gt;
:* '''z''' --&amp;gt; número de llamadas a sumar si conversación indirecta&lt;br /&gt;
&lt;br /&gt;
Por otro lado tenemos que tener en cuenta que el dialplan tiene control de las llamadas que cada sede puede cursar&lt;br /&gt;
&lt;br /&gt;
De esta forma, cuando existe una nueva llamada el dialplan aplica la fórmula, suma el resultado al número de llamadas en curso y lo compara con el máximo...si el resultado es mayor que le máximo la llamada no se cursará por congestión&lt;br /&gt;
&lt;br /&gt;
Configuraremos el ancho de banda por sede en el portal de administración y el consumo que hace cada llamada en la variable '''AB_CONSUMO_LLAMADA''' del fichero '''ext_MDtel_particular.conf''' de cada nodo de conmutación; el valor por defecto es 32&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Puesto de trabajo ==&lt;br /&gt;
El puesto de trabajo del agente en la plataforma '''''VIVA'''''it  (para el producto '''''VIVA'''''it Suite) estará compuesto por:&lt;br /&gt;
* PC (típicamente windows) en el que reside la aplicación '''''VIVA'''''it Desk&lt;br /&gt;
* Terminal telefónico con extensión física asociada.&lt;br /&gt;
&lt;br /&gt;
Para más información [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Puestos | ver sección Portal de administración-VIVAit Suite ACD+ - Puestos]].&lt;br /&gt;
&lt;br /&gt;
=== Relación PC/teléfono en puesto de trabajo ===&lt;br /&gt;
&lt;br /&gt;
Existirá una relación única entre nombre PC y extensión física asociada, si bien los agentes se identificarán por su login que les acompaña al puesto de trabajo en el que se loguen&lt;br /&gt;
Existe un procedimiento documentado para la operativa de cambio de puesto de trabajo, en caso de ser necesario el cambio de PC o de teléfono de un puesto de trabajo.&lt;br /&gt;
==== Procedimiento para un cambio de puesto de trabajo ====&lt;br /&gt;
Se basa en una asignación de PC a teléfono relaccionando la extensión telefónica del terminal físico con el nombre del puesto de trabajo. La configuración de dicha asociación se realiza en el portal de administración de la plataforma. &lt;br /&gt;
&lt;br /&gt;
Cualquier cambio que se realice en terminal telefónico o PC de agente ha de mantener la asociación en el portal a efectos de permitir el funcionamiento del sistema.&lt;br /&gt;
&lt;br /&gt;
A continuación se reflejan los cambios más habituales:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cambio !! Procedimiento !! Punto de acción&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| Cambio de ubicación de un PC || Opción 1.- Renombrar el PC para que conserve el nombre que tenía el anterior en esa ubicación || PC de agente&lt;br /&gt;
|-&lt;br /&gt;
|  Opción 2.- Rehacer la asignación extensión/puesto || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot;| Instalación de PC nuevo en puesto existente || Opción 1.- Renombrar el PC para que conserve el nombre que tenía el anterior en esa ubicación || PC de agente&lt;br /&gt;
|-&lt;br /&gt;
| Opción 2.- Rehacer la asignación extensión/puesto || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| Cambio de nombre en un PC || Rehacer asignación extensión/puesto || Rehacer asignación extensión/puesto&lt;br /&gt;
|-&lt;br /&gt;
|Cambio de ubicación de un teléfono  || Rehacer la asignación extensión/puesto&lt;br /&gt;
 || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| Instalación de un teléfono nuevo en puesto existente || Rehacer la asignación extensión/puesto || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| Instalación de un nuevo puesto de agente|| Hacer asignación extensión/puesto || Portal de administración&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:relacion_puesto_agente.png|center|500px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Estructura de aplicaciones en puesto de trabajo ===&lt;br /&gt;
Las aplicaciones del puesto de trabajo pueden estar ubicadas en cualquier carpeta del sistema. Es importante tener en cuenta que los procesos de actualización, logs… escriben en dichas carpetas, por lo que el usuario de windows deberá tener permisos de lectura/escritura y borrado sobre dichas carpetas&lt;br /&gt;
La instalación del puesto de trabajo es muy liviana para el sistema; las aplicaciones ocupan poco espacio y no se modifican ficheros del sistema operativo (registry o similares)&lt;br /&gt;
Los ficheros importantes son&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Fichero !! Descrición&lt;br /&gt;
|-&lt;br /&gt;
| Vivait-desk.exe || Contiene la aplicación '''''VIVA'''''it Desk de agente&lt;br /&gt;
|-&lt;br /&gt;
| vivait_desk_dll.dll||Este fichero contiene controles sobre los formularios (controles de&lt;br /&gt;
texto, algunas reglas de obligatoriedad…)&lt;br /&gt;
|-&lt;br /&gt;
| nimitz.ini || Configuración del puesto de agente&lt;br /&gt;
|-&lt;br /&gt;
| lanzador.exe || Aplicación de actualización de versiones&lt;br /&gt;
|-&lt;br /&gt;
| lanzador.ini || Configuración del actualizador de aplicaciones&lt;br /&gt;
|-&lt;br /&gt;
| Carpeta forms || En esta carpeta están ubicados los formularios que se abren ante llamada entrante o saliente&lt;br /&gt;
|-&lt;br /&gt;
| Carpeta imágenes || Contiene las imágenes izquierda y derecha de la barra de '''''VIVA'''''it Desk&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Secciones de utilidad en nimitz.ini ===&lt;br /&gt;
&lt;br /&gt;
==== Configuración del puesto de agente ====&lt;br /&gt;
&lt;br /&gt;
El fichero nimitz.ini contiene la configuración del puesto de agente; sus principales parámetros son:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| |''' Fichero'''&lt;br /&gt;
|| '''Descripción'''&lt;br /&gt;
|-&lt;br /&gt;
|Sección [bd1]&lt;br /&gt;
||host=&amp;quot;ip_BBDD_tiempo_real&amp;quot;&lt;br /&gt;
puerto=&amp;quot;Nº puerto&amp;quot;&lt;br /&gt;
basedatos=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
usuario=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
clave=&amp;quot;UIk5jMY9PVX6ogg=&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Contiene información para la conexión a BBDD de tiempo real, en la que '''''VIVA'''''it Desk fundamentalmente inserta información&lt;br /&gt;
|-&lt;br /&gt;
|Sección [bd2]&lt;br /&gt;
||host=&amp;quot; ip_BBDD_replica &amp;quot;&lt;br /&gt;
puerto=&amp;quot;Nº puerto&amp;quot;&lt;br /&gt;
basedatos=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
usuario=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
clave=&amp;quot;UIk5jMY9PVX6ogg=&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Contiene información para la conexión a BBDD de réplica, en la que '''''VIVA'''''it Desk solo leerá información&lt;br /&gt;
|-&lt;br /&gt;
|Sección [telefono]&lt;br /&gt;
||pruebas=1 (Valores válidos 0 ó 1)&lt;br /&gt;
Activación de funcionalidad &amp;quot;servicio técnico&amp;quot; en '''''VIVA'''''it Desk.&lt;br /&gt;
&lt;br /&gt;
puesto=&amp;quot;Nombre puesto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Sección [trazas]&lt;br /&gt;
|| nivel=3&lt;br /&gt;
&lt;br /&gt;
archivo=1&lt;br /&gt;
&lt;br /&gt;
consola=0&lt;br /&gt;
&lt;br /&gt;
sobreescribir=1&lt;br /&gt;
&lt;br /&gt;
Activación de generación de ficheros de trazas &amp;quot;viva-desk.log&amp;quot; en carpeta de aplicaciones &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Parámetros en invocación a '''''VIVA'''''it Desk ===&lt;br /&gt;
&lt;br /&gt;
La aplicación '''''VIVA'''''it Desk puede ser invocada con una serie de parámetros que condicionan su funcionamiento; los parámetros son:&lt;br /&gt;
* Primer parámetro: Nombre del archivo .ini; usado como alternativa al fichero por defecto &amp;quot;nimitz.ini&amp;quot;&lt;br /&gt;
* Segundo parámetro: Nombre de puesto; usado como alternativa al nombre de puesto del ordenador&lt;br /&gt;
* Tercer parámetro: Nombre de login; para forzar un usuario; es de utilidad si el sistema está configurado como &amp;quot;confiar en sistema operativo&amp;quot;, en cuyo caso no permite seleccionar un login de agente para acceder a la aplicación&lt;br /&gt;
&lt;br /&gt;
=== Instalación y actualización de aplicaciones de puestos de trabajo ===&lt;br /&gt;
La instalación y actualización de las aplicaciones en el puesto de trabajo pasan por disponer de los ficheros “lanzador.exe” y “lanzador.ini” (debidamente configurado) dentro de la carpeta en la que se desee instalar.&lt;br /&gt;
Lanzando la aplicación “lanzador.exe” se instalará o actualizará el sistema. &lt;br /&gt;
&lt;br /&gt;
El fichero “lanzador.ini” tiene el siguiente aspecto:&lt;br /&gt;
 URL=&amp;quot;http://IP_Servidor:8180/WSActualizaXML/actualizar.xml&amp;quot;&lt;br /&gt;
 BASE_URL_DESCARGAS=&amp;quot;http://IP_servidor:8180/XMLFILES/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Servicio técnico en '''''VIVA'''''it Desk ===&lt;br /&gt;
La activación de la funcionalidad de servicio técnico en '''''VIVA'''''it Desk nos permite realizar sincronizaciones manuales de la aplicación y activar trazas a nivel de Base de Datos o a nivel de log sobre el propio '''''VIVA'''''it Desk. Pulsando el botón derecho del ratón sobre la barra '''''VIVA'''''it Desk accederemos a las capacidades de soporte técnico&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Funcionamiento de la plataforma en modo emergencia ==&lt;br /&gt;
== Accesos Web ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Aplicación !! Enlace&lt;br /&gt;
|-&lt;br /&gt;
|Portal de administración '''''VIVA'''''it Suite || http://ip_admin:8180/Vivait-Call&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker||http://ip_tracker:8180/Vivait-Tracker&lt;br /&gt;
|-&lt;br /&gt;
|Monitor Web||http://ip_monitor:8180/MonitorWeb&lt;br /&gt;
|-&lt;br /&gt;
|Monitorización Zabbix||http://ip_zabbix:80/zabbix&lt;br /&gt;
|-&lt;br /&gt;
|Base de datos tiempo real||http://ip_bbdd_tr:80/phpmyadmin/&lt;br /&gt;
|-&lt;br /&gt;
|Base de datos réplica||http://ip_bbdd_replica:80/phpmyadmin&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Permisos de aplicaciones ===&lt;br /&gt;
Se crean a través del '''portal de administración ''VIVA''it''' . Debe conocerse como funcionan los ejes [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Ejes| ver sección Portal de administracion - General - Ejes]] y que existen cuatro aplicaciones creadas en la plataforma:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:17_2 Pestaña Genera - Usuarios - Explicacion permisos.png|center]]&lt;br /&gt;
&lt;br /&gt;
La forma como dar permisos de aplicaciones a un usuario esta explicada en la [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Asignaci.C3.B3n_de_Permisos_de_Usuario_por_Administrador | sección  Portal de administracion - General - Usuarios ]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elementos monitorizados del sistema ==&lt;br /&gt;
===Generalidades de Zabbix===&lt;br /&gt;
====Zabbix ====&lt;br /&gt;
Zabbix es una solución de código abierto que ofrece características de monitorización avanzada de forma tecnica y para el negocio, para todo tipo de servidores, aplicaciones y equipos que forman parte de una red. La versión que utilizamos en '''md'''tel es Zabbix 2.2.2.&lt;br /&gt;
&lt;br /&gt;
Zabbix  monitoriza los  recursos  de un equipo en forma remota, permite centralizar la información en un servidor que permite visualizar el monitoreo, cuenta con una interfaz de administración vía web y utiliza un mecanismo flexible de la notificación que permita que los usuarios configuren las alarmas basadas email para informar virtualmente cualquier acontecimiento. Esto permite una reacción rápida a los problemas del servidor. &lt;br /&gt;
&lt;br /&gt;
Para acceder al servidor Zabbix abrimos el navegador y ponemos la dirección de red (IP) de la maquina donde se encuentra instalado el servidor de Zabbix seguido de &amp;quot;/Zabbix.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Direccion.IP.Zabbix.Server/zabbix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Zabbix posee documentación tanto en wiki, foros y comunidades.Para ampliar la información se puede visitar:&lt;br /&gt;
[[http://www.zabbix.com Sitio oficial de Zabbix]]&lt;br /&gt;
===== Glosario Zabbix =====&lt;br /&gt;
Se trata de una lista de conceptos básicos de Zabbix, pero para ampliar la información sobre otros términos, visite el [[http://www.zabbix.com Sitio oficial de Zabbix]].&lt;br /&gt;
* '''host''' &lt;br /&gt;
:En Zabbix, un host es una entidad que define el elemento en red que se desea monitorizar/supervisar activamente sus recursos locales y aplicaciones. Este puede ser una impresa, router, switch, sensores de temperatura, un servidor, un ordenador,etc, o también una aplicación. La característica de un host es que debe poseer una dirección de red (IP).&lt;br /&gt;
&lt;br /&gt;
* '''host group'''&lt;br /&gt;
:En Zabbix, un host group (grupo host) es una agrupación lógica de los host, como una forma de organizar los dispositivos &amp;quot;Host&amp;quot; registrados en Zabbix para su monitorización. Puede contener hosts y templates.  Los grupos host se utilizan en la asignación de derechos de acceso a los hosts para diferentes grupos de usuarios.&lt;br /&gt;
&lt;br /&gt;
* '''item'''&lt;br /&gt;
:En Zabbix, un item (medida) es el parámetro que deseamos obtener del host, básicamente es una medida especifica que el servidor Zabbix recogerá de los agentes de Zabbix instalados en los host.&lt;br /&gt;
&lt;br /&gt;
* '''trigger'''&lt;br /&gt;
:En Zabbix, un trigger(disparador) es una entidad que define un umbral para detectar la existencia de un problema en un dispositivo.  Son valores recolectados por los &amp;quot;items&amp;quot;, se usa para &amp;quot;evaluar&amp;quot; los datos recibidos con condiciones definidas. Las condiciones son de tipo aritmético y lógico.&lt;br /&gt;
* '''event'''&lt;br /&gt;
:En Zabbix, un event (evento) es la aparición de un suceso en Zabbix que necesita atención. Por ejemplo, el cambio de estado a raíz de un trigger, el descubrimiento de un nuevo agente (autoregistro),etc.&lt;br /&gt;
* '''action'''&lt;br /&gt;
:En Zabbix, una action(acción) son reglas predefinidas para reaccionar a un evento disparado por los triggers, es decir, define qué hacer ante un evento. Consta de operaciones (por ejemplo, una notificacion, comandos remotos) y condiciones (cuando  la operación se lleva a cabo).&lt;br /&gt;
* '''notification'''&lt;br /&gt;
:En Zabbix, una notification (notificacion) es la entidad con que Zabbix nos puede notificar (Correo Electrónico,mensajes vía &amp;quot;SMS&amp;quot; o Jabber).&lt;br /&gt;
* '''template'''&lt;br /&gt;
:En Zabbix, un témplate (plantilla) viene predefinida en la instalación de Zabbix Server, con el fin de ser aplicada en base al tipo de sistema operativo(Linux, Mac, Window, etc) o en elementos que comparten los mismos parámetros de medición, por ejemplo la carga del procesador, uso de memoria y  uso de recursos de red. Las plantillas son un conjunto de módulos &amp;quot;ITEM, TRIGGERS y GRÁFICAS&amp;quot;, que están preconfigurados y listas para ser aplicadas a uno o varios hosts.&lt;br /&gt;
* '''application'''&lt;br /&gt;
:En Zabbix, una application (aplicación) es una agrupación lógica de los items.&lt;br /&gt;
* '''Zabbix server'''&lt;br /&gt;
:El Zabbix server (servidor de Zabbix) es el proceso central donde están definidas las configuraciones y donde se almacenan todos los datos y estadísticas recogidas de los agentes Zabbix.Consta de una base de datos, una interfaz web y el propio server. Como servidor, se encarga de recoger los datos de los agentes, calcular los triggers, enviar notificaciones, etc. &lt;br /&gt;
* '''Zabbix agent'''&lt;br /&gt;
:El zabbix agent (agente de Zabbix)  es un proceso desplegado en los host que son supervisados, que funciona como un servicio y puede funcionar de forma activa y pasiva simultáneamente.&lt;br /&gt;
&lt;br /&gt;
=====Discovery=====&lt;br /&gt;
La funcionalidad discovery(detección) lista los dispositivos que se integran en nuestra red y el tipo de servicios que proporciona. Por ejemplo, si la empresa tuviera cien colas ACDs, y veinticinco VDNS, y en cada cola como veinte medidas, seria muy laborioso registrar una por uno cada uno.  &lt;br /&gt;
Gracias a esta funcionalidad, se descubre todas las interfaces de red que se tiene, automáticamente y tanto para colas nodos o IVR. Para utilizar esta funcionalidad , se hace el uso de dos script, que se instalan en el momento de instalación de Zabbix en el directorio &amp;quot;/usr/local/sbin&amp;quot;, que son:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
'''zabbixDiscoveryQueues.pl''' : script utilizado para buscar colas ACD.&lt;br /&gt;
&lt;br /&gt;
'''zabbixDiscoveryVDN.pl''' : script utilizado para buscar VDNS.&lt;br /&gt;
|}&lt;br /&gt;
La explicación de como configurarla se encuentra en el manual oficial [[https://www.zabbix.com/documentation/2.2/manual/discovery/network_discovery/rule | Zabbix detección de redes]].&lt;br /&gt;
&lt;br /&gt;
=====Notificaciones=====&lt;br /&gt;
&lt;br /&gt;
Necesariamente, debe darse de alta al usuario y darse de alta el servidor de correo electrónico para poder ser capaz de enviar correos.&lt;br /&gt;
&lt;br /&gt;
Por otro lado, el formato del correo electrónico y las condiciones de envío de correo al usuario se configura en las acciones. Véase  el [[https://www.zabbix.com/documentation/2.2/manual/quickstart/notification  | manual oficial de Zabbix 2.2]]&lt;br /&gt;
&lt;br /&gt;
=====Usuarios=====&lt;br /&gt;
Zabbix permite la organización de usuarios en grupos para establecer los permisos adecuados de acuerdo al tipo de perfil que deseemos crear. Necesariamente un usuario debe permanecer a un grupo o varios grupos.Todos los usuarios acceden a la aplicación de Zabbix a través de la interfaz Web. &lt;br /&gt;
&lt;br /&gt;
Cada usuario Zabbix se le asigna un nombre de usuario único , una contraseña y podemos indicarle que tipo de comunicación que posee, normalmente es vía email, pero puede ser vía a otro tipo de medios. Para mas información ver el [[https://www.zabbix.com/documentation/2.2/manual/web_interface/user_profile || manual oficial ]].&lt;br /&gt;
 &lt;br /&gt;
=====Visualización=====&lt;br /&gt;
Con Zabbix es posible visualizar los datos como  gráficos, pantallas, mapas y hasta presentaciones cambiantes, entre otros. En este apartado solo nombraremos características esenciales que se tendra que completar con el [[https://www.zabbix.com/documentation/2.2/manual/config/visualisation | manual oficial]]&lt;br /&gt;
======Graphs======&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''Nota:''' Debe crearse algun item dentro del host para poder utilizar una gráfica.&lt;br /&gt;
|}&lt;br /&gt;
En Zabbix una gráfica sirve para representar gráficamente los resultados obtenidos de uno item o varios items.&lt;br /&gt;
[[File:EjemploGrafica.png|center|750px]]&lt;br /&gt;
Los valores min / avg / max que Zabbix obtiene y representa son de un registro de datos de la tabla tendencias.&lt;br /&gt;
&lt;br /&gt;
======Screens======&lt;br /&gt;
La pantalla refiere a otra característica adaptable de ZABBIX cuál permite que los usuarios creen las pantallas personalizadas dentro de ZABBIX para exhibir la información. Se considera como una colección de gráficas y no depende del host. Una pantalla puede consistir en gráficos simples, gráficos personalizados, integrar mapas, Alertas, gráficos estadísticos o texto llano tal como los 5 valores pasados de un item particular entre otros; y mostrar la información de forma dinámica.&lt;br /&gt;
&lt;br /&gt;
[[File:EjemploScreen.png|center|750px]]&lt;br /&gt;
&lt;br /&gt;
======Maps======&lt;br /&gt;
En Zabbix, un map (mapa) es una representación gráfica de la situacion de nuestros dispositivos en red. Es un escenario que muestra nuestra red, aplicaciones y servicios a través de figuras o iconos.  Dichas figuras toman vida en respuesta a los eventos que se dan en nuestro entorno.&lt;br /&gt;
[[File:EjemploMaps.png|center|750px]]&lt;br /&gt;
[[File:EstadosMaps.png|center|750px]]&lt;br /&gt;
===Zabbix en '''MD'''tel===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Configuraciones de Zabbix ====&lt;br /&gt;
&lt;br /&gt;
===== Agentes Zabbix =====&lt;br /&gt;
{|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 '''Nota:''' Hay que instalar un agente Zabbix en cada maquina que se quiera monitorizar.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El agente de Zabbix puede recoger datos: &lt;br /&gt;
*'''De forma pasiva:''' el server contacta al agente pidiéndole un dato (por ejemplo el consumo de CPU en ese instante) y el agente responde al server con ese dato. A esta acción del agente le llamaremos '''Agente activo'''.&lt;br /&gt;
*'''De forma activa:''' en un primer momento, el server le enviará al agente el listado de items a monitorizar. A partir de ese momento, será el agente que de forma periódica recogerá datos sobre esos ítems y se los hará llegar al server. A esta acción del agente le llamaremos ''''''Agente pasivo''''''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== Configurar agente de forma pasiva======&lt;br /&gt;
Para configurar el agente de Zabbix necesitamos acceder a la maquina que actuará como agente, y en el directorio /etc/zabbix modificar el fichero '''zabbix_agentd.conf''' e indicar cual es la dirección de red (IP) del servidor Zabbix.&lt;br /&gt;
&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 ##### Passive checks related&lt;br /&gt;
 ### Option: Server&lt;br /&gt;
 #       List of comma delimited IP addresses (or hostnames) of Zabbix servers.&lt;br /&gt;
 #       Incoming connections will be accepted only from the hosts listed here.&lt;br /&gt;
 #       If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1'  &lt;br /&gt;
 #       are treated equall$&lt;br /&gt;
 #&lt;br /&gt;
 # Mandatory: no&lt;br /&gt;
 # Default:&lt;br /&gt;
 Server= IP.Server Zabbix.&lt;br /&gt;
|}&lt;br /&gt;
Tras la configuración del fichero, debemos reiniciar el servicio de los agentes.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 sudo service zabbix-agent restart&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====== Configurar agente de forma activa ======&lt;br /&gt;
&lt;br /&gt;
Para configurar el agente de Zabbix necesitamos acceder a la máquina que actuará como agente, y en el directorio /etc/zabbix modificar el fichero '''zabbix_agentd.conf''' e indicar cual es la dirección de red (IP) del servidor Zabbix.&lt;br /&gt;
&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 ##### Active checks related&lt;br /&gt;
 ### Option: ServerActive&lt;br /&gt;
 #       List of comma delimited IP:port (or hostname:port) pairs of Zabbix serv$&lt;br /&gt;
 #       If port is not specified, default port is used.&lt;br /&gt;
 #       IPv6 addresses must be enclosed in square brackets if port for that hos$&lt;br /&gt;
 #       If port is not specified, square brackets for IPv6 addresses are option$&lt;br /&gt;
 #       If this parameter is not specified, active checks are disabled.&lt;br /&gt;
 #       Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12$&lt;br /&gt;
 #&lt;br /&gt;
 # Mandatory: no&lt;br /&gt;
 # Default:&lt;br /&gt;
 ServerActive=127.0.0.1&lt;br /&gt;
 --------------------------sección separada----------------------------&lt;br /&gt;
 ### Option: UserParameter&lt;br /&gt;
 #       User-defined parameter to monitor. There can be several user-defined pa$&lt;br /&gt;
 #       Format: UserParameter=&amp;lt;key&amp;gt;,&amp;lt;shell command&amp;gt;&lt;br /&gt;
 #       See 'zabbix_agentd' directory for examples.&lt;br /&gt;
 #&lt;br /&gt;
 # Mandatory: no&lt;br /&gt;
 # Default:&lt;br /&gt;
 # UserParameter=&lt;br /&gt;
 User_parameters:asterisk.pid, /usr/bin/asterisk -rx 'core show chanels'|grep 'active calls'| cat -d -f 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El parámetro '''User_parameters''' tiene un formato de este estilo:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 User_parameters: NombreMedida, comando.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El nombre de la medida se refiere al nombre que demos a la aplicación , no hace falta que exista una aplicación con ese nombre en Zabbix, y el comando , es el comando remoto que tiene que ejecutar el servidor Zabbix. Posiblemente necesita darse permisos para ejecutar el comando y siempre debe devolver un valor (un numero o un tiempo) que el servidor Zabbix puede manejar.&lt;br /&gt;
Tras la configuración del fichero, debemos reiniciar el servicio de los agentes.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 sudo service zabbix-agent restart&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Scripts del Servidor Zabbix =====&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''': &amp;lt;small&amp;gt;No olvidar que en la misma maquina del server Zabbix, debe configurarse como agente de Zabbix.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Después de realizar la [[# Instalación de Zabbix | Instalación de Zabbix ]] correctamente. Se han creado otros ficheros scripts (''scripts propios de '''md'''tel'') que facilitarán la petición del servidor a los agentes activos, para poder parametrizar todos los elementos del negocio que suelen monitorizarse. &lt;br /&gt;
Dependiendo de lo que vaya a monitorizarse necesitaremos algún script o todos. Algunos nos informan sobre elementos de negocio, saber si asterisk funciona , monitorizar el CTI (lanzara nc localhost 1111) , controlar el Intz-Nimitz, comprobar si funciona motalsal, ect.&lt;br /&gt;
&lt;br /&gt;
Cada script se exportara a los host, para que pueda facilitar los datos que pide el servidor Zabbix y configurarse.&lt;br /&gt;
Por ejemplo,para monitorizar las llamadas en curso del ACD, agentes conectados, agentes desconectados, etc.&lt;br /&gt;
Todos los scripts se deben colocar en el directorio /usr/local/sbin con permisos 755, su nombre es parecido a &amp;quot;zabbixSenderXXXXX.pl&amp;quot;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 ls /usr/local/sbin/ |grep zabbixSender&lt;br /&gt;
 '''zabbixSenderACDBD.pl'''&lt;br /&gt;
 '''zabbixSenderACD.pl'''&lt;br /&gt;
 '''zabbixSenderCTI.pl'''&lt;br /&gt;
 '''zabbixSender-intz-nimitz.pl'''&lt;br /&gt;
 '''zabbixSenderMotorSal.pl'''&lt;br /&gt;
 '''zabbixSenderMyACDSuperv.pl'''&lt;br /&gt;
 '''zabbixSenderRecordNodo.pl'''&lt;br /&gt;
 '''zabbixSenderRecordCentral.pl'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Se crea una tarea programada en linux para poder ejecutarse los scripts, programando el tiempo en que debe ejecutarse.&lt;br /&gt;
&lt;br /&gt;
Si visualizo que &amp;quot;............&amp;quot; aparece:&lt;br /&gt;
&lt;br /&gt;
*****  root zabbix&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderACDBD.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtiene diversos valores por cada cola, estados de agente por cola y estados de agente generales.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor BDTR.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:''' Ruta al archivo de configuración (Por ejemplo: ''/etc/MDtel/zabbixSenderACDBD.pconf'')&lt;br /&gt;
&lt;br /&gt;
'''Archivo de configuración:''' zabbixSenderACDBD.pconf&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''$db:''' Nombre de la BBDD (normalmente nimitz)&lt;br /&gt;
 '''$dbHost:''' Dirección IP del servidor de BBDD de TR (normalmente BDTR)&lt;br /&gt;
 '''$dbPort:''' Puerto MySQL (normalmente 3306)&lt;br /&gt;
 '''$dbUsuario:''' Usuario MySQL (normalmente nimitz)&lt;br /&gt;
 '''$dbClave:''' Clave del usuario&lt;br /&gt;
 '''$sZab:''' Dirección IP del servidor Zabbix&lt;br /&gt;
 '''$hZab:''' Nombre del host Zabbix (normalmente el nombre de máquina, tal y como se configura en &lt;br /&gt;
 zabbix_agentd.conf o en el host en la web de Zabbix)&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderACD.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener el PID de Asterisk para revisar si se ha reiniciado en caso de que cambie.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor ACD.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:''' Ruta al archivo de configuración (Por ejemplo: ''/etc/MDtel/zabbixSenderACD.pconf'').&lt;br /&gt;
&lt;br /&gt;
'''Archivo de configuración:''' zabbixSenderACDBD.pconf.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''$db:''' Nombre de la BBDD (normalmente nimitz)&lt;br /&gt;
 '''$dbHost:''' Dirección IP del servidor de BBDD de TR (normalmente BDTR)&lt;br /&gt;
 '''$dbPort:''' Puerto MySQL (normalmente 3306)&lt;br /&gt;
 '''$dbUsuario:''' Usuario MySQL (normalmente nimitz)&lt;br /&gt;
 '''$dbClave:''' Clave del usuario&lt;br /&gt;
 '''$sZab:''' Dirección IP del servidor Zabbix&lt;br /&gt;
 '''$hZab:''' Nombre del host Zabbix (normalmente el nombre de máquina, tal y como se configura en&lt;br /&gt;
 zabbix_agentd.conf o en el host en la web de Zabbix)&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
======zabbixSenderCTI.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de vivait-cti.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute vivait-cti. Normalmente el servidor ACD.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======zabbixSender-intz-nimitz.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de intz-nimitz.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute intz-nimitz.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
======zabbixSenderMotorSal.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de motorSal.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute motorSal.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderMyACDSuperv.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de myAcdSuperv.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute myAcdSuperv.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderRecordNodo.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de recordNodo.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute recordNodo.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderRecordCentral.pl======&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de recordCentral.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute recordCentral.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A continuación se muestra una tabla resumen de los distintos scripts y sus funcionalidades: &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Zabbix_scripts.png |960px]]&lt;br /&gt;
&lt;br /&gt;
====== Dimensionamiento del servidor (Startpollers) ======&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''': &amp;lt;small&amp;gt;EL parámetro StartPollers es un &amp;lt;u&amp;gt;parámetro numérico&amp;lt;/u&amp;gt; que forma parte del fichero de configuración &lt;br /&gt;
 del servidor Zabbix(zabbix_server.conf). Por defecto el servidor Zabbix esta configurado para&lt;br /&gt;
 iniciar con cinco startpollers.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El servidor Zabbix puede hace peticiones a los agentes de las medidas que necesita o quiere. O en caso contrario los agentes envian en un tiempo determinado la información al servidor. Para recibir todas estas peticiones necesitamos los pollers.  &lt;br /&gt;
&lt;br /&gt;
Los poller son los procesos encargados de recibir todas las peticiones de medidas. Aumentaremos su cantidad dependiendo de la necesitad que tengamos. Para ello podemos observar la queue , que es la encargada de almacenar un listado de todas las cosas que están pedidas para medirse y recibirse.  SI por ejemplo esta cola (queue) muestra mas de mil medidas seguramente estos pollers sean un cuello de botella y habrá que aumentar su numero.&lt;br /&gt;
&lt;br /&gt;
=====Templates=====&lt;br /&gt;
&lt;br /&gt;
Zabbix cuenta con templates (plantillas) que facilitan la tarea de &amp;quot;Registrar Equipos y Dispositivos&amp;quot; y agregarles métricas; acelerar el despliegue de las tareas de supervisión en un host; aplicar cambios masivos a tareas de supervisión. En '''md'''tel hemos creado plantillas propias que facilitan estos procesos, los cuales necesitaremos [[#Importar templates |importar templates]].&lt;br /&gt;
&lt;br /&gt;
Las plantillas están vinculados directamente a los hosts individuales, por tanto se necesitaran utilizar en cada host.&lt;br /&gt;
&lt;br /&gt;
Automáticamente, cada template rellena por item las aplicaciones, trigers, alarmas,gráficos,... etc. &lt;br /&gt;
&lt;br /&gt;
A continuación, se muestran los distintos bloques de funciones de la instalación en función de cada template:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! Se instalan en general &lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| SI (si clúster)&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| si&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| -&lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| si(si no posee ip virtuales de clúster)&lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| si&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ '''Dependiendo del tipo de nodo:'''&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! ACD !! Corporativo/GW&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| Si || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - || Si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - || Si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ '''Dependiendo del tipo de Base de dato'''s:&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! BBDD &amp;lt;br /&amp;gt;Tiempo Real !! BBDD&amp;lt;br /&amp;gt; Réplica !! BBDD Copia&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| Si(si ACD) || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| si || si || si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| si || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! Administración&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - &lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - &lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal||SI (si posee servidor calendarios)&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! Servidor de grabaciones&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - &lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| Si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - &lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal||-&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ '''Monitorización'''&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! General !! Contact Center&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - || - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - || - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| si || - &lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - || - &lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 * El template OS Linux tiene asociado el Template App Zabbix Agent.&lt;br /&gt;
 Una '''base de datos unificada''' es una base de datos de tiempo real junto a  una base de datos de replica&lt;br /&gt;
&lt;br /&gt;
====== Importar templates======&lt;br /&gt;
&lt;br /&gt;
Las plantillas propias de '''md'''tel se encuentran en la ruta &amp;quot;'''/usr/src/nimitz/archivos'''&amp;quot; y empiezan con el nombre de &amp;quot;TemplateXXX.xml&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 ls /usr/src/nimitz/archivos | grep Template&lt;br /&gt;
 '''Template DRBD.xml'''&lt;br /&gt;
 '''Template motorSal.xml'''&lt;br /&gt;
 '''Templates Vivait-Suite_GW.xml'''&lt;br /&gt;
 '''Templates Vivait-Suite.xml'''&lt;br /&gt;
 '''Template Vivait-Call Asterisk.xml'''&lt;br /&gt;
 '''Template Vivait-Call bdCentral.xml'''&lt;br /&gt;
 '''Template Vivait-Call bdNodo.xml'''&lt;br /&gt;
 '''Template Vivait-Call cambiarPerfil_Cal.xml'''&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La importación se realizara una vez a través de la web, no hace falta desde el servidor Zabbix, puede ser en cualquier  computadora con acceso a la interfaz web de Zabbix.&lt;br /&gt;
&lt;br /&gt;
[[File:ImportarTemplates.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
Hay opciones varias opciones a elegir para importación de templates, pero podemos dejar por defecto las señaladas y pulsar el botón &amp;quot;import&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Configuración para un primer funcionamiento de Zabbix===&lt;br /&gt;
Se describe una básica configuracion de Zabbix para cualquier equipo que utilice Windows o linux. Pues  mediante la definición de hosts, items, triggers y acciones, Zabbix permite efectuar un monitoreo efectivo de plataformas IT heterogéneas. &lt;br /&gt;
&lt;br /&gt;
====Configuración de los equipost (host) para la monitorización====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''': Tenga en cuenta que debe de estar previamente configurado el agente Zabbix del &lt;br /&gt;
 dispositivo a ser monitorizado apuntando a la IP del &amp;quot;Servidor Zabbix&amp;quot;.&lt;br /&gt;
|}&lt;br /&gt;
Existen dos tipos de host:&lt;br /&gt;
* '''Host físico''': donde la dirección de red que registramos en Zabbix, corresponde al dispositivo que deseamos monitorizar.&lt;br /&gt;
* '''Host virtual''': es una dirección IP virtual, que puede relacionarse con un servidor Web, clusters, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:CreacionHost.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
﻿Las opciones basicas para configurar un host son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center ;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Host Name'''&lt;br /&gt;
|  | Definir un nombre para el host.&lt;br /&gt;
||Se puede utilizar números, letras, espacios y guiones bajos están permitidos.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Visible Name'''&lt;br /&gt;
|  | Identificar con un nombre, la maquina a la que se refiere el host.&lt;br /&gt;
||Si no tiene valor, se mostrara como nombre &amp;quot;Host Name&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Groups'''&lt;br /&gt;
|  | Seleccionar al grupo de host que pertence.Seleccione uno o varios grupos de la caja derecha.&lt;br /&gt;
|| Los valores que puede seleccionar por defecto:&lt;br /&gt;
Discoverd hosts.&lt;br /&gt;
&lt;br /&gt;
Switches.&lt;br /&gt;
&lt;br /&gt;
Templates.&lt;br /&gt;
&lt;br /&gt;
Templates MDtel.&lt;br /&gt;
&lt;br /&gt;
Zabbix servers.&lt;br /&gt;
&lt;br /&gt;
Linux Servers.&lt;br /&gt;
&lt;br /&gt;
Hypervisors.&lt;br /&gt;
&lt;br /&gt;
Virtual machines.&lt;br /&gt;
&lt;br /&gt;
O crear uno nuevo en '''New group'''.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Agent interfaces'''&lt;br /&gt;
|  |Se recomienda usar una dirección IP, en vez de un nombre de la maquina para resolver por un servidor de DNS que puede fallar.&lt;br /&gt;
|  | 10050 por defecto&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cuando termine, haga clic en nel boton &amp;quot;Save&amp;quot;.  Su nuevo &amp;quot;Host&amp;quot; debe ser visible en la lista de &amp;quot;Host registrados&amp;quot;.Despues el zabbix, intentara configurarse el zabbix para conectarse a la IP.... cada x tiempo hace un barrido. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Comprobación de disponibilidad del host=====&lt;br /&gt;
Para saber si todo esta bien debemos ver la Z de disponibilidad.   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:EstadosZHost.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Indicacion de los colores del icono Z:&lt;br /&gt;
&lt;br /&gt;
* Si el icono Z en la columna de disponibilidad es de color rojo, indica que hay un error en la comunicación - mueva el cursor del ratón sobre él para ver el mensaje de error. &lt;br /&gt;
&lt;br /&gt;
* Si el icono es gris, significa que esta en proceso de comunicación con el &amp;quot;Agente Zabbix&amp;quot;. Compruebe que el servidor Zabbix está en marcha, y pruebe a actualizar la página más tarde.  El tiempo estimado para revisar si existe problemas es de 5 minutos.&lt;br /&gt;
&lt;br /&gt;
* Si el icono es verde, esta funcionando correctamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Indicar que plantilla(template) tendra el host [opcional]====&lt;br /&gt;
Tras [[#Importar templates |importar templates]] nos dirigimos al host ya configurado, y en su pestaña de templates pulsamos &amp;quot;add&amp;quot; y añadimos la plantilla/s adecuadas.&lt;br /&gt;
&lt;br /&gt;
====Asignar items al host ====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''':Un host puede tener un ITEM sin necesitad de tener template.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Todos lo ITEMS se agrupan por HOST, esto significa que cada HOST tiene sus propios &amp;quot;Módulos que recogen datos del Host&amp;quot;.   Para agregar un nuevo módulo vamos a &amp;quot;Configuration → Hosts&amp;quot; y localizamos el &amp;quot;Host&amp;quot; al cual queremos agregarle un nuevo &amp;quot;Item&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:CrearItemEjemplo.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
Parametros o campos a rellenar para una configuración básica :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center ;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Name'''&lt;br /&gt;
|  | Definir un nombre para el item.  Este nombre va a ser nuestro identificador para todas la gestiones en donde lo involucremos como el caso de Triggers.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Type'''&lt;br /&gt;
|| Indicar de que entidad queremos recibir informacion.&lt;br /&gt;
||Puede ser al &amp;quot;Agente Zabbix&amp;quot; o a el Hardware como impresoras, switch o routers.   &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Key'''&lt;br /&gt;
|  | los &amp;quot;Items&amp;quot; utilizan &amp;quot;Key&amp;quot; que son parámetros de Zabbix.  Los &amp;quot;Key&amp;quot; nos permiten indicar específicamente que tipo de información vamos a solicitara a la entidad. Se puede considerar también como el nombre de alguna aplicación.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''host interface'''&lt;br /&gt;
|  |Es la direccion de red del servidor zabbix (puede ser uno o mas)&lt;br /&gt;
|  | &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Units'''&lt;br /&gt;
|  |Es la dirección de red del servidor zabbix (puede ser uno o mas)&lt;br /&gt;
|  | &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Type of information'''&lt;br /&gt;
|  |Tipo de unidades con el que mostrar Zabbix el valor segundos, minutos, euros,....&lt;br /&gt;
|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cuando termine, haga clic en Guardar.   El nuevo elemento debe aparecer en la ITEMLIST. &lt;br /&gt;
Para mas informacion [[http://entation/1.8/manual/config/items#zabbix_agent. ver documentación Zabbix]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Ver la información recolectada por el item =====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' Normalmente para ver la información lo encontraremos en &amp;quot;Monitoring → Latest data&amp;quot;,luego &lt;br /&gt;
 clic en el signo &amp;quot;+&amp;quot; en &amp;quot;other&amp;quot; siempre que no pertenezca a una aplicación. &lt;br /&gt;
 En caso contrario, estará bajo el nombre de la aplicación.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Después de definir el &amp;quot;Item&amp;quot; vamos a revisar la información que esta recolectando.  .  La información comenzará a ser recolectada según el tiempo que le indicamos en el &amp;quot;Item&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:VerInfoITEM.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
La espera para recibir la información varía dependiendo del tiempo de recolección del item, la mayoría suele ser aproximadamente al minuto de generar el &amp;quot;Item&amp;quot;. Zabbix le ofrece la opción de visualizar la información en forma gráfica (sencilla).  En el &amp;quot;Item&amp;quot; en lista haga clic en la columna &amp;quot;History - Graph&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:VIsualGraficaValorItem.png|center|750px]]&lt;br /&gt;
Si en un caso usted no observa información le recomendamos:&lt;br /&gt;
  &lt;br /&gt;
* Ingrese al &amp;quot;Item&amp;quot; y revise que la información del &amp;quot;Key&amp;quot; este igual al ejemplo &amp;quot;system.cpu.load&amp;quot; &lt;br /&gt;
* Verifique que el agente este funcionando en el &amp;quot;Servidor a ser monitoreado&amp;quot; y que &amp;quot;El Servidor recolector Zabbix&amp;quot; este funcionando. &lt;br /&gt;
* El icono &amp;quot;Z&amp;quot; en el host debe estar en color verde. &lt;br /&gt;
* Asegure que esta monitoreando el servidor que le agregó este &amp;quot;Item&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Configurar los Triggers para los host====&lt;br /&gt;
A partir de la información que captura los agentes , el servidor de Zabbix comienza a efectuar la recolección de estos items en la base de datos. Con esto se tiene un registro histórico de tales mediciones, que pueden ser tan simples como un simple ping hasta datos de uso de disco, memoria, cpu, etc.&lt;br /&gt;
A partir de los datos que se reciben de los agentes lo que sigue es definir y configurar Triggers, que son evaluaciones que hace Zabix de estos datos para determinar la existencia de un Problema en un dispositivo.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Nota: Un trigger necesita una accion, que indica que hacer cuando se activa el trigger.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un trigger(disparador) es un tipo de reacción ante unas medidas, como un disparador en el que si pasa algo se activa. Los Trigger en Zabbix son módulos que creamos a uno o múltiples &amp;quot;Items&amp;quot; para evaluar o comparar los valores recolectados por los &amp;quot;Items&amp;quot; con condiciones que nosotros definamos.  Las condiciones son de tipo aritmético y lógico.&lt;br /&gt;
&lt;br /&gt;
Para configurar un &amp;quot;Trigger o Disparador&amp;quot; seleccionamos &amp;quot;Configuration → Hosts&amp;quot; localizamos el &amp;quot;Host&amp;quot; de ejemplo que creamos y luego hacemos clic en &amp;quot;Trigger&amp;quot;, después haga clic en &amp;quot;Create Trigger&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Parametros o campos a rellenar para una configuración básica :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center ;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Name'''&lt;br /&gt;
|  | Definir un nombre para el trigger.  Este nombre va a ser nuestro identificador para todas la gestiones en donde lo involucremos como el caso de los eventos.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Expression'''&lt;br /&gt;
||  Hay que indicar para que medida se crea (item) y sus funciones con los parametros adecuados. '''''Recomendación usar expression constructor que pedirá siempre al crearlo, para que item es y sus funciones...'''''&lt;br /&gt;
||Ejemplo: {New host:system.cpu.load.avg(180)}&amp;gt;2 &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Key'''&lt;br /&gt;
|  | los &amp;quot;Items&amp;quot; utilizan &amp;quot;Key&amp;quot; que son parámetros de Zabbix.  Los &amp;quot;Key&amp;quot; nos permiten indicar específicamente que tipo de información vamos a solicitara a la entidad. Se puede considerar tambien como el nombre de alguna aplicacion.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Una descripción breve sobre el trigger.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Severity'''&lt;br /&gt;
|  | everidad distinguida por colores,&lt;br /&gt;
|| No classified&lt;br /&gt;
 Information&lt;br /&gt;
 Warning&lt;br /&gt;
 Average&lt;br /&gt;
 High&lt;br /&gt;
 Disaster&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Comprobar el estado del trigger =====&lt;br /&gt;
Podemos ver el estado del &amp;quot;Trigger&amp;quot; en &amp;quot;Monitoring → Triggers&amp;quot;.El  color en caso de que se active depende de la severidad definida. Por ejemplo,  si el &amp;quot;Trigger&amp;quot; esta en color verde indica que el resultado de la métrica se mantiene por debajo de la condición que indicamos.  Por el contrario si el resultado esta &amp;quot;sobre lo indicado&amp;quot; su color sera rojo.&lt;br /&gt;
&lt;br /&gt;
[[File:EstadoTrigger.png|center|750px]]&lt;br /&gt;
&lt;br /&gt;
====Asociar un Action al trigger====&lt;br /&gt;
&lt;br /&gt;
Una action(acción) sirve para configurar un mensaje de alerta o una accion para Zabbix, ante un problema. Hay varias formas de gestionar un problema a través de una acción:&lt;br /&gt;
&lt;br /&gt;
# A través de mensajes simples, alertando al instante.&lt;br /&gt;
# Escalar los mensajes hacia el jefe y/o otros grupos.&lt;br /&gt;
# Ejecución de commandos remotos.&lt;br /&gt;
# Notificaciones repetidas hasta que se resuelve el problema.&lt;br /&gt;
# Notificaciones y comandos retardados.&lt;br /&gt;
# Escenario complejo, la combinación de todo lo anterior.&lt;br /&gt;
&lt;br /&gt;
Para crear una configuración en &amp;quot;Configuration-Actions&amp;quot;. La explicación esta en la [[ https://www.zabbix.com/documentation/2.0/manual/config/notifications/action documentación de Zabbix]].&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integraciones con servicios externos ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Presencia con Openfire ===&lt;br /&gt;
'''''VIVA'''''it se integra con servidor XMPP Openfire en su versión 3.10.2 (última probada)&lt;br /&gt;
&lt;br /&gt;
Además del servidor, es necesario instalar un plugin de integración con asterisk 13, denominado &amp;quot;asterisk IM&amp;quot;, versión 1.4.1&lt;br /&gt;
&lt;br /&gt;
La instalación del servidor Openfire es una instalación estándar, realizada de paquete&lt;br /&gt;
&lt;br /&gt;
La instalación del plugin es un &amp;quot;jar&amp;quot; que se carga desde la pagina de plugins de openfire&lt;br /&gt;
&lt;br /&gt;
Con esto conseguiremos comunicar asterisk y OPenfire de manera que:&lt;br /&gt;
*Los estados telefónicos de una extensión '''''VIVA'''''it  se reflejen en Openfire&lt;br /&gt;
*Poder marcar desde los clientes de IM instalados en los puestos&lt;br /&gt;
*Ver en el cliente llamadas entrantes al teléfono&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;Enlaces de interes:&amp;lt;/big&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
[http://www.igniterealtime.org/projects/openfire/ Página proyecto openfire]&lt;br /&gt;
&lt;br /&gt;
[https://community.igniterealtime.org/thread/56076 Página proyecto &amp;quot;asterisk IM&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reuniones virtuales con Openmeetings ===&lt;br /&gt;
'''OpenMeetings''' es un sistema de vídeo web-conferencia en tiempo real. Usando recursos como audio (micrófono), vídeo (cámara web), posibilidad de subir y convertir presentaciones (en PDF , PPT o ODP que se convierten a Flash), compartición de la pantalla de tu ordenador, o pizarra digital compartida, panel de administración, posibilidad de grabar las sesiones… y completo soporte multiplataforma, es decir, que aparte de poder grabar las sesiones, se puede compartir un escritorio también desde una máquina Linux.&lt;br /&gt;
&lt;br /&gt;
Para instalar '''OpenMettings''' debe seguir el [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manuales_de_instalaci%C3%B3n#Instalaci.C3.B3n_de_Openmeetings | manual de Instalación de Openmeetings]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]] &lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:VIVAit Suite]]&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Howto%27s&amp;diff=5993</id>
		<title>Howto's</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Howto%27s&amp;diff=5993"/>
		<updated>2017-07-13T12:37:04Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* Cancelación de eco en la plataforma */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!! VIVAit Call&lt;br /&gt;
VIVAit Suite&lt;br /&gt;
&lt;br /&gt;
VIVAit Fax&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Como parar asterisk ==&lt;br /&gt;
En situaciones límite en el que es necesario parar el asterisk y volver a arrancarlo hay que realizar los siguientes pasos:&lt;br /&gt;
&lt;br /&gt;
 Entrar en la consola de asterisk e introducir el comando core stop now&lt;br /&gt;
&lt;br /&gt;
 Si esto no funciona, tendremos que matar el proceso a mano. Esto es, primero el safe asterisk y luego el asterisk mediante el comando &lt;br /&gt;
 kill -9 nºPID&lt;br /&gt;
 &lt;br /&gt;
 Tras estos pasos, volveremos a arrancar el servicio asterisk mediante /etc/init.d/asterisk start&lt;br /&gt;
&lt;br /&gt;
== Como configurar la megafonía ==&lt;br /&gt;
&lt;br /&gt;
El servicio de megafonía se basa en el protocolo multicast.&lt;br /&gt;
&lt;br /&gt;
Para configurar la megafonía tenemos que activar en los teléfonos que para que estén &amp;quot;escuchando&amp;quot; en una dirección multicast y tener un emisor en esa dirección multicast.&lt;br /&gt;
&lt;br /&gt;
Los teléfonos suelen tener en su configuración un apartado para configurar el multicast. Por ejemplo en los yealink está en la pestaña directory sección multicast IP.&lt;br /&gt;
&lt;br /&gt;
En los teléfonos se puede configurar manualmente o incluirlo en las plantillas de aprovisionamiento.&lt;br /&gt;
&lt;br /&gt;
El asterisk tiene un canal para hacer multicast. Este canal es MulticastRTP.&lt;br /&gt;
&lt;br /&gt;
Para esto podemos crear un VDN que contenga la siguiente línea. (en el ejemplo la dirección multicast es 239.0.126.1 y el puerto es el 10001).&lt;br /&gt;
&lt;br /&gt;
 [Cen_VDN_90000]&lt;br /&gt;
 exten =&amp;gt; _X.,1,NoOp(MDVDN_90000*****EXTEN=${EXTEN}**CID=${CALLERID(NUM)}**UCID=${UCID}*)&lt;br /&gt;
  same =&amp;gt;     n,Answer&lt;br /&gt;
  same =&amp;gt;     n,Dial(MulticastRTP/basic/239.0.126.1:10001)&lt;br /&gt;
 include =&amp;gt; Cen_finLlamada&lt;br /&gt;
&lt;br /&gt;
== Como configurar el candado ==&lt;br /&gt;
El candado permite prohibir temporalmente la posibilidad de realizar llamadas hacia fuera. Sí se pueden seguir haciendo llamadas a extensiones fijas de la plataforma, es decir, llamadas sin coste.&lt;br /&gt;
&lt;br /&gt;
Para configurar dicha funcionalidad basta con crear extensiones con la categoría mas restrictiva posible y habilitar la movilidad, con lo que la extensión solo tendrá &amp;quot;permisos&amp;quot; para realizar llamadas internas.&lt;br /&gt;
&lt;br /&gt;
Para permitir llamadas externas solo hay que &amp;quot;mover&amp;quot; a un usuario con categoría suficiente a la extensión deseada.&lt;br /&gt;
== Como crear un grupo de captura y que se vea en cada teléfono el número que llama ==&lt;br /&gt;
&lt;br /&gt;
'''ATENCIÓN: SE CREAN CONFIGURACIONES NO REFLEJADAS EN PORTAL DE ADMINISTRACIÓN'''&lt;br /&gt;
&lt;br /&gt;
Para la simulación de grupos de captura y conseguir que todos los terminales vean el ANI del llamante:&lt;br /&gt;
&lt;br /&gt;
- Hacen falta teléfonos con dos líneas&lt;br /&gt;
&lt;br /&gt;
- Cada teléfono del grupo tiene en la línea 1 su extensión habitual (por ejemplo 40000)&lt;br /&gt;
&lt;br /&gt;
- Además, en el fichero &amp;quot;sip_Estatico.conf&amp;quot;, creamos una segunda extensión para cada teléfono, que le ocupará la segunda línea (por ejemplo 42000)&lt;br /&gt;
&lt;br /&gt;
- En esta segunda linea ponemos que cuando se llame tenga otro tono de llamada (un beep o nada...) que se asemeje en funcionamiento al de un mensaje de llamada en otra extension de mi grupo de captura&lt;br /&gt;
&lt;br /&gt;
- Se ha creado una variable global por cada teléfono en el fichero de variables &amp;quot;ext_MDtel_Particular.conf&amp;quot; de nombre EXTxxxxx (por ejemplo EXT40000); esa variable contiene las otras extensiones virtuales del grupo&lt;br /&gt;
por ejemplo EXT40000=&amp;gt;SIP/42001&amp;amp;SIP/42005&lt;br /&gt;
&lt;br /&gt;
- Hemos creado en el dialplan programación para que cuando exista esa variable global se añada a la marcación el contenido&lt;br /&gt;
&lt;br /&gt;
== Como crear supletorios ==&lt;br /&gt;
&lt;br /&gt;
'''ATENCIÓN: SE CREAN CONFIGURACIONES NO REFLEJADAS EN PORTAL DE ADMINISTRACIÓN'''&lt;br /&gt;
&lt;br /&gt;
Igual que el caso anterior pero en la variable ponemos números reales. Debido a un bug en el enrutador, que no devuelve la variable R_PARA, en el fichero ext_MARCAR_Extension.conf hay que sustituir la siguiente linea:&lt;br /&gt;
 &lt;br /&gt;
 ;same =&amp;gt;                   n,ExecIf($[&amp;quot;${EXT${R_PARA}}&amp;quot;=&amp;quot;&amp;quot;]?NoOp:Set(ENR_CADMARCAR=${ENR_CADMARCAR}&amp;amp;${EXT${R_PARA}}))&lt;br /&gt;
Por esta otra:&lt;br /&gt;
  same =&amp;gt;                   n,ExecIf($[&amp;quot;${EXT${R_DEST_${ENR_RUTA_CAD}}}&amp;quot;=&amp;quot;&amp;quot;]?NoOp:Set(ENR_CADMARCAR=${ENR_CADMARCAR}&amp;amp;${EXT${R_DEST_${ENR_RUTA_CAD}}}))&lt;br /&gt;
ATENCIÓN !!! en las llamadas salientes cada uno presenta su número&lt;br /&gt;
&lt;br /&gt;
Para emplear números externos en los supletorios hay que poner, al crear la variable que hemos explicado en el apartado anterior en el ext_MDtel_Particular.conf: &lt;br /&gt;
&lt;br /&gt;
 EXT335=&amp;gt;SIP/0999999999@Trunk_Movil ;En este caso suena en la ext 335 y en el móvil 999999999&lt;br /&gt;
&lt;br /&gt;
== Generación de llamada automática ==&lt;br /&gt;
&lt;br /&gt;
Para activar la funcionalidad es necesario lo siguiente: &lt;br /&gt;
&lt;br /&gt;
* Definir una variable ID_LISTA_LLAMAME con el ID de la lista que se va a usar para generar la llamada. Cuando se cree la lista hay que asegurarse que el campo &amp;quot;Nº segundos límite&amp;quot; tiene un valor lo suficientemente amplio para evitar que la llamada caduque antes de ejecutarse.&lt;br /&gt;
&lt;br /&gt;
* Establecer un timeout para la cola (en el Gosub Cen_Sub_GrupoACD se indica justo después de ${COLA})&lt;br /&gt;
&lt;br /&gt;
* Llamar a la función de MySQL ACD_FUNC_LLAMAME_CREAR a través de MDintz&lt;br /&gt;
&lt;br /&gt;
* En la función se usan los siguientes elementos variables:&lt;br /&gt;
&lt;br /&gt;
        ${ID_LISTA_LLAMAME}: Definida antes clienteTOCola: &lt;br /&gt;
        Nombre del cliente. Al no tener ningún nombre, se usa un denominador genérico&lt;br /&gt;
        ${CALLERID}: Número llamante, donde se dirigirá la llamada.&lt;br /&gt;
&lt;br /&gt;
Ejemplo:&lt;br /&gt;
&lt;br /&gt;
 [Cen_VDN_99001]&lt;br /&gt;
 ;----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 ;----------------------- VDN 99001 ------------------------------------------------------------&lt;br /&gt;
 ;----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 exten =&amp;gt; _X.,1,NoOp(MDENTGW_99001*****EXTEN=${EXTEN}**CID=${CALLERID(NUM)}**UCID=${UCID}*)&lt;br /&gt;
  same =&amp;gt;     n,Set(__COLA=89001)&lt;br /&gt;
  same =&amp;gt;     n,Set(ctiDiriTrato=0)&lt;br /&gt;
  same =&amp;gt;     n,Set(ctiDiriInterface=)&lt;br /&gt;
  same =&amp;gt;     n,Set(ID_LISTA_LLAMAME=2)&lt;br /&gt;
  same =&amp;gt;     n(cola),Gosub(Cen_Sub_GrupoACD,${EXTEN},1(${COLA},10,,Si,))&lt;br /&gt;
  same =&amp;gt;     n,GotoIf($[&amp;quot;${QUEUESTATUS}&amp;quot;!=&amp;quot;TIMEOUT&amp;quot;]?colgar)&lt;br /&gt;
  same =&amp;gt;     n,MDintz(nimitz|bd|sqlDato|select ACD_FUNC_LLAMAME_CREAR(CURRENT_TIMESTAMP\,${ID_LISTA_LLAMAME}\,&amp;quot;&amp;quot;\,&amp;quot;clienteTOCola&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,1\,&amp;quot;&amp;quot;\,&amp;quot;${CALLERID(NUM)}&amp;quot;\,1\,3\,1\,&amp;quot;&amp;quot;\,0\,0\,0\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;))&lt;br /&gt;
  same =&amp;gt;     n,GotoIf($[&amp;quot;${MDintzRes}&amp;quot;=&amp;quot;OK&amp;quot;]?colgar)&lt;br /&gt;
  same =&amp;gt;     n,NoOp(ACD_FUNC_LLAMAME_CREAR ${MDintzRes})&lt;br /&gt;
  same =&amp;gt;     n(colgar),Hangup&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cancelación de eco en la plataforma ==&lt;br /&gt;
&lt;br /&gt;
Comprobar que el chan_dahdi.conf este configurado los parametros: &lt;br /&gt;
 echocancel=yes&lt;br /&gt;
 echocancelwhenbridged=yes&lt;br /&gt;
 Jugar con los valores txgain y rxgain &lt;br /&gt;
&lt;br /&gt;
Si esto no es suficiente el siguiente paso sería emplear una canceladora de echo por hardware.&lt;br /&gt;
&lt;br /&gt;
== Como &amp;quot;dar paso&amp;quot; a través de un enlace exterior si hay una llamada para una extensión creada en el sistema pero no registrada ==&lt;br /&gt;
&lt;br /&gt;
Este procedimiento es de utilidad en procesos de migración, en los que recibimos las llamadas de la RTC, nos las quedamos si la extensión ya está registrada en VIVAit y la mandamos hacia la plataforma a migrar si aún sigue migrada ahí&lt;br /&gt;
&lt;br /&gt;
El procedimiento es:&lt;br /&gt;
* Activar desvío por no contesta en la extensión (portal de administración - VIVAit Call - Dispositivos - Extensiones - campo &amp;quot;Desvio no contesta&amp;quot;, indicando como destino un prefijo (por ejemplo &amp;quot;99&amp;quot;) seguido de la extensión destino&lt;br /&gt;
&lt;br /&gt;
* Creamos una preruta en vivait-call - rutas -prerutas con origen &amp;quot;99&amp;quot;, le quitamos el prefijo en campo &amp;quot;Destino saliente 1&amp;quot; (valor -2) e indicamos en campo &amp;quot;Tipo destino sal. 1&amp;quot; como &amp;quot;Ruta externa&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Debera existir una ruta externa para esa numeración&lt;br /&gt;
&lt;br /&gt;
== Comprobación de versiones de elementos de la plataforma ==&lt;br /&gt;
&lt;br /&gt;
'''Aplicaciones'''&lt;br /&gt;
:* Botón derecho del ratón, Acerca De&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Portales'''&lt;br /&gt;
:* En el Vivait-Call, en la pantalla de inicio de sesión pone el número de versión del portal.&lt;br /&gt;
:* Tanto en el Monitor como en el Tracker no se puede saber.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Demonios'''&lt;br /&gt;
:* Mediante el comando nc localhost &amp;lt;Puerto demonio&amp;gt;. Ejemplo:&lt;br /&gt;
::nc localhost 1120&lt;br /&gt;
::motorSal sis ver='03.02.00' inic='20150427 123457' alarmas=0 ultAlar='00000000000000'&lt;br /&gt;
::motorSal gmp msj=253/256 buf=256/256 tarea=99/102&lt;br /&gt;
::motorSal tmp uptime=12624 (0d 3h 30m 24s)&lt;br /&gt;
::motorSal mtr mys=1 ocup=0% planif=13(0) intento=11(0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::Ejemplos puertos demonios:&lt;br /&gt;
:::*1111: vivait-cti&lt;br /&gt;
:::*1112: myAcdSuperv&lt;br /&gt;
:::*1113: recordNodo&lt;br /&gt;
:::*1114: recordCentral&lt;br /&gt;
:::*1115: intz-nimitz&lt;br /&gt;
:::*1120: motorSal&lt;br /&gt;
:::*1123: phoneprov-tftp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Base de datos'''&lt;br /&gt;
:* No se puede saber la versión a no ser que se comparen esquemáticos con los subidos en el redmine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:administrador]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:VIVAit Suite]]&lt;br /&gt;
[[Category:VIVAit Fax]]&lt;br /&gt;
&lt;br /&gt;
== Añadir Auto-Answer a la cabecera SIP ==&lt;br /&gt;
&lt;br /&gt;
Si queremos que un teléfono tenga autoanswer:&lt;br /&gt;
* En el peer poner: headeraa=Call-Info: answer-after=0, esto tiene que ir en la plantilla de la extensión o como campo en la extensión. Dependiendo del terminal que utilicemos el valor de este campo variará:&lt;br /&gt;
&lt;br /&gt;
    Aastra: Alert-Info: info=alert-autoanswer&lt;br /&gt;
    Grandstream: Call-Info: answer-after=0&lt;br /&gt;
    Linksys: Call-Info:\;Answer-After=0&lt;br /&gt;
    Polycom: Alert-Info: Ring Answer&lt;br /&gt;
    Snom: Call-Info: answer-after=0&lt;br /&gt;
    Snom (nuevo firmware): Call-Info: &amp;lt;sip:IP&amp;gt;\;answer-after=0&lt;br /&gt;
    Yealink: Call-Info: answer-after=0&lt;br /&gt;
&lt;br /&gt;
* Luego en el diaplan añadir lo siguiente: exten =&amp;gt; _[*#%0-9a-zA-Z].,n,set(__AutoAnswer=AA) (Esto tendremos que ver como ponerlo de manera automática). De manera provisional si queremos que sea para llamadas salientes pondremos esto en el ext_n_marcador.conf. Si queremos que sea llamadas entrantes lo pondremos en ext_n_MARCAR.conf&lt;br /&gt;
&lt;br /&gt;
== Configuración de los portales web en HTTPS ==&lt;br /&gt;
&lt;br /&gt;
Desde /usr/lib/jvm/default-java/bin/ ejecutamos:&lt;br /&gt;
&lt;br /&gt;
keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/share/tomcat7/.keystore&lt;br /&gt;
&lt;br /&gt;
Escriba la contraseña del almacén de claves: (t0mc4t)&lt;br /&gt;
 Volver a escribir la contraseña nueva: (t0mc4t)&lt;br /&gt;
 *Personalizar para el cliente&lt;br /&gt;
 ¿Cuáles son su nombre y su apellido?&lt;br /&gt;
 [Unknown]: VIVAit Suite&lt;br /&gt;
 ¿Cuál es el nombre de su unidad de organización?&lt;br /&gt;
 [Unknown]: Desarrollo&lt;br /&gt;
 ¿Cuál es el nombre de su organización?&lt;br /&gt;
 [Unknown]: MDtel&lt;br /&gt;
 ¿Cuál es el nombre de su ciudad o localidad?&lt;br /&gt;
 [Unknown]: Madrid&lt;br /&gt;
 ¿Cuál es el nombre de su estado o provincia?&lt;br /&gt;
 [Unknown]: Madrid&lt;br /&gt;
 ¿Cuál es el código de país de dos letras de la unidad?&lt;br /&gt;
 [Unknown]: es&lt;br /&gt;
 ¿Es correcto CN=VIVAit Suite, OU=Desarrollo, O=MDtel, L=es, ST=Madrid,&lt;br /&gt;
 C=Unknown?&lt;br /&gt;
 [no]: si&lt;br /&gt;
 Escriba la contraseña clave para &amp;lt;tomcat&amp;gt;&lt;br /&gt;
 (INTRO si es la misma contraseña que la del almacén de claves)&lt;br /&gt;
&lt;br /&gt;
nano /var/lib/tomcat7/conf/server.xml&lt;br /&gt;
&lt;br /&gt;
Descomentar la línea:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; protocol=&amp;quot;HTTP/1.1&amp;quot; SSLEnabled=&amp;quot;true&amp;quot; &lt;br /&gt;
&lt;br /&gt;
 maxThreads=&amp;quot;150&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Añadir después de sslProtocol=&amp;quot;TLS&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 keystorePass=&amp;quot;t0mc4t&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Crear un motivo desconexión para el Supervisor en '''''VIVA'''''it Suite==&lt;br /&gt;
&lt;br /&gt;
Para crear motivos de desconexión adicionales a los que ya ofrece la aplicación tendremos que añadir una nueva entrada en la BD. El comando que emplearíamos seria el siguiente:&lt;br /&gt;
&lt;br /&gt;
INSERT INTO `nimitz`.`COM_ENUMERADOS` (`ID`, `C_NOMBRE`, `C_TEXTO`, `N_POSICION`, `C_OBSERV`) VALUES(1000700, 'TSesAgMotDesc', 'Nombre Motivo de desconexión', 60, ' ');&lt;br /&gt;
&lt;br /&gt;
El ID debe ser mayor o igual a 1000700 y menor a 1000800. El N_POSICION debe ser mayor o igual a 60 y menor que 100.&lt;br /&gt;
&lt;br /&gt;
== Envío de variables CTI al ACD ante un GW con asterisk 13==&lt;br /&gt;
Dado que para un GW con asterisk 13 un nodo ACD es considerado un elemento externo, por defecto, no se envían variables CTI (UCID, ...). En una fututa versión del nodo ACD, ya no se considerará un elemento externo por lo que si se enviarán dichas variables. Para lograrlo en la versión 3.0 de la plataforma Vivait hay que modificar el fichero ext_MARCAR_Externo_Particular.conf del GW. Deberemos poner la siguiente linea.&lt;br /&gt;
&lt;br /&gt;
 same =&amp;gt; n,Macro(escribirDatosCti)&lt;br /&gt;
&lt;br /&gt;
== Script para cambio automático de claves en salas de conferencia estáticas ==&lt;br /&gt;
&lt;br /&gt;
Para cambiar la clave de las salas de conferencias crear un script llamado cambioClaveConfe.sh con el siguiente contenido:&lt;br /&gt;
	&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 CLAVE=$(shuf -i 1111-9999 -n 1)&lt;br /&gt;
 &lt;br /&gt;
 echo $CLAVE&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;update CEN_SALAS_CONFERENCIAS set C_PIN='$CLAVE' WHERE C_NOMBRE='$1'&amp;quot; | mysql -u nimitz -pivivanimitz nimitz&lt;br /&gt;
 &lt;br /&gt;
 FROM=sat@mdtel.es&lt;br /&gt;
 FECHA=`date +&amp;quot;%Y%m%d%H%M%S&amp;quot;`&lt;br /&gt;
 CLIENTE=&amp;lt;PONER EL CLIENTE&amp;gt;&lt;br /&gt;
 TO=&amp;lt;DESTINATARIOS&amp;gt;&lt;br /&gt;
 ASUNTO=&amp;quot;Nueva clave en sala $1&amp;quot;&lt;br /&gt;
 CUERPO=&amp;quot;La nueva clave para la sala $1 es: $CLAVE&amp;quot;&lt;br /&gt;
 /usr/sbin/sendmail -oi -t -v -f $FROM &amp;lt;&amp;lt;EOF&lt;br /&gt;
 From: $FROM&lt;br /&gt;
 To: $TO&lt;br /&gt;
 Bcc: $BCC&lt;br /&gt;
 Subject: $ASUNTO&lt;br /&gt;
 &lt;br /&gt;
 $CUERPO&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
El script cambiará la clave de la sala pasada por parámetro por una aleatoria de 4 dígitos y la enviará por correo a los &amp;lt;DESTINATARIOS&amp;gt; (direcciones de correo electrónico separadas por coma).&lt;br /&gt;
&lt;br /&gt;
Hay que crear una tarea en /etc/crontab añadiendo una linea como la siguiente:&lt;br /&gt;
 30 6	* * 7	root	cambioClaveConfe.sh 6173&lt;br /&gt;
&lt;br /&gt;
Esto ejecutará el script todos los domingos a las 6:30 horas cambiando la clave de la sala 6173. Añadir tantas linéas como salas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Monitorización en Zabbix de un trunk caído ==&lt;br /&gt;
Para monitorizar un o varios trunk por separado y saber el estado de cada uno es necesario lo siguiente: &lt;br /&gt;
&lt;br /&gt;
*Añadir el UserParameter adjunto que contiene el siguiente texto:&lt;br /&gt;
&lt;br /&gt;
 UserParameter=asterisk.trunkEstado[*],sudo /usr/sbin/asterisk -rx 'sip show peers' | grep  --text -i '$1' |  grep OK &amp;gt;/dev/null; if [ $? -eq 0 ]; then echo 1; else echo 0; fi&lt;br /&gt;
&lt;br /&gt;
*Añadir en el portal de zabbix un item por cada trunk. En el campo Key se pondrá &amp;quot;asterisk.trunkEstado[nombre_trunk]&amp;quot;, donde nombre_trunk es el nombre del trunk tal y como se ve en Asterisk.&lt;br /&gt;
[[File:zabbix_item_trunkEstado.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Crear un trigger que avise cuando el último valor sea 0. Por ejemplo:&lt;br /&gt;
 {corp-bdtr:asterisk.trunkEstado[PrePro-ACD].last()}=0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:zabbix_trigger_trunkEstado.png]]&lt;br /&gt;
&lt;br /&gt;
== Agendas en terminales Yealink ==&lt;br /&gt;
En la agenda se mostrará como nombre lo que contenga el campo CEN_AGENDAS.C_NOMBRE_MOSTRAR y como teléfono el indicado en CEN_AGENDAS_TELEFONOS.C_TELEFONO&lt;br /&gt;
Para hacer funcionar la agenda:&lt;br /&gt;
&lt;br /&gt;
*En el archivo de aprovisionamiento correspondiente (Yealink-XXXX-comun.cfg) establecer los siguientes parámetros:&lt;br /&gt;
&lt;br /&gt;
    remote_phonebook.data.1.url = http://&amp;lt;direc IP&amp;gt;/vivait-agenda/yealink/contactData1.xml &lt;br /&gt;
    remote_phonebook.data.1.name = NOMBRE DE LA AGENDA EN EL TELEFONO&lt;br /&gt;
&lt;br /&gt;
*En el archivo /etc/apache2/apache2.conf añadir tras el último Directory:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Directory /var/www/html/vivait-agenda/&amp;gt;&lt;br /&gt;
             AddType application/x-httpd-php .xml&lt;br /&gt;
             Options Indexes FollowSymLinks MultiViews&lt;br /&gt;
             AllowOverride None&lt;br /&gt;
             Order allow,deny&lt;br /&gt;
             allow from all&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Ejecutar el comando:&lt;br /&gt;
&lt;br /&gt;
    /etc/init.d/apache2 reload&lt;br /&gt;
&lt;br /&gt;
== Calendarios ==&lt;br /&gt;
&lt;br /&gt;
=== Enrutamiento inteligente ===&lt;br /&gt;
&lt;br /&gt;
Ante una llamada a un destino, si hay cita de ocupado en el calendario se desvia al número indicado en el campo &amp;quot;location&amp;quot; del calendario o a su buzon de voz si hay valor en dicho campo&lt;br /&gt;
&lt;br /&gt;
 same =&amp;gt; n,Set(CalendarBusy=${CALENDAR_BUSY(GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,Set(id=${CALENDAR_QUERY(GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,NoOP(hay ${CALENDAR_QUERY_RESULT(${id},getnum)} eventos)&lt;br /&gt;
 same =&amp;gt; n,Verbose(3,The state of GoogleCalendar is $&lt;br /&gt;
 {DEVICE_STATE(Calendar:GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,Set(CalendarLocation=${CALENDAR_QUERY_RESULT(GoogleCalendar,location)})&lt;br /&gt;
 same =&amp;gt; n,GotoIf($[&amp;quot;${CalendarBusy}&amp;quot;==&amp;quot;1&amp;quot;]?:conCategoria)&lt;br /&gt;
 same =&amp;gt; n,GotoIf($[&amp;quot;${CalendarLocation}&amp;quot;==&amp;quot;&amp;quot;]?buzon)&lt;br /&gt;
 same =&amp;gt; n,Goto(Cen_iniLlam,${CalendarLocation},1)&lt;br /&gt;
 same =&amp;gt; n(buzon),Playback(Particular/buzon)&lt;br /&gt;
 same =&amp;gt; n,Hangup&lt;br /&gt;
 same=&amp;gt; n(conCategoria),Goto(Cen_iniLlam,${EXTEN},1)&lt;br /&gt;
&lt;br /&gt;
=== Conexión de cliente Outlook a calendarios VIVAit mediante Caldav===&lt;br /&gt;
Por defecto, el cliente outlook no soporta Caldav; si queremos disponer de calendarios de VIVAit en Outlook tendríamos dos opciones:&lt;br /&gt;
# Tener los calendarios en el servidor Exchange&lt;br /&gt;
# Instalar un plugin en el cliente outlook que permita conectar vía Caldav los calendarios que estén ubicados en el servidor de calendarios de VIVAit&lt;br /&gt;
&lt;br /&gt;
Este howto se centra en esta segunda posibilidad&lt;br /&gt;
&lt;br /&gt;
Procedimiento: &lt;br /&gt;
&lt;br /&gt;
1.- Instalar Calldavsincronizer (valdrían otros plugin de Caldav para Outlook)&lt;br /&gt;
&lt;br /&gt;
[https://sourceforge.net/projects/outlookcaldavsynchronizer/ https://sourceforge.net/projects/outlookcaldavsynchronizer/]&lt;br /&gt;
&lt;br /&gt;
2.- Entrar en Synchronization Profiles en la nueva pestaña Calldav Syncronizer de outlook       [[File:Syncronizer.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.- Añadir nuevo perfil (tecla +)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Nuevo.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A tener en cuenta:&lt;br /&gt;
&lt;br /&gt;
*Crear un nuevo “Outlook folder”, entendemos que es adecuado (quizás necesario) para que las entradas de calendario de VIVAit queden diferenciadas.&lt;br /&gt;
*Lo mejor es haber creado antes el calendario en el servidor para que al darlo de alta en oulook comprobemos que se conecta.&lt;br /&gt;
*Dando al botón “Test or discover settings” se nos muestran todos los calendarios del servidor y elegimos el que queramos; en “elementos de la carpeta” diremos “elementos de calendario”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Calendario.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
== Uso de reloj hardware en nodos de procesamiento ==&lt;br /&gt;
&lt;br /&gt;
=== En nodo de procesamiento ACD ===&lt;br /&gt;
En un nodo de procesamiento ACD es obligatorio instalar dahdi y una tarjeta de primario para emplear reloj hardware, ya que el reloj software que va en el asterisk 1.4 es defectuoso.&lt;br /&gt;
Para configurarlo basta con instalar la tarjeta en el servidor, instalar dahdi y posteriormente ejecutar el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
 dahdi_cfg&lt;br /&gt;
&lt;br /&gt;
Este comando generaŕa el fichero /etc/dahdi/system.conf&lt;br /&gt;
&lt;br /&gt;
Para comprobar que el comando se ha ejecutado satisfactoriamente lo abriremos y tendrá que tener un formato semejante al siguiente ejemplo:&lt;br /&gt;
&lt;br /&gt;
 # Autogenerated by /usr/sbin/dahdi_genconf on Tue Oct 22 17:42:59 2013&lt;br /&gt;
 # If you edit this file and execute /usr/sbin/dahdi_genconf again,&lt;br /&gt;
 # your manual changes will be LOST.&lt;br /&gt;
 # Dahdi Configuration File&lt;br /&gt;
 #&lt;br /&gt;
 # This file is parsed by the Dahdi Configurator, dahdi_cfg&lt;br /&gt;
 #&lt;br /&gt;
 # Span 1: WCT1/0 &amp;quot;Digium Wildcard TE110P T1/E1 Card 0&amp;quot; HDB3/CCS/CRC4&lt;br /&gt;
 span=1,1,0,ccs,hdb3,crc4&lt;br /&gt;
 # termtype: te&lt;br /&gt;
 bchan=1-15,17-31&lt;br /&gt;
 dchan=16&lt;br /&gt;
 echocanceller=oslec,1-15,17-31&lt;br /&gt;
 # Global data&lt;br /&gt;
 loadzone        = es&lt;br /&gt;
 defaultzone     = es&lt;br /&gt;
&lt;br /&gt;
=== En nodo de procesamiento de corporativa ===&lt;br /&gt;
En un nodo de procesamiento de corporativa no obligatorio instalar dahdi y una tarjeta de primario para emplear reloj hardware, ya que el no se han detectado errores en el reloj por software. Sin embargo si instalamos dahdi y una tarjeta de primario para emplear reloj hardware, el sistema funcionará mejor.&lt;br /&gt;
Para configurarlo basta con instalar la tarjeta en el servidor, instalar dahdi y posteriormente ejecutar el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
 dahdi_cfg&lt;br /&gt;
&lt;br /&gt;
Este comando generaŕa el fichero /etc/dahdi/system.conf&lt;br /&gt;
&lt;br /&gt;
Para comprobar que el comando se ha ejecutado satisfactoriamente lo abriremos y tendrá que tener un formato semejante al siguiente ejemplo:&lt;br /&gt;
&lt;br /&gt;
 # Autogenerated by /usr/sbin/dahdi_genconf on Tue Oct 22 17:42:59 2013&lt;br /&gt;
 # If you edit this file and execute /usr/sbin/dahdi_genconf again,&lt;br /&gt;
 # your manual changes will be LOST.&lt;br /&gt;
 # Dahdi Configuration File&lt;br /&gt;
 #&lt;br /&gt;
 # This file is parsed by the Dahdi Configurator, dahdi_cfg&lt;br /&gt;
 #&lt;br /&gt;
 # Span 1: WCT1/0 &amp;quot;Digium Wildcard TE110P T1/E1 Card 0&amp;quot; HDB3/CCS/CRC4&lt;br /&gt;
 span=1,1,0,ccs,hdb3,crc4&lt;br /&gt;
 # termtype: te&lt;br /&gt;
 bchan=1-15,17-31&lt;br /&gt;
 dchan=16&lt;br /&gt;
 echocanceller=oslec,1-15,17-31&lt;br /&gt;
 # Global data&lt;br /&gt;
 loadzone        = es&lt;br /&gt;
 defaultzone     = es&lt;br /&gt;
&lt;br /&gt;
== Aprovisionamiento terminales Cisco ==&lt;br /&gt;
=== Configurar protocolo SIP TCP o UDP en terminal Cisco ===&lt;br /&gt;
&lt;br /&gt;
Configuración de terminal Cisco para para funcionar bajo TCP o UDP:&lt;br /&gt;
Modificar parámetro&lt;br /&gt;
 &amp;lt;transportLayerProtocol&amp;gt;X&amp;lt;/transportLayerProtocol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde X es:&lt;br /&gt;
    1: TCP&lt;br /&gt;
    2: UDP&lt;br /&gt;
    4: Valor por defecto del firmware (al menos en la última versión equivale a TCP)&lt;br /&gt;
&lt;br /&gt;
=== Habilitar/Deshabilitar llamada en espera en terminales Cisco ===&lt;br /&gt;
&lt;br /&gt;
En el fichero de aprovisionamiento del terminal añadiremos la siguiente linea&lt;br /&gt;
 &amp;lt;callWaiting&amp;gt;X&amp;lt;/callWaiting&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde X es:&lt;br /&gt;
   0=off but can be changed through the settings menu.&lt;br /&gt;
   1=on but can be changed through the settings menu.&lt;br /&gt;
   2=off and locked so it can't be changed through the settings menu.&lt;br /&gt;
   3=on and locked so it can't be changed through the settings menu.&lt;br /&gt;
&lt;br /&gt;
== Como configurar servicio DHCP en Ubuntu Linux ==&lt;br /&gt;
=== ¿Que es un servicio DHCP? ===&lt;br /&gt;
Un servidor Dynamic Host Configuration Protocol (DHCP) asigna dinámicamente las direcciones IP y otras configuraciones de red a otros terminales que están conectados a la red.&lt;br /&gt;
&lt;br /&gt;
=== Instalar un servicio DHCP ===&lt;br /&gt;
Para instalar el servidor de asignacion automatica de direccion IP ejecutamos el comando:&lt;br /&gt;
 sudo apt-get install isc-dhcp-server&lt;br /&gt;
&lt;br /&gt;
=== Configurando el servicio DHCP ===&lt;br /&gt;
Editamos el archivo /etc/dhcp/dhcpd.conf creando primero un backup del mismo:&lt;br /&gt;
 mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.original&lt;br /&gt;
 nano /etc/dhcp/dhcpd.conf&lt;br /&gt;
&lt;br /&gt;
El archivo debe quedar de una forma muy similar a esta:&lt;br /&gt;
 authoritative&lt;br /&gt;
 subnet  10.254.239.0 netmask 255.255.255.254&lt;br /&gt;
 {&lt;br /&gt;
 range dynamic-bootp  10.254.239.40 10.254.239.60;&lt;br /&gt;
 option domain-name-servers ns1.example.org, ns2.example.org;&lt;br /&gt;
 option domain-name &amp;quot;example.org&amp;quot;;&lt;br /&gt;
 option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org ;&lt;br /&gt;
 option broadcast-address 10.254.239.255;&lt;br /&gt;
 default-lease-time 3600;&lt;br /&gt;
 max-lease-time 7200;&lt;br /&gt;
 option option-150 10.254.239.25&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Donde los campos:&lt;br /&gt;
*subnet: Direccion de red&lt;br /&gt;
*netmask: Máscara de red&lt;br /&gt;
*range dynamic-bootp: Rango de IPs que va a proporcionar el DHCP&lt;br /&gt;
*option domain-name-servers: Direcciones IPs de los DNS&lt;br /&gt;
*option domain-name: Nombre de dominio&lt;br /&gt;
*option routers:IPs de las puertas de enlace&lt;br /&gt;
*option broadcast-address: Dirección de broadcast&lt;br /&gt;
*default-lease-time: Tiempo de concesión por defecto&lt;br /&gt;
*max-lease-time: Valor máximo del tiempo de concesión&lt;br /&gt;
*option option-150: IPs de los servidores TFTPs que tiene la red&lt;br /&gt;
&lt;br /&gt;
===  Reiniciamos el servicio ===&lt;br /&gt;
 service isc-dhcp-server restart&lt;br /&gt;
&lt;br /&gt;
=== Direcciones IP estáticas basadas en la MAC ===&lt;br /&gt;
Pueden conocerse las MAC de las máquinas conectadas a la red ejecutando el comando arp desde la terminal.&lt;br /&gt;
&lt;br /&gt;
 host ejemplo {&lt;br /&gt;
        hardware ethernet 00:0B:82:19:A8:04;&lt;br /&gt;
        option option-150 10.254.239.0;&lt;br /&gt;
 #      fixed-address 10.254.239.52;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Protocolo Skinny en VIVAit Call mediante uso de Chan-SCCP ==&lt;br /&gt;
=== Instalación de chan_sccp ===&lt;br /&gt;
*Copiar el fichero chan-sccp-4.2.1.1.tar.gz en el directorio donde estén los fuentes de Asterisk (normalmente /usr/src/MDtel)&lt;br /&gt;
*Descomprimir&lt;br /&gt;
*Entrar al directorio chan-sccp-4.2.1.1&lt;br /&gt;
*Ejecutar: ./configure --with-asterisk=../DIRECTORIO_ASTERISK --enable-conference. Donde DIRECTORIO_ASTERISK es el nombre del directorio donde están los fuentes de asterisk.&lt;br /&gt;
*Tras el ejecutar el configure (si todo va bien al final se verá un resumen con el S.O, arquitectura, etc), ejecutar make y make install&lt;br /&gt;
*El nuevo módulo chan_sccp.so se generará dentro del DIRECTORIO_ASTERISK en lib/asterisk/modules/ y se deberá copiar en /usr/lib/asterisk/modules/&lt;br /&gt;
*Copiar el fichero sccp.conf a /etc/asterisk&lt;br /&gt;
*Entra a Asterisk y ejecutar: module load chan_sccp.so&lt;br /&gt;
*Si se ha cargado correctamente, desde dentro de Asterisk, si se teclea sccp show version deberá devolver: &amp;quot;Skinny Client Control Protocol (SCCP). Release: 4.3.0 4.3.0 - unknown (built by 'root' on '2016-06-01 10:42:32 UTC')&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Crear extensiones ===&lt;br /&gt;
*En el portal crear una nueva clase de dispositivo (Vivait-Call/Dispositivos/Clases de dispositivos), donde la clase sea extensión la subclase H323 (todavía no existe la subclase SCCP) y el formato SCCP/${DEST}&lt;br /&gt;
*Crear la nueva extensión, pero el dispositivo debe ser el creado en el campo anterior.&lt;br /&gt;
*Las extensiones creadas habrá que añadirlas al fichero sccp.conf así como los teléfonos que las usarán. En el fichero sccp.conf incluido hay ejemplos.&lt;br /&gt;
&lt;br /&gt;
=== Aprovisionamiento ===&lt;br /&gt;
Los terminales se aprovisionan de la misma manera que los SIP, exceptuando que las plantillas XML no tiene referencias a SIP. Se incluye un xml genérico con todas las opciones.&lt;br /&gt;
Dentro del directorio chan-sccp-4.2.1.1 hay un directorio conf con todos los archivos de configuración necesarios. Las versiones annotated contienen todas las opciones posibles comentadas.&lt;br /&gt;
&lt;br /&gt;
== Instalación y configuración Postfix en RedHat7 ==&lt;br /&gt;
&lt;br /&gt;
'''Postfix''' es un ''servidor de correo'' de software libre/código abierto, un programa informático para el enrutamiento y envío de correo electrónico.&lt;br /&gt;
&lt;br /&gt;
=== Instalación ===&lt;br /&gt;
 yum install postfix&lt;br /&gt;
&lt;br /&gt;
=== Configuración ===&lt;br /&gt;
Sobre la configuración de postfix por defecto (recién instalado):&lt;br /&gt;
Editar el fichero /etc/postfix/main.cf&lt;br /&gt;
 inet_protocols = ipv4&lt;br /&gt;
 relayhost = smtp.renfe.es&lt;br /&gt;
Revisar la configuración:&lt;br /&gt;
 postfix check&lt;br /&gt;
Configurar postfix como servicio (sólo en redhat y similares)&lt;br /&gt;
 chkconfig postfix on&lt;br /&gt;
Iniciar postfix:&lt;br /&gt;
 service postfix start&lt;br /&gt;
Instalar mailx para disponer de los comandos mail y sendmail:&lt;br /&gt;
 yum install mailx&lt;br /&gt;
Probar configuración:&lt;br /&gt;
 echo &amp;quot;Prueba de correo&amp;quot; | mail -vs &amp;quot;Prueba&amp;quot; correo@destino.soy&lt;br /&gt;
&lt;br /&gt;
== Como crear un TRIGGER en Zabbix ==&lt;br /&gt;
&lt;br /&gt;
'''1.''' Hay '''dos posibilidades''' dependiendo si el trigger es para un solo host o es para varios, los cuales tienen en común un template:&lt;br /&gt;
&lt;br /&gt;
:# Si es para ''un host'': Ir a '''Configuración/Hosts'''&lt;br /&gt;
:# Si es para ''un template'': Ir a '''Configuración/Templates'''&lt;br /&gt;
&lt;br /&gt;
'''2.''' En la fila correspondiente al host/template al que queramos añadirle el trigger, pulsar sobre la '''columna triggers.'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''3.''' En la ventana de triggers, pulsar sobre el botón '''Create trigger''', situado en la esquina superior derecha.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''4.''' Aparecerá la ventana de creación de triggers, que tiene los siguientes campos:&lt;br /&gt;
:1. '''Name:''' Nombre del trigger, que deberá ser lo ''suficientemente descriptivo''. Aparecerá cuando se&lt;br /&gt;
active, en la ventana principal de Zabbix así como en los correos de aviso.&lt;br /&gt;
:2. '''Expression:''' Define la fórmula cuyo resultado activará el trigger. Hay que pulsar el botón '''Add'''. Se mostrará una &lt;br /&gt;
nueva ventana donde habrá que elegir el item (medida) sobre el que se basará el trigger (evidentemente la medida deberá &lt;br /&gt;
existir previamente) y la función necesaria para el cálculo. Para una descripción de las disponibles dirigirse a &lt;br /&gt;
https://www.zabbix.com/documentation/2.2/manual/appendix/triggers/functions.&amp;lt;br/&amp;gt;&lt;br /&gt;
Tras rellenar los campos anteriores y dar a la función los valores que necesite pulsar el botón '''Insert.'''&lt;br /&gt;
:3. '''Expression constructor:''' Permite crear expresiones complejas, uniendo varias.&lt;br /&gt;
:4. '''Description:''' Una explicación del trigger&lt;br /&gt;
:5. '''Severity:''' Criticidad el trigger&lt;br /&gt;
:6. Para una descripción del resto de campos visitar la página: https://www.zabbix.com/documentation/2.2/manual/config/triggers/trigger&lt;br /&gt;
'''5.''' Tras rellenar los campos, pulsar el botón '''Save'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''6.''' Si el trigger se ha añadido en un template, aparecerá en todos los hosts que tienen el template configurado.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''7.''' '''El trigger por si solo no envía ningún aviso''', solo se activa si se cumple la expresión definida.&lt;br /&gt;
Para enviar un aviso (normalmente un correo electrónico) cuando se active el trigger, será necesario definir una acción (Configuración/Actions).&lt;br /&gt;
&lt;br /&gt;
 '''NOTA.-''' Para consultar cualquier cuestión relativa a Zabbix, se encuentra a su disposición el manual: &amp;lt;br/&amp;gt;&lt;br /&gt;
 https://www.zabbix.com/documentation/2.2/manual&lt;br /&gt;
&lt;br /&gt;
== Como mostrar callername queues FOP2 ==&lt;br /&gt;
&lt;br /&gt;
Es necesario añadir el siguiente código al contexto de entrada:&lt;br /&gt;
&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Connect connid localhost usuario clave bd)&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Query resultid ${connid} SELECT\ firstname\,lastname\ from\ fop2\ where\ phone1=${CALLERID(num)}\ OR\ phone2=${CALLERID(num)})&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Fetch fetchid ${resultid} nombre apellidos)&lt;br /&gt;
 exten =&amp;gt; _X.,n,GotoIf($[${fetchid} = 1]?:noExiste)&lt;br /&gt;
 exten =&amp;gt; _X.,n,Set(CALLERID(name)=${nombre}${apellidos})&lt;br /&gt;
 exten =&amp;gt; _X.,n(noExiste),Continuar&lt;br /&gt;
&lt;br /&gt;
En la primera línea cambiar según lo necesario:&lt;br /&gt;
&lt;br /&gt;
*localhost: Dirección IP del servidor de MySQL donde está la BBDD de FOP2&lt;br /&gt;
*usuario: Usuario con permisos de acceso a la bbdd de FOP2&lt;br /&gt;
*clave: Clave del usuario&lt;br /&gt;
*bd: Nombre de la BBDD&lt;br /&gt;
&lt;br /&gt;
== Como ver los directorios de un NAS a montar con NFS ==&lt;br /&gt;
&lt;br /&gt;
Con el siguiente comando vemos los diferentes volúmenes de un NAS:&lt;br /&gt;
&lt;br /&gt;
 showmount -e IP_NAS&lt;br /&gt;
&lt;br /&gt;
Ejemplo de salida:&lt;br /&gt;
&lt;br /&gt;
 Export list for 192.168.10.10:&lt;br /&gt;
 /Backup/backup       *&lt;br /&gt;
 /DISCOS_1/VOL1_AUDIO *&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Instalación de ActivaSTP con VIVAit Call 3 y marcación desde Outlook ==&lt;br /&gt;
&lt;br /&gt;
Instalamos ActivaSTP desde:&lt;br /&gt;
 &lt;br /&gt;
 (http://activa.sourceforge.net/)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- *SIPTAPI, según la pagina Web, su ultima versión publicada es del 2014 con versión 0.2.17 (http://activa.sourceforge.net/)&lt;br /&gt;
&lt;br /&gt;
Hemos probado con http://www.xtelsio.com/en/products/ast_tsp/tapi_for_asterisk.htm.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La configuración necesaria se muestra en la siguiente imagen:&lt;br /&gt;
&lt;br /&gt;
[[File:Ventana ActivaTSP.jpg]]&lt;br /&gt;
&lt;br /&gt;
 El usuario del manager debe tener permisos originate para poder realizar llamadas.&lt;br /&gt;
&lt;br /&gt;
Se han realizado pruebas con Outlook 2013.&lt;br /&gt;
&lt;br /&gt;
Se ha comprobado la correcta realización de pruebas utilizando ActivaSTP, realizadon llamadas desde la pestaña &amp;quot;personas&amp;quot; con la vista en modo tarjeta de Pesentación, tarjeta, teléfono o lista.&lt;br /&gt;
&lt;br /&gt;
Outlook 2013 no da la opción de llamar si la vista está en modo personas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Como volver a procesar grabaciones con error ==&lt;br /&gt;
&lt;br /&gt;
Las grabaciones con error son aquellas que tienen el valor E_GRABACION=120 en la tabla DAT_GRABACIONES.&lt;br /&gt;
&lt;br /&gt;
Las grabaciones con error se produce normalmente a perdida de conexión entre el nodo servidor de grabaciones y el resto.&lt;br /&gt;
&lt;br /&gt;
Para reprocesar la grabación hay que modificar el campo E_GRABACION de la tabla DAT_GRABACIONES y ponerlo con valor 20 para que así el recordCentral la vuelva a procesar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== FOP2. Problemas en transferencias asistidas ==&lt;br /&gt;
&lt;br /&gt;
 Para habilitar la transferencia atendida del asterisk (funcion atxfer), hay que poner la opción tT en el queue() si la llamada origen la realiza a una cola o &lt;br /&gt;
 al dial() de las extensiones.&lt;br /&gt;
 Con eso vemos como al intentar hacer la llamada de consulta ya se va a nuestro dialplan. Sin embargo la llamada no funciona ya que el enrutador nos da error de&lt;br /&gt;
 enrutamiento porque no tenemos ID_DISPOSITIVO origen ya que el fop no es un elemento creado desde el portal.&lt;br /&gt;
 Por lo que se propone como solución crear un contexto de inicio del fop y asignarle un ID_DISPOSITIVO para que así se enrute la llamada. El contexto tienen que&lt;br /&gt;
 ser similar a ext_InicioLlamada_Chrome.conf&lt;br /&gt;
&lt;br /&gt;
Para que funcione las transferencias supervisadas desde el fop2 hay que realizar lo siguiente:&lt;br /&gt;
&lt;br /&gt;
*El usuario del manager debe tener permisos Atxfer para poder realizar transferencias.&lt;br /&gt;
*Habilitar la transferencia atxfer en el fuatures.conf del asterisk. atxfer =&amp;gt; *2&lt;br /&gt;
*Crear el fichero ext_InicioLlamada_FOP.conf con el siguiente contenido:&lt;br /&gt;
&lt;br /&gt;
 [Cen_Inicio_FOP]&lt;br /&gt;
 exten =&amp;gt; [*#%0-9].,1,NoOp(MDINICHR**EXTEN=${EXTEN}**CID=${CHROME_ANI}*)&lt;br /&gt;
 same =&amp;gt; n,dumpchan()&lt;br /&gt;
 ;same =&amp;gt; n,Set(CALLERID=${CHROME_ANI})&lt;br /&gt;
 same =&amp;gt; n,Gosub(Cen_Sub_getIdExtension,s,1(${R_CID_NUM_00}))&lt;br /&gt;
 same =&amp;gt; n,ExecIf($[&amp;quot;${GOSUB_RETVAL}&amp;quot;!=&amp;quot;OK&amp;quot; | &amp;quot;${sqlDato}&amp;quot;=&amp;quot;&amp;quot;]?HangUp)&lt;br /&gt;
 same =&amp;gt; n,Set(ID_DISPOSITIVO=${sqlDato})&lt;br /&gt;
 ; . Modificar MARCAR en funcion de reglas de marcacion saliente (prefijo 0, ...)&lt;br /&gt;
 ; Esto se modificara en el contexto Cen_Inicio_Chrome_Particular&lt;br /&gt;
 same =&amp;gt; n,Set(MARCAR=${EXTEN})&lt;br /&gt;
 ;---------------------------------&lt;br /&gt;
 ;--- Llamada a contexto particular&lt;br /&gt;
 ;---------------------------------&lt;br /&gt;
 ; Esta llamada es para hacer cosas especcificas del cliente (cambiar callerid...)&lt;br /&gt;
 ; La subrutina Cen_Inicio_Chrome_Particular esta en el archivo ext_InicioLlamada_Chrome_Particular.conf&lt;br /&gt;
 ; Si no existe el archivo copiar el archivo ext_InicioLlamada_Chrome_Particular.conf.ejemplo como ext_Inicio_Chrome_Particular.conf&lt;br /&gt;
 ; y realizar las modificaciones necesarias&lt;br /&gt;
 ; El fichero ext_InicioLlamada_Chrome_Particular.conf se carga automaticamente al ser creado con el include de ext_InicioLlamada.conf&lt;br /&gt;
 ; #include &amp;quot;ext_InicioLlamada*.conf&amp;quot;&lt;br /&gt;
 ;&lt;br /&gt;
 same =&amp;gt; n,GosubIf($[${DIALPLAN_EXISTS(Cen_Inicio_FOP_Particular,${EXTEN},1)}&amp;gt;0]?Cen_Inicio_FOP_Particular,${EXTEN},1)&lt;br /&gt;
 same =&amp;gt; n,Goto(Cen_Inicio_SIP,${MARCAR},1)&lt;br /&gt;
&lt;br /&gt;
*En el fichero /usr/local/fop2/buttons.cfg poner como contexto de las extensiones el creado anteriormente (Cen_Inicio_FOP)&lt;br /&gt;
*Modificar el fichero /usr/local/fop2/fop2.cfg:&lt;br /&gt;
&lt;br /&gt;
 blind_transfer = 0&lt;br /&gt;
 supervised_transfer = 1&lt;br /&gt;
&lt;br /&gt;
Para realizar la transferencia con consulta, hay que pulsar el supervised transfer del FOP2 y una vez se haya establecido la llamada, seleccionar la extensión que &amp;quot;sobra&amp;quot; en la conversación y pulsar la tecla de hangup y colgar la llamada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Problemas de conmutación en cluster ==&lt;br /&gt;
El problema detectado fue que en la conmutacion de maquinas en el cluster cuando el control lo tiene la maquina 2 no funciona el servicio phoneprov-tftp.&lt;br /&gt;
&lt;br /&gt;
Hay que hacer las siguientes comprobaciones:&lt;br /&gt;
&lt;br /&gt;
 Que el directorio /var/lib/phoneprov-tftp esté en la partición /HDcluster&lt;br /&gt;
 Que fichero /etc/MDtel/phoneprov-tftp esté puesta como IP de la máquina la IP flotante del cluster (campo $dbHost)&lt;br /&gt;
 Que el servicio phoneprov-tftp del directorio /usr/local/sbin/phoneprov-tftp.pl tenga permisos de ejecución 755&lt;br /&gt;
 Que exista el fichero /etc/init/phoneprov-tftp.conf&lt;br /&gt;
&lt;br /&gt;
Para más información ver los log del phoneprov en /var/log/phoneprov-tftp.log&lt;br /&gt;
&lt;br /&gt;
El problema era que no se encontraba instalado el paquete phoneprov-tftp, hay que instalarlo manualmente. Instalar el paquete libnet-tftpd-perl.--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Howto%27s&amp;diff=5992</id>
		<title>Howto's</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Howto%27s&amp;diff=5992"/>
		<updated>2017-07-13T12:36:19Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* Cancelación de eco en plataforma */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!! VIVAit Call&lt;br /&gt;
VIVAit Suite&lt;br /&gt;
&lt;br /&gt;
VIVAit Fax&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Como parar asterisk ==&lt;br /&gt;
En situaciones límite en el que es necesario parar el asterisk y volver a arrancarlo hay que realizar los siguientes pasos:&lt;br /&gt;
&lt;br /&gt;
 Entrar en la consola de asterisk e introducir el comando core stop now&lt;br /&gt;
&lt;br /&gt;
 Si esto no funciona, tendremos que matar el proceso a mano. Esto es, primero el safe asterisk y luego el asterisk mediante el comando &lt;br /&gt;
 kill -9 nºPID&lt;br /&gt;
 &lt;br /&gt;
 Tras estos pasos, volveremos a arrancar el servicio asterisk mediante /etc/init.d/asterisk start&lt;br /&gt;
&lt;br /&gt;
== Como configurar la megafonía ==&lt;br /&gt;
&lt;br /&gt;
El servicio de megafonía se basa en el protocolo multicast.&lt;br /&gt;
&lt;br /&gt;
Para configurar la megafonía tenemos que activar en los teléfonos que para que estén &amp;quot;escuchando&amp;quot; en una dirección multicast y tener un emisor en esa dirección multicast.&lt;br /&gt;
&lt;br /&gt;
Los teléfonos suelen tener en su configuración un apartado para configurar el multicast. Por ejemplo en los yealink está en la pestaña directory sección multicast IP.&lt;br /&gt;
&lt;br /&gt;
En los teléfonos se puede configurar manualmente o incluirlo en las plantillas de aprovisionamiento.&lt;br /&gt;
&lt;br /&gt;
El asterisk tiene un canal para hacer multicast. Este canal es MulticastRTP.&lt;br /&gt;
&lt;br /&gt;
Para esto podemos crear un VDN que contenga la siguiente línea. (en el ejemplo la dirección multicast es 239.0.126.1 y el puerto es el 10001).&lt;br /&gt;
&lt;br /&gt;
 [Cen_VDN_90000]&lt;br /&gt;
 exten =&amp;gt; _X.,1,NoOp(MDVDN_90000*****EXTEN=${EXTEN}**CID=${CALLERID(NUM)}**UCID=${UCID}*)&lt;br /&gt;
  same =&amp;gt;     n,Answer&lt;br /&gt;
  same =&amp;gt;     n,Dial(MulticastRTP/basic/239.0.126.1:10001)&lt;br /&gt;
 include =&amp;gt; Cen_finLlamada&lt;br /&gt;
&lt;br /&gt;
== Como configurar el candado ==&lt;br /&gt;
El candado permite prohibir temporalmente la posibilidad de realizar llamadas hacia fuera. Sí se pueden seguir haciendo llamadas a extensiones fijas de la plataforma, es decir, llamadas sin coste.&lt;br /&gt;
&lt;br /&gt;
Para configurar dicha funcionalidad basta con crear extensiones con la categoría mas restrictiva posible y habilitar la movilidad, con lo que la extensión solo tendrá &amp;quot;permisos&amp;quot; para realizar llamadas internas.&lt;br /&gt;
&lt;br /&gt;
Para permitir llamadas externas solo hay que &amp;quot;mover&amp;quot; a un usuario con categoría suficiente a la extensión deseada.&lt;br /&gt;
== Como crear un grupo de captura y que se vea en cada teléfono el número que llama ==&lt;br /&gt;
&lt;br /&gt;
'''ATENCIÓN: SE CREAN CONFIGURACIONES NO REFLEJADAS EN PORTAL DE ADMINISTRACIÓN'''&lt;br /&gt;
&lt;br /&gt;
Para la simulación de grupos de captura y conseguir que todos los terminales vean el ANI del llamante:&lt;br /&gt;
&lt;br /&gt;
- Hacen falta teléfonos con dos líneas&lt;br /&gt;
&lt;br /&gt;
- Cada teléfono del grupo tiene en la línea 1 su extensión habitual (por ejemplo 40000)&lt;br /&gt;
&lt;br /&gt;
- Además, en el fichero &amp;quot;sip_Estatico.conf&amp;quot;, creamos una segunda extensión para cada teléfono, que le ocupará la segunda línea (por ejemplo 42000)&lt;br /&gt;
&lt;br /&gt;
- En esta segunda linea ponemos que cuando se llame tenga otro tono de llamada (un beep o nada...) que se asemeje en funcionamiento al de un mensaje de llamada en otra extension de mi grupo de captura&lt;br /&gt;
&lt;br /&gt;
- Se ha creado una variable global por cada teléfono en el fichero de variables &amp;quot;ext_MDtel_Particular.conf&amp;quot; de nombre EXTxxxxx (por ejemplo EXT40000); esa variable contiene las otras extensiones virtuales del grupo&lt;br /&gt;
por ejemplo EXT40000=&amp;gt;SIP/42001&amp;amp;SIP/42005&lt;br /&gt;
&lt;br /&gt;
- Hemos creado en el dialplan programación para que cuando exista esa variable global se añada a la marcación el contenido&lt;br /&gt;
&lt;br /&gt;
== Como crear supletorios ==&lt;br /&gt;
&lt;br /&gt;
'''ATENCIÓN: SE CREAN CONFIGURACIONES NO REFLEJADAS EN PORTAL DE ADMINISTRACIÓN'''&lt;br /&gt;
&lt;br /&gt;
Igual que el caso anterior pero en la variable ponemos números reales. Debido a un bug en el enrutador, que no devuelve la variable R_PARA, en el fichero ext_MARCAR_Extension.conf hay que sustituir la siguiente linea:&lt;br /&gt;
 &lt;br /&gt;
 ;same =&amp;gt;                   n,ExecIf($[&amp;quot;${EXT${R_PARA}}&amp;quot;=&amp;quot;&amp;quot;]?NoOp:Set(ENR_CADMARCAR=${ENR_CADMARCAR}&amp;amp;${EXT${R_PARA}}))&lt;br /&gt;
Por esta otra:&lt;br /&gt;
  same =&amp;gt;                   n,ExecIf($[&amp;quot;${EXT${R_DEST_${ENR_RUTA_CAD}}}&amp;quot;=&amp;quot;&amp;quot;]?NoOp:Set(ENR_CADMARCAR=${ENR_CADMARCAR}&amp;amp;${EXT${R_DEST_${ENR_RUTA_CAD}}}))&lt;br /&gt;
ATENCIÓN !!! en las llamadas salientes cada uno presenta su número&lt;br /&gt;
&lt;br /&gt;
Para emplear números externos en los supletorios hay que poner, al crear la variable que hemos explicado en el apartado anterior en el ext_MDtel_Particular.conf: &lt;br /&gt;
&lt;br /&gt;
 EXT335=&amp;gt;SIP/0999999999@Trunk_Movil ;En este caso suena en la ext 335 y en el móvil 999999999&lt;br /&gt;
&lt;br /&gt;
== Generación de llamada automática ==&lt;br /&gt;
&lt;br /&gt;
Para activar la funcionalidad es necesario lo siguiente: &lt;br /&gt;
&lt;br /&gt;
* Definir una variable ID_LISTA_LLAMAME con el ID de la lista que se va a usar para generar la llamada. Cuando se cree la lista hay que asegurarse que el campo &amp;quot;Nº segundos límite&amp;quot; tiene un valor lo suficientemente amplio para evitar que la llamada caduque antes de ejecutarse.&lt;br /&gt;
&lt;br /&gt;
* Establecer un timeout para la cola (en el Gosub Cen_Sub_GrupoACD se indica justo después de ${COLA})&lt;br /&gt;
&lt;br /&gt;
* Llamar a la función de MySQL ACD_FUNC_LLAMAME_CREAR a través de MDintz&lt;br /&gt;
&lt;br /&gt;
* En la función se usan los siguientes elementos variables:&lt;br /&gt;
&lt;br /&gt;
        ${ID_LISTA_LLAMAME}: Definida antes clienteTOCola: &lt;br /&gt;
        Nombre del cliente. Al no tener ningún nombre, se usa un denominador genérico&lt;br /&gt;
        ${CALLERID}: Número llamante, donde se dirigirá la llamada.&lt;br /&gt;
&lt;br /&gt;
Ejemplo:&lt;br /&gt;
&lt;br /&gt;
 [Cen_VDN_99001]&lt;br /&gt;
 ;----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 ;----------------------- VDN 99001 ------------------------------------------------------------&lt;br /&gt;
 ;----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 exten =&amp;gt; _X.,1,NoOp(MDENTGW_99001*****EXTEN=${EXTEN}**CID=${CALLERID(NUM)}**UCID=${UCID}*)&lt;br /&gt;
  same =&amp;gt;     n,Set(__COLA=89001)&lt;br /&gt;
  same =&amp;gt;     n,Set(ctiDiriTrato=0)&lt;br /&gt;
  same =&amp;gt;     n,Set(ctiDiriInterface=)&lt;br /&gt;
  same =&amp;gt;     n,Set(ID_LISTA_LLAMAME=2)&lt;br /&gt;
  same =&amp;gt;     n(cola),Gosub(Cen_Sub_GrupoACD,${EXTEN},1(${COLA},10,,Si,))&lt;br /&gt;
  same =&amp;gt;     n,GotoIf($[&amp;quot;${QUEUESTATUS}&amp;quot;!=&amp;quot;TIMEOUT&amp;quot;]?colgar)&lt;br /&gt;
  same =&amp;gt;     n,MDintz(nimitz|bd|sqlDato|select ACD_FUNC_LLAMAME_CREAR(CURRENT_TIMESTAMP\,${ID_LISTA_LLAMAME}\,&amp;quot;&amp;quot;\,&amp;quot;clienteTOCola&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,1\,&amp;quot;&amp;quot;\,&amp;quot;${CALLERID(NUM)}&amp;quot;\,1\,3\,1\,&amp;quot;&amp;quot;\,0\,0\,0\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;))&lt;br /&gt;
  same =&amp;gt;     n,GotoIf($[&amp;quot;${MDintzRes}&amp;quot;=&amp;quot;OK&amp;quot;]?colgar)&lt;br /&gt;
  same =&amp;gt;     n,NoOp(ACD_FUNC_LLAMAME_CREAR ${MDintzRes})&lt;br /&gt;
  same =&amp;gt;     n(colgar),Hangup&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cancelación de eco en la plataforma ==&lt;br /&gt;
&lt;br /&gt;
Comprobar que el chan_dahdi.conf este configurado los parametros: &lt;br /&gt;
 echocancel=yes&lt;br /&gt;
 echocancelwhenbridged=yes&lt;br /&gt;
 Jugar con los valores txgain y rxgain &lt;br /&gt;
&lt;br /&gt;
Si esto no es suficiente el siguiente paso sería ya emplear una canceladora de echo por hardwar.e&lt;br /&gt;
&lt;br /&gt;
== Como &amp;quot;dar paso&amp;quot; a través de un enlace exterior si hay una llamada para una extensión creada en el sistema pero no registrada ==&lt;br /&gt;
&lt;br /&gt;
Este procedimiento es de utilidad en procesos de migración, en los que recibimos las llamadas de la RTC, nos las quedamos si la extensión ya está registrada en VIVAit y la mandamos hacia la plataforma a migrar si aún sigue migrada ahí&lt;br /&gt;
&lt;br /&gt;
El procedimiento es:&lt;br /&gt;
* Activar desvío por no contesta en la extensión (portal de administración - VIVAit Call - Dispositivos - Extensiones - campo &amp;quot;Desvio no contesta&amp;quot;, indicando como destino un prefijo (por ejemplo &amp;quot;99&amp;quot;) seguido de la extensión destino&lt;br /&gt;
&lt;br /&gt;
* Creamos una preruta en vivait-call - rutas -prerutas con origen &amp;quot;99&amp;quot;, le quitamos el prefijo en campo &amp;quot;Destino saliente 1&amp;quot; (valor -2) e indicamos en campo &amp;quot;Tipo destino sal. 1&amp;quot; como &amp;quot;Ruta externa&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Debera existir una ruta externa para esa numeración&lt;br /&gt;
&lt;br /&gt;
== Comprobación de versiones de elementos de la plataforma ==&lt;br /&gt;
&lt;br /&gt;
'''Aplicaciones'''&lt;br /&gt;
:* Botón derecho del ratón, Acerca De&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Portales'''&lt;br /&gt;
:* En el Vivait-Call, en la pantalla de inicio de sesión pone el número de versión del portal.&lt;br /&gt;
:* Tanto en el Monitor como en el Tracker no se puede saber.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Demonios'''&lt;br /&gt;
:* Mediante el comando nc localhost &amp;lt;Puerto demonio&amp;gt;. Ejemplo:&lt;br /&gt;
::nc localhost 1120&lt;br /&gt;
::motorSal sis ver='03.02.00' inic='20150427 123457' alarmas=0 ultAlar='00000000000000'&lt;br /&gt;
::motorSal gmp msj=253/256 buf=256/256 tarea=99/102&lt;br /&gt;
::motorSal tmp uptime=12624 (0d 3h 30m 24s)&lt;br /&gt;
::motorSal mtr mys=1 ocup=0% planif=13(0) intento=11(0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::Ejemplos puertos demonios:&lt;br /&gt;
:::*1111: vivait-cti&lt;br /&gt;
:::*1112: myAcdSuperv&lt;br /&gt;
:::*1113: recordNodo&lt;br /&gt;
:::*1114: recordCentral&lt;br /&gt;
:::*1115: intz-nimitz&lt;br /&gt;
:::*1120: motorSal&lt;br /&gt;
:::*1123: phoneprov-tftp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Base de datos'''&lt;br /&gt;
:* No se puede saber la versión a no ser que se comparen esquemáticos con los subidos en el redmine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:administrador]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:VIVAit Suite]]&lt;br /&gt;
[[Category:VIVAit Fax]]&lt;br /&gt;
&lt;br /&gt;
== Añadir Auto-Answer a la cabecera SIP ==&lt;br /&gt;
&lt;br /&gt;
Si queremos que un teléfono tenga autoanswer:&lt;br /&gt;
* En el peer poner: headeraa=Call-Info: answer-after=0, esto tiene que ir en la plantilla de la extensión o como campo en la extensión. Dependiendo del terminal que utilicemos el valor de este campo variará:&lt;br /&gt;
&lt;br /&gt;
    Aastra: Alert-Info: info=alert-autoanswer&lt;br /&gt;
    Grandstream: Call-Info: answer-after=0&lt;br /&gt;
    Linksys: Call-Info:\;Answer-After=0&lt;br /&gt;
    Polycom: Alert-Info: Ring Answer&lt;br /&gt;
    Snom: Call-Info: answer-after=0&lt;br /&gt;
    Snom (nuevo firmware): Call-Info: &amp;lt;sip:IP&amp;gt;\;answer-after=0&lt;br /&gt;
    Yealink: Call-Info: answer-after=0&lt;br /&gt;
&lt;br /&gt;
* Luego en el diaplan añadir lo siguiente: exten =&amp;gt; _[*#%0-9a-zA-Z].,n,set(__AutoAnswer=AA) (Esto tendremos que ver como ponerlo de manera automática). De manera provisional si queremos que sea para llamadas salientes pondremos esto en el ext_n_marcador.conf. Si queremos que sea llamadas entrantes lo pondremos en ext_n_MARCAR.conf&lt;br /&gt;
&lt;br /&gt;
== Configuración de los portales web en HTTPS ==&lt;br /&gt;
&lt;br /&gt;
Desde /usr/lib/jvm/default-java/bin/ ejecutamos:&lt;br /&gt;
&lt;br /&gt;
keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/share/tomcat7/.keystore&lt;br /&gt;
&lt;br /&gt;
Escriba la contraseña del almacén de claves: (t0mc4t)&lt;br /&gt;
 Volver a escribir la contraseña nueva: (t0mc4t)&lt;br /&gt;
 *Personalizar para el cliente&lt;br /&gt;
 ¿Cuáles son su nombre y su apellido?&lt;br /&gt;
 [Unknown]: VIVAit Suite&lt;br /&gt;
 ¿Cuál es el nombre de su unidad de organización?&lt;br /&gt;
 [Unknown]: Desarrollo&lt;br /&gt;
 ¿Cuál es el nombre de su organización?&lt;br /&gt;
 [Unknown]: MDtel&lt;br /&gt;
 ¿Cuál es el nombre de su ciudad o localidad?&lt;br /&gt;
 [Unknown]: Madrid&lt;br /&gt;
 ¿Cuál es el nombre de su estado o provincia?&lt;br /&gt;
 [Unknown]: Madrid&lt;br /&gt;
 ¿Cuál es el código de país de dos letras de la unidad?&lt;br /&gt;
 [Unknown]: es&lt;br /&gt;
 ¿Es correcto CN=VIVAit Suite, OU=Desarrollo, O=MDtel, L=es, ST=Madrid,&lt;br /&gt;
 C=Unknown?&lt;br /&gt;
 [no]: si&lt;br /&gt;
 Escriba la contraseña clave para &amp;lt;tomcat&amp;gt;&lt;br /&gt;
 (INTRO si es la misma contraseña que la del almacén de claves)&lt;br /&gt;
&lt;br /&gt;
nano /var/lib/tomcat7/conf/server.xml&lt;br /&gt;
&lt;br /&gt;
Descomentar la línea:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; protocol=&amp;quot;HTTP/1.1&amp;quot; SSLEnabled=&amp;quot;true&amp;quot; &lt;br /&gt;
&lt;br /&gt;
 maxThreads=&amp;quot;150&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Añadir después de sslProtocol=&amp;quot;TLS&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 keystorePass=&amp;quot;t0mc4t&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Crear un motivo desconexión para el Supervisor en '''''VIVA'''''it Suite==&lt;br /&gt;
&lt;br /&gt;
Para crear motivos de desconexión adicionales a los que ya ofrece la aplicación tendremos que añadir una nueva entrada en la BD. El comando que emplearíamos seria el siguiente:&lt;br /&gt;
&lt;br /&gt;
INSERT INTO `nimitz`.`COM_ENUMERADOS` (`ID`, `C_NOMBRE`, `C_TEXTO`, `N_POSICION`, `C_OBSERV`) VALUES(1000700, 'TSesAgMotDesc', 'Nombre Motivo de desconexión', 60, ' ');&lt;br /&gt;
&lt;br /&gt;
El ID debe ser mayor o igual a 1000700 y menor a 1000800. El N_POSICION debe ser mayor o igual a 60 y menor que 100.&lt;br /&gt;
&lt;br /&gt;
== Envío de variables CTI al ACD ante un GW con asterisk 13==&lt;br /&gt;
Dado que para un GW con asterisk 13 un nodo ACD es considerado un elemento externo, por defecto, no se envían variables CTI (UCID, ...). En una fututa versión del nodo ACD, ya no se considerará un elemento externo por lo que si se enviarán dichas variables. Para lograrlo en la versión 3.0 de la plataforma Vivait hay que modificar el fichero ext_MARCAR_Externo_Particular.conf del GW. Deberemos poner la siguiente linea.&lt;br /&gt;
&lt;br /&gt;
 same =&amp;gt; n,Macro(escribirDatosCti)&lt;br /&gt;
&lt;br /&gt;
== Script para cambio automático de claves en salas de conferencia estáticas ==&lt;br /&gt;
&lt;br /&gt;
Para cambiar la clave de las salas de conferencias crear un script llamado cambioClaveConfe.sh con el siguiente contenido:&lt;br /&gt;
	&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 CLAVE=$(shuf -i 1111-9999 -n 1)&lt;br /&gt;
 &lt;br /&gt;
 echo $CLAVE&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;update CEN_SALAS_CONFERENCIAS set C_PIN='$CLAVE' WHERE C_NOMBRE='$1'&amp;quot; | mysql -u nimitz -pivivanimitz nimitz&lt;br /&gt;
 &lt;br /&gt;
 FROM=sat@mdtel.es&lt;br /&gt;
 FECHA=`date +&amp;quot;%Y%m%d%H%M%S&amp;quot;`&lt;br /&gt;
 CLIENTE=&amp;lt;PONER EL CLIENTE&amp;gt;&lt;br /&gt;
 TO=&amp;lt;DESTINATARIOS&amp;gt;&lt;br /&gt;
 ASUNTO=&amp;quot;Nueva clave en sala $1&amp;quot;&lt;br /&gt;
 CUERPO=&amp;quot;La nueva clave para la sala $1 es: $CLAVE&amp;quot;&lt;br /&gt;
 /usr/sbin/sendmail -oi -t -v -f $FROM &amp;lt;&amp;lt;EOF&lt;br /&gt;
 From: $FROM&lt;br /&gt;
 To: $TO&lt;br /&gt;
 Bcc: $BCC&lt;br /&gt;
 Subject: $ASUNTO&lt;br /&gt;
 &lt;br /&gt;
 $CUERPO&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
El script cambiará la clave de la sala pasada por parámetro por una aleatoria de 4 dígitos y la enviará por correo a los &amp;lt;DESTINATARIOS&amp;gt; (direcciones de correo electrónico separadas por coma).&lt;br /&gt;
&lt;br /&gt;
Hay que crear una tarea en /etc/crontab añadiendo una linea como la siguiente:&lt;br /&gt;
 30 6	* * 7	root	cambioClaveConfe.sh 6173&lt;br /&gt;
&lt;br /&gt;
Esto ejecutará el script todos los domingos a las 6:30 horas cambiando la clave de la sala 6173. Añadir tantas linéas como salas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Monitorización en Zabbix de un trunk caído ==&lt;br /&gt;
Para monitorizar un o varios trunk por separado y saber el estado de cada uno es necesario lo siguiente: &lt;br /&gt;
&lt;br /&gt;
*Añadir el UserParameter adjunto que contiene el siguiente texto:&lt;br /&gt;
&lt;br /&gt;
 UserParameter=asterisk.trunkEstado[*],sudo /usr/sbin/asterisk -rx 'sip show peers' | grep  --text -i '$1' |  grep OK &amp;gt;/dev/null; if [ $? -eq 0 ]; then echo 1; else echo 0; fi&lt;br /&gt;
&lt;br /&gt;
*Añadir en el portal de zabbix un item por cada trunk. En el campo Key se pondrá &amp;quot;asterisk.trunkEstado[nombre_trunk]&amp;quot;, donde nombre_trunk es el nombre del trunk tal y como se ve en Asterisk.&lt;br /&gt;
[[File:zabbix_item_trunkEstado.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Crear un trigger que avise cuando el último valor sea 0. Por ejemplo:&lt;br /&gt;
 {corp-bdtr:asterisk.trunkEstado[PrePro-ACD].last()}=0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:zabbix_trigger_trunkEstado.png]]&lt;br /&gt;
&lt;br /&gt;
== Agendas en terminales Yealink ==&lt;br /&gt;
En la agenda se mostrará como nombre lo que contenga el campo CEN_AGENDAS.C_NOMBRE_MOSTRAR y como teléfono el indicado en CEN_AGENDAS_TELEFONOS.C_TELEFONO&lt;br /&gt;
Para hacer funcionar la agenda:&lt;br /&gt;
&lt;br /&gt;
*En el archivo de aprovisionamiento correspondiente (Yealink-XXXX-comun.cfg) establecer los siguientes parámetros:&lt;br /&gt;
&lt;br /&gt;
    remote_phonebook.data.1.url = http://&amp;lt;direc IP&amp;gt;/vivait-agenda/yealink/contactData1.xml &lt;br /&gt;
    remote_phonebook.data.1.name = NOMBRE DE LA AGENDA EN EL TELEFONO&lt;br /&gt;
&lt;br /&gt;
*En el archivo /etc/apache2/apache2.conf añadir tras el último Directory:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Directory /var/www/html/vivait-agenda/&amp;gt;&lt;br /&gt;
             AddType application/x-httpd-php .xml&lt;br /&gt;
             Options Indexes FollowSymLinks MultiViews&lt;br /&gt;
             AllowOverride None&lt;br /&gt;
             Order allow,deny&lt;br /&gt;
             allow from all&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Ejecutar el comando:&lt;br /&gt;
&lt;br /&gt;
    /etc/init.d/apache2 reload&lt;br /&gt;
&lt;br /&gt;
== Calendarios ==&lt;br /&gt;
&lt;br /&gt;
=== Enrutamiento inteligente ===&lt;br /&gt;
&lt;br /&gt;
Ante una llamada a un destino, si hay cita de ocupado en el calendario se desvia al número indicado en el campo &amp;quot;location&amp;quot; del calendario o a su buzon de voz si hay valor en dicho campo&lt;br /&gt;
&lt;br /&gt;
 same =&amp;gt; n,Set(CalendarBusy=${CALENDAR_BUSY(GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,Set(id=${CALENDAR_QUERY(GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,NoOP(hay ${CALENDAR_QUERY_RESULT(${id},getnum)} eventos)&lt;br /&gt;
 same =&amp;gt; n,Verbose(3,The state of GoogleCalendar is $&lt;br /&gt;
 {DEVICE_STATE(Calendar:GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,Set(CalendarLocation=${CALENDAR_QUERY_RESULT(GoogleCalendar,location)})&lt;br /&gt;
 same =&amp;gt; n,GotoIf($[&amp;quot;${CalendarBusy}&amp;quot;==&amp;quot;1&amp;quot;]?:conCategoria)&lt;br /&gt;
 same =&amp;gt; n,GotoIf($[&amp;quot;${CalendarLocation}&amp;quot;==&amp;quot;&amp;quot;]?buzon)&lt;br /&gt;
 same =&amp;gt; n,Goto(Cen_iniLlam,${CalendarLocation},1)&lt;br /&gt;
 same =&amp;gt; n(buzon),Playback(Particular/buzon)&lt;br /&gt;
 same =&amp;gt; n,Hangup&lt;br /&gt;
 same=&amp;gt; n(conCategoria),Goto(Cen_iniLlam,${EXTEN},1)&lt;br /&gt;
&lt;br /&gt;
=== Conexión de cliente Outlook a calendarios VIVAit mediante Caldav===&lt;br /&gt;
Por defecto, el cliente outlook no soporta Caldav; si queremos disponer de calendarios de VIVAit en Outlook tendríamos dos opciones:&lt;br /&gt;
# Tener los calendarios en el servidor Exchange&lt;br /&gt;
# Instalar un plugin en el cliente outlook que permita conectar vía Caldav los calendarios que estén ubicados en el servidor de calendarios de VIVAit&lt;br /&gt;
&lt;br /&gt;
Este howto se centra en esta segunda posibilidad&lt;br /&gt;
&lt;br /&gt;
Procedimiento: &lt;br /&gt;
&lt;br /&gt;
1.- Instalar Calldavsincronizer (valdrían otros plugin de Caldav para Outlook)&lt;br /&gt;
&lt;br /&gt;
[https://sourceforge.net/projects/outlookcaldavsynchronizer/ https://sourceforge.net/projects/outlookcaldavsynchronizer/]&lt;br /&gt;
&lt;br /&gt;
2.- Entrar en Synchronization Profiles en la nueva pestaña Calldav Syncronizer de outlook       [[File:Syncronizer.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.- Añadir nuevo perfil (tecla +)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Nuevo.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A tener en cuenta:&lt;br /&gt;
&lt;br /&gt;
*Crear un nuevo “Outlook folder”, entendemos que es adecuado (quizás necesario) para que las entradas de calendario de VIVAit queden diferenciadas.&lt;br /&gt;
*Lo mejor es haber creado antes el calendario en el servidor para que al darlo de alta en oulook comprobemos que se conecta.&lt;br /&gt;
*Dando al botón “Test or discover settings” se nos muestran todos los calendarios del servidor y elegimos el que queramos; en “elementos de la carpeta” diremos “elementos de calendario”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Calendario.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
== Uso de reloj hardware en nodos de procesamiento ==&lt;br /&gt;
&lt;br /&gt;
=== En nodo de procesamiento ACD ===&lt;br /&gt;
En un nodo de procesamiento ACD es obligatorio instalar dahdi y una tarjeta de primario para emplear reloj hardware, ya que el reloj software que va en el asterisk 1.4 es defectuoso.&lt;br /&gt;
Para configurarlo basta con instalar la tarjeta en el servidor, instalar dahdi y posteriormente ejecutar el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
 dahdi_cfg&lt;br /&gt;
&lt;br /&gt;
Este comando generaŕa el fichero /etc/dahdi/system.conf&lt;br /&gt;
&lt;br /&gt;
Para comprobar que el comando se ha ejecutado satisfactoriamente lo abriremos y tendrá que tener un formato semejante al siguiente ejemplo:&lt;br /&gt;
&lt;br /&gt;
 # Autogenerated by /usr/sbin/dahdi_genconf on Tue Oct 22 17:42:59 2013&lt;br /&gt;
 # If you edit this file and execute /usr/sbin/dahdi_genconf again,&lt;br /&gt;
 # your manual changes will be LOST.&lt;br /&gt;
 # Dahdi Configuration File&lt;br /&gt;
 #&lt;br /&gt;
 # This file is parsed by the Dahdi Configurator, dahdi_cfg&lt;br /&gt;
 #&lt;br /&gt;
 # Span 1: WCT1/0 &amp;quot;Digium Wildcard TE110P T1/E1 Card 0&amp;quot; HDB3/CCS/CRC4&lt;br /&gt;
 span=1,1,0,ccs,hdb3,crc4&lt;br /&gt;
 # termtype: te&lt;br /&gt;
 bchan=1-15,17-31&lt;br /&gt;
 dchan=16&lt;br /&gt;
 echocanceller=oslec,1-15,17-31&lt;br /&gt;
 # Global data&lt;br /&gt;
 loadzone        = es&lt;br /&gt;
 defaultzone     = es&lt;br /&gt;
&lt;br /&gt;
=== En nodo de procesamiento de corporativa ===&lt;br /&gt;
En un nodo de procesamiento de corporativa no obligatorio instalar dahdi y una tarjeta de primario para emplear reloj hardware, ya que el no se han detectado errores en el reloj por software. Sin embargo si instalamos dahdi y una tarjeta de primario para emplear reloj hardware, el sistema funcionará mejor.&lt;br /&gt;
Para configurarlo basta con instalar la tarjeta en el servidor, instalar dahdi y posteriormente ejecutar el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
 dahdi_cfg&lt;br /&gt;
&lt;br /&gt;
Este comando generaŕa el fichero /etc/dahdi/system.conf&lt;br /&gt;
&lt;br /&gt;
Para comprobar que el comando se ha ejecutado satisfactoriamente lo abriremos y tendrá que tener un formato semejante al siguiente ejemplo:&lt;br /&gt;
&lt;br /&gt;
 # Autogenerated by /usr/sbin/dahdi_genconf on Tue Oct 22 17:42:59 2013&lt;br /&gt;
 # If you edit this file and execute /usr/sbin/dahdi_genconf again,&lt;br /&gt;
 # your manual changes will be LOST.&lt;br /&gt;
 # Dahdi Configuration File&lt;br /&gt;
 #&lt;br /&gt;
 # This file is parsed by the Dahdi Configurator, dahdi_cfg&lt;br /&gt;
 #&lt;br /&gt;
 # Span 1: WCT1/0 &amp;quot;Digium Wildcard TE110P T1/E1 Card 0&amp;quot; HDB3/CCS/CRC4&lt;br /&gt;
 span=1,1,0,ccs,hdb3,crc4&lt;br /&gt;
 # termtype: te&lt;br /&gt;
 bchan=1-15,17-31&lt;br /&gt;
 dchan=16&lt;br /&gt;
 echocanceller=oslec,1-15,17-31&lt;br /&gt;
 # Global data&lt;br /&gt;
 loadzone        = es&lt;br /&gt;
 defaultzone     = es&lt;br /&gt;
&lt;br /&gt;
== Aprovisionamiento terminales Cisco ==&lt;br /&gt;
=== Configurar protocolo SIP TCP o UDP en terminal Cisco ===&lt;br /&gt;
&lt;br /&gt;
Configuración de terminal Cisco para para funcionar bajo TCP o UDP:&lt;br /&gt;
Modificar parámetro&lt;br /&gt;
 &amp;lt;transportLayerProtocol&amp;gt;X&amp;lt;/transportLayerProtocol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde X es:&lt;br /&gt;
    1: TCP&lt;br /&gt;
    2: UDP&lt;br /&gt;
    4: Valor por defecto del firmware (al menos en la última versión equivale a TCP)&lt;br /&gt;
&lt;br /&gt;
=== Habilitar/Deshabilitar llamada en espera en terminales Cisco ===&lt;br /&gt;
&lt;br /&gt;
En el fichero de aprovisionamiento del terminal añadiremos la siguiente linea&lt;br /&gt;
 &amp;lt;callWaiting&amp;gt;X&amp;lt;/callWaiting&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde X es:&lt;br /&gt;
   0=off but can be changed through the settings menu.&lt;br /&gt;
   1=on but can be changed through the settings menu.&lt;br /&gt;
   2=off and locked so it can't be changed through the settings menu.&lt;br /&gt;
   3=on and locked so it can't be changed through the settings menu.&lt;br /&gt;
&lt;br /&gt;
== Como configurar servicio DHCP en Ubuntu Linux ==&lt;br /&gt;
=== ¿Que es un servicio DHCP? ===&lt;br /&gt;
Un servidor Dynamic Host Configuration Protocol (DHCP) asigna dinámicamente las direcciones IP y otras configuraciones de red a otros terminales que están conectados a la red.&lt;br /&gt;
&lt;br /&gt;
=== Instalar un servicio DHCP ===&lt;br /&gt;
Para instalar el servidor de asignacion automatica de direccion IP ejecutamos el comando:&lt;br /&gt;
 sudo apt-get install isc-dhcp-server&lt;br /&gt;
&lt;br /&gt;
=== Configurando el servicio DHCP ===&lt;br /&gt;
Editamos el archivo /etc/dhcp/dhcpd.conf creando primero un backup del mismo:&lt;br /&gt;
 mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.original&lt;br /&gt;
 nano /etc/dhcp/dhcpd.conf&lt;br /&gt;
&lt;br /&gt;
El archivo debe quedar de una forma muy similar a esta:&lt;br /&gt;
 authoritative&lt;br /&gt;
 subnet  10.254.239.0 netmask 255.255.255.254&lt;br /&gt;
 {&lt;br /&gt;
 range dynamic-bootp  10.254.239.40 10.254.239.60;&lt;br /&gt;
 option domain-name-servers ns1.example.org, ns2.example.org;&lt;br /&gt;
 option domain-name &amp;quot;example.org&amp;quot;;&lt;br /&gt;
 option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org ;&lt;br /&gt;
 option broadcast-address 10.254.239.255;&lt;br /&gt;
 default-lease-time 3600;&lt;br /&gt;
 max-lease-time 7200;&lt;br /&gt;
 option option-150 10.254.239.25&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Donde los campos:&lt;br /&gt;
*subnet: Direccion de red&lt;br /&gt;
*netmask: Máscara de red&lt;br /&gt;
*range dynamic-bootp: Rango de IPs que va a proporcionar el DHCP&lt;br /&gt;
*option domain-name-servers: Direcciones IPs de los DNS&lt;br /&gt;
*option domain-name: Nombre de dominio&lt;br /&gt;
*option routers:IPs de las puertas de enlace&lt;br /&gt;
*option broadcast-address: Dirección de broadcast&lt;br /&gt;
*default-lease-time: Tiempo de concesión por defecto&lt;br /&gt;
*max-lease-time: Valor máximo del tiempo de concesión&lt;br /&gt;
*option option-150: IPs de los servidores TFTPs que tiene la red&lt;br /&gt;
&lt;br /&gt;
===  Reiniciamos el servicio ===&lt;br /&gt;
 service isc-dhcp-server restart&lt;br /&gt;
&lt;br /&gt;
=== Direcciones IP estáticas basadas en la MAC ===&lt;br /&gt;
Pueden conocerse las MAC de las máquinas conectadas a la red ejecutando el comando arp desde la terminal.&lt;br /&gt;
&lt;br /&gt;
 host ejemplo {&lt;br /&gt;
        hardware ethernet 00:0B:82:19:A8:04;&lt;br /&gt;
        option option-150 10.254.239.0;&lt;br /&gt;
 #      fixed-address 10.254.239.52;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Protocolo Skinny en VIVAit Call mediante uso de Chan-SCCP ==&lt;br /&gt;
=== Instalación de chan_sccp ===&lt;br /&gt;
*Copiar el fichero chan-sccp-4.2.1.1.tar.gz en el directorio donde estén los fuentes de Asterisk (normalmente /usr/src/MDtel)&lt;br /&gt;
*Descomprimir&lt;br /&gt;
*Entrar al directorio chan-sccp-4.2.1.1&lt;br /&gt;
*Ejecutar: ./configure --with-asterisk=../DIRECTORIO_ASTERISK --enable-conference. Donde DIRECTORIO_ASTERISK es el nombre del directorio donde están los fuentes de asterisk.&lt;br /&gt;
*Tras el ejecutar el configure (si todo va bien al final se verá un resumen con el S.O, arquitectura, etc), ejecutar make y make install&lt;br /&gt;
*El nuevo módulo chan_sccp.so se generará dentro del DIRECTORIO_ASTERISK en lib/asterisk/modules/ y se deberá copiar en /usr/lib/asterisk/modules/&lt;br /&gt;
*Copiar el fichero sccp.conf a /etc/asterisk&lt;br /&gt;
*Entra a Asterisk y ejecutar: module load chan_sccp.so&lt;br /&gt;
*Si se ha cargado correctamente, desde dentro de Asterisk, si se teclea sccp show version deberá devolver: &amp;quot;Skinny Client Control Protocol (SCCP). Release: 4.3.0 4.3.0 - unknown (built by 'root' on '2016-06-01 10:42:32 UTC')&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Crear extensiones ===&lt;br /&gt;
*En el portal crear una nueva clase de dispositivo (Vivait-Call/Dispositivos/Clases de dispositivos), donde la clase sea extensión la subclase H323 (todavía no existe la subclase SCCP) y el formato SCCP/${DEST}&lt;br /&gt;
*Crear la nueva extensión, pero el dispositivo debe ser el creado en el campo anterior.&lt;br /&gt;
*Las extensiones creadas habrá que añadirlas al fichero sccp.conf así como los teléfonos que las usarán. En el fichero sccp.conf incluido hay ejemplos.&lt;br /&gt;
&lt;br /&gt;
=== Aprovisionamiento ===&lt;br /&gt;
Los terminales se aprovisionan de la misma manera que los SIP, exceptuando que las plantillas XML no tiene referencias a SIP. Se incluye un xml genérico con todas las opciones.&lt;br /&gt;
Dentro del directorio chan-sccp-4.2.1.1 hay un directorio conf con todos los archivos de configuración necesarios. Las versiones annotated contienen todas las opciones posibles comentadas.&lt;br /&gt;
&lt;br /&gt;
== Instalación y configuración Postfix en RedHat7 ==&lt;br /&gt;
&lt;br /&gt;
'''Postfix''' es un ''servidor de correo'' de software libre/código abierto, un programa informático para el enrutamiento y envío de correo electrónico.&lt;br /&gt;
&lt;br /&gt;
=== Instalación ===&lt;br /&gt;
 yum install postfix&lt;br /&gt;
&lt;br /&gt;
=== Configuración ===&lt;br /&gt;
Sobre la configuración de postfix por defecto (recién instalado):&lt;br /&gt;
Editar el fichero /etc/postfix/main.cf&lt;br /&gt;
 inet_protocols = ipv4&lt;br /&gt;
 relayhost = smtp.renfe.es&lt;br /&gt;
Revisar la configuración:&lt;br /&gt;
 postfix check&lt;br /&gt;
Configurar postfix como servicio (sólo en redhat y similares)&lt;br /&gt;
 chkconfig postfix on&lt;br /&gt;
Iniciar postfix:&lt;br /&gt;
 service postfix start&lt;br /&gt;
Instalar mailx para disponer de los comandos mail y sendmail:&lt;br /&gt;
 yum install mailx&lt;br /&gt;
Probar configuración:&lt;br /&gt;
 echo &amp;quot;Prueba de correo&amp;quot; | mail -vs &amp;quot;Prueba&amp;quot; correo@destino.soy&lt;br /&gt;
&lt;br /&gt;
== Como crear un TRIGGER en Zabbix ==&lt;br /&gt;
&lt;br /&gt;
'''1.''' Hay '''dos posibilidades''' dependiendo si el trigger es para un solo host o es para varios, los cuales tienen en común un template:&lt;br /&gt;
&lt;br /&gt;
:# Si es para ''un host'': Ir a '''Configuración/Hosts'''&lt;br /&gt;
:# Si es para ''un template'': Ir a '''Configuración/Templates'''&lt;br /&gt;
&lt;br /&gt;
'''2.''' En la fila correspondiente al host/template al que queramos añadirle el trigger, pulsar sobre la '''columna triggers.'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''3.''' En la ventana de triggers, pulsar sobre el botón '''Create trigger''', situado en la esquina superior derecha.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''4.''' Aparecerá la ventana de creación de triggers, que tiene los siguientes campos:&lt;br /&gt;
:1. '''Name:''' Nombre del trigger, que deberá ser lo ''suficientemente descriptivo''. Aparecerá cuando se&lt;br /&gt;
active, en la ventana principal de Zabbix así como en los correos de aviso.&lt;br /&gt;
:2. '''Expression:''' Define la fórmula cuyo resultado activará el trigger. Hay que pulsar el botón '''Add'''. Se mostrará una &lt;br /&gt;
nueva ventana donde habrá que elegir el item (medida) sobre el que se basará el trigger (evidentemente la medida deberá &lt;br /&gt;
existir previamente) y la función necesaria para el cálculo. Para una descripción de las disponibles dirigirse a &lt;br /&gt;
https://www.zabbix.com/documentation/2.2/manual/appendix/triggers/functions.&amp;lt;br/&amp;gt;&lt;br /&gt;
Tras rellenar los campos anteriores y dar a la función los valores que necesite pulsar el botón '''Insert.'''&lt;br /&gt;
:3. '''Expression constructor:''' Permite crear expresiones complejas, uniendo varias.&lt;br /&gt;
:4. '''Description:''' Una explicación del trigger&lt;br /&gt;
:5. '''Severity:''' Criticidad el trigger&lt;br /&gt;
:6. Para una descripción del resto de campos visitar la página: https://www.zabbix.com/documentation/2.2/manual/config/triggers/trigger&lt;br /&gt;
'''5.''' Tras rellenar los campos, pulsar el botón '''Save'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''6.''' Si el trigger se ha añadido en un template, aparecerá en todos los hosts que tienen el template configurado.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''7.''' '''El trigger por si solo no envía ningún aviso''', solo se activa si se cumple la expresión definida.&lt;br /&gt;
Para enviar un aviso (normalmente un correo electrónico) cuando se active el trigger, será necesario definir una acción (Configuración/Actions).&lt;br /&gt;
&lt;br /&gt;
 '''NOTA.-''' Para consultar cualquier cuestión relativa a Zabbix, se encuentra a su disposición el manual: &amp;lt;br/&amp;gt;&lt;br /&gt;
 https://www.zabbix.com/documentation/2.2/manual&lt;br /&gt;
&lt;br /&gt;
== Como mostrar callername queues FOP2 ==&lt;br /&gt;
&lt;br /&gt;
Es necesario añadir el siguiente código al contexto de entrada:&lt;br /&gt;
&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Connect connid localhost usuario clave bd)&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Query resultid ${connid} SELECT\ firstname\,lastname\ from\ fop2\ where\ phone1=${CALLERID(num)}\ OR\ phone2=${CALLERID(num)})&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Fetch fetchid ${resultid} nombre apellidos)&lt;br /&gt;
 exten =&amp;gt; _X.,n,GotoIf($[${fetchid} = 1]?:noExiste)&lt;br /&gt;
 exten =&amp;gt; _X.,n,Set(CALLERID(name)=${nombre}${apellidos})&lt;br /&gt;
 exten =&amp;gt; _X.,n(noExiste),Continuar&lt;br /&gt;
&lt;br /&gt;
En la primera línea cambiar según lo necesario:&lt;br /&gt;
&lt;br /&gt;
*localhost: Dirección IP del servidor de MySQL donde está la BBDD de FOP2&lt;br /&gt;
*usuario: Usuario con permisos de acceso a la bbdd de FOP2&lt;br /&gt;
*clave: Clave del usuario&lt;br /&gt;
*bd: Nombre de la BBDD&lt;br /&gt;
&lt;br /&gt;
== Como ver los directorios de un NAS a montar con NFS ==&lt;br /&gt;
&lt;br /&gt;
Con el siguiente comando vemos los diferentes volúmenes de un NAS:&lt;br /&gt;
&lt;br /&gt;
 showmount -e IP_NAS&lt;br /&gt;
&lt;br /&gt;
Ejemplo de salida:&lt;br /&gt;
&lt;br /&gt;
 Export list for 192.168.10.10:&lt;br /&gt;
 /Backup/backup       *&lt;br /&gt;
 /DISCOS_1/VOL1_AUDIO *&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Instalación de ActivaSTP con VIVAit Call 3 y marcación desde Outlook ==&lt;br /&gt;
&lt;br /&gt;
Instalamos ActivaSTP desde:&lt;br /&gt;
 &lt;br /&gt;
 (http://activa.sourceforge.net/)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- *SIPTAPI, según la pagina Web, su ultima versión publicada es del 2014 con versión 0.2.17 (http://activa.sourceforge.net/)&lt;br /&gt;
&lt;br /&gt;
Hemos probado con http://www.xtelsio.com/en/products/ast_tsp/tapi_for_asterisk.htm.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La configuración necesaria se muestra en la siguiente imagen:&lt;br /&gt;
&lt;br /&gt;
[[File:Ventana ActivaTSP.jpg]]&lt;br /&gt;
&lt;br /&gt;
 El usuario del manager debe tener permisos originate para poder realizar llamadas.&lt;br /&gt;
&lt;br /&gt;
Se han realizado pruebas con Outlook 2013.&lt;br /&gt;
&lt;br /&gt;
Se ha comprobado la correcta realización de pruebas utilizando ActivaSTP, realizadon llamadas desde la pestaña &amp;quot;personas&amp;quot; con la vista en modo tarjeta de Pesentación, tarjeta, teléfono o lista.&lt;br /&gt;
&lt;br /&gt;
Outlook 2013 no da la opción de llamar si la vista está en modo personas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Como volver a procesar grabaciones con error ==&lt;br /&gt;
&lt;br /&gt;
Las grabaciones con error son aquellas que tienen el valor E_GRABACION=120 en la tabla DAT_GRABACIONES.&lt;br /&gt;
&lt;br /&gt;
Las grabaciones con error se produce normalmente a perdida de conexión entre el nodo servidor de grabaciones y el resto.&lt;br /&gt;
&lt;br /&gt;
Para reprocesar la grabación hay que modificar el campo E_GRABACION de la tabla DAT_GRABACIONES y ponerlo con valor 20 para que así el recordCentral la vuelva a procesar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== FOP2. Problemas en transferencias asistidas ==&lt;br /&gt;
&lt;br /&gt;
 Para habilitar la transferencia atendida del asterisk (funcion atxfer), hay que poner la opción tT en el queue() si la llamada origen la realiza a una cola o &lt;br /&gt;
 al dial() de las extensiones.&lt;br /&gt;
 Con eso vemos como al intentar hacer la llamada de consulta ya se va a nuestro dialplan. Sin embargo la llamada no funciona ya que el enrutador nos da error de&lt;br /&gt;
 enrutamiento porque no tenemos ID_DISPOSITIVO origen ya que el fop no es un elemento creado desde el portal.&lt;br /&gt;
 Por lo que se propone como solución crear un contexto de inicio del fop y asignarle un ID_DISPOSITIVO para que así se enrute la llamada. El contexto tienen que&lt;br /&gt;
 ser similar a ext_InicioLlamada_Chrome.conf&lt;br /&gt;
&lt;br /&gt;
Para que funcione las transferencias supervisadas desde el fop2 hay que realizar lo siguiente:&lt;br /&gt;
&lt;br /&gt;
*El usuario del manager debe tener permisos Atxfer para poder realizar transferencias.&lt;br /&gt;
*Habilitar la transferencia atxfer en el fuatures.conf del asterisk. atxfer =&amp;gt; *2&lt;br /&gt;
*Crear el fichero ext_InicioLlamada_FOP.conf con el siguiente contenido:&lt;br /&gt;
&lt;br /&gt;
 [Cen_Inicio_FOP]&lt;br /&gt;
 exten =&amp;gt; [*#%0-9].,1,NoOp(MDINICHR**EXTEN=${EXTEN}**CID=${CHROME_ANI}*)&lt;br /&gt;
 same =&amp;gt; n,dumpchan()&lt;br /&gt;
 ;same =&amp;gt; n,Set(CALLERID=${CHROME_ANI})&lt;br /&gt;
 same =&amp;gt; n,Gosub(Cen_Sub_getIdExtension,s,1(${R_CID_NUM_00}))&lt;br /&gt;
 same =&amp;gt; n,ExecIf($[&amp;quot;${GOSUB_RETVAL}&amp;quot;!=&amp;quot;OK&amp;quot; | &amp;quot;${sqlDato}&amp;quot;=&amp;quot;&amp;quot;]?HangUp)&lt;br /&gt;
 same =&amp;gt; n,Set(ID_DISPOSITIVO=${sqlDato})&lt;br /&gt;
 ; . Modificar MARCAR en funcion de reglas de marcacion saliente (prefijo 0, ...)&lt;br /&gt;
 ; Esto se modificara en el contexto Cen_Inicio_Chrome_Particular&lt;br /&gt;
 same =&amp;gt; n,Set(MARCAR=${EXTEN})&lt;br /&gt;
 ;---------------------------------&lt;br /&gt;
 ;--- Llamada a contexto particular&lt;br /&gt;
 ;---------------------------------&lt;br /&gt;
 ; Esta llamada es para hacer cosas especcificas del cliente (cambiar callerid...)&lt;br /&gt;
 ; La subrutina Cen_Inicio_Chrome_Particular esta en el archivo ext_InicioLlamada_Chrome_Particular.conf&lt;br /&gt;
 ; Si no existe el archivo copiar el archivo ext_InicioLlamada_Chrome_Particular.conf.ejemplo como ext_Inicio_Chrome_Particular.conf&lt;br /&gt;
 ; y realizar las modificaciones necesarias&lt;br /&gt;
 ; El fichero ext_InicioLlamada_Chrome_Particular.conf se carga automaticamente al ser creado con el include de ext_InicioLlamada.conf&lt;br /&gt;
 ; #include &amp;quot;ext_InicioLlamada*.conf&amp;quot;&lt;br /&gt;
 ;&lt;br /&gt;
 same =&amp;gt; n,GosubIf($[${DIALPLAN_EXISTS(Cen_Inicio_FOP_Particular,${EXTEN},1)}&amp;gt;0]?Cen_Inicio_FOP_Particular,${EXTEN},1)&lt;br /&gt;
 same =&amp;gt; n,Goto(Cen_Inicio_SIP,${MARCAR},1)&lt;br /&gt;
&lt;br /&gt;
*En el fichero /usr/local/fop2/buttons.cfg poner como contexto de las extensiones el creado anteriormente (Cen_Inicio_FOP)&lt;br /&gt;
*Modificar el fichero /usr/local/fop2/fop2.cfg:&lt;br /&gt;
&lt;br /&gt;
 blind_transfer = 0&lt;br /&gt;
 supervised_transfer = 1&lt;br /&gt;
&lt;br /&gt;
Para realizar la transferencia con consulta, hay que pulsar el supervised transfer del FOP2 y una vez se haya establecido la llamada, seleccionar la extensión que &amp;quot;sobra&amp;quot; en la conversación y pulsar la tecla de hangup y colgar la llamada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Problemas de conmutación en cluster ==&lt;br /&gt;
El problema detectado fue que en la conmutacion de maquinas en el cluster cuando el control lo tiene la maquina 2 no funciona el servicio phoneprov-tftp.&lt;br /&gt;
&lt;br /&gt;
Hay que hacer las siguientes comprobaciones:&lt;br /&gt;
&lt;br /&gt;
 Que el directorio /var/lib/phoneprov-tftp esté en la partición /HDcluster&lt;br /&gt;
 Que fichero /etc/MDtel/phoneprov-tftp esté puesta como IP de la máquina la IP flotante del cluster (campo $dbHost)&lt;br /&gt;
 Que el servicio phoneprov-tftp del directorio /usr/local/sbin/phoneprov-tftp.pl tenga permisos de ejecución 755&lt;br /&gt;
 Que exista el fichero /etc/init/phoneprov-tftp.conf&lt;br /&gt;
&lt;br /&gt;
Para más información ver los log del phoneprov en /var/log/phoneprov-tftp.log&lt;br /&gt;
&lt;br /&gt;
El problema era que no se encontraba instalado el paquete phoneprov-tftp, hay que instalarlo manualmente. Instalar el paquete libnet-tftpd-perl.--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Howto%27s&amp;diff=5991</id>
		<title>Howto's</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Howto%27s&amp;diff=5991"/>
		<updated>2017-07-13T09:28:52Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* Generación de llamada automática */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!! VIVAit Call&lt;br /&gt;
VIVAit Suite&lt;br /&gt;
&lt;br /&gt;
VIVAit Fax&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Como parar asterisk ==&lt;br /&gt;
En situaciones límite en el que es necesario parar el asterisk y volver a arrancarlo hay que realizar los siguientes pasos:&lt;br /&gt;
&lt;br /&gt;
 Entrar en la consola de asterisk e introducir el comando core stop now&lt;br /&gt;
&lt;br /&gt;
 Si esto no funciona, tendremos que matar el proceso a mano. Esto es, primero el safe asterisk y luego el asterisk mediante el comando &lt;br /&gt;
 kill -9 nºPID&lt;br /&gt;
 &lt;br /&gt;
 Tras estos pasos, volveremos a arrancar el servicio asterisk mediante /etc/init.d/asterisk start&lt;br /&gt;
&lt;br /&gt;
== Como configurar la megafonía ==&lt;br /&gt;
&lt;br /&gt;
El servicio de megafonía se basa en el protocolo multicast.&lt;br /&gt;
&lt;br /&gt;
Para configurar la megafonía tenemos que activar en los teléfonos que para que estén &amp;quot;escuchando&amp;quot; en una dirección multicast y tener un emisor en esa dirección multicast.&lt;br /&gt;
&lt;br /&gt;
Los teléfonos suelen tener en su configuración un apartado para configurar el multicast. Por ejemplo en los yealink está en la pestaña directory sección multicast IP.&lt;br /&gt;
&lt;br /&gt;
En los teléfonos se puede configurar manualmente o incluirlo en las plantillas de aprovisionamiento.&lt;br /&gt;
&lt;br /&gt;
El asterisk tiene un canal para hacer multicast. Este canal es MulticastRTP.&lt;br /&gt;
&lt;br /&gt;
Para esto podemos crear un VDN que contenga la siguiente línea. (en el ejemplo la dirección multicast es 239.0.126.1 y el puerto es el 10001).&lt;br /&gt;
&lt;br /&gt;
 [Cen_VDN_90000]&lt;br /&gt;
 exten =&amp;gt; _X.,1,NoOp(MDVDN_90000*****EXTEN=${EXTEN}**CID=${CALLERID(NUM)}**UCID=${UCID}*)&lt;br /&gt;
  same =&amp;gt;     n,Answer&lt;br /&gt;
  same =&amp;gt;     n,Dial(MulticastRTP/basic/239.0.126.1:10001)&lt;br /&gt;
 include =&amp;gt; Cen_finLlamada&lt;br /&gt;
&lt;br /&gt;
== Como configurar el candado ==&lt;br /&gt;
El candado permite prohibir temporalmente la posibilidad de realizar llamadas hacia fuera. Sí se pueden seguir haciendo llamadas a extensiones fijas de la plataforma, es decir, llamadas sin coste.&lt;br /&gt;
&lt;br /&gt;
Para configurar dicha funcionalidad basta con crear extensiones con la categoría mas restrictiva posible y habilitar la movilidad, con lo que la extensión solo tendrá &amp;quot;permisos&amp;quot; para realizar llamadas internas.&lt;br /&gt;
&lt;br /&gt;
Para permitir llamadas externas solo hay que &amp;quot;mover&amp;quot; a un usuario con categoría suficiente a la extensión deseada.&lt;br /&gt;
== Como crear un grupo de captura y que se vea en cada teléfono el número que llama ==&lt;br /&gt;
&lt;br /&gt;
'''ATENCIÓN: SE CREAN CONFIGURACIONES NO REFLEJADAS EN PORTAL DE ADMINISTRACIÓN'''&lt;br /&gt;
&lt;br /&gt;
Para la simulación de grupos de captura y conseguir que todos los terminales vean el ANI del llamante:&lt;br /&gt;
&lt;br /&gt;
- Hacen falta teléfonos con dos líneas&lt;br /&gt;
&lt;br /&gt;
- Cada teléfono del grupo tiene en la línea 1 su extensión habitual (por ejemplo 40000)&lt;br /&gt;
&lt;br /&gt;
- Además, en el fichero &amp;quot;sip_Estatico.conf&amp;quot;, creamos una segunda extensión para cada teléfono, que le ocupará la segunda línea (por ejemplo 42000)&lt;br /&gt;
&lt;br /&gt;
- En esta segunda linea ponemos que cuando se llame tenga otro tono de llamada (un beep o nada...) que se asemeje en funcionamiento al de un mensaje de llamada en otra extension de mi grupo de captura&lt;br /&gt;
&lt;br /&gt;
- Se ha creado una variable global por cada teléfono en el fichero de variables &amp;quot;ext_MDtel_Particular.conf&amp;quot; de nombre EXTxxxxx (por ejemplo EXT40000); esa variable contiene las otras extensiones virtuales del grupo&lt;br /&gt;
por ejemplo EXT40000=&amp;gt;SIP/42001&amp;amp;SIP/42005&lt;br /&gt;
&lt;br /&gt;
- Hemos creado en el dialplan programación para que cuando exista esa variable global se añada a la marcación el contenido&lt;br /&gt;
&lt;br /&gt;
== Como crear supletorios ==&lt;br /&gt;
&lt;br /&gt;
'''ATENCIÓN: SE CREAN CONFIGURACIONES NO REFLEJADAS EN PORTAL DE ADMINISTRACIÓN'''&lt;br /&gt;
&lt;br /&gt;
Igual que el caso anterior pero en la variable ponemos números reales. Debido a un bug en el enrutador, que no devuelve la variable R_PARA, en el fichero ext_MARCAR_Extension.conf hay que sustituir la siguiente linea:&lt;br /&gt;
 &lt;br /&gt;
 ;same =&amp;gt;                   n,ExecIf($[&amp;quot;${EXT${R_PARA}}&amp;quot;=&amp;quot;&amp;quot;]?NoOp:Set(ENR_CADMARCAR=${ENR_CADMARCAR}&amp;amp;${EXT${R_PARA}}))&lt;br /&gt;
Por esta otra:&lt;br /&gt;
  same =&amp;gt;                   n,ExecIf($[&amp;quot;${EXT${R_DEST_${ENR_RUTA_CAD}}}&amp;quot;=&amp;quot;&amp;quot;]?NoOp:Set(ENR_CADMARCAR=${ENR_CADMARCAR}&amp;amp;${EXT${R_DEST_${ENR_RUTA_CAD}}}))&lt;br /&gt;
ATENCIÓN !!! en las llamadas salientes cada uno presenta su número&lt;br /&gt;
&lt;br /&gt;
Para emplear números externos en los supletorios hay que poner, al crear la variable que hemos explicado en el apartado anterior en el ext_MDtel_Particular.conf: &lt;br /&gt;
&lt;br /&gt;
 EXT335=&amp;gt;SIP/0999999999@Trunk_Movil ;En este caso suena en la ext 335 y en el móvil 999999999&lt;br /&gt;
&lt;br /&gt;
== Generación de llamada automática ==&lt;br /&gt;
&lt;br /&gt;
Para activar la funcionalidad es necesario lo siguiente: &lt;br /&gt;
&lt;br /&gt;
* Definir una variable ID_LISTA_LLAMAME con el ID de la lista que se va a usar para generar la llamada. Cuando se cree la lista hay que asegurarse que el campo &amp;quot;Nº segundos límite&amp;quot; tiene un valor lo suficientemente amplio para evitar que la llamada caduque antes de ejecutarse.&lt;br /&gt;
&lt;br /&gt;
* Establecer un timeout para la cola (en el Gosub Cen_Sub_GrupoACD se indica justo después de ${COLA})&lt;br /&gt;
&lt;br /&gt;
* Llamar a la función de MySQL ACD_FUNC_LLAMAME_CREAR a través de MDintz&lt;br /&gt;
&lt;br /&gt;
* En la función se usan los siguientes elementos variables:&lt;br /&gt;
&lt;br /&gt;
        ${ID_LISTA_LLAMAME}: Definida antes clienteTOCola: &lt;br /&gt;
        Nombre del cliente. Al no tener ningún nombre, se usa un denominador genérico&lt;br /&gt;
        ${CALLERID}: Número llamante, donde se dirigirá la llamada.&lt;br /&gt;
&lt;br /&gt;
Ejemplo:&lt;br /&gt;
&lt;br /&gt;
 [Cen_VDN_99001]&lt;br /&gt;
 ;----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 ;----------------------- VDN 99001 ------------------------------------------------------------&lt;br /&gt;
 ;----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 exten =&amp;gt; _X.,1,NoOp(MDENTGW_99001*****EXTEN=${EXTEN}**CID=${CALLERID(NUM)}**UCID=${UCID}*)&lt;br /&gt;
  same =&amp;gt;     n,Set(__COLA=89001)&lt;br /&gt;
  same =&amp;gt;     n,Set(ctiDiriTrato=0)&lt;br /&gt;
  same =&amp;gt;     n,Set(ctiDiriInterface=)&lt;br /&gt;
  same =&amp;gt;     n,Set(ID_LISTA_LLAMAME=2)&lt;br /&gt;
  same =&amp;gt;     n(cola),Gosub(Cen_Sub_GrupoACD,${EXTEN},1(${COLA},10,,Si,))&lt;br /&gt;
  same =&amp;gt;     n,GotoIf($[&amp;quot;${QUEUESTATUS}&amp;quot;!=&amp;quot;TIMEOUT&amp;quot;]?colgar)&lt;br /&gt;
  same =&amp;gt;     n,MDintz(nimitz|bd|sqlDato|select ACD_FUNC_LLAMAME_CREAR(CURRENT_TIMESTAMP\,${ID_LISTA_LLAMAME}\,&amp;quot;&amp;quot;\,&amp;quot;clienteTOCola&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,1\,&amp;quot;&amp;quot;\,&amp;quot;${CALLERID(NUM)}&amp;quot;\,1\,3\,1\,&amp;quot;&amp;quot;\,0\,0\,0\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;))&lt;br /&gt;
  same =&amp;gt;     n,GotoIf($[&amp;quot;${MDintzRes}&amp;quot;=&amp;quot;OK&amp;quot;]?colgar)&lt;br /&gt;
  same =&amp;gt;     n,NoOp(ACD_FUNC_LLAMAME_CREAR ${MDintzRes})&lt;br /&gt;
  same =&amp;gt;     n(colgar),Hangup&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cancelación de eco en plataforma ==&lt;br /&gt;
&lt;br /&gt;
Comprobar que el chan_dahdi.conf este configurado los parametros: &lt;br /&gt;
 echocancel=yes&lt;br /&gt;
 echocancelwhenbridged=yes&lt;br /&gt;
 Jugar con los valores txgain y rxgain &lt;br /&gt;
&lt;br /&gt;
Si esto no es suficiente el siguiente paso sería ya emplear una canceladora de echo por hardwar.e&lt;br /&gt;
&lt;br /&gt;
== Como &amp;quot;dar paso&amp;quot; a través de un enlace exterior si hay una llamada para una extensión creada en el sistema pero no registrada ==&lt;br /&gt;
&lt;br /&gt;
Este procedimiento es de utilidad en procesos de migración, en los que recibimos las llamadas de la RTC, nos las quedamos si la extensión ya está registrada en VIVAit y la mandamos hacia la plataforma a migrar si aún sigue migrada ahí&lt;br /&gt;
&lt;br /&gt;
El procedimiento es:&lt;br /&gt;
* Activar desvío por no contesta en la extensión (portal de administración - VIVAit Call - Dispositivos - Extensiones - campo &amp;quot;Desvio no contesta&amp;quot;, indicando como destino un prefijo (por ejemplo &amp;quot;99&amp;quot;) seguido de la extensión destino&lt;br /&gt;
&lt;br /&gt;
* Creamos una preruta en vivait-call - rutas -prerutas con origen &amp;quot;99&amp;quot;, le quitamos el prefijo en campo &amp;quot;Destino saliente 1&amp;quot; (valor -2) e indicamos en campo &amp;quot;Tipo destino sal. 1&amp;quot; como &amp;quot;Ruta externa&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Debera existir una ruta externa para esa numeración&lt;br /&gt;
&lt;br /&gt;
== Comprobación de versiones de elementos de la plataforma ==&lt;br /&gt;
&lt;br /&gt;
'''Aplicaciones'''&lt;br /&gt;
:* Botón derecho del ratón, Acerca De&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Portales'''&lt;br /&gt;
:* En el Vivait-Call, en la pantalla de inicio de sesión pone el número de versión del portal.&lt;br /&gt;
:* Tanto en el Monitor como en el Tracker no se puede saber.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Demonios'''&lt;br /&gt;
:* Mediante el comando nc localhost &amp;lt;Puerto demonio&amp;gt;. Ejemplo:&lt;br /&gt;
::nc localhost 1120&lt;br /&gt;
::motorSal sis ver='03.02.00' inic='20150427 123457' alarmas=0 ultAlar='00000000000000'&lt;br /&gt;
::motorSal gmp msj=253/256 buf=256/256 tarea=99/102&lt;br /&gt;
::motorSal tmp uptime=12624 (0d 3h 30m 24s)&lt;br /&gt;
::motorSal mtr mys=1 ocup=0% planif=13(0) intento=11(0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::Ejemplos puertos demonios:&lt;br /&gt;
:::*1111: vivait-cti&lt;br /&gt;
:::*1112: myAcdSuperv&lt;br /&gt;
:::*1113: recordNodo&lt;br /&gt;
:::*1114: recordCentral&lt;br /&gt;
:::*1115: intz-nimitz&lt;br /&gt;
:::*1120: motorSal&lt;br /&gt;
:::*1123: phoneprov-tftp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Base de datos'''&lt;br /&gt;
:* No se puede saber la versión a no ser que se comparen esquemáticos con los subidos en el redmine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:administrador]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:VIVAit Suite]]&lt;br /&gt;
[[Category:VIVAit Fax]]&lt;br /&gt;
&lt;br /&gt;
== Añadir Auto-Answer a la cabecera SIP ==&lt;br /&gt;
&lt;br /&gt;
Si queremos que un teléfono tenga autoanswer:&lt;br /&gt;
* En el peer poner: headeraa=Call-Info: answer-after=0, esto tiene que ir en la plantilla de la extensión o como campo en la extensión. Dependiendo del terminal que utilicemos el valor de este campo variará:&lt;br /&gt;
&lt;br /&gt;
    Aastra: Alert-Info: info=alert-autoanswer&lt;br /&gt;
    Grandstream: Call-Info: answer-after=0&lt;br /&gt;
    Linksys: Call-Info:\;Answer-After=0&lt;br /&gt;
    Polycom: Alert-Info: Ring Answer&lt;br /&gt;
    Snom: Call-Info: answer-after=0&lt;br /&gt;
    Snom (nuevo firmware): Call-Info: &amp;lt;sip:IP&amp;gt;\;answer-after=0&lt;br /&gt;
    Yealink: Call-Info: answer-after=0&lt;br /&gt;
&lt;br /&gt;
* Luego en el diaplan añadir lo siguiente: exten =&amp;gt; _[*#%0-9a-zA-Z].,n,set(__AutoAnswer=AA) (Esto tendremos que ver como ponerlo de manera automática). De manera provisional si queremos que sea para llamadas salientes pondremos esto en el ext_n_marcador.conf. Si queremos que sea llamadas entrantes lo pondremos en ext_n_MARCAR.conf&lt;br /&gt;
&lt;br /&gt;
== Configuración de los portales web en HTTPS ==&lt;br /&gt;
&lt;br /&gt;
Desde /usr/lib/jvm/default-java/bin/ ejecutamos:&lt;br /&gt;
&lt;br /&gt;
keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/share/tomcat7/.keystore&lt;br /&gt;
&lt;br /&gt;
Escriba la contraseña del almacén de claves: (t0mc4t)&lt;br /&gt;
 Volver a escribir la contraseña nueva: (t0mc4t)&lt;br /&gt;
 *Personalizar para el cliente&lt;br /&gt;
 ¿Cuáles son su nombre y su apellido?&lt;br /&gt;
 [Unknown]: VIVAit Suite&lt;br /&gt;
 ¿Cuál es el nombre de su unidad de organización?&lt;br /&gt;
 [Unknown]: Desarrollo&lt;br /&gt;
 ¿Cuál es el nombre de su organización?&lt;br /&gt;
 [Unknown]: MDtel&lt;br /&gt;
 ¿Cuál es el nombre de su ciudad o localidad?&lt;br /&gt;
 [Unknown]: Madrid&lt;br /&gt;
 ¿Cuál es el nombre de su estado o provincia?&lt;br /&gt;
 [Unknown]: Madrid&lt;br /&gt;
 ¿Cuál es el código de país de dos letras de la unidad?&lt;br /&gt;
 [Unknown]: es&lt;br /&gt;
 ¿Es correcto CN=VIVAit Suite, OU=Desarrollo, O=MDtel, L=es, ST=Madrid,&lt;br /&gt;
 C=Unknown?&lt;br /&gt;
 [no]: si&lt;br /&gt;
 Escriba la contraseña clave para &amp;lt;tomcat&amp;gt;&lt;br /&gt;
 (INTRO si es la misma contraseña que la del almacén de claves)&lt;br /&gt;
&lt;br /&gt;
nano /var/lib/tomcat7/conf/server.xml&lt;br /&gt;
&lt;br /&gt;
Descomentar la línea:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; protocol=&amp;quot;HTTP/1.1&amp;quot; SSLEnabled=&amp;quot;true&amp;quot; &lt;br /&gt;
&lt;br /&gt;
 maxThreads=&amp;quot;150&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Añadir después de sslProtocol=&amp;quot;TLS&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 keystorePass=&amp;quot;t0mc4t&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Crear un motivo desconexión para el Supervisor en '''''VIVA'''''it Suite==&lt;br /&gt;
&lt;br /&gt;
Para crear motivos de desconexión adicionales a los que ya ofrece la aplicación tendremos que añadir una nueva entrada en la BD. El comando que emplearíamos seria el siguiente:&lt;br /&gt;
&lt;br /&gt;
INSERT INTO `nimitz`.`COM_ENUMERADOS` (`ID`, `C_NOMBRE`, `C_TEXTO`, `N_POSICION`, `C_OBSERV`) VALUES(1000700, 'TSesAgMotDesc', 'Nombre Motivo de desconexión', 60, ' ');&lt;br /&gt;
&lt;br /&gt;
El ID debe ser mayor o igual a 1000700 y menor a 1000800. El N_POSICION debe ser mayor o igual a 60 y menor que 100.&lt;br /&gt;
&lt;br /&gt;
== Envío de variables CTI al ACD ante un GW con asterisk 13==&lt;br /&gt;
Dado que para un GW con asterisk 13 un nodo ACD es considerado un elemento externo, por defecto, no se envían variables CTI (UCID, ...). En una fututa versión del nodo ACD, ya no se considerará un elemento externo por lo que si se enviarán dichas variables. Para lograrlo en la versión 3.0 de la plataforma Vivait hay que modificar el fichero ext_MARCAR_Externo_Particular.conf del GW. Deberemos poner la siguiente linea.&lt;br /&gt;
&lt;br /&gt;
 same =&amp;gt; n,Macro(escribirDatosCti)&lt;br /&gt;
&lt;br /&gt;
== Script para cambio automático de claves en salas de conferencia estáticas ==&lt;br /&gt;
&lt;br /&gt;
Para cambiar la clave de las salas de conferencias crear un script llamado cambioClaveConfe.sh con el siguiente contenido:&lt;br /&gt;
	&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 CLAVE=$(shuf -i 1111-9999 -n 1)&lt;br /&gt;
 &lt;br /&gt;
 echo $CLAVE&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;update CEN_SALAS_CONFERENCIAS set C_PIN='$CLAVE' WHERE C_NOMBRE='$1'&amp;quot; | mysql -u nimitz -pivivanimitz nimitz&lt;br /&gt;
 &lt;br /&gt;
 FROM=sat@mdtel.es&lt;br /&gt;
 FECHA=`date +&amp;quot;%Y%m%d%H%M%S&amp;quot;`&lt;br /&gt;
 CLIENTE=&amp;lt;PONER EL CLIENTE&amp;gt;&lt;br /&gt;
 TO=&amp;lt;DESTINATARIOS&amp;gt;&lt;br /&gt;
 ASUNTO=&amp;quot;Nueva clave en sala $1&amp;quot;&lt;br /&gt;
 CUERPO=&amp;quot;La nueva clave para la sala $1 es: $CLAVE&amp;quot;&lt;br /&gt;
 /usr/sbin/sendmail -oi -t -v -f $FROM &amp;lt;&amp;lt;EOF&lt;br /&gt;
 From: $FROM&lt;br /&gt;
 To: $TO&lt;br /&gt;
 Bcc: $BCC&lt;br /&gt;
 Subject: $ASUNTO&lt;br /&gt;
 &lt;br /&gt;
 $CUERPO&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
El script cambiará la clave de la sala pasada por parámetro por una aleatoria de 4 dígitos y la enviará por correo a los &amp;lt;DESTINATARIOS&amp;gt; (direcciones de correo electrónico separadas por coma).&lt;br /&gt;
&lt;br /&gt;
Hay que crear una tarea en /etc/crontab añadiendo una linea como la siguiente:&lt;br /&gt;
 30 6	* * 7	root	cambioClaveConfe.sh 6173&lt;br /&gt;
&lt;br /&gt;
Esto ejecutará el script todos los domingos a las 6:30 horas cambiando la clave de la sala 6173. Añadir tantas linéas como salas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Monitorización en Zabbix de un trunk caído ==&lt;br /&gt;
Para monitorizar un o varios trunk por separado y saber el estado de cada uno es necesario lo siguiente: &lt;br /&gt;
&lt;br /&gt;
*Añadir el UserParameter adjunto que contiene el siguiente texto:&lt;br /&gt;
&lt;br /&gt;
 UserParameter=asterisk.trunkEstado[*],sudo /usr/sbin/asterisk -rx 'sip show peers' | grep  --text -i '$1' |  grep OK &amp;gt;/dev/null; if [ $? -eq 0 ]; then echo 1; else echo 0; fi&lt;br /&gt;
&lt;br /&gt;
*Añadir en el portal de zabbix un item por cada trunk. En el campo Key se pondrá &amp;quot;asterisk.trunkEstado[nombre_trunk]&amp;quot;, donde nombre_trunk es el nombre del trunk tal y como se ve en Asterisk.&lt;br /&gt;
[[File:zabbix_item_trunkEstado.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Crear un trigger que avise cuando el último valor sea 0. Por ejemplo:&lt;br /&gt;
 {corp-bdtr:asterisk.trunkEstado[PrePro-ACD].last()}=0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:zabbix_trigger_trunkEstado.png]]&lt;br /&gt;
&lt;br /&gt;
== Agendas en terminales Yealink ==&lt;br /&gt;
En la agenda se mostrará como nombre lo que contenga el campo CEN_AGENDAS.C_NOMBRE_MOSTRAR y como teléfono el indicado en CEN_AGENDAS_TELEFONOS.C_TELEFONO&lt;br /&gt;
Para hacer funcionar la agenda:&lt;br /&gt;
&lt;br /&gt;
*En el archivo de aprovisionamiento correspondiente (Yealink-XXXX-comun.cfg) establecer los siguientes parámetros:&lt;br /&gt;
&lt;br /&gt;
    remote_phonebook.data.1.url = http://&amp;lt;direc IP&amp;gt;/vivait-agenda/yealink/contactData1.xml &lt;br /&gt;
    remote_phonebook.data.1.name = NOMBRE DE LA AGENDA EN EL TELEFONO&lt;br /&gt;
&lt;br /&gt;
*En el archivo /etc/apache2/apache2.conf añadir tras el último Directory:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Directory /var/www/html/vivait-agenda/&amp;gt;&lt;br /&gt;
             AddType application/x-httpd-php .xml&lt;br /&gt;
             Options Indexes FollowSymLinks MultiViews&lt;br /&gt;
             AllowOverride None&lt;br /&gt;
             Order allow,deny&lt;br /&gt;
             allow from all&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Ejecutar el comando:&lt;br /&gt;
&lt;br /&gt;
    /etc/init.d/apache2 reload&lt;br /&gt;
&lt;br /&gt;
== Calendarios ==&lt;br /&gt;
&lt;br /&gt;
=== Enrutamiento inteligente ===&lt;br /&gt;
&lt;br /&gt;
Ante una llamada a un destino, si hay cita de ocupado en el calendario se desvia al número indicado en el campo &amp;quot;location&amp;quot; del calendario o a su buzon de voz si hay valor en dicho campo&lt;br /&gt;
&lt;br /&gt;
 same =&amp;gt; n,Set(CalendarBusy=${CALENDAR_BUSY(GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,Set(id=${CALENDAR_QUERY(GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,NoOP(hay ${CALENDAR_QUERY_RESULT(${id},getnum)} eventos)&lt;br /&gt;
 same =&amp;gt; n,Verbose(3,The state of GoogleCalendar is $&lt;br /&gt;
 {DEVICE_STATE(Calendar:GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,Set(CalendarLocation=${CALENDAR_QUERY_RESULT(GoogleCalendar,location)})&lt;br /&gt;
 same =&amp;gt; n,GotoIf($[&amp;quot;${CalendarBusy}&amp;quot;==&amp;quot;1&amp;quot;]?:conCategoria)&lt;br /&gt;
 same =&amp;gt; n,GotoIf($[&amp;quot;${CalendarLocation}&amp;quot;==&amp;quot;&amp;quot;]?buzon)&lt;br /&gt;
 same =&amp;gt; n,Goto(Cen_iniLlam,${CalendarLocation},1)&lt;br /&gt;
 same =&amp;gt; n(buzon),Playback(Particular/buzon)&lt;br /&gt;
 same =&amp;gt; n,Hangup&lt;br /&gt;
 same=&amp;gt; n(conCategoria),Goto(Cen_iniLlam,${EXTEN},1)&lt;br /&gt;
&lt;br /&gt;
=== Conexión de cliente Outlook a calendarios VIVAit mediante Caldav===&lt;br /&gt;
Por defecto, el cliente outlook no soporta Caldav; si queremos disponer de calendarios de VIVAit en Outlook tendríamos dos opciones:&lt;br /&gt;
# Tener los calendarios en el servidor Exchange&lt;br /&gt;
# Instalar un plugin en el cliente outlook que permita conectar vía Caldav los calendarios que estén ubicados en el servidor de calendarios de VIVAit&lt;br /&gt;
&lt;br /&gt;
Este howto se centra en esta segunda posibilidad&lt;br /&gt;
&lt;br /&gt;
Procedimiento: &lt;br /&gt;
&lt;br /&gt;
1.- Instalar Calldavsincronizer (valdrían otros plugin de Caldav para Outlook)&lt;br /&gt;
&lt;br /&gt;
[https://sourceforge.net/projects/outlookcaldavsynchronizer/ https://sourceforge.net/projects/outlookcaldavsynchronizer/]&lt;br /&gt;
&lt;br /&gt;
2.- Entrar en Synchronization Profiles en la nueva pestaña Calldav Syncronizer de outlook       [[File:Syncronizer.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.- Añadir nuevo perfil (tecla +)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Nuevo.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A tener en cuenta:&lt;br /&gt;
&lt;br /&gt;
*Crear un nuevo “Outlook folder”, entendemos que es adecuado (quizás necesario) para que las entradas de calendario de VIVAit queden diferenciadas.&lt;br /&gt;
*Lo mejor es haber creado antes el calendario en el servidor para que al darlo de alta en oulook comprobemos que se conecta.&lt;br /&gt;
*Dando al botón “Test or discover settings” se nos muestran todos los calendarios del servidor y elegimos el que queramos; en “elementos de la carpeta” diremos “elementos de calendario”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Calendario.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
== Uso de reloj hardware en nodos de procesamiento ==&lt;br /&gt;
&lt;br /&gt;
=== En nodo de procesamiento ACD ===&lt;br /&gt;
En un nodo de procesamiento ACD es obligatorio instalar dahdi y una tarjeta de primario para emplear reloj hardware, ya que el reloj software que va en el asterisk 1.4 es defectuoso.&lt;br /&gt;
Para configurarlo basta con instalar la tarjeta en el servidor, instalar dahdi y posteriormente ejecutar el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
 dahdi_cfg&lt;br /&gt;
&lt;br /&gt;
Este comando generaŕa el fichero /etc/dahdi/system.conf&lt;br /&gt;
&lt;br /&gt;
Para comprobar que el comando se ha ejecutado satisfactoriamente lo abriremos y tendrá que tener un formato semejante al siguiente ejemplo:&lt;br /&gt;
&lt;br /&gt;
 # Autogenerated by /usr/sbin/dahdi_genconf on Tue Oct 22 17:42:59 2013&lt;br /&gt;
 # If you edit this file and execute /usr/sbin/dahdi_genconf again,&lt;br /&gt;
 # your manual changes will be LOST.&lt;br /&gt;
 # Dahdi Configuration File&lt;br /&gt;
 #&lt;br /&gt;
 # This file is parsed by the Dahdi Configurator, dahdi_cfg&lt;br /&gt;
 #&lt;br /&gt;
 # Span 1: WCT1/0 &amp;quot;Digium Wildcard TE110P T1/E1 Card 0&amp;quot; HDB3/CCS/CRC4&lt;br /&gt;
 span=1,1,0,ccs,hdb3,crc4&lt;br /&gt;
 # termtype: te&lt;br /&gt;
 bchan=1-15,17-31&lt;br /&gt;
 dchan=16&lt;br /&gt;
 echocanceller=oslec,1-15,17-31&lt;br /&gt;
 # Global data&lt;br /&gt;
 loadzone        = es&lt;br /&gt;
 defaultzone     = es&lt;br /&gt;
&lt;br /&gt;
=== En nodo de procesamiento de corporativa ===&lt;br /&gt;
En un nodo de procesamiento de corporativa no obligatorio instalar dahdi y una tarjeta de primario para emplear reloj hardware, ya que el no se han detectado errores en el reloj por software. Sin embargo si instalamos dahdi y una tarjeta de primario para emplear reloj hardware, el sistema funcionará mejor.&lt;br /&gt;
Para configurarlo basta con instalar la tarjeta en el servidor, instalar dahdi y posteriormente ejecutar el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
 dahdi_cfg&lt;br /&gt;
&lt;br /&gt;
Este comando generaŕa el fichero /etc/dahdi/system.conf&lt;br /&gt;
&lt;br /&gt;
Para comprobar que el comando se ha ejecutado satisfactoriamente lo abriremos y tendrá que tener un formato semejante al siguiente ejemplo:&lt;br /&gt;
&lt;br /&gt;
 # Autogenerated by /usr/sbin/dahdi_genconf on Tue Oct 22 17:42:59 2013&lt;br /&gt;
 # If you edit this file and execute /usr/sbin/dahdi_genconf again,&lt;br /&gt;
 # your manual changes will be LOST.&lt;br /&gt;
 # Dahdi Configuration File&lt;br /&gt;
 #&lt;br /&gt;
 # This file is parsed by the Dahdi Configurator, dahdi_cfg&lt;br /&gt;
 #&lt;br /&gt;
 # Span 1: WCT1/0 &amp;quot;Digium Wildcard TE110P T1/E1 Card 0&amp;quot; HDB3/CCS/CRC4&lt;br /&gt;
 span=1,1,0,ccs,hdb3,crc4&lt;br /&gt;
 # termtype: te&lt;br /&gt;
 bchan=1-15,17-31&lt;br /&gt;
 dchan=16&lt;br /&gt;
 echocanceller=oslec,1-15,17-31&lt;br /&gt;
 # Global data&lt;br /&gt;
 loadzone        = es&lt;br /&gt;
 defaultzone     = es&lt;br /&gt;
&lt;br /&gt;
== Aprovisionamiento terminales Cisco ==&lt;br /&gt;
=== Configurar protocolo SIP TCP o UDP en terminal Cisco ===&lt;br /&gt;
&lt;br /&gt;
Configuración de terminal Cisco para para funcionar bajo TCP o UDP:&lt;br /&gt;
Modificar parámetro&lt;br /&gt;
 &amp;lt;transportLayerProtocol&amp;gt;X&amp;lt;/transportLayerProtocol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde X es:&lt;br /&gt;
    1: TCP&lt;br /&gt;
    2: UDP&lt;br /&gt;
    4: Valor por defecto del firmware (al menos en la última versión equivale a TCP)&lt;br /&gt;
&lt;br /&gt;
=== Habilitar/Deshabilitar llamada en espera en terminales Cisco ===&lt;br /&gt;
&lt;br /&gt;
En el fichero de aprovisionamiento del terminal añadiremos la siguiente linea&lt;br /&gt;
 &amp;lt;callWaiting&amp;gt;X&amp;lt;/callWaiting&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde X es:&lt;br /&gt;
   0=off but can be changed through the settings menu.&lt;br /&gt;
   1=on but can be changed through the settings menu.&lt;br /&gt;
   2=off and locked so it can't be changed through the settings menu.&lt;br /&gt;
   3=on and locked so it can't be changed through the settings menu.&lt;br /&gt;
&lt;br /&gt;
== Como configurar servicio DHCP en Ubuntu Linux ==&lt;br /&gt;
=== ¿Que es un servicio DHCP? ===&lt;br /&gt;
Un servidor Dynamic Host Configuration Protocol (DHCP) asigna dinámicamente las direcciones IP y otras configuraciones de red a otros terminales que están conectados a la red.&lt;br /&gt;
&lt;br /&gt;
=== Instalar un servicio DHCP ===&lt;br /&gt;
Para instalar el servidor de asignacion automatica de direccion IP ejecutamos el comando:&lt;br /&gt;
 sudo apt-get install isc-dhcp-server&lt;br /&gt;
&lt;br /&gt;
=== Configurando el servicio DHCP ===&lt;br /&gt;
Editamos el archivo /etc/dhcp/dhcpd.conf creando primero un backup del mismo:&lt;br /&gt;
 mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.original&lt;br /&gt;
 nano /etc/dhcp/dhcpd.conf&lt;br /&gt;
&lt;br /&gt;
El archivo debe quedar de una forma muy similar a esta:&lt;br /&gt;
 authoritative&lt;br /&gt;
 subnet  10.254.239.0 netmask 255.255.255.254&lt;br /&gt;
 {&lt;br /&gt;
 range dynamic-bootp  10.254.239.40 10.254.239.60;&lt;br /&gt;
 option domain-name-servers ns1.example.org, ns2.example.org;&lt;br /&gt;
 option domain-name &amp;quot;example.org&amp;quot;;&lt;br /&gt;
 option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org ;&lt;br /&gt;
 option broadcast-address 10.254.239.255;&lt;br /&gt;
 default-lease-time 3600;&lt;br /&gt;
 max-lease-time 7200;&lt;br /&gt;
 option option-150 10.254.239.25&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Donde los campos:&lt;br /&gt;
*subnet: Direccion de red&lt;br /&gt;
*netmask: Máscara de red&lt;br /&gt;
*range dynamic-bootp: Rango de IPs que va a proporcionar el DHCP&lt;br /&gt;
*option domain-name-servers: Direcciones IPs de los DNS&lt;br /&gt;
*option domain-name: Nombre de dominio&lt;br /&gt;
*option routers:IPs de las puertas de enlace&lt;br /&gt;
*option broadcast-address: Dirección de broadcast&lt;br /&gt;
*default-lease-time: Tiempo de concesión por defecto&lt;br /&gt;
*max-lease-time: Valor máximo del tiempo de concesión&lt;br /&gt;
*option option-150: IPs de los servidores TFTPs que tiene la red&lt;br /&gt;
&lt;br /&gt;
===  Reiniciamos el servicio ===&lt;br /&gt;
 service isc-dhcp-server restart&lt;br /&gt;
&lt;br /&gt;
=== Direcciones IP estáticas basadas en la MAC ===&lt;br /&gt;
Pueden conocerse las MAC de las máquinas conectadas a la red ejecutando el comando arp desde la terminal.&lt;br /&gt;
&lt;br /&gt;
 host ejemplo {&lt;br /&gt;
        hardware ethernet 00:0B:82:19:A8:04;&lt;br /&gt;
        option option-150 10.254.239.0;&lt;br /&gt;
 #      fixed-address 10.254.239.52;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Protocolo Skinny en VIVAit Call mediante uso de Chan-SCCP ==&lt;br /&gt;
=== Instalación de chan_sccp ===&lt;br /&gt;
*Copiar el fichero chan-sccp-4.2.1.1.tar.gz en el directorio donde estén los fuentes de Asterisk (normalmente /usr/src/MDtel)&lt;br /&gt;
*Descomprimir&lt;br /&gt;
*Entrar al directorio chan-sccp-4.2.1.1&lt;br /&gt;
*Ejecutar: ./configure --with-asterisk=../DIRECTORIO_ASTERISK --enable-conference. Donde DIRECTORIO_ASTERISK es el nombre del directorio donde están los fuentes de asterisk.&lt;br /&gt;
*Tras el ejecutar el configure (si todo va bien al final se verá un resumen con el S.O, arquitectura, etc), ejecutar make y make install&lt;br /&gt;
*El nuevo módulo chan_sccp.so se generará dentro del DIRECTORIO_ASTERISK en lib/asterisk/modules/ y se deberá copiar en /usr/lib/asterisk/modules/&lt;br /&gt;
*Copiar el fichero sccp.conf a /etc/asterisk&lt;br /&gt;
*Entra a Asterisk y ejecutar: module load chan_sccp.so&lt;br /&gt;
*Si se ha cargado correctamente, desde dentro de Asterisk, si se teclea sccp show version deberá devolver: &amp;quot;Skinny Client Control Protocol (SCCP). Release: 4.3.0 4.3.0 - unknown (built by 'root' on '2016-06-01 10:42:32 UTC')&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Crear extensiones ===&lt;br /&gt;
*En el portal crear una nueva clase de dispositivo (Vivait-Call/Dispositivos/Clases de dispositivos), donde la clase sea extensión la subclase H323 (todavía no existe la subclase SCCP) y el formato SCCP/${DEST}&lt;br /&gt;
*Crear la nueva extensión, pero el dispositivo debe ser el creado en el campo anterior.&lt;br /&gt;
*Las extensiones creadas habrá que añadirlas al fichero sccp.conf así como los teléfonos que las usarán. En el fichero sccp.conf incluido hay ejemplos.&lt;br /&gt;
&lt;br /&gt;
=== Aprovisionamiento ===&lt;br /&gt;
Los terminales se aprovisionan de la misma manera que los SIP, exceptuando que las plantillas XML no tiene referencias a SIP. Se incluye un xml genérico con todas las opciones.&lt;br /&gt;
Dentro del directorio chan-sccp-4.2.1.1 hay un directorio conf con todos los archivos de configuración necesarios. Las versiones annotated contienen todas las opciones posibles comentadas.&lt;br /&gt;
&lt;br /&gt;
== Instalación y configuración Postfix en RedHat7 ==&lt;br /&gt;
&lt;br /&gt;
'''Postfix''' es un ''servidor de correo'' de software libre/código abierto, un programa informático para el enrutamiento y envío de correo electrónico.&lt;br /&gt;
&lt;br /&gt;
=== Instalación ===&lt;br /&gt;
 yum install postfix&lt;br /&gt;
&lt;br /&gt;
=== Configuración ===&lt;br /&gt;
Sobre la configuración de postfix por defecto (recién instalado):&lt;br /&gt;
Editar el fichero /etc/postfix/main.cf&lt;br /&gt;
 inet_protocols = ipv4&lt;br /&gt;
 relayhost = smtp.renfe.es&lt;br /&gt;
Revisar la configuración:&lt;br /&gt;
 postfix check&lt;br /&gt;
Configurar postfix como servicio (sólo en redhat y similares)&lt;br /&gt;
 chkconfig postfix on&lt;br /&gt;
Iniciar postfix:&lt;br /&gt;
 service postfix start&lt;br /&gt;
Instalar mailx para disponer de los comandos mail y sendmail:&lt;br /&gt;
 yum install mailx&lt;br /&gt;
Probar configuración:&lt;br /&gt;
 echo &amp;quot;Prueba de correo&amp;quot; | mail -vs &amp;quot;Prueba&amp;quot; correo@destino.soy&lt;br /&gt;
&lt;br /&gt;
== Como crear un TRIGGER en Zabbix ==&lt;br /&gt;
&lt;br /&gt;
'''1.''' Hay '''dos posibilidades''' dependiendo si el trigger es para un solo host o es para varios, los cuales tienen en común un template:&lt;br /&gt;
&lt;br /&gt;
:# Si es para ''un host'': Ir a '''Configuración/Hosts'''&lt;br /&gt;
:# Si es para ''un template'': Ir a '''Configuración/Templates'''&lt;br /&gt;
&lt;br /&gt;
'''2.''' En la fila correspondiente al host/template al que queramos añadirle el trigger, pulsar sobre la '''columna triggers.'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''3.''' En la ventana de triggers, pulsar sobre el botón '''Create trigger''', situado en la esquina superior derecha.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''4.''' Aparecerá la ventana de creación de triggers, que tiene los siguientes campos:&lt;br /&gt;
:1. '''Name:''' Nombre del trigger, que deberá ser lo ''suficientemente descriptivo''. Aparecerá cuando se&lt;br /&gt;
active, en la ventana principal de Zabbix así como en los correos de aviso.&lt;br /&gt;
:2. '''Expression:''' Define la fórmula cuyo resultado activará el trigger. Hay que pulsar el botón '''Add'''. Se mostrará una &lt;br /&gt;
nueva ventana donde habrá que elegir el item (medida) sobre el que se basará el trigger (evidentemente la medida deberá &lt;br /&gt;
existir previamente) y la función necesaria para el cálculo. Para una descripción de las disponibles dirigirse a &lt;br /&gt;
https://www.zabbix.com/documentation/2.2/manual/appendix/triggers/functions.&amp;lt;br/&amp;gt;&lt;br /&gt;
Tras rellenar los campos anteriores y dar a la función los valores que necesite pulsar el botón '''Insert.'''&lt;br /&gt;
:3. '''Expression constructor:''' Permite crear expresiones complejas, uniendo varias.&lt;br /&gt;
:4. '''Description:''' Una explicación del trigger&lt;br /&gt;
:5. '''Severity:''' Criticidad el trigger&lt;br /&gt;
:6. Para una descripción del resto de campos visitar la página: https://www.zabbix.com/documentation/2.2/manual/config/triggers/trigger&lt;br /&gt;
'''5.''' Tras rellenar los campos, pulsar el botón '''Save'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''6.''' Si el trigger se ha añadido en un template, aparecerá en todos los hosts que tienen el template configurado.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''7.''' '''El trigger por si solo no envía ningún aviso''', solo se activa si se cumple la expresión definida.&lt;br /&gt;
Para enviar un aviso (normalmente un correo electrónico) cuando se active el trigger, será necesario definir una acción (Configuración/Actions).&lt;br /&gt;
&lt;br /&gt;
 '''NOTA.-''' Para consultar cualquier cuestión relativa a Zabbix, se encuentra a su disposición el manual: &amp;lt;br/&amp;gt;&lt;br /&gt;
 https://www.zabbix.com/documentation/2.2/manual&lt;br /&gt;
&lt;br /&gt;
== Como mostrar callername queues FOP2 ==&lt;br /&gt;
&lt;br /&gt;
Es necesario añadir el siguiente código al contexto de entrada:&lt;br /&gt;
&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Connect connid localhost usuario clave bd)&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Query resultid ${connid} SELECT\ firstname\,lastname\ from\ fop2\ where\ phone1=${CALLERID(num)}\ OR\ phone2=${CALLERID(num)})&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Fetch fetchid ${resultid} nombre apellidos)&lt;br /&gt;
 exten =&amp;gt; _X.,n,GotoIf($[${fetchid} = 1]?:noExiste)&lt;br /&gt;
 exten =&amp;gt; _X.,n,Set(CALLERID(name)=${nombre}${apellidos})&lt;br /&gt;
 exten =&amp;gt; _X.,n(noExiste),Continuar&lt;br /&gt;
&lt;br /&gt;
En la primera línea cambiar según lo necesario:&lt;br /&gt;
&lt;br /&gt;
*localhost: Dirección IP del servidor de MySQL donde está la BBDD de FOP2&lt;br /&gt;
*usuario: Usuario con permisos de acceso a la bbdd de FOP2&lt;br /&gt;
*clave: Clave del usuario&lt;br /&gt;
*bd: Nombre de la BBDD&lt;br /&gt;
&lt;br /&gt;
== Como ver los directorios de un NAS a montar con NFS ==&lt;br /&gt;
&lt;br /&gt;
Con el siguiente comando vemos los diferentes volúmenes de un NAS:&lt;br /&gt;
&lt;br /&gt;
 showmount -e IP_NAS&lt;br /&gt;
&lt;br /&gt;
Ejemplo de salida:&lt;br /&gt;
&lt;br /&gt;
 Export list for 192.168.10.10:&lt;br /&gt;
 /Backup/backup       *&lt;br /&gt;
 /DISCOS_1/VOL1_AUDIO *&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Instalación de ActivaSTP con VIVAit Call 3 y marcación desde Outlook ==&lt;br /&gt;
&lt;br /&gt;
Instalamos ActivaSTP desde:&lt;br /&gt;
 &lt;br /&gt;
 (http://activa.sourceforge.net/)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- *SIPTAPI, según la pagina Web, su ultima versión publicada es del 2014 con versión 0.2.17 (http://activa.sourceforge.net/)&lt;br /&gt;
&lt;br /&gt;
Hemos probado con http://www.xtelsio.com/en/products/ast_tsp/tapi_for_asterisk.htm.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La configuración necesaria se muestra en la siguiente imagen:&lt;br /&gt;
&lt;br /&gt;
[[File:Ventana ActivaTSP.jpg]]&lt;br /&gt;
&lt;br /&gt;
 El usuario del manager debe tener permisos originate para poder realizar llamadas.&lt;br /&gt;
&lt;br /&gt;
Se han realizado pruebas con Outlook 2013.&lt;br /&gt;
&lt;br /&gt;
Se ha comprobado la correcta realización de pruebas utilizando ActivaSTP, realizadon llamadas desde la pestaña &amp;quot;personas&amp;quot; con la vista en modo tarjeta de Pesentación, tarjeta, teléfono o lista.&lt;br /&gt;
&lt;br /&gt;
Outlook 2013 no da la opción de llamar si la vista está en modo personas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Como volver a procesar grabaciones con error ==&lt;br /&gt;
&lt;br /&gt;
Las grabaciones con error son aquellas que tienen el valor E_GRABACION=120 en la tabla DAT_GRABACIONES.&lt;br /&gt;
&lt;br /&gt;
Las grabaciones con error se produce normalmente a perdida de conexión entre el nodo servidor de grabaciones y el resto.&lt;br /&gt;
&lt;br /&gt;
Para reprocesar la grabación hay que modificar el campo E_GRABACION de la tabla DAT_GRABACIONES y ponerlo con valor 20 para que así el recordCentral la vuelva a procesar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== FOP2. Problemas en transferencias asistidas ==&lt;br /&gt;
&lt;br /&gt;
 Para habilitar la transferencia atendida del asterisk (funcion atxfer), hay que poner la opción tT en el queue() si la llamada origen la realiza a una cola o &lt;br /&gt;
 al dial() de las extensiones.&lt;br /&gt;
 Con eso vemos como al intentar hacer la llamada de consulta ya se va a nuestro dialplan. Sin embargo la llamada no funciona ya que el enrutador nos da error de&lt;br /&gt;
 enrutamiento porque no tenemos ID_DISPOSITIVO origen ya que el fop no es un elemento creado desde el portal.&lt;br /&gt;
 Por lo que se propone como solución crear un contexto de inicio del fop y asignarle un ID_DISPOSITIVO para que así se enrute la llamada. El contexto tienen que&lt;br /&gt;
 ser similar a ext_InicioLlamada_Chrome.conf&lt;br /&gt;
&lt;br /&gt;
Para que funcione las transferencias supervisadas desde el fop2 hay que realizar lo siguiente:&lt;br /&gt;
&lt;br /&gt;
*El usuario del manager debe tener permisos Atxfer para poder realizar transferencias.&lt;br /&gt;
*Habilitar la transferencia atxfer en el fuatures.conf del asterisk. atxfer =&amp;gt; *2&lt;br /&gt;
*Crear el fichero ext_InicioLlamada_FOP.conf con el siguiente contenido:&lt;br /&gt;
&lt;br /&gt;
 [Cen_Inicio_FOP]&lt;br /&gt;
 exten =&amp;gt; [*#%0-9].,1,NoOp(MDINICHR**EXTEN=${EXTEN}**CID=${CHROME_ANI}*)&lt;br /&gt;
 same =&amp;gt; n,dumpchan()&lt;br /&gt;
 ;same =&amp;gt; n,Set(CALLERID=${CHROME_ANI})&lt;br /&gt;
 same =&amp;gt; n,Gosub(Cen_Sub_getIdExtension,s,1(${R_CID_NUM_00}))&lt;br /&gt;
 same =&amp;gt; n,ExecIf($[&amp;quot;${GOSUB_RETVAL}&amp;quot;!=&amp;quot;OK&amp;quot; | &amp;quot;${sqlDato}&amp;quot;=&amp;quot;&amp;quot;]?HangUp)&lt;br /&gt;
 same =&amp;gt; n,Set(ID_DISPOSITIVO=${sqlDato})&lt;br /&gt;
 ; . Modificar MARCAR en funcion de reglas de marcacion saliente (prefijo 0, ...)&lt;br /&gt;
 ; Esto se modificara en el contexto Cen_Inicio_Chrome_Particular&lt;br /&gt;
 same =&amp;gt; n,Set(MARCAR=${EXTEN})&lt;br /&gt;
 ;---------------------------------&lt;br /&gt;
 ;--- Llamada a contexto particular&lt;br /&gt;
 ;---------------------------------&lt;br /&gt;
 ; Esta llamada es para hacer cosas especcificas del cliente (cambiar callerid...)&lt;br /&gt;
 ; La subrutina Cen_Inicio_Chrome_Particular esta en el archivo ext_InicioLlamada_Chrome_Particular.conf&lt;br /&gt;
 ; Si no existe el archivo copiar el archivo ext_InicioLlamada_Chrome_Particular.conf.ejemplo como ext_Inicio_Chrome_Particular.conf&lt;br /&gt;
 ; y realizar las modificaciones necesarias&lt;br /&gt;
 ; El fichero ext_InicioLlamada_Chrome_Particular.conf se carga automaticamente al ser creado con el include de ext_InicioLlamada.conf&lt;br /&gt;
 ; #include &amp;quot;ext_InicioLlamada*.conf&amp;quot;&lt;br /&gt;
 ;&lt;br /&gt;
 same =&amp;gt; n,GosubIf($[${DIALPLAN_EXISTS(Cen_Inicio_FOP_Particular,${EXTEN},1)}&amp;gt;0]?Cen_Inicio_FOP_Particular,${EXTEN},1)&lt;br /&gt;
 same =&amp;gt; n,Goto(Cen_Inicio_SIP,${MARCAR},1)&lt;br /&gt;
&lt;br /&gt;
*En el fichero /usr/local/fop2/buttons.cfg poner como contexto de las extensiones el creado anteriormente (Cen_Inicio_FOP)&lt;br /&gt;
*Modificar el fichero /usr/local/fop2/fop2.cfg:&lt;br /&gt;
&lt;br /&gt;
 blind_transfer = 0&lt;br /&gt;
 supervised_transfer = 1&lt;br /&gt;
&lt;br /&gt;
Para realizar la transferencia con consulta, hay que pulsar el supervised transfer del FOP2 y una vez se haya establecido la llamada, seleccionar la extensión que &amp;quot;sobra&amp;quot; en la conversación y pulsar la tecla de hangup y colgar la llamada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Problemas de conmutación en cluster ==&lt;br /&gt;
El problema detectado fue que en la conmutacion de maquinas en el cluster cuando el control lo tiene la maquina 2 no funciona el servicio phoneprov-tftp.&lt;br /&gt;
&lt;br /&gt;
Hay que hacer las siguientes comprobaciones:&lt;br /&gt;
&lt;br /&gt;
 Que el directorio /var/lib/phoneprov-tftp esté en la partición /HDcluster&lt;br /&gt;
 Que fichero /etc/MDtel/phoneprov-tftp esté puesta como IP de la máquina la IP flotante del cluster (campo $dbHost)&lt;br /&gt;
 Que el servicio phoneprov-tftp del directorio /usr/local/sbin/phoneprov-tftp.pl tenga permisos de ejecución 755&lt;br /&gt;
 Que exista el fichero /etc/init/phoneprov-tftp.conf&lt;br /&gt;
&lt;br /&gt;
Para más información ver los log del phoneprov en /var/log/phoneprov-tftp.log&lt;br /&gt;
&lt;br /&gt;
El problema era que no se encontraba instalado el paquete phoneprov-tftp, hay que instalarlo manualmente. Instalar el paquete libnet-tftpd-perl.--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manuales_de_instalaci%C3%B3n&amp;diff=5982</id>
		<title>Manuales de instalación</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manuales_de_instalaci%C3%B3n&amp;diff=5982"/>
		<updated>2017-07-03T10:25:50Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* Instalación VIVAit Call 3.1 y VIVAit Suite 3.5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!! VIVAit Call&lt;br /&gt;
&lt;br /&gt;
VIVAit Suite&lt;br /&gt;
&lt;br /&gt;
VIVAit Fax&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Instalación de VIVAit Suite 3.3 ==&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Instalación de plataforma VIVAit ==&lt;br /&gt;
=== Instalación VIVAit Call 3.0 y VIVAit Suite 3.4 ===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[medio:instalacion vivait.pdf|Manual de instalación de plataforma VIVAit]]&lt;br /&gt;
&lt;br /&gt;
[[medio:Instalacion VIVAit.pdf|Manual de instalación de plataforma VIVAit]]&lt;br /&gt;
&lt;br /&gt;
[[medio:Instalacion VIVAit.pdf|Manual de instalación de plataforma VIVAit]]&lt;br /&gt;
&lt;br /&gt;
El proceso de instalación de la plataforma es el incluido en el siguiente fichero adjunto&lt;br /&gt;
&amp;lt;big&amp;gt;'''[[medio:Instalacion VIVAit.pdf|Manual de instalación de plataforma VIVAit]]'''&amp;lt;/big&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- ENLACE VIEJO: &amp;lt;big&amp;gt;'''[[medio:Instalacion VIVAit.pdf |Manual de instalación de plataforma VIVAit]]'''&amp;lt;/big&amp;gt;&amp;lt;br /&amp;gt; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''[[Manual de instalación de plataforma VIVAit]]'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desde un punto de vista conceptual, el diagrama siguiente muestra los diferentes bloques de funciones de la instalación; el proceso de instalación guía al técnico a través de este esquema, pero se deberá tener claro de manera previa la ubicación de cada bloque dentro de los servidores que compongan el sistema&lt;br /&gt;
&lt;br /&gt;
[[Archivo: instalacion vivait.png|1400px|Diagrama de instalación de plataforma VIVAit]]&lt;br /&gt;
&lt;br /&gt;
Se puede encontrar un detalle de los diferentes procesos en [[Manual_de_operaci%C3%B3n_plataforma_VIVAit#Descripci.C3.B3n_de_los_elementos.2C_diagn.C3.B3sticos_y_operaciones|Descripción de los elementos, diagnósticos y operaciones]] del manual de operación&lt;br /&gt;
&lt;br /&gt;
=== Instalación de servicios externos ===&lt;br /&gt;
==== Instalación de Openfire ====&lt;br /&gt;
&amp;lt;!-- Enlace Anterior [[medio:Openfire_Jitsi.pdf|Manual Openfire]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Openfire''' es un sistema de mensajería instantánea GPL(Licencia Pública General), está hecho en java y utiliza el protocolo XMPP.&lt;br /&gt;
&lt;br /&gt;
Openfire implementa las siguientes características: &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Panel de administración web&amp;lt;br /&amp;gt;&lt;br /&gt;
* Interfaz para agregar plugins&amp;lt;br /&amp;gt;&lt;br /&gt;
* SSL/TLS&amp;lt;br /&amp;gt;&lt;br /&gt;
* Amigable&amp;lt;br /&amp;gt;&lt;br /&gt;
* Adaptable según las necesidades&amp;lt;br /&amp;gt;&lt;br /&gt;
* Conferencias&amp;lt;br /&amp;gt;&lt;br /&gt;
* Interacción con MSN, Google Talk, Yahoo messenger, AIM, ICQ&amp;lt;br /&amp;gt;&lt;br /&gt;
* Estadísticas del Servidor, mensajes, paquetes, etc.&amp;lt;br /&amp;gt;&lt;br /&gt;
* Cluster con multiples servidores&amp;lt;br /&amp;gt;&lt;br /&gt;
* Transferencia de Archivos&amp;lt;br /&amp;gt;&lt;br /&gt;
* Compresión de datos&amp;lt;br /&amp;gt;&lt;br /&gt;
* Tarjetas personales con Avatar&amp;lt;br /&amp;gt;&lt;br /&gt;
* Mensajes offline&amp;lt;br /&amp;gt;&lt;br /&gt;
* Favoritos&amp;lt;br /&amp;gt;&lt;br /&gt;
* Autenticación vía Certificados, Kerbeos, LDAP, PAM y Radius&amp;lt;br /&amp;gt;&lt;br /&gt;
* Almacenamiento   en   Active   Directory,   LDAP,   MS   SQL,   MySQL,  Oracle y PostgreSQL&amp;lt;br /&amp;gt;&lt;br /&gt;
* SASL: ANONYMOUS, DIGEST-MD5 y Plai&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puede encontrar toda la información sobre la instalación de ''Openfire'' en el siguiente enlace : [[Manual Openfire]]&lt;br /&gt;
&lt;br /&gt;
==== Instalación de Openmeetings ====&lt;br /&gt;
&amp;lt;!---&lt;br /&gt;
[[medio:openmeetings.pdf|Manual de instalación de Openmeetings]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''OpenMeetings''' está basado en software libre,  es un servicio de web para poder realizar conferencias tanto públicas como privadas, entrevistas virtuales, chat en línea, creación fácil de salas, usuarios, reuniones programadas, y otras cuantas características. &lt;br /&gt;
&lt;br /&gt;
Respecto a los requerimientos previos, debemos comentar lo siguiente:&lt;br /&gt;
* OpenMeetings, como la mayoría de los servicios, requieren de un equipo servidor que preste todas las funciones a los clientes que se conecten a el. Desde '''MD'''tel usamos una máquina con Ubuntu-Server 14.04.&lt;br /&gt;
*Tener los productos preinstalados siguientes: Java, OpenOffice, ImageMagick, GhostScript, SWFTools, FFMpeg, SoX y JODConverter.&lt;br /&gt;
*Se puede elegir entre OpenOffice y Libreoffice para funcionar.&lt;br /&gt;
*Si se desea utilizar otra base de datos a la proporcionada de por omisión (Apache Derby), es necesario en algunos casos instalar el driver de conexión entre Java y la BD en cuestión. Desde '''MD'''tel se utiliza '''MySql'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pulse el siguiente enlace para ir [[Manual de instalación de openmetings]].&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manuales_de_instalaci%C3%B3n  Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:VIVAit Suite]]&lt;br /&gt;
[[Category:VIVAit Fax]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Instalación VIVAit Call 3.1 y VIVAit Suite 3.5 ===&lt;br /&gt;
[[:medio:Instalacion VIVAit.pdf|Guía de Instalación VIVAit 3.1.]]&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manuales_de_instalaci%C3%B3n&amp;diff=5981</id>
		<title>Manuales de instalación</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manuales_de_instalaci%C3%B3n&amp;diff=5981"/>
		<updated>2017-07-03T10:25:21Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* Instalación VIVAit Call 3.1 y VIVAit Suite 3.5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!! VIVAit Call&lt;br /&gt;
&lt;br /&gt;
VIVAit Suite&lt;br /&gt;
&lt;br /&gt;
VIVAit Fax&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Instalación de VIVAit Suite 3.3 ==&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Instalación de plataforma VIVAit ==&lt;br /&gt;
=== Instalación VIVAit Call 3.0 y VIVAit Suite 3.4 ===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[medio:instalacion vivait.pdf|Manual de instalación de plataforma VIVAit]]&lt;br /&gt;
&lt;br /&gt;
[[medio:Instalacion VIVAit.pdf|Manual de instalación de plataforma VIVAit]]&lt;br /&gt;
&lt;br /&gt;
[[medio:Instalacion VIVAit.pdf|Manual de instalación de plataforma VIVAit]]&lt;br /&gt;
&lt;br /&gt;
El proceso de instalación de la plataforma es el incluido en el siguiente fichero adjunto&lt;br /&gt;
&amp;lt;big&amp;gt;'''[[medio:Instalacion VIVAit.pdf|Manual de instalación de plataforma VIVAit]]'''&amp;lt;/big&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- ENLACE VIEJO: &amp;lt;big&amp;gt;'''[[medio:Instalacion VIVAit.pdf |Manual de instalación de plataforma VIVAit]]'''&amp;lt;/big&amp;gt;&amp;lt;br /&amp;gt; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''[[Manual de instalación de plataforma VIVAit]]'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desde un punto de vista conceptual, el diagrama siguiente muestra los diferentes bloques de funciones de la instalación; el proceso de instalación guía al técnico a través de este esquema, pero se deberá tener claro de manera previa la ubicación de cada bloque dentro de los servidores que compongan el sistema&lt;br /&gt;
&lt;br /&gt;
[[Archivo: instalacion vivait.png|1400px|Diagrama de instalación de plataforma VIVAit]]&lt;br /&gt;
&lt;br /&gt;
Se puede encontrar un detalle de los diferentes procesos en [[Manual_de_operaci%C3%B3n_plataforma_VIVAit#Descripci.C3.B3n_de_los_elementos.2C_diagn.C3.B3sticos_y_operaciones|Descripción de los elementos, diagnósticos y operaciones]] del manual de operación&lt;br /&gt;
&lt;br /&gt;
=== Instalación de servicios externos ===&lt;br /&gt;
==== Instalación de Openfire ====&lt;br /&gt;
&amp;lt;!-- Enlace Anterior [[medio:Openfire_Jitsi.pdf|Manual Openfire]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Openfire''' es un sistema de mensajería instantánea GPL(Licencia Pública General), está hecho en java y utiliza el protocolo XMPP.&lt;br /&gt;
&lt;br /&gt;
Openfire implementa las siguientes características: &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Panel de administración web&amp;lt;br /&amp;gt;&lt;br /&gt;
* Interfaz para agregar plugins&amp;lt;br /&amp;gt;&lt;br /&gt;
* SSL/TLS&amp;lt;br /&amp;gt;&lt;br /&gt;
* Amigable&amp;lt;br /&amp;gt;&lt;br /&gt;
* Adaptable según las necesidades&amp;lt;br /&amp;gt;&lt;br /&gt;
* Conferencias&amp;lt;br /&amp;gt;&lt;br /&gt;
* Interacción con MSN, Google Talk, Yahoo messenger, AIM, ICQ&amp;lt;br /&amp;gt;&lt;br /&gt;
* Estadísticas del Servidor, mensajes, paquetes, etc.&amp;lt;br /&amp;gt;&lt;br /&gt;
* Cluster con multiples servidores&amp;lt;br /&amp;gt;&lt;br /&gt;
* Transferencia de Archivos&amp;lt;br /&amp;gt;&lt;br /&gt;
* Compresión de datos&amp;lt;br /&amp;gt;&lt;br /&gt;
* Tarjetas personales con Avatar&amp;lt;br /&amp;gt;&lt;br /&gt;
* Mensajes offline&amp;lt;br /&amp;gt;&lt;br /&gt;
* Favoritos&amp;lt;br /&amp;gt;&lt;br /&gt;
* Autenticación vía Certificados, Kerbeos, LDAP, PAM y Radius&amp;lt;br /&amp;gt;&lt;br /&gt;
* Almacenamiento   en   Active   Directory,   LDAP,   MS   SQL,   MySQL,  Oracle y PostgreSQL&amp;lt;br /&amp;gt;&lt;br /&gt;
* SASL: ANONYMOUS, DIGEST-MD5 y Plai&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puede encontrar toda la información sobre la instalación de ''Openfire'' en el siguiente enlace : [[Manual Openfire]]&lt;br /&gt;
&lt;br /&gt;
==== Instalación de Openmeetings ====&lt;br /&gt;
&amp;lt;!---&lt;br /&gt;
[[medio:openmeetings.pdf|Manual de instalación de Openmeetings]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''OpenMeetings''' está basado en software libre,  es un servicio de web para poder realizar conferencias tanto públicas como privadas, entrevistas virtuales, chat en línea, creación fácil de salas, usuarios, reuniones programadas, y otras cuantas características. &lt;br /&gt;
&lt;br /&gt;
Respecto a los requerimientos previos, debemos comentar lo siguiente:&lt;br /&gt;
* OpenMeetings, como la mayoría de los servicios, requieren de un equipo servidor que preste todas las funciones a los clientes que se conecten a el. Desde '''MD'''tel usamos una máquina con Ubuntu-Server 14.04.&lt;br /&gt;
*Tener los productos preinstalados siguientes: Java, OpenOffice, ImageMagick, GhostScript, SWFTools, FFMpeg, SoX y JODConverter.&lt;br /&gt;
*Se puede elegir entre OpenOffice y Libreoffice para funcionar.&lt;br /&gt;
*Si se desea utilizar otra base de datos a la proporcionada de por omisión (Apache Derby), es necesario en algunos casos instalar el driver de conexión entre Java y la BD en cuestión. Desde '''MD'''tel se utiliza '''MySql'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pulse el siguiente enlace para ir [[Manual de instalación de openmetings]].&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manuales_de_instalaci%C3%B3n  Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:VIVAit Suite]]&lt;br /&gt;
[[Category:VIVAit Fax]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Instalación VIVAit Call 3.1 y VIVAit Suite 3.5 ===&lt;br /&gt;
[[:medio:Instalacion VIVAit.pdf|Guía de Instalación VIVAit 3.1.]]&lt;br /&gt;
[[:medio:Instalacion VIVAit 3.1.pdf|Guía de Instalación VIVAit 3.1.]]&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Archivo:Instalacion_VIVAit.pdf&amp;diff=5980</id>
		<title>Archivo:Instalacion VIVAit.pdf</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Archivo:Instalacion_VIVAit.pdf&amp;diff=5980"/>
		<updated>2017-07-03T10:25:01Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: Imatarrubias subió una nueva versión de «Archivo:Instalacion VIVAit.pdf»: MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manuales_de_instalaci%C3%B3n&amp;diff=5979</id>
		<title>Manuales de instalación</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manuales_de_instalaci%C3%B3n&amp;diff=5979"/>
		<updated>2017-07-03T10:21:58Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* Instalación VIVAit Call 3.1 y VIVAit Suite 3.5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!! VIVAit Call&lt;br /&gt;
&lt;br /&gt;
VIVAit Suite&lt;br /&gt;
&lt;br /&gt;
VIVAit Fax&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Instalación de VIVAit Suite 3.3 ==&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Instalación de plataforma VIVAit ==&lt;br /&gt;
=== Instalación VIVAit Call 3.0 y VIVAit Suite 3.4 ===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[medio:instalacion vivait.pdf|Manual de instalación de plataforma VIVAit]]&lt;br /&gt;
&lt;br /&gt;
[[medio:Instalacion VIVAit.pdf|Manual de instalación de plataforma VIVAit]]&lt;br /&gt;
&lt;br /&gt;
[[medio:Instalacion VIVAit.pdf|Manual de instalación de plataforma VIVAit]]&lt;br /&gt;
&lt;br /&gt;
El proceso de instalación de la plataforma es el incluido en el siguiente fichero adjunto&lt;br /&gt;
&amp;lt;big&amp;gt;'''[[medio:Instalacion VIVAit.pdf|Manual de instalación de plataforma VIVAit]]'''&amp;lt;/big&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- ENLACE VIEJO: &amp;lt;big&amp;gt;'''[[medio:Instalacion VIVAit.pdf |Manual de instalación de plataforma VIVAit]]'''&amp;lt;/big&amp;gt;&amp;lt;br /&amp;gt; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''[[Manual de instalación de plataforma VIVAit]]'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Desde un punto de vista conceptual, el diagrama siguiente muestra los diferentes bloques de funciones de la instalación; el proceso de instalación guía al técnico a través de este esquema, pero se deberá tener claro de manera previa la ubicación de cada bloque dentro de los servidores que compongan el sistema&lt;br /&gt;
&lt;br /&gt;
[[Archivo: instalacion vivait.png|1400px|Diagrama de instalación de plataforma VIVAit]]&lt;br /&gt;
&lt;br /&gt;
Se puede encontrar un detalle de los diferentes procesos en [[Manual_de_operaci%C3%B3n_plataforma_VIVAit#Descripci.C3.B3n_de_los_elementos.2C_diagn.C3.B3sticos_y_operaciones|Descripción de los elementos, diagnósticos y operaciones]] del manual de operación&lt;br /&gt;
&lt;br /&gt;
=== Instalación de servicios externos ===&lt;br /&gt;
==== Instalación de Openfire ====&lt;br /&gt;
&amp;lt;!-- Enlace Anterior [[medio:Openfire_Jitsi.pdf|Manual Openfire]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Openfire''' es un sistema de mensajería instantánea GPL(Licencia Pública General), está hecho en java y utiliza el protocolo XMPP.&lt;br /&gt;
&lt;br /&gt;
Openfire implementa las siguientes características: &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Panel de administración web&amp;lt;br /&amp;gt;&lt;br /&gt;
* Interfaz para agregar plugins&amp;lt;br /&amp;gt;&lt;br /&gt;
* SSL/TLS&amp;lt;br /&amp;gt;&lt;br /&gt;
* Amigable&amp;lt;br /&amp;gt;&lt;br /&gt;
* Adaptable según las necesidades&amp;lt;br /&amp;gt;&lt;br /&gt;
* Conferencias&amp;lt;br /&amp;gt;&lt;br /&gt;
* Interacción con MSN, Google Talk, Yahoo messenger, AIM, ICQ&amp;lt;br /&amp;gt;&lt;br /&gt;
* Estadísticas del Servidor, mensajes, paquetes, etc.&amp;lt;br /&amp;gt;&lt;br /&gt;
* Cluster con multiples servidores&amp;lt;br /&amp;gt;&lt;br /&gt;
* Transferencia de Archivos&amp;lt;br /&amp;gt;&lt;br /&gt;
* Compresión de datos&amp;lt;br /&amp;gt;&lt;br /&gt;
* Tarjetas personales con Avatar&amp;lt;br /&amp;gt;&lt;br /&gt;
* Mensajes offline&amp;lt;br /&amp;gt;&lt;br /&gt;
* Favoritos&amp;lt;br /&amp;gt;&lt;br /&gt;
* Autenticación vía Certificados, Kerbeos, LDAP, PAM y Radius&amp;lt;br /&amp;gt;&lt;br /&gt;
* Almacenamiento   en   Active   Directory,   LDAP,   MS   SQL,   MySQL,  Oracle y PostgreSQL&amp;lt;br /&amp;gt;&lt;br /&gt;
* SASL: ANONYMOUS, DIGEST-MD5 y Plai&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puede encontrar toda la información sobre la instalación de ''Openfire'' en el siguiente enlace : [[Manual Openfire]]&lt;br /&gt;
&lt;br /&gt;
==== Instalación de Openmeetings ====&lt;br /&gt;
&amp;lt;!---&lt;br /&gt;
[[medio:openmeetings.pdf|Manual de instalación de Openmeetings]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''OpenMeetings''' está basado en software libre,  es un servicio de web para poder realizar conferencias tanto públicas como privadas, entrevistas virtuales, chat en línea, creación fácil de salas, usuarios, reuniones programadas, y otras cuantas características. &lt;br /&gt;
&lt;br /&gt;
Respecto a los requerimientos previos, debemos comentar lo siguiente:&lt;br /&gt;
* OpenMeetings, como la mayoría de los servicios, requieren de un equipo servidor que preste todas las funciones a los clientes que se conecten a el. Desde '''MD'''tel usamos una máquina con Ubuntu-Server 14.04.&lt;br /&gt;
*Tener los productos preinstalados siguientes: Java, OpenOffice, ImageMagick, GhostScript, SWFTools, FFMpeg, SoX y JODConverter.&lt;br /&gt;
*Se puede elegir entre OpenOffice y Libreoffice para funcionar.&lt;br /&gt;
*Si se desea utilizar otra base de datos a la proporcionada de por omisión (Apache Derby), es necesario en algunos casos instalar el driver de conexión entre Java y la BD en cuestión. Desde '''MD'''tel se utiliza '''MySql'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pulse el siguiente enlace para ir [[Manual de instalación de openmetings]].&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manuales_de_instalaci%C3%B3n  Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:VIVAit Suite]]&lt;br /&gt;
[[Category:VIVAit Fax]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Instalación VIVAit Call 3.1 y VIVAit Suite 3.5 ===&lt;br /&gt;
[[:medio:Instalacion VIVAit.pdf|Guía de Instalación VIVAit 3.1]]&lt;br /&gt;
[[:medio:Instalacion VIVAit 3.1.pdf|Guía de Instalación VIVAit 3.1.]]&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Archivo:Instalacion_VIVAit.pdf&amp;diff=5978</id>
		<title>Archivo:Instalacion VIVAit.pdf</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Archivo:Instalacion_VIVAit.pdf&amp;diff=5978"/>
		<updated>2017-07-03T10:21:29Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: Imatarrubias subió una nueva versión de «Archivo:Instalacion VIVAit.pdf»: MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_plataforma_VIVAit&amp;diff=5961</id>
		<title>Manual de operación plataforma VIVAit</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_plataforma_VIVAit&amp;diff=5961"/>
		<updated>2017-06-16T09:37:21Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* Versiones de módulos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!! '''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; ALFREDO: INSISTIR EN EXPLICAR CONCEPTOS&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
En este documento se describe la arquitectura general de la plataforma '''''VIVA'''''it, detallando aquellos procesos principales que componen cada uno de los elementos del sistema, y sus principales elementos de diagnóstico&lt;br /&gt;
Quedan fuera del ámbito de este documento:&lt;br /&gt;
* Uso de aplicación de agente ('''''VIVA'''''it Desk)&lt;br /&gt;
* Uso de aplicación de supervisor ('''''VIVA'''''it Supervisor), incluyendo sus módulos autónomos ('''''VIVA'''''it reporting, '''''VIVA'''''it Tracker)&lt;br /&gt;
* Uso de portal de administración&lt;br /&gt;
* Uso de portal de traceo de llamadas y agentes ('''''VIVA'''''it Tracker web)&lt;br /&gt;
* Uso de portal de monitorización zabbix&lt;br /&gt;
&lt;br /&gt;
== Arquitectura ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura plataforma VIVAit.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Descripción de los elementos, diagnósticos y operaciones ==&lt;br /&gt;
Las siguientes tablas definen los principales elementos software de la plataforma '''''VIVA'''''it, que son detallados en apartados siguientes:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de sistema operativo'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu Server LTS 64 bits || Uno por servidor|| ||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|| Actualmente (Oct-2015) 14.04&lt;br /&gt;
Bajo proyecto puede cambiarse&lt;br /&gt;
|-&lt;br /&gt;
| Almacenamiento de grabaciones|| Uno por sistema|| Almacenamiento de las grabaciones, ya sean de entorno corporativo o de contact center||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|| Típicamente un espacio grande de almacenamiento proporcionado por el cliente y que se monta como un sistema de archivos local en los servidores de la plataforma&lt;br /&gt;
Pueden existir sistemas secundarios de almacenamiento de grabaciones&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de conmutación de voz'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Asterisk 1.4.24 by MDtel||Uno por servidor ACD||Núcleo de conmutación de voz basado en Asterisk 1.4 y modificado por MDtel||'''''VIVA'''''it Suite||Fuertemente modificado por MDtel&lt;br /&gt;
En el futuro migrará a Asterisk 13 Certified&lt;br /&gt;
|-&lt;br /&gt;
|Dialplan ACD by MDtel||Uno por servidor ACD||Configuración de voz||'''''VIVA'''''it Suite||En el futuro se unificará con corporativa&lt;br /&gt;
|-&lt;br /&gt;
|Asterisk 13 Certified by MDtel||Uno por servidor corporativo/gateway||Núcleo de conmutación de voz basado en Asterisk 13 y modificado por MDtel||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Actualmente asterisk estándar (10/15)&lt;br /&gt;
La instalación contempla descargar de la red el más actualizado, siempre CERTIFIED&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Dialplan corporativo||Uno por servidor corporativo/gateway||Configuración de voz||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||En el futuro se unificará con ACD&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de base de datos'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|MySQL 5.5||Donde haya BBDD de cualquier tipo (incluso zabbix)||Motor de Base de Datos||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||A efectos prácticos va a ser en todos los servidores con casi total seguridad&lt;br /&gt;
|-&lt;br /&gt;
|BBDD tiempo real||Una por sistema||Base de Datos sobre la que trabaja todo el entorno de tiempo real||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|BBDD réplica||Una por sistema multinodo||Base de Datos para acceso a información de reporting…y similar||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de una&lt;br /&gt;
En el nodo en el que exista réplica existirá además copia (excepto nodo ACD)&lt;br /&gt;
|-&lt;br /&gt;
|BBDD copia||Uno por servidor corporativo/gateway||Copias de tablas de configuración para respaldo de la misma||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Local en cada nodo&lt;br /&gt;
Los nodos de ACD actualmente no trabajan con copia; en caso de fallo de BBDD TR se usa el modo emergencia&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de procesos ''VIVA''it'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Intz-Nimitz||Donde haya una BBDD de tiempo real o copia||Interfaz entre el dialplan y la base de datos||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||No donde haya BBDD de réplica&lt;br /&gt;
Sistemas grandes pueden contemplar mas de un intz-nimitz central&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|vivait-cti||Uno por servidor ACD||Interfaz entre '''''VIVA'''''it Desk, supervisor y el manager de asterisk||'''''VIVA'''''it Suite||&lt;br /&gt;
|-&lt;br /&gt;
|myAcdSuperv||Uno por servidor ACD||Recopilador de datos de asterisk y actualiza en la BBDD&lt;br /&gt;
Genera llamadas en el marcador&lt;br /&gt;
||'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|motorSal||Uno por sistema con ACD||Motor de marcador saliente automático||'''''VIVA'''''it Suite||Solo si hay marcación saliente&lt;br /&gt;
Junto a la BBDD de tiempo real&lt;br /&gt;
|-&lt;br /&gt;
|recordCentral||Uno por sistema||Servidor de grabaciones, se conectan los agentes a el||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Se arrancan varias instancias en función del número de nodos&lt;br /&gt;
Debe instalarse en un servidor que tenga el almacenamiento de grabaciones en su sistema de archivos&lt;br /&gt;
|-&lt;br /&gt;
|recordNodo||Uno por servidor corporativo/gateway||Agente de grabación||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|bdCentral||Uno, en el nodo con la BBDD de tiempo real||Genera la base de datos que se copiará para respaldo a otros nodos||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|bdNodo||En cada nodo con BBDD de copia||Recoge la base de datos del servidor central con el objeto de tener el respaldo||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|Actualizador||Uno por sistema con ACD||Se encarga de proporcionar las versiones actualizadas de las aplicaciones de puesto de trabajo||'''''VIVA'''''it Suite||En el mismo servidor que el portal de administración&lt;br /&gt;
|-&lt;br /&gt;
|phoneProv-tftp||Uno por sistema||Se encarga del aprovisionamiento masivo de terminales||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||En instalaciones grandes habrá más de uno, quizás uno por sede grande; depende de la infraestructura de DHCP&lt;br /&gt;
|-&lt;br /&gt;
|borraregistrosnimitz||||||||				&lt;br /&gt;
|-&lt;br /&gt;
|Mover grabaciones a nube||||||||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Administración'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Tomcat 7||Uno por servidor con portales||Servidor de aplicaciones JAVA||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|Portal de administración ||Uno por sistema||Portal de administración del sistema||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Portal usuario||Uno por sistema||Portal de usuario, para acceso a buzones, su configuración||'''''VIVA'''''it Call||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Tracker web||Uno por sistema||Portal de seguimiento de llamadas||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Debe instalarse en un servidor que tenga los ficheros de grabación montados en su sistema de archivos&lt;br /&gt;
Ligado a recordCentral&lt;br /&gt;
Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Monitor||Uno por sistema||Portal de monitores de pared de Call Center||'''''VIVA'''''it Suite||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Apache||Uno por servidor de calendarios||Servidor de portales WEB||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|Servidor de calendarios||Uno por sistema||Aloja calendarios para su uso en diferentes entornos de NIMITZ||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Monitorización'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Servidor zabbix||Uno por instalación||Monitorización técnica y de negocio||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de uno&lt;br /&gt;
Tipicamente irá o en BBDD replica o en nodo de gestión en instalaciones grandes&lt;br /&gt;
|-&lt;br /&gt;
|Templates zabbix||Uno por instalación||Adaptaciones específicas||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|Agente Zabbix||Uno por servidor||Agente de monitorización||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
||Scripts monitorización zabbix||Uno por servidor||Agente de monitorización||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Versiones de módulos===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Módulo  !! VSuite &lt;br /&gt;
V.3.10 &lt;br /&gt;
! VSuite &lt;br /&gt;
V.3.2.0 &lt;br /&gt;
! VSuite &lt;br /&gt;
V.3.3.0 &lt;br /&gt;
! VIVAit V.3.0.0&lt;br /&gt;
(VSuite 3.4+VCall3.0) &lt;br /&gt;
!  VIVAit V.3.1.0&lt;br /&gt;
(VSuite 3.5+VCall3.1)&lt;br /&gt;
|-&lt;br /&gt;
| Sistema Operativo || || || || &lt;br /&gt;
|| Ubuntu 14.0.4&lt;br /&gt;
Server 64 Kb&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk || 1.4 || 1.4 || 1.4 || 1.4 Nodo ACD&lt;br /&gt;
13 resto nodos&lt;br /&gt;
|| 1.4 Nodo ACD&lt;br /&gt;
13 resto nodos&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk ACD '''(VS)'''  ||  ||  || || 3.3.1 || 3.4.1 &lt;br /&gt;
|-&lt;br /&gt;
| Dialplan ACD '''(VS)''' || ||  ||  || || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk Corp '''(C)''' ||  ||  ||  || 3.3.4 || 3.4.4&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk Cisco '''(VC)''' ||  ||  ||  || 3.3.4 || 3.4.4&lt;br /&gt;
|-&lt;br /&gt;
| Dialplan Corp '''(C)''' || ||  ||  || 3.3.1 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Lazarus común '''(VS)''' || 3.1.0  || 3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| BD '''(C)''' || 3.2.0 || 3.4.0 || 3.5.0 || 3.6.0 || 3.8.0&lt;br /&gt;
|-&lt;br /&gt;
| Generaconf '''(C)''' || 3.0.0  || 3.0.0  || 3.2.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Instalador '''(C)''' || 3.1.0  || 3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Intz-nimitz '''(C)''' || 2.6.0  || 3.0.1 || 3.0.3 ||  3.4.1 || 3.4.2&lt;br /&gt;
|-&lt;br /&gt;
| recordgwd '''(C)'''  ||  1.3.0 ||  1.3.0 || 3.1.0 ||  ----- || -----&lt;br /&gt;
|-&lt;br /&gt;
| recordNodo '''(C)''' || ----- || ----- || ----- ||  4.0.0 || 4.0.0&lt;br /&gt;
|-&lt;br /&gt;
| recordprocesad '''(C)''' || 1.2.0 ||1.2.0|| 3.0.0 || ----- || -----&lt;br /&gt;
|-&lt;br /&gt;
| recordCentral '''(C)''' || ----- || ----- || -----||  4.0.0 || 4.0.1&lt;br /&gt;
|-&lt;br /&gt;
| MyACDSuperv '''(VS)''' || 5.2.0 || 5.3.0  ||  5.3.0  ||  5.3.2 || 5.3.2&lt;br /&gt;
|-&lt;br /&gt;
| Motorsal '''(VS)''' || 1.4.0 || 3.1.0  || 3.2.0 || 3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| Vivait-cti '''(VS)'''  || 3.0.0 ||  3.0.1  ||  3.0.1  ||  3.0.1 || 3.0.2&lt;br /&gt;
|-&lt;br /&gt;
| Multimonitorweb '''(VS)''' ||  3.0.1 ||  3.0.2  || 3.1.0  || 3.1.0 || 3.2.0&lt;br /&gt;
|-&lt;br /&gt;
| Portal de administración '''(C)''' || 3.1.0  || 3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Tracker Web '''(C)''' || 3.0.2  || 3.1.0 ||  3.2.0 ||  3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
|  VIVA supervisor '''(VS)''' || 3.0.0 ||  3.1.0  ||  3.2.0  ||  3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| Tracker windows '''(C)''' || 3.0.0  || 3.1.0  || 3.2.0 || 3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| VIVA report '''(VS)''' || 1.2.0  || 3.1.0  || 3.2.0  ||  3.2.2 || 3.3.0&lt;br /&gt;
|-&lt;br /&gt;
| VIVA desk '''(VS)''' || 3.0.2 ||  3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| VIVA designer '''(VS)''' || 1.0.23 || 3.0.1  || 3.1.0 ||  3.1.0 || 3.2.0&lt;br /&gt;
|-&lt;br /&gt;
|  Preview '''(VS)''' || 1.0.18 || 3.2.0  || 3.3.0 || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Phone_prov '''(C)''' || ------ || ------ || 3.0.1 || 3.0.3 || 3.0.3&lt;br /&gt;
|-&lt;br /&gt;
| Portal usuario '''(VC)''' || ------ || ------ || ------ || 3.0.0 || 3.1.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''(C)''': Módulo común&lt;br /&gt;
&lt;br /&gt;
'''(VC)''': Módulo de VIVAit Call&lt;br /&gt;
&lt;br /&gt;
'''(VS)''': Módulo de VIVAit Suite&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Sistema Operativo ===&lt;br /&gt;
Los sistemas operativos de nuestra plataforma se corresponden a las versiones de Ubuntu Server LTS , ya que son las versiones estables, con un soporte continuado y mas estables a actualizaciones desde la salida Ubuntu 14.04.1. En concreto el sistema operativo utilizado para la plataforma '''''VIVA'''''it es Ubuntu Server 14.04.4 LTS. Para más información https://help.ubuntu.com/lts/serverguide/index.html.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ubuntu Kernel Release Schedule.png|750px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Funcionamiento en cluster ====&lt;br /&gt;
&lt;br /&gt;
Un clúster es un grupo de múltiples ordenadores unidos mediante una red de alta velocidad, de tal forma que el conjunto es visto como un único ordenador.&lt;br /&gt;
&lt;br /&gt;
De un clúster se espera que presente combinaciones de los siguientes servicios:&lt;br /&gt;
&lt;br /&gt;
# Alto rendimiento &lt;br /&gt;
# Alta disponibilidad&lt;br /&gt;
# Balanceo de carga &lt;br /&gt;
# Escalabilidad &lt;br /&gt;
&lt;br /&gt;
Tal y como esta definido el cluster de MDtel, este comprueba conectividad con la otra máquina que lo forma y con un punto de confianza. Si la máquina no tiene conectividad con la otra y si con el punto de confianza es que el servidor está vivo, mientas que si no tengo conectividad ni con la otra máquina ni con el punto de confianza es que el muerto soy yo, por lo que balanceo.&lt;br /&gt;
&lt;br /&gt;
Por lo que las máquinas balancean en los casos siguientes:&lt;br /&gt;
&lt;br /&gt;
* Todo lo que tenga que ver con la red, es decir, caída de la tarjeta de red, apagado de la máquina, corte en la red..&lt;br /&gt;
&lt;br /&gt;
Y no balancea en los siguientes:&lt;br /&gt;
&lt;br /&gt;
* No balancea en los demás casos, es decir, todo lo que tenga que ver con procesos de una máquina (caída asterisk, base de datos, intz-nimitz)&lt;br /&gt;
&lt;br /&gt;
El funcionamiento en cluster se basa en:&lt;br /&gt;
&lt;br /&gt;
* Heartbeat: IP flotante entre las dos máquinas que componen el cluster; típicamente este &amp;quot;latido&amp;quot; entre máquinas se realizará mediante conexión directa con cable cruzado para asegurar que no existan problemas de comunicaciones tales como retardo, pérdida de paquetes, etc en este latido y pueda ser causa de un balanceo inadecuado.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|  '''Nota 17-11-2015:''' Se ha realizado en un cliente un cluster distribuido, con dos servidores en diferentes sedes, realizando el heartbeat mediante enlace Gigabit. Si bien la solución no está validada por desarrollo, se está observando el funcionamiento.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* DRBD que se encargar de mantener una serie de carpetas totalmente replicadas entre los dos nodos; dichas las carpetas son:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El cluster es &amp;lt;big&amp;gt;'''activo/pasivo'''&amp;lt;/big&amp;gt;; la máquina activa posee la IP flotante y tiene arrancados los servicios.&lt;br /&gt;
&lt;br /&gt;
==== Configuración del cluster ====&lt;br /&gt;
Para montar un cluster de asterisk partimos de la siguiente situación inicial:&lt;br /&gt;
* Dos maquinas con '''''VIVA'''''it Call 3.0 instalado.&lt;br /&gt;
* El driver bonding de Interfaces de Red en Ubuntu Server.&lt;br /&gt;
&lt;br /&gt;
Los pasos a seguir para la configuración en el Ubuntu Server son los siguientes:&lt;br /&gt;
* Instalar ifenslave: &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 aptitude install ifenslave.&lt;br /&gt;
|}&lt;br /&gt;
: Finalizada la instalación, comprobamos que la instalación de Bonding se ha configurado para empezar desde el arranque del sistema operativo desde el fichero '''/etc/modules''':&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| vi /etc/modules&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 # Parameters can be specified after the module name.&lt;br /&gt;
 lp&lt;br /&gt;
 rtc&lt;br /&gt;
 bonding&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Crear o editar el archivo llamado '''/etc/modprobe.d/bonding.conf''' y añadir la siguiente linea en negrita:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 echo &amp;quot;alias bond0 bonding&amp;quot;&amp;gt; /etc/modprobe.d/bonding.conf&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Editar el fichero /etc/network/interfaces y añadir lo que esta en negrita:&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
 # This file describes the network interfaces available on your system&lt;br /&gt;
 # and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 &lt;br /&gt;
 '''# Bonding'''&lt;br /&gt;
 &lt;br /&gt;
 '''#em1 ip manual y esclavo en el &amp;quot;bond0&amp;quot; NIC'''&lt;br /&gt;
 '''auto em1'''&lt;br /&gt;
 '''iface em1 inet manual'''&lt;br /&gt;
 '''bond-master bond0'''&lt;br /&gt;
 '''bond-primary em0''' &lt;br /&gt;
 &lt;br /&gt;
 '''#em2 ídem, creando así un vínculo de enlace 2.'''&lt;br /&gt;
 '''auto em2'''&lt;br /&gt;
 '''iface em2 inet manual'''&lt;br /&gt;
 '''bond-master bond0'''&lt;br /&gt;
 '''auto bond0'''&lt;br /&gt;
 '''iface bond0 inet static'''&lt;br /&gt;
         '''address 10.255.255.11'''&lt;br /&gt;
        '''netmask 255.255.255.0'''&lt;br /&gt;
        '''gateway 10.255.255.254'''&lt;br /&gt;
 '''bond-mode active-backup'''&lt;br /&gt;
 '''bond-miimon 100'''&lt;br /&gt;
 '''bond-slaves none'''&lt;br /&gt;
 &lt;br /&gt;
 '''# em3 replica entre servidores'''&lt;br /&gt;
 '''auto em3'''&lt;br /&gt;
 '''iface em3 inet static'''&lt;br /&gt;
         '''address 10.255.254.10'''&lt;br /&gt;
        '''netmask 255.255.255.0'''&lt;br /&gt;
 &lt;br /&gt;
 '''# em4 gestion'''&lt;br /&gt;
 '''auto em4'''&lt;br /&gt;
 '''iface em4 inet static'''&lt;br /&gt;
         '''address 172.17.47.255'''&lt;br /&gt;
         '''netmask 255.255.0.0'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Reiniciamos el sistema para que el kernel tome los cambios.&lt;br /&gt;
&lt;br /&gt;
* Comprobación que en las dos maquinas el archivo '''/etc/host''' contenga el los nombre de las dos maquinas a vincular. En el ejemplo el archivo en ambas maquinas es:&lt;br /&gt;
&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 127.0.0.1       localhost&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.11   vivaitcall-CL-UAH-1&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.12   vivaitcall-CL-UAH-2&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.10   vivaitcall-CL-UAH&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.10   BDTR&lt;br /&gt;
 &lt;br /&gt;
 10.255.254.10   vivaitcall-CL-UAH-1-em3&lt;br /&gt;
 &lt;br /&gt;
 10.255.254.11   vivaitcall-CL-UAH-2-em3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Creamos dos particiones iguales en ambos ordenadores , usando el comando '''parted'''.&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# '''parted /dev/sda'''&lt;br /&gt;
 GNU Parted 2.3&lt;br /&gt;
 Using /dev/sda&lt;br /&gt;
 Welcome to GNU Parted! Type 'help' to view a list of commands.&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Number  Start   End     Size    File system     Name  Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 &lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                 boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
        237GB   1000GB  763GB   Free Space&lt;br /&gt;
 &lt;br /&gt;
 (parted) mkpart primary 237GB 1000GB&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Number  Start   End     Size    File system     Name     Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                    boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
 5      237GB   1000GB  763GB                   primary  No File System como ext4&lt;br /&gt;
        1000GB  1000GB  204kB   Free Space&lt;br /&gt;
 (parted)quit&lt;br /&gt;
 mkfs.ext4 /dev/sda5&lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# '''parted /dev/sda'''&lt;br /&gt;
 GNU Parted 2.3&lt;br /&gt;
 Using /dev/sda&lt;br /&gt;
 Welcome to GNU Parted! Type 'help' to view a list of commands.&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Number  Start   End     Size    File system     Name     Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                    boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
 5      237GB   1000GB  763GB                   primary&lt;br /&gt;
        1000GB  1000GB  204kB   Free Space&lt;br /&gt;
 (parted) rm 5&lt;br /&gt;
 (parted) mkpart primary 237GB 1000GB&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 &lt;br /&gt;
 Number  Start   End     Size    File system     Name     Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                    boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
 5      237GB   1000GB  763GB   ext4            primary  Si File Sytem ext4&lt;br /&gt;
        1000GB  1000GB  204kB   Free Space&lt;br /&gt;
 (parted)quit&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Instalar los paquetes necesarios para el drbd. '''En Ubuntu server 14.04 ya está instalado.'''&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 aptitude install drbd8-utils  &lt;br /&gt;
 aptitude update (si no instala el drbd8-utils actualizar)&lt;br /&gt;
 aptitude install drbd8-utils  (volver a lanzar)&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
* Creamos el archivo '''/etc/drbd.conf''' en ambas maquinas:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 # You can find an example in  /usr/share/doc/drbd.../drbd.conf.example&lt;br /&gt;
 include &amp;quot;drbd.d/global_common.conf&amp;quot;;&lt;br /&gt;
 include &amp;quot;drbd.d/*.res&amp;quot;;&lt;br /&gt;
 resource MDcluster {&lt;br /&gt;
         protocol C;&lt;br /&gt;
         on vivaitcall-CL-UAH-1 {&lt;br /&gt;
               device /dev/drbd0;&lt;br /&gt;
               disk /dev/sda5;&lt;br /&gt;
               address 10.255.254.10:7788;&lt;br /&gt;
               meta-disk internal;&lt;br /&gt;
        }&lt;br /&gt;
        on vivaitcall-CL-UAH-2 {&lt;br /&gt;
               device /dev/drbd0;&lt;br /&gt;
               disk /dev/sda5;&lt;br /&gt;
               address 10.255.254.11:7788;&lt;br /&gt;
               meta-disk internal;&lt;br /&gt;
        }&lt;br /&gt;
        disk {&lt;br /&gt;
               on-io-error detach;&lt;br /&gt;
        }&lt;br /&gt;
        net {&lt;br /&gt;
               max-buffers 2048;&lt;br /&gt;
               ko-count 4;&lt;br /&gt;
        }&lt;br /&gt;
        syncer {&lt;br /&gt;
               rate 100M;&lt;br /&gt;
               al-extents 257;&lt;br /&gt;
        }&lt;br /&gt;
        startup {&lt;br /&gt;
                wfc-timeout 0;&lt;br /&gt;
                degr-wfc-timeout 120;&lt;br /&gt;
        }&lt;br /&gt;
 }&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Reiniciamos el sistema para que el kernel tome los cambios.&lt;br /&gt;
* Inicializamos el recurso, para ello primero deberemos crear los recursos DRBD teclearemos en ambas maquinas. Desde /etc.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
  drbdadm create-md MDcluster  (no y yes )&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Si tenemos algún problema porque ya exista sistema de ficheros.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 dd if=/dev/zero of=/dev/sda5 bs=1M count=128&lt;br /&gt;
 drbdadm create-md MDcluster  (no y yes )&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Reiniciamos ambas maquinas para que su kernel tome los cambios.&lt;br /&gt;
* Levantamos el servicio del DRBD en ambos servidores (nos preguntara que si queremos enviar los datos a los desarrolladores de drbd) tecleando no, no se envían.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 service drbd start&lt;br /&gt;
 /etc/init.d/drbd start&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Ahora &amp;lt;u&amp;gt;ambas maquinas son secundarias&amp;lt;/u&amp;gt;.&lt;br /&gt;
: Indicar cual de las dos maquinas usaremos como primaria, por tanto en la maquina elegida habra que ejecutar:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 drbdadm -- --overwrite-data-of-peer primary all (en una máquina)&lt;br /&gt;
:&amp;lt;small&amp;gt;'''Nota:''' La ip virtual que va a estar asignada a la maquina activa es  172.25.129.70.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Podemos teclear el comando '''''cat''''' para ver si esta sincronizando  y su progreso:&lt;br /&gt;
&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 cat /proc/drbd&lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' El servicio DRBD  aparecera como '''''Primary/Secondary'''''  si ejecutamos en el primario ; &lt;br /&gt;
 y aparecerá ''''Secondary/Primary'''' si lo ejecutamos en el secundario. &amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
* Instalación de los script de arranque:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 update-rc.d -f drbd remove (en las dos maquinas)&lt;br /&gt;
 update-rc.d drbd start 13 2 3 4 5 . stop 87 0 1 6 . (en las dos máquinas)&lt;br /&gt;
|}&lt;br /&gt;
* Seleccionar la fuente de sincronización.&lt;br /&gt;
:Formateamos un disco de la maquina que queramos que funcione como fuente del servicio DRBD, para evitar conflictos:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 mkfs.ext4  /dev/drbd0&lt;br /&gt;
|}&lt;br /&gt;
: Creamos el directorio sobre el que vamos a montar el disco, en ambas maquinas.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 mkdir  /HDcluster&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Creamos un archivo dentro '''''/HDcluster''''' de que se verá solo cuando el disco no está montado en ambas maquinas.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 touch sinMontar&lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' Este archivo nos puede servir para monitorizar mediante zabbix, nagios, ... que el disco no está montado.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:  En una de las maquinas montamos el disco (desde fuera del directorio HDcluster) &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 mount  /dev/drbd0 /HDcluster&lt;br /&gt;
|}&lt;br /&gt;
* Procedemos a mover todos los datos que necesitemos en este disco y a crear accesos directos, los directorios que vamos a mover son los siguientes:&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 /etc/asterisk&lt;br /&gt;
 /var/lib/asterisk&lt;br /&gt;
 /usr/lib/asterisk&lt;br /&gt;
 /usr/spool/asterisk&lt;br /&gt;
 /var/lib/mysql&lt;br /&gt;
 /var/tftp/&lt;br /&gt;
|}&lt;br /&gt;
: El procedimiento que vamos a seguir es el siguiente, en el primer ordenador:&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 '''Cd /HDcluster'''&lt;br /&gt;
 '''tar -zcvf etc-asterisk.tgz /etc/asterisk'''&lt;br /&gt;
 '''tar -zxvf  etc-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /etc/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/etc/asterisk /etc/asterisk'''&lt;br /&gt;
 '''tar -zcvf var-lib-asterisk.tgz /var/lib/asterisk'''&lt;br /&gt;
 '''tar -zxvf  var-lib-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /var/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/asterisk /var/lib/asterisk'''&lt;br /&gt;
 '''tar -zcvf usr-lib-asterisk.tgz /usr/lib/asterisk'''&lt;br /&gt;
 '''tar -zxvf  usr-lib-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /usr/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/usr/lib/asterisk /usr/lib/asterisk'''&lt;br /&gt;
 '''tar -zcvf var-spool-asterisk.tgz /var/spool/asterisk'''&lt;br /&gt;
 '''tar -zxvf  var-spool-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /var/spool/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/spool/asterisk /var/spool/asterisk'''&lt;br /&gt;
 '''tar -zcvf var-lib-mysql.tgz /var/lib/mysql'''&lt;br /&gt;
 '''tar -zxvf  var-lib-mysql.tgz'''&lt;br /&gt;
 '''rm -rf /var/lib/mysql'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/mysql /var/lib/mysql'''&lt;br /&gt;
 '''tar -zcvf var-lib-phoneprov-tftp.tgz /var/lib/phoneprov-tftp/'''&lt;br /&gt;
 '''tar -zxvf  var-lib-phoneprov-tftp.tgz'''&lt;br /&gt;
 '''rm -rf /var/lib/phoneprov-tftp/'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/phoneprov-tftp /var/lib/phoneprov-tftp'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: En la segunda maquina debemos borrar los directorios y crear los accesos directos.&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''rm -rf /etc/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/etc/asterisk /etc/asterisk'''&lt;br /&gt;
 '''rm -rf /var/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/asterisk /var/lib/asterisk'''&lt;br /&gt;
 '''rm -rf /usr/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/usr/lib/asterisk /usr/lib/asterisk'''&lt;br /&gt;
 '''rm -rf /var/spool/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/spool/asterisk /var/spool/asterisk'''&lt;br /&gt;
 '''rm -rf /var/lib/mysql'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/mysql /var/lib/mysql'''&lt;br /&gt;
 '''rm -rf /var/lib/phoneprov-tftp'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/phoneprov-tftp /var/lib/phoneprov-tftp'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Configurar heartbeat para las dos maquinas.&lt;br /&gt;
: Instalamos heartbeat en las dos maquinas. '''En UBUNTU Server 14.04 ya está instalado.'''&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 aptitude install heartbeat&lt;br /&gt;
|}&lt;br /&gt;
: Debemos modificar 3 ficheros en cada una de las maquinas, estos se encuentran en '''/etc/ha.d'''. El primer fichero a modificar es '''''ha.cf.''''':&lt;br /&gt;
:: En la maquina ''vivaitcall-CL-UAH-1'' es: &lt;br /&gt;
::{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# cat /etc/ha.d/ha.cf&lt;br /&gt;
 '''# Explicacion en /usr/share/doc/heartbeat/ha.cf.gz'''&lt;br /&gt;
 &lt;br /&gt;
 '''udpport 694'''&lt;br /&gt;
 '''baud 19200'''&lt;br /&gt;
 '''auto_failback off'''&lt;br /&gt;
 '''use_logd yes'''&lt;br /&gt;
 '''crm no'''&lt;br /&gt;
 &lt;br /&gt;
 '''# Temporizaciones en segs'''&lt;br /&gt;
 '''logfacility local0'''&lt;br /&gt;
 '''keepalive 2'''&lt;br /&gt;
 '''deadtime 8'''&lt;br /&gt;
 '''warntime 16'''&lt;br /&gt;
 '''initdead 64'''&lt;br /&gt;
 '''deadping 6'''&lt;br /&gt;
 &lt;br /&gt;
 '''#ucast bond0 vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''ucast bond0 vivaitcall-CL-UAH-2'''&lt;br /&gt;
 &lt;br /&gt;
 '''#ucast em3 vivaitcall-CL-UAH-1-em3'''&lt;br /&gt;
 '''ucast em3 vivaitcall-CL-UAH-2-em3'''&lt;br /&gt;
 &lt;br /&gt;
 '''#Ping a puerta de enlace,gw1,gw2,gw3,gw4'''&lt;br /&gt;
 '''ping_group red_local 10.255.255.12'''&lt;br /&gt;
 &lt;br /&gt;
 '''respawn hacluster /usr/lib/heartbeat/ipfail'''&lt;br /&gt;
 '''apiauth ipfail gid=haclient uid=hacluster'''&lt;br /&gt;
 &lt;br /&gt;
 '''node vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''node vivaitcall-CL-UAH-2'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:: Y en la maquina ''vivaitcall-CL-palacio-2'' es:&lt;br /&gt;
::{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# cat /etc/ha.d/ha.cf&lt;br /&gt;
 '''# Explicacion en /usr/share/doc/heartbeat/ha.cf.gz'''&lt;br /&gt;
 &lt;br /&gt;
 '''udpport 694'''&lt;br /&gt;
 '''baud 19200'''&lt;br /&gt;
 '''auto_failback off'''&lt;br /&gt;
 '''use_logd yes'''&lt;br /&gt;
 '''crm no'''&lt;br /&gt;
 &lt;br /&gt;
 '''# Temporizaciones en segs'''&lt;br /&gt;
 '''logfacility local0'''&lt;br /&gt;
 '''keepalive 2'''&lt;br /&gt;
 '''deadtime 8'''&lt;br /&gt;
 '''warntime 16'''&lt;br /&gt;
 '''initdead 64'''&lt;br /&gt;
 '''deadping 6'''&lt;br /&gt;
 &lt;br /&gt;
 '''ucast bond0 vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''#ucast bond0 vivaitcall-CL-UAH-2'''&lt;br /&gt;
 &lt;br /&gt;
 '''ucast em3 vivaitcall-CL-UAH-1-em3'''&lt;br /&gt;
 '''#ucast em3 vivaitcall-CL-UAH-2-em3'''&lt;br /&gt;
 &lt;br /&gt;
 '''#Ping a puerta de enlace gw1 gw2 gw3 gw4'''&lt;br /&gt;
 '''ping_group red_local 10.255.255.12'''&lt;br /&gt;
 &lt;br /&gt;
 '''respawn hacluster /usr/lib/heartbeat/ipfail'''&lt;br /&gt;
 '''apiauth ipfail gid=haclient uid=hacluster'''&lt;br /&gt;
 &lt;br /&gt;
 '''node vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''node vivaitcall-CL-UAH-2'''&lt;br /&gt;
|}&lt;br /&gt;
::'''Nota:''' El parámetro '''auto_failback''' se utiliza para indicar si queremos que al recuperarse una maquina adquiera los recursos sobre los que tiene prioridad.&lt;br /&gt;
:El segundo fichero es '''''authkeys''''',, este fichero es el mismo en ambas maquinas: &lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 chmod 600 authkeys '''(importante)'''&lt;br /&gt;
 auth 1&lt;br /&gt;
 1 sha1 claveSecretaATope&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:El tercer fichero '''haresources''', donde especificaremos en las dos maquinas que deben apuntar a la maquina que queremos que tenga prioridad en la adquisición de los recursos, este fichero es el mismo en las dos maquinas: &lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 MÁQUINA 1 -&amp;gt; vivaitcall-CL-palacio-1 hb_mdtel&lt;br /&gt;
 MÁQUINA 2-&amp;gt; vivaitcall-CL-palacio-1 hb_mdtel &lt;br /&gt;
|}&lt;br /&gt;
: Copiaremos en el directorio '''/etc/ha.d/resource.d/''' los scripts de arranque con permisos 755 (lo podemos hacer mediante WINSCP). Los scripts se encuentran en '''''C:\Documents and Settings\javier.gutierrez.MDTEL\Mis documentos\Centrales\Asterisk\Cluster\scripts'''''.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 chmod 755 hb_catalina&lt;br /&gt;
 chmod 755 hb_mdtel&lt;br /&gt;
 chmod 755 hb_mdtel_firewall&lt;br /&gt;
|}&lt;br /&gt;
: Deberemos editar  el archivo '''hb_mdtel'''&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 (IP flotante a.b.c.d./mask) 10.255.255.10&lt;br /&gt;
 CAD_IP_FLOTA=10.255.255.10/24/bond0&lt;br /&gt;
|}&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* Paramos el proceso '''myAcdSuperv'''.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 mv /etc/rc2.d/S02myAcdSuperv s02myAcdSuperv&lt;br /&gt;
|}&lt;br /&gt;
* Reiniciamos ambas maquinas para que su kernel tome los cambios.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de buen funcionamiento del cluster ====&lt;br /&gt;
* La maquina activa tiene que tener en HDcluster montado el disco con todos sus directorios y la maquina inactiva no (tenemos que ver el archivo que hemos creado &amp;quot;sinMontar&amp;quot;). &lt;br /&gt;
* La ip virtual tiene que estar en la maquina activa (ifconfig)  y no tiene que estar en la inactiva. &lt;br /&gt;
* El asterisk tiene que estar arrancado en la maquina activa y parado en la inactiva. &lt;br /&gt;
* Tecleando la ip de la maquina activa en un navegador debemos acceder al portal de vivait-call y en la inactiva no debe de estar activo. &lt;br /&gt;
* Para cambiar el cluster manualmente podemos utilizar los siguientes comandos:&lt;br /&gt;
:{|&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
  /usr/share/heartbeat/hb_takeover&lt;br /&gt;
|}&lt;br /&gt;
: La maquina desde la que se ejecuta se convierte en la maquina activa&lt;br /&gt;
:{|&lt;br /&gt;
 |- &lt;br /&gt;
 |&lt;br /&gt;
  /usr/share/heartbeat/hb_standby&lt;br /&gt;
 |}&lt;br /&gt;
: La maquina desde la que se ejecuta deja de ser la maquina activa&lt;br /&gt;
&lt;br /&gt;
==== Notas para MySQL ====&lt;br /&gt;
Si mysql es parte del cluster tenemos que tener en cuenta dos cosas:&lt;br /&gt;
&lt;br /&gt;
* El archivo '''/etc/mysql/debían.cnf''' contiene una clave que debe ser igual en ambas maquinas y debe ser la clave de la máquina de donde cojamos la base de datos.&amp;lt;br&amp;gt;&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 # Automatically generated for Debian scripts. DO NOT TOUCH!&lt;br /&gt;
 [client]&lt;br /&gt;
 host     = localhost&lt;br /&gt;
 user     = debian-sys-maint&lt;br /&gt;
 password = AI6AdPtnhLUrNm1S&lt;br /&gt;
 socket   = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysql_upgrade]&lt;br /&gt;
 user     = debian-sys-maint&lt;br /&gt;
 password = AI6AdPtnhLUrNm1S&lt;br /&gt;
 socket   = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 basedir  = /usr&lt;br /&gt;
|} &amp;lt;br&amp;gt;&lt;br /&gt;
* El archivo '''/etc/apparmor.d/usr.sbin.mysqld''' contiene donde pueden estar ubicados los archivos de mysql, al cambiar su ubicación y poner un enlace directo en /var/lib/mysql si no modificamos este archivo mysql no arrancara al no tener la nueva ubicación entre sus localizaciones permitidas. Este es un ejemplo de las líneas que debemos añadir. &amp;lt;br&amp;gt;&lt;br /&gt;
:{|&lt;br /&gt;
|-  &lt;br /&gt;
|&lt;br /&gt;
 /var/run/mysqld/mysqld.sock w, (copiar después de esta linea)&lt;br /&gt;
 &lt;br /&gt;
 #//!!&lt;br /&gt;
   /HDcluster/var/lib/mysql/ r,&lt;br /&gt;
   /HDcluster/var/lib/mysql/** rwk,&lt;br /&gt;
   #//!!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Notas de desincronización ====&lt;br /&gt;
EL servicio del DRBD esta iniciado pero al teclear el comando cat /proc/drbd para ver si esta sincronizando se presenta &amp;quot;'''primary/unknown&amp;quot; y/o secondary/unknown''' &amp;quot;.&lt;br /&gt;
* En el nodo primary  &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 drbdadm connect all &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* En el nodo secondary  &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 drbdadm disconnect all  &lt;br /&gt;
 drbdadm -- --discard-my-data connect all&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Adaptar red a cliente ====&lt;br /&gt;
Para adaptar la red de los equipos al entorno del cliente hay que editar los siguientes ficheros:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 /etc/network/interfaces&lt;br /&gt;
 /etc/resolv.conf&lt;br /&gt;
 /etc/hosts&lt;br /&gt;
 /etc/ha.d/resource.d/hb_mdtel&lt;br /&gt;
 /etc/ha.d/ha.cf &lt;br /&gt;
 - TFTP: &lt;br /&gt;
 /etc/inetd.conf (IP del cluster)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
Tras la modificaciones oportunas, se debe reiniciar las dos máquinas para cargar las nuevas configuraciones.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Matriz de conmutación ===&lt;br /&gt;
&lt;br /&gt;
Encontramos dos diferentes núcleos de conmutación en la plataforma VIVAit:&lt;br /&gt;
&lt;br /&gt;
* Para los nodos de procesamiento ACD el núcleo de conmutación es asterisk 1.4 RSP con fuertes modificaciones realizadas por MDtel en determinados módulos (queues, chan_spy entre otros)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Para los nodos que realizan funcionalidad de gateway y/o procesamiento de telefonía corporativa, se utiliza como núcleo de conmutación asterisk 13, versión certified&lt;br /&gt;
https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Documentation&lt;br /&gt;
&lt;br /&gt;
==== Modificaciones realizadas sobre Asterisk 13 certified 2 ====&lt;br /&gt;
&lt;br /&gt;
===== Archivos añadidos por '''MD'''tel =====&lt;br /&gt;
Los archivos añadidos son los siguientes:&lt;br /&gt;
&lt;br /&gt;
* '''apps/app_ucid.c'''&lt;br /&gt;
* '''apps/app_cli.c'''&lt;br /&gt;
* '''apps/app_crash.c'''&lt;br /&gt;
* '''apps/app_mdintz.c'''&lt;br /&gt;
* '''apps/app_mdintz.exports.in'''&lt;br /&gt;
* '''include/asterisk/mdintz.h'''&lt;br /&gt;
* '''include/asterisk/ucid.h'''&lt;br /&gt;
* '''res/res_mdcal.c'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ apps/app_mdintz.exports.in '''&lt;br /&gt;
&lt;br /&gt;
Este archivo sirve para la exportación de funciones del mdintz para el uso por aplicaciones externas&lt;br /&gt;
&lt;br /&gt;
===== Modificaciones de archivos =====&lt;br /&gt;
&lt;br /&gt;
Los archivos modificados por '''MD'''tel son los mostrados a continuación:&lt;br /&gt;
&lt;br /&gt;
* '''apps/app_mixmonitor.c''' &lt;br /&gt;
* '''res/res_calendar_caldav.c'''&lt;br /&gt;
* '''contrib/scripts/safe_asterisk'''&lt;br /&gt;
* '''contrib/init.d/rc.debian.asterisk'''&lt;br /&gt;
* '''channels/sig_pri.c'''&lt;br /&gt;
* '''channels/chan_sip.c'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ main/audiohook.c''' &amp;lt;!--style=&amp;quot;color:#0000ff&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''audiohook.c''' ha sido modificado para solucionar un crash de asterisk al utilizar en el mixmonitor las opciónes r y t &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ app_crash.c '''&lt;br /&gt;
&lt;br /&gt;
Esta nueva aplicación es sólo compatible con '''Asterisk 13'''. &lt;br /&gt;
&lt;br /&gt;
La documentación de la misma se encuentra en el comando: '''&amp;quot;core show application Crash&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
Esta nueva aplicación ''permite añadir'' al plan de pruebas:&lt;br /&gt;
&lt;br /&gt;
* Generación de una parada de asterisk.&lt;br /&gt;
* Verificación de su impacto. Por ejemplo, no deben cortarse las llamadas en curso, si así está previsto por la topología.&lt;br /&gt;
* Correcta generación de los &amp;quot;core&amp;quot;, comprobando que funciona &amp;quot;backtrace&amp;quot; (bt).&lt;br /&gt;
&lt;br /&gt;
 '''Nota.-''' Esta aplicación no debería estar presente en una instalación de '''Asterisk 13'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ app_mdintz.c y mdintz.h''' &amp;lt;!--style=&amp;quot;color:#0000ff&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esta aplicación sirve como interfaz a entornos (funcionalidades) creados por MDtel&lt;br /&gt;
&lt;br /&gt;
Para mas información consultar la página de [[MDintz|MDintz]].&lt;br /&gt;
&lt;br /&gt;
Las rutas de estos archivos son las siguientes:&lt;br /&gt;
&lt;br /&gt;
'''apps/app_mdintz.c''' &amp;lt;br/&amp;gt;&lt;br /&gt;
'''include/asterisk/mdintz.h '''&lt;br /&gt;
&lt;br /&gt;
 '''app_mdintz.c''' :&lt;br /&gt;
&lt;br /&gt;
'''app_mdintz.c''' orientada al proceso de enrutamiento a implementar en ''intz-nimitz.''&lt;br /&gt;
&lt;br /&gt;
El archivo '''.c''' es casi igual para asterisk 1.4.24 y asterisk 13. &lt;br /&gt;
 '''Nota.-''' Cuando se compila para asterisk 13, es necesario comentar la línea que pone&amp;lt;br /&amp;gt; '''&amp;quot;#define ASTERISK_OLD&amp;quot;.'''&lt;br /&gt;
&lt;br /&gt;
Los cambios implementados son:&lt;br /&gt;
&lt;br /&gt;
* Unificación de código entre las versiones de asterisk&lt;br /&gt;
* Nuevo comando &amp;quot;qry&amp;quot;&lt;br /&gt;
* Posible resolución de &amp;quot;Mal write&amp;quot; en intz-nimitz (a verificar)&lt;br /&gt;
&lt;br /&gt;
En cuanto al nuevo comando, el formato es:&lt;br /&gt;
&lt;br /&gt;
 '''mdintz qry &amp;lt;nHostFijo&amp;gt; &amp;lt;entorno&amp;gt; &amp;lt;servicio&amp;gt; &amp;lt;par1&amp;gt;...&amp;lt;parN&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Permite interrogar a un servidor de igual modo que hace el dialplan con '''fines de diagnóstico'''. La única diferencia es que se ha añadido el parámetro '''&amp;quot;nHostFijo&amp;quot;''' que puede tomar como valor '''&amp;quot;*&amp;quot;''' (lo que solicita una interrogación secuencial a todos los servidores definidos, igual a la funcionalidad del dialplan) ó '''&amp;quot;0&amp;quot;''' a '''&amp;quot;3&amp;quot;''' (que solicita un interrogación dirigida el host indicado como hostN, y sólo a él, en archivo de configuración).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para instalarlo, es necesario copiar:&lt;br /&gt;
&lt;br /&gt;
* '''asterisk/apps/app_mdintz.c'''&lt;br /&gt;
* '''asterisk/include/asterisk/mdintz.h'''&lt;br /&gt;
* En asterisk 1.4.24 conviene asegurar que se ha actualizado '''&amp;quot;asterisk/apps/app_queue.o&amp;quot;''' y '''&amp;quot;asterisk/apps/app_queue.so&amp;quot;'''&lt;br /&gt;
* Luego '''&amp;quot;make&amp;quot;, &amp;quot;make install&amp;quot;''' y module '''&amp;quot;unload/load&amp;quot;''' (mejor &amp;quot;stop now&amp;quot; y start)&lt;br /&gt;
&lt;br /&gt;
'''→ scripts y rc.debian.asterisk'''&lt;br /&gt;
&lt;br /&gt;
cambiado contrib/scripts por el modificado por MDtel&amp;lt;br /&amp;gt;&lt;br /&gt;
cambiado contrib/init.d/rc.debian.asterisk por el modificado por MDtel &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ Carpeta mp3 añadida al directorio addons'''&lt;br /&gt;
&lt;br /&gt;
La carpeta mp3 en addons permite la reproducción desde el diaplan de los mensajes en mp3. En make menuselect hay que marcar el format_mp3 y app_mp3 e instalar el paquete mpg123 de ubuntu &lt;br /&gt;
&lt;br /&gt;
'''→ sig_pri.c'''&lt;br /&gt;
&lt;br /&gt;
Modificado para enviar/recibir el ucid en un primario qsig &lt;br /&gt;
&lt;br /&gt;
Para que se envie el ucis tenemos que habilitar el envio de facilidades en el chan_dahdi.conf&lt;br /&gt;
&lt;br /&gt;
facilityenable = yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ init.d''' &amp;lt;!--style=&amp;quot;color:#0000ff&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Uno de los archivos modificados ha sido '''init.d''', se encuentra en la ruta: '''/etc/init.d/asterisk'''. La modificación realizada es la siguiente:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;background-color:#ffffcc;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| SAFE_ASTEISK=/usr/sbin/safe_asterisk &amp;lt;br/&amp;gt;&lt;br /&gt;
if [ -x $SAFE_ASTERISK ] ; then&amp;lt;br/&amp;gt;&lt;br /&gt;
:# //!! wkw&amp;lt;br/&amp;gt;&lt;br /&gt;
:DAEMON=$SAFE_ASTERISK&amp;lt;br/&amp;gt;&lt;br /&gt;
fi&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--archivo--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''→ safe-asterisk'''&lt;br /&gt;
* Se encuentra en la siguiente ruta:'''/usr/sbin/safe-asterisk''' .En este archivo se ha modificado MAXFILES=32768&lt;br /&gt;
&lt;br /&gt;
'''→ default'''&lt;br /&gt;
&lt;br /&gt;
* Este fichero podemos encontrarlo en: '''/etc/default/asterisk'''. La finalidad de la modificación de este fichero es poder correr como usuario Asterisk, grupo asterisk y generar cores (descomentar línea)&lt;br /&gt;
Las modificaciones realizadas han sido:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;background-color:#ffffcc;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| AST_USER=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
AST_GROUP=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
COREDUMP=yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Nueva función de asterisk: app_cli.so =====&lt;br /&gt;
&lt;br /&gt;
Esta función permite ejecutar desde el '''dialplan''' un comando de línea de consola de '''asterisk (CLI).''' Su primer uso (y esperamos que no último) será para lanzar los '''notify''' que los teléfonos necesitan para el ''reaprovisionamiento'' desde el portal o desde la facilidad de movilidad de usuario.&lt;br /&gt;
&lt;br /&gt;
Básicamente ejecuta un comando y devuelve su salida. Utiliza un archivo intermedio que puede ser:&lt;br /&gt;
&lt;br /&gt;
* '''/dev/null''' si el campo se deja vacío, por tanto, no se puede recuperar la salida.&lt;br /&gt;
* '''TEMP''', en cuyo caso se crea un archivo temporal que se borra antes de finalizar la ejecución de la función.&lt;br /&gt;
* Un nombre de fichero que es responsabilidad del dialplan el borrarlo cuando proceda.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para instalarlo basta copiar '''apps/app_cli.c''' en el directorio ''' &amp;quot;apps&amp;quot; ''' de los fuentes y luego  ejecutar '''&amp;quot;make&amp;quot; y &amp;quot;make install&amp;quot;.'''&lt;br /&gt;
&lt;br /&gt;
A continuación se pasa el resultado de '''&amp;quot;core show function CLI&amp;quot; '''&lt;br /&gt;
&lt;br /&gt;
'''[Synopsis]'''&lt;br /&gt;
&lt;br /&gt;
 Lanza un comando CLI desde dialplan&lt;br /&gt;
&lt;br /&gt;
'''[Description]''' &amp;lt;br /&amp;gt;&lt;br /&gt;
 - CLI(nomArchSal,cmd)&amp;lt;br /&amp;gt;&lt;br /&gt;
 - Si 'nomArchSal' está vacio, se usa '/dev/null' y no se recupera resultado&amp;lt;br /&amp;gt;&lt;br /&gt;
 - Si 'nomArchSal'=TEMP, Se crea un archivo temporal que se borra al final&amp;lt;br /&amp;gt;&lt;br /&gt;
 - En otro caso, se crea el archivo y no se borra&lt;br /&gt;
&lt;br /&gt;
'''[Syntax]'''&amp;lt;br /&amp;gt;&lt;br /&gt;
 CLI(nomArchSal,cmd)&lt;br /&gt;
&lt;br /&gt;
'''[Arguments]'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''nomArchSal'''&lt;br /&gt;
    Archivo de salida (si se omite, /dev/null)&lt;br /&gt;
'''cmd'''&lt;br /&gt;
    Comando a ejecutar via CLI&lt;br /&gt;
&lt;br /&gt;
==== Dialplan  ====&lt;br /&gt;
&lt;br /&gt;
El Dialplan podría considerarse la columna vertebral del sistema ''Asterisk''.&lt;br /&gt;
&lt;br /&gt;
Es una colección ordenada de acciones que se llevan a cabo cuando un usuario marca una serie de números. Hace la función de una tabla de enrutamiento de llamadas.&lt;br /&gt;
&lt;br /&gt;
Todas las configuraciones generales de Asterisk están accesibles en la ruta '''/etc/asterisk'''&lt;br /&gt;
&lt;br /&gt;
'''CONCEPTOS BÁSICOS'''&lt;br /&gt;
&lt;br /&gt;
♦ '''EXTENSIONES'''&lt;br /&gt;
&lt;br /&gt;
Una extensión es una marcación en el teclado de un teléfono. Dicha configuración podemos encontrarla en el archivo '''extensions.conf''' &lt;br /&gt;
&lt;br /&gt;
Por ejemplo, un usuario podría marcar “3001” en su teléfono, y eso sería una extensión. También podría marcar un número de teléfono nacional, como por ejemplo “915881000”, y también sería una extensión.&lt;br /&gt;
&lt;br /&gt;
En Asterisk pueden definirse también extensiones como texto, por tanto no debemos relacionar las extensiones únicamente con números.&lt;br /&gt;
&lt;br /&gt;
Algunas reglas que sería interesante conocer serían las siguientes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Regla''' !! '''Descripción'''&lt;br /&gt;
|-&lt;br /&gt;
| '''X''' || Cualquier cifra de 0 a 9&lt;br /&gt;
|-&lt;br /&gt;
|'''Z'''||Cualquier cifra de 1 a 9&lt;br /&gt;
|-&lt;br /&gt;
|'''N'''||Cualquier cifra de 2 a 9&lt;br /&gt;
|-&lt;br /&gt;
|'''[x-y]'''||Cualquier cifra de &amp;quot;x&amp;quot; a &amp;quot;y&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''[xyz]'''|| 	Las cifras &amp;quot;x&amp;quot;, &amp;quot;y&amp;quot; o &amp;quot;z&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''.'''||Una o más repeticiones del símbolo anterior&lt;br /&gt;
|-&lt;br /&gt;
|'''!'''||Cero o más repeticiones del símbolo anterior&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Estas reglas son necesarias a la hora de definir por ejemplo todos los números de teléfono posibles en España &lt;br /&gt;
&lt;br /&gt;
♦ '''PRIORIDADES'''&lt;br /&gt;
&lt;br /&gt;
En lenguaje scripting, las acciones se van ejecutando de arriba a abajo en orden. En cambio, en Asterisk, el orden en el que se ejecutan las acciones es el indicado mediante números.&lt;br /&gt;
Primero se ejecutará la acción 1, luego la 2...así sucesivamente.&lt;br /&gt;
&lt;br /&gt;
Es decir no basta con definir las acciones que se llevarán a cabo, también debemos indicar el orden en el que se llevarán a cabo.&lt;br /&gt;
&lt;br /&gt;
♦ '''CONTEXTOS'''&lt;br /&gt;
&lt;br /&gt;
Es mecanismo que nos permite variar el comportamiento del sistema en función del número que se marque. Su misión es aumentar la seguridad del sistema ofreciendo servicios diferenciados en función del usuario.&lt;br /&gt;
&lt;br /&gt;
La sintaxis típica es el nombre del contexto englobado entre corchetes [nombre_contexto]. Si un dispositivo no tiene un contexto definido se redirige directamente al contexto por defecto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los ficheros que conforman el Dialplan se clasifican en:&lt;br /&gt;
&lt;br /&gt;
* '''Generales'''&lt;br /&gt;
* '''Particulares'''&lt;br /&gt;
* '''Web'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Fichero''' !! '''Función'''&lt;br /&gt;
|-&lt;br /&gt;
| '''Generales''' || Se encuentran los ficheros de propios de MDtel y Asterisk. Es importante remarcar que estos ficheros NO pueden ser modificados por el usuario.&lt;br /&gt;
|-&lt;br /&gt;
|'''Particular'''||Estos ficheros son los únicos que puede modificar el usuario&lt;br /&gt;
|-&lt;br /&gt;
|'''Web'''|| Se encierran aquí los archivos generados automáticamente por la plataforma, a través del portal&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
En función del nodo en el que estemos trabajando, encontraremos dos tipos de dialplan:&lt;br /&gt;
&lt;br /&gt;
'''* Dialplan ACD''' --&amp;gt; Dialplan que aplica a nodos ACD&lt;br /&gt;
&lt;br /&gt;
'''* Dialplan corporativa''' --&amp;gt; Dialplan que aplica a nodos de corporativa o gateways (ya sean de corporativa o ACD)&lt;br /&gt;
&lt;br /&gt;
A continuación se muestran las tablas con los ficheros correspondientes a cada Dialplan.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;FloralWhite&amp;quot;&lt;br /&gt;
|+ '''Ficheros de configuración Dialplan Corporativo'''&lt;br /&gt;
| '''GENERALES'''&lt;br /&gt;
| '''PARTICULARES'''&lt;br /&gt;
| '''WEB'''&lt;br /&gt;
|-&lt;br /&gt;
| ext_Grabaciones.conf &amp;lt;br /&amp;gt;ext_InicioLlamada.conf &amp;lt;br /&amp;gt; ext_InicioLlamada_Dahdi.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP.conf &amp;lt;br/&amp;gt;ext_InicioLlamada_TrunkSIP.conf &amp;lt;br /&amp;gt;ext_MARCAR_ColaCentralita.conf &amp;lt;br /&amp;gt; ext_MARCAR_ColaCentralita_Dial.conf&amp;lt;br /&amp;gt; ext_MARCAR_Cola.conf &amp;lt;br /&amp;gt;ext_MARCAR_Cola_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR.conf  &amp;lt;br /&amp;gt; ext_MARCAR_DejarMensaje.conf &amp;lt;br /&amp;gt; ext_MARCAR_DejarMensaje_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Extension.conf&amp;lt;br /&amp;gt;ext_MARCAR_Extension_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_nimitz.conf&amp;lt;br /&amp;gt;ext_MARCAR_Interno.conf &amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje.conf &amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR_Nodo.conf&amp;lt;br /&amp;gt;ext_MARCAR_Nodo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Servicios.conf &amp;lt;br /&amp;gt;ext_MARCAR_VDN.conf &amp;lt;br /&amp;gt;MARCAR_VDN_Dial.conf&amp;lt;br /&amp;gt;ext_MDtel.conf &amp;lt;br /&amp;gt;ext_MDtel_Var.conf &amp;lt;br /&amp;gt;ext_Subrutinas_AnchoBanda.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD_Facilidad.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD_Facilidad.conf &amp;lt;br /&amp;gt; ext_Subrutinas_Colas.conf &amp;lt;br /&amp;gt;ext_Subrutinas.conf &amp;lt;br /&amp;gt;ext_Subrutinas_Enrutamiento.conf &amp;lt;br /&amp;gt;ext_Subrutinas_finLlamada.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Grabacion.conf&amp;lt;br /&amp;gt;ext_Subrutinas_nimitz.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Varias.conf&amp;lt;br /&amp;gt;ext_Subscribe.conf&amp;lt;br /&amp;gt;ext_Transfer.conf &amp;lt;br /&amp;gt;ext_Transfer_ExtSIP.conf&amp;lt;br /&amp;gt;ext_Transfer_TrunkInternos.conf &amp;lt;br /&amp;gt;ext_TrunkInternos.conf&amp;lt;br /&amp;gt;ext_TrunkInternos_Dial.conf &amp;lt;br /&amp;gt;sip_Estatico.conf&amp;lt;br /&amp;gt; sip_GENCUST.conf &amp;lt;br /&amp;gt;sip_notify.conf &amp;lt;br /&amp;gt;queues.conf &amp;lt;br /&amp;gt; queues_GENERAL.conf &amp;lt;br /&amp;gt;queues_PLANTILLACOLAS.conf&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| ext_Enrutador_Particular.conf&amp;lt;br /&amp;gt; ext_InicioLlamada_Dahdi_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_Particular.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_TrunkSIP_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_Extension_Particular.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo_Particular.conf &amp;lt;br/&amp;gt; ext_MARCAR_Facilidad_Particular.conf&amp;lt;br /&amp;gt; ext_MARCAR_VDN_Particular.conf &amp;lt;br /&amp;gt;ext_MDtel_Particular.conf &amp;lt;br/&amp;gt; ext_TrunkInternos_Particular.conf &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|asterisk_WEB.conf &amp;lt;br /&amp;gt; ext_MDtel_WEB.conf &amp;lt;br /&amp;gt; sip_trunkExt_WEB.conf &amp;lt;br /&amp;gt;sip_trunkInt_WEB.conf &amp;lt;br /&amp;gt;sip_trunk_WEB.conf &amp;lt;br /&amp;gt; sip_WEB.conf &amp;lt;br /&amp;gt; queues_WEB.conf&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;FloralWhite&amp;quot;&lt;br /&gt;
|+ '''Ficheros de configuración Dialplan ACD'''&lt;br /&gt;
| '''GENERALES'''&lt;br /&gt;
| '''PARTICULARES'''&lt;br /&gt;
| '''WEB'''&lt;br /&gt;
|-&lt;br /&gt;
| ext_Enrutador.conf&amp;lt;br /&amp;gt;ext_Grabaciones.conf &amp;lt;br /&amp;gt; ext_InicioLlamada.conf &amp;lt;br /&amp;gt; ext_InicioLlamada_CTI.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_Dahdi.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_Marcador.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_TrunkSIP.conf &amp;lt;br /&amp;gt;ext_MARCAR_ColaCentralita.conf &amp;lt;br /&amp;gt;ext_MARCAR_ColaCentralita_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR_Cola.conf &amp;lt;br /&amp;gt;ext_MARCAR_Cola_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR.conf &amp;lt;br /&amp;gt;ext_MARCAR_DejarMensaje.conf &amp;lt;br /&amp;gt;ext_MARCAR_DejarMensaje_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Extension.conf &amp;lt;br /&amp;gt;ext_MARCAR_Extension_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_nimitz.conf&amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje.conf &amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Nodo.conf &amp;lt;br /&amp;gt;ext_MARCAR_Nodo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR_Servicios.conf &amp;lt;br /&amp;gt;ext_MARCAR_VDN.conf &amp;lt;br /&amp;gt;ext_MARCAR_VDN_Dial.conf&amp;lt;br /&amp;gt;ext_MDtel.conf &amp;lt;br /&amp;gt;ext_MDtel_Var.conf &amp;lt;br /&amp;gt;ext_Subrutinas_AnchoBanda.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD_Facilidad.conf &amp;lt;br /&amp;gt; ext_Subrutinas_Colas.conf &amp;lt;br /&amp;gt;ext_Subrutinas.conf &amp;lt;br /&amp;gt;ext_Subrutinas_Enrutamiento.conf &amp;lt;br /&amp;gt; ext_Subrutinas_finLlamada.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Grabacion.conf &amp;lt;br /&amp;gt;ext_Subrutinas_nimitz.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Varias.conf &amp;lt;br /&amp;gt;ext_Subscribe.conf&amp;lt;br /&amp;gt;ext_Transfer.conf &amp;lt;br /&amp;gt;ext_Transfer_ExtSIP.conf&amp;lt;br /&amp;gt;ext_Transfer_TrunkInternos.conf &amp;lt;br /&amp;gt;ext_TrunkInternos.conf &amp;lt;br /&amp;gt;ext_TrunkInternos_Dial.conf &amp;lt;br /&amp;gt;queues_GENERAL.conf&amp;lt;br /&amp;gt;queues_PLANTILLACOLAS.conf &amp;lt;br /&amp;gt;sip_GENCUST.conf &amp;lt;br /&amp;gt;sip_GENERAL.conf &amp;lt;br /&amp;gt;sip_notify.conf &amp;lt;br /&amp;gt;sip_PLANTILLAEXT.conf&amp;lt;br /&amp;gt;sip_supervision.conf &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| ext_Enrutador_Particular.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_CTI_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_Dahdi_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_Marcador_Particular.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_Particular.conf.&amp;lt;br /&amp;gt;ext_InicioLlamada_TrunkSIP_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_Externo_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_VDN_Particular.conf&amp;lt;br /&amp;gt; ext_MDtel_Particular.conf&amp;lt;br /&amp;gt;ext_TrunkInternos_Particular.conf&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
|asterisk_WEB.conf &amp;lt;br /&amp;gt; ext_MDtel_WEB.conf &amp;lt;br /&amp;gt;queues_WEB.conf&amp;lt;br /&amp;gt; sip_trunkInt_WEB.conf &amp;lt;br /&amp;gt;sip_WEB.conf &amp;lt;br /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Servicios networking ===&lt;br /&gt;
Son muy importantes las configuraciones adecuadas de los servicios de:&lt;br /&gt;
&lt;br /&gt;
* '''NTP''': El sistema en global ha de estar sincronizado; todos los servidores y puestos de trabajo (en el caso de ''VIVA''it Suite) han de estar perfectamente sincronizados; los servidores de la plataforma se sincronizarán con el NTP del cliente; si el cliente no tiene NTP será necesario que un servidor de la plataforma se sincronice con un NTP externo y este sea el servidor para el resto de la plataforma&lt;br /&gt;
&lt;br /&gt;
* '''DNS''': La configuración de DNS de la plataforma será coherente con el resto de la plataforma IT del cliente&lt;br /&gt;
&lt;br /&gt;
* '''DHCP''': Es necesario coordinar con el cliente la asignación de direcciones para los diferentes elementos de la plataforma '''''VIVA'''''it, fundamentalmente para terminales telefónicos; en este caso además será necesario activa la opción 66 que permitirá definir el servidor TFTP del que los terminales cogerán sus ficheros de aprovisionamiento&lt;br /&gt;
&lt;br /&gt;
=== Bases de datos (BBDD)===&lt;br /&gt;
&lt;br /&gt;
La base de datos del sistema se basa en el motor de base de datos MySQL, es un elemento crítico del sistema, en el que insertan y del que obtiene mucha información múltiples procesos.&lt;br /&gt;
Muchas comunicaciones entre procesos se realizan vía Base de Datos (tabla COM_COMUNICADOS). Pueden existir distintas instancias de base de datos que explicadas en las siguientes secciones, nuestra base de datos tiene la siguiente estructura: [[Base de datos|Información completa de la BD]]. Podéis ampliar más información en https://dev.mysql.com/doc/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== BBDD Tiempo Real ====&lt;br /&gt;
En la base de datos de tiempo real insertan información todos los procesos del sistema, y se realizan los cambios en configuración utilizando como herramienta el portal de administración y '''''VIVA'''''it Supervisor&lt;br /&gt;
&lt;br /&gt;
De la base de datos de tiempo real leen los procesos que requieren información, y las aplicaciones:&lt;br /&gt;
*'''''VIVA'''''it Supervisor (para reporting de tiempo real)&lt;br /&gt;
*PanelWeb&lt;br /&gt;
*Datos de sesión de '''''VIVA'''''it Desk&lt;br /&gt;
*Monitorización Zabbix&lt;br /&gt;
* Otros&lt;br /&gt;
&lt;br /&gt;
El portal de administración se encarga de escribir las configuraciones añadidas o modificadas en la base de datos&lt;br /&gt;
&lt;br /&gt;
==== BBDD Réplica ====&lt;br /&gt;
A efectos de asegurar las prestaciones del sistema, se establece una réplica de la base de datos, sincronizada con la de tiempo real; los procesos y aplicaciones pesados, que realicen consultas a las base de datos que puedan comprometer las prestaciones del sistema atacan a la réplica y nunca a la base de datos de tiempo real&lt;br /&gt;
&lt;br /&gt;
Es posible que en instalaciones pequeñas no exista réplica, en cuyo caso se establece una base de datos unificada sobre la de tiempo real, en la que se añaden índices y procedimientos almacenados que típicamente residen en la de réplica.&lt;br /&gt;
&lt;br /&gt;
Es posible establecer tantas réplicas como sean necesarias si diferentes procesos pesados se penalizan en exceso, si bien una implantación tipo contemplará una sola&lt;br /&gt;
&lt;br /&gt;
Algunos procesos que utilizan la base de datos de réplica son:&lt;br /&gt;
*'''''VIVA'''''it Reporting&lt;br /&gt;
*'''''VIVA'''''it Tracker&lt;br /&gt;
*Histórico en tiempo real de '''''VIVA'''''it Supervisor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANTE: Ningún proceso, programa, aplicación, etc. escribe en la base de datos de réplica; tan solo se extrae información'''&lt;br /&gt;
&lt;br /&gt;
==== BBDD de copia ====&lt;br /&gt;
A efectos de asegurar el funcionamiento y como medida de contingencia ante un problema puntual de comunicación con la BD de tiempo real, en cada nodo disponemos de una BD de copia local. Posiblemente de un tamaño menor que la BD de tiempo real, dependiendo de cuanto tiempo pase hasta la próxima sincronización con la base de tiempo real.Esta base de datos llamada '''nimitzCopia'''.&lt;br /&gt;
  &lt;br /&gt;
Solo entrara en funcionamiento,cuando se produzca el problema mencionado, dejando acceder a los datos y poder dar servicio a la empresa mientras se soluciona el problema.&lt;br /&gt;
&lt;br /&gt;
===== Backup y restore =====&lt;br /&gt;
&lt;br /&gt;
Se utilizan dos script, para realizar la copia de seguridad y restaurar en la base de datos de copia local que son:&lt;br /&gt;
&lt;br /&gt;
* El proceso '''bdCentral.sh''' que es el encargado de realizar la copia de seguridad. Tiene un archivo de configuración bdCentral.conf. En este archivo hay un parámetro (IGNORE_TABLAS) que indica las tablas de las que NO se realizará copia de seguridad. Toda tabla que no se indique formará parte de la copia de seguridad. Vuelca los resultados en /var/log/bdCentral.log&lt;br /&gt;
* El proceso '''bdNodo.sh''' que es el encargado de descargar la copia de seguridad y restaurarla en local. Tiene un archivo de configuración bdNodo.conf. Vuelca los resultados en /var/log/bdNodo.log. El fichero de backup se copia mediante el usuario sincroniza, que deberá poder acceder sin contraseña al servidor donde reside la copia.&lt;br /&gt;
&lt;br /&gt;
En caso de producirse algún error en alguno de los procesos, marcarán dicho error en el log con una línea que comienza con la cadena &amp;quot;*ERROR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Diagnósticos y operaciones sobre bases de datos ====&lt;br /&gt;
&lt;br /&gt;
=====Comprobación que una base de datos está arrancada=====&lt;br /&gt;
Para comprobar si la base de datos está arrancada debemos poner en el terminal : '''ps aux | grep mysql'''&lt;br /&gt;
&lt;br /&gt;
Si la base de datos está arrancada y funcionando correctamente se nos mostrará en el terminal:&lt;br /&gt;
[[Archivo:Base_Datos_bien.png‎ |500px|center]]&lt;br /&gt;
&lt;br /&gt;
Por el contrario, si la base de datos presenta algun problema el mensaje mostrado será:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Base_datos_mal.png |center]]&lt;br /&gt;
&lt;br /&gt;
=====Comprobación que la base de datos de réplica está sincronizada con la base de datos de tiempo real.=====&lt;br /&gt;
&lt;br /&gt;
Si se necesita verificar que la base de réplica está sincronizada con la base de datos en tiempo real basta con acudir al comando : '''show slave status\G'''.&lt;br /&gt;
&lt;br /&gt;
Una vez introducido veremos:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Replica.png |980px|center]]&lt;br /&gt;
&lt;br /&gt;
Comandos importantes, desde dentro consola de Mysql:&lt;br /&gt;
&lt;br /&gt;
 '''show master status''': Realizado desde el master&lt;br /&gt;
 '''show slave status''': Realizado desde el esclavo; el valor &amp;quot;seconds behind master&amp;quot; nos indica&lt;br /&gt;
 cuanto está retrasada la réplica con respecto a la base de datos de tiempo real. Si el valor de este campo es elevado nos indicará &lt;br /&gt;
 que la base de datos real con la réplica no estará sincronizada, por tanto, nos interesa que este valor sea lo más pequeño posible.&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Procesos propios ===&lt;br /&gt;
&lt;br /&gt;
==== bdCentral ====&lt;br /&gt;
&lt;br /&gt;
El proceso ''bdCentral.sh'' es el encargado de realizar la copia de seguridad. Tiene un archivo de configuración ''bdCentral.conf'' el cual puede encontrarse en la ruta '''/etc/MDtel/bdCentral.conf'''. En este archivo hay un parámetro (IGNORE_TABLAS) que indica las tablas de las que NO se realizará copia de seguridad. Toda tabla que no se indique formará parte de la copia de seguridad. Vuelca los resultados en /var/log/bdCentral.log&lt;br /&gt;
&lt;br /&gt;
En caso de producirse algún error, se marcará dicho error en el log con una línea que comienza con la cadena &amp;quot;*ERROR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Para ejecutar bdCentral:&lt;br /&gt;
 bdCentral.sh /etc/MDtel/bdCentral.conf&lt;br /&gt;
&lt;br /&gt;
Estos procesos se ejecutan automáticamente. Para ello está copiado el fichero bdCentral a /etc/cron.d.&lt;br /&gt;
&lt;br /&gt;
Por defecto la programación vienen comentada por lo que será necesario activarlo.&lt;br /&gt;
&lt;br /&gt;
Para que se roten los logs hay que copiar el fichero bdCentral.logrotate a /etc/logrotate.d (como bdCentral)&lt;br /&gt;
La ruta donde se encuentran los logs es la siguiente: '''/var/log/myAcdSuperv.log'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
*A continuación se explica la utilidad de los campos mas relevantes del fichero de configuración bdCentral.conf. &lt;br /&gt;
ARCH_LOG : &lt;br /&gt;
BDHOST: Localización de la base de datos&lt;br /&gt;
BDUSU: Usuario para la base de datos&lt;br /&gt;
BDRUTA: Ruta donde se encuentra la base de datos&lt;br /&gt;
IGNORE_TABLAS:&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== bdNodo ====&lt;br /&gt;
El proceso bdNodo.sh es el encargado de descargar la copia de seguridad y restaurarla en local. Tiene un archivo de configuración bdNodo.conf, este archivo puede encontrarse en la ruta '''/etc/MDtel/bdNodo.conf.''' Vuelca los resultados en /var/log/bdNodo.log. El fichero de backup se copia mediante el usuario sincroniza, que deberá poder acceder sin contraseña al servidor donde reside la copia.&lt;br /&gt;
&lt;br /&gt;
En caso de producirse algún error, se marcará dicho error en el log con una línea que comienza con la cadena &amp;quot;*ERROR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Para ejecutar bdNodo:&lt;br /&gt;
&lt;br /&gt;
 bdNodo.sh /etc/MDtel/bdNodo.conf&lt;br /&gt;
&lt;br /&gt;
Estos procesos se ejecutan automáticamente. Para ello está copiado el fichero bdNodo a /etc/cron.d.&lt;br /&gt;
&lt;br /&gt;
Por defecto la programación vienen comentada por lo que será necesario activarlo.&lt;br /&gt;
&lt;br /&gt;
Para que se roten los logs hay que copiar el fichero bdNodo.logrotate a /etc/logrotate.d (como bdNodo)&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Intz-Nimitz ====&lt;br /&gt;
&lt;br /&gt;
Permite integrar procesos de asterisk (del dialplan) con la base de datos; por ejemplo es el que graba segmentos, inspecciona donde esta registrado un agente…etc. La estabilidad de este proceso es importante para el funcionamiento del sistema, si bien las llamadas entran en caso de no estar disponible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para mas información consultar la página de [[intz-nimitz|intz-nimitz]].&lt;br /&gt;
&lt;br /&gt;
Desde un SSH ejecuta el comando “nc ip_maquina 1115”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1115'''&lt;br /&gt;
 intz-nimitz sis ver='V02.6' inic='20140401 110116' alarmas=21 ultAlar='20140414 171244'&lt;br /&gt;
 intz-nimitz gmp msj=942/1024 buf=1024/1024 tarea=16/102&lt;br /&gt;
 intz-nimitz tmp uptime=1816550 (21d 0h 35m 50s)&lt;br /&gt;
 intz-nimitz vic identif='cms1' entorno='nimitz' conx=0/128 numConx=1018(0)&lt;br /&gt;
 intz-nimitz mys curro=80/0/0/0 soli=1012(0) soliErr=6(0) soliEncol=0(0/0)&lt;br /&gt;
 intz-nimitz cache colas=128/10/0/0 vdn=128/8/0/0 usuExten=10/0/0/0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parámetro!!Descripción&lt;br /&gt;
|-&lt;br /&gt;
|sis/ver||Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|sis/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|Sis/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|Sis/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/msj||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/buf||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/tarea||&lt;br /&gt;
|-&lt;br /&gt;
|Tmp/uptime||Tiempo que lleva el servicio activo&lt;br /&gt;
|-&lt;br /&gt;
|Vic/identif||Etiqueta de identificación del servicio&lt;br /&gt;
|-&lt;br /&gt;
|Vic/entorno||Entorno de base de datos&lt;br /&gt;
|-&lt;br /&gt;
|Vic/conx||Conexiones activas/conexiones máximas&lt;br /&gt;
|-&lt;br /&gt;
|Vic/numConx||Conexiones totales (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|Mys/curro||Número de hilos contra la base de datos&lt;br /&gt;
|-&lt;br /&gt;
|Mys/soli||Conexiones solicitadas (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|Mys/soliErr||Conexiones solicitadas con error (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|Mys/soliEncol||Conexiones encoladas&lt;br /&gt;
|-&lt;br /&gt;
|Cache/cola|| Colas monitorizadas/&lt;br /&gt;
|-&lt;br /&gt;
|Cache/vdn||VDN’s monitorizados&lt;br /&gt;
|-&lt;br /&gt;
|Cache/usuExten||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en  '''/etc/MDtel/intz-nimitz.conf'''&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/intz-nimitz.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
A continuación se muestran los campos mas importantes del fichero de configuración intz-nimitz.conf:&lt;br /&gt;
&lt;br /&gt;
enrutamiento &lt;br /&gt;
{ &lt;br /&gt;
        hay_enrutamiento = 1 &lt;br /&gt;
        max_pre_ruta_regs = 4 &lt;br /&gt;
        max_ruta = 4 &lt;br /&gt;
        max_ruta_desvios = 2 &lt;br /&gt;
# Filtro de informacion de ancho de banda &lt;br /&gt;
# MYSDanchoBandaPasoNinguno      0 &lt;br /&gt;
# MYSDanchoBandaPasoSoloDirectos 1 &lt;br /&gt;
# MYSDanchoBandaPasoSoloEnPaso   2 &lt;br /&gt;
# MYSDanchoBandaPasoTodos        3 &lt;br /&gt;
        filtro_ancho_banda = 1 &lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
mysql &lt;br /&gt;
{ &lt;br /&gt;
        hay_mysql = 1   Indica si hay base de datos mysql&lt;br /&gt;
        host = BDTR &lt;br /&gt;
        usuario = nimitz   Usuario base de datos&lt;br /&gt;
        clave = phikau3iwCe4O0PP5b09ng==   clave base de datos&lt;br /&gt;
        base_datos = nimitz &lt;br /&gt;
        bd_supervivencia = 0 &lt;br /&gt;
        num_curro = 10 &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== motorSal ====&lt;br /&gt;
Parte fundamental del proceso de marcación saliente, gestiona como hay que llamar a los diferentes contactos asignados a las campañas. Transforma los contactos en intentos de marcación.&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH ejecuta el comando “nc ip_maquina 1120”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1120'''&lt;br /&gt;
 motorSal sis ver='V01.4' inic='20140725 140832' alarmas=1 ultAlar='20140725 140832'&lt;br /&gt;
 motorSal gmp msj=253/256 buf=256/256 tarea=99/102&lt;br /&gt;
 motorSal tmp uptime=600165 (6d 22h 42m 45s)&lt;br /&gt;
 motorSal mtr mys=1 ocup=0% planif=28(0) intento=26(0)&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parámetro!!Descripción&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ver||Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/msj||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/buf||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/tarea||&lt;br /&gt;
|-&lt;br /&gt;
|Tmp/uptime||Tiempo que lleva corriendo&lt;br /&gt;
|-&lt;br /&gt;
|mtr/mys||Si está conectado al MySQL&lt;br /&gt;
|-&lt;br /&gt;
|mtr/ocup||Porcentaje de ocupación&lt;br /&gt;
|-&lt;br /&gt;
|mtr/planif||Contactos planificados Totales (Último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|mtr/intento||Intentos totales (Ültimo minuto)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Posee un fichero de configuración llamado ''motorSal.conf'' en la ruta '''/etc/MDtel/motorSal.conf'''.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:Las variables que normalmente son modificadas son las siguientes:&lt;br /&gt;
&lt;br /&gt;
mysql&lt;br /&gt;
{&lt;br /&gt;
hay_mysql = 1&lt;br /&gt;
Indica si hay base de datos mysql&lt;br /&gt;
host = localhost&lt;br /&gt;
usuario = nimitz&lt;br /&gt;
Usuario base de datos&lt;br /&gt;
Clave base de datos&lt;br /&gt;
base_datos = nimitz&lt;br /&gt;
}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Respecto a los logs del motorSal consultar el siguiente apartado: [[Trazas motorSal]]. Los logs pueden verse en la ruta '''/var/log/intz-nimitz.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== MyACDSuperv ====&lt;br /&gt;
Refleja el estado de las colas de asterisk en la base de datos; tiene sentido a efectos de estadísticas e informes, pero no a efectos de funcionamiento de la conmutación de voz&lt;br /&gt;
&lt;br /&gt;
Es también el proceso que genera las llamadas en el marcador automático de '''''VIVA'''''it Suite&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando “nc ip_maquina 1112”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1112'''&lt;br /&gt;
 myAcdSuperv SIS ver='04.6' inic='20140416 081613' alarmas=6 ultAlar='20140416 121652'&lt;br /&gt;
 myAcdSuperv AMI cnx=1 ocup=28% exten=2/2/511 asig=0/11/4095&lt;br /&gt;
 myAcdSuperv MYSQL cnx=1 ms=316&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parámetro!!Descripción&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ver||Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|AMI/cnx||Conectado (1) a asterisk&lt;br /&gt;
|-&lt;br /&gt;
|AMI/ocup||Porcentaje de ocupación de MyACDSuperv&lt;br /&gt;
|-&lt;br /&gt;
|AMI/exten||Extensiones/Extensiones/Extensiones monitorizadas|-&lt;br /&gt;
|-&lt;br /&gt;
|AMI/asig||&lt;br /&gt;
|-&lt;br /&gt;
|MYSQL/cnx||Conectado (1) a MySQL&lt;br /&gt;
|-&lt;br /&gt;
|MYSQL/ms||Tiempo de última operación en ejecutarse&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/myAcdSuperv.cnf'''&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/myAcdSuperv.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Proceso escoba ====&lt;br /&gt;
El proceso escoba se encarga de resolver y consolidar todos aquellos segmentos de grabación que han quedado almacenados en los gateways por falta de información o incoherencias. Existen dos tipos de procesos escobas:&lt;br /&gt;
# Proceso escoba perteneciente a nodo con agente de grabación (recordNodo) llamado '''''escobaGW.pl'''''.&lt;br /&gt;
# Proceso escoba perteneciente o no a un servidor de grabación (recordCentral) llamado '''''escobaGrabsBd.pl'''''.&lt;br /&gt;
&lt;br /&gt;
===== escobaGW.pl =====&lt;br /&gt;
Proceso que se ejecuta en los nodos busca en el disco RAM , las grabaciones de segmentos cuya antigüedad sea superior a mas de un día, es decir, si el proceso por ejemplo se ejecuta a la 01:00 a.m. del día 24/03/2016 buscara todas aquellas grabacionesn de segmentos realizadas antes de la 01:00 a.m del día 22/03/2016.&lt;br /&gt;
Una vez realizada la busqueda, obtendra el UCID a traves del nombre del fichero, y comprobara su correspondencia con la tabla DAT_LLAMADAS. Si existe una llamada con ese UCID, cambiara el estado de la llamada para que sea procesada correctamente. En caso contrario, es movida a la carpeta ''/var/lib/recordNodo/grabError''.&lt;br /&gt;
&lt;br /&gt;
===== escobaGrabsBd.pl =====&lt;br /&gt;
Se ejecuta sobre la base de datos de histórico, normalmente se ejecuta en un servidor de grabación (recordCentral). El proceso hace una búsqueda en dos tablas:&lt;br /&gt;
* En DAT_SEGMENTOS obtiene todos aquellos segmentos con grabaciones que dieron error, su estado tendrá valor 120.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
* En DAT_LLAMADAS obtendremos todos los registros correspondiente al segmentos anteriores.&lt;br /&gt;
Después hace una búsqueda en el sistema, usando como ruta el campo D_HORA_INICIO de cada llamada, que indica la ruta entera donde se encuentra el archivo. Una vez encontrado el archivo cambia el estado del segmento que tenia un error a estado de grabación disponible , que tendrá valor 100. Si no encontramos el segmento, no realizara nada.&lt;br /&gt;
&lt;br /&gt;
==== recordCentral ====&lt;br /&gt;
Se considera como un servidor de grabaciones. Todas las grabaciones de llamadas son un activo importante y una empresa con Contact Center pueda recibir millones de llamadas que necesitan estar registradas y almacenadas en discos duros con gran capacidad, dichas maquinas donde suelen alojarse estos servidores poseen discos duros limitados, lo que hace necesario en algunos casos incorporar ''dispositivos NAS''.&lt;br /&gt;
&lt;br /&gt;
Los ''dispositivos NAS'' son dispositivos de almacenamiento conectados a una red que permite el almacenamiento y la recuperación de datos desde una ubicación centralizada, flexibles y escalables, lo que significa que a medida que necesite almacenamiento adicional, puede añadirlo al que tiene. Esto no indica que sea necesario poseer de ''dispositivos NAS'' para funcionar, sino que puede tomar datos de diferentes sitios.&lt;br /&gt;
&lt;br /&gt;
En '''recordCentral''' pueden existir tres tipos de dispositivos NAS:&lt;br /&gt;
* Uno dedicado para las llamadas &lt;br /&gt;
* Uno dedicado para los segmentos &lt;br /&gt;
* Uno mixto para todas las llamadas y segmentos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El '''recordCentral''' se encarga de recoger todas las grabaciones de segmentos que tienen de estado proceso(3) en cada nodo gestionado, es decir, coger aquellos segmentos de llamadas marcados como llamadas disponibles, intenta descargar los segmentos de las llamadas y convertirlas al formato adecuado (MP3).&lt;br /&gt;
Como una característica particular cada diez minutos, siempre que no tenga ninguna otra tarea, intenta ver si puede establecer conexión con un nodo en cuarentena, para sacarlos de cuarentena y recoger todas las grabaciones de segmentos disponibles, para intentar convertir y descargar todas las grabaciones.  &lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando '''''nc ip_maquina 1114''''' en la maquina donde creamos que debe estar ejecutando el proceso recordCentral. Ejemplo:&lt;br /&gt;
 '''root@smadavacdrecord1:~# nc localhost 1114'''&lt;br /&gt;
 recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423 160112'&lt;br /&gt;
 recordCentral MYSQL cnx=1&lt;br /&gt;
 recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
 recordCentral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
 recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10'&lt;br /&gt;
La explicación de los campos se muestra en la tabla siguiente:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parámetro !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ver || Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/inic || Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/alarmas || Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ultAlar || Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
| MYSQL/cnx || Conectado (1) a MySQL&lt;br /&gt;
|-&lt;br /&gt;
| NAS/llamadas || Alojamiento en NAS de llamadas activo (grabación de llamada completa en un único archivo)&lt;br /&gt;
|-&lt;br /&gt;
| NAS/segmentos || Alojamiento en NAS de segmentos activo&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamNum || Llamadas procesadas&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamErr || Llamadas con error&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmNum || Segmentos procesados&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmErr || Segmentos con error&lt;br /&gt;
|-&lt;br /&gt;
| NODO/fase  || Número de proceso de recordCentral&lt;br /&gt;
|-&lt;br /&gt;
| NODO/cuarentena  || Lista de nodos en cuarentena, separada por comas&lt;br /&gt;
|-&lt;br /&gt;
| NODO/descarga || Lista de nodos en descarga, separada por comas&lt;br /&gt;
|-&lt;br /&gt;
| NODO/gestion || Lista de nodos gestionados, separada por comas (cuarentena + descarga = gestión)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/recordCentral.pconf'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:Se explican a continuación las variables más importantes del proceso RecordCentral:&lt;br /&gt;
&lt;br /&gt;
# Conexion de base de datos&lt;br /&gt;
$db='nimitz';&lt;br /&gt;
$dbHost = 'BDTR';&lt;br /&gt;
$dbPort = '3306';&lt;br /&gt;
$dbUsuario = 'nimitz';&lt;br /&gt;
$dbClave = 'ivivanimitz';&lt;br /&gt;
&lt;br /&gt;
# Configuracion de archivos con grabaciones (Orig en nodo)&lt;br /&gt;
$grabHay = 0;&lt;br /&gt;
$grabAudioCalidad = 32;&lt;br /&gt;
$grabAudioFormato = 'ogg';&lt;br /&gt;
$grabAudioExten = 'ogg';&lt;br /&gt;
$grabAudioCifrado = 0;&lt;br /&gt;
$grabRutaUsaTimestamp = 1;&lt;br /&gt;
$grabRutaOrig = '/var/lib/recordNodo/grabaciones';&lt;br /&gt;
$grabRutaTmp = '/var/lib/recordProcesad/grabTmp';&lt;br /&gt;
$grabRutaDest = '/var/lib/recordProcesad/grabRecord';&lt;br /&gt;
$grabRutaError = '/var/lib/recordProcesad/grabError';&lt;br /&gt;
$segmHay = 1;&lt;br /&gt;
$segmUmbralTiempo = 10;&lt;br /&gt;
$segmMargenTiempo = 5;&lt;br /&gt;
$segmAudioCalidad = 32;&lt;br /&gt;
$segmAudioFormato = 'ogg';&lt;br /&gt;
$segmAudioExten = 'ogg';&lt;br /&gt;
$segmAudioCifrado = 0;&lt;br /&gt;
$segmRutaUsaTimestamp = 1;&lt;br /&gt;
$segmRutaTmp = '/var/lib/recordProcesad/segmTmp';&lt;br /&gt;
$segmRutaDest = '/var/lib/recordProcesad/segmRecord';&lt;br /&gt;
$segmRutaError = '/var/lib/recordProcesad/segmError';&lt;br /&gt;
&lt;br /&gt;
# Seleccion de tipos de segmento a grabar separados por comas ('' = todos)&lt;br /&gt;
$tiposSegmentoGrabar = '';&lt;br /&gt;
&lt;br /&gt;
# Indica si se graba ring&lt;br /&gt;
$grabarRing = 0;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/recordCentral.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== recordNodo ====&lt;br /&gt;
Se considera como proceso con función de agente de grabación para un nodo. Solo debe existir uno por maquina o por nodo (configurado como grabador) en el '''portal de administración de ''VIVA''it'''.&lt;br /&gt;
&lt;br /&gt;
Para su funcionamiento utiliza un ''disco RAM''  por que su tiempo de acceso mejora drásticamente, debido a que la memoria RAM es varios órdenes de magnitud más rápida que las unidades de disco reales, haciendo que la velocidad de procesamiento de las grabaciones sea mucho mas rápida.&lt;br /&gt;
&lt;br /&gt;
Este ''disco RAM'' normalmente ocupa la mitad de la memoria RAM de una maquina pero no es obligatorio pues dependerá de la memoria disponible en cada maquina, y además, se configura con un tamaño no superior a 2GB de memoria RAM. Hay que tener especial cuidado en que no se llene en espacio  ni tampoco los i-nodos. Se puede  monitorizar a través de la aplicación '''zabbix'''.&lt;br /&gt;
&lt;br /&gt;
El '''''recordNodo''''' se encarga de recoger todas las grabaciones de segmentos que tienen de estado  ''proceso(2)'', es decir, aquellos segmentos de llamadas que han sido grabadas pero no están siendo procesadas, moviéndolas del ''disco RAM'' a su carpeta correspondiente.&lt;br /&gt;
&lt;br /&gt;
La forma de obtener la carpeta correspondiente es obteniendo el dato del campo D_HORA_INICIO en la tabla DAT_LLAMADAS para cada segmento,tras un tratamiento del campo creara la subruta correspondientes: /año/mes/dia/hora/min. Entonces, la ruta correcta seria /var/lib/recordNodo/grabaciones/año/mes/dia/hora/min, donde año, mes, dia , hora y min son los valores numéricos obtenidos del campo D_HORA_INICIO.&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando '''''nc ip_maquina 1113''''' en la maquina donde creamos que debe estar ejecutando el proceso recordNodo:&lt;br /&gt;
&lt;br /&gt;
 root@smadavgw5:~#nc localhost 1113&lt;br /&gt;
 recordNodo SIS ver='04.00.00' inic='20160326 105137' alarmas=2 ultAlar='20160326 105542'&lt;br /&gt;
 recordNodo MYSQL cnx=1&lt;br /&gt;
 recordNodo REC grabNum=0 grabErr=0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La explicación de los campos se muestra en la tabla siguiente:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parámetro  !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ver || Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/inic  || Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/amarmas || Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ultAlar || Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
| MYSQL/cnx || Conectado (1) a MySQL&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamNum || Llamadas procesadas&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamErr || Llamadas con error&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmNum || Segmentos procesados&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmErr || Segmentos con error&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/recordNodo.pconf'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:Se muestran a continuación las variables que son modificadas con mayor frecuencia:&lt;br /&gt;
# Conexion de base de datos&lt;br /&gt;
$db='nimitz';&lt;br /&gt;
$dbHost = 'BDTR';&lt;br /&gt;
$dbPort = '3306';&lt;br /&gt;
$dbUsuario = 'nimitz';&lt;br /&gt;
$dbClave = 'ivivanimitz';&lt;br /&gt;
&lt;br /&gt;
# Quien es mi nodo para filtrar grabaciones&lt;br /&gt;
$miNodo = 1;&lt;br /&gt;
&lt;br /&gt;
# Indica si se procesan segmentos de tipo tipoSegmEliminarGrabacion y patron eliminación&lt;br /&gt;
$segmEliminarGrabacionTrato = 1;&lt;br /&gt;
$patronEliminarGrabacion = '/etc/MDtel/null.bin';&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/recordNodo.log'''&lt;br /&gt;
&lt;br /&gt;
==== Vivait-CTI ====&lt;br /&gt;
Permite la comunicación entre la aplicación '''''VIVA'''''it Desk de agente y el asterisk, sincronizando; convierte el protocolo “asterisk manager” a CSTA ('''''VIVA'''''it Desk “habla” CSTA).&lt;br /&gt;
&lt;br /&gt;
Es un proceso importante para que el uso de '''''VIVA'''''it Desk, y que los agentes puedan realizar su operativa normal con la entrada y salida de llamadas… si bien el cursado telefónico de llamadas es factible, no disponer de las facilidades de '''''VIVA'''''it Desk y formularios hace el sistema difícilmente manejable&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando “nc ip_maquina 1111”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1111'''&lt;br /&gt;
 vivait-cti sis ver='V01.5' inic='20140414 104312' alarmas=13 ultAlar='20140415 173152'&lt;br /&gt;
 vivait-cti gmp msj=1018/1024 buf=1023/1024 tarea=97/102&lt;br /&gt;
 vivait-cti tmp uptime=694748 (8d 0h 59m 8s)&lt;br /&gt;
 vivait-cti cti numConx=(0/511) numPend=(0/127) numMakeCallPend=0 numCall=(0/2047)&lt;br /&gt;
 numChan=(0/4095) numAuxStr=(0/511) numMoniColas=(0/511) numMoniDevice=0&lt;br /&gt;
 numMoniCall=0 numMoniCallAuto=0 numMoniCallByDevice=0 numMoni=(0/511)&lt;br /&gt;
 auditCallErr=0 auditAuxStrErr=0 auditMsjReqErr=0 araChanID=0 araUniqueID=0 araMoni=0&lt;br /&gt;
 vivait-cti ami esta=conx resp=652(0) evs=1397(0) descar=556(0) err=16 errConx=16&lt;br /&gt;
 numAct(0/0/127) auditErrAct=0&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!ver!!Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|sis/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|Sis/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|Sis/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/msj||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/buf||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/tarea||&lt;br /&gt;
|-&lt;br /&gt;
|Tmp/uptime||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numConx||Número de conexiones actuales / Número de conexiones máximo&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numPend||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMakeCallPend||Llamadas pendientes de realizar&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numcall||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numChan||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numAuxStr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniColas||Número de colas monitorizadas&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniDevice||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniCall||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniCallAuto||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniCallByDevice||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoni||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/auditCallErr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/auditAuxStrErr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ auditMsjReqErr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ araChanID||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ araUniqueID||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ araMoni||&lt;br /&gt;
|-&lt;br /&gt;
|Ami/esta||Estado de conexión contra manarger de asterisk&lt;br /&gt;
|-&lt;br /&gt;
|Ami/resp||&lt;br /&gt;
|-&lt;br /&gt;
|Ami/evs||Número de eventos (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
||Ami/descar&lt;br /&gt;
|-&lt;br /&gt;
|Ami/err||Errores&lt;br /&gt;
|-&lt;br /&gt;
|Ami/errConx||Errores de conexión&lt;br /&gt;
|-&lt;br /&gt;
|Ami/numAct||&lt;br /&gt;
|-&lt;br /&gt;
|Ami/auditErrAct||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/vivait-cti.conf'''&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/vivait-cti.conf'''&lt;br /&gt;
&lt;br /&gt;
==== Phoneprov-TFTP ====&lt;br /&gt;
&lt;br /&gt;
==== Introducción al aprovisionamiento ====&lt;br /&gt;
&lt;br /&gt;
En cada Centralita Telefónica existente, se puede configurar sus teléfonos IP y asignarles extensiones a cada teléfono. Para hacer un ''aprovisionamiento'' de los teléfonos es necesario que el técnico configure uno a uno manualmente utilizando su interfaz web, esto no es práctico, ya que genera muchos errores y el tiempo de implementación se incrementa drásticamente. Además, es casi imposible la administración cotidiana de los teléfonos IP. Desde '''MD'''tel se utiliza una herramienta que permite que los teléfonos IP soportados y homologados por '''MD'''tel ([[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_3.0#Terminales_telef.C3.B3nicos ver Terminales telefónicos]]) se puedan aprovisionar automáticamente, brindando una fácil implementación y administración cotidiana. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== ¿Qué es aprovisionar? =====&lt;br /&gt;
&lt;br /&gt;
Aprovisionar un teléfono es el proceso de configuración automático de teléfonos IP para su uso con una Centralita Telefónica de forma remota. Una vez que aprovisione un teléfono, el teléfono automáticamente se configurará correctamente y podrá administrar los teléfonos de forma centralizada y remota,  sin tener que iniciar sesión en la interfaz web de cada uno de los teléfonos. &lt;br /&gt;
&lt;br /&gt;
El aprovisionamiento de teléfono facilita enormemente la administración cotidiana de los teléfonos IP. Esto hace que sea fácil de cambiar las contraseñas de extensión,realizar desvíos de llamadas, nombre a mostrar, mensajería y demás configuraciones, ya que puede hacerlo de forma centralizada para todos los teléfonos desde el portal de administración y luego transferir los cambios al teléfono. &lt;br /&gt;
&lt;br /&gt;
===== TFTP =====&lt;br /&gt;
&lt;br /&gt;
'''TFTP''' son las siglas de '''T'''rivial '''F'''ile '''T'''ransfer '''P'''rotocol ''(Protocolo de transferencia de archivos trivial)''. &lt;br /&gt;
&lt;br /&gt;
Es un protocolo de transferencia muy simple semejante a una versión básica de FTP. TFTP a menudo se utiliza para transferir pequeños archivos entre terminales en una red. &lt;br /&gt;
&lt;br /&gt;
Algunos detalles del TFTP: &lt;br /&gt;
&lt;br /&gt;
* Utiliza UDP (puerto 69) como protocolo de transporte (a diferencia de FTP que utiliza los &lt;br /&gt;
puertos 20 y 21 TCP). &lt;br /&gt;
* No puede listar el contenido de los directorios. &lt;br /&gt;
* No existen mecanismos de autenticación o cifrado. &lt;br /&gt;
* Se utiliza para leer o escribir archivos de un servidor remoto. &lt;br /&gt;
* Soporta tres modos diferentes de transferencia, &amp;quot;netascii&amp;quot;, &amp;quot;octet&amp;quot; y &amp;quot;mail”.&lt;br /&gt;
&lt;br /&gt;
===== Funcionamiento del servidor phoneprove-TFTP =====&lt;br /&gt;
&lt;br /&gt;
A continuación se muestra un esquema que facilita el entendimiento del funcionamiento del servidor phoneprove-TFTP:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Funcionamiento_Servidor.png‎ |center]]&lt;br /&gt;
&lt;br /&gt;
El servidor Phoneprove-TFTP se ''encarga del aprovisionamiento masivo de terminales'', es de gran utilidad porque cualquier cambio en los teléfonos pueden ser realizados a nivel DHCP y todos los teléfonos tomarán la nueva configuración luego de reiniciarlos. &lt;br /&gt;
&lt;br /&gt;
Desde phoneprove-TFTP se generara los archivos necesarios para cada teléfono y que sirven para ser aprovisionados automáticamente. &lt;br /&gt;
El servidor phoneprove-TFTP  tiene alojados los ficheros de configuración están ordenados según las direcciones MAC de los teléfonos. El teléfono “preguntará” al servidor cual es su fichero de configuración utilizando su dirección MAC. Este a través de su MAC , consulta en la base de datos para ofrecer al terminal los datos de configuración según su plantilla, cual sera su extensión , cual sera el usuario propietario, entre otras cosas.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
  '''Nota:''' En instalaciones grandes habrá más de uno, quizás uno por sede grande; depende de la infraestructura de DHCP.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Parámetros necesarios de Aprovisionamiento de Teléfonos =====&lt;br /&gt;
&lt;br /&gt;
 '''Notas:''' el aprovisionamiento desarrollador por '''MD'''tel, no emplea un fichero por cada &lt;br /&gt;
 teléfono, sino que emplea una plantilla por cada modelo de teléfono.&lt;br /&gt;
 Debe haber una '''configuración previa del servidor DHCP''' es necesario coordinar con el cliente la asignación de direcciones para &lt;br /&gt;
 los diferentes elementos de la plataforma '''''VIVA'''''it, fundamentalmente para terminales telefónicos; en este caso además será necesario &lt;br /&gt;
 activar la opción 66 que permitirá definir el servidor TFTP del que los terminales cogerán sus ficheros de aprovisionamiento.&lt;br /&gt;
 El aprovisionamiento desde el portal de administración solo es posible para aquellos teléfonos IP homologados y probados desde '''MD'''tel   &lt;br /&gt;
 [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_3.0#Terminales_telef.C3.B3nicos ver Terminales  telefónicos]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como existen parámetros comunes de todos los teléfonos de la misma marca de fabricante, muchos de los parámetros necesarios para el aprovisionamiento  como comentamos se han generado desde MDtel en forma de plantillas, que estarán disponibles en el portal de administración VIVAit [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Plantillas | ver plantilla del portal de administración VIVAit]]. &lt;br /&gt;
&lt;br /&gt;
La configuración de un teléfono SIP es muy sencilla y en no es necesario tener conocimientos avanzados de informática o de telefonía. Cada una de estas plantillas que sirven para aprovisionar un teléfono IP homologado, algunos de los parámetros predeterminados se explicarán a continuación .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== Parámetros de Aprovisionamiento globales ======&lt;br /&gt;
&lt;br /&gt;
* Configuración de la red y MAC. &lt;br /&gt;
* Zona horaria. &lt;br /&gt;
&lt;br /&gt;
====== Parámetros de Aprovisionamiento Personales ======&lt;br /&gt;
&lt;br /&gt;
Además de los parámetros de aprovisionamiento globales, el teléfono también obtendrá información de configuración individual, tales como: &lt;br /&gt;
&lt;br /&gt;
*Número de Extensión.&lt;br /&gt;
*Nombre y Contraseña de usuario SIP. &lt;br /&gt;
*Configuración de Teclas BLF.&lt;br /&gt;
*Contraseña de la Interfaz Web del Teléfono IP.&lt;br /&gt;
*Idioma de la Pantalla.&lt;br /&gt;
*Orden de Preferencia de los Codecs.&lt;br /&gt;
&lt;br /&gt;
===== Aprovisionamiento de teléfonos nivel usuario =====&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
  '''Notas:''' La dirección MAC debe estar especificada en letras mayúsculas.&lt;br /&gt;
  La dirección MAC del teléfono se puede encontrar en la etiqueta adhesiva en la parte inferior del teléfono, o de lo contrario se deberá acceder desde&lt;br /&gt;
  el menú del propio terminal.   &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Los pasos a seguir son los siguientes: &lt;br /&gt;
&lt;br /&gt;
'''1)''' Dar de alta el teléfono en el portal de administración, se debe seleccionar el modelo del teléfono, e indicar la dirección MAC del teléfono a aprovisionar, todo ello desde el portal de administración VIVAit. &lt;br /&gt;
Para mas información ver [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Aprovisionamiento del portal de administracion| aprovisionamiento del portal de administración VIVAit]]. &lt;br /&gt;
&lt;br /&gt;
'''2)''' En el mismo portal de administración se deberá crear una extensión , asignar a la extensión el teléfono que se quiera aprovisionar, elegir la plantilla adecuada del teléfono y el usuario propietario (solo si sera un puesto fijo) desde [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Extensiones | extensiones del portal de administración]]. &lt;br /&gt;
&lt;br /&gt;
'''3)''' Conectar el teléfono a la red LAN informática (conectarlo al router o switch) para que tenga acceso a Internet:&lt;br /&gt;
&lt;br /&gt;
:*El teléfono enviará un mensaje de multidifusión a través de la LAN. &lt;br /&gt;
:*Este será captado por la Central Telefónica siempre que esté en la misma LAN. &lt;br /&gt;
:*Al teléfono se le enviará una URL de aprovisionamiento. &lt;br /&gt;
&lt;br /&gt;
'''4)''' Como la mayoría de teléfonos IP del mercado al arrancar una vez sabiendo la URL de aprovisionamiento piden una serie de archivos de configuración para aprovisionarse vía TFTP. EL servidor phoneprove-TFTP, detectara la petición y a través de la MAC y datos del usuario, consultará en la base de datos los datos necesarios para aprovisionar al teléfono y si todo funciona correctamente mandara al teléfono IP los datos de configuración necesarios para funcionar. &lt;br /&gt;
&lt;br /&gt;
'''5)''' Asegúrese de que el teléfono encuentren el servidor TFTP, para ello esperar un tiempo adecuado para que termine el aprovisionamiento. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''6)''' Finalmente aparecerá  como registrado en la centralita, obtendrá una dirección IP y podra funcionar según la configuración establecida.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
  '''Nota''': Si no se reaprovisiona tras un periodo largo de tiempo, desenchufe el cable de alimentación eléctrica &amp;lt;br /&amp;gt; o el cable Ethernet (si se utiliza la alimentación en línea PoE) para reiniciar los teléfonos. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Aprovisionamiento de teléfonos nivel técnico =====&lt;br /&gt;
&lt;br /&gt;
====== Plantilla de configuración ======&lt;br /&gt;
&lt;br /&gt;
La plantilla de configuración empleadas en el apartado  [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Plantillas | plantilla del portal de administración VIVAit]] de cada modelo está formada por una serie de variables. &lt;br /&gt;
&lt;br /&gt;
Los valores se obtienen de la tabla de la base de datos CEN_TELEFONOS, CEN_USUARIOS, ACD_EXTENSIONES, ACD_NODOS, COM_NODOS... correspondientes a la extensión del teléfono, usuario, nodo, etc. &lt;br /&gt;
&lt;br /&gt;
 variable ${NODO1_C_NOMBRE}='corp-ast13'&lt;br /&gt;
 variable ${EXTEN_C_CLAVE_REGISTRO}='Tel21002'&lt;br /&gt;
 variable ${USU_C_CODIGO_POSTAL}=''28034'&lt;br /&gt;
 variable ${SEDE_C_CODIGO_POSTAL}='28034' &lt;br /&gt;
 variable ${USU_C_NOMBRE}='Juan Antonio'&lt;br /&gt;
 variable ${USU_C_APELLIDO2}='Ramirez'&lt;br /&gt;
 variable ${SEDE_C_NOMBRE}='RED_LAB'&lt;br /&gt;
 variable ${NODO2_C_NOMBRE}= NULL&lt;br /&gt;
 variable ${EXTEN_C_NOMBRE}='' 21002&lt;br /&gt;
 variable ${USU_C_LOCALIDAD}='' &lt;br /&gt;
 variable ${USU_C_NOMBRE_MOSTRAR}='Juan' &lt;br /&gt;
 variable ${NODO1_C_IP}='175.25.129.70' &lt;br /&gt;
 variable ${MODEL_C_PREFIJO_PLANTILLA_MAC}='T28P' &lt;br /&gt;
 variable ${SEDE_C_LOCALIDAD}='Madrid' &lt;br /&gt;
 variable ${USU_C_APELLIDO1}='Casas' &lt;br /&gt;
 variable ${NODO2_C_IP}= NULL&lt;br /&gt;
 variable ${TF_ID_EXTENSION}='5' &lt;br /&gt;
 cargando campos idExten=5&lt;br /&gt;
&lt;br /&gt;
====== Ficheros y paquetes necesarios ======&lt;br /&gt;
&lt;br /&gt;
'''Paquetes previos:''' libnet-tftpd-perl, tftp-hpa, libnet-address-ip-local-perl &lt;br /&gt;
'''Usuario de funcionamiento:''' root &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
   '''Nota:'''  los archivos y directorios que generemos podrian necesitar que se permitiera el acceso al archivo de lectura &amp;lt;br/&amp;gt; y escritura en el servidor TFTP.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Archivos necesarios:''' &lt;br /&gt;
&lt;br /&gt;
 /usr/local/sbin/phoneprov-tftp.pl &lt;br /&gt;
 /usr/local/sbin/phoneprov-tftp.pm&lt;br /&gt;
 /etc/MDtel/phoneprov-tftp.pconf &lt;br /&gt;
 /etc/init/phoneprov-tftp.conf &lt;br /&gt;
 /etc/logrotate.d/phoneprov-tftp &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Directorios a crear:''' &lt;br /&gt;
&lt;br /&gt;
 /var/lib/phoneprov-tftp/plt &lt;br /&gt;
 /var/lib/phoneprov-tftp/bin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Watchdog ====&lt;br /&gt;
&lt;br /&gt;
Se trata de una aplicación del astrisk que monitoriza el SIP y en caso de fallo, pasado un cierto tiempo, reinicia el asterisk y genera un core.&lt;br /&gt;
Si escribimos en CLI de asterisk perro tenemos los siguientes comandos:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Activar||Activar el Watchdog&lt;br /&gt;
|-&lt;br /&gt;
|Desactivar||Desactiva el Watchdog&lt;br /&gt;
|-&lt;br /&gt;
|Parada||Reinicia el asterisk y genera un core para pruebas&lt;br /&gt;
|-&lt;br /&gt;
|Reload||Realiza una recarga del Watchdog y aplica cambios en su configuración&lt;br /&gt;
|-&lt;br /&gt;
|Show||Ver el estado del Watchdog&lt;br /&gt;
&lt;br /&gt;
perro avisado=0 activo=1 segsDormir=1 segsInic=60 segsGuarda=30 maxErr=3&lt;br /&gt;
perro        nombre=sip_monitor_udp lwp=[15437] segsInic=60 segsGuarda=30 hace=11 err=0/5&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El dato &amp;quot;hace&amp;quot; informa de cuanto tiempo ha transcurrido desde el último tick. Facilita la calibración del parámetro de configuración &amp;quot;segs_guarda&amp;quot;, normalmente es 30&lt;br /&gt;
&lt;br /&gt;
Tiene un fichero de configuración ubicado en /etc/asterisk/MDcrash.conf&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Sección [perro]&lt;br /&gt;
||activo=yes (Si esta o no activo)&lt;br /&gt;
segs_dormir=1 (Un tick por segundo)&lt;br /&gt;
&lt;br /&gt;
segs_inic=60&lt;br /&gt;
&lt;br /&gt;
segs_guarda=30 &lt;br /&gt;
&lt;br /&gt;
max_errores=3  &lt;br /&gt;
|-&lt;br /&gt;
|Sección [sip_monitor_udp]&lt;br /&gt;
||segs_inic=60&lt;br /&gt;
&lt;br /&gt;
segs_guarda=30 (Cada 30 segundos si no reciba trafico SIP genera core)&lt;br /&gt;
&lt;br /&gt;
max_errores=5 (Número máximo de errores)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Proceso de Backup ====&lt;br /&gt;
Las plataformas '''''VIVA'''''it Call y '''''VIVA'''''it Suite incluyen un script para realizar un proceso de backup.&lt;br /&gt;
&lt;br /&gt;
Se utilizará el script '''backup.sh''', que se encuentra en el directorio '''etc/MDTel'''.&lt;br /&gt;
&lt;br /&gt;
Se ejecuta automaticamente mediante el uso de un cron&lt;br /&gt;
&lt;br /&gt;
'''texto del cron:'''&lt;br /&gt;
&lt;br /&gt;
 SHELL=/bin/sh&lt;br /&gt;
 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin&lt;br /&gt;
 # m h dom mon dow user command&lt;br /&gt;
 0 2 * * * root  /etc/MDtel/backup.sh /etc/MDtel/backup.cfg&lt;br /&gt;
&lt;br /&gt;
Para activar el script hay que descomentar la línea&lt;br /&gt;
 # m h dom mon dow user command&lt;br /&gt;
&lt;br /&gt;
Los directorios de los que se hace copia son:&lt;br /&gt;
* DIR=var/lib/asterisk/sounds/Particular&lt;br /&gt;
* DIR=var/lib/asterisk/moh&lt;br /&gt;
* DIR=etc&lt;br /&gt;
* DIR=etc/asterisk&lt;br /&gt;
* DIR=etc/cron.d&lt;br /&gt;
* DIR=etc/dahdi&lt;br /&gt;
* DIR=etc/exim4&lt;br /&gt;
* DIR=etc/ha.d&lt;br /&gt;
* DIR=etc/logrotate.d&lt;br /&gt;
* DIR=etc/MDtel&lt;br /&gt;
* DIR=etc/mysql&lt;br /&gt;
* DIR=etc/network&lt;br /&gt;
* DIR=etc/zabbix&lt;br /&gt;
* DIR=usr/local/sbin&lt;br /&gt;
&lt;br /&gt;
Por defecto se realiza un backup cada dos horas en la carpeta '''/var/spool/MDtel/backup'''.&lt;br /&gt;
&lt;br /&gt;
Para cambiar la ruta de destino del backup habrá que modificar el fichero backup.sh, en concreto modificar la variable MDTEL.&lt;br /&gt;
&lt;br /&gt;
El fichero ''' backup.cfg''' que se genera incluye copia de la siguiente información:&lt;br /&gt;
* Ficheros de configuración de la aplicación.&lt;br /&gt;
* Base de Datos.&lt;br /&gt;
* Dialplan.&lt;br /&gt;
&lt;br /&gt;
Se guardarán 10 copias del fichero ''' backup.cfg '''&lt;br /&gt;
&lt;br /&gt;
Para recuperar una plataforma utilizando el backup, habrá que instalar una máquina nueva y cargar los ficheros de configuración, Base de Datos y Dialplan guardados en el proceso de backup.&lt;br /&gt;
&lt;br /&gt;
=== Requerimientos de conectividad ===&lt;br /&gt;
&lt;br /&gt;
El esquema siguiente muestra como ejemplo todos los flujos de información existentes en un entorno típico de &amp;lt;big&amp;gt;'''telefonía corporativa (sin presencia)'''&amp;lt;/big&amp;gt; ('''''VIVA'''''it Call)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Flujos corporativa.png|cebter]]&lt;br /&gt;
&lt;br /&gt;
En el entorno de &amp;lt;big&amp;gt;'''Contact Center'''&amp;lt;/big&amp;gt;, encontramos los siguientes flujos &amp;lt;big&amp;gt;'''entre servicios'''&amp;lt;/big&amp;gt; (comunicaciones entre servidores, ('''''VIVA'''''it Suite)) &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Flujos Contact servicios.png|650px|center]]&lt;br /&gt;
&lt;br /&gt;
y &amp;lt;big&amp;gt;'''entre usuarios y servicios'''&amp;lt;/big&amp;gt; los reflejados a continuación:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Flujos Contact puestos.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Lado A!!Lado B!!Puertos!!Sentido!!Observ.&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor||TCP 5060||A -&amp;gt; B||Señalización SIP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor||UDP 5060||A -&amp;gt; B||Señalización SIP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor||10000 a 20000||A -&amp;gt; B&lt;br /&gt;
B -&amp;gt; A&lt;br /&gt;
||RTP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor TFTP||UDP 69||A -&amp;gt; B&lt;br /&gt;
B -&amp;gt; A&lt;br /&gt;
||Para actualización de terminales por TFTP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor NTP||UDP 123||A -&amp;gt; B||&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Desk||Servidor||TCP 4500||A -&amp;gt; B||Comunicación CTI&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Desk||Servidor||TCP 3306||A -&amp;gt; B||Acceso a Mysql Base de datos&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Desk||Servidor Syslog||UDP 514||A -&amp;gt; B||Para envio de logs de agente&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Supervisor||Servidor||TCP 3306||A -&amp;gt; B||Acceso a Mysql Base de datos&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker||Servidor||TCP 3306||A -&amp;gt; B||Acceso a Mysql Base de datos&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker||Servidor||TCP 8180||A -&amp;gt; B||&lt;br /&gt;
|-&lt;br /&gt;
|Actualizador||Servidor||TCP 80||A -&amp;gt; B||Necesario para actualizaciones de versiones de aplicaciones de agente y supervisores&lt;br /&gt;
|-&lt;br /&gt;
|Portal de administración||Servidor||TCP 8180||A -&amp;gt; B||Acceso al portal de administración '''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker Web||Servidor||TCP 8180||A -&amp;gt; B||&lt;br /&gt;
|-&lt;br /&gt;
|Monitor||Servidor||TCP 8180||A -&amp;gt; B||Wallboard&lt;br /&gt;
|-&lt;br /&gt;
|Monitorización||Servidor||TCP 80||A -&amp;gt; B||Acceso a portal monitorización (Zabbix)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Gateways ===&lt;br /&gt;
El concepto de gateway como tal no existe en la plataforma '''''VIVA'''''it; existen nodos de ACD y nodos de corporativa.&lt;br /&gt;
&lt;br /&gt;
A efectos de operación un nodo de corporativa es el que en cualquier caso asumirá las funcionalidades de gateway, y recibirá las conexiones (analógicas, digitales o IP) a sistemas externos o a la RTC&lt;br /&gt;
&lt;br /&gt;
El concepto gateway queda pues suscrito a entornos meramente comerciales&lt;br /&gt;
&lt;br /&gt;
Incluimos no obstante en este apartado los diagnósticos y operaciones básicos de conexiones a sistemas externos o RTC&lt;br /&gt;
&lt;br /&gt;
Para verificar los enlaces establecidos ejecutamos el siguiente comando en el terminal: '''sip show peers''' &lt;br /&gt;
&lt;br /&gt;
Al ejecutar este comando obtenemos la salida:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Enlace_Exterior.png |center]]&lt;br /&gt;
&lt;br /&gt;
Las columnas ''Host'' y ''Port'' nos muestran las conexiones establecidas y nos informa de un posible problema de conexión. &lt;br /&gt;
&lt;br /&gt;
Sabremos que ''no existe conexión'' cuando la columna Host tiene el valor '''Unspecified''' y en la columna Port aparece un '''0''' , a continuación se muestra un ejemplo:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ejemplo_no_conexion.png |center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#00FF00&amp;quot;&amp;gt;FALTA AQUI DIAGNOSTICOS Y OPERACIONES DE ENLACES EXTERNOS&amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Servidor de grabación === &lt;br /&gt;
==== Almacenamiento en la nube ====&lt;br /&gt;
Almacenamiento en la nube.&lt;br /&gt;
Existe la posibilidad de que tras un determinado periodo de tiempo las grabaciones sean movidas a un almacenamiento externo. De esta operativa se encarga el proceso /usr/local/sbin/mueveGrabaciones.pl que recibe como parámetro la ruta al archivo de configuración. Dicho archivo tiene los siguientes elementos:&lt;br /&gt;
&lt;br /&gt;
*$db: Nombre de la base de datos.&lt;br /&gt;
*$dbHost: servidor de MySQL&lt;br /&gt;
*$dbPort: Puerto del MySQL.&lt;br /&gt;
*$dbUsuario: Usuario de conexión a MySQL.&lt;br /&gt;
*$dbClave: Clave del usuario anterior.&lt;br /&gt;
*$dirBase: Directorio donde residen las grabaciones&lt;br /&gt;
*$diasCaducidad: Dias de antigüedad para mover las grabaciones&lt;br /&gt;
*$sftpHost: Servidor SFTP de destino&lt;br /&gt;
*$sftpPort: Puerto SFTP.&lt;br /&gt;
*$sftpUsuario: Usuario SFTP.&lt;br /&gt;
*$sftpClave: Clave del usuario SFTP.&lt;br /&gt;
*$simula: Si este campo vale 1, las grabaciones se copian, pero no se borran del directorio original, ni se actualiza su ubicación en la base de datos.&lt;br /&gt;
&lt;br /&gt;
La grabación indica donde se encuentra mediante el campo E_UBICACION_GRABACION, que puede tener los siguientes valores:&lt;br /&gt;
*Sin definir (0)&lt;br /&gt;
*En línea (10): Las grabaciones se encuentran en el servidor de grabaciones.&lt;br /&gt;
*Fuera de línea (20): las grabaciones se encuentran en una ubicación externa.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Reporting ===&lt;br /&gt;
La aplicación de reporting en general no tiene procesos habituales de operación y mantenimiento.&lt;br /&gt;
Los informes son obtenidos desde la interfaz gráfica o mediante un procedimiento de scripting, descritos en “Formato de fichero de intercambio para '''''VIVA'''''it Reporting”.&lt;br /&gt;
&lt;br /&gt;
==== Formato de fichero de intercambio para '''''VIVA'''''it Reporting ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Nombre !! Descripción !! Ejemplo&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;| Selección de registros&lt;br /&gt;
|-&lt;br /&gt;
| SQL_selec || Expresión SQL que se añadirá al where a la SQL principal. || C_ORIGEN like '6%' and C_COD_CLIENTE= '023'&lt;br /&gt;
|-&lt;br /&gt;
| SQL_select_leido || Filtro de selección legible&lt;br /&gt;
 || Skill igual a 60310&lt;br /&gt;
|-&lt;br /&gt;
| SQL_orden || Lista de campos por los que se ordenará, después de los que estén ya definidos en la plantilla. || C_ORIGEN, C_COD_CLIENTE&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Salida&lt;br /&gt;
|-&lt;br /&gt;
| FIC_extension || Extensión de fichero de salida: PDF, XLSX, CSV || PDF&lt;br /&gt;
|-&lt;br /&gt;
| FIC_tipo_entrega || 'P': Pantalla, 'D': Directorio, 'C': Correo || D&lt;br /&gt;
|-&lt;br /&gt;
| FIC_destino || Si 'C', dirección de correo, si 'D', ruta del directorio || D:\informes\&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Plantilla&lt;br /&gt;
|-&lt;br /&gt;
| INF_modelo || Ruta del fichero de plantilla || C:\Modelos\llamadas.rep&lt;br /&gt;
|-&lt;br /&gt;
| INF_descripción || Descripción del informe || Informe detallado de llamadas&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Base de datos&lt;br /&gt;
|-&lt;br /&gt;
| BD_ip || IP o nombre de máquina || &lt;br /&gt;
|-&lt;br /&gt;
| BD_puerto || Puerto de MySQL || &lt;br /&gt;
|-&lt;br /&gt;
| BD_base_datos || Nombre de base de datos || &lt;br /&gt;
|-&lt;br /&gt;
| BD_usuario || Usuario de base de datos || &lt;br /&gt;
|-&lt;br /&gt;
| BD_clave || Clave de acceso cifrada || &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Parámetros&lt;br /&gt;
|-&lt;br /&gt;
| PAR_desde_vis || Fecha inicial de selección en formato legible (o '-' si no hay) || 01/01/2016&lt;br /&gt;
|-&lt;br /&gt;
| PAR_hasta_vis || Fecha final de selección en formato legible (o '-' si no hay) || 31/01/2016&lt;br /&gt;
|-&lt;br /&gt;
| PAR_01 || Parámetro opcional || &lt;br /&gt;
|-&lt;br /&gt;
| .. || .. || &lt;br /&gt;
|-&lt;br /&gt;
| PAR_20 || Parámetro opcional || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El fichero tendrá un nombre único para permitir la generación simultánea de informes.&lt;br /&gt;
El fichero es borrado por la aplicación de forma automática.&lt;br /&gt;
Se pasa a la aplicación de generación de informes como parámetro. Por ejemplo:&lt;br /&gt;
 “C:\Archivos de Programa\MDtel\Nimitz\LanzaInformes\LanzaInformes.exe”&lt;br /&gt;
 “C:\Archivos de Programa\MDtel\Nimitz\LanzaInformes\NIM00001.tmp”&lt;br /&gt;
&lt;br /&gt;
Ejemplo de fichero:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| SQL_selec=(DAT_ACUMULADOS_COLAS.ID_COLA in (11))&lt;br /&gt;
&lt;br /&gt;
SQL_select_leido=Skill igual a 60310&lt;br /&gt;
&lt;br /&gt;
SQL_orden=&lt;br /&gt;
FIC_extension=pdf&lt;br /&gt;
&lt;br /&gt;
FIC_tipo_entrega=P&lt;br /&gt;
&lt;br /&gt;
FIC_destino=C:\&lt;br /&gt;
&lt;br /&gt;
INF_modelo=skill_setsi.rep&lt;br /&gt;
&lt;br /&gt;
INF_descripcion=Skill. SETSI&lt;br /&gt;
&lt;br /&gt;
BD_ip=172.25.1.2&lt;br /&gt;
&lt;br /&gt;
BD_puerto=3306&lt;br /&gt;
&lt;br /&gt;
BD_base_datos=nimitz&lt;br /&gt;
&lt;br /&gt;
BD_usuario=nimitz&lt;br /&gt;
&lt;br /&gt;
BD_clave=UIk5jNY9PVX5ogg=&lt;br /&gt;
&lt;br /&gt;
PAR_desde_vis=-&lt;br /&gt;
&lt;br /&gt;
PAR_hasta_vis=-&lt;br /&gt;
&lt;br /&gt;
PAR_01=&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Resumen de significado de columnas en reporting histórico ====&lt;br /&gt;
Esta información se puede consultar en el siguiente enlace:&lt;br /&gt;
&lt;br /&gt;
http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Documentacion_de_usuario_VIVAit_Suite_3.3#Resumen_del_valor_de_las_columnas_que_aparecen_en_los_informes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===== Agente,asistencia diaria y agente. Asistencia diaria del grupo =====&lt;br /&gt;
&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo de llamado:''' Tiempo de ring en llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo disponible:''' Tiempo que el agente estuvo conectado y no está&lt;br /&gt;
incluido en ninguno de los anteriores.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas transferidas:''' Número de llamadas ACD que fueron&lt;br /&gt;
transferidas por el agente.&lt;br /&gt;
&lt;br /&gt;
===== Agente. Aux y Grupo Aux =====&lt;br /&gt;
&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Desglose de tiempos AUX:''' Tiempo que el agente estuvo en cada uno&lt;br /&gt;
de los motivos de pausa.&lt;br /&gt;
&lt;br /&gt;
===== Agente. Resumen diario =====&lt;br /&gt;
&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo de llamado:''' Tiempo de ring en llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo disponible:''' Tiempo que el agente estuvo conectado y no está&lt;br /&gt;
incluido en ninguno de los anteriores.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas entrada Ext:''' Número de llamadas entrantes NO ACD a la&lt;br /&gt;
extensión.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas salida Ext:''' Número de llamadas salientes NO ACD desde la&lt;br /&gt;
extensión.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas transferidas:''' Número de llamadas ACD que fueron&lt;br /&gt;
transferidas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas retenidas:''' Número de retenciones que sufrieron las&lt;br /&gt;
llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACD:''' Tiempo ACD/ Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACW:''' TiempoACW/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio de entrada a la Ext:''' Tiempo entrada Ext/&lt;br /&gt;
Llamadas entrada Ext.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio de salida a la Ext:''' Tiempo salida Ext/ Llamadas&lt;br /&gt;
salida Ext.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio retención:''' Tiempo retención/Llamadas retenidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % Ocupación con ACW:''' ((Tiempo ACD+ Tiempo retención+ Tiempo&lt;br /&gt;
ACW)/Tiempo con personal)* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % Ocupación sin ACW:''' ((Tiempo ACD+ Tiempo retención)/Tiempo&lt;br /&gt;
con personal)* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % disp.:''' (Tiempo disponible/Tiempo conectado)* 100.&lt;br /&gt;
&lt;br /&gt;
===== Agente. Grupo ACD diario =====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención de un grupo&lt;br /&gt;
ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Ayuda:''' Número de llamadas contestadas por el agente que necesitaron&lt;br /&gt;
de consulta de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas retenidas:''' Número de retenciones que el agente realizó&lt;br /&gt;
sobre las llamadas de ese grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas por&lt;br /&gt;
el agente en ese grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Trans. salida:''' Llamadas que finalizan con una transferencia.&lt;br /&gt;
&lt;br /&gt;
===== Grupo ACD. Reporte diario con AHT =====&lt;br /&gt;
&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACD:''' Tiempo ACD/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACW:''' Tiempo ACW/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención de un grupo&lt;br /&gt;
ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente de un grupo ACD.&lt;br /&gt;
'''• Tiempo de llamado:''' Tiempo de ring en llamadas ACD de un grupo&lt;br /&gt;
ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo disponible:''' Tiempo que el agente estuvo conectado y no está&lt;br /&gt;
incluido en ninguno de los anteriores.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Ayuda:''' Número de llamadas ACD contestadas por el agente en las que&lt;br /&gt;
necesito hacer uso de la consulta.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas retenidas:''' Número de retenciones que el agente realizó&lt;br /&gt;
sobre las llamadas ACD contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas contestadas ACD&lt;br /&gt;
estuvieron retenidas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Trans. salida:''' Número de llamadas ACD que fueron transferidas por el&lt;br /&gt;
agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• AHT:''' (Tiempo ACD+ Tiempo ACW+ Tiempo retención)/Llamadas&lt;br /&gt;
ACD.(Average Handle Time)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Grupo ACD. QOS  =====&lt;br /&gt;
&lt;br /&gt;
'''• Vel. prom. de resp.:''' Tiempo total de espera de llamadas antes de ser&lt;br /&gt;
atendidas/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo prom. de aban.:''' Tiempo abandonadas(tiempo que las&lt;br /&gt;
llamadas abandonadas estuvieron en el grupo ACD)/Llamadas&lt;br /&gt;
abandonadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ofrecidas:''' Número de llamadas entrantes al grupo&lt;br /&gt;
ACD(Llamadas ACD+ Abandonadas+ Desbordadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas contestadas por los agentes.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas abandonadas:''' Número de llamadas colgadas por el cliente&lt;br /&gt;
en el grupo ACD antes de ser contestadas o desbordadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Desconectadas por ACD:''' Número de llamadas desbordadas que al&lt;br /&gt;
salir del grupo ACD se cuelgan.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Desbordadas por ACD:''' Número total de llamadas desbordadas(incluye&lt;br /&gt;
las desconectadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas atendidas en &amp;lt; 20s:'''Número de llamadas contestadas con&lt;br /&gt;
tiempo de respuesta menor a 20 segundos.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo total de espera:''' Tiempo total que las llamadas estuvieron&lt;br /&gt;
esperando antes de ser atendidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % N.A.:''' Llamadas ACD/(Llamadas ACD+ Llamadas abandonadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % N.D.S.:''' (Llamadas atendidas en &amp;lt; 20s/Llamadas ofrecidas)* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• T.M.O:''' (Tiempo ACD+ Tiempo ACW+ Tiempo retención)/Llamadas&lt;br /&gt;
ACD.(Tiempo Medio Operación)&lt;br /&gt;
&lt;br /&gt;
===== Informe conducción (VDN Conducción) =====&lt;br /&gt;
&lt;br /&gt;
'''•Entrantes al grupo ACD:''' Número de llamadas ofrecidas al grupo&lt;br /&gt;
ACD(Contestadas+ Abandonadas+ Desbordadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Llamadas contestadas:''' Número de llamadas contestadas por un agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Contestadas NDS:''' Número de llamadas contestadas en nivel de servicio,&lt;br /&gt;
tiempo de respuesta&amp;lt; 20 segundos.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Abandonadas:''' Número de llamadas abandonadas, colgadas por el cliente&lt;br /&gt;
antes de ser contestadas por un agente o desbordadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Desconectadas:''' Número de llamadas desbordadas que fueron colgadas al&lt;br /&gt;
salir del grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Desbordadas:''' Número total de llamadas desbordadas (incluye desconectadas)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Llamadas retenidas:''' Número de retenciones que el agente realizó sobre las&lt;br /&gt;
llamadas ACD contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•% N.A.:''' (Llamadas contestadas/(Llamadas contestadas+ Abandonadas+&lt;br /&gt;
Desbordadas))* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•% N.D.S.:''' (Contestadas NDS/(Llamadas contestadas+ Abandonadas + Desbordadas))*100&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•% Abandonadas:''' (Abandonadas/(Llamadas contestadas+ Abandonadas+ Desbordadas))* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. RING:''' Tiempo de ring en llamadas ACD(entrantes).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•ACDTIME:''' Tiempo de conversación ACD de las llamadas contestadas o&lt;br /&gt;
realizadas por el agente excluido el tiempo de retención de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. ACW:''' Tiempo dedicado por el agente a tareas administrativas tras&lt;br /&gt;
finalizar las llamadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum HOLD:''' Tiempo que las llamadas contestadas ACD estuvieron retenidas&lt;br /&gt;
por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. OTHER:''' Tiempo total que las llamadas estuvieron esperando en el&lt;br /&gt;
grupo ACD antes de ser atendidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. AVAIL:''' Acum. STAFF- (ACDTIME+ Acum. ACW+ Acum. RING+ Acum.&lt;br /&gt;
HOLD+ Acum. AUX).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. Staff:''' Suma del Tiempo conectado de todos los agentes al grupo&lt;br /&gt;
ACD(Este tiempo se repercute en todos los grupos ACD a los que esta&lt;br /&gt;
conectado el agente).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. AUX:''' Suma del Tiempo en pausa de todos los agentes que estén&lt;br /&gt;
conectados al grupo ACD(Este tiempo se repercute en todos los grupos ACD a&lt;br /&gt;
los que esta conectado el agente).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Prom. ACD:''' ACDTIME/Llamadas contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Prom. ACW:''' Acum. ACW/Llamadas contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Prom. HOLD:''' Acum. HOLD/Llamadas retenidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•AHT:''' (ACDTIME+ Acum. ACW+ Acum. HOLD)/Llamadas contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Vel. prom. de resp.:''' Tiempo total de espera de llamadas antes de ser&lt;br /&gt;
atendidas/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Tiempo máx. de espera:''' Tiempo de la llamada que estuvo mas tiempo en el&lt;br /&gt;
grupo ACD hasta que fue atendida.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Agentes en PH:''' (Acum. Staff- Acum. AUX)/1800(Agentes conectados que no&lt;br /&gt;
están en pausa en el intervalo).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Agentes Staff:''' Acum. Staff/1800(Agentes conectados en el intervalo)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Desglose de tiempos AUX:''' Tiempo que el agente estuvo en cada uno de los&lt;br /&gt;
motivos de pausa.&lt;br /&gt;
&lt;br /&gt;
===== Informe de producción =====&lt;br /&gt;
&lt;br /&gt;
'''• LL. ACD:'''Número de llamadas contestadas por ese agente para ese&lt;br /&gt;
grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. HOLD:''' Número de retenciones efectuadas para las llamadas&lt;br /&gt;
contestadas en ese grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Redir.:''' Número de llamadas no contestadas por un agente que&lt;br /&gt;
fueron redirigidas de nuevo a la cola.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. No colgadas cliente:''' Número de llamadas que terminaron sin el&lt;br /&gt;
colgado del cliente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Aband.:''' Número de llamadas abandonadas en ese grupo ACD, este&lt;br /&gt;
valor es independiente del agente por tanto se repite el valor para todos&lt;br /&gt;
los agentes en un mismo grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Transfer.:''' Número de llamadas ACD que fueron transferidas por el&lt;br /&gt;
agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Conf:''' Número de llamadas ACD en las que el agente estableció&lt;br /&gt;
conferencia.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• S. Extensión:''' Número de llamadas salientes de extensión, este valor es&lt;br /&gt;
independiente del grupo ACD se repite el valor para todos los grupos&lt;br /&gt;
ACD en los que está conectado el agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. Staff:''' Tiempo que el agente estuvo conectado al grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. RING:''' Tiempo de ring en las llamadas ACD(entrantes) que&lt;br /&gt;
fueron contestadas por el agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. ACD:''' Tiempo de conversación de las llamadas ACD(entrantes)&lt;br /&gt;
que fueron contestadas por el agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas que fueron contestadas por él.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum HOLD:''' Tiempo que las llamadas ACD(entrantes) para ese grupo&lt;br /&gt;
ACD que fueron contestadas por el agente estuvieron retenidas.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. AVAIL:''' Acum. STAFF- (Acum. ACD+ Acum. ACW+ Acum. RING+&lt;br /&gt;
Acum. HOLD+ Acum. AUX)..&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. AUX:''' Tiempo que el agente estuvo en pausa este valor es&lt;br /&gt;
independiente del grupo ACD se repite el valor para todos los grupos&lt;br /&gt;
ACD en los que está conectado el agente..&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Desgloses de tiempos AUX, tiempo AUX por cada uno de los&lt;br /&gt;
motivos.''' este valor es independiente del grupo ACD se repite el valor&lt;br /&gt;
para todos los grupos ACD en los que está conectado el agente.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Consideraciones adicionales =====&lt;br /&gt;
&lt;br /&gt;
Los tiempos se insertan en el intervalo en el que se deja ese &amp;quot;estado&amp;quot;, esto provoca que en un intervalo pueda ser mayor el tiempo ACD que el tiempo conectado.&lt;br /&gt;
&lt;br /&gt;
''* Ejemplo:''&lt;br /&gt;
&lt;br /&gt;
 -Llamada: Duración 15 minutos Hora fin de la llamada 13:01&lt;br /&gt;
 -Llamada: Duración 20 minutos Hora fin de la llamada 13:24&lt;br /&gt;
 Suma de las duraciones de las llamadas para el intervalo ''35 minutos'' tiempo&lt;br /&gt;
 conectado del agente en el intervalo ''30 minutos.''&lt;br /&gt;
 Cuando los periodos consultados sean mas amplios (diario, mensual) los&lt;br /&gt;
 desfases tenderán a desaparecer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Otros Diagnósticos y operaciones básicas ==&lt;br /&gt;
=== Arranque y apagado de la plataforma ===&lt;br /&gt;
&lt;br /&gt;
En general el arranque y apagado de cada nodo de una plataforma '''''VIVA'''''it es el estándar de un procedimiento ordenado de apagado en una máquina linux: '''&amp;quot;Shutdown -h now&amp;quot;''' o comando de apagado inmediato o programado equivalente&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El orden de arranque de la plataforma deberá ser:&lt;br /&gt;
# En primer lugar arrancar el nodo con la base de datos de tiempo real&lt;br /&gt;
# Una vez finalizado el arranque del punto 1, arrancar el nodo con la base de datos de réplica&lt;br /&gt;
# Una vez finalizado el arranque del punto 2, arrancar el resto de nodos en cualquier orden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Al respecto del orden de apagado de nodos, es el siguiente:&lt;br /&gt;
# En primer lugar se apagarán, en cualquier orden, los nodos que NO CONTENGAN bases de datos de tiempo real ni bases de datos de réplica&lt;br /&gt;
# Una vez apagados totalmente todos los nodos del punto 1, apagaremos el nodo (o nodos) con bases de datos de réplica&lt;br /&gt;
# Una vez apagados totalmente todos los nodos del punto 2, se apagará el nodo con la base de datos de tiempo real&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== Nivel matriz de conmutación ===&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Grabación ===&lt;br /&gt;
&lt;br /&gt;
==== Configuración de la grabación en la plataforma corporativa ====&lt;br /&gt;
Para que una llamada se grabe, lo primero de todo es que  alguien tenga la capacidad de grabar. Esto se consigue diciendo al nodo que sea grabador. Esto provoca que el nodo llame al mixmonitor para grabar y se inserte un registro en el DAT_GRABACIONES. Esto no significa que ya las llamadas se vayan a grabar, ya que para eso tiene que ser procesadas por un nodo que sea grabador. Hay tres, llamémosle elementos, que se pueden grabar:&lt;br /&gt;
&lt;br /&gt;
* El nodo, es decir todo lo que el nodo enrute&lt;br /&gt;
* Prerutas&lt;br /&gt;
* Objetos: que son las extensiones, usuarios, grupos corporativos, etc.&lt;br /&gt;
&lt;br /&gt;
Tenemos tres formas de grabar:&lt;br /&gt;
&lt;br /&gt;
* Grabar con beep periódico&lt;br /&gt;
* Grabar sin beep periódico&lt;br /&gt;
* Descartar grabación&lt;br /&gt;
&lt;br /&gt;
Si de los tres elementos tenemos que uno grabe, ya sea con o sin beep periódico, esa llamada se va a grabar ya que son OR, en cuanto haya un elemento que diga que grabe se va a grabar.&lt;br /&gt;
&lt;br /&gt;
Al igual pasa si tenemos que un elemento tenga descartar la grabación. La grabación no se inicia.&lt;br /&gt;
&lt;br /&gt;
Referente al campo de Modo de grabación en infraestructura, este no se emplea para la grabación de corporativo, sino que solo tiene validez en ACD. Para grabación en el ACD hay que, como se ha dicho anteriormente poner un nodo que sea grabador y especificar un elemento de los tres que hay cual es el que se va a grabar.&lt;br /&gt;
&lt;br /&gt;
Para que exista una grabación a de existir un segmento asociado a esta. Los segmentos se tratan en las prerutas. Hay un campo es las prerutas que es Generar segmento al enrutar. Si está se generará el segmento del tipo de la preruta y su correspondiente grabación si esta está configurada. Si le decimos que no genere segmentos al enrutar y el sistema está configurado para que grabe, el recordCentral creará un tipo de segmento llamado externo para esa grabación. Podemos configurar si queremos que se cree o no ese segmento, para eso hay que modificar el fichero de configuración del recordCentral y poner un tiempo muy alto al campo $segmExternoMinSegs. También podemos configurar que segmentos queremos que se graben. Por defecto el recordCentral va configurado para que se graben todos los segmentos. Para decirle que solo grabe cierto tipo de segmentos hay que ponerlos los que queramos que si se graben en la variable $tiposSegmentoGrabar del fichero de configuración del recordCentral.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que el servidor de grabación esta activo ====&lt;br /&gt;
&lt;br /&gt;
Si al ejecutar el comando '''''nc ip_maquina 1114''''',si no se recibe ninguna respuesta, significa el servidor de grabación no estaría activo. &lt;br /&gt;
También usando el comando ''''' ps aux | grep recordCentral ''''', donde si no escribe ningún resultado implica que tampoco esta activo.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que los nodos están conectados al servidor de grabación ====&lt;br /&gt;
&lt;br /&gt;
Debemos fijarnos en la linea de respuesta del comando '''''nc ip_maquina 1114''''', que seria:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| root@smadavacdrecord1:~# nc localhost 1114&lt;br /&gt;
recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423&lt;br /&gt;
160112'&lt;br /&gt;
&lt;br /&gt;
recordCentral MYSQL cnx=1&lt;br /&gt;
&lt;br /&gt;
recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
&lt;br /&gt;
recordCenral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
&lt;br /&gt;
'''recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10''''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el parámetro &amp;quot;fase=0&amp;quot; es el numero que identifica el recordCentral, los demás parámetros nos indicaran los nodos disponibles , que funcionan o no en el servidor. Entonces &amp;quot;gestión=4,6,7,8,9,10&amp;quot; indica el id de los nodos que maneja el proceso.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que un nodo tiene activo el agente de grabación ====&lt;br /&gt;
Si al ejecutar el comando '''''nc ip_maquina 1113''''', no se recibe ninguna respuesta, significa que el nodo no tiene activo el agente de grabación.&lt;br /&gt;
También usando el comando ''''' ps aux | grep recordNodo''''', donde si no escribe ningun resultado implica que tampoco esta activo.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que un nodo está subiendo archivos de grabación al servidor ====&lt;br /&gt;
Debemos fijarnos en la linea de respuesta del comando '''''nc ip_maquina 1114''''', que seria:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| root@smadavacdrecord1:~# nc localhost 1114&lt;br /&gt;
recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423&lt;br /&gt;
160112'&lt;br /&gt;
&lt;br /&gt;
recordCentral MYSQL cnx=1&lt;br /&gt;
&lt;br /&gt;
recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
&lt;br /&gt;
recordCenral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
&lt;br /&gt;
'''recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10''''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Fijándonos en &amp;quot;descarga=8,6,4,7,10,9&amp;quot; nos confirma que todos los nodos que maneja el proceso funcionan perfectamente y el servidor puede manejar las grabaciones.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de grabaciones que se hayan quedado enganchadas en un nodo ====&lt;br /&gt;
Podemos fijarnos en los dos comandos, para '''''nc ip_maquina 1114''''':&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| root@smadavacdrecord1:~# nc localhost 1114&lt;br /&gt;
recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423&lt;br /&gt;
160112'&lt;br /&gt;
&lt;br /&gt;
recordCentral MYSQL cnx=1&lt;br /&gt;
&lt;br /&gt;
recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
&lt;br /&gt;
recordCenral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
&lt;br /&gt;
'''recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10''''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Fijándonos en el campo &amp;quot;cuarentena=''&amp;quot; indica que ninguno de los nodos tiene problemas.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación del estado de ocupación del almacenamiento temporal de grabaciones en un nodo. ====&lt;br /&gt;
&lt;br /&gt;
Desde un SSH ejecuta el comando '''''df - h''''' en la maquina donde creamos que debe estar ejecutando el proceso recordNod:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Filesystem !! Size !! Used !! Avail !! Use% !! Mounted on&lt;br /&gt;
|-&lt;br /&gt;
| udev || 486M || 4,0K || 486M || 1,00% || /dev&lt;br /&gt;
|-&lt;br /&gt;
| tmpfs || 100M || 416K || 99M || 1,00% || /run&lt;br /&gt;
|-&lt;br /&gt;
| '''/dev/vda1''' ||''' 236M''' ||''' 68M''' ||''' 156M''' ||''' 31,00% '''||''' /boot'''&lt;br /&gt;
|-&lt;br /&gt;
| tmpfs || 100M || 48K || 100M || 1,00% || /var/spool/asterisk/monitor&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Nos fijaríamos en la línea marcada en negrita, el campo &amp;quot;Use%&amp;quot; indicara el porcentaje de almacenamiento temporal de grabaciones en un nodo.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Escuchas e intrusiones en asterisk===&lt;br /&gt;
'''CallSpy''' es una aplicación elaborada para asterisk que permite a un usuario realizar escuchas e &lt;br /&gt;
intrusiones en llamadas. &lt;br /&gt;
En realidad tenemos dos aplicaciones en asterisk, CallSpy y CallSpyee. &lt;br /&gt;
====CallSpy ====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 '''Nota:''' Como mucho se pueden tener a dieciséis personas al mismo tiempo usando esta aplicación. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como hemos mencionado anteriormente, esta aplicación permite la escucha de llamadas y, &lt;br /&gt;
opcionalmente, realiza la función de intrusión. Tiene tres opciones de configuración obligatorios &lt;br /&gt;
que mostramos a continuación: &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 CallSpy(&amp;lt;tipoEspiado&amp;gt;,&amp;lt;expRegEspiado&amp;gt;,&amp;lt;parametrosConf&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
La opción '''&amp;lt;tipoEspiado&amp;gt;''' se refiere a que tipo de objeto que podemos espiar correspondiente, solo debe elegirse un único tipo: &lt;br /&gt;
*'''c:''' escuchar una cola&lt;br /&gt;
*'''v:''' escuchar un vdn &lt;br /&gt;
*'''a:''' escuchar a un agente &lt;br /&gt;
*'''e:''' escuchar extensión &lt;br /&gt;
La opción '''&amp;lt;expRegEspiado&amp;gt;''' representa el número de la cola, VDN, agente o extensión que queremos escuchar. Tiene que ser una expresión regular. &lt;br /&gt;
La opción '''&amp;lt;parametrosConf&amp;gt;''' se refiera a los parámetros de configuración para la llamada que podemos espiar, se pueden combinar o juntar : &lt;br /&gt;
*'''q:''' Desactiva el 'beep' al comienzo de cada nueva llamada. &lt;br /&gt;
*'''v([value]):''' Ajusta el volumen en el rango -4 a 4 (más alto, mas volumen). &lt;br /&gt;
*'''e:''' Habilita el que se pueda cambiar a otra llamada de la misma extensión. &lt;br /&gt;
*'''w:''' Habilita el que se pueda activar la intrusión (whisper).&lt;br /&gt;
Una vez iniciada la escucha, solo falta que entre una llamada al objetivo que estemos espiando. Al &lt;br /&gt;
iniciar la escucha, se puede hacer lo siguiente: &lt;br /&gt;
*Pulsando '''#''' modifica el volumen de escucha. &lt;br /&gt;
*Pulsando '''*''' cambia a una nueva llamada. &lt;br /&gt;
*Pulsando '''1''' si esta habilitado, cambia a otra llamada de la misma extensión. &lt;br /&gt;
*Pulsando '''2''' si esta habilitado, inicia la función de intrusión. &lt;br /&gt;
*Pulsando '''3''' desactiva la función de intrusión. &lt;br /&gt;
====CallSpyee (espiado)====&lt;br /&gt;
Mediante esta aplicación indicamos los parámetros que permite a una llamada ser seleccionada para &lt;br /&gt;
escuchar. Las opciones de configuración son: &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 CallSpyee([CID_NUM],[cola],[vdn],[agen],[exten]) &lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:'''No son parámetros obligatorios, por lo que no hace falta rellenar todos los campos pero si respetar sus posiciones separadas por comas.&amp;lt;small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
La explicación de los parámetros es la siguiente:&lt;br /&gt;
*'''CID_NUM:''' representa el call ID de la llamadas &lt;br /&gt;
*'''cola:'''representa el número de la cola que se quiere espiar (${QUEUE} ).&lt;br /&gt;
*'''vdn:'''   representa el número del VDN que se quiere espiar (${VDN} ).&lt;br /&gt;
*'''agen:''' representa el número del agente que se quiere espiar.&lt;br /&gt;
*'''exten:''' representa el número de la extensión que se quiere espiar (${EXTENSION}) .&lt;br /&gt;
&lt;br /&gt;
Por ejemplo si queremos escuchar todas las llamadas en las que participa una extensión determinada pondremos en la macro de extensiones: &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,,,${EXTENSION}) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Cambios para el dialplan de asterisk==== &lt;br /&gt;
El funcionamiento de este tipo de servicio conlleva un cambio en el dialplan de asterisk. En cada macro correspondiente se pondrá los diferentes CallSpyee para VDN, colas  , extensiones y agentes. &lt;br /&gt;
Pasos a seguir: &lt;br /&gt;
*Paso 1. Creación de un código de intrusión para cada tipo según necesidad (cola, VDN, agente y &lt;br /&gt;
extensión). &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Ejemplo '''MD'''tel:  declaramos como código de intrusión a Agente *44*NUMERO &lt;br /&gt;
 ;========================================== &lt;br /&gt;
 ;======== Intrusion a Agente &lt;br /&gt;
 ;========================================== &lt;br /&gt;
 exten =&amp;gt; _*44*X.,1,set(CadMarcar=intrusionEspiado) &lt;br /&gt;
 exten =&amp;gt; _*44*X.,n,set(DesL=SERVICIO) &lt;br /&gt;
 exten =&amp;gt; _*44*X.,n,set(datoServicio=^${EXTEN:4}) &lt;br /&gt;
 exten =&amp;gt; _*44*X.,n,Goto(finMacro,1) &lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' En la tercera línea podemos observar la expresión regular que se le pasara al CallSpy correspondiente con el número marcado por el espia. &amp;lt;small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*Paso 2.Llamar a CallSpy con la configuración deseada.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Ejemplo '''MD'''tel:  llamada a CallSpy especificando que vamos a espiar una cola (la c del primer parámetro, con la&lt;br /&gt;
 extensión introducida en el código de intrusión y con whisper, es decir, función de intrusión habilitada. &lt;br /&gt;
 ;------------------------------------------------------------------------ &lt;br /&gt;
 ; Intrusion a Espiado &lt;br /&gt;
 ;------------------------------------------------------------------------ &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,1,NoOp &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,n,GotoIf($[&amp;quot;${datoServicio}&amp;quot;=&amp;quot;&amp;quot;]?colgar) &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,n,CallSpy(c,${datoServicio},w) &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,n(colgar),Hangup &lt;br /&gt;
|}&lt;br /&gt;
* Paso 3. Llamar a CallSpyee con la configuración de las llamadas candidatas a ser escuchadas.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Ejemplo '''MD'''tel: &lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,,,,${EXTENSION}) → Para extensiones &lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,${QUEUE},,,) → Llamadas espiadas por cola &lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,,${VDN},,) → Llamadas espiadas por VDN &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Calendarios ===&lt;br /&gt;
&lt;br /&gt;
Para la configuración de los Calendarios se hace uso de '''CalDAV''', estándar de Internet que permite a un cliente acceder a información de planificación en un servidor remoto. Permite que varios clientes accedan a la misma información, facilitando la cooperación. Muchas aplicaciones, tanto clientes como servidores, son compatibles con este protocolo.&lt;br /&gt;
&lt;br /&gt;
Si deseamos crear un calendario en la plataforma '''VIVAit''' podemos hacerlo siguiendo el  siguiente enlace:  &lt;br /&gt;
Para comprobar que el servidor de calendarios funciona correctamente bastaría con cargar en la barra de direcciones la siguiente url: [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Calendarios |Calendarios]]&lt;br /&gt;
&lt;br /&gt;
http://${NODO.HOST}/dav/html/cal.php/calendars/${DAV.CUENTA}/${DAV.CALENDARIO}&lt;br /&gt;
&lt;br /&gt;
donde,&lt;br /&gt;
&lt;br /&gt;
* '''NODO.HOST:''' es la ip del servidor calendar&lt;br /&gt;
* '''DAV.CUENTA:''' hace referencia a la cuenta de usuario&lt;br /&gt;
* '''DAV.CALENDARIO:''' hace referencia el nombre de la cuenta&lt;br /&gt;
&lt;br /&gt;
Una vez que se carga la url sabremos que el servidor funciona correctamente si visualizamos lo siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla de 2016-07-21 12_43_58.png || 1020px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si el sistema nos pide usuario y clave querrá decir que el servidor de calendarios está operativo en esa maquina&lt;br /&gt;
&lt;br /&gt;
Para comprobar que funciona en la consola de asterisk usaremos los comandos &lt;br /&gt;
 calendar show calendars&lt;br /&gt;
 calendar show calendar [nombreCalendario]&lt;br /&gt;
&lt;br /&gt;
 '''Nota:''' Debido bugs detectados, el proceso requerirá:&lt;br /&gt;
       - La realización de una sincronización manual de la sección &amp;quot;mdcal&amp;quot; desde el portal de administración&lt;br /&gt;
       - Añadir la línea '''''#include &amp;quot;/etc/asterisk/mdcal.conf&amp;quot;''''' en el fichero calendars.conf y hacer &amp;quot;reload&amp;quot; de asterisk&lt;br /&gt;
       - En la máquina donde esté instalado el servidor de calendarios apuntar a la IP de la BDTR (/var/www/dav/config.php)&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Syslog de agentes ===&lt;br /&gt;
'''''Syslog''''' es un estándar para el envío de mensajes de registro en una red informática IP. Por '''''Syslog''''' se conoce tanto al protocolo de red como a la aplicación o biblioteca que envía los mensajes de registro. Se lanza automáticamente al arrancar un sistema Unix, y es el encargado de guardar informes sobre el funcionamiento de la máquina (eventos, seguridad del sistema, etc) pero puede contener también cualquier información como mensajes de las diferentes partes del sistema (núcleo, programas...) y los envía y/o almacena en diferentes localizaciones transmitiéndose mediante un puerto UDP. Esto permite concentrar los registros de múltiples máquinas en un único punto simplificando la labor de gestión al administrador siendo habitual que múltiples dispositivos lo soporten.&lt;br /&gt;
&lt;br /&gt;
El formato del mensaje se compone de tres campos :&lt;br /&gt;
&lt;br /&gt;
* La cabecera contiene la prioridad, fecha y hora del mensaje, máquina, proceso (nombre e identificador) que lo ha generado y la versión del protocolo utilizado.&lt;br /&gt;
* Una serie de pares clave-valor con metadatos.&lt;br /&gt;
* El texto del mensaje.&lt;br /&gt;
&lt;br /&gt;
Si es necesario podemos activar el registro de todos los eventos telefónicos que realiza un agente ACD llamado '''Syslog de agentes'''. Su activación se realiza mediante el '''portal de administración ''VIVA''it'''  configurando unos parámetros para un usuario llamado ''Rastreo BBDD&amp;quot; y ''Rastreo Syslog''. Para más información[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Pesta.C3.B1a_ACD | ver sección  Portal de administración - General - Usuarios - Pestaña ACD  ]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot;  align=&amp;quot;top&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot; |&amp;lt;big&amp;gt;'''Elemento'''&amp;lt;/big&amp;gt; &lt;br /&gt;
|align=&amp;quot;center&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot; | &amp;lt;big&amp;gt;'''Procedimiento'''&amp;lt;/big&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Operacion&lt;br /&gt;
|-&lt;br /&gt;
|Ubicación del proceso||Script arranque: /etc/init/ rsyslog.conf&lt;br /&gt;
Configuración :&lt;br /&gt;
/etc/rsyslog.d/30-vivait-&lt;br /&gt;
desk.conf&lt;br /&gt;
|-&lt;br /&gt;
|Arranque||service rsyslog start&lt;br /&gt;
|-&lt;br /&gt;
|Parada||service rsyslog stop&lt;br /&gt;
|-&lt;br /&gt;
|Reinicio||service rsyslog reload&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Diagnostico&lt;br /&gt;
|-&lt;br /&gt;
|Registro de logs||/var/log/MDtel/vivait-desk.log&lt;br /&gt;
Fichero del día actual. se guardan los 30&lt;br /&gt;
anteriores comprimidos en tar.g&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==Funcionalidades específicas ==&lt;br /&gt;
=== Mecanismo de prioridad adaptativa ===&lt;br /&gt;
&lt;br /&gt;
El mecanismo de prioridad adaptativa permite en una plataforma '''''VIVA'''''it Suite establecer prioridades en las que se tenga en cuenta el tiempo de espera de las llamadas en cola, proporcionando una alternativa al mecanismo de prioridad absoluta que existe por defecto&lt;br /&gt;
&lt;br /&gt;
==== Introducción ====&lt;br /&gt;
&lt;br /&gt;
Este documento presenta una propuesta de mecanismo de asignación de llamadas en colas a agentes basado no solo en las prioridades de agente a cola,&lt;br /&gt;
sino en un factor de corrección de prioridad derivado del tiempo de espera de una llamada&lt;br /&gt;
&lt;br /&gt;
==== Terminología ====&lt;br /&gt;
&lt;br /&gt;
* '''Prioridad de llamada:''' A cada llamada susceptible de ser atendida en el ''Call Center'' se le asignará una prioridad de llamada; dicha prioridad será asignada cada vez que un agente quede disponible.&lt;br /&gt;
* '''Prioridad de grupo ACD:''' Los agentes del ''Call Center'' tendrán configurada una prioridad para cada grupo ACD al que pertenecen&lt;br /&gt;
* '''Tiempo de espera:''' Tiempo que una llamada lleva en espera en un determinado grupo ACD; si la llamada cambia de un grupo ACD a otro el tiempo de espera pasa a cero&lt;br /&gt;
* '''Objetivo de servicio:''' Tiempo objetivo máximo de espera por cada grupo ACD&lt;br /&gt;
&lt;br /&gt;
 '''Nota.-''' ''En terminología Asterisk el aumento de prioridad corresponde con números descendentes, es decir,&amp;lt;br /&amp;gt;&lt;br /&gt;
 prioridad 50 es mejor que prioridad 70''&lt;br /&gt;
&lt;br /&gt;
==== Mecanismo de asignación de llamadas ====&lt;br /&gt;
&lt;br /&gt;
En el momento en que exista un agente disponible para recibir llamada, el agente recepcionará la llamada con mejor prioridad de llamada (menor número). La prioridad de llamada para cada llamada se establecerá de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
- Agentes con prioridad de grupo ACD de 1 a 99 utilizarán el mecanismo convencional de asterisk de prioridad absoluta; será útil para grupos ACD críticos o en Call Centers muy convencionales&lt;br /&gt;
&lt;br /&gt;
'''Si un agente tiene prioridad menor de 100 en grupos ACD y hay llamadas en dichos grupos, estas llamadas serán atendidas por el agente con prioridad absoluta.'''&lt;br /&gt;
&lt;br /&gt;
- Agentes con prioridad de colas de 100 en adelante; se utilizará el siguiente mecanismo de prioridad ponderada:&lt;br /&gt;
&lt;br /&gt;
:*Si el grupo ACD de la llamada está dentro del objetivo de servicio, la prioridad de llamada será la prioridad de grupo ACD (a efectos prácticos se aplicará el mecanismo convencional de asignación de llamada a agente, equitativo entre grupos ACD con misma prioridad)&lt;br /&gt;
&lt;br /&gt;
:*Si el grupo ACD de la llamada está fuera del objetivo de servicio, se aplicará una ponderación que mejorará la prioridad de la llamada a medida que aumente el tiempo de espera:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Formula.png |center]]&lt;br /&gt;
&lt;br /&gt;
En una configuración de igualdad de prioridad de agente y objetivo de servicio, el tiempo de espera influiría de manera determinante (más o menos en&lt;br /&gt;
función del peso) en la asignación de la siguiente llamada&lt;br /&gt;
El peso podrá adquirir tres posibles valores: 0, 1 y 10&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Esquema.png |center]]&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;span style=&amp;quot;color:#000080&amp;quot;&amp;gt;- Calculo prioridad de llamada: se calcula por llamada cada vez que un agente queda libre&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span style=&amp;quot;color:#000080&amp;quot;&amp;gt;- Agente atiende llamada con mejor prioridad de llamada&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Medio:Asignación de llamadas por prioridad adaptativa.pdf|Asignación de llamadas por prioridad adaptativa]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Marcación saliente ===&lt;br /&gt;
Dentro del ACD hay un comportamiento especial que es la marcación saliente. Esta puede ser de tres tipos:&lt;br /&gt;
* '''Vista previa''': El agente demanda la siguiente llamada a realizar.&lt;br /&gt;
* '''Progresivo''': Se llama al agente y se lanza la llamada al contacto.&lt;br /&gt;
* '''Predictivo''': El sistema calcula cuando va a estar libre el agente y se adelanta lanzando varias llamadas (configurables por parámetros). La llamada que es contestada primero, se pasa a una cola (el resto se cuelgan) a la espera que el agente se quede libre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Esquema de funcionamiento====&lt;br /&gt;
[[Archivo:esquema funcionamiento marcador.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
Los contactos se agrupan en listas para su facilidad de asignación a campañas, aunque finalmente lo que se asigna a una campaña es un contacto.&lt;br /&gt;
&lt;br /&gt;
Las campañas tienen estrategias. Las estrategias definen como se ha de llamar (del primero al último, sólo los pares, etc.). Tienen una serie de parámetros que  dependiendo de la estrategia pueden tener distinta utilidad. Desde el punto de vista de la base de datos, las estrategias se definirían en la tabla ACD_CLASES_ESTRATEGIAS y se les da valor en la tabla ACD_ESTRATEGIAS_MARCADOR.&lt;br /&gt;
Una vez establecida la campaña y asignados sus contactos y dependiendo del modo de marcación (que se define en las colas) el proceso motorSal crea los intentos de marcación (siempre y cuando no estén en las listas Robinson), que serán leídos por el proceso myAcdSuperv que los convierte en llamadas para el Asterisk.&lt;br /&gt;
&lt;br /&gt;
====Flujo de estados====&lt;br /&gt;
&lt;br /&gt;
El flujo de estados es el reflejado en la figura siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:diagrama de flujo motorsal.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
Los diferentes estados de un contacto son:&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Estado !! ID_Estado!! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| Planificable || 0|| El contacto está preparado para que lo gestione motorSal y según la estrategia definida se establece el campo ACD_CONTACTOS_CAMPANNAS.D_HORA_PROXIMA&lt;br /&gt;
|-&lt;br /&gt;
|Planificado||10||Cuando ha llegado el tiempo marcado en HORA PROXIMA, motorSal ejecuta la 2ª fase de la estrategia, generando el intento de marcación.&lt;br /&gt;
|-&lt;br /&gt;
|Intento||20||El control pasa a myAcdSuperv, que a su vez genera la llamada en Asterisk. Cuando termina, se pasa a Planificable o Finalizado.&lt;br /&gt;
|-&lt;br /&gt;
|Finalizado||100||Las gestiones con este contacto han terminado.&lt;br /&gt;
|-&lt;br /&gt;
|Abortado||110||&lt;br /&gt;
|-&lt;br /&gt;
|Obsoleto||200||Se ha agotado el tiempo para contactar sin agotar todos los intentos. No se le vuelve a llamar nunca.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Carga de contactos====&lt;br /&gt;
&lt;br /&gt;
===== Descripción =====&lt;br /&gt;
&lt;br /&gt;
A continuación se explica la configuración y funcionamiento de la utilidad encargada de asignar contactos a campañas.&lt;br /&gt;
&lt;br /&gt;
===== Configuración =====&lt;br /&gt;
&lt;br /&gt;
El archivo de configuración recibe el nombre de '''cargaContactos.pconf.''' Este archivo reside en '''/etc/MDtel.''' El formato se describe en la tabla siguiente. Hay que tener en cuenta que las columnas empiezan a numerarse en 0.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Parámetro !! Valor !! Obligatorio !! Defecto&lt;br /&gt;
|- &lt;br /&gt;
| db|| Nombre de la base de datos|| SI || nimitz&lt;br /&gt;
|- &lt;br /&gt;
| dbHost|| Host MySQL || SI || localhost&lt;br /&gt;
|- &lt;br /&gt;
| dbPort|| Puerto MySQL || NO || 3306&lt;br /&gt;
|- &lt;br /&gt;
| dbUsuario || Usuario de acceso a la base de datos|| SI ||&lt;br /&gt;
|- &lt;br /&gt;
| dbClave || Clave del usuario || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| rutaContactos || Ruta hasta el archivo de contactos || NO || /var/spool/MDtel/contactos&lt;br /&gt;
|- &lt;br /&gt;
| obsoletos || Si vale 1, marcar como obsoletos los contactos anteriores || NO || 0&lt;br /&gt;
|- &lt;br /&gt;
| diasCaducidad || Número de dias a partir de los cuales caducarán los contactos || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| idCampanna || Número de columna que contiene el ID de la campaña || SI||&lt;br /&gt;
|- &lt;br /&gt;
| idLista || Numero de columna que contiene el ID de la lista || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| prioridad || Número de columna que contiene la prioridad || NO || Nota: El valor es de 0 a 99. A mayor número menor prioridad (se le llamará más tarde)&lt;br /&gt;
|- &lt;br /&gt;
| tipoTarea|| Número de columna que contiene el tipo de tarea || NO || Nota: los posibles valores de la columna son : &amp;lt;br /&amp;gt; *A: Alta &amp;lt;br /&amp;gt; *M: Modificación &amp;lt;br /&amp;gt; *B: Baja&amp;lt;br /&amp;gt; Por defecto el valor es A&lt;br /&gt;
|- &lt;br /&gt;
| codCli || Número de columna del CSV que contiene el código de cliente || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| nombreCon || Número de columna del CSV que contiene el nombre || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| apellido1 || Número de columna del CSV que contiene el primer apellido|| NO ||&lt;br /&gt;
|- &lt;br /&gt;
| apellido2 || Número de columna del CSV que contiene el segundo apellido || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| empresa || Número de columna del CSV que contiene la empresa || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| direccion1 || Número de columna del CSV que contiene la dirección || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| direccion2 || Número de columna del CSV que contiene la dirección 2 || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| codPostal || Número de columna del CSV que contiene el código postal || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| localidad || Número de columna del CSV que contiene la localidad || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| provin || Número de columna del CSV que contiene la provincia || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| email || Número de columna del CSV que contiene el email || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_1 || Número de columna del CSV que contiene el primer número fijo del contacto || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_2 || Número de columna del CSV que contiene el segundo número fijo del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_3 || Número de columna del CSV que contiene el tercer número fijo del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_4 || Número de columna del CSV que contiene el cuarto número fijo del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_1 || Número de columna del CSV que contiene el primer número móvil del contacto || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_2 || Número de columna del CSV que contiene el segundo número móvil del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_3 || Número de columna del CSV que contiene el tercer número móvil del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_4 || Número de columna del CSV que contiene el CUARTO número móvil del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| edad || Número de columna del CSV que contiene la edad || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc1|| Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc2 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc3 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc4 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc5 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc6 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc7 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc8 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc1 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc2 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc3 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc4 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc5 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc6 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc7 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc8 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|-&lt;br /&gt;
| Idioma || Idioma del contacto || NO ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Funcionamiento =====&lt;br /&gt;
&lt;br /&gt;
Para ejecutar la utilidad se debe teclear la siguiente orden en la línea de comandos:&lt;br /&gt;
&lt;br /&gt;
'''cmd# cargaContactos.pl /&amp;lt;ruta hasta el conf&amp;gt;/cargaContactos.pconf &amp;lt;archivo CSV&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
El archivo con los contactos deberá ser un CSV con los campos separados por ';'. La utilidad parsea el archivo conforme a la distribución indicada en la configuración y crea las correspondientes entradas en las tablas '''ACD_CONTACTOS''' y '''ACD_CONTACTOS_CAMPANNAS.'''&lt;br /&gt;
&lt;br /&gt;
La utilidad crea un log en '''/var/log/cargaContactos.log''' en el que vuelca toda la operativa.&lt;br /&gt;
Por pantalla se va mostrando un lista con el ID asignado al contacto y el ID de campaña al que se le ha asignado.&lt;br /&gt;
&lt;br /&gt;
Un ejemplo de fichero de carga de contactos sería el siguiente: &lt;br /&gt;
&lt;br /&gt;
 #&lt;br /&gt;
 # Configuracion de recordGwd.pl&lt;br /&gt;
 #&lt;br /&gt;
 # Conexion de base de datos&lt;br /&gt;
 $db='nimitz';&lt;br /&gt;
 $dbHost = 'localhost';&lt;br /&gt;
 $dbPort = '3306';&lt;br /&gt;
 $dbUsuario = 'nimitz';&lt;br /&gt;
 $dbClave = 'LA QUE SEA';&lt;br /&gt;
 $diasCaducidad='300';&lt;br /&gt;
 $rutaGrab = '/var/spool/MDtel/contactos';&lt;br /&gt;
 $idCampanna = '31';&lt;br /&gt;
 $idLista = '32';&lt;br /&gt;
 $obsoletos = 0;&lt;br /&gt;
 $codCli = '1';&lt;br /&gt;
 $nombreCon = '2';&lt;br /&gt;
 $apellido1 = '3';&lt;br /&gt;
 $apellido2 = '4';&lt;br /&gt;
 $empresa = '5';&lt;br /&gt;
 $direccion1 = '6';&lt;br /&gt;
 $direccion2 = '7';&lt;br /&gt;
 $codPostal = '8';&lt;br /&gt;
 $localidad = '9';&lt;br /&gt;
 $provin = '10';&lt;br /&gt;
 $email = '11';&lt;br /&gt;
 $valFijo_1 = '12';&lt;br /&gt;
 $valFijo_2 = '13';&lt;br /&gt;
 $valFijo_3 = '14';&lt;br /&gt;
 $valFijo_4 = '15';&lt;br /&gt;
 $valMovil_1 = '16';&lt;br /&gt;
 $valMovil_2 = '17';&lt;br /&gt;
 $valMovil_3 = '18';&lt;br /&gt;
 $valMovil_4 = '19';&lt;br /&gt;
 $edad = '20';&lt;br /&gt;
 $nOpc1 = '21';&lt;br /&gt;
 $nOpc2 = '22';&lt;br /&gt;
 $nOpc3 = '23';&lt;br /&gt;
 $nOpc4 = '24';&lt;br /&gt;
 $cOpc1 = '25';&lt;br /&gt;
 $cOpc2 = '26';&lt;br /&gt;
 $cOpc3 = '27';&lt;br /&gt;
 $cOpc4 = '28';&lt;br /&gt;
 $prioridad = '29';&lt;br /&gt;
 $tipoTarea = '30';&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ENLACES QUE HABIA&lt;br /&gt;
[[Medio:CargaContactos300.pdf|Instrucciones para carga automatizada de contactos]]&lt;br /&gt;
&lt;br /&gt;
[[Medio:EjemplocargaContactos.pconf.pdf|Ejemplo de fichero de carga de contactos]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Movilidad ===&lt;br /&gt;
La movilidad es una función integral de las comunicaciones en la empresa. Cualquier empleado (usuario) es móvil en cierto grado, sea dentro o fuera de la organización.La solución óptima debe proporcionar continuidad de servicios y acceso a nuestros servicios, sin importar donde se esté.&lt;br /&gt;
&lt;br /&gt;
==== Ofrecer movilidad a un usuario ====&lt;br /&gt;
&amp;lt;!--parte daniel--&amp;gt;&lt;br /&gt;
Para permitir la movilidad a un usuario, puede ser en el momento de crear o editar un usuario en el apartado ''Administración de usuario'' en ''General'' del '''portal de administración ''VIVA''it'''.  Asignándole un '''''numero login''''' (numero personal corporativo para el usuario) y una '''''clave login''''' ( se debe asignar una clave por defecto, pero puede cambiarla en el [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_3.0#Portal_de_usuario |portal de usuario]]). &amp;lt;br/&amp;gt;Para más información[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Pesta.C3.B1a_Centralita | ver sección Portal de administración - General - Usuarios - administración de usuarios - Pestaña Centralita]].&lt;br /&gt;
&lt;br /&gt;
Además, de crear un permiso de la '''aplicación ''Centralita''''' a cualquier nivel, desde el apartado ''Permisos de usuarios'' en ''General'' del '''portal de administración ''VIVA''it'''.&amp;lt;br/&amp;gt;Para más información[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Asignaci.C3.B3n_de_Permisos_de_Usuario_por_Administrador | ver sección  Portal de administración - General - Usuarios - Permisos a usuarios]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''La movilidad permite''' disponer de las extensiones telefónicas empresariales en cualquier lugar. Por&lt;br /&gt;
ejemplo, con un ordenador portátil o smartphone en una ubicación remota con conexión a Internet,&lt;br /&gt;
podríamos tener registrada nuestra extensión remotamente, y así las llamadas hacia/desde nuestra&lt;br /&gt;
oficina serían enrutadas por Internet hasta el equipo en cuestión sin coste alguno.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--parte daniel--&amp;gt;&lt;br /&gt;
Todo terminal tiene asociado una extensión y deberá permitir la movilidad de usuarios. La extensión se configura cambiando a '''''SI''''' el campo '''''Hay Movilidad''''' desde el apartado ''Extensiones'' de ''Dispositivos'' en ''VIVAit Call'' del '''portal de administración ''VIVA''it'''. Para más información [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Extensiones | ver sección Portal de administración - VIVAit Call - Dispositivos - Extensiones]]&lt;br /&gt;
&lt;br /&gt;
==== ¿Cómo funcionan las extensiones? ====&lt;br /&gt;
&lt;br /&gt;
Primeramente el usuario debe tener los ejes apropiados en la tabla '''COM_USUARIOS_APLICACION''' (aplicación centralita).&lt;br /&gt;
&lt;br /&gt;
La extensión debe de tener ''un teléfono'' y por tanto ''un modelo de teléfono asociado.''&lt;br /&gt;
&lt;br /&gt;
Es tan simple como especificar '''la extensión, el usuario y la clave de este.'''&lt;br /&gt;
&lt;br /&gt;
Para corroborar el funcionamiento de esta hay ''dos métodos'':&lt;br /&gt;
&lt;br /&gt;
'''* CLI asterisk:'''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenEntraUsuarioMovil 25001 20001 1234'''&lt;br /&gt;
&lt;br /&gt;
Y como resultado obtenemos lo siguiente:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br /&amp;gt;&lt;br /&gt;
 MOVIL_TIPO_RESET='10'&amp;lt;br /&amp;gt;&lt;br /&gt;
 MOVIL_CAD_RESET='notify_yealink'&amp;lt;br /&amp;gt;&lt;br /&gt;
 MdintzRes='OK'&lt;br /&gt;
&lt;br /&gt;
El usuario con el login numérico 20001 se ha &amp;quot;movido&amp;quot; a la extensión 25001&lt;br /&gt;
&lt;br /&gt;
Ahora ''nos quitamos de esa extensión mediante el siguiente comando:''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenSaleUsuarioMovil 25001'''&lt;br /&gt;
&lt;br /&gt;
Resultado del comando:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MOVIL_TIPO_RESET='10'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MOVIL_CAD_RESET='notify_yealink'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzRes='OK'&lt;br /&gt;
&lt;br /&gt;
Las pruebas anteriores han sido '''con extensiones con movilidad y con usuario con/sin&lt;br /&gt;
propietario.'''&lt;br /&gt;
&lt;br /&gt;
Ahora las realizamos '''con extensiones sin movilidad'''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenEntraUsuarioMovil 25002 20001 1234'''&lt;br /&gt;
&lt;br /&gt;
Obteniendo:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzRes='movil_error_datos'&lt;br /&gt;
&lt;br /&gt;
Como era lo previsible no nos deja &amp;quot;movernos&amp;quot; a esa extensión ya que no tiene movilidad.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;Si un usuario ya se ha movido a una extensión no se puede mover a otra si no es deslogandose de esta antes.&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenEntraUsuarioMovil 21000 20001 1234'''&lt;br /&gt;
&lt;br /&gt;
Con salida:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MOVIL_EXTEN='25001'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MDintzRes='movil_ya_login'&lt;br /&gt;
&lt;br /&gt;
'''* Dialplan'''&lt;br /&gt;
&lt;br /&gt;
Para llamar a la función de movilidad hay que marcar el '''9992.'''&lt;br /&gt;
&lt;br /&gt;
 Nota.- Para comprobar que se realiza todo correctamente habría que mirar las trazas de Asterisk&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Grabación ===&lt;br /&gt;
&lt;br /&gt;
La grabación en '''''VIVA'''''it Call está diseñada para ser lo mas flexible posible.&lt;br /&gt;
&lt;br /&gt;
====Configuración====&lt;br /&gt;
&lt;br /&gt;
Si deseamos grabar, debemos activar que alguno de los dispositivos/elementos que intervienen en la llamada se grabe.&lt;br /&gt;
&lt;br /&gt;
Estos dispositivos/elementos son:&lt;br /&gt;
&lt;br /&gt;
* Nodo.&lt;br /&gt;
* Usuario con Centralita.&lt;br /&gt;
* Agente.&lt;br /&gt;
* Grupo ACD corporativo y de Contact Center.&lt;br /&gt;
* Enlace exterior.&lt;br /&gt;
* Extensión.&lt;br /&gt;
* Facilidades.&lt;br /&gt;
* Grupo: grupo de salto o grupo de operadoras.&lt;br /&gt;
* Sala de conferencia.&lt;br /&gt;
* VDN corporativo y de Contact Center.&lt;br /&gt;
* Pre-rutas.&lt;br /&gt;
&lt;br /&gt;
Por otro lado necesitaremos que la llamada pase por un nodo que sea grabador, es decir, que si la llamada esta configurada para que se grabe pero no pasa por ningún nodo grabador, la llamada no se grabará.&lt;br /&gt;
&lt;br /&gt;
Al configurar un nodo existen cuatro campos que intervienen en la grabación.&lt;br /&gt;
&lt;br /&gt;
''''Grabador''''&lt;br /&gt;
&lt;br /&gt;
Se configura en el portal en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Este campo corresponde con el campo [[BD.COM_NODOS#B_ES_GRABADOR|B_ES_GRABADOR]] de la tabla [[BD.COM_NODOS|COM_NODOS]] , este campo define si el nodo va a grabar las llamas que pasen por el que necesiten ser grabadas y no se estén grabando ya.&lt;br /&gt;
&lt;br /&gt;
Es un campo booleano los posibles valores en el portal son si/no y en la base de datos 1/0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''''Modo grabación infraestructura''''&lt;br /&gt;
&lt;br /&gt;
Su configuración se realiza en el portal, en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Este campo define como está configurada la infraestructura, este campo existe por compatibilidad con '''''VIVA'''''it suite y para poder configurar la grabación bajo demanda.&lt;br /&gt;
&lt;br /&gt;
Este campo corresponde con el campo [[BD.COM_NODOS#E_MODO_GRABACION_INFRAESTRUCTURA|E_MODO_GRABACION_INFRAESTRUCTURA]] de la tabla [[BD.COM_NODOS|COM_NODOS]], Este campo usa los valores del enumerado BD.ENUM.TModoGrabacionInfraestructura|TModoGrabacionInfraestructura]].&lt;br /&gt;
&lt;br /&gt;
La formula que se seguiría para ver si una llamada se graba en ese nodo es:&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 (NODO.E_MODO_GRABACION_INFRAESTRUCTURA) AND (NODO.B_ENRU_GRABAR OR CEN_PRE_RUTA.B_ENRU_GRABAR OR &amp;quot;OBJETO&amp;quot;.B_ENRU_GRABAR)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Que sería que si la infraestructura esta en NoGraba no se graba nada de lo que se rute en ese nodo y en cualquiera de los 2 otros caso (GrabaTodo o GrabaPorPeticion) se grabaría dependiendo de la configuración del Nodo, la ruta o el objeto en cuestión (preruta, grupo ACD, extension,...).&lt;br /&gt;
&lt;br /&gt;
''''Grabar enrutamiento''''&lt;br /&gt;
&lt;br /&gt;
Se configura en el portal en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Este campo define si van a grabar las llamadas que se enruten en este nodo.&lt;br /&gt;
&lt;br /&gt;
Campo [[BD.COM_NODOS#E_ENRU_GRABAR|E_ENRU_GRABAR]] de la tabla [[BD.COM_NODOS|COM_NODOS]] que usa los valores del enumerado [[BD.ENUM.TTipoEnruGrabar|TTipoEnruGrabar]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''''RecordCentral''''&lt;br /&gt;
&lt;br /&gt;
Se configura en el portal en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Define que instancia del recordCentral es la encargada de tratar las grabaciones de este nodo.&lt;br /&gt;
&lt;br /&gt;
Para aumentar el rendimiento a la hora de traerse las grabaciones, se pueden definir varias instancias de proceso recordCentral, este campo define cual de estas instancias se encargara de este nodo.&lt;br /&gt;
&lt;br /&gt;
====Vivait Tracker====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL LA ÚNICA REFERENCIA A VIVAIT TRACKER EN LA DOCUMENTACIÓN &amp;quot;Vivait supervisor&amp;quot; QUE TENGO DICE LO SIGUIENTE. &amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Desde '''''VIVA'''''it Supervisor,  que es la aplicación dirigida a Supervisores, ofrece la posibilidad de supervisar y gestionar grupos ACD, agentes, asignaciones, prioridades,etc. Se puede obtener acceso directo a las aplicaciones de grabación ('''''VIVA'''''it tracker) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL FIN EXPLICACIÓN. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL De la documentacion creada por ivan. &amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Esquematico actual del proyecto tracker &lt;br /&gt;
[[Archivo:Esquematico_tracker_1.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1º El tracker web llama al web service Remote login para iniciar sesión y determinar si tiene permisos para la escucha y descarga de grabaciones.&lt;br /&gt;
&lt;br /&gt;
2º Si la ubicación de la grabación es local, mira la ruta de esta y se procede a la escucha o descarga de esta.&lt;br /&gt;
&lt;br /&gt;
3º Si la ubicación de la grabación es remota, entra en escena el proxy. Es el que realiza la petición.&lt;br /&gt;
&lt;br /&gt;
4º Si utilizamos el tracker windows, este, como el tracker web, llama primero al web service remote login para la autenticación y tema de Permisos.&lt;br /&gt;
&lt;br /&gt;
5º Para descargar o escuchar una grabación desde el tracker windows, se llama al web service servidor de grabaciones pasándole simplemente el ID de segmento.mp3. Este web service, con el ID de segmento, se encarga de determinar la ubicación de la grabación.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL De la documentación creada por ivan. &amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Esquematico actual del proyecto tracker &lt;br /&gt;
[[Archivo:Esquematico_tracker_2_https.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1º El tracker web llama al web service Remote login para iniciar sesión (comunicación https) y determinar si tiene permisos para la escucha y descarga de grabaciones. Se elimina el proxy&lt;br /&gt;
&lt;br /&gt;
2º Si la ubicación de la grabación es local, mira la ruta de esta y se procede a la escucha o descarga de esta.&lt;br /&gt;
&lt;br /&gt;
3º Si la ubicación de la grabación es remota, se realiza una petición al host remoto. El tipo de petición vendrá fijada por base de datos (http, https, ftp,ftps)&lt;br /&gt;
&lt;br /&gt;
4º Si utilizamos el tracker windows, este, como el tracker web, llama primero al web service remote login para la autenticación y tema de permisos (comunicación https extremo a extremo).&lt;br /&gt;
&lt;br /&gt;
5º Para descargar o escuchar una grabación desde el tracker windows, se llama al web service servidor de grabaciones pasándole simplemente el ID de segmento.mp3. Este web service, con el ID de segmento, se encarga de determinar la ubicación de la grabación.&lt;br /&gt;
&lt;br /&gt;
[[#Grabación_(Vivait_Tracker)| Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operación_plataforma_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
=== Enrutamiento ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Enrutamiento.png|885px |center]]&lt;br /&gt;
&lt;br /&gt;
==== Funcionamiento ====&lt;br /&gt;
El proceso de enrutamiento, como vemos en el esquemático, se compone de dos fases:&lt;br /&gt;
&lt;br /&gt;
# Preenrutameinto, que se encarga de tratar todas las llamadas&lt;br /&gt;
# Enrutamiento externo, que tiene módulos dedicados al enrutamiento hacia:&lt;br /&gt;
:*Enlaces externos. &lt;br /&gt;
:*Extensiones. &lt;br /&gt;
:*Usuarios de telefonía corporativa. &lt;br /&gt;
:*Facilidades. &lt;br /&gt;
:*Salas de conferencia. &lt;br /&gt;
:*Agentes de grupos ACD. &lt;br /&gt;
:*Grupos ACD. &lt;br /&gt;
:*Vdn. &lt;br /&gt;
:*Buzones para dejar mensaje. &lt;br /&gt;
:*Buzones para su gestión.&lt;br /&gt;
&lt;br /&gt;
Se asume que existen rutas directas entre todos los nodos de la red.&lt;br /&gt;
&lt;br /&gt;
Se asume que están directamente enrutadas todas las direcciones IP involucradas, tanto nodos, como terminales.&lt;br /&gt;
&lt;br /&gt;
Se asume que todas las facilidades están disponibles en todos los nodos, aunque es posible que la implementación sea diferente entre ellos.&lt;br /&gt;
&lt;br /&gt;
Los datos de entrada básicos al proceso de enrutamiento (pdEntr) son:&lt;br /&gt;
* Dispositivo&lt;br /&gt;
* Cola&lt;br /&gt;
* Origen&lt;br /&gt;
* Nodo entrada&lt;br /&gt;
* UCID&lt;br /&gt;
* CALLER_ID_NAME&lt;br /&gt;
* CALLER_ID_NUM&lt;br /&gt;
* DNIS&lt;br /&gt;
* Desvío por dialplan&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A partir de los datos de entrada básicos anteriores se pueden deducir los siguientes valores:&lt;br /&gt;
* Sede del dispositivo de entrada&lt;br /&gt;
* Sede del nodo de entrada&lt;br /&gt;
* Ancho de banda disponible en la sede del dispositivo&lt;br /&gt;
* Ancho de banda disponible en la sede del nodo&lt;br /&gt;
* Categoría entrante&lt;br /&gt;
* Valor del eje1 asignado a la llamadas&lt;br /&gt;
* CALLER_ID_NUM_EXTERNO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los datos de salida globales del proceso de enrutamiento (pdSale) son:&lt;br /&gt;
* Categoría saliente&lt;br /&gt;
* Código de cliente (opcional)&lt;br /&gt;
* Tipo de destino:	&lt;br /&gt;
:* No existe&lt;br /&gt;
:* Ruta externa&lt;br /&gt;
:* Extensión&lt;br /&gt;
:* Usuario de telefonía corporativa&lt;br /&gt;
:* Facilidad&lt;br /&gt;
:* Salas de conferencia&lt;br /&gt;
:* Agentes de grupos ACD&lt;br /&gt;
:* Grupos ACD&lt;br /&gt;
:* VDN&lt;br /&gt;
:* Buzón para dejar mensaje. &lt;br /&gt;
:* Buzón para dejar mensaje por ocupado. &lt;br /&gt;
:* Buzón para dejar mensaje por no contestación. &lt;br /&gt;
:* Buzón para su gestión.&lt;br /&gt;
* Destinatario (cuando se trata de un usuario o de un agente)&lt;br /&gt;
* Valor del eje1 asignado a la llamada&lt;br /&gt;
* Buzón de las extensiones y usuarios que los tengan asignados&lt;br /&gt;
* Si el buzón está en nodo distinto al de entrada&lt;br /&gt;
* DESVIO_INCONDICIONAL (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable) &lt;br /&gt;
* DESVIO_NO_CONTESTA (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable) &lt;br /&gt;
* DESVIO_OCUPADO (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable) &lt;br /&gt;
* DESVIO_FUERA_SERV (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los datos de salida para cada una de las posibles rutas en orden son (nn va de 01 maxRutas [nn son dos dígitos decimales]):&lt;br /&gt;
* CONTADOR_ABDE_nn (contador para control de ancho de banda en sede de dispositivo de entrada).  &lt;br /&gt;
* CONTADOR_ABNE_nn (contador para control de ancho de banda en sede de nodo de entrada).  &lt;br /&gt;
* CONTADOR_ABDS_nn (contador para control de ancho de banda en sede de dispositivo de salida).  &lt;br /&gt;
* CONTADOR_ABNS_nn (contador para control de ancho de banda en sede de nodo de salida).  &lt;br /&gt;
* CALLER_NAME_SAL_nn , puede salir de una extensión, un usuario o de un agente. &lt;br /&gt;
* CALLER_NUM_SAL_nn, puede salir de una extensión, un usuario o de un agente.  &lt;br /&gt;
* DESTINO_SAL_nn , en general, el valor C_NOMBRE o destino de salida.  &lt;br /&gt;
* RUTA_NODO_nn , Cadena de marcación para ir la nodo que soporta DESTINO_SAL_nn, si es distinto del nodo de entrada.  &lt;br /&gt;
* RUTA_SAL_nn &lt;br /&gt;
:* Extensión: cadena marcación. &lt;br /&gt;
:* Facilidad: E_CODIGO_FACILIDAD obtenido de la tabla CEN_FACILIDADES. &lt;br /&gt;
:* Usuario: cadena marcación de la extensión asignada al usuario en movilidad o en propiedad. &lt;br /&gt;
:* Agente: cadena marcación de la extensión a la que está conectado el agente. &lt;br /&gt;
:* Ruta externa: contexto que gestiona la llamada saliente.&lt;br /&gt;
&lt;br /&gt;
=====Fase preenrutamiento =====&lt;br /&gt;
&lt;br /&gt;
La fase de preenrutamiento (basada en la tabla CEN_PRE_RUTA) se usa en todas las llamadas entrantes, tanto internas, como externas. Permite desarrollar un “prerouting” estándar para ACD y para telefonía corporativa.&lt;br /&gt;
&lt;br /&gt;
Los datos de entrada al proceso de enrutamiento son iguales a los del proceso global de enrutamiento, excepto en que este proceso no usa el nodo de entrada ya que es independiente de éste.&lt;br /&gt;
&lt;br /&gt;
Los datos de salida de la fase de preenrutamiento:&lt;br /&gt;
* D_CATEGORIA_SAL &lt;br /&gt;
* COD_CLIENTE (opcional) &lt;br /&gt;
* TIPO_DESTINO_SAL&lt;br /&gt;
:* No existe.   &lt;br /&gt;
:* Volver a preenrutar.   &lt;br /&gt;
:* Ruta externa.   &lt;br /&gt;
:* Extensión.   &lt;br /&gt;
:* Usuario de telefonía corporativa.   &lt;br /&gt;
:* Facilidad.   &lt;br /&gt;
:* Sala de conferencia.   &lt;br /&gt;
:* Agente de grupos ACD.   &lt;br /&gt;
:* Grupos ACD.   &lt;br /&gt;
:* VDN.   &lt;br /&gt;
:* Buzón para dejar mensaje.   &lt;br /&gt;
:* Buzón para dejar mensaje por ocupado.   &lt;br /&gt;
:* Buzón para dejar mensaje por no contestación.   &lt;br /&gt;
:* Buzón para su gestión. &lt;br /&gt;
* COD_CLIENTE &lt;br /&gt;
* Valor del eje1 asignado a la llamada &lt;br /&gt;
* CALLER_NAME &lt;br /&gt;
* CALLER_NUM &lt;br /&gt;
* DESTINO&lt;br /&gt;
&lt;br /&gt;
El proceso de preenrutamiento consiste en seleccionar un único registro de la tabla CEN_PRE_RUTA y, con sus valores y con los valores de entrada al proceso, generar los datos de salida.&lt;br /&gt;
&lt;br /&gt;
Un posible tipo de salida es &amp;quot;Volver a preenrutar&amp;quot;. Esto permite realimentar el proceso un máximo de &amp;quot;max_pre_ruta_regs&amp;quot; veces (en archivo .conf) para simplificar configuración. Sólo tiene sentido realimentar si se ha hecho alguna modificación en los datos de selección de registro, ya que en caso contrario se produciría un bucle que el proceso de preenrutamiento es capaz de detectar y evitar.&lt;br /&gt;
&lt;br /&gt;
Para elegir el registro de CEN_PRE_RUTA, se tienen en cuenta los datos de entrada de la llamada, de modo que se cumpla con todos los puntos siguientes: &lt;br /&gt;
* ID_CATEGORIA_ENT igual a la del dispositivo de entrada.  &lt;br /&gt;
* CALLER_NUM de entrada  &lt;br /&gt;
:* Debe comenzar por la cadena C_ORIGEN_ENT_PREF o C_ORIGEN_ENT_PREF=NULL, con menos prioridad. Es conveniente rellenar este dato del modo más restrictivo que sea posible, independientemente de C_ORIGEN_ENT_EXPR. Ello permite disminuir el uso innecesario de recursos de evaluación de expresiones regulares.    &lt;br /&gt;
:* Debe de tener un número de dígitos igual o superior a N_ORIGEN_ENT_MIN_DIGITOS, si este valor no es NULL o cero.    &lt;br /&gt;
:* Debe de tener un número de dígitos igual o inferior a N_ORIGEN_ENT_MAX_DIGITOS, si este valor no es NULL o cero.    &lt;br /&gt;
:* Debe cumplir la expresión regular C_ORIGEN_ENT_EXPR, si ésta no es NULL.  &lt;br /&gt;
* DNIS empiece con C_DESTINO_ENT_PREF o C_DESTINO_ENT_PREF=NULL. Es conveniente rellenar este dato del modo más restrictivo que sea posible, independientemente de C_DESTINO_ENT_EXPR. Ello permite disminuir el uso innecesario de recursos de evaluación de expresiones regulares.  &lt;br /&gt;
* Si varias entradas cumplen la condición anterior, se prueba primero la que el campo C_DESTINO_ENT_PREF tenga una longitud mayor y, de entre éstas, la que C_ORIGEN_ENT_PREF tenga una longitud mayor.  &lt;br /&gt;
* DNIS tenga un número de dígitos igual o superior a N_DESTINO_ENT_MIN_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* DNIS tenga un número de dígitos igual o inferior a N_ORIGEN_ENT_MIN_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* DNIS cumpla la expresión regular C_DESTINO_ENT_EXPR, si ésta no es NULL. &lt;br /&gt;
&lt;br /&gt;
Si no se encuentra ninguna entrada adecuada, quiere decir que es una llamada prohibida y se devuelve el tipo de destino &amp;quot;No existe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Puede conseguirse un destino &amp;quot;por defecto&amp;quot; diferente, creando una entrada que encaje siempre para cada categoría: C_ORIGEN_ENT, C_ORIGEN_ENT_MIN_DIGITOS, C_ORIGEN_ENT_MAX_DIGITOS, C_ORIGEN_ENT_EXPR, C_DESTINO_ENT_PREF, N_DESTINO_ENT_MIN_DIGITOS, N_DESTINO_ENT_MAX_DIGITOS y C_DESTINO_ENT_EXPR a valor NULL.&lt;br /&gt;
&lt;br /&gt;
Una vez elegida una entrada, ésta puede transformar o sustituir el valor de ID_CATEGORIA, CALLER_NAME, CALLER_NUM, DESTINO, COD_CLIENTE y/o EJE1_MSK a la salida del proceso. &lt;br /&gt;
&lt;br /&gt;
Si ID_CATEGORIA_SAL es cero, se propaga a la salida el valor de la entrada. En caso contrario, se sustituye. &lt;br /&gt;
&lt;br /&gt;
Si C_CALLER_NAME está vacío, se mantiene el valor hubiese a la entrada. En caso contrario, se sustituye. &lt;br /&gt;
&lt;br /&gt;
C_CALLER_NUM puede contener una cadena que identifica el nuevo CALLER_NUM. Además, si la cadena comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo CALLER_NUM es igual al de entrada al proceso. &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo CALLER_NUM es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo. &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;. &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al CALLER_NUM de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo CALLER_NUM de salida. Si la expresión regular no se cumpliese, se propagará el valor de entrada al proceso. &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante que sustituye el valor a la entrada.&lt;br /&gt;
&lt;br /&gt;
Cada vez que se utilice una preruta, se incrementará el valor de N_CONTA si el valor de N_UMBRAL es mayor que cero.&lt;br /&gt;
&lt;br /&gt;
Un valor N_UMBRAL mayor que cero permite modificar el destino de salida cuando el valor de actual de N_CONTA (antes de incrementarse) supere o sea igual el valor de N_UMBRAL. Si se cumple la condición indicada, se usa como destino tras el preenrutamiento, los valores de los campos E_TIPO_DESTINO_SAL_2 y C_DESTINO_SAL_2.&lt;br /&gt;
&lt;br /&gt;
Si el valor de N_UMBRAL es menor o igual a cero o si N_CONTA es inferior a N_UMBRAL, se usa como destino tras el preenrutamiento, los valores de los campos E_TIPO_DESTINO_SAL_1 y C_DESTINO_SAL_1.&lt;br /&gt;
Con este mecanismo de N_CONTA y N_UMBRAL, se pretende facilitar el discriminar a los llamantes reincidentes, cuando sea necesario. &lt;br /&gt;
&lt;br /&gt;
Un proceso periódico externo debe encargarse de poner a cero o decrementar el valor de N_CONTA.&lt;br /&gt;
Como resultado de los procesos de filtrado y de verificación anteriores, se habrá obtenido un TIPO_DESTINO_SAL y un C_DESTINO_SAL a partir de los campos con sufijo &amp;quot;_1&amp;quot; o &amp;quot;_2&amp;quot;, con una metodología similar al caso C_CALLER_NUM.&lt;br /&gt;
&lt;br /&gt;
C_DESTINO_SAL_x puede contener cadena que permite obtener el nuevo destino. Además, si la cadena comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo destino es igual al de entrada al proceso.  &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo destino es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo.  &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;.  &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al destino de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo destino de salida. Si la expresión regular no se cumpliese, quiere decir que es una llamada prohibida y se encaminará hacia una facilidad por defecto.  &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante que sustituye el valor a la entrada. &lt;br /&gt;
Información de salida del proceso de preenrutamiento: Cuando TIPO_DESTINO_SAL_x toma los valores que se indican, el proceso global de enrutamiento sólo requiere de preenrutamiento y la información a devolver se obtiene dependiendo de TIPO_DESTINO_SAL_x: &lt;br /&gt;
* No existe: Se asume que no se conoce un destino para los datos de entrada, por lo que la llamada se encamina hacia una facilidad por defecto que gestiona su tratamiento.  &lt;br /&gt;
* Extensión: A partir de las tablas CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar la extensión en el nodo principal y en el secundario.  &lt;br /&gt;
* Facilidad: A partir de las tablas CEN_DISPOSITIVOS, CEN_FACILIDADES y CEN_NODOS.  &lt;br /&gt;
* Usuario de telefonía corporativa: A partir de las tablas CEN_USUARIOS, CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar al usuario en el nodo principal y en el secundario de la extensión que corresponde en base a movilidad, con prioridad, o en base a propiedad.  El caso de movilidad no se tiene en cuenta si el proceso de enrutamiento se realiza en &amp;quot;modo supervivencia&amp;quot;.  &lt;br /&gt;
* Sala conferencia: A partir de las tablas CEN_SALAS_CONFERENCIAS y CEN_NODOS.  &lt;br /&gt;
* Agente de ACD: A partir de las tablas ACD_USUARIOS, DAT_TR_ACD_EXTENSIONES, CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar al agente en el nodo principal y en el secundario.  &lt;br /&gt;
* VDN: A partir de las tablas ACD_VDN y CEN_NODOS, se devolverán los valores que permiten alcanzar al VDN en su nodo.  &lt;br /&gt;
* Grupo ACD: A partir de las tablas ACD_COLAS y CEN_NODOS, se devolverán los valores que permiten alcanzar al grupo ACD en su nodo. &lt;br /&gt;
&lt;br /&gt;
El campo B_GENERAR_SEGMENTO de la tabla CEN_PRE_RUTA indica al proceso de preenrutamiento que es preciso generar un segmento de tipo &amp;quot;preenrutamiento&amp;quot;. En el segmento generado, se rellena el campo C_ETIQUETA1 del nuevo segmento con el valor que contiene el campo homónimo del registro asociado en la tabla CEN_LISTA_PRE_RUTAS.&lt;br /&gt;
&lt;br /&gt;
===== Fase de enrutamiento en casos en que el destino no es externo =====&lt;br /&gt;
Datos de entrada al proceso de enrutamiento externo: iguales a los de salida del proceso de preenrutamiento (pdPreSale), uniéndose a éstos los datos globales de entrada al proceso (pdEntr). &lt;br /&gt;
&lt;br /&gt;
Datos de salida de la fase de enrutamiento: iguales que los del proceso global de enrutamiento (pdSale). &lt;br /&gt;
&lt;br /&gt;
Específicamente y sólo para los casos en que el destino es una extensión (tipo de destino extensión, usuario de telefonía corporativa o agente) es cuando son válidos los datos correspondientes al buzón asociado y los datos de los posibles desvíos previstos. &lt;br /&gt;
&lt;br /&gt;
También en este caso, se prevén dos posibles rutas, una se corresponde con el acceso a la extensión en el nodo principal de ésta y la otra en el nodo secundario. &lt;br /&gt;
&lt;br /&gt;
En el resto de tipos de destino, sólo se prevé una ruta que puede incluir o no un enlace internodal. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Fase de enrutamiento en el caso de destino externo =====&lt;br /&gt;
Datos de entrada al proceso de enrutamiento externo: iguales a los de salida del proceso de preenrutamiento (pdPreSale), uniéndose a éstos los datos globales de entrada al proceso (pdEntr). &lt;br /&gt;
Datos de salida de la fase de enrutamiento: iguales que los del proceso global de enrutamiento (pdSale). &lt;br /&gt;
&lt;br /&gt;
Se elige los primeros &amp;quot;max_ruta&amp;quot; registros (configurado en archivo .conf) en CEN_DESTINOS_EXTERNOS unido con CEN_RELACION_DESTINOS_ENLACES_EXTERNOS que, teniendo en cuenta los datos de entrada al proceso de enrutamiento, cumpla con todos los puntos siguientes: &lt;br /&gt;
* ID_CATEGORIA_ENT igual a la de salida del proceso de preenrutamiento.  &lt;br /&gt;
* C_DESTINO_SAL de proceso de preenrutamiento empiece con C_DESTINO_ENT_PREF. &lt;br /&gt;
* Si varias entradas cumplen la condicion anterior, se prueba primero la que el campo C_DESTINO_ENT_PREF tenga una longitud mayor.  &lt;br /&gt;
* C_DESTINO_SAL tenga un número de dígitos igual o superior a N_DESTINO_ENT_MIN_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* C_DESTINO_SAL tenga un número de dígitos igual o inferior a N_DESTINO_ENT_MAX_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* C_DESTINO_SAL cumpla la expresión regular C_DESTINO_ENT_EXPR, si ésta no es NULL. &lt;br /&gt;
&lt;br /&gt;
Aparte de la longitud del campo C_DESTINO_ENT_PREF, se usa N_PRIORIDAD como campo para ordenar los registros y seleccionar lo &amp;quot;max_ruta&amp;quot; primeros. &lt;br /&gt;
&lt;br /&gt;
Una vez que un registro es válido, se descartan todos los registros cuyo C_DESTINO_ENT_PREF es diferente del primero seleccionado. &lt;br /&gt;
&lt;br /&gt;
Como resultado de los procesos de filtrado y de verificación anteriores, se habrá obtenido hasta un máximo de &amp;quot;max_rutas&amp;quot; valores para posibles rutas. Las posibles propagaciones y transformaciones en los datos de cada ruta son función de los datos de cada registro seleccionado: &lt;br /&gt;
&lt;br /&gt;
CALLER_NAME_nn: Si C_CALLER_NAME está vacío, se propaga el valor de entrada. En caso contrario, se sustituye. &lt;br /&gt;
&lt;br /&gt;
CALLER_NUM_nn: Sale de C_CALLER_NUM que puede contener una cadena que identifica el nuevo CALLER_NUM_n. Además, si C_CALLER_NUM comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo CALLER_NUM_nn es igual al de entrada al proceso.  &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo CALLER_NUM_nn es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo.  &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;.  &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al CALLER_NUM de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo CALLER_NUM de salida. Si la expresión regular no se cumpliese, se propaga el valor de entrada al proceso.  &lt;br /&gt;
* &amp;quot;&amp;gt;&amp;quot; Si existe valor para CALLER_NUM_EXTERNO, se propagará éste a la salida. En caso contrario y si no está vacía la cadena que queda al eliminar el prefijo &amp;quot;&amp;gt;&amp;quot;, se susituye en la salida por el valor de la cadena sin prefijo. Si la cadena estuviese únicamente constituida por el valor &amp;quot;&amp;gt;&amp;quot;, se propaga el valor de entrada.  &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante sin ninguna modificación. &lt;br /&gt;
&lt;br /&gt;
C_DESTINO_SAL_nn: Se obtiene a partir de C_DESTINO_SAL que puede contener una cadena que identifica el nuevo destino. Además, si la cadena comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo destino es igual al de entrada al proceso. &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo destino es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo. &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;. &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al destino de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo destino de salida. Si la expresión regular no se cumpliese, se propaga el valor de entrada al proceso. &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante sin ninguna modificación. &lt;br /&gt;
&lt;br /&gt;
RUTA_NODO_nn: Sólo se usa si el nodo de salida es diferente del nodo de entrada. Contiene la cadena de marcación para ir la nodo que soporta DESTINO_SAL_nn. Sale del campo C_FORMATO_DIAL (sustituyendo variables) correspondiente al tipo de dispositivo del enlace exterior. &lt;br /&gt;
&lt;br /&gt;
RUTA_SAL_nn: Es el campo C_DATO_ASTERISK obtenido a partir del registro en la tabla CEN_ENLACE_EXTERIOR que se corresponde con ID_ENLACE_EXTERIOR de la tabla CEN_RELACION_DESTINOS_ENLACES_EXTERNOS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Control de ancho de banda ===&lt;br /&gt;
&lt;br /&gt;
Para el control de ancho de banda, primero hemos de tener en consideración que una llamada puede tener asociadas hasta cuatro sedes&lt;br /&gt;
:* Sede del terminal origen (terminal A)&lt;br /&gt;
:* Sede del nodo de registro del terminal origen (nodo A)&lt;br /&gt;
:* Sede del terminal destino (terminal B)&lt;br /&gt;
:* Sede del nodo de registro del terminal destino (nodo B)&lt;br /&gt;
&lt;br /&gt;
Además hemos de tener en cuenta que el audio de la conversación podrá ir:&lt;br /&gt;
:* De manera directa entre terminal A y terminal B&lt;br /&gt;
:* De manera indirecta, a través de los nodos A y B&lt;br /&gt;
&lt;br /&gt;
[[Archivo:ancho de banda.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Cuando se va a cursar una llamada de terminal A a terminal B, el proceso de enrutamiento del nodo A devuelve 4 variables de canal al dialplan:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! Variable!!Campos &lt;br /&gt;
|- &lt;br /&gt;
|R_ABDE_xx||R = Variable de rutas --- AB = ancho de banda --- D = dispositivo --- E = Entrante --- xx = de 0 a 3&lt;br /&gt;
|-&lt;br /&gt;
|R_ABNE_xx||R = Variable de rutas --- AB = ancho de banda --- N = nodo --- E = Entrante --- xx = de 0 a 3&lt;br /&gt;
|-&lt;br /&gt;
|R_ABDS_xx||R = Variable de rutas --- AB = ancho de banda --- D = dispositivo --- S = Saliente --- xx = de 0 a 3&lt;br /&gt;
|- &lt;br /&gt;
|R_ABNS_xx||R = Variable de rutas --- AB = ancho de banda --- N = nodo --- S = Saliente --- xx = de 0 a 3&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El valor de cada variable es una cadena del tipo '''AB.wwww.xxxx.y.z''' donde cada valor es:&lt;br /&gt;
:* '''wwww''' --&amp;gt; id de sede&lt;br /&gt;
:* '''xxxx''' --&amp;gt; ancho de banda total de la sede&lt;br /&gt;
:* '''y''' --&amp;gt; número de llamadas a sumar si conversación directa&lt;br /&gt;
:* '''z''' --&amp;gt; número de llamadas a sumar si conversación indirecta&lt;br /&gt;
&lt;br /&gt;
Por otro lado tenemos que tener en cuenta que el dialplan tiene control de las llamadas que cada sede puede cursar&lt;br /&gt;
&lt;br /&gt;
De esta forma, cuando existe una nueva llamada el dialplan aplica la fórmula, suma el resultado al número de llamadas en curso y lo compara con el máximo...si el resultado es mayor que le máximo la llamada no se cursará por congestión&lt;br /&gt;
&lt;br /&gt;
Configuraremos el ancho de banda por sede en el portal de administración y el consumo que hace cada llamada en la variable '''AB_CONSUMO_LLAMADA''' del fichero '''ext_MDtel_particular.conf''' de cada nodo de conmutación; el valor por defecto es 32&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Puesto de trabajo ==&lt;br /&gt;
El puesto de trabajo del agente en la plataforma '''''VIVA'''''it  (para el producto '''''VIVA'''''it Suite) estará compuesto por:&lt;br /&gt;
* PC (típicamente windows) en el que reside la aplicación '''''VIVA'''''it Desk&lt;br /&gt;
* Terminal telefónico con extensión física asociada.&lt;br /&gt;
&lt;br /&gt;
Para más información [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Puestos | ver sección Portal de administración-VIVAit Suite ACD+ - Puestos]].&lt;br /&gt;
&lt;br /&gt;
=== Relación PC/teléfono en puesto de trabajo ===&lt;br /&gt;
&lt;br /&gt;
Existirá una relación única entre nombre PC y extensión física asociada, si bien los agentes se identificarán por su login que les acompaña al puesto de trabajo en el que se loguen&lt;br /&gt;
Existe un procedimiento documentado para la operativa de cambio de puesto de trabajo, en caso de ser necesario el cambio de PC o de teléfono de un puesto de trabajo.&lt;br /&gt;
==== Procedimiento para un cambio de puesto de trabajo ====&lt;br /&gt;
Se basa en una asignación de PC a teléfono relaccionando la extensión telefónica del terminal físico con el nombre del puesto de trabajo. La configuración de dicha asociación se realiza en el portal de administración de la plataforma. &lt;br /&gt;
&lt;br /&gt;
Cualquier cambio que se realice en terminal telefónico o PC de agente ha de mantener la asociación en el portal a efectos de permitir el funcionamiento del sistema.&lt;br /&gt;
&lt;br /&gt;
A continuación se reflejan los cambios más habituales:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cambio !! Procedimiento !! Punto de acción&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| Cambio de ubicación de un PC || Opción 1.- Renombrar el PC para que conserve el nombre que tenía el anterior en esa ubicación || PC de agente&lt;br /&gt;
|-&lt;br /&gt;
|  Opción 2.- Rehacer la asignación extensión/puesto || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot;| Instalación de PC nuevo en puesto existente || Opción 1.- Renombrar el PC para que conserve el nombre que tenía el anterior en esa ubicación || PC de agente&lt;br /&gt;
|-&lt;br /&gt;
| Opción 2.- Rehacer la asignación extensión/puesto || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| Cambio de nombre en un PC || Rehacer asignación extensión/puesto || Rehacer asignación extensión/puesto&lt;br /&gt;
|-&lt;br /&gt;
|Cambio de ubicación de un teléfono  || Rehacer la asignación extensión/puesto&lt;br /&gt;
 || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| Instalación de un teléfono nuevo en puesto existente || Rehacer la asignación extensión/puesto || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| Instalación de un nuevo puesto de agente|| Hacer asignación extensión/puesto || Portal de administración&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:relacion_puesto_agente.png|center|500px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Estructura de aplicaciones en puesto de trabajo ===&lt;br /&gt;
Las aplicaciones del puesto de trabajo pueden estar ubicadas en cualquier carpeta del sistema. Es importante tener en cuenta que los procesos de actualización, logs… escriben en dichas carpetas, por lo que el usuario de windows deberá tener permisos de lectura/escritura y borrado sobre dichas carpetas&lt;br /&gt;
La instalación del puesto de trabajo es muy liviana para el sistema; las aplicaciones ocupan poco espacio y no se modifican ficheros del sistema operativo (registry o similares)&lt;br /&gt;
Los ficheros importantes son&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Fichero !! Descrición&lt;br /&gt;
|-&lt;br /&gt;
| Vivait-desk.exe || Contiene la aplicación '''''VIVA'''''it Desk de agente&lt;br /&gt;
|-&lt;br /&gt;
| vivait_desk_dll.dll||Este fichero contiene controles sobre los formularios (controles de&lt;br /&gt;
texto, algunas reglas de obligatoriedad…)&lt;br /&gt;
|-&lt;br /&gt;
| nimitz.ini || Configuración del puesto de agente&lt;br /&gt;
|-&lt;br /&gt;
| lanzador.exe || Aplicación de actualización de versiones&lt;br /&gt;
|-&lt;br /&gt;
| lanzador.ini || Configuración del actualizador de aplicaciones&lt;br /&gt;
|-&lt;br /&gt;
| Carpeta forms || En esta carpeta están ubicados los formularios que se abren ante llamada entrante o saliente&lt;br /&gt;
|-&lt;br /&gt;
| Carpeta imágenes || Contiene las imágenes izquierda y derecha de la barra de '''''VIVA'''''it Desk&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Secciones de utilidad en nimitz.ini ===&lt;br /&gt;
&lt;br /&gt;
==== Configuración del puesto de agente ====&lt;br /&gt;
&lt;br /&gt;
El fichero nimitz.ini contiene la configuración del puesto de agente; sus principales parámetros son:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| |''' Fichero'''&lt;br /&gt;
|| '''Descripción'''&lt;br /&gt;
|-&lt;br /&gt;
|Sección [bd1]&lt;br /&gt;
||host=&amp;quot;ip_BBDD_tiempo_real&amp;quot;&lt;br /&gt;
puerto=&amp;quot;Nº puerto&amp;quot;&lt;br /&gt;
basedatos=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
usuario=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
clave=&amp;quot;UIk5jMY9PVX6ogg=&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Contiene información para la conexión a BBDD de tiempo real, en la que '''''VIVA'''''it Desk fundamentalmente inserta información&lt;br /&gt;
|-&lt;br /&gt;
|Sección [bd2]&lt;br /&gt;
||host=&amp;quot; ip_BBDD_replica &amp;quot;&lt;br /&gt;
puerto=&amp;quot;Nº puerto&amp;quot;&lt;br /&gt;
basedatos=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
usuario=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
clave=&amp;quot;UIk5jMY9PVX6ogg=&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Contiene información para la conexión a BBDD de réplica, en la que '''''VIVA'''''it Desk solo leerá información&lt;br /&gt;
|-&lt;br /&gt;
|Sección [telefono]&lt;br /&gt;
||pruebas=1 (Valores válidos 0 ó 1)&lt;br /&gt;
Activación de funcionalidad &amp;quot;servicio técnico&amp;quot; en '''''VIVA'''''it Desk.&lt;br /&gt;
&lt;br /&gt;
puesto=&amp;quot;Nombre puesto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Sección [trazas]&lt;br /&gt;
|| nivel=3&lt;br /&gt;
&lt;br /&gt;
archivo=1&lt;br /&gt;
&lt;br /&gt;
consola=0&lt;br /&gt;
&lt;br /&gt;
sobreescribir=1&lt;br /&gt;
&lt;br /&gt;
Activación de generación de ficheros de trazas &amp;quot;viva-desk.log&amp;quot; en carpeta de aplicaciones &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Parámetros en invocación a '''''VIVA'''''it Desk ===&lt;br /&gt;
&lt;br /&gt;
La aplicación '''''VIVA'''''it Desk puede ser invocada con una serie de parámetros que condicionan su funcionamiento; los parámetros son:&lt;br /&gt;
* Primer parámetro: Nombre del archivo .ini; usado como alternativa al fichero por defecto &amp;quot;nimitz.ini&amp;quot;&lt;br /&gt;
* Segundo parámetro: Nombre de puesto; usado como alternativa al nombre de puesto del ordenador&lt;br /&gt;
* Tercer parámetro: Nombre de login; para forzar un usuario; es de utilidad si el sistema está configurado como &amp;quot;confiar en sistema operativo&amp;quot;, en cuyo caso no permite seleccionar un login de agente para acceder a la aplicación&lt;br /&gt;
&lt;br /&gt;
=== Instalación y actualización de aplicaciones de puestos de trabajo ===&lt;br /&gt;
La instalación y actualización de las aplicaciones en el puesto de trabajo pasan por disponer de los ficheros “lanzador.exe” y “lanzador.ini” (debidamente configurado) dentro de la carpeta en la que se desee instalar.&lt;br /&gt;
Lanzando la aplicación “lanzador.exe” se instalará o actualizará el sistema. &lt;br /&gt;
&lt;br /&gt;
El fichero “lanzador.ini” tiene el siguiente aspecto:&lt;br /&gt;
 URL=&amp;quot;http://IP_Servidor:8180/WSActualizaXML/actualizar.xml&amp;quot;&lt;br /&gt;
 BASE_URL_DESCARGAS=&amp;quot;http://IP_servidor:8180/XMLFILES/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Servicio técnico en '''''VIVA'''''it Desk ===&lt;br /&gt;
La activación de la funcionalidad de servicio técnico en '''''VIVA'''''it Desk nos permite realizar sincronizaciones manuales de la aplicación y activar trazas a nivel de Base de Datos o a nivel de log sobre el propio '''''VIVA'''''it Desk. Pulsando el botón derecho del ratón sobre la barra '''''VIVA'''''it Desk accederemos a las capacidades de soporte técnico&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Funcionamiento de la plataforma en modo emergencia ==&lt;br /&gt;
== Accesos Web ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Aplicación !! Enlace&lt;br /&gt;
|-&lt;br /&gt;
|Portal de administración '''''VIVA'''''it Suite || http://ip_admin:8180/Vivait-Call&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker||http://ip_tracker:8180/Vivait-Tracker&lt;br /&gt;
|-&lt;br /&gt;
|Monitor Web||http://ip_monitor:8180/MonitorWeb&lt;br /&gt;
|-&lt;br /&gt;
|Monitorización Zabbix||http://ip_zabbix:80/zabbix&lt;br /&gt;
|-&lt;br /&gt;
|Base de datos tiempo real||http://ip_bbdd_tr:80/phpmyadmin/&lt;br /&gt;
|-&lt;br /&gt;
|Base de datos réplica||http://ip_bbdd_replica:80/phpmyadmin&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Permisos de aplicaciones ===&lt;br /&gt;
Se crean a través del '''portal de administración ''VIVA''it''' . Debe conocerse como funcionan los ejes [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Ejes| ver sección Portal de administracion - General - Ejes]] y que existen cuatro aplicaciones creadas en la plataforma:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:17_2 Pestaña Genera - Usuarios - Explicacion permisos.png|center]]&lt;br /&gt;
&lt;br /&gt;
La forma como dar permisos de aplicaciones a un usuario esta explicada en la [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Asignaci.C3.B3n_de_Permisos_de_Usuario_por_Administrador | sección  Portal de administracion - General - Usuarios ]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elementos monitorizados del sistema ==&lt;br /&gt;
===Generalidades de Zabbix===&lt;br /&gt;
====Zabbix ====&lt;br /&gt;
Zabbix es una solución de código abierto que ofrece características de monitorización avanzada de forma tecnica y para el negocio, para todo tipo de servidores, aplicaciones y equipos que forman parte de una red. La versión que utilizamos en '''md'''tel es Zabbix 2.2.2.&lt;br /&gt;
&lt;br /&gt;
Zabbix  monitoriza los  recursos  de un equipo en forma remota, permite centralizar la información en un servidor que permite visualizar el monitoreo, cuenta con una interfaz de administración vía web y utiliza un mecanismo flexible de la notificación que permita que los usuarios configuren las alarmas basadas email para informar virtualmente cualquier acontecimiento. Esto permite una reacción rápida a los problemas del servidor. &lt;br /&gt;
&lt;br /&gt;
Para acceder al servidor Zabbix abrimos el navegador y ponemos la dirección de red (IP) de la maquina donde se encuentra instalado el servidor de Zabbix seguido de &amp;quot;/Zabbix.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Direccion.IP.Zabbix.Server/zabbix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Zabbix posee documentación tanto en wiki, foros y comunidades.Para ampliar la información se puede visitar:&lt;br /&gt;
[[http://www.zabbix.com Sitio oficial de Zabbix]]&lt;br /&gt;
===== Glosario Zabbix =====&lt;br /&gt;
Se trata de una lista de conceptos básicos de Zabbix, pero para ampliar la información sobre otros términos, visite el [[http://www.zabbix.com Sitio oficial de Zabbix]].&lt;br /&gt;
* '''host''' &lt;br /&gt;
:En Zabbix, un host es una entidad que define el elemento en red que se desea monitorizar/supervisar activamente sus recursos locales y aplicaciones. Este puede ser una impresa, router, switch, sensores de temperatura, un servidor, un ordenador,etc, o también una aplicación. La característica de un host es que debe poseer una dirección de red (IP).&lt;br /&gt;
&lt;br /&gt;
* '''host group'''&lt;br /&gt;
:En Zabbix, un host group (grupo host) es una agrupación lógica de los host, como una forma de organizar los dispositivos &amp;quot;Host&amp;quot; registrados en Zabbix para su monitorización. Puede contener hosts y templates.  Los grupos host se utilizan en la asignación de derechos de acceso a los hosts para diferentes grupos de usuarios.&lt;br /&gt;
&lt;br /&gt;
* '''item'''&lt;br /&gt;
:En Zabbix, un item (medida) es el parámetro que deseamos obtener del host, básicamente es una medida especifica que el servidor Zabbix recogerá de los agentes de Zabbix instalados en los host.&lt;br /&gt;
&lt;br /&gt;
* '''trigger'''&lt;br /&gt;
:En Zabbix, un trigger(disparador) es una entidad que define un umbral para detectar la existencia de un problema en un dispositivo.  Son valores recolectados por los &amp;quot;items&amp;quot;, se usa para &amp;quot;evaluar&amp;quot; los datos recibidos con condiciones definidas. Las condiciones son de tipo aritmético y lógico.&lt;br /&gt;
* '''event'''&lt;br /&gt;
:En Zabbix, un event (evento) es la aparición de un suceso en Zabbix que necesita atención. Por ejemplo, el cambio de estado a raíz de un trigger, el descubrimiento de un nuevo agente (autoregistro),etc.&lt;br /&gt;
* '''action'''&lt;br /&gt;
:En Zabbix, una action(acción) son reglas predefinidas para reaccionar a un evento disparado por los triggers, es decir, define qué hacer ante un evento. Consta de operaciones (por ejemplo, una notificacion, comandos remotos) y condiciones (cuando  la operación se lleva a cabo).&lt;br /&gt;
* '''notification'''&lt;br /&gt;
:En Zabbix, una notification (notificacion) es la entidad con que Zabbix nos puede notificar (Correo Electrónico,mensajes vía &amp;quot;SMS&amp;quot; o Jabber).&lt;br /&gt;
* '''template'''&lt;br /&gt;
:En Zabbix, un témplate (plantilla) viene predefinida en la instalación de Zabbix Server, con el fin de ser aplicada en base al tipo de sistema operativo(Linux, Mac, Window, etc) o en elementos que comparten los mismos parámetros de medición, por ejemplo la carga del procesador, uso de memoria y  uso de recursos de red. Las plantillas son un conjunto de módulos &amp;quot;ITEM, TRIGGERS y GRÁFICAS&amp;quot;, que están preconfigurados y listas para ser aplicadas a uno o varios hosts.&lt;br /&gt;
* '''application'''&lt;br /&gt;
:En Zabbix, una application (aplicación) es una agrupación lógica de los items.&lt;br /&gt;
* '''Zabbix server'''&lt;br /&gt;
:El Zabbix server (servidor de Zabbix) es el proceso central donde están definidas las configuraciones y donde se almacenan todos los datos y estadísticas recogidas de los agentes Zabbix.Consta de una base de datos, una interfaz web y el propio server. Como servidor, se encarga de recoger los datos de los agentes, calcular los triggers, enviar notificaciones, etc. &lt;br /&gt;
* '''Zabbix agent'''&lt;br /&gt;
:El zabbix agent (agente de Zabbix)  es un proceso desplegado en los host que son supervisados, que funciona como un servicio y puede funcionar de forma activa y pasiva simultáneamente.&lt;br /&gt;
&lt;br /&gt;
=====Discovery=====&lt;br /&gt;
La funcionalidad discovery(detección) lista los dispositivos que se integran en nuestra red y el tipo de servicios que proporciona. Por ejemplo, si la empresa tuviera cien colas ACDs, y veinticinco VDNS, y en cada cola como veinte medidas, seria muy laborioso registrar una por uno cada uno.  &lt;br /&gt;
Gracias a esta funcionalidad, se descubre todas las interfaces de red que se tiene, automáticamente y tanto para colas nodos o IVR. Para utilizar esta funcionalidad , se hace el uso de dos script, que se instalan en el momento de instalación de Zabbix en el directorio &amp;quot;/usr/local/sbin&amp;quot;, que son:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
'''zabbixDiscoveryQueues.pl''' : script utilizado para buscar colas ACD.&lt;br /&gt;
&lt;br /&gt;
'''zabbixDiscoveryVDN.pl''' : script utilizado para buscar VDNS.&lt;br /&gt;
|}&lt;br /&gt;
La explicación de como configurarla se encuentra en el manual oficial [[https://www.zabbix.com/documentation/2.2/manual/discovery/network_discovery/rule | Zabbix detección de redes]].&lt;br /&gt;
&lt;br /&gt;
=====Notificaciones=====&lt;br /&gt;
&lt;br /&gt;
Necesariamente, debe darse de alta al usuario y darse de alta el servidor de correo electrónico para poder ser capaz de enviar correos.&lt;br /&gt;
&lt;br /&gt;
Por otro lado, el formato del correo electrónico y las condiciones de envío de correo al usuario se configura en las acciones. Véase  el [[https://www.zabbix.com/documentation/2.2/manual/quickstart/notification  | manual oficial de Zabbix 2.2]]&lt;br /&gt;
&lt;br /&gt;
=====Usuarios=====&lt;br /&gt;
Zabbix permite la organización de usuarios en grupos para establecer los permisos adecuados de acuerdo al tipo de perfil que deseemos crear. Necesariamente un usuario debe permanecer a un grupo o varios grupos.Todos los usuarios acceden a la aplicación de Zabbix a través de la interfaz Web. &lt;br /&gt;
&lt;br /&gt;
Cada usuario Zabbix se le asigna un nombre de usuario único , una contraseña y podemos indicarle que tipo de comunicación que posee, normalmente es vía email, pero puede ser vía a otro tipo de medios. Para mas información ver el [[https://www.zabbix.com/documentation/2.2/manual/web_interface/user_profile || manual oficial ]].&lt;br /&gt;
 &lt;br /&gt;
=====Visualización=====&lt;br /&gt;
Con Zabbix es posible visualizar los datos como  gráficos, pantallas, mapas y hasta presentaciones cambiantes, entre otros. En este apartado solo nombraremos características esenciales que se tendra que completar con el [[https://www.zabbix.com/documentation/2.2/manual/config/visualisation | manual oficial]]&lt;br /&gt;
======Graphs======&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''Nota:''' Debe crearse algun item dentro del host para poder utilizar una gráfica.&lt;br /&gt;
|}&lt;br /&gt;
En Zabbix una gráfica sirve para representar gráficamente los resultados obtenidos de uno item o varios items.&lt;br /&gt;
[[File:EjemploGrafica.png|center|750px]]&lt;br /&gt;
Los valores min / avg / max que Zabbix obtiene y representa son de un registro de datos de la tabla tendencias.&lt;br /&gt;
&lt;br /&gt;
======Screens======&lt;br /&gt;
La pantalla refiere a otra característica adaptable de ZABBIX cuál permite que los usuarios creen las pantallas personalizadas dentro de ZABBIX para exhibir la información. Se considera como una colección de gráficas y no depende del host. Una pantalla puede consistir en gráficos simples, gráficos personalizados, integrar mapas, Alertas, gráficos estadísticos o texto llano tal como los 5 valores pasados de un item particular entre otros; y mostrar la información de forma dinámica.&lt;br /&gt;
&lt;br /&gt;
[[File:EjemploScreen.png|center|750px]]&lt;br /&gt;
&lt;br /&gt;
======Maps======&lt;br /&gt;
En Zabbix, un map (mapa) es una representación gráfica de la situacion de nuestros dispositivos en red. Es un escenario que muestra nuestra red, aplicaciones y servicios a través de figuras o iconos.  Dichas figuras toman vida en respuesta a los eventos que se dan en nuestro entorno.&lt;br /&gt;
[[File:EjemploMaps.png|center|750px]]&lt;br /&gt;
[[File:EstadosMaps.png|center|750px]]&lt;br /&gt;
===Zabbix en '''MD'''tel===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Configuraciones de Zabbix ====&lt;br /&gt;
&lt;br /&gt;
===== Agentes Zabbix =====&lt;br /&gt;
{|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 '''Nota:''' Hay que instalar un agente Zabbix en cada maquina que se quiera monitorizar.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El agente de Zabbix puede recoger datos: &lt;br /&gt;
*'''De forma pasiva:''' el server contacta al agente pidiéndole un dato (por ejemplo el consumo de CPU en ese instante) y el agente responde al server con ese dato. A esta acción del agente le llamaremos '''Agente activo'''.&lt;br /&gt;
*'''De forma activa:''' en un primer momento, el server le enviará al agente el listado de items a monitorizar. A partir de ese momento, será el agente que de forma periódica recogerá datos sobre esos ítems y se los hará llegar al server. A esta acción del agente le llamaremos ''''''Agente pasivo''''''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== Configurar agente de forma pasiva======&lt;br /&gt;
Para configurar el agente de Zabbix necesitamos acceder a la maquina que actuará como agente, y en el directorio /etc/zabbix modificar el fichero '''zabbix_agentd.conf''' e indicar cual es la dirección de red (IP) del servidor Zabbix.&lt;br /&gt;
&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 ##### Passive checks related&lt;br /&gt;
 ### Option: Server&lt;br /&gt;
 #       List of comma delimited IP addresses (or hostnames) of Zabbix servers.&lt;br /&gt;
 #       Incoming connections will be accepted only from the hosts listed here.&lt;br /&gt;
 #       If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1'  &lt;br /&gt;
 #       are treated equall$&lt;br /&gt;
 #&lt;br /&gt;
 # Mandatory: no&lt;br /&gt;
 # Default:&lt;br /&gt;
 Server= IP.Server Zabbix.&lt;br /&gt;
|}&lt;br /&gt;
Tras la configuración del fichero, debemos reiniciar el servicio de los agentes.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 sudo service zabbix-agent restart&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====== Configurar agente de forma activa ======&lt;br /&gt;
&lt;br /&gt;
Para configurar el agente de Zabbix necesitamos acceder a la máquina que actuará como agente, y en el directorio /etc/zabbix modificar el fichero '''zabbix_agentd.conf''' e indicar cual es la dirección de red (IP) del servidor Zabbix.&lt;br /&gt;
&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 ##### Active checks related&lt;br /&gt;
 ### Option: ServerActive&lt;br /&gt;
 #       List of comma delimited IP:port (or hostname:port) pairs of Zabbix serv$&lt;br /&gt;
 #       If port is not specified, default port is used.&lt;br /&gt;
 #       IPv6 addresses must be enclosed in square brackets if port for that hos$&lt;br /&gt;
 #       If port is not specified, square brackets for IPv6 addresses are option$&lt;br /&gt;
 #       If this parameter is not specified, active checks are disabled.&lt;br /&gt;
 #       Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12$&lt;br /&gt;
 #&lt;br /&gt;
 # Mandatory: no&lt;br /&gt;
 # Default:&lt;br /&gt;
 ServerActive=127.0.0.1&lt;br /&gt;
 --------------------------sección separada----------------------------&lt;br /&gt;
 ### Option: UserParameter&lt;br /&gt;
 #       User-defined parameter to monitor. There can be several user-defined pa$&lt;br /&gt;
 #       Format: UserParameter=&amp;lt;key&amp;gt;,&amp;lt;shell command&amp;gt;&lt;br /&gt;
 #       See 'zabbix_agentd' directory for examples.&lt;br /&gt;
 #&lt;br /&gt;
 # Mandatory: no&lt;br /&gt;
 # Default:&lt;br /&gt;
 # UserParameter=&lt;br /&gt;
 User_parameters:asterisk.pid, /usr/bin/asterisk -rx 'core show chanels'|grep 'active calls'| cat -d -f 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El parámetro '''User_parameters''' tiene un formato de este estilo:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 User_parameters: NombreMedida, comando.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El nombre de la medida se refiere al nombre que demos a la aplicación , no hace falta que exista una aplicación con ese nombre en Zabbix, y el comando , es el comando remoto que tiene que ejecutar el servidor Zabbix. Posiblemente necesita darse permisos para ejecutar el comando y siempre debe devolver un valor (un numero o un tiempo) que el servidor Zabbix puede manejar.&lt;br /&gt;
Tras la configuración del fichero, debemos reiniciar el servicio de los agentes.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 sudo service zabbix-agent restart&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Scripts del Servidor Zabbix =====&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''': &amp;lt;small&amp;gt;No olvidar que en la misma maquina del server Zabbix, debe configurarse como agente de Zabbix.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Después de realizar la [[# Instalación de Zabbix | Instalación de Zabbix ]] correctamente. Se han creado otros ficheros scripts (''scripts propios de '''md'''tel'') que facilitarán la petición del servidor a los agentes activos, para poder parametrizar todos los elementos del negocio que suelen monitorizarse. &lt;br /&gt;
Dependiendo de lo que vaya a monitorizarse necesitaremos algún script o todos. Algunos nos informan sobre elementos de negocio, saber si asterisk funciona , monitorizar el CTI (lanzara nc localhost 1111) , controlar el Intz-Nimitz, comprobar si funciona motalsal, ect.&lt;br /&gt;
&lt;br /&gt;
Cada script se exportara a los host, para que pueda facilitar los datos que pide el servidor Zabbix y configurarse.&lt;br /&gt;
Por ejemplo,para monitorizar las llamadas en curso del ACD, agentes conectados, agentes desconectados, etc.&lt;br /&gt;
Todos los scripts se deben colocar en el directorio /usr/local/sbin con permisos 755, su nombre es parecido a &amp;quot;zabbixSenderXXXXX.pl&amp;quot;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 ls /usr/local/sbin/ |grep zabbixSender&lt;br /&gt;
 '''zabbixSenderACDBD.pl'''&lt;br /&gt;
 '''zabbixSenderACD.pl'''&lt;br /&gt;
 '''zabbixSenderCTI.pl'''&lt;br /&gt;
 '''zabbixSender-intz-nimitz.pl'''&lt;br /&gt;
 '''zabbixSenderMotorSal.pl'''&lt;br /&gt;
 '''zabbixSenderMyACDSuperv.pl'''&lt;br /&gt;
 '''zabbixSenderRecordNodo.pl'''&lt;br /&gt;
 '''zabbixSenderRecordCentral.pl'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Se crea una tarea programada en linux para poder ejecutarse los scripts, programando el tiempo en que debe ejecutarse.&lt;br /&gt;
&lt;br /&gt;
Si visualizo que &amp;quot;............&amp;quot; aparece:&lt;br /&gt;
&lt;br /&gt;
*****  root zabbix&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderACDBD.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtiene diversos valores por cada cola, estados de agente por cola y estados de agente generales.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor BDTR.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:''' Ruta al archivo de configuración (Por ejemplo: ''/etc/MDtel/zabbixSenderACDBD.pconf'')&lt;br /&gt;
&lt;br /&gt;
'''Archivo de configuración:''' zabbixSenderACDBD.pconf&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''$db:''' Nombre de la BBDD (normalmente nimitz)&lt;br /&gt;
 '''$dbHost:''' Dirección IP del servidor de BBDD de TR (normalmente BDTR)&lt;br /&gt;
 '''$dbPort:''' Puerto MySQL (normalmente 3306)&lt;br /&gt;
 '''$dbUsuario:''' Usuario MySQL (normalmente nimitz)&lt;br /&gt;
 '''$dbClave:''' Clave del usuario&lt;br /&gt;
 '''$sZab:''' Dirección IP del servidor Zabbix&lt;br /&gt;
 '''$hZab:''' Nombre del host Zabbix (normalmente el nombre de máquina, tal y como se configura en &lt;br /&gt;
 zabbix_agentd.conf o en el host en la web de Zabbix)&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderACD.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener el PID de Asterisk para revisar si se ha reiniciado en caso de que cambie.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor ACD.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:''' Ruta al archivo de configuración (Por ejemplo: ''/etc/MDtel/zabbixSenderACD.pconf'').&lt;br /&gt;
&lt;br /&gt;
'''Archivo de configuración:''' zabbixSenderACDBD.pconf.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''$db:''' Nombre de la BBDD (normalmente nimitz)&lt;br /&gt;
 '''$dbHost:''' Dirección IP del servidor de BBDD de TR (normalmente BDTR)&lt;br /&gt;
 '''$dbPort:''' Puerto MySQL (normalmente 3306)&lt;br /&gt;
 '''$dbUsuario:''' Usuario MySQL (normalmente nimitz)&lt;br /&gt;
 '''$dbClave:''' Clave del usuario&lt;br /&gt;
 '''$sZab:''' Dirección IP del servidor Zabbix&lt;br /&gt;
 '''$hZab:''' Nombre del host Zabbix (normalmente el nombre de máquina, tal y como se configura en&lt;br /&gt;
 zabbix_agentd.conf o en el host en la web de Zabbix)&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
======zabbixSenderCTI.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de vivait-cti.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute vivait-cti. Normalmente el servidor ACD.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======zabbixSender-intz-nimitz.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de intz-nimitz.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute intz-nimitz.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
======zabbixSenderMotorSal.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de motorSal.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute motorSal.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderMyACDSuperv.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de myAcdSuperv.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute myAcdSuperv.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderRecordNodo.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de recordNodo.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute recordNodo.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderRecordCentral.pl======&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de recordCentral.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute recordCentral.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A continuación se muestra una tabla resumen de los distintos scripts y sus funcionalidades: &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Zabbix_scripts.png |960px]]&lt;br /&gt;
&lt;br /&gt;
====== Dimensionamiento del servidor (Startpollers) ======&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''': &amp;lt;small&amp;gt;EL parámetro StartPollers es un &amp;lt;u&amp;gt;parámetro numérico&amp;lt;/u&amp;gt; que forma parte del fichero de configuración &lt;br /&gt;
 del servidor Zabbix(zabbix_server.conf). Por defecto el servidor Zabbix esta configurado para&lt;br /&gt;
 iniciar con cinco startpollers.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El servidor Zabbix puede hace peticiones a los agentes de las medidas que necesita o quiere. O en caso contrario los agentes envian en un tiempo determinado la información al servidor. Para recibir todas estas peticiones necesitamos los pollers.  &lt;br /&gt;
&lt;br /&gt;
Los poller son los procesos encargados de recibir todas las peticiones de medidas. Aumentaremos su cantidad dependiendo de la necesitad que tengamos. Para ello podemos observar la queue , que es la encargada de almacenar un listado de todas las cosas que están pedidas para medirse y recibirse.  SI por ejemplo esta cola (queue) muestra mas de mil medidas seguramente estos pollers sean un cuello de botella y habrá que aumentar su numero.&lt;br /&gt;
&lt;br /&gt;
=====Templates=====&lt;br /&gt;
&lt;br /&gt;
Zabbix cuenta con templates (plantillas) que facilitan la tarea de &amp;quot;Registrar Equipos y Dispositivos&amp;quot; y agregarles métricas; acelerar el despliegue de las tareas de supervisión en un host; aplicar cambios masivos a tareas de supervisión. En '''md'''tel hemos creado plantillas propias que facilitan estos procesos, los cuales necesitaremos [[#Importar templates |importar templates]].&lt;br /&gt;
&lt;br /&gt;
Las plantillas están vinculados directamente a los hosts individuales, por tanto se necesitaran utilizar en cada host.&lt;br /&gt;
&lt;br /&gt;
Automáticamente, cada template rellena por item las aplicaciones, trigers, alarmas,gráficos,... etc. &lt;br /&gt;
&lt;br /&gt;
A continuación, se muestran los distintos bloques de funciones de la instalación en función de cada template:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! Se instalan en general &lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| SI (si clúster)&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| si&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| -&lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| si(si no posee ip virtuales de clúster)&lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| si&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ '''Dependiendo del tipo de nodo:'''&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! ACD !! Corporativo/GW&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| Si || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - || Si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - || Si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ '''Dependiendo del tipo de Base de dato'''s:&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! BBDD &amp;lt;br /&amp;gt;Tiempo Real !! BBDD&amp;lt;br /&amp;gt; Réplica !! BBDD Copia&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| Si(si ACD) || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| si || si || si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| si || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! Administración&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - &lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - &lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal||SI (si posee servidor calendarios)&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! Servidor de grabaciones&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - &lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| Si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - &lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal||-&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ '''Monitorización'''&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! General !! Contact Center&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - || - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - || - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| si || - &lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - || - &lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 * El template OS Linux tiene asociado el Template App Zabbix Agent.&lt;br /&gt;
 Una '''base de datos unificada''' es una base de datos de tiempo real junto a  una base de datos de replica&lt;br /&gt;
&lt;br /&gt;
====== Importar templates======&lt;br /&gt;
&lt;br /&gt;
Las plantillas propias de '''md'''tel se encuentran en la ruta &amp;quot;'''/usr/src/nimitz/archivos'''&amp;quot; y empiezan con el nombre de &amp;quot;TemplateXXX.xml&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 ls /usr/src/nimitz/archivos | grep Template&lt;br /&gt;
 '''Template DRBD.xml'''&lt;br /&gt;
 '''Template motorSal.xml'''&lt;br /&gt;
 '''Templates Vivait-Suite_GW.xml'''&lt;br /&gt;
 '''Templates Vivait-Suite.xml'''&lt;br /&gt;
 '''Template Vivait-Call Asterisk.xml'''&lt;br /&gt;
 '''Template Vivait-Call bdCentral.xml'''&lt;br /&gt;
 '''Template Vivait-Call bdNodo.xml'''&lt;br /&gt;
 '''Template Vivait-Call cambiarPerfil_Cal.xml'''&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La importación se realizara una vez a través de la web, no hace falta desde el servidor Zabbix, puede ser en cualquier  computadora con acceso a la interfaz web de Zabbix.&lt;br /&gt;
&lt;br /&gt;
[[File:ImportarTemplates.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
Hay opciones varias opciones a elegir para importación de templates, pero podemos dejar por defecto las señaladas y pulsar el botón &amp;quot;import&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Configuración para un primer funcionamiento de Zabbix===&lt;br /&gt;
Se describe una básica configuracion de Zabbix para cualquier equipo que utilice Windows o linux. Pues  mediante la definición de hosts, items, triggers y acciones, Zabbix permite efectuar un monitoreo efectivo de plataformas IT heterogéneas. &lt;br /&gt;
&lt;br /&gt;
====Configuración de los equipost (host) para la monitorización====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''': Tenga en cuenta que debe de estar previamente configurado el agente Zabbix del &lt;br /&gt;
 dispositivo a ser monitorizado apuntando a la IP del &amp;quot;Servidor Zabbix&amp;quot;.&lt;br /&gt;
|}&lt;br /&gt;
Existen dos tipos de host:&lt;br /&gt;
* '''Host físico''': donde la dirección de red que registramos en Zabbix, corresponde al dispositivo que deseamos monitorizar.&lt;br /&gt;
* '''Host virtual''': es una dirección IP virtual, que puede relacionarse con un servidor Web, clusters, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:CreacionHost.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
﻿Las opciones basicas para configurar un host son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center ;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Host Name'''&lt;br /&gt;
|  | Definir un nombre para el host.&lt;br /&gt;
||Se puede utilizar números, letras, espacios y guiones bajos están permitidos.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Visible Name'''&lt;br /&gt;
|  | Identificar con un nombre, la maquina a la que se refiere el host.&lt;br /&gt;
||Si no tiene valor, se mostrara como nombre &amp;quot;Host Name&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Groups'''&lt;br /&gt;
|  | Seleccionar al grupo de host que pertence.Seleccione uno o varios grupos de la caja derecha.&lt;br /&gt;
|| Los valores que puede seleccionar por defecto:&lt;br /&gt;
Discoverd hosts.&lt;br /&gt;
&lt;br /&gt;
Switches.&lt;br /&gt;
&lt;br /&gt;
Templates.&lt;br /&gt;
&lt;br /&gt;
Templates MDtel.&lt;br /&gt;
&lt;br /&gt;
Zabbix servers.&lt;br /&gt;
&lt;br /&gt;
Linux Servers.&lt;br /&gt;
&lt;br /&gt;
Hypervisors.&lt;br /&gt;
&lt;br /&gt;
Virtual machines.&lt;br /&gt;
&lt;br /&gt;
O crear uno nuevo en '''New group'''.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Agent interfaces'''&lt;br /&gt;
|  |Se recomienda usar una dirección IP, en vez de un nombre de la maquina para resolver por un servidor de DNS que puede fallar.&lt;br /&gt;
|  | 10050 por defecto&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cuando termine, haga clic en nel boton &amp;quot;Save&amp;quot;.  Su nuevo &amp;quot;Host&amp;quot; debe ser visible en la lista de &amp;quot;Host registrados&amp;quot;.Despues el zabbix, intentara configurarse el zabbix para conectarse a la IP.... cada x tiempo hace un barrido. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Comprobación de disponibilidad del host=====&lt;br /&gt;
Para saber si todo esta bien debemos ver la Z de disponibilidad.   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:EstadosZHost.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Indicacion de los colores del icono Z:&lt;br /&gt;
&lt;br /&gt;
* Si el icono Z en la columna de disponibilidad es de color rojo, indica que hay un error en la comunicación - mueva el cursor del ratón sobre él para ver el mensaje de error. &lt;br /&gt;
&lt;br /&gt;
* Si el icono es gris, significa que esta en proceso de comunicación con el &amp;quot;Agente Zabbix&amp;quot;. Compruebe que el servidor Zabbix está en marcha, y pruebe a actualizar la página más tarde.  El tiempo estimado para revisar si existe problemas es de 5 minutos.&lt;br /&gt;
&lt;br /&gt;
* Si el icono es verde, esta funcionando correctamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Indicar que plantilla(template) tendra el host [opcional]====&lt;br /&gt;
Tras [[#Importar templates |importar templates]] nos dirigimos al host ya configurado, y en su pestaña de templates pulsamos &amp;quot;add&amp;quot; y añadimos la plantilla/s adecuadas.&lt;br /&gt;
&lt;br /&gt;
====Asignar items al host ====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''':Un host puede tener un ITEM sin necesitad de tener template.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Todos lo ITEMS se agrupan por HOST, esto significa que cada HOST tiene sus propios &amp;quot;Módulos que recogen datos del Host&amp;quot;.   Para agregar un nuevo módulo vamos a &amp;quot;Configuration → Hosts&amp;quot; y localizamos el &amp;quot;Host&amp;quot; al cual queremos agregarle un nuevo &amp;quot;Item&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:CrearItemEjemplo.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
Parametros o campos a rellenar para una configuración básica :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center ;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Name'''&lt;br /&gt;
|  | Definir un nombre para el item.  Este nombre va a ser nuestro identificador para todas la gestiones en donde lo involucremos como el caso de Triggers.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Type'''&lt;br /&gt;
|| Indicar de que entidad queremos recibir informacion.&lt;br /&gt;
||Puede ser al &amp;quot;Agente Zabbix&amp;quot; o a el Hardware como impresoras, switch o routers.   &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Key'''&lt;br /&gt;
|  | los &amp;quot;Items&amp;quot; utilizan &amp;quot;Key&amp;quot; que son parámetros de Zabbix.  Los &amp;quot;Key&amp;quot; nos permiten indicar específicamente que tipo de información vamos a solicitara a la entidad. Se puede considerar también como el nombre de alguna aplicación.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''host interface'''&lt;br /&gt;
|  |Es la direccion de red del servidor zabbix (puede ser uno o mas)&lt;br /&gt;
|  | &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Units'''&lt;br /&gt;
|  |Es la dirección de red del servidor zabbix (puede ser uno o mas)&lt;br /&gt;
|  | &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Type of information'''&lt;br /&gt;
|  |Tipo de unidades con el que mostrar Zabbix el valor segundos, minutos, euros,....&lt;br /&gt;
|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cuando termine, haga clic en Guardar.   El nuevo elemento debe aparecer en la ITEMLIST. &lt;br /&gt;
Para mas informacion [[http://entation/1.8/manual/config/items#zabbix_agent. ver documentación Zabbix]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Ver la información recolectada por el item =====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' Normalmente para ver la información lo encontraremos en &amp;quot;Monitoring → Latest data&amp;quot;,luego &lt;br /&gt;
 clic en el signo &amp;quot;+&amp;quot; en &amp;quot;other&amp;quot; siempre que no pertenezca a una aplicación. &lt;br /&gt;
 En caso contrario, estará bajo el nombre de la aplicación.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Después de definir el &amp;quot;Item&amp;quot; vamos a revisar la información que esta recolectando.  .  La información comenzará a ser recolectada según el tiempo que le indicamos en el &amp;quot;Item&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:VerInfoITEM.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
La espera para recibir la información varía dependiendo del tiempo de recolección del item, la mayoría suele ser aproximadamente al minuto de generar el &amp;quot;Item&amp;quot;. Zabbix le ofrece la opción de visualizar la información en forma gráfica (sencilla).  En el &amp;quot;Item&amp;quot; en lista haga clic en la columna &amp;quot;History - Graph&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:VIsualGraficaValorItem.png|center|750px]]&lt;br /&gt;
Si en un caso usted no observa información le recomendamos:&lt;br /&gt;
  &lt;br /&gt;
* Ingrese al &amp;quot;Item&amp;quot; y revise que la información del &amp;quot;Key&amp;quot; este igual al ejemplo &amp;quot;system.cpu.load&amp;quot; &lt;br /&gt;
* Verifique que el agente este funcionando en el &amp;quot;Servidor a ser monitoreado&amp;quot; y que &amp;quot;El Servidor recolector Zabbix&amp;quot; este funcionando. &lt;br /&gt;
* El icono &amp;quot;Z&amp;quot; en el host debe estar en color verde. &lt;br /&gt;
* Asegure que esta monitoreando el servidor que le agregó este &amp;quot;Item&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Configurar los Triggers para los host====&lt;br /&gt;
A partir de la información que captura los agentes , el servidor de Zabbix comienza a efectuar la recolección de estos items en la base de datos. Con esto se tiene un registro histórico de tales mediciones, que pueden ser tan simples como un simple ping hasta datos de uso de disco, memoria, cpu, etc.&lt;br /&gt;
A partir de los datos que se reciben de los agentes lo que sigue es definir y configurar Triggers, que son evaluaciones que hace Zabix de estos datos para determinar la existencia de un Problema en un dispositivo.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Nota: Un trigger necesita una accion, que indica que hacer cuando se activa el trigger.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un trigger(disparador) es un tipo de reacción ante unas medidas, como un disparador en el que si pasa algo se activa. Los Trigger en Zabbix son módulos que creamos a uno o múltiples &amp;quot;Items&amp;quot; para evaluar o comparar los valores recolectados por los &amp;quot;Items&amp;quot; con condiciones que nosotros definamos.  Las condiciones son de tipo aritmético y lógico.&lt;br /&gt;
&lt;br /&gt;
Para configurar un &amp;quot;Trigger o Disparador&amp;quot; seleccionamos &amp;quot;Configuration → Hosts&amp;quot; localizamos el &amp;quot;Host&amp;quot; de ejemplo que creamos y luego hacemos clic en &amp;quot;Trigger&amp;quot;, después haga clic en &amp;quot;Create Trigger&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Parametros o campos a rellenar para una configuración básica :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center ;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Name'''&lt;br /&gt;
|  | Definir un nombre para el trigger.  Este nombre va a ser nuestro identificador para todas la gestiones en donde lo involucremos como el caso de los eventos.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Expression'''&lt;br /&gt;
||  Hay que indicar para que medida se crea (item) y sus funciones con los parametros adecuados. '''''Recomendación usar expression constructor que pedirá siempre al crearlo, para que item es y sus funciones...'''''&lt;br /&gt;
||Ejemplo: {New host:system.cpu.load.avg(180)}&amp;gt;2 &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Key'''&lt;br /&gt;
|  | los &amp;quot;Items&amp;quot; utilizan &amp;quot;Key&amp;quot; que son parámetros de Zabbix.  Los &amp;quot;Key&amp;quot; nos permiten indicar específicamente que tipo de información vamos a solicitara a la entidad. Se puede considerar tambien como el nombre de alguna aplicacion.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Una descripción breve sobre el trigger.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Severity'''&lt;br /&gt;
|  | everidad distinguida por colores,&lt;br /&gt;
|| No classified&lt;br /&gt;
 Information&lt;br /&gt;
 Warning&lt;br /&gt;
 Average&lt;br /&gt;
 High&lt;br /&gt;
 Disaster&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Comprobar el estado del trigger =====&lt;br /&gt;
Podemos ver el estado del &amp;quot;Trigger&amp;quot; en &amp;quot;Monitoring → Triggers&amp;quot;.El  color en caso de que se active depende de la severidad definida. Por ejemplo,  si el &amp;quot;Trigger&amp;quot; esta en color verde indica que el resultado de la métrica se mantiene por debajo de la condición que indicamos.  Por el contrario si el resultado esta &amp;quot;sobre lo indicado&amp;quot; su color sera rojo.&lt;br /&gt;
&lt;br /&gt;
[[File:EstadoTrigger.png|center|750px]]&lt;br /&gt;
&lt;br /&gt;
====Asociar un Action al trigger====&lt;br /&gt;
&lt;br /&gt;
Una action(acción) sirve para configurar un mensaje de alerta o una accion para Zabbix, ante un problema. Hay varias formas de gestionar un problema a través de una acción:&lt;br /&gt;
&lt;br /&gt;
# A través de mensajes simples, alertando al instante.&lt;br /&gt;
# Escalar los mensajes hacia el jefe y/o otros grupos.&lt;br /&gt;
# Ejecución de commandos remotos.&lt;br /&gt;
# Notificaciones repetidas hasta que se resuelve el problema.&lt;br /&gt;
# Notificaciones y comandos retardados.&lt;br /&gt;
# Escenario complejo, la combinación de todo lo anterior.&lt;br /&gt;
&lt;br /&gt;
Para crear una configuración en &amp;quot;Configuration-Actions&amp;quot;. La explicación esta en la [[ https://www.zabbix.com/documentation/2.0/manual/config/notifications/action documentación de Zabbix]].&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integraciones con servicios externos ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Presencia con Openfire ===&lt;br /&gt;
'''''VIVA'''''it se integra con servidor XMPP Openfire en su versión 3.10.2 (última probada)&lt;br /&gt;
&lt;br /&gt;
Además del servidor, es necesario instalar un plugin de integración con asterisk 13, denominado &amp;quot;asterisk IM&amp;quot;, versión 1.4.1&lt;br /&gt;
&lt;br /&gt;
La instalación del servidor Openfire es una instalación estándar, realizada de paquete&lt;br /&gt;
&lt;br /&gt;
La instalación del plugin es un &amp;quot;jar&amp;quot; que se carga desde la pagina de plugins de openfire&lt;br /&gt;
&lt;br /&gt;
Con esto conseguiremos comunicar asterisk y OPenfire de manera que:&lt;br /&gt;
*Los estados telefónicos de una extensión '''''VIVA'''''it  se reflejen en Openfire&lt;br /&gt;
*Poder marcar desde los clientes de IM instalados en los puestos&lt;br /&gt;
*Ver en el cliente llamadas entrantes al teléfono&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;Enlaces de interes:&amp;lt;/big&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
[http://www.igniterealtime.org/projects/openfire/ Página proyecto openfire]&lt;br /&gt;
&lt;br /&gt;
[https://community.igniterealtime.org/thread/56076 Página proyecto &amp;quot;asterisk IM&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reuniones virtuales con Openmeetings ===&lt;br /&gt;
'''OpenMeetings''' es un sistema de vídeo web-conferencia en tiempo real. Usando recursos como audio (micrófono), vídeo (cámara web), posibilidad de subir y convertir presentaciones (en PDF , PPT o ODP que se convierten a Flash), compartición de la pantalla de tu ordenador, o pizarra digital compartida, panel de administración, posibilidad de grabar las sesiones… y completo soporte multiplataforma, es decir, que aparte de poder grabar las sesiones, se puede compartir un escritorio también desde una máquina Linux.&lt;br /&gt;
&lt;br /&gt;
Para instalar '''OpenMettings''' debe seguir el [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manuales_de_instalaci%C3%B3n#Instalaci.C3.B3n_de_Openmeetings | manual de Instalación de Openmeetings]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]] &lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:VIVAit Suite]]&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Howto%27s&amp;diff=5960</id>
		<title>Howto's</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Howto%27s&amp;diff=5960"/>
		<updated>2017-06-15T06:15:29Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* FOP2. Problemas en transferencias asistidas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!! VIVAit Call&lt;br /&gt;
VIVAit Suite&lt;br /&gt;
&lt;br /&gt;
VIVAit Fax&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Como parar asterisk ==&lt;br /&gt;
En situaciones límite en el que es necesario parar el asterisk y volver a arrancarlo hay que realizar los siguientes pasos:&lt;br /&gt;
&lt;br /&gt;
 Entrar en la consola de asterisk e introducir el comando core stop now&lt;br /&gt;
&lt;br /&gt;
 Si esto no funciona, tendremos que matar el proceso a mano. Esto es, primero el safe asterisk y luego el asterisk mediante el comando &lt;br /&gt;
 kill -9 nºPID&lt;br /&gt;
 &lt;br /&gt;
 Tras estos pasos, volveremos a arrancar el servicio asterisk mediante /etc/init.d/asterisk start&lt;br /&gt;
&lt;br /&gt;
== Como configurar la megafonía ==&lt;br /&gt;
&lt;br /&gt;
El servicio de megafonía se basa en el protocolo multicast.&lt;br /&gt;
&lt;br /&gt;
Para configurar la megafonía tenemos que activar en los teléfonos que para que estén &amp;quot;escuchando&amp;quot; en una dirección multicast y tener un emisor en esa dirección multicast.&lt;br /&gt;
&lt;br /&gt;
Los teléfonos suelen tener en su configuración un apartado para configurar el multicast. Por ejemplo en los yealink está en la pestaña directory sección multicast IP.&lt;br /&gt;
&lt;br /&gt;
En los teléfonos se puede configurar manualmente o incluirlo en las plantillas de aprovisionamiento.&lt;br /&gt;
&lt;br /&gt;
El asterisk tiene un canal para hacer multicast. Este canal es MulticastRTP.&lt;br /&gt;
&lt;br /&gt;
Para esto podemos crear un VDN que contenga la siguiente línea. (en el ejemplo la dirección multicast es 239.0.126.1 y el puerto es el 10001).&lt;br /&gt;
&lt;br /&gt;
 [Cen_VDN_90000]&lt;br /&gt;
 exten =&amp;gt; _X.,1,NoOp(MDVDN_90000*****EXTEN=${EXTEN}**CID=${CALLERID(NUM)}**UCID=${UCID}*)&lt;br /&gt;
  same =&amp;gt;     n,Answer&lt;br /&gt;
  same =&amp;gt;     n,Dial(MulticastRTP/basic/239.0.126.1:10001)&lt;br /&gt;
 include =&amp;gt; Cen_finLlamada&lt;br /&gt;
&lt;br /&gt;
== Como configurar el candado ==&lt;br /&gt;
El candado permite prohibir temporalmente la posibilidad de realizar llamadas hacia fuera. Sí se pueden seguir haciendo llamadas a extensiones fijas de la plataforma, es decir, llamadas sin coste.&lt;br /&gt;
&lt;br /&gt;
Para configurar dicha funcionalidad basta con crear extensiones con la categoría mas restrictiva posible y habilitar la movilidad, con lo que la extensión solo tendrá &amp;quot;permisos&amp;quot; para realizar llamadas internas.&lt;br /&gt;
&lt;br /&gt;
Para permitir llamadas externas solo hay que &amp;quot;mover&amp;quot; a un usuario con categoría suficiente a la extensión deseada.&lt;br /&gt;
== Como crear un grupo de captura y que se vea en cada teléfono el número que llama ==&lt;br /&gt;
&lt;br /&gt;
'''ATENCIÓN: SE CREAN CONFIGURACIONES NO REFLEJADAS EN PORTAL DE ADMINISTRACIÓN'''&lt;br /&gt;
&lt;br /&gt;
Para la simulación de grupos de captura y conseguir que todos los terminales vean el ANI del llamante:&lt;br /&gt;
&lt;br /&gt;
- Hacen falta teléfonos con dos líneas&lt;br /&gt;
&lt;br /&gt;
- Cada teléfono del grupo tiene en la línea 1 su extensión habitual (por ejemplo 40000)&lt;br /&gt;
&lt;br /&gt;
- Además, en el fichero &amp;quot;sip_Estatico.conf&amp;quot;, creamos una segunda extensión para cada teléfono, que le ocupará la segunda línea (por ejemplo 42000)&lt;br /&gt;
&lt;br /&gt;
- En esta segunda linea ponemos que cuando se llame tenga otro tono de llamada (un beep o nada...) que se asemeje en funcionamiento al de un mensaje de llamada en otra extension de mi grupo de captura&lt;br /&gt;
&lt;br /&gt;
- Se ha creado una variable global por cada teléfono en el fichero de variables &amp;quot;ext_MDtel_Particular.conf&amp;quot; de nombre EXTxxxxx (por ejemplo EXT40000); esa variable contiene las otras extensiones virtuales del grupo&lt;br /&gt;
por ejemplo EXT40000=&amp;gt;SIP/42001&amp;amp;SIP/42005&lt;br /&gt;
&lt;br /&gt;
- Hemos creado en el dialplan programación para que cuando exista esa variable global se añada a la marcación el contenido&lt;br /&gt;
&lt;br /&gt;
== Como crear supletorios ==&lt;br /&gt;
&lt;br /&gt;
'''ATENCIÓN: SE CREAN CONFIGURACIONES NO REFLEJADAS EN PORTAL DE ADMINISTRACIÓN'''&lt;br /&gt;
&lt;br /&gt;
Igual que el caso anterior pero en la variable ponemos números reales. Debido a un bug en el enrutador, que no devuelve la variable R_PARA, en el fichero ext_MARCAR_Extension.conf hay que sustituir la siguiente linea:&lt;br /&gt;
 &lt;br /&gt;
 ;same =&amp;gt;                   n,ExecIf($[&amp;quot;${EXT${R_PARA}}&amp;quot;=&amp;quot;&amp;quot;]?NoOp:Set(ENR_CADMARCAR=${ENR_CADMARCAR}&amp;amp;${EXT${R_PARA}}))&lt;br /&gt;
Por esta otra:&lt;br /&gt;
  same =&amp;gt;                   n,ExecIf($[&amp;quot;${EXT${R_DEST_${ENR_RUTA_CAD}}}&amp;quot;=&amp;quot;&amp;quot;]?NoOp:Set(ENR_CADMARCAR=${ENR_CADMARCAR}&amp;amp;${EXT${R_DEST_${ENR_RUTA_CAD}}}))&lt;br /&gt;
ATENCIÓN !!! en las llamadas salientes cada uno presenta su número&lt;br /&gt;
&lt;br /&gt;
Para emplear números externos en los supletorios hay que poner, al crear la variable que hemos explicado en el apartado anterior en el ext_MDtel_Particular.conf: &lt;br /&gt;
&lt;br /&gt;
 EXT335=&amp;gt;SIP/0999999999@Trunk_Movil ;En este caso suena en la ext 335 y en el móvil 999999999&lt;br /&gt;
&lt;br /&gt;
== Generación de llamada automática ==&lt;br /&gt;
&lt;br /&gt;
Para activar la funcionalidad es necesario lo siguiente: &lt;br /&gt;
&lt;br /&gt;
* Definir una variable ID_LISTA_LLAMAME con el ID de la lista que se va a usar para generar la llamada. Cuando se cree la lista hay que asegurarse que el campo &amp;quot;Nº segundos límite&amp;quot; tiene un valor lo suficientemente amplio para evitar que la llamada caduque antes de ejecutarse.&lt;br /&gt;
&lt;br /&gt;
* Establecer un timeout para la cola (en el Gosub Cen_Sub_GrupoACD se indica justo después de ${COLA})&lt;br /&gt;
&lt;br /&gt;
* Llamar a la función de MySQL ACD_FUNC_LLAMAME_CREAR a través de MDintz&lt;br /&gt;
&lt;br /&gt;
* En la función se usan los siguientes elementos variables:&lt;br /&gt;
&lt;br /&gt;
        ${ID_LISTA_LLAMAME}: Definida antes clienteTOCola: &lt;br /&gt;
        Nombre del cliente. Al no tener ningún nombre, se usa un denominador genérico&lt;br /&gt;
        ${CALLERID}: Número llamante, donde se dirigirá la llamada.&lt;br /&gt;
&lt;br /&gt;
Ejemplo:&lt;br /&gt;
&lt;br /&gt;
 [Cen_VDN_99001]&lt;br /&gt;
 ;----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 ;----------------------- VDN 99001 ------------------------------------------------------------&lt;br /&gt;
 ;----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 exten =&amp;gt; _X.,1,NoOp(MDENTGW_99001*****EXTEN=${EXTEN}**CID=${CALLERID(NUM)}**UCID=${UCID}*)&lt;br /&gt;
  same =&amp;gt;     n,Set(__COLA=89001)&lt;br /&gt;
  same =&amp;gt;     n,Set(ctiDiriTrato=0)&lt;br /&gt;
  same =&amp;gt;     n,Set(ctiDiriInterface=)&lt;br /&gt;
  same =&amp;gt;     n,Set(ID_LISTA_LLAMAME=2)&lt;br /&gt;
  same =&amp;gt;     n(cola),Gosub(Cen_Sub_GrupoACD,${EXTEN},1(${COLA},10,,Si,))&lt;br /&gt;
  same =&amp;gt;     n,GotoIf($[&amp;quot;${QUEUESTATUS}&amp;quot;!=&amp;quot;TIMEOUT&amp;quot;]?colgar)&lt;br /&gt;
  same =&amp;gt;     n,MDintz(nimitz|bd|sqlDato|select ACD_FUNC_LLAMAME_CREAR(CURRENT_TIMESTAMP\,${ID_LISTA_LLAMAME}\,&amp;quot;&amp;quot;\,&amp;quot;clienteTOCola&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,1\,&amp;quot;&amp;quot;\,&amp;quot;${CALLERID(NUM)}&amp;quot;\,1\,3\,1\,&amp;quot;&amp;quot;\,0\,0\,0\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;))&lt;br /&gt;
  same =&amp;gt;     n,GotoIf($[&amp;quot;${MDintzRes}&amp;quot;=&amp;quot;OK&amp;quot;]?colgar)&lt;br /&gt;
  same =&amp;gt;     n,NoOp(ACD_FUNC_LLAMAME_CREAR ${MDintzRes})&lt;br /&gt;
  same =&amp;gt;     n(colgar),Hangup&lt;br /&gt;
&lt;br /&gt;
== Como &amp;quot;dar paso&amp;quot; a través de un enlace exterior si hay una llamada para una extensión creada en el sistema pero no registrada ==&lt;br /&gt;
&lt;br /&gt;
Este procedimiento es de utilidad en procesos de migración, en los que recibimos las llamadas de la RTC, nos las quedamos si la extensión ya está registrada en VIVAit y la mandamos hacia la plataforma a migrar si aún sigue migrada ahí&lt;br /&gt;
&lt;br /&gt;
El procedimiento es:&lt;br /&gt;
* Activar desvío por no contesta en la extensión (portal de administración - VIVAit Call - Dispositivos - Extensiones - campo &amp;quot;Desvio no contesta&amp;quot;, indicando como destino un prefijo (por ejemplo &amp;quot;99&amp;quot;) seguido de la extensión destino&lt;br /&gt;
&lt;br /&gt;
* Creamos una preruta en vivait-call - rutas -prerutas con origen &amp;quot;99&amp;quot;, le quitamos el prefijo en campo &amp;quot;Destino saliente 1&amp;quot; (valor -2) e indicamos en campo &amp;quot;Tipo destino sal. 1&amp;quot; como &amp;quot;Ruta externa&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Debera existir una ruta externa para esa numeración&lt;br /&gt;
&lt;br /&gt;
== Comprobación de versiones de elementos de la plataforma ==&lt;br /&gt;
&lt;br /&gt;
'''Aplicaciones'''&lt;br /&gt;
:* Botón derecho del ratón, Acerca De&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Portales'''&lt;br /&gt;
:* En el Vivait-Call, en la pantalla de inicio de sesión pone el número de versión del portal.&lt;br /&gt;
:* Tanto en el Monitor como en el Tracker no se puede saber.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Demonios'''&lt;br /&gt;
:* Mediante el comando nc localhost &amp;lt;Puerto demonio&amp;gt;. Ejemplo:&lt;br /&gt;
::nc localhost 1120&lt;br /&gt;
::motorSal sis ver='03.02.00' inic='20150427 123457' alarmas=0 ultAlar='00000000000000'&lt;br /&gt;
::motorSal gmp msj=253/256 buf=256/256 tarea=99/102&lt;br /&gt;
::motorSal tmp uptime=12624 (0d 3h 30m 24s)&lt;br /&gt;
::motorSal mtr mys=1 ocup=0% planif=13(0) intento=11(0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::Ejemplos puertos demonios:&lt;br /&gt;
:::*1111: vivait-cti&lt;br /&gt;
:::*1112: myAcdSuperv&lt;br /&gt;
:::*1113: recordNodo&lt;br /&gt;
:::*1114: recordCentral&lt;br /&gt;
:::*1115: intz-nimitz&lt;br /&gt;
:::*1120: motorSal&lt;br /&gt;
:::*1123: phoneprov-tftp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Base de datos'''&lt;br /&gt;
:* No se puede saber la versión a no ser que se comparen esquemáticos con los subidos en el redmine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:administrador]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:VIVAit Suite]]&lt;br /&gt;
[[Category:VIVAit Fax]]&lt;br /&gt;
&lt;br /&gt;
== Añadir Auto-Answer a la cabecera SIP ==&lt;br /&gt;
&lt;br /&gt;
Si queremos que un teléfono tenga autoanswer:&lt;br /&gt;
* En el peer poner: headeraa=Call-Info: answer-after=0, esto tiene que ir en la plantilla de la extensión o como campo en la extensión. Dependiendo del terminal que utilicemos el valor de este campo variará:&lt;br /&gt;
&lt;br /&gt;
    Aastra: Alert-Info: info=alert-autoanswer&lt;br /&gt;
    Grandstream: Call-Info: answer-after=0&lt;br /&gt;
    Linksys: Call-Info:\;Answer-After=0&lt;br /&gt;
    Polycom: Alert-Info: Ring Answer&lt;br /&gt;
    Snom: Call-Info: answer-after=0&lt;br /&gt;
    Snom (nuevo firmware): Call-Info: &amp;lt;sip:IP&amp;gt;\;answer-after=0&lt;br /&gt;
    Yealink: Call-Info: answer-after=0&lt;br /&gt;
&lt;br /&gt;
* Luego en el diaplan añadir lo siguiente: exten =&amp;gt; _[*#%0-9a-zA-Z].,n,set(__AutoAnswer=AA) (Esto tendremos que ver como ponerlo de manera automática). De manera provisional si queremos que sea para llamadas salientes pondremos esto en el ext_n_marcador.conf. Si queremos que sea llamadas entrantes lo pondremos en ext_n_MARCAR.conf&lt;br /&gt;
&lt;br /&gt;
== Configuración de los portales web en HTTPS ==&lt;br /&gt;
&lt;br /&gt;
Desde /usr/lib/jvm/default-java/bin/ ejecutamos:&lt;br /&gt;
&lt;br /&gt;
keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/share/tomcat7/.keystore&lt;br /&gt;
&lt;br /&gt;
Escriba la contraseña del almacén de claves: (t0mc4t)&lt;br /&gt;
 Volver a escribir la contraseña nueva: (t0mc4t)&lt;br /&gt;
 *Personalizar para el cliente&lt;br /&gt;
 ¿Cuáles son su nombre y su apellido?&lt;br /&gt;
 [Unknown]: VIVAit Suite&lt;br /&gt;
 ¿Cuál es el nombre de su unidad de organización?&lt;br /&gt;
 [Unknown]: Desarrollo&lt;br /&gt;
 ¿Cuál es el nombre de su organización?&lt;br /&gt;
 [Unknown]: MDtel&lt;br /&gt;
 ¿Cuál es el nombre de su ciudad o localidad?&lt;br /&gt;
 [Unknown]: Madrid&lt;br /&gt;
 ¿Cuál es el nombre de su estado o provincia?&lt;br /&gt;
 [Unknown]: Madrid&lt;br /&gt;
 ¿Cuál es el código de país de dos letras de la unidad?&lt;br /&gt;
 [Unknown]: es&lt;br /&gt;
 ¿Es correcto CN=VIVAit Suite, OU=Desarrollo, O=MDtel, L=es, ST=Madrid,&lt;br /&gt;
 C=Unknown?&lt;br /&gt;
 [no]: si&lt;br /&gt;
 Escriba la contraseña clave para &amp;lt;tomcat&amp;gt;&lt;br /&gt;
 (INTRO si es la misma contraseña que la del almacén de claves)&lt;br /&gt;
&lt;br /&gt;
nano /var/lib/tomcat7/conf/server.xml&lt;br /&gt;
&lt;br /&gt;
Descomentar la línea:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; protocol=&amp;quot;HTTP/1.1&amp;quot; SSLEnabled=&amp;quot;true&amp;quot; &lt;br /&gt;
&lt;br /&gt;
 maxThreads=&amp;quot;150&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Añadir después de sslProtocol=&amp;quot;TLS&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 keystorePass=&amp;quot;t0mc4t&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Crear un motivo desconexión para el Supervisor en '''''VIVA'''''it Suite==&lt;br /&gt;
&lt;br /&gt;
Para crear motivos de desconexión adicionales a los que ya ofrece la aplicación tendremos que añadir una nueva entrada en la BD. El comando que emplearíamos seria el siguiente:&lt;br /&gt;
&lt;br /&gt;
INSERT INTO `nimitz`.`COM_ENUMERADOS` (`ID`, `C_NOMBRE`, `C_TEXTO`, `N_POSICION`, `C_OBSERV`) VALUES(1000700, 'TSesAgMotDesc', 'Nombre Motivo de desconexión', 60, ' ');&lt;br /&gt;
&lt;br /&gt;
El ID debe ser mayor o igual a 1000700 y menor a 1000800. El N_POSICION debe ser mayor o igual a 60 y menor que 100.&lt;br /&gt;
&lt;br /&gt;
== Envío de variables CTI al ACD ante un GW con asterisk 13==&lt;br /&gt;
Dado que para un GW con asterisk 13 un nodo ACD es considerado un elemento externo, por defecto, no se envían variables CTI (UCID, ...). En una fututa versión del nodo ACD, ya no se considerará un elemento externo por lo que si se enviarán dichas variables. Para lograrlo en la versión 3.0 de la plataforma Vivait hay que modificar el fichero ext_MARCAR_Externo_Particular.conf del GW. Deberemos poner la siguiente linea.&lt;br /&gt;
&lt;br /&gt;
 same =&amp;gt; n,Macro(escribirDatosCti)&lt;br /&gt;
&lt;br /&gt;
== Script para cambio automático de claves en salas de conferencia estáticas ==&lt;br /&gt;
&lt;br /&gt;
Para cambiar la clave de las salas de conferencias crear un script llamado cambioClaveConfe.sh con el siguiente contenido:&lt;br /&gt;
	&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 CLAVE=$(shuf -i 1111-9999 -n 1)&lt;br /&gt;
 &lt;br /&gt;
 echo $CLAVE&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;update CEN_SALAS_CONFERENCIAS set C_PIN='$CLAVE' WHERE C_NOMBRE='$1'&amp;quot; | mysql -u nimitz -pivivanimitz nimitz&lt;br /&gt;
 &lt;br /&gt;
 FROM=sat@mdtel.es&lt;br /&gt;
 FECHA=`date +&amp;quot;%Y%m%d%H%M%S&amp;quot;`&lt;br /&gt;
 CLIENTE=&amp;lt;PONER EL CLIENTE&amp;gt;&lt;br /&gt;
 TO=&amp;lt;DESTINATARIOS&amp;gt;&lt;br /&gt;
 ASUNTO=&amp;quot;Nueva clave en sala $1&amp;quot;&lt;br /&gt;
 CUERPO=&amp;quot;La nueva clave para la sala $1 es: $CLAVE&amp;quot;&lt;br /&gt;
 /usr/sbin/sendmail -oi -t -v -f $FROM &amp;lt;&amp;lt;EOF&lt;br /&gt;
 From: $FROM&lt;br /&gt;
 To: $TO&lt;br /&gt;
 Bcc: $BCC&lt;br /&gt;
 Subject: $ASUNTO&lt;br /&gt;
 &lt;br /&gt;
 $CUERPO&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
El script cambiará la clave de la sala pasada por parámetro por una aleatoria de 4 dígitos y la enviará por correo a los &amp;lt;DESTINATARIOS&amp;gt; (direcciones de correo electrónico separadas por coma).&lt;br /&gt;
&lt;br /&gt;
Hay que crear una tarea en /etc/crontab añadiendo una linea como la siguiente:&lt;br /&gt;
 30 6	* * 7	root	cambioClaveConfe.sh 6173&lt;br /&gt;
&lt;br /&gt;
Esto ejecutará el script todos los domingos a las 6:30 horas cambiando la clave de la sala 6173. Añadir tantas linéas como salas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Monitorización en Zabbix de un trunk caído ==&lt;br /&gt;
Para monitorizar un o varios trunk por separado y saber el estado de cada uno es necesario lo siguiente: &lt;br /&gt;
&lt;br /&gt;
*Añadir el UserParameter adjunto que contiene el siguiente texto:&lt;br /&gt;
&lt;br /&gt;
 UserParameter=asterisk.trunkEstado[*],sudo /usr/sbin/asterisk -rx 'sip show peers' | grep  --text -i '$1' |  grep OK &amp;gt;/dev/null; if [ $? -eq 0 ]; then echo 1; else echo 0; fi&lt;br /&gt;
&lt;br /&gt;
*Añadir en el portal de zabbix un item por cada trunk. En el campo Key se pondrá &amp;quot;asterisk.trunkEstado[nombre_trunk]&amp;quot;, donde nombre_trunk es el nombre del trunk tal y como se ve en Asterisk.&lt;br /&gt;
[[File:zabbix_item_trunkEstado.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Crear un trigger que avise cuando el último valor sea 0. Por ejemplo:&lt;br /&gt;
 {corp-bdtr:asterisk.trunkEstado[PrePro-ACD].last()}=0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:zabbix_trigger_trunkEstado.png]]&lt;br /&gt;
&lt;br /&gt;
== Agendas en terminales Yealink ==&lt;br /&gt;
En la agenda se mostrará como nombre lo que contenga el campo CEN_AGENDAS.C_NOMBRE_MOSTRAR y como teléfono el indicado en CEN_AGENDAS_TELEFONOS.C_TELEFONO&lt;br /&gt;
Para hacer funcionar la agenda:&lt;br /&gt;
&lt;br /&gt;
*En el archivo de aprovisionamiento correspondiente (Yealink-XXXX-comun.cfg) establecer los siguientes parámetros:&lt;br /&gt;
&lt;br /&gt;
    remote_phonebook.data.1.url = http://&amp;lt;direc IP&amp;gt;/vivait-agenda/yealink/contactData1.xml &lt;br /&gt;
    remote_phonebook.data.1.name = NOMBRE DE LA AGENDA EN EL TELEFONO&lt;br /&gt;
&lt;br /&gt;
*En el archivo /etc/apache2/apache2.conf añadir tras el último Directory:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Directory /var/www/html/vivait-agenda/&amp;gt;&lt;br /&gt;
             AddType application/x-httpd-php .xml&lt;br /&gt;
             Options Indexes FollowSymLinks MultiViews&lt;br /&gt;
             AllowOverride None&lt;br /&gt;
             Order allow,deny&lt;br /&gt;
             allow from all&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Ejecutar el comando:&lt;br /&gt;
&lt;br /&gt;
    /etc/init.d/apache2 reload&lt;br /&gt;
&lt;br /&gt;
== Calendarios ==&lt;br /&gt;
&lt;br /&gt;
=== Enrutamiento inteligente ===&lt;br /&gt;
&lt;br /&gt;
Ante una llamada a un destino, si hay cita de ocupado en el calendario se desvia al número indicado en el campo &amp;quot;location&amp;quot; del calendario o a su buzon de voz si hay valor en dicho campo&lt;br /&gt;
&lt;br /&gt;
 same =&amp;gt; n,Set(CalendarBusy=${CALENDAR_BUSY(GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,Set(id=${CALENDAR_QUERY(GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,NoOP(hay ${CALENDAR_QUERY_RESULT(${id},getnum)} eventos)&lt;br /&gt;
 same =&amp;gt; n,Verbose(3,The state of GoogleCalendar is $&lt;br /&gt;
 {DEVICE_STATE(Calendar:GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,Set(CalendarLocation=${CALENDAR_QUERY_RESULT(GoogleCalendar,location)})&lt;br /&gt;
 same =&amp;gt; n,GotoIf($[&amp;quot;${CalendarBusy}&amp;quot;==&amp;quot;1&amp;quot;]?:conCategoria)&lt;br /&gt;
 same =&amp;gt; n,GotoIf($[&amp;quot;${CalendarLocation}&amp;quot;==&amp;quot;&amp;quot;]?buzon)&lt;br /&gt;
 same =&amp;gt; n,Goto(Cen_iniLlam,${CalendarLocation},1)&lt;br /&gt;
 same =&amp;gt; n(buzon),Playback(Particular/buzon)&lt;br /&gt;
 same =&amp;gt; n,Hangup&lt;br /&gt;
 same=&amp;gt; n(conCategoria),Goto(Cen_iniLlam,${EXTEN},1)&lt;br /&gt;
&lt;br /&gt;
=== Conexión de cliente Outlook a calendarios VIVAit mediante Caldav===&lt;br /&gt;
Por defecto, el cliente outlook no soporta Caldav; si queremos disponer de calendarios de VIVAit en Outlook tendríamos dos opciones:&lt;br /&gt;
# Tener los calendarios en el servidor Exchange&lt;br /&gt;
# Instalar un plugin en el cliente outlook que permita conectar vía Caldav los calendarios que estén ubicados en el servidor de calendarios de VIVAit&lt;br /&gt;
&lt;br /&gt;
Este howto se centra en esta segunda posibilidad&lt;br /&gt;
&lt;br /&gt;
Procedimiento: &lt;br /&gt;
&lt;br /&gt;
1.- Instalar Calldavsincronizer (valdrían otros plugin de Caldav para Outlook)&lt;br /&gt;
&lt;br /&gt;
[https://sourceforge.net/projects/outlookcaldavsynchronizer/ https://sourceforge.net/projects/outlookcaldavsynchronizer/]&lt;br /&gt;
&lt;br /&gt;
2.- Entrar en Synchronization Profiles en la nueva pestaña Calldav Syncronizer de outlook       [[File:Syncronizer.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.- Añadir nuevo perfil (tecla +)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Nuevo.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A tener en cuenta:&lt;br /&gt;
&lt;br /&gt;
*Crear un nuevo “Outlook folder”, entendemos que es adecuado (quizás necesario) para que las entradas de calendario de VIVAit queden diferenciadas.&lt;br /&gt;
*Lo mejor es haber creado antes el calendario en el servidor para que al darlo de alta en oulook comprobemos que se conecta.&lt;br /&gt;
*Dando al botón “Test or discover settings” se nos muestran todos los calendarios del servidor y elegimos el que queramos; en “elementos de la carpeta” diremos “elementos de calendario”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Calendario.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
== Uso de reloj hardware en nodos de procesamiento ==&lt;br /&gt;
&lt;br /&gt;
=== En nodo de procesamiento ACD ===&lt;br /&gt;
En un nodo de procesamiento ACD es obligatorio instalar dahdi y una tarjeta de primario para emplear reloj hardware, ya que el reloj software que va en el asterisk 1.4 es defectuoso.&lt;br /&gt;
Para configurarlo basta con instalar la tarjeta en el servidor, instalar dahdi y posteriormente ejecutar el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
 dahdi_cfg&lt;br /&gt;
&lt;br /&gt;
Este comando generaŕa el fichero /etc/dahdi/system.conf&lt;br /&gt;
&lt;br /&gt;
Para comprobar que el comando se ha ejecutado satisfactoriamente lo abriremos y tendrá que tener un formato semejante al siguiente ejemplo:&lt;br /&gt;
&lt;br /&gt;
 # Autogenerated by /usr/sbin/dahdi_genconf on Tue Oct 22 17:42:59 2013&lt;br /&gt;
 # If you edit this file and execute /usr/sbin/dahdi_genconf again,&lt;br /&gt;
 # your manual changes will be LOST.&lt;br /&gt;
 # Dahdi Configuration File&lt;br /&gt;
 #&lt;br /&gt;
 # This file is parsed by the Dahdi Configurator, dahdi_cfg&lt;br /&gt;
 #&lt;br /&gt;
 # Span 1: WCT1/0 &amp;quot;Digium Wildcard TE110P T1/E1 Card 0&amp;quot; HDB3/CCS/CRC4&lt;br /&gt;
 span=1,1,0,ccs,hdb3,crc4&lt;br /&gt;
 # termtype: te&lt;br /&gt;
 bchan=1-15,17-31&lt;br /&gt;
 dchan=16&lt;br /&gt;
 echocanceller=oslec,1-15,17-31&lt;br /&gt;
 # Global data&lt;br /&gt;
 loadzone        = es&lt;br /&gt;
 defaultzone     = es&lt;br /&gt;
&lt;br /&gt;
=== En nodo de procesamiento de corporativa ===&lt;br /&gt;
En un nodo de procesamiento de corporativa no obligatorio instalar dahdi y una tarjeta de primario para emplear reloj hardware, ya que el no se han detectado errores en el reloj por software. Sin embargo si instalamos dahdi y una tarjeta de primario para emplear reloj hardware, el sistema funcionará mejor.&lt;br /&gt;
Para configurarlo basta con instalar la tarjeta en el servidor, instalar dahdi y posteriormente ejecutar el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
 dahdi_cfg&lt;br /&gt;
&lt;br /&gt;
Este comando generaŕa el fichero /etc/dahdi/system.conf&lt;br /&gt;
&lt;br /&gt;
Para comprobar que el comando se ha ejecutado satisfactoriamente lo abriremos y tendrá que tener un formato semejante al siguiente ejemplo:&lt;br /&gt;
&lt;br /&gt;
 # Autogenerated by /usr/sbin/dahdi_genconf on Tue Oct 22 17:42:59 2013&lt;br /&gt;
 # If you edit this file and execute /usr/sbin/dahdi_genconf again,&lt;br /&gt;
 # your manual changes will be LOST.&lt;br /&gt;
 # Dahdi Configuration File&lt;br /&gt;
 #&lt;br /&gt;
 # This file is parsed by the Dahdi Configurator, dahdi_cfg&lt;br /&gt;
 #&lt;br /&gt;
 # Span 1: WCT1/0 &amp;quot;Digium Wildcard TE110P T1/E1 Card 0&amp;quot; HDB3/CCS/CRC4&lt;br /&gt;
 span=1,1,0,ccs,hdb3,crc4&lt;br /&gt;
 # termtype: te&lt;br /&gt;
 bchan=1-15,17-31&lt;br /&gt;
 dchan=16&lt;br /&gt;
 echocanceller=oslec,1-15,17-31&lt;br /&gt;
 # Global data&lt;br /&gt;
 loadzone        = es&lt;br /&gt;
 defaultzone     = es&lt;br /&gt;
&lt;br /&gt;
== Aprovisionamiento terminales Cisco ==&lt;br /&gt;
=== Configurar protocolo SIP TCP o UDP en terminal Cisco ===&lt;br /&gt;
&lt;br /&gt;
Configuración de terminal Cisco para para funcionar bajo TCP o UDP:&lt;br /&gt;
Modificar parámetro&lt;br /&gt;
 &amp;lt;transportLayerProtocol&amp;gt;X&amp;lt;/transportLayerProtocol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde X es:&lt;br /&gt;
    1: TCP&lt;br /&gt;
    2: UDP&lt;br /&gt;
    4: Valor por defecto del firmware (al menos en la última versión equivale a TCP)&lt;br /&gt;
&lt;br /&gt;
=== Habilitar/Deshabilitar llamada en espera en terminales Cisco ===&lt;br /&gt;
&lt;br /&gt;
En el fichero de aprovisionamiento del terminal añadiremos la siguiente linea&lt;br /&gt;
 &amp;lt;callWaiting&amp;gt;X&amp;lt;/callWaiting&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde X es:&lt;br /&gt;
   0=off but can be changed through the settings menu.&lt;br /&gt;
   1=on but can be changed through the settings menu.&lt;br /&gt;
   2=off and locked so it can't be changed through the settings menu.&lt;br /&gt;
   3=on and locked so it can't be changed through the settings menu.&lt;br /&gt;
&lt;br /&gt;
== Como configurar servicio DHCP en Ubuntu Linux ==&lt;br /&gt;
=== ¿Que es un servicio DHCP? ===&lt;br /&gt;
Un servidor Dynamic Host Configuration Protocol (DHCP) asigna dinámicamente las direcciones IP y otras configuraciones de red a otros terminales que están conectados a la red.&lt;br /&gt;
&lt;br /&gt;
=== Instalar un servicio DHCP ===&lt;br /&gt;
Para instalar el servidor de asignacion automatica de direccion IP ejecutamos el comando:&lt;br /&gt;
 sudo apt-get install isc-dhcp-server&lt;br /&gt;
&lt;br /&gt;
=== Configurando el servicio DHCP ===&lt;br /&gt;
Editamos el archivo /etc/dhcp/dhcpd.conf creando primero un backup del mismo:&lt;br /&gt;
 mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.original&lt;br /&gt;
 nano /etc/dhcp/dhcpd.conf&lt;br /&gt;
&lt;br /&gt;
El archivo debe quedar de una forma muy similar a esta:&lt;br /&gt;
 authoritative&lt;br /&gt;
 subnet  10.254.239.0 netmask 255.255.255.254&lt;br /&gt;
 {&lt;br /&gt;
 range dynamic-bootp  10.254.239.40 10.254.239.60;&lt;br /&gt;
 option domain-name-servers ns1.example.org, ns2.example.org;&lt;br /&gt;
 option domain-name &amp;quot;example.org&amp;quot;;&lt;br /&gt;
 option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org ;&lt;br /&gt;
 option broadcast-address 10.254.239.255;&lt;br /&gt;
 default-lease-time 3600;&lt;br /&gt;
 max-lease-time 7200;&lt;br /&gt;
 option option-150 10.254.239.25&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Donde los campos:&lt;br /&gt;
*subnet: Direccion de red&lt;br /&gt;
*netmask: Máscara de red&lt;br /&gt;
*range dynamic-bootp: Rango de IPs que va a proporcionar el DHCP&lt;br /&gt;
*option domain-name-servers: Direcciones IPs de los DNS&lt;br /&gt;
*option domain-name: Nombre de dominio&lt;br /&gt;
*option routers:IPs de las puertas de enlace&lt;br /&gt;
*option broadcast-address: Dirección de broadcast&lt;br /&gt;
*default-lease-time: Tiempo de concesión por defecto&lt;br /&gt;
*max-lease-time: Valor máximo del tiempo de concesión&lt;br /&gt;
*option option-150: IPs de los servidores TFTPs que tiene la red&lt;br /&gt;
&lt;br /&gt;
===  Reiniciamos el servicio ===&lt;br /&gt;
 service isc-dhcp-server restart&lt;br /&gt;
&lt;br /&gt;
=== Direcciones IP estáticas basadas en la MAC ===&lt;br /&gt;
Pueden conocerse las MAC de las máquinas conectadas a la red ejecutando el comando arp desde la terminal.&lt;br /&gt;
&lt;br /&gt;
 host ejemplo {&lt;br /&gt;
        hardware ethernet 00:0B:82:19:A8:04;&lt;br /&gt;
        option option-150 10.254.239.0;&lt;br /&gt;
 #      fixed-address 10.254.239.52;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Protocolo Skinny en VIVAit Call mediante uso de Chan-SCCP ==&lt;br /&gt;
=== Instalación de chan_sccp ===&lt;br /&gt;
*Copiar el fichero chan-sccp-4.2.1.1.tar.gz en el directorio donde estén los fuentes de Asterisk (normalmente /usr/src/MDtel)&lt;br /&gt;
*Descomprimir&lt;br /&gt;
*Entrar al directorio chan-sccp-4.2.1.1&lt;br /&gt;
*Ejecutar: ./configure --with-asterisk=../DIRECTORIO_ASTERISK --enable-conference. Donde DIRECTORIO_ASTERISK es el nombre del directorio donde están los fuentes de asterisk.&lt;br /&gt;
*Tras el ejecutar el configure (si todo va bien al final se verá un resumen con el S.O, arquitectura, etc), ejecutar make y make install&lt;br /&gt;
*El nuevo módulo chan_sccp.so se generará dentro del DIRECTORIO_ASTERISK en lib/asterisk/modules/ y se deberá copiar en /usr/lib/asterisk/modules/&lt;br /&gt;
*Copiar el fichero sccp.conf a /etc/asterisk&lt;br /&gt;
*Entra a Asterisk y ejecutar: module load chan_sccp.so&lt;br /&gt;
*Si se ha cargado correctamente, desde dentro de Asterisk, si se teclea sccp show version deberá devolver: &amp;quot;Skinny Client Control Protocol (SCCP). Release: 4.3.0 4.3.0 - unknown (built by 'root' on '2016-06-01 10:42:32 UTC')&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Crear extensiones ===&lt;br /&gt;
*En el portal crear una nueva clase de dispositivo (Vivait-Call/Dispositivos/Clases de dispositivos), donde la clase sea extensión la subclase H323 (todavía no existe la subclase SCCP) y el formato SCCP/${DEST}&lt;br /&gt;
*Crear la nueva extensión, pero el dispositivo debe ser el creado en el campo anterior.&lt;br /&gt;
*Las extensiones creadas habrá que añadirlas al fichero sccp.conf así como los teléfonos que las usarán. En el fichero sccp.conf incluido hay ejemplos.&lt;br /&gt;
&lt;br /&gt;
=== Aprovisionamiento ===&lt;br /&gt;
Los terminales se aprovisionan de la misma manera que los SIP, exceptuando que las plantillas XML no tiene referencias a SIP. Se incluye un xml genérico con todas las opciones.&lt;br /&gt;
Dentro del directorio chan-sccp-4.2.1.1 hay un directorio conf con todos los archivos de configuración necesarios. Las versiones annotated contienen todas las opciones posibles comentadas.&lt;br /&gt;
&lt;br /&gt;
== Instalación y configuración Postfix en RedHat7 ==&lt;br /&gt;
&lt;br /&gt;
'''Postfix''' es un ''servidor de correo'' de software libre/código abierto, un programa informático para el enrutamiento y envío de correo electrónico.&lt;br /&gt;
&lt;br /&gt;
=== Instalación ===&lt;br /&gt;
 yum install postfix&lt;br /&gt;
&lt;br /&gt;
=== Configuración ===&lt;br /&gt;
Sobre la configuración de postfix por defecto (recién instalado):&lt;br /&gt;
Editar el fichero /etc/postfix/main.cf&lt;br /&gt;
 inet_protocols = ipv4&lt;br /&gt;
 relayhost = smtp.renfe.es&lt;br /&gt;
Revisar la configuración:&lt;br /&gt;
 postfix check&lt;br /&gt;
Configurar postfix como servicio (sólo en redhat y similares)&lt;br /&gt;
 chkconfig postfix on&lt;br /&gt;
Iniciar postfix:&lt;br /&gt;
 service postfix start&lt;br /&gt;
Instalar mailx para disponer de los comandos mail y sendmail:&lt;br /&gt;
 yum install mailx&lt;br /&gt;
Probar configuración:&lt;br /&gt;
 echo &amp;quot;Prueba de correo&amp;quot; | mail -vs &amp;quot;Prueba&amp;quot; correo@destino.soy&lt;br /&gt;
&lt;br /&gt;
=== Como crear un TRIGGER en Zabbix ===&lt;br /&gt;
&lt;br /&gt;
'''1.''' Hay '''dos posibilidades''' dependiendo si el trigger es para un solo host o es para varios, los cuales tienen en común un template:&lt;br /&gt;
&lt;br /&gt;
:# Si es para ''un host'': Ir a '''Configuración/Hosts'''&lt;br /&gt;
:# Si es para ''un template'': Ir a '''Configuración/Templates'''&lt;br /&gt;
&lt;br /&gt;
'''2.''' En la fila correspondiente al host/template al que queramos añadirle el trigger, pulsar sobre la '''columna triggers.'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''3.''' En la ventana de triggers, pulsar sobre el botón '''Create trigger''', situado en la esquina superior derecha.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''4.''' Aparecerá la ventana de creación de triggers, que tiene los siguientes campos:&lt;br /&gt;
:1. '''Name:''' Nombre del trigger, que deberá ser lo ''suficientemente descriptivo''. Aparecerá cuando se&lt;br /&gt;
active, en la ventana principal de Zabbix así como en los correos de aviso.&lt;br /&gt;
:2. '''Expression:''' Define la fórmula cuyo resultado activará el trigger. Hay que pulsar el botón '''Add'''. Se mostrará una &lt;br /&gt;
nueva ventana donde habrá que elegir el item (medida) sobre el que se basará el trigger (evidentemente la medida deberá &lt;br /&gt;
existir previamente) y la función necesaria para el cálculo. Para una descripción de las disponibles dirigirse a &lt;br /&gt;
https://www.zabbix.com/documentation/2.2/manual/appendix/triggers/functions.&amp;lt;br/&amp;gt;&lt;br /&gt;
Tras rellenar los campos anteriores y dar a la función los valores que necesite pulsar el botón '''Insert.'''&lt;br /&gt;
:3. '''Expression constructor:''' Permite crear expresiones complejas, uniendo varias.&lt;br /&gt;
:4. '''Description:''' Una explicación del trigger&lt;br /&gt;
:5. '''Severity:''' Criticidad el trigger&lt;br /&gt;
:6. Para una descripción del resto de campos visitar la página: https://www.zabbix.com/documentation/2.2/manual/config/triggers/trigger&lt;br /&gt;
'''5.''' Tras rellenar los campos, pulsar el botón '''Save'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''6.''' Si el trigger se ha añadido en un template, aparecerá en todos los hosts que tienen el template configurado.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''7.''' '''El trigger por si solo no envía ningún aviso''', solo se activa si se cumple la expresión definida.&lt;br /&gt;
Para enviar un aviso (normalmente un correo electrónico) cuando se active el trigger, será necesario definir una acción (Configuración/Actions).&lt;br /&gt;
&lt;br /&gt;
 '''NOTA.-''' Para consultar cualquier cuestión relativa a Zabbix, se encuentra a su disposición el manual: &amp;lt;br/&amp;gt;&lt;br /&gt;
 https://www.zabbix.com/documentation/2.2/manual&lt;br /&gt;
&lt;br /&gt;
== Como mostrar callername queues FOP2 ==&lt;br /&gt;
&lt;br /&gt;
Es necesario añadir el siguiente código al contexto de entrada:&lt;br /&gt;
&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Connect connid localhost usuario clave bd)&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Query resultid ${connid} SELECT\ firstname\,lastname\ from\ fop2\ where\ phone1=${CALLERID(num)}\ OR\ phone2=${CALLERID(num)})&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Fetch fetchid ${resultid} nombre apellidos)&lt;br /&gt;
 exten =&amp;gt; _X.,n,GotoIf($[${fetchid} = 1]?:noExiste)&lt;br /&gt;
 exten =&amp;gt; _X.,n,Set(CALLERID(name)=${nombre}${apellidos})&lt;br /&gt;
 exten =&amp;gt; _X.,n(noExiste),Continuar&lt;br /&gt;
&lt;br /&gt;
En la primera línea cambiar según lo necesario:&lt;br /&gt;
&lt;br /&gt;
*localhost: Dirección IP del servidor de MySQL donde está la BBDD de FOP2&lt;br /&gt;
*usuario: Usuario con permisos de acceso a la bbdd de FOP2&lt;br /&gt;
*clave: Clave del usuario&lt;br /&gt;
*bd: Nombre de la BBDD&lt;br /&gt;
&lt;br /&gt;
== Como ver los directorios de un NAS a montar con NFS ==&lt;br /&gt;
&lt;br /&gt;
Con el siguiente comando vemos los diferentes volúmenes de un NAS:&lt;br /&gt;
&lt;br /&gt;
 showmount -e IP_NAS&lt;br /&gt;
&lt;br /&gt;
Ejemplo de salida:&lt;br /&gt;
&lt;br /&gt;
 Export list for 192.168.10.10:&lt;br /&gt;
 /Backup/backup       *&lt;br /&gt;
 /DISCOS_1/VOL1_AUDIO *&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Instalación de ActivaSTP con VIVAit Call 3 y marcación desde Outlook ==&lt;br /&gt;
&lt;br /&gt;
Instalamos ActivaSTP desde:&lt;br /&gt;
 &lt;br /&gt;
 (http://activa.sourceforge.net/)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- *SIPTAPI, según la pagina Web, su ultima versión publicada es del 2014 con versión 0.2.17 (http://activa.sourceforge.net/)&lt;br /&gt;
&lt;br /&gt;
Hemos probado con http://www.xtelsio.com/en/products/ast_tsp/tapi_for_asterisk.htm.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La configuración necesaria se muestra en la siguiente imagen:&lt;br /&gt;
&lt;br /&gt;
[[File:Ventana ActivaTSP.jpg]]&lt;br /&gt;
&lt;br /&gt;
 El usuario del manager debe tener permisos originate para poder realizar llamadas.&lt;br /&gt;
&lt;br /&gt;
Se han realizado pruebas con Outlook 2013.&lt;br /&gt;
&lt;br /&gt;
Se ha comprobado la correcta realización de pruebas utilizando ActivaSTP, realizadon llamadas desde la pestaña &amp;quot;personas&amp;quot; con la vista en modo tarjeta de Pesentación, tarjeta, teléfono o lista.&lt;br /&gt;
&lt;br /&gt;
Outlook 2013 no da la opción de llamar si la vista está en modo personas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Como volver a procesar grabaciones con error ==&lt;br /&gt;
&lt;br /&gt;
Las grabaciones con error son aquellas que tienen el valor E_GRABACION=120 en la tabla DAT_GRABACIONES.&lt;br /&gt;
&lt;br /&gt;
Las grabaciones con error se produce normalmente a perdida de conexión entre el nodo servidor de grabaciones y el resto.&lt;br /&gt;
&lt;br /&gt;
Para reprocesar la grabación hay que modificar el campo E_GRABACION de la tabla DAT_GRABACIONES y ponerlo con valor 20 para que así el recordCentral la vuelva a procesar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== FOP2. Problemas en transferencias asistidas ==&lt;br /&gt;
&lt;br /&gt;
 Para habilitar la transferencia atendida del asterisk (funcion atxfer), hay que poner la opción tT en el queue() si la llamada origen la realiza a una cola o &lt;br /&gt;
 al dial() de las extensiones.&lt;br /&gt;
 Con eso vemos como al intentar hacer la llamada de consulta ya se va a nuestro dialplan. Sin embargo la llamada no funciona ya que el enrutador nos da error de&lt;br /&gt;
 enrutamiento porque no tenemos ID_DISPOSITIVO origen ya que el fop no es un elemento creado desde el portal.&lt;br /&gt;
 Por lo que se propone como solución crear un contexto de inicio del fop y asignarle un ID_DISPOSITIVO para que así se enrute la llamada. El contexto tienen que&lt;br /&gt;
 ser similar a ext_InicioLlamada_Chrome.conf&lt;br /&gt;
&lt;br /&gt;
Para que funcione las transferencias supervisadas desde el fop2 hay que realizar lo siguiente:&lt;br /&gt;
&lt;br /&gt;
*El usuario del manager debe tener permisos Atxfer para poder realizar transferencias.&lt;br /&gt;
*Habilitar la transferencia atxfer en el fuatures.conf del asterisk. atxfer =&amp;gt; *2&lt;br /&gt;
*Crear el fichero ext_InicioLlamada_FOP.conf con el siguiente contenido:&lt;br /&gt;
&lt;br /&gt;
 [Cen_Inicio_FOP]&lt;br /&gt;
 exten =&amp;gt; [*#%0-9].,1,NoOp(MDINICHR**EXTEN=${EXTEN}**CID=${CHROME_ANI}*)&lt;br /&gt;
 same =&amp;gt; n,dumpchan()&lt;br /&gt;
 ;same =&amp;gt; n,Set(CALLERID=${CHROME_ANI})&lt;br /&gt;
 same =&amp;gt; n,Gosub(Cen_Sub_getIdExtension,s,1(${R_CID_NUM_00}))&lt;br /&gt;
 same =&amp;gt; n,ExecIf($[&amp;quot;${GOSUB_RETVAL}&amp;quot;!=&amp;quot;OK&amp;quot; | &amp;quot;${sqlDato}&amp;quot;=&amp;quot;&amp;quot;]?HangUp)&lt;br /&gt;
 same =&amp;gt; n,Set(ID_DISPOSITIVO=${sqlDato})&lt;br /&gt;
 ; . Modificar MARCAR en funcion de reglas de marcacion saliente (prefijo 0, ...)&lt;br /&gt;
 ; Esto se modificara en el contexto Cen_Inicio_Chrome_Particular&lt;br /&gt;
 same =&amp;gt; n,Set(MARCAR=${EXTEN})&lt;br /&gt;
 ;---------------------------------&lt;br /&gt;
 ;--- Llamada a contexto particular&lt;br /&gt;
 ;---------------------------------&lt;br /&gt;
 ; Esta llamada es para hacer cosas especcificas del cliente (cambiar callerid...)&lt;br /&gt;
 ; La subrutina Cen_Inicio_Chrome_Particular esta en el archivo ext_InicioLlamada_Chrome_Particular.conf&lt;br /&gt;
 ; Si no existe el archivo copiar el archivo ext_InicioLlamada_Chrome_Particular.conf.ejemplo como ext_Inicio_Chrome_Particular.conf&lt;br /&gt;
 ; y realizar las modificaciones necesarias&lt;br /&gt;
 ; El fichero ext_InicioLlamada_Chrome_Particular.conf se carga automaticamente al ser creado con el include de ext_InicioLlamada.conf&lt;br /&gt;
 ; #include &amp;quot;ext_InicioLlamada*.conf&amp;quot;&lt;br /&gt;
 ;&lt;br /&gt;
 same =&amp;gt; n,GosubIf($[${DIALPLAN_EXISTS(Cen_Inicio_FOP_Particular,${EXTEN},1)}&amp;gt;0]?Cen_Inicio_FOP_Particular,${EXTEN},1)&lt;br /&gt;
 same =&amp;gt; n,Goto(Cen_Inicio_SIP,${MARCAR},1)&lt;br /&gt;
&lt;br /&gt;
*En el fichero /usr/local/fop2/buttons.cfg poner como contexto de las extensiones el creado anteriormente (Cen_Inicio_FOP)&lt;br /&gt;
*Modificar el fichero /usr/local/fop2/fop2.cfg:&lt;br /&gt;
&lt;br /&gt;
 blind_transfer = 0&lt;br /&gt;
 supervised_transfer = 1&lt;br /&gt;
&lt;br /&gt;
Para realizar la transferencia con consulta, hay que pulsar el supervised transfer del FOP2 y una vez se haya establecido la llamada, seleccionar la extensión que &amp;quot;sobra&amp;quot; en la conversación y pulsar la tecla de hangup y colgar la llamada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Problemas de conmutación en cluster ==&lt;br /&gt;
El problema detectado fue que en la conmutacion de maquinas en el cluster cuando el control lo tiene la maquina 2 no funciona el servicio phoneprov-tftp.&lt;br /&gt;
&lt;br /&gt;
Hay que hacer las siguientes comprobaciones:&lt;br /&gt;
&lt;br /&gt;
 Que el directorio /var/lib/phoneprov-tftp esté en la partición /HDcluster&lt;br /&gt;
 Que fichero /etc/MDtel/phoneprov-tftp esté puesta como IP de la máquina la IP flotante del cluster (campo $dbHost)&lt;br /&gt;
 Que el servicio phoneprov-tftp del directorio /usr/local/sbin/phoneprov-tftp.pl tenga permisos de ejecución 755&lt;br /&gt;
 Que exista el fichero /etc/init/phoneprov-tftp.conf&lt;br /&gt;
&lt;br /&gt;
Para más información ver los log del phoneprov en /var/log/phoneprov-tftp.log&lt;br /&gt;
&lt;br /&gt;
El problema era que no se encontraba instalado el paquete phoneprov-tftp, hay que instalarlo manualmente. Instalar el paquete libnet-tftpd-perl.--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Howto%27s&amp;diff=5955</id>
		<title>Howto's</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Howto%27s&amp;diff=5955"/>
		<updated>2017-06-14T06:50:21Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* Como volver a procesar grabaciones con error */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!! VIVAit Call&lt;br /&gt;
VIVAit Suite&lt;br /&gt;
&lt;br /&gt;
VIVAit Fax&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Como parar asterisk ==&lt;br /&gt;
En situaciones límite en el que es necesario parar el asterisk y volver a arrancarlo hay que realizar los siguientes pasos:&lt;br /&gt;
&lt;br /&gt;
 Entrar en la consola de asterisk e introducir el comando core stop now&lt;br /&gt;
&lt;br /&gt;
 Si esto no funciona, tendremos que matar el proceso a mano. Esto es, primero el safe asterisk y luego el asterisk mediante el comando &lt;br /&gt;
 kill -9 nºPID&lt;br /&gt;
 &lt;br /&gt;
 Tras estos pasos, volveremos a arrancar el servicio asterisk mediante /etc/init.d/asterisk start&lt;br /&gt;
&lt;br /&gt;
== Como configurar la megafonía ==&lt;br /&gt;
&lt;br /&gt;
El servicio de megafonía se basa en el protocolo multicast.&lt;br /&gt;
&lt;br /&gt;
Para configurar la megafonía tenemos que activar en los teléfonos que para que estén &amp;quot;escuchando&amp;quot; en una dirección multicast y tener un emisor en esa dirección multicast.&lt;br /&gt;
&lt;br /&gt;
Los teléfonos suelen tener en su configuración un apartado para configurar el multicast. Por ejemplo en los yealink está en la pestaña directory sección multicast IP.&lt;br /&gt;
&lt;br /&gt;
En los teléfonos se puede configurar manualmente o incluirlo en las plantillas de aprovisionamiento.&lt;br /&gt;
&lt;br /&gt;
El asterisk tiene un canal para hacer multicast. Este canal es MulticastRTP.&lt;br /&gt;
&lt;br /&gt;
Para esto podemos crear un VDN que contenga la siguiente línea. (en el ejemplo la dirección multicast es 239.0.126.1 y el puerto es el 10001).&lt;br /&gt;
&lt;br /&gt;
 [Cen_VDN_90000]&lt;br /&gt;
 exten =&amp;gt; _X.,1,NoOp(MDVDN_90000*****EXTEN=${EXTEN}**CID=${CALLERID(NUM)}**UCID=${UCID}*)&lt;br /&gt;
  same =&amp;gt;     n,Answer&lt;br /&gt;
  same =&amp;gt;     n,Dial(MulticastRTP/basic/239.0.126.1:10001)&lt;br /&gt;
 include =&amp;gt; Cen_finLlamada&lt;br /&gt;
&lt;br /&gt;
== Como configurar el candado ==&lt;br /&gt;
El candado permite prohibir temporalmente la posibilidad de realizar llamadas hacia fuera. Sí se pueden seguir haciendo llamadas a extensiones fijas de la plataforma, es decir, llamadas sin coste.&lt;br /&gt;
&lt;br /&gt;
Para configurar dicha funcionalidad basta con crear extensiones con la categoría mas restrictiva posible y habilitar la movilidad, con lo que la extensión solo tendrá &amp;quot;permisos&amp;quot; para realizar llamadas internas.&lt;br /&gt;
&lt;br /&gt;
Para permitir llamadas externas solo hay que &amp;quot;mover&amp;quot; a un usuario con categoría suficiente a la extensión deseada.&lt;br /&gt;
== Como crear un grupo de captura y que se vea en cada teléfono el número que llama ==&lt;br /&gt;
&lt;br /&gt;
'''ATENCIÓN: SE CREAN CONFIGURACIONES NO REFLEJADAS EN PORTAL DE ADMINISTRACIÓN'''&lt;br /&gt;
&lt;br /&gt;
Para la simulación de grupos de captura y conseguir que todos los terminales vean el ANI del llamante:&lt;br /&gt;
&lt;br /&gt;
- Hacen falta teléfonos con dos líneas&lt;br /&gt;
&lt;br /&gt;
- Cada teléfono del grupo tiene en la línea 1 su extensión habitual (por ejemplo 40000)&lt;br /&gt;
&lt;br /&gt;
- Además, en el fichero &amp;quot;sip_Estatico.conf&amp;quot;, creamos una segunda extensión para cada teléfono, que le ocupará la segunda línea (por ejemplo 42000)&lt;br /&gt;
&lt;br /&gt;
- En esta segunda linea ponemos que cuando se llame tenga otro tono de llamada (un beep o nada...) que se asemeje en funcionamiento al de un mensaje de llamada en otra extension de mi grupo de captura&lt;br /&gt;
&lt;br /&gt;
- Se ha creado una variable global por cada teléfono en el fichero de variables &amp;quot;ext_MDtel_Particular.conf&amp;quot; de nombre EXTxxxxx (por ejemplo EXT40000); esa variable contiene las otras extensiones virtuales del grupo&lt;br /&gt;
por ejemplo EXT40000=&amp;gt;SIP/42001&amp;amp;SIP/42005&lt;br /&gt;
&lt;br /&gt;
- Hemos creado en el dialplan programación para que cuando exista esa variable global se añada a la marcación el contenido&lt;br /&gt;
&lt;br /&gt;
== Como crear supletorios ==&lt;br /&gt;
&lt;br /&gt;
'''ATENCIÓN: SE CREAN CONFIGURACIONES NO REFLEJADAS EN PORTAL DE ADMINISTRACIÓN'''&lt;br /&gt;
&lt;br /&gt;
Igual que el caso anterior pero en la variable ponemos números reales. Debido a un bug en el enrutador, que no devuelve la variable R_PARA, en el fichero ext_MARCAR_Extension.conf hay que sustituir la siguiente linea:&lt;br /&gt;
 &lt;br /&gt;
 ;same =&amp;gt;                   n,ExecIf($[&amp;quot;${EXT${R_PARA}}&amp;quot;=&amp;quot;&amp;quot;]?NoOp:Set(ENR_CADMARCAR=${ENR_CADMARCAR}&amp;amp;${EXT${R_PARA}}))&lt;br /&gt;
Por esta otra:&lt;br /&gt;
  same =&amp;gt;                   n,ExecIf($[&amp;quot;${EXT${R_DEST_${ENR_RUTA_CAD}}}&amp;quot;=&amp;quot;&amp;quot;]?NoOp:Set(ENR_CADMARCAR=${ENR_CADMARCAR}&amp;amp;${EXT${R_DEST_${ENR_RUTA_CAD}}}))&lt;br /&gt;
ATENCIÓN !!! en las llamadas salientes cada uno presenta su número&lt;br /&gt;
&lt;br /&gt;
Para emplear números externos en los supletorios hay que poner, al crear la variable que hemos explicado en el apartado anterior en el ext_MDtel_Particular.conf: &lt;br /&gt;
&lt;br /&gt;
 EXT335=&amp;gt;SIP/0999999999@Trunk_Movil ;En este caso suena en la ext 335 y en el móvil 999999999&lt;br /&gt;
&lt;br /&gt;
== Generación de llamada automática ==&lt;br /&gt;
&lt;br /&gt;
Para activar la funcionalidad es necesario lo siguiente: &lt;br /&gt;
&lt;br /&gt;
* Definir una variable ID_LISTA_LLAMAME con el ID de la lista que se va a usar para generar la llamada. Cuando se cree la lista hay que asegurarse que el campo &amp;quot;Nº segundos límite&amp;quot; tiene un valor lo suficientemente amplio para evitar que la llamada caduque antes de ejecutarse.&lt;br /&gt;
&lt;br /&gt;
* Establecer un timeout para la cola (en el Gosub Cen_Sub_GrupoACD se indica justo después de ${COLA})&lt;br /&gt;
&lt;br /&gt;
* Llamar a la función de MySQL ACD_FUNC_LLAMAME_CREAR a través de MDintz&lt;br /&gt;
&lt;br /&gt;
* En la función se usan los siguientes elementos variables:&lt;br /&gt;
&lt;br /&gt;
        ${ID_LISTA_LLAMAME}: Definida antes clienteTOCola: &lt;br /&gt;
        Nombre del cliente. Al no tener ningún nombre, se usa un denominador genérico&lt;br /&gt;
        ${CALLERID}: Número llamante, donde se dirigirá la llamada.&lt;br /&gt;
&lt;br /&gt;
Ejemplo:&lt;br /&gt;
&lt;br /&gt;
 [Cen_VDN_99001]&lt;br /&gt;
 ;----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 ;----------------------- VDN 99001 ------------------------------------------------------------&lt;br /&gt;
 ;----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 exten =&amp;gt; _X.,1,NoOp(MDENTGW_99001*****EXTEN=${EXTEN}**CID=${CALLERID(NUM)}**UCID=${UCID}*)&lt;br /&gt;
  same =&amp;gt;     n,Set(__COLA=89001)&lt;br /&gt;
  same =&amp;gt;     n,Set(ctiDiriTrato=0)&lt;br /&gt;
  same =&amp;gt;     n,Set(ctiDiriInterface=)&lt;br /&gt;
  same =&amp;gt;     n,Set(ID_LISTA_LLAMAME=2)&lt;br /&gt;
  same =&amp;gt;     n(cola),Gosub(Cen_Sub_GrupoACD,${EXTEN},1(${COLA},10,,Si,))&lt;br /&gt;
  same =&amp;gt;     n,GotoIf($[&amp;quot;${QUEUESTATUS}&amp;quot;!=&amp;quot;TIMEOUT&amp;quot;]?colgar)&lt;br /&gt;
  same =&amp;gt;     n,MDintz(nimitz|bd|sqlDato|select ACD_FUNC_LLAMAME_CREAR(CURRENT_TIMESTAMP\,${ID_LISTA_LLAMAME}\,&amp;quot;&amp;quot;\,&amp;quot;clienteTOCola&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,1\,&amp;quot;&amp;quot;\,&amp;quot;${CALLERID(NUM)}&amp;quot;\,1\,3\,1\,&amp;quot;&amp;quot;\,0\,0\,0\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;))&lt;br /&gt;
  same =&amp;gt;     n,GotoIf($[&amp;quot;${MDintzRes}&amp;quot;=&amp;quot;OK&amp;quot;]?colgar)&lt;br /&gt;
  same =&amp;gt;     n,NoOp(ACD_FUNC_LLAMAME_CREAR ${MDintzRes})&lt;br /&gt;
  same =&amp;gt;     n(colgar),Hangup&lt;br /&gt;
&lt;br /&gt;
== Como &amp;quot;dar paso&amp;quot; a través de un enlace exterior si hay una llamada para una extensión creada en el sistema pero no registrada ==&lt;br /&gt;
&lt;br /&gt;
Este procedimiento es de utilidad en procesos de migración, en los que recibimos las llamadas de la RTC, nos las quedamos si la extensión ya está registrada en VIVAit y la mandamos hacia la plataforma a migrar si aún sigue migrada ahí&lt;br /&gt;
&lt;br /&gt;
El procedimiento es:&lt;br /&gt;
* Activar desvío por no contesta en la extensión (portal de administración - VIVAit Call - Dispositivos - Extensiones - campo &amp;quot;Desvio no contesta&amp;quot;, indicando como destino un prefijo (por ejemplo &amp;quot;99&amp;quot;) seguido de la extensión destino&lt;br /&gt;
&lt;br /&gt;
* Creamos una preruta en vivait-call - rutas -prerutas con origen &amp;quot;99&amp;quot;, le quitamos el prefijo en campo &amp;quot;Destino saliente 1&amp;quot; (valor -2) e indicamos en campo &amp;quot;Tipo destino sal. 1&amp;quot; como &amp;quot;Ruta externa&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Debera existir una ruta externa para esa numeración&lt;br /&gt;
&lt;br /&gt;
== Comprobación de versiones de elementos de la plataforma ==&lt;br /&gt;
&lt;br /&gt;
'''Aplicaciones'''&lt;br /&gt;
:* Botón derecho del ratón, Acerca De&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Portales'''&lt;br /&gt;
:* En el Vivait-Call, en la pantalla de inicio de sesión pone el número de versión del portal.&lt;br /&gt;
:* Tanto en el Monitor como en el Tracker no se puede saber.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Demonios'''&lt;br /&gt;
:* Mediante el comando nc localhost &amp;lt;Puerto demonio&amp;gt;. Ejemplo:&lt;br /&gt;
::nc localhost 1120&lt;br /&gt;
::motorSal sis ver='03.02.00' inic='20150427 123457' alarmas=0 ultAlar='00000000000000'&lt;br /&gt;
::motorSal gmp msj=253/256 buf=256/256 tarea=99/102&lt;br /&gt;
::motorSal tmp uptime=12624 (0d 3h 30m 24s)&lt;br /&gt;
::motorSal mtr mys=1 ocup=0% planif=13(0) intento=11(0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::Ejemplos puertos demonios:&lt;br /&gt;
:::*1111: vivait-cti&lt;br /&gt;
:::*1112: myAcdSuperv&lt;br /&gt;
:::*1113: recordNodo&lt;br /&gt;
:::*1114: recordCentral&lt;br /&gt;
:::*1115: intz-nimitz&lt;br /&gt;
:::*1120: motorSal&lt;br /&gt;
:::*1123: phoneprov-tftp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Base de datos'''&lt;br /&gt;
:* No se puede saber la versión a no ser que se comparen esquemáticos con los subidos en el redmine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:administrador]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:VIVAit Suite]]&lt;br /&gt;
[[Category:VIVAit Fax]]&lt;br /&gt;
&lt;br /&gt;
== Añadir Auto-Answer a la cabecera SIP ==&lt;br /&gt;
&lt;br /&gt;
Si queremos que un teléfono tenga autoanswer:&lt;br /&gt;
* En el peer poner: headeraa=Call-Info: answer-after=0, esto tiene que ir en la plantilla de la extensión o como campo en la extensión. Dependiendo del terminal que utilicemos el valor de este campo variará:&lt;br /&gt;
&lt;br /&gt;
    Aastra: Alert-Info: info=alert-autoanswer&lt;br /&gt;
    Grandstream: Call-Info: answer-after=0&lt;br /&gt;
    Linksys: Call-Info:\;Answer-After=0&lt;br /&gt;
    Polycom: Alert-Info: Ring Answer&lt;br /&gt;
    Snom: Call-Info: answer-after=0&lt;br /&gt;
    Snom (nuevo firmware): Call-Info: &amp;lt;sip:IP&amp;gt;\;answer-after=0&lt;br /&gt;
    Yealink: Call-Info: answer-after=0&lt;br /&gt;
&lt;br /&gt;
* Luego en el diaplan añadir lo siguiente: exten =&amp;gt; _[*#%0-9a-zA-Z].,n,set(__AutoAnswer=AA) (Esto tendremos que ver como ponerlo de manera automática). De manera provisional si queremos que sea para llamadas salientes pondremos esto en el ext_n_marcador.conf. Si queremos que sea llamadas entrantes lo pondremos en ext_n_MARCAR.conf&lt;br /&gt;
&lt;br /&gt;
== Configuración de los portales web en HTTPS ==&lt;br /&gt;
&lt;br /&gt;
Desde /usr/lib/jvm/default-java/bin/ ejecutamos:&lt;br /&gt;
&lt;br /&gt;
keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/share/tomcat7/.keystore&lt;br /&gt;
&lt;br /&gt;
Escriba la contraseña del almacén de claves: (t0mc4t)&lt;br /&gt;
 Volver a escribir la contraseña nueva: (t0mc4t)&lt;br /&gt;
 *Personalizar para el cliente&lt;br /&gt;
 ¿Cuáles son su nombre y su apellido?&lt;br /&gt;
 [Unknown]: VIVAit Suite&lt;br /&gt;
 ¿Cuál es el nombre de su unidad de organización?&lt;br /&gt;
 [Unknown]: Desarrollo&lt;br /&gt;
 ¿Cuál es el nombre de su organización?&lt;br /&gt;
 [Unknown]: MDtel&lt;br /&gt;
 ¿Cuál es el nombre de su ciudad o localidad?&lt;br /&gt;
 [Unknown]: Madrid&lt;br /&gt;
 ¿Cuál es el nombre de su estado o provincia?&lt;br /&gt;
 [Unknown]: Madrid&lt;br /&gt;
 ¿Cuál es el código de país de dos letras de la unidad?&lt;br /&gt;
 [Unknown]: es&lt;br /&gt;
 ¿Es correcto CN=VIVAit Suite, OU=Desarrollo, O=MDtel, L=es, ST=Madrid,&lt;br /&gt;
 C=Unknown?&lt;br /&gt;
 [no]: si&lt;br /&gt;
 Escriba la contraseña clave para &amp;lt;tomcat&amp;gt;&lt;br /&gt;
 (INTRO si es la misma contraseña que la del almacén de claves)&lt;br /&gt;
&lt;br /&gt;
nano /var/lib/tomcat7/conf/server.xml&lt;br /&gt;
&lt;br /&gt;
Descomentar la línea:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; protocol=&amp;quot;HTTP/1.1&amp;quot; SSLEnabled=&amp;quot;true&amp;quot; &lt;br /&gt;
&lt;br /&gt;
 maxThreads=&amp;quot;150&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Añadir después de sslProtocol=&amp;quot;TLS&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 keystorePass=&amp;quot;t0mc4t&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Crear un motivo desconexión para el Supervisor en '''''VIVA'''''it Suite==&lt;br /&gt;
&lt;br /&gt;
Para crear motivos de desconexión adicionales a los que ya ofrece la aplicación tendremos que añadir una nueva entrada en la BD. El comando que emplearíamos seria el siguiente:&lt;br /&gt;
&lt;br /&gt;
INSERT INTO `nimitz`.`COM_ENUMERADOS` (`ID`, `C_NOMBRE`, `C_TEXTO`, `N_POSICION`, `C_OBSERV`) VALUES(1000700, 'TSesAgMotDesc', 'Nombre Motivo de desconexión', 60, ' ');&lt;br /&gt;
&lt;br /&gt;
El ID debe ser mayor o igual a 1000700 y menor a 1000800. El N_POSICION debe ser mayor o igual a 60 y menor que 100.&lt;br /&gt;
&lt;br /&gt;
== Envío de variables CTI al ACD ante un GW con asterisk 13==&lt;br /&gt;
Dado que para un GW con asterisk 13 un nodo ACD es considerado un elemento externo, por defecto, no se envían variables CTI (UCID, ...). En una fututa versión del nodo ACD, ya no se considerará un elemento externo por lo que si se enviarán dichas variables. Para lograrlo en la versión 3.0 de la plataforma Vivait hay que modificar el fichero ext_MARCAR_Externo_Particular.conf del GW. Deberemos poner la siguiente linea.&lt;br /&gt;
&lt;br /&gt;
 same =&amp;gt; n,Macro(escribirDatosCti)&lt;br /&gt;
&lt;br /&gt;
== Script para cambio automático de claves en salas de conferencia estáticas ==&lt;br /&gt;
&lt;br /&gt;
Para cambiar la clave de las salas de conferencias crear un script llamado cambioClaveConfe.sh con el siguiente contenido:&lt;br /&gt;
	&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 CLAVE=$(shuf -i 1111-9999 -n 1)&lt;br /&gt;
 &lt;br /&gt;
 echo $CLAVE&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;update CEN_SALAS_CONFERENCIAS set C_PIN='$CLAVE' WHERE C_NOMBRE='$1'&amp;quot; | mysql -u nimitz -pivivanimitz nimitz&lt;br /&gt;
 &lt;br /&gt;
 FROM=sat@mdtel.es&lt;br /&gt;
 FECHA=`date +&amp;quot;%Y%m%d%H%M%S&amp;quot;`&lt;br /&gt;
 CLIENTE=&amp;lt;PONER EL CLIENTE&amp;gt;&lt;br /&gt;
 TO=&amp;lt;DESTINATARIOS&amp;gt;&lt;br /&gt;
 ASUNTO=&amp;quot;Nueva clave en sala $1&amp;quot;&lt;br /&gt;
 CUERPO=&amp;quot;La nueva clave para la sala $1 es: $CLAVE&amp;quot;&lt;br /&gt;
 /usr/sbin/sendmail -oi -t -v -f $FROM &amp;lt;&amp;lt;EOF&lt;br /&gt;
 From: $FROM&lt;br /&gt;
 To: $TO&lt;br /&gt;
 Bcc: $BCC&lt;br /&gt;
 Subject: $ASUNTO&lt;br /&gt;
 &lt;br /&gt;
 $CUERPO&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
El script cambiará la clave de la sala pasada por parámetro por una aleatoria de 4 dígitos y la enviará por correo a los &amp;lt;DESTINATARIOS&amp;gt; (direcciones de correo electrónico separadas por coma).&lt;br /&gt;
&lt;br /&gt;
Hay que crear una tarea en /etc/crontab añadiendo una linea como la siguiente:&lt;br /&gt;
 30 6	* * 7	root	cambioClaveConfe.sh 6173&lt;br /&gt;
&lt;br /&gt;
Esto ejecutará el script todos los domingos a las 6:30 horas cambiando la clave de la sala 6173. Añadir tantas linéas como salas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Monitorización en Zabbix de un trunk caído ==&lt;br /&gt;
Para monitorizar un o varios trunk por separado y saber el estado de cada uno es necesario lo siguiente: &lt;br /&gt;
&lt;br /&gt;
*Añadir el UserParameter adjunto que contiene el siguiente texto:&lt;br /&gt;
&lt;br /&gt;
 UserParameter=asterisk.trunkEstado[*],sudo /usr/sbin/asterisk -rx 'sip show peers' | grep  --text -i '$1' |  grep OK &amp;gt;/dev/null; if [ $? -eq 0 ]; then echo 1; else echo 0; fi&lt;br /&gt;
&lt;br /&gt;
*Añadir en el portal de zabbix un item por cada trunk. En el campo Key se pondrá &amp;quot;asterisk.trunkEstado[nombre_trunk]&amp;quot;, donde nombre_trunk es el nombre del trunk tal y como se ve en Asterisk.&lt;br /&gt;
[[File:zabbix_item_trunkEstado.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Crear un trigger que avise cuando el último valor sea 0. Por ejemplo:&lt;br /&gt;
 {corp-bdtr:asterisk.trunkEstado[PrePro-ACD].last()}=0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:zabbix_trigger_trunkEstado.png]]&lt;br /&gt;
&lt;br /&gt;
== Agendas en terminales Yealink ==&lt;br /&gt;
En la agenda se mostrará como nombre lo que contenga el campo CEN_AGENDAS.C_NOMBRE_MOSTRAR y como teléfono el indicado en CEN_AGENDAS_TELEFONOS.C_TELEFONO&lt;br /&gt;
Para hacer funcionar la agenda:&lt;br /&gt;
&lt;br /&gt;
*En el archivo de aprovisionamiento correspondiente (Yealink-XXXX-comun.cfg) establecer los siguientes parámetros:&lt;br /&gt;
&lt;br /&gt;
    remote_phonebook.data.1.url = http://&amp;lt;direc IP&amp;gt;/vivait-agenda/yealink/contactData1.xml &lt;br /&gt;
    remote_phonebook.data.1.name = NOMBRE DE LA AGENDA EN EL TELEFONO&lt;br /&gt;
&lt;br /&gt;
*En el archivo /etc/apache2/apache2.conf añadir tras el último Directory:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Directory /var/www/html/vivait-agenda/&amp;gt;&lt;br /&gt;
             AddType application/x-httpd-php .xml&lt;br /&gt;
             Options Indexes FollowSymLinks MultiViews&lt;br /&gt;
             AllowOverride None&lt;br /&gt;
             Order allow,deny&lt;br /&gt;
             allow from all&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Ejecutar el comando:&lt;br /&gt;
&lt;br /&gt;
    /etc/init.d/apache2 reload&lt;br /&gt;
&lt;br /&gt;
== Calendarios ==&lt;br /&gt;
&lt;br /&gt;
=== Enrutamiento inteligente ===&lt;br /&gt;
&lt;br /&gt;
Ante una llamada a un destino, si hay cita de ocupado en el calendario se desvia al número indicado en el campo &amp;quot;location&amp;quot; del calendario o a su buzon de voz si hay valor en dicho campo&lt;br /&gt;
&lt;br /&gt;
 same =&amp;gt; n,Set(CalendarBusy=${CALENDAR_BUSY(GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,Set(id=${CALENDAR_QUERY(GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,NoOP(hay ${CALENDAR_QUERY_RESULT(${id},getnum)} eventos)&lt;br /&gt;
 same =&amp;gt; n,Verbose(3,The state of GoogleCalendar is $&lt;br /&gt;
 {DEVICE_STATE(Calendar:GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,Set(CalendarLocation=${CALENDAR_QUERY_RESULT(GoogleCalendar,location)})&lt;br /&gt;
 same =&amp;gt; n,GotoIf($[&amp;quot;${CalendarBusy}&amp;quot;==&amp;quot;1&amp;quot;]?:conCategoria)&lt;br /&gt;
 same =&amp;gt; n,GotoIf($[&amp;quot;${CalendarLocation}&amp;quot;==&amp;quot;&amp;quot;]?buzon)&lt;br /&gt;
 same =&amp;gt; n,Goto(Cen_iniLlam,${CalendarLocation},1)&lt;br /&gt;
 same =&amp;gt; n(buzon),Playback(Particular/buzon)&lt;br /&gt;
 same =&amp;gt; n,Hangup&lt;br /&gt;
 same=&amp;gt; n(conCategoria),Goto(Cen_iniLlam,${EXTEN},1)&lt;br /&gt;
&lt;br /&gt;
=== Conexión de cliente Outlook a calendarios VIVAit mediante Caldav===&lt;br /&gt;
Por defecto, el cliente outlook no soporta Caldav; si queremos disponer de calendarios de VIVAit en Outlook tendríamos dos opciones:&lt;br /&gt;
# Tener los calendarios en el servidor Exchange&lt;br /&gt;
# Instalar un plugin en el cliente outlook que permita conectar vía Caldav los calendarios que estén ubicados en el servidor de calendarios de VIVAit&lt;br /&gt;
&lt;br /&gt;
Este howto se centra en esta segunda posibilidad&lt;br /&gt;
&lt;br /&gt;
Procedimiento: &lt;br /&gt;
&lt;br /&gt;
1.- Instalar Calldavsincronizer (valdrían otros plugin de Caldav para Outlook)&lt;br /&gt;
&lt;br /&gt;
[https://sourceforge.net/projects/outlookcaldavsynchronizer/ https://sourceforge.net/projects/outlookcaldavsynchronizer/]&lt;br /&gt;
&lt;br /&gt;
2.- Entrar en Synchronization Profiles en la nueva pestaña Calldav Syncronizer de outlook       [[File:Syncronizer.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.- Añadir nuevo perfil (tecla +)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Nuevo.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A tener en cuenta:&lt;br /&gt;
&lt;br /&gt;
*Crear un nuevo “Outlook folder”, entendemos que es adecuado (quizás necesario) para que las entradas de calendario de VIVAit queden diferenciadas.&lt;br /&gt;
*Lo mejor es haber creado antes el calendario en el servidor para que al darlo de alta en oulook comprobemos que se conecta.&lt;br /&gt;
*Dando al botón “Test or discover settings” se nos muestran todos los calendarios del servidor y elegimos el que queramos; en “elementos de la carpeta” diremos “elementos de calendario”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Calendario.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
== Uso de reloj hardware en nodos de procesamiento ==&lt;br /&gt;
&lt;br /&gt;
=== En nodo de procesamiento ACD ===&lt;br /&gt;
En un nodo de procesamiento ACD es obligatorio instalar dahdi y una tarjeta de primario para emplear reloj hardware, ya que el reloj software que va en el asterisk 1.4 es defectuoso.&lt;br /&gt;
Para configurarlo basta con instalar la tarjeta en el servidor, instalar dahdi y posteriormente ejecutar el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
 dahdi_cfg&lt;br /&gt;
&lt;br /&gt;
Este comando generaŕa el fichero /etc/dahdi/system.conf&lt;br /&gt;
&lt;br /&gt;
Para comprobar que el comando se ha ejecutado satisfactoriamente lo abriremos y tendrá que tener un formato semejante al siguiente ejemplo:&lt;br /&gt;
&lt;br /&gt;
 # Autogenerated by /usr/sbin/dahdi_genconf on Tue Oct 22 17:42:59 2013&lt;br /&gt;
 # If you edit this file and execute /usr/sbin/dahdi_genconf again,&lt;br /&gt;
 # your manual changes will be LOST.&lt;br /&gt;
 # Dahdi Configuration File&lt;br /&gt;
 #&lt;br /&gt;
 # This file is parsed by the Dahdi Configurator, dahdi_cfg&lt;br /&gt;
 #&lt;br /&gt;
 # Span 1: WCT1/0 &amp;quot;Digium Wildcard TE110P T1/E1 Card 0&amp;quot; HDB3/CCS/CRC4&lt;br /&gt;
 span=1,1,0,ccs,hdb3,crc4&lt;br /&gt;
 # termtype: te&lt;br /&gt;
 bchan=1-15,17-31&lt;br /&gt;
 dchan=16&lt;br /&gt;
 echocanceller=oslec,1-15,17-31&lt;br /&gt;
 # Global data&lt;br /&gt;
 loadzone        = es&lt;br /&gt;
 defaultzone     = es&lt;br /&gt;
&lt;br /&gt;
=== En nodo de procesamiento de corporativa ===&lt;br /&gt;
En un nodo de procesamiento de corporativa no obligatorio instalar dahdi y una tarjeta de primario para emplear reloj hardware, ya que el no se han detectado errores en el reloj por software. Sin embargo si instalamos dahdi y una tarjeta de primario para emplear reloj hardware, el sistema funcionará mejor.&lt;br /&gt;
Para configurarlo basta con instalar la tarjeta en el servidor, instalar dahdi y posteriormente ejecutar el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
 dahdi_cfg&lt;br /&gt;
&lt;br /&gt;
Este comando generaŕa el fichero /etc/dahdi/system.conf&lt;br /&gt;
&lt;br /&gt;
Para comprobar que el comando se ha ejecutado satisfactoriamente lo abriremos y tendrá que tener un formato semejante al siguiente ejemplo:&lt;br /&gt;
&lt;br /&gt;
 # Autogenerated by /usr/sbin/dahdi_genconf on Tue Oct 22 17:42:59 2013&lt;br /&gt;
 # If you edit this file and execute /usr/sbin/dahdi_genconf again,&lt;br /&gt;
 # your manual changes will be LOST.&lt;br /&gt;
 # Dahdi Configuration File&lt;br /&gt;
 #&lt;br /&gt;
 # This file is parsed by the Dahdi Configurator, dahdi_cfg&lt;br /&gt;
 #&lt;br /&gt;
 # Span 1: WCT1/0 &amp;quot;Digium Wildcard TE110P T1/E1 Card 0&amp;quot; HDB3/CCS/CRC4&lt;br /&gt;
 span=1,1,0,ccs,hdb3,crc4&lt;br /&gt;
 # termtype: te&lt;br /&gt;
 bchan=1-15,17-31&lt;br /&gt;
 dchan=16&lt;br /&gt;
 echocanceller=oslec,1-15,17-31&lt;br /&gt;
 # Global data&lt;br /&gt;
 loadzone        = es&lt;br /&gt;
 defaultzone     = es&lt;br /&gt;
&lt;br /&gt;
== Aprovisionamiento terminales Cisco ==&lt;br /&gt;
=== Configurar protocolo SIP TCP o UDP en terminal Cisco ===&lt;br /&gt;
&lt;br /&gt;
Configuración de terminal Cisco para para funcionar bajo TCP o UDP:&lt;br /&gt;
Modificar parámetro&lt;br /&gt;
 &amp;lt;transportLayerProtocol&amp;gt;X&amp;lt;/transportLayerProtocol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde X es:&lt;br /&gt;
    1: TCP&lt;br /&gt;
    2: UDP&lt;br /&gt;
    4: Valor por defecto del firmware (al menos en la última versión equivale a TCP)&lt;br /&gt;
&lt;br /&gt;
=== Habilitar/Deshabilitar llamada en espera en terminales Cisco ===&lt;br /&gt;
&lt;br /&gt;
En el fichero de aprovisionamiento del terminal añadiremos la siguiente linea&lt;br /&gt;
 &amp;lt;callWaiting&amp;gt;X&amp;lt;/callWaiting&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde X es:&lt;br /&gt;
   0=off but can be changed through the settings menu.&lt;br /&gt;
   1=on but can be changed through the settings menu.&lt;br /&gt;
   2=off and locked so it can't be changed through the settings menu.&lt;br /&gt;
   3=on and locked so it can't be changed through the settings menu.&lt;br /&gt;
&lt;br /&gt;
== Como configurar servicio DHCP en Ubuntu Linux ==&lt;br /&gt;
=== ¿Que es un servicio DHCP? ===&lt;br /&gt;
Un servidor Dynamic Host Configuration Protocol (DHCP) asigna dinámicamente las direcciones IP y otras configuraciones de red a otros terminales que están conectados a la red.&lt;br /&gt;
&lt;br /&gt;
=== Instalar un servicio DHCP ===&lt;br /&gt;
Para instalar el servidor de asignacion automatica de direccion IP ejecutamos el comando:&lt;br /&gt;
 sudo apt-get install isc-dhcp-server&lt;br /&gt;
&lt;br /&gt;
=== Configurando el servicio DHCP ===&lt;br /&gt;
Editamos el archivo /etc/dhcp/dhcpd.conf creando primero un backup del mismo:&lt;br /&gt;
 mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.original&lt;br /&gt;
 nano /etc/dhcp/dhcpd.conf&lt;br /&gt;
&lt;br /&gt;
El archivo debe quedar de una forma muy similar a esta:&lt;br /&gt;
 authoritative&lt;br /&gt;
 subnet  10.254.239.0 netmask 255.255.255.254&lt;br /&gt;
 {&lt;br /&gt;
 range dynamic-bootp  10.254.239.40 10.254.239.60;&lt;br /&gt;
 option domain-name-servers ns1.example.org, ns2.example.org;&lt;br /&gt;
 option domain-name &amp;quot;example.org&amp;quot;;&lt;br /&gt;
 option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org ;&lt;br /&gt;
 option broadcast-address 10.254.239.255;&lt;br /&gt;
 default-lease-time 3600;&lt;br /&gt;
 max-lease-time 7200;&lt;br /&gt;
 option option-150 10.254.239.25&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Donde los campos:&lt;br /&gt;
*subnet: Direccion de red&lt;br /&gt;
*netmask: Máscara de red&lt;br /&gt;
*range dynamic-bootp: Rango de IPs que va a proporcionar el DHCP&lt;br /&gt;
*option domain-name-servers: Direcciones IPs de los DNS&lt;br /&gt;
*option domain-name: Nombre de dominio&lt;br /&gt;
*option routers:IPs de las puertas de enlace&lt;br /&gt;
*option broadcast-address: Dirección de broadcast&lt;br /&gt;
*default-lease-time: Tiempo de concesión por defecto&lt;br /&gt;
*max-lease-time: Valor máximo del tiempo de concesión&lt;br /&gt;
*option option-150: IPs de los servidores TFTPs que tiene la red&lt;br /&gt;
&lt;br /&gt;
===  Reiniciamos el servicio ===&lt;br /&gt;
 service isc-dhcp-server restart&lt;br /&gt;
&lt;br /&gt;
=== Direcciones IP estáticas basadas en la MAC ===&lt;br /&gt;
Pueden conocerse las MAC de las máquinas conectadas a la red ejecutando el comando arp desde la terminal.&lt;br /&gt;
&lt;br /&gt;
 host ejemplo {&lt;br /&gt;
        hardware ethernet 00:0B:82:19:A8:04;&lt;br /&gt;
        option option-150 10.254.239.0;&lt;br /&gt;
 #      fixed-address 10.254.239.52;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Protocolo Skinny en VIVAit Call mediante uso de Chan-SCCP ==&lt;br /&gt;
=== Instalación de chan_sccp ===&lt;br /&gt;
*Copiar el fichero chan-sccp-4.2.1.1.tar.gz en el directorio donde estén los fuentes de Asterisk (normalmente /usr/src/MDtel)&lt;br /&gt;
*Descomprimir&lt;br /&gt;
*Entrar al directorio chan-sccp-4.2.1.1&lt;br /&gt;
*Ejecutar: ./configure --with-asterisk=../DIRECTORIO_ASTERISK --enable-conference. Donde DIRECTORIO_ASTERISK es el nombre del directorio donde están los fuentes de asterisk.&lt;br /&gt;
*Tras el ejecutar el configure (si todo va bien al final se verá un resumen con el S.O, arquitectura, etc), ejecutar make y make install&lt;br /&gt;
*El nuevo módulo chan_sccp.so se generará dentro del DIRECTORIO_ASTERISK en lib/asterisk/modules/ y se deberá copiar en /usr/lib/asterisk/modules/&lt;br /&gt;
*Copiar el fichero sccp.conf a /etc/asterisk&lt;br /&gt;
*Entra a Asterisk y ejecutar: module load chan_sccp.so&lt;br /&gt;
*Si se ha cargado correctamente, desde dentro de Asterisk, si se teclea sccp show version deberá devolver: &amp;quot;Skinny Client Control Protocol (SCCP). Release: 4.3.0 4.3.0 - unknown (built by 'root' on '2016-06-01 10:42:32 UTC')&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Crear extensiones ===&lt;br /&gt;
*En el portal crear una nueva clase de dispositivo (Vivait-Call/Dispositivos/Clases de dispositivos), donde la clase sea extensión la subclase H323 (todavía no existe la subclase SCCP) y el formato SCCP/${DEST}&lt;br /&gt;
*Crear la nueva extensión, pero el dispositivo debe ser el creado en el campo anterior.&lt;br /&gt;
*Las extensiones creadas habrá que añadirlas al fichero sccp.conf así como los teléfonos que las usarán. En el fichero sccp.conf incluido hay ejemplos.&lt;br /&gt;
&lt;br /&gt;
=== Aprovisionamiento ===&lt;br /&gt;
Los terminales se aprovisionan de la misma manera que los SIP, exceptuando que las plantillas XML no tiene referencias a SIP. Se incluye un xml genérico con todas las opciones.&lt;br /&gt;
Dentro del directorio chan-sccp-4.2.1.1 hay un directorio conf con todos los archivos de configuración necesarios. Las versiones annotated contienen todas las opciones posibles comentadas.&lt;br /&gt;
&lt;br /&gt;
== Instalación y configuración Postfix en RedHat7 ==&lt;br /&gt;
&lt;br /&gt;
'''Postfix''' es un ''servidor de correo'' de software libre/código abierto, un programa informático para el enrutamiento y envío de correo electrónico.&lt;br /&gt;
&lt;br /&gt;
=== Instalación ===&lt;br /&gt;
 yum install postfix&lt;br /&gt;
&lt;br /&gt;
=== Configuración ===&lt;br /&gt;
Sobre la configuración de postfix por defecto (recién instalado):&lt;br /&gt;
Editar el fichero /etc/postfix/main.cf&lt;br /&gt;
 inet_protocols = ipv4&lt;br /&gt;
 relayhost = smtp.renfe.es&lt;br /&gt;
Revisar la configuración:&lt;br /&gt;
 postfix check&lt;br /&gt;
Configurar postfix como servicio (sólo en redhat y similares)&lt;br /&gt;
 chkconfig postfix on&lt;br /&gt;
Iniciar postfix:&lt;br /&gt;
 service postfix start&lt;br /&gt;
Instalar mailx para disponer de los comandos mail y sendmail:&lt;br /&gt;
 yum install mailx&lt;br /&gt;
Probar configuración:&lt;br /&gt;
 echo &amp;quot;Prueba de correo&amp;quot; | mail -vs &amp;quot;Prueba&amp;quot; correo@destino.soy&lt;br /&gt;
&lt;br /&gt;
=== Como crear un TRIGGER en Zabbix ===&lt;br /&gt;
&lt;br /&gt;
'''1.''' Hay '''dos posibilidades''' dependiendo si el trigger es para un solo host o es para varios, los cuales tienen en común un template:&lt;br /&gt;
&lt;br /&gt;
:# Si es para ''un host'': Ir a '''Configuración/Hosts'''&lt;br /&gt;
:# Si es para ''un template'': Ir a '''Configuración/Templates'''&lt;br /&gt;
&lt;br /&gt;
'''2.''' En la fila correspondiente al host/template al que queramos añadirle el trigger, pulsar sobre la '''columna triggers.'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''3.''' En la ventana de triggers, pulsar sobre el botón '''Create trigger''', situado en la esquina superior derecha.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''4.''' Aparecerá la ventana de creación de triggers, que tiene los siguientes campos:&lt;br /&gt;
:1. '''Name:''' Nombre del trigger, que deberá ser lo ''suficientemente descriptivo''. Aparecerá cuando se&lt;br /&gt;
active, en la ventana principal de Zabbix así como en los correos de aviso.&lt;br /&gt;
:2. '''Expression:''' Define la fórmula cuyo resultado activará el trigger. Hay que pulsar el botón '''Add'''. Se mostrará una &lt;br /&gt;
nueva ventana donde habrá que elegir el item (medida) sobre el que se basará el trigger (evidentemente la medida deberá &lt;br /&gt;
existir previamente) y la función necesaria para el cálculo. Para una descripción de las disponibles dirigirse a &lt;br /&gt;
https://www.zabbix.com/documentation/2.2/manual/appendix/triggers/functions.&amp;lt;br/&amp;gt;&lt;br /&gt;
Tras rellenar los campos anteriores y dar a la función los valores que necesite pulsar el botón '''Insert.'''&lt;br /&gt;
:3. '''Expression constructor:''' Permite crear expresiones complejas, uniendo varias.&lt;br /&gt;
:4. '''Description:''' Una explicación del trigger&lt;br /&gt;
:5. '''Severity:''' Criticidad el trigger&lt;br /&gt;
:6. Para una descripción del resto de campos visitar la página: https://www.zabbix.com/documentation/2.2/manual/config/triggers/trigger&lt;br /&gt;
'''5.''' Tras rellenar los campos, pulsar el botón '''Save'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''6.''' Si el trigger se ha añadido en un template, aparecerá en todos los hosts que tienen el template configurado.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''7.''' '''El trigger por si solo no envía ningún aviso''', solo se activa si se cumple la expresión definida.&lt;br /&gt;
Para enviar un aviso (normalmente un correo electrónico) cuando se active el trigger, será necesario definir una acción (Configuración/Actions).&lt;br /&gt;
&lt;br /&gt;
 '''NOTA.-''' Para consultar cualquier cuestión relativa a Zabbix, se encuentra a su disposición el manual: &amp;lt;br/&amp;gt;&lt;br /&gt;
 https://www.zabbix.com/documentation/2.2/manual&lt;br /&gt;
&lt;br /&gt;
== Como mostrar callername queues FOP2 ==&lt;br /&gt;
&lt;br /&gt;
Es necesario añadir el siguiente código al contexto de entrada:&lt;br /&gt;
&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Connect connid localhost usuario clave bd)&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Query resultid ${connid} SELECT\ firstname\,lastname\ from\ fop2\ where\ phone1=${CALLERID(num)}\ OR\ phone2=${CALLERID(num)})&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Fetch fetchid ${resultid} nombre apellidos)&lt;br /&gt;
 exten =&amp;gt; _X.,n,GotoIf($[${fetchid} = 1]?:noExiste)&lt;br /&gt;
 exten =&amp;gt; _X.,n,Set(CALLERID(name)=${nombre}${apellidos})&lt;br /&gt;
 exten =&amp;gt; _X.,n(noExiste),Continuar&lt;br /&gt;
&lt;br /&gt;
En la primera línea cambiar según lo necesario:&lt;br /&gt;
&lt;br /&gt;
*localhost: Dirección IP del servidor de MySQL donde está la BBDD de FOP2&lt;br /&gt;
*usuario: Usuario con permisos de acceso a la bbdd de FOP2&lt;br /&gt;
*clave: Clave del usuario&lt;br /&gt;
*bd: Nombre de la BBDD&lt;br /&gt;
&lt;br /&gt;
== Como ver los directorios de un NAS a montar con NFS ==&lt;br /&gt;
&lt;br /&gt;
Con el siguiente comando vemos los diferentes volúmenes de un NAS:&lt;br /&gt;
&lt;br /&gt;
 showmount -e IP_NAS&lt;br /&gt;
&lt;br /&gt;
Ejemplo de salida:&lt;br /&gt;
&lt;br /&gt;
 Export list for 192.168.10.10:&lt;br /&gt;
 /Backup/backup       *&lt;br /&gt;
 /DISCOS_1/VOL1_AUDIO *&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Instalación de ActivaSTP con VIVAit Call 3 y marcación desde Outlook ==&lt;br /&gt;
&lt;br /&gt;
Instalamos ActivaSTP desde:&lt;br /&gt;
 &lt;br /&gt;
 (http://activa.sourceforge.net/)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- *SIPTAPI, según la pagina Web, su ultima versión publicada es del 2014 con versión 0.2.17 (http://activa.sourceforge.net/)&lt;br /&gt;
&lt;br /&gt;
Hemos probado con http://www.xtelsio.com/en/products/ast_tsp/tapi_for_asterisk.htm.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La configuración necesaria se muestra en la siguiente imagen:&lt;br /&gt;
&lt;br /&gt;
[[File:Ventana ActivaTSP.jpg]]&lt;br /&gt;
&lt;br /&gt;
 El usuario del manager debe tener permisos originate para poder realizar llamadas.&lt;br /&gt;
&lt;br /&gt;
Se han realizado pruebas con Outlook 2013.&lt;br /&gt;
&lt;br /&gt;
Se ha comprobado la correcta realización de pruebas utilizando ActivaSTP, realizadon llamadas desde la pestaña &amp;quot;personas&amp;quot; con la vista en modo tarjeta de Pesentación, tarjeta, teléfono o lista.&lt;br /&gt;
&lt;br /&gt;
Outlook 2013 no da la opción de llamar si la vista está en modo personas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Como volver a procesar grabaciones con error ==&lt;br /&gt;
&lt;br /&gt;
Las grabaciones con error son aquellas que tienen el valor E_GRABACION=120 en la tabla DAT_GRABACIONES.&lt;br /&gt;
&lt;br /&gt;
Las grabaciones con error se produce normalmente a perdida de conexión entre el nodo servidor de grabaciones y el resto.&lt;br /&gt;
&lt;br /&gt;
Para reprocesar la grabación hay que modificar el campo E_GRABACION de la tabla DAT_GRABACIONES y ponerlo con valor 20 para que así el recordCentral la vuelva a procesar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Problemas de conmutación en cluster ==&lt;br /&gt;
El problema detectado fue que en la conmutacion de maquinas en el cluster cuando el control lo tiene la maquina 2 no funciona el servicio phoneprov-tftp.&lt;br /&gt;
&lt;br /&gt;
Hay que hacer las siguientes comprobaciones:&lt;br /&gt;
&lt;br /&gt;
 Que el directorio /var/lib/phoneprov-tftp esté en la partición /HDcluster&lt;br /&gt;
 Que fichero /etc/MDtel/phoneprov-tftp esté puesta como IP de la máquina la IP flotante del cluster (campo $dbHost)&lt;br /&gt;
 Que el servicio phoneprov-tftp del directorio /usr/local/sbin/phoneprov-tftp.pl tenga permisos de ejecución 755&lt;br /&gt;
 Que exista el fichero /etc/init/phoneprov-tftp.conf&lt;br /&gt;
&lt;br /&gt;
Para más información ver los log del phoneprov en /var/log/phoneprov-tftp.log&lt;br /&gt;
&lt;br /&gt;
El problema era que no se encontraba instalado el paquete phoneprov-tftp, hay que instalarlo manualmente. Instalar el paquete libnet-tftpd-perl.--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Howto%27s&amp;diff=5954</id>
		<title>Howto's</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Howto%27s&amp;diff=5954"/>
		<updated>2017-06-14T06:50:06Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* Como volver a procesar grabaciones con error */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!! VIVAit Call&lt;br /&gt;
VIVAit Suite&lt;br /&gt;
&lt;br /&gt;
VIVAit Fax&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Como parar asterisk ==&lt;br /&gt;
En situaciones límite en el que es necesario parar el asterisk y volver a arrancarlo hay que realizar los siguientes pasos:&lt;br /&gt;
&lt;br /&gt;
 Entrar en la consola de asterisk e introducir el comando core stop now&lt;br /&gt;
&lt;br /&gt;
 Si esto no funciona, tendremos que matar el proceso a mano. Esto es, primero el safe asterisk y luego el asterisk mediante el comando &lt;br /&gt;
 kill -9 nºPID&lt;br /&gt;
 &lt;br /&gt;
 Tras estos pasos, volveremos a arrancar el servicio asterisk mediante /etc/init.d/asterisk start&lt;br /&gt;
&lt;br /&gt;
== Como configurar la megafonía ==&lt;br /&gt;
&lt;br /&gt;
El servicio de megafonía se basa en el protocolo multicast.&lt;br /&gt;
&lt;br /&gt;
Para configurar la megafonía tenemos que activar en los teléfonos que para que estén &amp;quot;escuchando&amp;quot; en una dirección multicast y tener un emisor en esa dirección multicast.&lt;br /&gt;
&lt;br /&gt;
Los teléfonos suelen tener en su configuración un apartado para configurar el multicast. Por ejemplo en los yealink está en la pestaña directory sección multicast IP.&lt;br /&gt;
&lt;br /&gt;
En los teléfonos se puede configurar manualmente o incluirlo en las plantillas de aprovisionamiento.&lt;br /&gt;
&lt;br /&gt;
El asterisk tiene un canal para hacer multicast. Este canal es MulticastRTP.&lt;br /&gt;
&lt;br /&gt;
Para esto podemos crear un VDN que contenga la siguiente línea. (en el ejemplo la dirección multicast es 239.0.126.1 y el puerto es el 10001).&lt;br /&gt;
&lt;br /&gt;
 [Cen_VDN_90000]&lt;br /&gt;
 exten =&amp;gt; _X.,1,NoOp(MDVDN_90000*****EXTEN=${EXTEN}**CID=${CALLERID(NUM)}**UCID=${UCID}*)&lt;br /&gt;
  same =&amp;gt;     n,Answer&lt;br /&gt;
  same =&amp;gt;     n,Dial(MulticastRTP/basic/239.0.126.1:10001)&lt;br /&gt;
 include =&amp;gt; Cen_finLlamada&lt;br /&gt;
&lt;br /&gt;
== Como configurar el candado ==&lt;br /&gt;
El candado permite prohibir temporalmente la posibilidad de realizar llamadas hacia fuera. Sí se pueden seguir haciendo llamadas a extensiones fijas de la plataforma, es decir, llamadas sin coste.&lt;br /&gt;
&lt;br /&gt;
Para configurar dicha funcionalidad basta con crear extensiones con la categoría mas restrictiva posible y habilitar la movilidad, con lo que la extensión solo tendrá &amp;quot;permisos&amp;quot; para realizar llamadas internas.&lt;br /&gt;
&lt;br /&gt;
Para permitir llamadas externas solo hay que &amp;quot;mover&amp;quot; a un usuario con categoría suficiente a la extensión deseada.&lt;br /&gt;
== Como crear un grupo de captura y que se vea en cada teléfono el número que llama ==&lt;br /&gt;
&lt;br /&gt;
'''ATENCIÓN: SE CREAN CONFIGURACIONES NO REFLEJADAS EN PORTAL DE ADMINISTRACIÓN'''&lt;br /&gt;
&lt;br /&gt;
Para la simulación de grupos de captura y conseguir que todos los terminales vean el ANI del llamante:&lt;br /&gt;
&lt;br /&gt;
- Hacen falta teléfonos con dos líneas&lt;br /&gt;
&lt;br /&gt;
- Cada teléfono del grupo tiene en la línea 1 su extensión habitual (por ejemplo 40000)&lt;br /&gt;
&lt;br /&gt;
- Además, en el fichero &amp;quot;sip_Estatico.conf&amp;quot;, creamos una segunda extensión para cada teléfono, que le ocupará la segunda línea (por ejemplo 42000)&lt;br /&gt;
&lt;br /&gt;
- En esta segunda linea ponemos que cuando se llame tenga otro tono de llamada (un beep o nada...) que se asemeje en funcionamiento al de un mensaje de llamada en otra extension de mi grupo de captura&lt;br /&gt;
&lt;br /&gt;
- Se ha creado una variable global por cada teléfono en el fichero de variables &amp;quot;ext_MDtel_Particular.conf&amp;quot; de nombre EXTxxxxx (por ejemplo EXT40000); esa variable contiene las otras extensiones virtuales del grupo&lt;br /&gt;
por ejemplo EXT40000=&amp;gt;SIP/42001&amp;amp;SIP/42005&lt;br /&gt;
&lt;br /&gt;
- Hemos creado en el dialplan programación para que cuando exista esa variable global se añada a la marcación el contenido&lt;br /&gt;
&lt;br /&gt;
== Como crear supletorios ==&lt;br /&gt;
&lt;br /&gt;
'''ATENCIÓN: SE CREAN CONFIGURACIONES NO REFLEJADAS EN PORTAL DE ADMINISTRACIÓN'''&lt;br /&gt;
&lt;br /&gt;
Igual que el caso anterior pero en la variable ponemos números reales. Debido a un bug en el enrutador, que no devuelve la variable R_PARA, en el fichero ext_MARCAR_Extension.conf hay que sustituir la siguiente linea:&lt;br /&gt;
 &lt;br /&gt;
 ;same =&amp;gt;                   n,ExecIf($[&amp;quot;${EXT${R_PARA}}&amp;quot;=&amp;quot;&amp;quot;]?NoOp:Set(ENR_CADMARCAR=${ENR_CADMARCAR}&amp;amp;${EXT${R_PARA}}))&lt;br /&gt;
Por esta otra:&lt;br /&gt;
  same =&amp;gt;                   n,ExecIf($[&amp;quot;${EXT${R_DEST_${ENR_RUTA_CAD}}}&amp;quot;=&amp;quot;&amp;quot;]?NoOp:Set(ENR_CADMARCAR=${ENR_CADMARCAR}&amp;amp;${EXT${R_DEST_${ENR_RUTA_CAD}}}))&lt;br /&gt;
ATENCIÓN !!! en las llamadas salientes cada uno presenta su número&lt;br /&gt;
&lt;br /&gt;
Para emplear números externos en los supletorios hay que poner, al crear la variable que hemos explicado en el apartado anterior en el ext_MDtel_Particular.conf: &lt;br /&gt;
&lt;br /&gt;
 EXT335=&amp;gt;SIP/0999999999@Trunk_Movil ;En este caso suena en la ext 335 y en el móvil 999999999&lt;br /&gt;
&lt;br /&gt;
== Generación de llamada automática ==&lt;br /&gt;
&lt;br /&gt;
Para activar la funcionalidad es necesario lo siguiente: &lt;br /&gt;
&lt;br /&gt;
* Definir una variable ID_LISTA_LLAMAME con el ID de la lista que se va a usar para generar la llamada. Cuando se cree la lista hay que asegurarse que el campo &amp;quot;Nº segundos límite&amp;quot; tiene un valor lo suficientemente amplio para evitar que la llamada caduque antes de ejecutarse.&lt;br /&gt;
&lt;br /&gt;
* Establecer un timeout para la cola (en el Gosub Cen_Sub_GrupoACD se indica justo después de ${COLA})&lt;br /&gt;
&lt;br /&gt;
* Llamar a la función de MySQL ACD_FUNC_LLAMAME_CREAR a través de MDintz&lt;br /&gt;
&lt;br /&gt;
* En la función se usan los siguientes elementos variables:&lt;br /&gt;
&lt;br /&gt;
        ${ID_LISTA_LLAMAME}: Definida antes clienteTOCola: &lt;br /&gt;
        Nombre del cliente. Al no tener ningún nombre, se usa un denominador genérico&lt;br /&gt;
        ${CALLERID}: Número llamante, donde se dirigirá la llamada.&lt;br /&gt;
&lt;br /&gt;
Ejemplo:&lt;br /&gt;
&lt;br /&gt;
 [Cen_VDN_99001]&lt;br /&gt;
 ;----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 ;----------------------- VDN 99001 ------------------------------------------------------------&lt;br /&gt;
 ;----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 exten =&amp;gt; _X.,1,NoOp(MDENTGW_99001*****EXTEN=${EXTEN}**CID=${CALLERID(NUM)}**UCID=${UCID}*)&lt;br /&gt;
  same =&amp;gt;     n,Set(__COLA=89001)&lt;br /&gt;
  same =&amp;gt;     n,Set(ctiDiriTrato=0)&lt;br /&gt;
  same =&amp;gt;     n,Set(ctiDiriInterface=)&lt;br /&gt;
  same =&amp;gt;     n,Set(ID_LISTA_LLAMAME=2)&lt;br /&gt;
  same =&amp;gt;     n(cola),Gosub(Cen_Sub_GrupoACD,${EXTEN},1(${COLA},10,,Si,))&lt;br /&gt;
  same =&amp;gt;     n,GotoIf($[&amp;quot;${QUEUESTATUS}&amp;quot;!=&amp;quot;TIMEOUT&amp;quot;]?colgar)&lt;br /&gt;
  same =&amp;gt;     n,MDintz(nimitz|bd|sqlDato|select ACD_FUNC_LLAMAME_CREAR(CURRENT_TIMESTAMP\,${ID_LISTA_LLAMAME}\,&amp;quot;&amp;quot;\,&amp;quot;clienteTOCola&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,1\,&amp;quot;&amp;quot;\,&amp;quot;${CALLERID(NUM)}&amp;quot;\,1\,3\,1\,&amp;quot;&amp;quot;\,0\,0\,0\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;))&lt;br /&gt;
  same =&amp;gt;     n,GotoIf($[&amp;quot;${MDintzRes}&amp;quot;=&amp;quot;OK&amp;quot;]?colgar)&lt;br /&gt;
  same =&amp;gt;     n,NoOp(ACD_FUNC_LLAMAME_CREAR ${MDintzRes})&lt;br /&gt;
  same =&amp;gt;     n(colgar),Hangup&lt;br /&gt;
&lt;br /&gt;
== Como &amp;quot;dar paso&amp;quot; a través de un enlace exterior si hay una llamada para una extensión creada en el sistema pero no registrada ==&lt;br /&gt;
&lt;br /&gt;
Este procedimiento es de utilidad en procesos de migración, en los que recibimos las llamadas de la RTC, nos las quedamos si la extensión ya está registrada en VIVAit y la mandamos hacia la plataforma a migrar si aún sigue migrada ahí&lt;br /&gt;
&lt;br /&gt;
El procedimiento es:&lt;br /&gt;
* Activar desvío por no contesta en la extensión (portal de administración - VIVAit Call - Dispositivos - Extensiones - campo &amp;quot;Desvio no contesta&amp;quot;, indicando como destino un prefijo (por ejemplo &amp;quot;99&amp;quot;) seguido de la extensión destino&lt;br /&gt;
&lt;br /&gt;
* Creamos una preruta en vivait-call - rutas -prerutas con origen &amp;quot;99&amp;quot;, le quitamos el prefijo en campo &amp;quot;Destino saliente 1&amp;quot; (valor -2) e indicamos en campo &amp;quot;Tipo destino sal. 1&amp;quot; como &amp;quot;Ruta externa&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Debera existir una ruta externa para esa numeración&lt;br /&gt;
&lt;br /&gt;
== Comprobación de versiones de elementos de la plataforma ==&lt;br /&gt;
&lt;br /&gt;
'''Aplicaciones'''&lt;br /&gt;
:* Botón derecho del ratón, Acerca De&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Portales'''&lt;br /&gt;
:* En el Vivait-Call, en la pantalla de inicio de sesión pone el número de versión del portal.&lt;br /&gt;
:* Tanto en el Monitor como en el Tracker no se puede saber.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Demonios'''&lt;br /&gt;
:* Mediante el comando nc localhost &amp;lt;Puerto demonio&amp;gt;. Ejemplo:&lt;br /&gt;
::nc localhost 1120&lt;br /&gt;
::motorSal sis ver='03.02.00' inic='20150427 123457' alarmas=0 ultAlar='00000000000000'&lt;br /&gt;
::motorSal gmp msj=253/256 buf=256/256 tarea=99/102&lt;br /&gt;
::motorSal tmp uptime=12624 (0d 3h 30m 24s)&lt;br /&gt;
::motorSal mtr mys=1 ocup=0% planif=13(0) intento=11(0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::Ejemplos puertos demonios:&lt;br /&gt;
:::*1111: vivait-cti&lt;br /&gt;
:::*1112: myAcdSuperv&lt;br /&gt;
:::*1113: recordNodo&lt;br /&gt;
:::*1114: recordCentral&lt;br /&gt;
:::*1115: intz-nimitz&lt;br /&gt;
:::*1120: motorSal&lt;br /&gt;
:::*1123: phoneprov-tftp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Base de datos'''&lt;br /&gt;
:* No se puede saber la versión a no ser que se comparen esquemáticos con los subidos en el redmine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:administrador]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:VIVAit Suite]]&lt;br /&gt;
[[Category:VIVAit Fax]]&lt;br /&gt;
&lt;br /&gt;
== Añadir Auto-Answer a la cabecera SIP ==&lt;br /&gt;
&lt;br /&gt;
Si queremos que un teléfono tenga autoanswer:&lt;br /&gt;
* En el peer poner: headeraa=Call-Info: answer-after=0, esto tiene que ir en la plantilla de la extensión o como campo en la extensión. Dependiendo del terminal que utilicemos el valor de este campo variará:&lt;br /&gt;
&lt;br /&gt;
    Aastra: Alert-Info: info=alert-autoanswer&lt;br /&gt;
    Grandstream: Call-Info: answer-after=0&lt;br /&gt;
    Linksys: Call-Info:\;Answer-After=0&lt;br /&gt;
    Polycom: Alert-Info: Ring Answer&lt;br /&gt;
    Snom: Call-Info: answer-after=0&lt;br /&gt;
    Snom (nuevo firmware): Call-Info: &amp;lt;sip:IP&amp;gt;\;answer-after=0&lt;br /&gt;
    Yealink: Call-Info: answer-after=0&lt;br /&gt;
&lt;br /&gt;
* Luego en el diaplan añadir lo siguiente: exten =&amp;gt; _[*#%0-9a-zA-Z].,n,set(__AutoAnswer=AA) (Esto tendremos que ver como ponerlo de manera automática). De manera provisional si queremos que sea para llamadas salientes pondremos esto en el ext_n_marcador.conf. Si queremos que sea llamadas entrantes lo pondremos en ext_n_MARCAR.conf&lt;br /&gt;
&lt;br /&gt;
== Configuración de los portales web en HTTPS ==&lt;br /&gt;
&lt;br /&gt;
Desde /usr/lib/jvm/default-java/bin/ ejecutamos:&lt;br /&gt;
&lt;br /&gt;
keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/share/tomcat7/.keystore&lt;br /&gt;
&lt;br /&gt;
Escriba la contraseña del almacén de claves: (t0mc4t)&lt;br /&gt;
 Volver a escribir la contraseña nueva: (t0mc4t)&lt;br /&gt;
 *Personalizar para el cliente&lt;br /&gt;
 ¿Cuáles son su nombre y su apellido?&lt;br /&gt;
 [Unknown]: VIVAit Suite&lt;br /&gt;
 ¿Cuál es el nombre de su unidad de organización?&lt;br /&gt;
 [Unknown]: Desarrollo&lt;br /&gt;
 ¿Cuál es el nombre de su organización?&lt;br /&gt;
 [Unknown]: MDtel&lt;br /&gt;
 ¿Cuál es el nombre de su ciudad o localidad?&lt;br /&gt;
 [Unknown]: Madrid&lt;br /&gt;
 ¿Cuál es el nombre de su estado o provincia?&lt;br /&gt;
 [Unknown]: Madrid&lt;br /&gt;
 ¿Cuál es el código de país de dos letras de la unidad?&lt;br /&gt;
 [Unknown]: es&lt;br /&gt;
 ¿Es correcto CN=VIVAit Suite, OU=Desarrollo, O=MDtel, L=es, ST=Madrid,&lt;br /&gt;
 C=Unknown?&lt;br /&gt;
 [no]: si&lt;br /&gt;
 Escriba la contraseña clave para &amp;lt;tomcat&amp;gt;&lt;br /&gt;
 (INTRO si es la misma contraseña que la del almacén de claves)&lt;br /&gt;
&lt;br /&gt;
nano /var/lib/tomcat7/conf/server.xml&lt;br /&gt;
&lt;br /&gt;
Descomentar la línea:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; protocol=&amp;quot;HTTP/1.1&amp;quot; SSLEnabled=&amp;quot;true&amp;quot; &lt;br /&gt;
&lt;br /&gt;
 maxThreads=&amp;quot;150&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Añadir después de sslProtocol=&amp;quot;TLS&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 keystorePass=&amp;quot;t0mc4t&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Crear un motivo desconexión para el Supervisor en '''''VIVA'''''it Suite==&lt;br /&gt;
&lt;br /&gt;
Para crear motivos de desconexión adicionales a los que ya ofrece la aplicación tendremos que añadir una nueva entrada en la BD. El comando que emplearíamos seria el siguiente:&lt;br /&gt;
&lt;br /&gt;
INSERT INTO `nimitz`.`COM_ENUMERADOS` (`ID`, `C_NOMBRE`, `C_TEXTO`, `N_POSICION`, `C_OBSERV`) VALUES(1000700, 'TSesAgMotDesc', 'Nombre Motivo de desconexión', 60, ' ');&lt;br /&gt;
&lt;br /&gt;
El ID debe ser mayor o igual a 1000700 y menor a 1000800. El N_POSICION debe ser mayor o igual a 60 y menor que 100.&lt;br /&gt;
&lt;br /&gt;
== Envío de variables CTI al ACD ante un GW con asterisk 13==&lt;br /&gt;
Dado que para un GW con asterisk 13 un nodo ACD es considerado un elemento externo, por defecto, no se envían variables CTI (UCID, ...). En una fututa versión del nodo ACD, ya no se considerará un elemento externo por lo que si se enviarán dichas variables. Para lograrlo en la versión 3.0 de la plataforma Vivait hay que modificar el fichero ext_MARCAR_Externo_Particular.conf del GW. Deberemos poner la siguiente linea.&lt;br /&gt;
&lt;br /&gt;
 same =&amp;gt; n,Macro(escribirDatosCti)&lt;br /&gt;
&lt;br /&gt;
== Script para cambio automático de claves en salas de conferencia estáticas ==&lt;br /&gt;
&lt;br /&gt;
Para cambiar la clave de las salas de conferencias crear un script llamado cambioClaveConfe.sh con el siguiente contenido:&lt;br /&gt;
	&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 CLAVE=$(shuf -i 1111-9999 -n 1)&lt;br /&gt;
 &lt;br /&gt;
 echo $CLAVE&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;update CEN_SALAS_CONFERENCIAS set C_PIN='$CLAVE' WHERE C_NOMBRE='$1'&amp;quot; | mysql -u nimitz -pivivanimitz nimitz&lt;br /&gt;
 &lt;br /&gt;
 FROM=sat@mdtel.es&lt;br /&gt;
 FECHA=`date +&amp;quot;%Y%m%d%H%M%S&amp;quot;`&lt;br /&gt;
 CLIENTE=&amp;lt;PONER EL CLIENTE&amp;gt;&lt;br /&gt;
 TO=&amp;lt;DESTINATARIOS&amp;gt;&lt;br /&gt;
 ASUNTO=&amp;quot;Nueva clave en sala $1&amp;quot;&lt;br /&gt;
 CUERPO=&amp;quot;La nueva clave para la sala $1 es: $CLAVE&amp;quot;&lt;br /&gt;
 /usr/sbin/sendmail -oi -t -v -f $FROM &amp;lt;&amp;lt;EOF&lt;br /&gt;
 From: $FROM&lt;br /&gt;
 To: $TO&lt;br /&gt;
 Bcc: $BCC&lt;br /&gt;
 Subject: $ASUNTO&lt;br /&gt;
 &lt;br /&gt;
 $CUERPO&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
El script cambiará la clave de la sala pasada por parámetro por una aleatoria de 4 dígitos y la enviará por correo a los &amp;lt;DESTINATARIOS&amp;gt; (direcciones de correo electrónico separadas por coma).&lt;br /&gt;
&lt;br /&gt;
Hay que crear una tarea en /etc/crontab añadiendo una linea como la siguiente:&lt;br /&gt;
 30 6	* * 7	root	cambioClaveConfe.sh 6173&lt;br /&gt;
&lt;br /&gt;
Esto ejecutará el script todos los domingos a las 6:30 horas cambiando la clave de la sala 6173. Añadir tantas linéas como salas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Monitorización en Zabbix de un trunk caído ==&lt;br /&gt;
Para monitorizar un o varios trunk por separado y saber el estado de cada uno es necesario lo siguiente: &lt;br /&gt;
&lt;br /&gt;
*Añadir el UserParameter adjunto que contiene el siguiente texto:&lt;br /&gt;
&lt;br /&gt;
 UserParameter=asterisk.trunkEstado[*],sudo /usr/sbin/asterisk -rx 'sip show peers' | grep  --text -i '$1' |  grep OK &amp;gt;/dev/null; if [ $? -eq 0 ]; then echo 1; else echo 0; fi&lt;br /&gt;
&lt;br /&gt;
*Añadir en el portal de zabbix un item por cada trunk. En el campo Key se pondrá &amp;quot;asterisk.trunkEstado[nombre_trunk]&amp;quot;, donde nombre_trunk es el nombre del trunk tal y como se ve en Asterisk.&lt;br /&gt;
[[File:zabbix_item_trunkEstado.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Crear un trigger que avise cuando el último valor sea 0. Por ejemplo:&lt;br /&gt;
 {corp-bdtr:asterisk.trunkEstado[PrePro-ACD].last()}=0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:zabbix_trigger_trunkEstado.png]]&lt;br /&gt;
&lt;br /&gt;
== Agendas en terminales Yealink ==&lt;br /&gt;
En la agenda se mostrará como nombre lo que contenga el campo CEN_AGENDAS.C_NOMBRE_MOSTRAR y como teléfono el indicado en CEN_AGENDAS_TELEFONOS.C_TELEFONO&lt;br /&gt;
Para hacer funcionar la agenda:&lt;br /&gt;
&lt;br /&gt;
*En el archivo de aprovisionamiento correspondiente (Yealink-XXXX-comun.cfg) establecer los siguientes parámetros:&lt;br /&gt;
&lt;br /&gt;
    remote_phonebook.data.1.url = http://&amp;lt;direc IP&amp;gt;/vivait-agenda/yealink/contactData1.xml &lt;br /&gt;
    remote_phonebook.data.1.name = NOMBRE DE LA AGENDA EN EL TELEFONO&lt;br /&gt;
&lt;br /&gt;
*En el archivo /etc/apache2/apache2.conf añadir tras el último Directory:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Directory /var/www/html/vivait-agenda/&amp;gt;&lt;br /&gt;
             AddType application/x-httpd-php .xml&lt;br /&gt;
             Options Indexes FollowSymLinks MultiViews&lt;br /&gt;
             AllowOverride None&lt;br /&gt;
             Order allow,deny&lt;br /&gt;
             allow from all&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Ejecutar el comando:&lt;br /&gt;
&lt;br /&gt;
    /etc/init.d/apache2 reload&lt;br /&gt;
&lt;br /&gt;
== Calendarios ==&lt;br /&gt;
&lt;br /&gt;
=== Enrutamiento inteligente ===&lt;br /&gt;
&lt;br /&gt;
Ante una llamada a un destino, si hay cita de ocupado en el calendario se desvia al número indicado en el campo &amp;quot;location&amp;quot; del calendario o a su buzon de voz si hay valor en dicho campo&lt;br /&gt;
&lt;br /&gt;
 same =&amp;gt; n,Set(CalendarBusy=${CALENDAR_BUSY(GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,Set(id=${CALENDAR_QUERY(GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,NoOP(hay ${CALENDAR_QUERY_RESULT(${id},getnum)} eventos)&lt;br /&gt;
 same =&amp;gt; n,Verbose(3,The state of GoogleCalendar is $&lt;br /&gt;
 {DEVICE_STATE(Calendar:GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,Set(CalendarLocation=${CALENDAR_QUERY_RESULT(GoogleCalendar,location)})&lt;br /&gt;
 same =&amp;gt; n,GotoIf($[&amp;quot;${CalendarBusy}&amp;quot;==&amp;quot;1&amp;quot;]?:conCategoria)&lt;br /&gt;
 same =&amp;gt; n,GotoIf($[&amp;quot;${CalendarLocation}&amp;quot;==&amp;quot;&amp;quot;]?buzon)&lt;br /&gt;
 same =&amp;gt; n,Goto(Cen_iniLlam,${CalendarLocation},1)&lt;br /&gt;
 same =&amp;gt; n(buzon),Playback(Particular/buzon)&lt;br /&gt;
 same =&amp;gt; n,Hangup&lt;br /&gt;
 same=&amp;gt; n(conCategoria),Goto(Cen_iniLlam,${EXTEN},1)&lt;br /&gt;
&lt;br /&gt;
=== Conexión de cliente Outlook a calendarios VIVAit mediante Caldav===&lt;br /&gt;
Por defecto, el cliente outlook no soporta Caldav; si queremos disponer de calendarios de VIVAit en Outlook tendríamos dos opciones:&lt;br /&gt;
# Tener los calendarios en el servidor Exchange&lt;br /&gt;
# Instalar un plugin en el cliente outlook que permita conectar vía Caldav los calendarios que estén ubicados en el servidor de calendarios de VIVAit&lt;br /&gt;
&lt;br /&gt;
Este howto se centra en esta segunda posibilidad&lt;br /&gt;
&lt;br /&gt;
Procedimiento: &lt;br /&gt;
&lt;br /&gt;
1.- Instalar Calldavsincronizer (valdrían otros plugin de Caldav para Outlook)&lt;br /&gt;
&lt;br /&gt;
[https://sourceforge.net/projects/outlookcaldavsynchronizer/ https://sourceforge.net/projects/outlookcaldavsynchronizer/]&lt;br /&gt;
&lt;br /&gt;
2.- Entrar en Synchronization Profiles en la nueva pestaña Calldav Syncronizer de outlook       [[File:Syncronizer.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.- Añadir nuevo perfil (tecla +)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Nuevo.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A tener en cuenta:&lt;br /&gt;
&lt;br /&gt;
*Crear un nuevo “Outlook folder”, entendemos que es adecuado (quizás necesario) para que las entradas de calendario de VIVAit queden diferenciadas.&lt;br /&gt;
*Lo mejor es haber creado antes el calendario en el servidor para que al darlo de alta en oulook comprobemos que se conecta.&lt;br /&gt;
*Dando al botón “Test or discover settings” se nos muestran todos los calendarios del servidor y elegimos el que queramos; en “elementos de la carpeta” diremos “elementos de calendario”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Calendario.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
== Uso de reloj hardware en nodos de procesamiento ==&lt;br /&gt;
&lt;br /&gt;
=== En nodo de procesamiento ACD ===&lt;br /&gt;
En un nodo de procesamiento ACD es obligatorio instalar dahdi y una tarjeta de primario para emplear reloj hardware, ya que el reloj software que va en el asterisk 1.4 es defectuoso.&lt;br /&gt;
Para configurarlo basta con instalar la tarjeta en el servidor, instalar dahdi y posteriormente ejecutar el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
 dahdi_cfg&lt;br /&gt;
&lt;br /&gt;
Este comando generaŕa el fichero /etc/dahdi/system.conf&lt;br /&gt;
&lt;br /&gt;
Para comprobar que el comando se ha ejecutado satisfactoriamente lo abriremos y tendrá que tener un formato semejante al siguiente ejemplo:&lt;br /&gt;
&lt;br /&gt;
 # Autogenerated by /usr/sbin/dahdi_genconf on Tue Oct 22 17:42:59 2013&lt;br /&gt;
 # If you edit this file and execute /usr/sbin/dahdi_genconf again,&lt;br /&gt;
 # your manual changes will be LOST.&lt;br /&gt;
 # Dahdi Configuration File&lt;br /&gt;
 #&lt;br /&gt;
 # This file is parsed by the Dahdi Configurator, dahdi_cfg&lt;br /&gt;
 #&lt;br /&gt;
 # Span 1: WCT1/0 &amp;quot;Digium Wildcard TE110P T1/E1 Card 0&amp;quot; HDB3/CCS/CRC4&lt;br /&gt;
 span=1,1,0,ccs,hdb3,crc4&lt;br /&gt;
 # termtype: te&lt;br /&gt;
 bchan=1-15,17-31&lt;br /&gt;
 dchan=16&lt;br /&gt;
 echocanceller=oslec,1-15,17-31&lt;br /&gt;
 # Global data&lt;br /&gt;
 loadzone        = es&lt;br /&gt;
 defaultzone     = es&lt;br /&gt;
&lt;br /&gt;
=== En nodo de procesamiento de corporativa ===&lt;br /&gt;
En un nodo de procesamiento de corporativa no obligatorio instalar dahdi y una tarjeta de primario para emplear reloj hardware, ya que el no se han detectado errores en el reloj por software. Sin embargo si instalamos dahdi y una tarjeta de primario para emplear reloj hardware, el sistema funcionará mejor.&lt;br /&gt;
Para configurarlo basta con instalar la tarjeta en el servidor, instalar dahdi y posteriormente ejecutar el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
 dahdi_cfg&lt;br /&gt;
&lt;br /&gt;
Este comando generaŕa el fichero /etc/dahdi/system.conf&lt;br /&gt;
&lt;br /&gt;
Para comprobar que el comando se ha ejecutado satisfactoriamente lo abriremos y tendrá que tener un formato semejante al siguiente ejemplo:&lt;br /&gt;
&lt;br /&gt;
 # Autogenerated by /usr/sbin/dahdi_genconf on Tue Oct 22 17:42:59 2013&lt;br /&gt;
 # If you edit this file and execute /usr/sbin/dahdi_genconf again,&lt;br /&gt;
 # your manual changes will be LOST.&lt;br /&gt;
 # Dahdi Configuration File&lt;br /&gt;
 #&lt;br /&gt;
 # This file is parsed by the Dahdi Configurator, dahdi_cfg&lt;br /&gt;
 #&lt;br /&gt;
 # Span 1: WCT1/0 &amp;quot;Digium Wildcard TE110P T1/E1 Card 0&amp;quot; HDB3/CCS/CRC4&lt;br /&gt;
 span=1,1,0,ccs,hdb3,crc4&lt;br /&gt;
 # termtype: te&lt;br /&gt;
 bchan=1-15,17-31&lt;br /&gt;
 dchan=16&lt;br /&gt;
 echocanceller=oslec,1-15,17-31&lt;br /&gt;
 # Global data&lt;br /&gt;
 loadzone        = es&lt;br /&gt;
 defaultzone     = es&lt;br /&gt;
&lt;br /&gt;
== Aprovisionamiento terminales Cisco ==&lt;br /&gt;
=== Configurar protocolo SIP TCP o UDP en terminal Cisco ===&lt;br /&gt;
&lt;br /&gt;
Configuración de terminal Cisco para para funcionar bajo TCP o UDP:&lt;br /&gt;
Modificar parámetro&lt;br /&gt;
 &amp;lt;transportLayerProtocol&amp;gt;X&amp;lt;/transportLayerProtocol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde X es:&lt;br /&gt;
    1: TCP&lt;br /&gt;
    2: UDP&lt;br /&gt;
    4: Valor por defecto del firmware (al menos en la última versión equivale a TCP)&lt;br /&gt;
&lt;br /&gt;
=== Habilitar/Deshabilitar llamada en espera en terminales Cisco ===&lt;br /&gt;
&lt;br /&gt;
En el fichero de aprovisionamiento del terminal añadiremos la siguiente linea&lt;br /&gt;
 &amp;lt;callWaiting&amp;gt;X&amp;lt;/callWaiting&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde X es:&lt;br /&gt;
   0=off but can be changed through the settings menu.&lt;br /&gt;
   1=on but can be changed through the settings menu.&lt;br /&gt;
   2=off and locked so it can't be changed through the settings menu.&lt;br /&gt;
   3=on and locked so it can't be changed through the settings menu.&lt;br /&gt;
&lt;br /&gt;
== Como configurar servicio DHCP en Ubuntu Linux ==&lt;br /&gt;
=== ¿Que es un servicio DHCP? ===&lt;br /&gt;
Un servidor Dynamic Host Configuration Protocol (DHCP) asigna dinámicamente las direcciones IP y otras configuraciones de red a otros terminales que están conectados a la red.&lt;br /&gt;
&lt;br /&gt;
=== Instalar un servicio DHCP ===&lt;br /&gt;
Para instalar el servidor de asignacion automatica de direccion IP ejecutamos el comando:&lt;br /&gt;
 sudo apt-get install isc-dhcp-server&lt;br /&gt;
&lt;br /&gt;
=== Configurando el servicio DHCP ===&lt;br /&gt;
Editamos el archivo /etc/dhcp/dhcpd.conf creando primero un backup del mismo:&lt;br /&gt;
 mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.original&lt;br /&gt;
 nano /etc/dhcp/dhcpd.conf&lt;br /&gt;
&lt;br /&gt;
El archivo debe quedar de una forma muy similar a esta:&lt;br /&gt;
 authoritative&lt;br /&gt;
 subnet  10.254.239.0 netmask 255.255.255.254&lt;br /&gt;
 {&lt;br /&gt;
 range dynamic-bootp  10.254.239.40 10.254.239.60;&lt;br /&gt;
 option domain-name-servers ns1.example.org, ns2.example.org;&lt;br /&gt;
 option domain-name &amp;quot;example.org&amp;quot;;&lt;br /&gt;
 option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org ;&lt;br /&gt;
 option broadcast-address 10.254.239.255;&lt;br /&gt;
 default-lease-time 3600;&lt;br /&gt;
 max-lease-time 7200;&lt;br /&gt;
 option option-150 10.254.239.25&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Donde los campos:&lt;br /&gt;
*subnet: Direccion de red&lt;br /&gt;
*netmask: Máscara de red&lt;br /&gt;
*range dynamic-bootp: Rango de IPs que va a proporcionar el DHCP&lt;br /&gt;
*option domain-name-servers: Direcciones IPs de los DNS&lt;br /&gt;
*option domain-name: Nombre de dominio&lt;br /&gt;
*option routers:IPs de las puertas de enlace&lt;br /&gt;
*option broadcast-address: Dirección de broadcast&lt;br /&gt;
*default-lease-time: Tiempo de concesión por defecto&lt;br /&gt;
*max-lease-time: Valor máximo del tiempo de concesión&lt;br /&gt;
*option option-150: IPs de los servidores TFTPs que tiene la red&lt;br /&gt;
&lt;br /&gt;
===  Reiniciamos el servicio ===&lt;br /&gt;
 service isc-dhcp-server restart&lt;br /&gt;
&lt;br /&gt;
=== Direcciones IP estáticas basadas en la MAC ===&lt;br /&gt;
Pueden conocerse las MAC de las máquinas conectadas a la red ejecutando el comando arp desde la terminal.&lt;br /&gt;
&lt;br /&gt;
 host ejemplo {&lt;br /&gt;
        hardware ethernet 00:0B:82:19:A8:04;&lt;br /&gt;
        option option-150 10.254.239.0;&lt;br /&gt;
 #      fixed-address 10.254.239.52;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Protocolo Skinny en VIVAit Call mediante uso de Chan-SCCP ==&lt;br /&gt;
=== Instalación de chan_sccp ===&lt;br /&gt;
*Copiar el fichero chan-sccp-4.2.1.1.tar.gz en el directorio donde estén los fuentes de Asterisk (normalmente /usr/src/MDtel)&lt;br /&gt;
*Descomprimir&lt;br /&gt;
*Entrar al directorio chan-sccp-4.2.1.1&lt;br /&gt;
*Ejecutar: ./configure --with-asterisk=../DIRECTORIO_ASTERISK --enable-conference. Donde DIRECTORIO_ASTERISK es el nombre del directorio donde están los fuentes de asterisk.&lt;br /&gt;
*Tras el ejecutar el configure (si todo va bien al final se verá un resumen con el S.O, arquitectura, etc), ejecutar make y make install&lt;br /&gt;
*El nuevo módulo chan_sccp.so se generará dentro del DIRECTORIO_ASTERISK en lib/asterisk/modules/ y se deberá copiar en /usr/lib/asterisk/modules/&lt;br /&gt;
*Copiar el fichero sccp.conf a /etc/asterisk&lt;br /&gt;
*Entra a Asterisk y ejecutar: module load chan_sccp.so&lt;br /&gt;
*Si se ha cargado correctamente, desde dentro de Asterisk, si se teclea sccp show version deberá devolver: &amp;quot;Skinny Client Control Protocol (SCCP). Release: 4.3.0 4.3.0 - unknown (built by 'root' on '2016-06-01 10:42:32 UTC')&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Crear extensiones ===&lt;br /&gt;
*En el portal crear una nueva clase de dispositivo (Vivait-Call/Dispositivos/Clases de dispositivos), donde la clase sea extensión la subclase H323 (todavía no existe la subclase SCCP) y el formato SCCP/${DEST}&lt;br /&gt;
*Crear la nueva extensión, pero el dispositivo debe ser el creado en el campo anterior.&lt;br /&gt;
*Las extensiones creadas habrá que añadirlas al fichero sccp.conf así como los teléfonos que las usarán. En el fichero sccp.conf incluido hay ejemplos.&lt;br /&gt;
&lt;br /&gt;
=== Aprovisionamiento ===&lt;br /&gt;
Los terminales se aprovisionan de la misma manera que los SIP, exceptuando que las plantillas XML no tiene referencias a SIP. Se incluye un xml genérico con todas las opciones.&lt;br /&gt;
Dentro del directorio chan-sccp-4.2.1.1 hay un directorio conf con todos los archivos de configuración necesarios. Las versiones annotated contienen todas las opciones posibles comentadas.&lt;br /&gt;
&lt;br /&gt;
== Instalación y configuración Postfix en RedHat7 ==&lt;br /&gt;
&lt;br /&gt;
'''Postfix''' es un ''servidor de correo'' de software libre/código abierto, un programa informático para el enrutamiento y envío de correo electrónico.&lt;br /&gt;
&lt;br /&gt;
=== Instalación ===&lt;br /&gt;
 yum install postfix&lt;br /&gt;
&lt;br /&gt;
=== Configuración ===&lt;br /&gt;
Sobre la configuración de postfix por defecto (recién instalado):&lt;br /&gt;
Editar el fichero /etc/postfix/main.cf&lt;br /&gt;
 inet_protocols = ipv4&lt;br /&gt;
 relayhost = smtp.renfe.es&lt;br /&gt;
Revisar la configuración:&lt;br /&gt;
 postfix check&lt;br /&gt;
Configurar postfix como servicio (sólo en redhat y similares)&lt;br /&gt;
 chkconfig postfix on&lt;br /&gt;
Iniciar postfix:&lt;br /&gt;
 service postfix start&lt;br /&gt;
Instalar mailx para disponer de los comandos mail y sendmail:&lt;br /&gt;
 yum install mailx&lt;br /&gt;
Probar configuración:&lt;br /&gt;
 echo &amp;quot;Prueba de correo&amp;quot; | mail -vs &amp;quot;Prueba&amp;quot; correo@destino.soy&lt;br /&gt;
&lt;br /&gt;
=== Como crear un TRIGGER en Zabbix ===&lt;br /&gt;
&lt;br /&gt;
'''1.''' Hay '''dos posibilidades''' dependiendo si el trigger es para un solo host o es para varios, los cuales tienen en común un template:&lt;br /&gt;
&lt;br /&gt;
:# Si es para ''un host'': Ir a '''Configuración/Hosts'''&lt;br /&gt;
:# Si es para ''un template'': Ir a '''Configuración/Templates'''&lt;br /&gt;
&lt;br /&gt;
'''2.''' En la fila correspondiente al host/template al que queramos añadirle el trigger, pulsar sobre la '''columna triggers.'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''3.''' En la ventana de triggers, pulsar sobre el botón '''Create trigger''', situado en la esquina superior derecha.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''4.''' Aparecerá la ventana de creación de triggers, que tiene los siguientes campos:&lt;br /&gt;
:1. '''Name:''' Nombre del trigger, que deberá ser lo ''suficientemente descriptivo''. Aparecerá cuando se&lt;br /&gt;
active, en la ventana principal de Zabbix así como en los correos de aviso.&lt;br /&gt;
:2. '''Expression:''' Define la fórmula cuyo resultado activará el trigger. Hay que pulsar el botón '''Add'''. Se mostrará una &lt;br /&gt;
nueva ventana donde habrá que elegir el item (medida) sobre el que se basará el trigger (evidentemente la medida deberá &lt;br /&gt;
existir previamente) y la función necesaria para el cálculo. Para una descripción de las disponibles dirigirse a &lt;br /&gt;
https://www.zabbix.com/documentation/2.2/manual/appendix/triggers/functions.&amp;lt;br/&amp;gt;&lt;br /&gt;
Tras rellenar los campos anteriores y dar a la función los valores que necesite pulsar el botón '''Insert.'''&lt;br /&gt;
:3. '''Expression constructor:''' Permite crear expresiones complejas, uniendo varias.&lt;br /&gt;
:4. '''Description:''' Una explicación del trigger&lt;br /&gt;
:5. '''Severity:''' Criticidad el trigger&lt;br /&gt;
:6. Para una descripción del resto de campos visitar la página: https://www.zabbix.com/documentation/2.2/manual/config/triggers/trigger&lt;br /&gt;
'''5.''' Tras rellenar los campos, pulsar el botón '''Save'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''6.''' Si el trigger se ha añadido en un template, aparecerá en todos los hosts que tienen el template configurado.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''7.''' '''El trigger por si solo no envía ningún aviso''', solo se activa si se cumple la expresión definida.&lt;br /&gt;
Para enviar un aviso (normalmente un correo electrónico) cuando se active el trigger, será necesario definir una acción (Configuración/Actions).&lt;br /&gt;
&lt;br /&gt;
 '''NOTA.-''' Para consultar cualquier cuestión relativa a Zabbix, se encuentra a su disposición el manual: &amp;lt;br/&amp;gt;&lt;br /&gt;
 https://www.zabbix.com/documentation/2.2/manual&lt;br /&gt;
&lt;br /&gt;
== Como mostrar callername queues FOP2 ==&lt;br /&gt;
&lt;br /&gt;
Es necesario añadir el siguiente código al contexto de entrada:&lt;br /&gt;
&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Connect connid localhost usuario clave bd)&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Query resultid ${connid} SELECT\ firstname\,lastname\ from\ fop2\ where\ phone1=${CALLERID(num)}\ OR\ phone2=${CALLERID(num)})&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Fetch fetchid ${resultid} nombre apellidos)&lt;br /&gt;
 exten =&amp;gt; _X.,n,GotoIf($[${fetchid} = 1]?:noExiste)&lt;br /&gt;
 exten =&amp;gt; _X.,n,Set(CALLERID(name)=${nombre}${apellidos})&lt;br /&gt;
 exten =&amp;gt; _X.,n(noExiste),Continuar&lt;br /&gt;
&lt;br /&gt;
En la primera línea cambiar según lo necesario:&lt;br /&gt;
&lt;br /&gt;
*localhost: Dirección IP del servidor de MySQL donde está la BBDD de FOP2&lt;br /&gt;
*usuario: Usuario con permisos de acceso a la bbdd de FOP2&lt;br /&gt;
*clave: Clave del usuario&lt;br /&gt;
*bd: Nombre de la BBDD&lt;br /&gt;
&lt;br /&gt;
== Como ver los directorios de un NAS a montar con NFS ==&lt;br /&gt;
&lt;br /&gt;
Con el siguiente comando vemos los diferentes volúmenes de un NAS:&lt;br /&gt;
&lt;br /&gt;
 showmount -e IP_NAS&lt;br /&gt;
&lt;br /&gt;
Ejemplo de salida:&lt;br /&gt;
&lt;br /&gt;
 Export list for 192.168.10.10:&lt;br /&gt;
 /Backup/backup       *&lt;br /&gt;
 /DISCOS_1/VOL1_AUDIO *&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Instalación de ActivaSTP con VIVAit Call 3 y marcación desde Outlook ==&lt;br /&gt;
&lt;br /&gt;
Instalamos ActivaSTP desde:&lt;br /&gt;
 &lt;br /&gt;
 (http://activa.sourceforge.net/)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- *SIPTAPI, según la pagina Web, su ultima versión publicada es del 2014 con versión 0.2.17 (http://activa.sourceforge.net/)&lt;br /&gt;
&lt;br /&gt;
Hemos probado con http://www.xtelsio.com/en/products/ast_tsp/tapi_for_asterisk.htm.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La configuración necesaria se muestra en la siguiente imagen:&lt;br /&gt;
&lt;br /&gt;
[[File:Ventana ActivaTSP.jpg]]&lt;br /&gt;
&lt;br /&gt;
 El usuario del manager debe tener permisos originate para poder realizar llamadas.&lt;br /&gt;
&lt;br /&gt;
Se han realizado pruebas con Outlook 2013.&lt;br /&gt;
&lt;br /&gt;
Se ha comprobado la correcta realización de pruebas utilizando ActivaSTP, realizadon llamadas desde la pestaña &amp;quot;personas&amp;quot; con la vista en modo tarjeta de Pesentación, tarjeta, teléfono o lista.&lt;br /&gt;
&lt;br /&gt;
Outlook 2013 no da la opción de llamar si la vista está en modo personas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Como volver a procesar grabaciones con error ==&lt;br /&gt;
&lt;br /&gt;
Las grabaciones con error son aquellas que tienen el valor E_GRABACION=120 en la tabla DAT_GRABACIONES.&lt;br /&gt;
Las grabaciones con error se produce normalmente a perdida de conexión entre el nodo servidor de grabaciones y el resto&lt;br /&gt;
Para reprocesar la grabación hay que modificar el campo E_GRABACION de la tabla DAT_GRABACIONES y ponerlo con valor 20 para que así el recordCentral la vuelva a procesar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Problemas de conmutación en cluster ==&lt;br /&gt;
El problema detectado fue que en la conmutacion de maquinas en el cluster cuando el control lo tiene la maquina 2 no funciona el servicio phoneprov-tftp.&lt;br /&gt;
&lt;br /&gt;
Hay que hacer las siguientes comprobaciones:&lt;br /&gt;
&lt;br /&gt;
 Que el directorio /var/lib/phoneprov-tftp esté en la partición /HDcluster&lt;br /&gt;
 Que fichero /etc/MDtel/phoneprov-tftp esté puesta como IP de la máquina la IP flotante del cluster (campo $dbHost)&lt;br /&gt;
 Que el servicio phoneprov-tftp del directorio /usr/local/sbin/phoneprov-tftp.pl tenga permisos de ejecución 755&lt;br /&gt;
 Que exista el fichero /etc/init/phoneprov-tftp.conf&lt;br /&gt;
&lt;br /&gt;
Para más información ver los log del phoneprov en /var/log/phoneprov-tftp.log&lt;br /&gt;
&lt;br /&gt;
El problema era que no se encontraba instalado el paquete phoneprov-tftp, hay que instalarlo manualmente. Instalar el paquete libnet-tftpd-perl.--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Howto%27s&amp;diff=5953</id>
		<title>Howto's</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Howto%27s&amp;diff=5953"/>
		<updated>2017-06-14T06:49:53Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* Como volver a procesar grabaciones con error */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!! VIVAit Call&lt;br /&gt;
VIVAit Suite&lt;br /&gt;
&lt;br /&gt;
VIVAit Fax&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Como parar asterisk ==&lt;br /&gt;
En situaciones límite en el que es necesario parar el asterisk y volver a arrancarlo hay que realizar los siguientes pasos:&lt;br /&gt;
&lt;br /&gt;
 Entrar en la consola de asterisk e introducir el comando core stop now&lt;br /&gt;
&lt;br /&gt;
 Si esto no funciona, tendremos que matar el proceso a mano. Esto es, primero el safe asterisk y luego el asterisk mediante el comando &lt;br /&gt;
 kill -9 nºPID&lt;br /&gt;
 &lt;br /&gt;
 Tras estos pasos, volveremos a arrancar el servicio asterisk mediante /etc/init.d/asterisk start&lt;br /&gt;
&lt;br /&gt;
== Como configurar la megafonía ==&lt;br /&gt;
&lt;br /&gt;
El servicio de megafonía se basa en el protocolo multicast.&lt;br /&gt;
&lt;br /&gt;
Para configurar la megafonía tenemos que activar en los teléfonos que para que estén &amp;quot;escuchando&amp;quot; en una dirección multicast y tener un emisor en esa dirección multicast.&lt;br /&gt;
&lt;br /&gt;
Los teléfonos suelen tener en su configuración un apartado para configurar el multicast. Por ejemplo en los yealink está en la pestaña directory sección multicast IP.&lt;br /&gt;
&lt;br /&gt;
En los teléfonos se puede configurar manualmente o incluirlo en las plantillas de aprovisionamiento.&lt;br /&gt;
&lt;br /&gt;
El asterisk tiene un canal para hacer multicast. Este canal es MulticastRTP.&lt;br /&gt;
&lt;br /&gt;
Para esto podemos crear un VDN que contenga la siguiente línea. (en el ejemplo la dirección multicast es 239.0.126.1 y el puerto es el 10001).&lt;br /&gt;
&lt;br /&gt;
 [Cen_VDN_90000]&lt;br /&gt;
 exten =&amp;gt; _X.,1,NoOp(MDVDN_90000*****EXTEN=${EXTEN}**CID=${CALLERID(NUM)}**UCID=${UCID}*)&lt;br /&gt;
  same =&amp;gt;     n,Answer&lt;br /&gt;
  same =&amp;gt;     n,Dial(MulticastRTP/basic/239.0.126.1:10001)&lt;br /&gt;
 include =&amp;gt; Cen_finLlamada&lt;br /&gt;
&lt;br /&gt;
== Como configurar el candado ==&lt;br /&gt;
El candado permite prohibir temporalmente la posibilidad de realizar llamadas hacia fuera. Sí se pueden seguir haciendo llamadas a extensiones fijas de la plataforma, es decir, llamadas sin coste.&lt;br /&gt;
&lt;br /&gt;
Para configurar dicha funcionalidad basta con crear extensiones con la categoría mas restrictiva posible y habilitar la movilidad, con lo que la extensión solo tendrá &amp;quot;permisos&amp;quot; para realizar llamadas internas.&lt;br /&gt;
&lt;br /&gt;
Para permitir llamadas externas solo hay que &amp;quot;mover&amp;quot; a un usuario con categoría suficiente a la extensión deseada.&lt;br /&gt;
== Como crear un grupo de captura y que se vea en cada teléfono el número que llama ==&lt;br /&gt;
&lt;br /&gt;
'''ATENCIÓN: SE CREAN CONFIGURACIONES NO REFLEJADAS EN PORTAL DE ADMINISTRACIÓN'''&lt;br /&gt;
&lt;br /&gt;
Para la simulación de grupos de captura y conseguir que todos los terminales vean el ANI del llamante:&lt;br /&gt;
&lt;br /&gt;
- Hacen falta teléfonos con dos líneas&lt;br /&gt;
&lt;br /&gt;
- Cada teléfono del grupo tiene en la línea 1 su extensión habitual (por ejemplo 40000)&lt;br /&gt;
&lt;br /&gt;
- Además, en el fichero &amp;quot;sip_Estatico.conf&amp;quot;, creamos una segunda extensión para cada teléfono, que le ocupará la segunda línea (por ejemplo 42000)&lt;br /&gt;
&lt;br /&gt;
- En esta segunda linea ponemos que cuando se llame tenga otro tono de llamada (un beep o nada...) que se asemeje en funcionamiento al de un mensaje de llamada en otra extension de mi grupo de captura&lt;br /&gt;
&lt;br /&gt;
- Se ha creado una variable global por cada teléfono en el fichero de variables &amp;quot;ext_MDtel_Particular.conf&amp;quot; de nombre EXTxxxxx (por ejemplo EXT40000); esa variable contiene las otras extensiones virtuales del grupo&lt;br /&gt;
por ejemplo EXT40000=&amp;gt;SIP/42001&amp;amp;SIP/42005&lt;br /&gt;
&lt;br /&gt;
- Hemos creado en el dialplan programación para que cuando exista esa variable global se añada a la marcación el contenido&lt;br /&gt;
&lt;br /&gt;
== Como crear supletorios ==&lt;br /&gt;
&lt;br /&gt;
'''ATENCIÓN: SE CREAN CONFIGURACIONES NO REFLEJADAS EN PORTAL DE ADMINISTRACIÓN'''&lt;br /&gt;
&lt;br /&gt;
Igual que el caso anterior pero en la variable ponemos números reales. Debido a un bug en el enrutador, que no devuelve la variable R_PARA, en el fichero ext_MARCAR_Extension.conf hay que sustituir la siguiente linea:&lt;br /&gt;
 &lt;br /&gt;
 ;same =&amp;gt;                   n,ExecIf($[&amp;quot;${EXT${R_PARA}}&amp;quot;=&amp;quot;&amp;quot;]?NoOp:Set(ENR_CADMARCAR=${ENR_CADMARCAR}&amp;amp;${EXT${R_PARA}}))&lt;br /&gt;
Por esta otra:&lt;br /&gt;
  same =&amp;gt;                   n,ExecIf($[&amp;quot;${EXT${R_DEST_${ENR_RUTA_CAD}}}&amp;quot;=&amp;quot;&amp;quot;]?NoOp:Set(ENR_CADMARCAR=${ENR_CADMARCAR}&amp;amp;${EXT${R_DEST_${ENR_RUTA_CAD}}}))&lt;br /&gt;
ATENCIÓN !!! en las llamadas salientes cada uno presenta su número&lt;br /&gt;
&lt;br /&gt;
Para emplear números externos en los supletorios hay que poner, al crear la variable que hemos explicado en el apartado anterior en el ext_MDtel_Particular.conf: &lt;br /&gt;
&lt;br /&gt;
 EXT335=&amp;gt;SIP/0999999999@Trunk_Movil ;En este caso suena en la ext 335 y en el móvil 999999999&lt;br /&gt;
&lt;br /&gt;
== Generación de llamada automática ==&lt;br /&gt;
&lt;br /&gt;
Para activar la funcionalidad es necesario lo siguiente: &lt;br /&gt;
&lt;br /&gt;
* Definir una variable ID_LISTA_LLAMAME con el ID de la lista que se va a usar para generar la llamada. Cuando se cree la lista hay que asegurarse que el campo &amp;quot;Nº segundos límite&amp;quot; tiene un valor lo suficientemente amplio para evitar que la llamada caduque antes de ejecutarse.&lt;br /&gt;
&lt;br /&gt;
* Establecer un timeout para la cola (en el Gosub Cen_Sub_GrupoACD se indica justo después de ${COLA})&lt;br /&gt;
&lt;br /&gt;
* Llamar a la función de MySQL ACD_FUNC_LLAMAME_CREAR a través de MDintz&lt;br /&gt;
&lt;br /&gt;
* En la función se usan los siguientes elementos variables:&lt;br /&gt;
&lt;br /&gt;
        ${ID_LISTA_LLAMAME}: Definida antes clienteTOCola: &lt;br /&gt;
        Nombre del cliente. Al no tener ningún nombre, se usa un denominador genérico&lt;br /&gt;
        ${CALLERID}: Número llamante, donde se dirigirá la llamada.&lt;br /&gt;
&lt;br /&gt;
Ejemplo:&lt;br /&gt;
&lt;br /&gt;
 [Cen_VDN_99001]&lt;br /&gt;
 ;----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 ;----------------------- VDN 99001 ------------------------------------------------------------&lt;br /&gt;
 ;----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 exten =&amp;gt; _X.,1,NoOp(MDENTGW_99001*****EXTEN=${EXTEN}**CID=${CALLERID(NUM)}**UCID=${UCID}*)&lt;br /&gt;
  same =&amp;gt;     n,Set(__COLA=89001)&lt;br /&gt;
  same =&amp;gt;     n,Set(ctiDiriTrato=0)&lt;br /&gt;
  same =&amp;gt;     n,Set(ctiDiriInterface=)&lt;br /&gt;
  same =&amp;gt;     n,Set(ID_LISTA_LLAMAME=2)&lt;br /&gt;
  same =&amp;gt;     n(cola),Gosub(Cen_Sub_GrupoACD,${EXTEN},1(${COLA},10,,Si,))&lt;br /&gt;
  same =&amp;gt;     n,GotoIf($[&amp;quot;${QUEUESTATUS}&amp;quot;!=&amp;quot;TIMEOUT&amp;quot;]?colgar)&lt;br /&gt;
  same =&amp;gt;     n,MDintz(nimitz|bd|sqlDato|select ACD_FUNC_LLAMAME_CREAR(CURRENT_TIMESTAMP\,${ID_LISTA_LLAMAME}\,&amp;quot;&amp;quot;\,&amp;quot;clienteTOCola&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,1\,&amp;quot;&amp;quot;\,&amp;quot;${CALLERID(NUM)}&amp;quot;\,1\,3\,1\,&amp;quot;&amp;quot;\,0\,0\,0\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;))&lt;br /&gt;
  same =&amp;gt;     n,GotoIf($[&amp;quot;${MDintzRes}&amp;quot;=&amp;quot;OK&amp;quot;]?colgar)&lt;br /&gt;
  same =&amp;gt;     n,NoOp(ACD_FUNC_LLAMAME_CREAR ${MDintzRes})&lt;br /&gt;
  same =&amp;gt;     n(colgar),Hangup&lt;br /&gt;
&lt;br /&gt;
== Como &amp;quot;dar paso&amp;quot; a través de un enlace exterior si hay una llamada para una extensión creada en el sistema pero no registrada ==&lt;br /&gt;
&lt;br /&gt;
Este procedimiento es de utilidad en procesos de migración, en los que recibimos las llamadas de la RTC, nos las quedamos si la extensión ya está registrada en VIVAit y la mandamos hacia la plataforma a migrar si aún sigue migrada ahí&lt;br /&gt;
&lt;br /&gt;
El procedimiento es:&lt;br /&gt;
* Activar desvío por no contesta en la extensión (portal de administración - VIVAit Call - Dispositivos - Extensiones - campo &amp;quot;Desvio no contesta&amp;quot;, indicando como destino un prefijo (por ejemplo &amp;quot;99&amp;quot;) seguido de la extensión destino&lt;br /&gt;
&lt;br /&gt;
* Creamos una preruta en vivait-call - rutas -prerutas con origen &amp;quot;99&amp;quot;, le quitamos el prefijo en campo &amp;quot;Destino saliente 1&amp;quot; (valor -2) e indicamos en campo &amp;quot;Tipo destino sal. 1&amp;quot; como &amp;quot;Ruta externa&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Debera existir una ruta externa para esa numeración&lt;br /&gt;
&lt;br /&gt;
== Comprobación de versiones de elementos de la plataforma ==&lt;br /&gt;
&lt;br /&gt;
'''Aplicaciones'''&lt;br /&gt;
:* Botón derecho del ratón, Acerca De&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Portales'''&lt;br /&gt;
:* En el Vivait-Call, en la pantalla de inicio de sesión pone el número de versión del portal.&lt;br /&gt;
:* Tanto en el Monitor como en el Tracker no se puede saber.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Demonios'''&lt;br /&gt;
:* Mediante el comando nc localhost &amp;lt;Puerto demonio&amp;gt;. Ejemplo:&lt;br /&gt;
::nc localhost 1120&lt;br /&gt;
::motorSal sis ver='03.02.00' inic='20150427 123457' alarmas=0 ultAlar='00000000000000'&lt;br /&gt;
::motorSal gmp msj=253/256 buf=256/256 tarea=99/102&lt;br /&gt;
::motorSal tmp uptime=12624 (0d 3h 30m 24s)&lt;br /&gt;
::motorSal mtr mys=1 ocup=0% planif=13(0) intento=11(0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::Ejemplos puertos demonios:&lt;br /&gt;
:::*1111: vivait-cti&lt;br /&gt;
:::*1112: myAcdSuperv&lt;br /&gt;
:::*1113: recordNodo&lt;br /&gt;
:::*1114: recordCentral&lt;br /&gt;
:::*1115: intz-nimitz&lt;br /&gt;
:::*1120: motorSal&lt;br /&gt;
:::*1123: phoneprov-tftp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Base de datos'''&lt;br /&gt;
:* No se puede saber la versión a no ser que se comparen esquemáticos con los subidos en el redmine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:administrador]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:VIVAit Suite]]&lt;br /&gt;
[[Category:VIVAit Fax]]&lt;br /&gt;
&lt;br /&gt;
== Añadir Auto-Answer a la cabecera SIP ==&lt;br /&gt;
&lt;br /&gt;
Si queremos que un teléfono tenga autoanswer:&lt;br /&gt;
* En el peer poner: headeraa=Call-Info: answer-after=0, esto tiene que ir en la plantilla de la extensión o como campo en la extensión. Dependiendo del terminal que utilicemos el valor de este campo variará:&lt;br /&gt;
&lt;br /&gt;
    Aastra: Alert-Info: info=alert-autoanswer&lt;br /&gt;
    Grandstream: Call-Info: answer-after=0&lt;br /&gt;
    Linksys: Call-Info:\;Answer-After=0&lt;br /&gt;
    Polycom: Alert-Info: Ring Answer&lt;br /&gt;
    Snom: Call-Info: answer-after=0&lt;br /&gt;
    Snom (nuevo firmware): Call-Info: &amp;lt;sip:IP&amp;gt;\;answer-after=0&lt;br /&gt;
    Yealink: Call-Info: answer-after=0&lt;br /&gt;
&lt;br /&gt;
* Luego en el diaplan añadir lo siguiente: exten =&amp;gt; _[*#%0-9a-zA-Z].,n,set(__AutoAnswer=AA) (Esto tendremos que ver como ponerlo de manera automática). De manera provisional si queremos que sea para llamadas salientes pondremos esto en el ext_n_marcador.conf. Si queremos que sea llamadas entrantes lo pondremos en ext_n_MARCAR.conf&lt;br /&gt;
&lt;br /&gt;
== Configuración de los portales web en HTTPS ==&lt;br /&gt;
&lt;br /&gt;
Desde /usr/lib/jvm/default-java/bin/ ejecutamos:&lt;br /&gt;
&lt;br /&gt;
keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/share/tomcat7/.keystore&lt;br /&gt;
&lt;br /&gt;
Escriba la contraseña del almacén de claves: (t0mc4t)&lt;br /&gt;
 Volver a escribir la contraseña nueva: (t0mc4t)&lt;br /&gt;
 *Personalizar para el cliente&lt;br /&gt;
 ¿Cuáles son su nombre y su apellido?&lt;br /&gt;
 [Unknown]: VIVAit Suite&lt;br /&gt;
 ¿Cuál es el nombre de su unidad de organización?&lt;br /&gt;
 [Unknown]: Desarrollo&lt;br /&gt;
 ¿Cuál es el nombre de su organización?&lt;br /&gt;
 [Unknown]: MDtel&lt;br /&gt;
 ¿Cuál es el nombre de su ciudad o localidad?&lt;br /&gt;
 [Unknown]: Madrid&lt;br /&gt;
 ¿Cuál es el nombre de su estado o provincia?&lt;br /&gt;
 [Unknown]: Madrid&lt;br /&gt;
 ¿Cuál es el código de país de dos letras de la unidad?&lt;br /&gt;
 [Unknown]: es&lt;br /&gt;
 ¿Es correcto CN=VIVAit Suite, OU=Desarrollo, O=MDtel, L=es, ST=Madrid,&lt;br /&gt;
 C=Unknown?&lt;br /&gt;
 [no]: si&lt;br /&gt;
 Escriba la contraseña clave para &amp;lt;tomcat&amp;gt;&lt;br /&gt;
 (INTRO si es la misma contraseña que la del almacén de claves)&lt;br /&gt;
&lt;br /&gt;
nano /var/lib/tomcat7/conf/server.xml&lt;br /&gt;
&lt;br /&gt;
Descomentar la línea:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; protocol=&amp;quot;HTTP/1.1&amp;quot; SSLEnabled=&amp;quot;true&amp;quot; &lt;br /&gt;
&lt;br /&gt;
 maxThreads=&amp;quot;150&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Añadir después de sslProtocol=&amp;quot;TLS&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 keystorePass=&amp;quot;t0mc4t&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Crear un motivo desconexión para el Supervisor en '''''VIVA'''''it Suite==&lt;br /&gt;
&lt;br /&gt;
Para crear motivos de desconexión adicionales a los que ya ofrece la aplicación tendremos que añadir una nueva entrada en la BD. El comando que emplearíamos seria el siguiente:&lt;br /&gt;
&lt;br /&gt;
INSERT INTO `nimitz`.`COM_ENUMERADOS` (`ID`, `C_NOMBRE`, `C_TEXTO`, `N_POSICION`, `C_OBSERV`) VALUES(1000700, 'TSesAgMotDesc', 'Nombre Motivo de desconexión', 60, ' ');&lt;br /&gt;
&lt;br /&gt;
El ID debe ser mayor o igual a 1000700 y menor a 1000800. El N_POSICION debe ser mayor o igual a 60 y menor que 100.&lt;br /&gt;
&lt;br /&gt;
== Envío de variables CTI al ACD ante un GW con asterisk 13==&lt;br /&gt;
Dado que para un GW con asterisk 13 un nodo ACD es considerado un elemento externo, por defecto, no se envían variables CTI (UCID, ...). En una fututa versión del nodo ACD, ya no se considerará un elemento externo por lo que si se enviarán dichas variables. Para lograrlo en la versión 3.0 de la plataforma Vivait hay que modificar el fichero ext_MARCAR_Externo_Particular.conf del GW. Deberemos poner la siguiente linea.&lt;br /&gt;
&lt;br /&gt;
 same =&amp;gt; n,Macro(escribirDatosCti)&lt;br /&gt;
&lt;br /&gt;
== Script para cambio automático de claves en salas de conferencia estáticas ==&lt;br /&gt;
&lt;br /&gt;
Para cambiar la clave de las salas de conferencias crear un script llamado cambioClaveConfe.sh con el siguiente contenido:&lt;br /&gt;
	&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 CLAVE=$(shuf -i 1111-9999 -n 1)&lt;br /&gt;
 &lt;br /&gt;
 echo $CLAVE&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;update CEN_SALAS_CONFERENCIAS set C_PIN='$CLAVE' WHERE C_NOMBRE='$1'&amp;quot; | mysql -u nimitz -pivivanimitz nimitz&lt;br /&gt;
 &lt;br /&gt;
 FROM=sat@mdtel.es&lt;br /&gt;
 FECHA=`date +&amp;quot;%Y%m%d%H%M%S&amp;quot;`&lt;br /&gt;
 CLIENTE=&amp;lt;PONER EL CLIENTE&amp;gt;&lt;br /&gt;
 TO=&amp;lt;DESTINATARIOS&amp;gt;&lt;br /&gt;
 ASUNTO=&amp;quot;Nueva clave en sala $1&amp;quot;&lt;br /&gt;
 CUERPO=&amp;quot;La nueva clave para la sala $1 es: $CLAVE&amp;quot;&lt;br /&gt;
 /usr/sbin/sendmail -oi -t -v -f $FROM &amp;lt;&amp;lt;EOF&lt;br /&gt;
 From: $FROM&lt;br /&gt;
 To: $TO&lt;br /&gt;
 Bcc: $BCC&lt;br /&gt;
 Subject: $ASUNTO&lt;br /&gt;
 &lt;br /&gt;
 $CUERPO&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
El script cambiará la clave de la sala pasada por parámetro por una aleatoria de 4 dígitos y la enviará por correo a los &amp;lt;DESTINATARIOS&amp;gt; (direcciones de correo electrónico separadas por coma).&lt;br /&gt;
&lt;br /&gt;
Hay que crear una tarea en /etc/crontab añadiendo una linea como la siguiente:&lt;br /&gt;
 30 6	* * 7	root	cambioClaveConfe.sh 6173&lt;br /&gt;
&lt;br /&gt;
Esto ejecutará el script todos los domingos a las 6:30 horas cambiando la clave de la sala 6173. Añadir tantas linéas como salas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Monitorización en Zabbix de un trunk caído ==&lt;br /&gt;
Para monitorizar un o varios trunk por separado y saber el estado de cada uno es necesario lo siguiente: &lt;br /&gt;
&lt;br /&gt;
*Añadir el UserParameter adjunto que contiene el siguiente texto:&lt;br /&gt;
&lt;br /&gt;
 UserParameter=asterisk.trunkEstado[*],sudo /usr/sbin/asterisk -rx 'sip show peers' | grep  --text -i '$1' |  grep OK &amp;gt;/dev/null; if [ $? -eq 0 ]; then echo 1; else echo 0; fi&lt;br /&gt;
&lt;br /&gt;
*Añadir en el portal de zabbix un item por cada trunk. En el campo Key se pondrá &amp;quot;asterisk.trunkEstado[nombre_trunk]&amp;quot;, donde nombre_trunk es el nombre del trunk tal y como se ve en Asterisk.&lt;br /&gt;
[[File:zabbix_item_trunkEstado.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Crear un trigger que avise cuando el último valor sea 0. Por ejemplo:&lt;br /&gt;
 {corp-bdtr:asterisk.trunkEstado[PrePro-ACD].last()}=0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:zabbix_trigger_trunkEstado.png]]&lt;br /&gt;
&lt;br /&gt;
== Agendas en terminales Yealink ==&lt;br /&gt;
En la agenda se mostrará como nombre lo que contenga el campo CEN_AGENDAS.C_NOMBRE_MOSTRAR y como teléfono el indicado en CEN_AGENDAS_TELEFONOS.C_TELEFONO&lt;br /&gt;
Para hacer funcionar la agenda:&lt;br /&gt;
&lt;br /&gt;
*En el archivo de aprovisionamiento correspondiente (Yealink-XXXX-comun.cfg) establecer los siguientes parámetros:&lt;br /&gt;
&lt;br /&gt;
    remote_phonebook.data.1.url = http://&amp;lt;direc IP&amp;gt;/vivait-agenda/yealink/contactData1.xml &lt;br /&gt;
    remote_phonebook.data.1.name = NOMBRE DE LA AGENDA EN EL TELEFONO&lt;br /&gt;
&lt;br /&gt;
*En el archivo /etc/apache2/apache2.conf añadir tras el último Directory:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Directory /var/www/html/vivait-agenda/&amp;gt;&lt;br /&gt;
             AddType application/x-httpd-php .xml&lt;br /&gt;
             Options Indexes FollowSymLinks MultiViews&lt;br /&gt;
             AllowOverride None&lt;br /&gt;
             Order allow,deny&lt;br /&gt;
             allow from all&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Ejecutar el comando:&lt;br /&gt;
&lt;br /&gt;
    /etc/init.d/apache2 reload&lt;br /&gt;
&lt;br /&gt;
== Calendarios ==&lt;br /&gt;
&lt;br /&gt;
=== Enrutamiento inteligente ===&lt;br /&gt;
&lt;br /&gt;
Ante una llamada a un destino, si hay cita de ocupado en el calendario se desvia al número indicado en el campo &amp;quot;location&amp;quot; del calendario o a su buzon de voz si hay valor en dicho campo&lt;br /&gt;
&lt;br /&gt;
 same =&amp;gt; n,Set(CalendarBusy=${CALENDAR_BUSY(GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,Set(id=${CALENDAR_QUERY(GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,NoOP(hay ${CALENDAR_QUERY_RESULT(${id},getnum)} eventos)&lt;br /&gt;
 same =&amp;gt; n,Verbose(3,The state of GoogleCalendar is $&lt;br /&gt;
 {DEVICE_STATE(Calendar:GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,Set(CalendarLocation=${CALENDAR_QUERY_RESULT(GoogleCalendar,location)})&lt;br /&gt;
 same =&amp;gt; n,GotoIf($[&amp;quot;${CalendarBusy}&amp;quot;==&amp;quot;1&amp;quot;]?:conCategoria)&lt;br /&gt;
 same =&amp;gt; n,GotoIf($[&amp;quot;${CalendarLocation}&amp;quot;==&amp;quot;&amp;quot;]?buzon)&lt;br /&gt;
 same =&amp;gt; n,Goto(Cen_iniLlam,${CalendarLocation},1)&lt;br /&gt;
 same =&amp;gt; n(buzon),Playback(Particular/buzon)&lt;br /&gt;
 same =&amp;gt; n,Hangup&lt;br /&gt;
 same=&amp;gt; n(conCategoria),Goto(Cen_iniLlam,${EXTEN},1)&lt;br /&gt;
&lt;br /&gt;
=== Conexión de cliente Outlook a calendarios VIVAit mediante Caldav===&lt;br /&gt;
Por defecto, el cliente outlook no soporta Caldav; si queremos disponer de calendarios de VIVAit en Outlook tendríamos dos opciones:&lt;br /&gt;
# Tener los calendarios en el servidor Exchange&lt;br /&gt;
# Instalar un plugin en el cliente outlook que permita conectar vía Caldav los calendarios que estén ubicados en el servidor de calendarios de VIVAit&lt;br /&gt;
&lt;br /&gt;
Este howto se centra en esta segunda posibilidad&lt;br /&gt;
&lt;br /&gt;
Procedimiento: &lt;br /&gt;
&lt;br /&gt;
1.- Instalar Calldavsincronizer (valdrían otros plugin de Caldav para Outlook)&lt;br /&gt;
&lt;br /&gt;
[https://sourceforge.net/projects/outlookcaldavsynchronizer/ https://sourceforge.net/projects/outlookcaldavsynchronizer/]&lt;br /&gt;
&lt;br /&gt;
2.- Entrar en Synchronization Profiles en la nueva pestaña Calldav Syncronizer de outlook       [[File:Syncronizer.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.- Añadir nuevo perfil (tecla +)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Nuevo.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A tener en cuenta:&lt;br /&gt;
&lt;br /&gt;
*Crear un nuevo “Outlook folder”, entendemos que es adecuado (quizás necesario) para que las entradas de calendario de VIVAit queden diferenciadas.&lt;br /&gt;
*Lo mejor es haber creado antes el calendario en el servidor para que al darlo de alta en oulook comprobemos que se conecta.&lt;br /&gt;
*Dando al botón “Test or discover settings” se nos muestran todos los calendarios del servidor y elegimos el que queramos; en “elementos de la carpeta” diremos “elementos de calendario”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Calendario.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
== Uso de reloj hardware en nodos de procesamiento ==&lt;br /&gt;
&lt;br /&gt;
=== En nodo de procesamiento ACD ===&lt;br /&gt;
En un nodo de procesamiento ACD es obligatorio instalar dahdi y una tarjeta de primario para emplear reloj hardware, ya que el reloj software que va en el asterisk 1.4 es defectuoso.&lt;br /&gt;
Para configurarlo basta con instalar la tarjeta en el servidor, instalar dahdi y posteriormente ejecutar el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
 dahdi_cfg&lt;br /&gt;
&lt;br /&gt;
Este comando generaŕa el fichero /etc/dahdi/system.conf&lt;br /&gt;
&lt;br /&gt;
Para comprobar que el comando se ha ejecutado satisfactoriamente lo abriremos y tendrá que tener un formato semejante al siguiente ejemplo:&lt;br /&gt;
&lt;br /&gt;
 # Autogenerated by /usr/sbin/dahdi_genconf on Tue Oct 22 17:42:59 2013&lt;br /&gt;
 # If you edit this file and execute /usr/sbin/dahdi_genconf again,&lt;br /&gt;
 # your manual changes will be LOST.&lt;br /&gt;
 # Dahdi Configuration File&lt;br /&gt;
 #&lt;br /&gt;
 # This file is parsed by the Dahdi Configurator, dahdi_cfg&lt;br /&gt;
 #&lt;br /&gt;
 # Span 1: WCT1/0 &amp;quot;Digium Wildcard TE110P T1/E1 Card 0&amp;quot; HDB3/CCS/CRC4&lt;br /&gt;
 span=1,1,0,ccs,hdb3,crc4&lt;br /&gt;
 # termtype: te&lt;br /&gt;
 bchan=1-15,17-31&lt;br /&gt;
 dchan=16&lt;br /&gt;
 echocanceller=oslec,1-15,17-31&lt;br /&gt;
 # Global data&lt;br /&gt;
 loadzone        = es&lt;br /&gt;
 defaultzone     = es&lt;br /&gt;
&lt;br /&gt;
=== En nodo de procesamiento de corporativa ===&lt;br /&gt;
En un nodo de procesamiento de corporativa no obligatorio instalar dahdi y una tarjeta de primario para emplear reloj hardware, ya que el no se han detectado errores en el reloj por software. Sin embargo si instalamos dahdi y una tarjeta de primario para emplear reloj hardware, el sistema funcionará mejor.&lt;br /&gt;
Para configurarlo basta con instalar la tarjeta en el servidor, instalar dahdi y posteriormente ejecutar el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
 dahdi_cfg&lt;br /&gt;
&lt;br /&gt;
Este comando generaŕa el fichero /etc/dahdi/system.conf&lt;br /&gt;
&lt;br /&gt;
Para comprobar que el comando se ha ejecutado satisfactoriamente lo abriremos y tendrá que tener un formato semejante al siguiente ejemplo:&lt;br /&gt;
&lt;br /&gt;
 # Autogenerated by /usr/sbin/dahdi_genconf on Tue Oct 22 17:42:59 2013&lt;br /&gt;
 # If you edit this file and execute /usr/sbin/dahdi_genconf again,&lt;br /&gt;
 # your manual changes will be LOST.&lt;br /&gt;
 # Dahdi Configuration File&lt;br /&gt;
 #&lt;br /&gt;
 # This file is parsed by the Dahdi Configurator, dahdi_cfg&lt;br /&gt;
 #&lt;br /&gt;
 # Span 1: WCT1/0 &amp;quot;Digium Wildcard TE110P T1/E1 Card 0&amp;quot; HDB3/CCS/CRC4&lt;br /&gt;
 span=1,1,0,ccs,hdb3,crc4&lt;br /&gt;
 # termtype: te&lt;br /&gt;
 bchan=1-15,17-31&lt;br /&gt;
 dchan=16&lt;br /&gt;
 echocanceller=oslec,1-15,17-31&lt;br /&gt;
 # Global data&lt;br /&gt;
 loadzone        = es&lt;br /&gt;
 defaultzone     = es&lt;br /&gt;
&lt;br /&gt;
== Aprovisionamiento terminales Cisco ==&lt;br /&gt;
=== Configurar protocolo SIP TCP o UDP en terminal Cisco ===&lt;br /&gt;
&lt;br /&gt;
Configuración de terminal Cisco para para funcionar bajo TCP o UDP:&lt;br /&gt;
Modificar parámetro&lt;br /&gt;
 &amp;lt;transportLayerProtocol&amp;gt;X&amp;lt;/transportLayerProtocol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde X es:&lt;br /&gt;
    1: TCP&lt;br /&gt;
    2: UDP&lt;br /&gt;
    4: Valor por defecto del firmware (al menos en la última versión equivale a TCP)&lt;br /&gt;
&lt;br /&gt;
=== Habilitar/Deshabilitar llamada en espera en terminales Cisco ===&lt;br /&gt;
&lt;br /&gt;
En el fichero de aprovisionamiento del terminal añadiremos la siguiente linea&lt;br /&gt;
 &amp;lt;callWaiting&amp;gt;X&amp;lt;/callWaiting&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde X es:&lt;br /&gt;
   0=off but can be changed through the settings menu.&lt;br /&gt;
   1=on but can be changed through the settings menu.&lt;br /&gt;
   2=off and locked so it can't be changed through the settings menu.&lt;br /&gt;
   3=on and locked so it can't be changed through the settings menu.&lt;br /&gt;
&lt;br /&gt;
== Como configurar servicio DHCP en Ubuntu Linux ==&lt;br /&gt;
=== ¿Que es un servicio DHCP? ===&lt;br /&gt;
Un servidor Dynamic Host Configuration Protocol (DHCP) asigna dinámicamente las direcciones IP y otras configuraciones de red a otros terminales que están conectados a la red.&lt;br /&gt;
&lt;br /&gt;
=== Instalar un servicio DHCP ===&lt;br /&gt;
Para instalar el servidor de asignacion automatica de direccion IP ejecutamos el comando:&lt;br /&gt;
 sudo apt-get install isc-dhcp-server&lt;br /&gt;
&lt;br /&gt;
=== Configurando el servicio DHCP ===&lt;br /&gt;
Editamos el archivo /etc/dhcp/dhcpd.conf creando primero un backup del mismo:&lt;br /&gt;
 mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.original&lt;br /&gt;
 nano /etc/dhcp/dhcpd.conf&lt;br /&gt;
&lt;br /&gt;
El archivo debe quedar de una forma muy similar a esta:&lt;br /&gt;
 authoritative&lt;br /&gt;
 subnet  10.254.239.0 netmask 255.255.255.254&lt;br /&gt;
 {&lt;br /&gt;
 range dynamic-bootp  10.254.239.40 10.254.239.60;&lt;br /&gt;
 option domain-name-servers ns1.example.org, ns2.example.org;&lt;br /&gt;
 option domain-name &amp;quot;example.org&amp;quot;;&lt;br /&gt;
 option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org ;&lt;br /&gt;
 option broadcast-address 10.254.239.255;&lt;br /&gt;
 default-lease-time 3600;&lt;br /&gt;
 max-lease-time 7200;&lt;br /&gt;
 option option-150 10.254.239.25&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Donde los campos:&lt;br /&gt;
*subnet: Direccion de red&lt;br /&gt;
*netmask: Máscara de red&lt;br /&gt;
*range dynamic-bootp: Rango de IPs que va a proporcionar el DHCP&lt;br /&gt;
*option domain-name-servers: Direcciones IPs de los DNS&lt;br /&gt;
*option domain-name: Nombre de dominio&lt;br /&gt;
*option routers:IPs de las puertas de enlace&lt;br /&gt;
*option broadcast-address: Dirección de broadcast&lt;br /&gt;
*default-lease-time: Tiempo de concesión por defecto&lt;br /&gt;
*max-lease-time: Valor máximo del tiempo de concesión&lt;br /&gt;
*option option-150: IPs de los servidores TFTPs que tiene la red&lt;br /&gt;
&lt;br /&gt;
===  Reiniciamos el servicio ===&lt;br /&gt;
 service isc-dhcp-server restart&lt;br /&gt;
&lt;br /&gt;
=== Direcciones IP estáticas basadas en la MAC ===&lt;br /&gt;
Pueden conocerse las MAC de las máquinas conectadas a la red ejecutando el comando arp desde la terminal.&lt;br /&gt;
&lt;br /&gt;
 host ejemplo {&lt;br /&gt;
        hardware ethernet 00:0B:82:19:A8:04;&lt;br /&gt;
        option option-150 10.254.239.0;&lt;br /&gt;
 #      fixed-address 10.254.239.52;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Protocolo Skinny en VIVAit Call mediante uso de Chan-SCCP ==&lt;br /&gt;
=== Instalación de chan_sccp ===&lt;br /&gt;
*Copiar el fichero chan-sccp-4.2.1.1.tar.gz en el directorio donde estén los fuentes de Asterisk (normalmente /usr/src/MDtel)&lt;br /&gt;
*Descomprimir&lt;br /&gt;
*Entrar al directorio chan-sccp-4.2.1.1&lt;br /&gt;
*Ejecutar: ./configure --with-asterisk=../DIRECTORIO_ASTERISK --enable-conference. Donde DIRECTORIO_ASTERISK es el nombre del directorio donde están los fuentes de asterisk.&lt;br /&gt;
*Tras el ejecutar el configure (si todo va bien al final se verá un resumen con el S.O, arquitectura, etc), ejecutar make y make install&lt;br /&gt;
*El nuevo módulo chan_sccp.so se generará dentro del DIRECTORIO_ASTERISK en lib/asterisk/modules/ y se deberá copiar en /usr/lib/asterisk/modules/&lt;br /&gt;
*Copiar el fichero sccp.conf a /etc/asterisk&lt;br /&gt;
*Entra a Asterisk y ejecutar: module load chan_sccp.so&lt;br /&gt;
*Si se ha cargado correctamente, desde dentro de Asterisk, si se teclea sccp show version deberá devolver: &amp;quot;Skinny Client Control Protocol (SCCP). Release: 4.3.0 4.3.0 - unknown (built by 'root' on '2016-06-01 10:42:32 UTC')&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Crear extensiones ===&lt;br /&gt;
*En el portal crear una nueva clase de dispositivo (Vivait-Call/Dispositivos/Clases de dispositivos), donde la clase sea extensión la subclase H323 (todavía no existe la subclase SCCP) y el formato SCCP/${DEST}&lt;br /&gt;
*Crear la nueva extensión, pero el dispositivo debe ser el creado en el campo anterior.&lt;br /&gt;
*Las extensiones creadas habrá que añadirlas al fichero sccp.conf así como los teléfonos que las usarán. En el fichero sccp.conf incluido hay ejemplos.&lt;br /&gt;
&lt;br /&gt;
=== Aprovisionamiento ===&lt;br /&gt;
Los terminales se aprovisionan de la misma manera que los SIP, exceptuando que las plantillas XML no tiene referencias a SIP. Se incluye un xml genérico con todas las opciones.&lt;br /&gt;
Dentro del directorio chan-sccp-4.2.1.1 hay un directorio conf con todos los archivos de configuración necesarios. Las versiones annotated contienen todas las opciones posibles comentadas.&lt;br /&gt;
&lt;br /&gt;
== Instalación y configuración Postfix en RedHat7 ==&lt;br /&gt;
&lt;br /&gt;
'''Postfix''' es un ''servidor de correo'' de software libre/código abierto, un programa informático para el enrutamiento y envío de correo electrónico.&lt;br /&gt;
&lt;br /&gt;
=== Instalación ===&lt;br /&gt;
 yum install postfix&lt;br /&gt;
&lt;br /&gt;
=== Configuración ===&lt;br /&gt;
Sobre la configuración de postfix por defecto (recién instalado):&lt;br /&gt;
Editar el fichero /etc/postfix/main.cf&lt;br /&gt;
 inet_protocols = ipv4&lt;br /&gt;
 relayhost = smtp.renfe.es&lt;br /&gt;
Revisar la configuración:&lt;br /&gt;
 postfix check&lt;br /&gt;
Configurar postfix como servicio (sólo en redhat y similares)&lt;br /&gt;
 chkconfig postfix on&lt;br /&gt;
Iniciar postfix:&lt;br /&gt;
 service postfix start&lt;br /&gt;
Instalar mailx para disponer de los comandos mail y sendmail:&lt;br /&gt;
 yum install mailx&lt;br /&gt;
Probar configuración:&lt;br /&gt;
 echo &amp;quot;Prueba de correo&amp;quot; | mail -vs &amp;quot;Prueba&amp;quot; correo@destino.soy&lt;br /&gt;
&lt;br /&gt;
=== Como crear un TRIGGER en Zabbix ===&lt;br /&gt;
&lt;br /&gt;
'''1.''' Hay '''dos posibilidades''' dependiendo si el trigger es para un solo host o es para varios, los cuales tienen en común un template:&lt;br /&gt;
&lt;br /&gt;
:# Si es para ''un host'': Ir a '''Configuración/Hosts'''&lt;br /&gt;
:# Si es para ''un template'': Ir a '''Configuración/Templates'''&lt;br /&gt;
&lt;br /&gt;
'''2.''' En la fila correspondiente al host/template al que queramos añadirle el trigger, pulsar sobre la '''columna triggers.'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''3.''' En la ventana de triggers, pulsar sobre el botón '''Create trigger''', situado en la esquina superior derecha.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''4.''' Aparecerá la ventana de creación de triggers, que tiene los siguientes campos:&lt;br /&gt;
:1. '''Name:''' Nombre del trigger, que deberá ser lo ''suficientemente descriptivo''. Aparecerá cuando se&lt;br /&gt;
active, en la ventana principal de Zabbix así como en los correos de aviso.&lt;br /&gt;
:2. '''Expression:''' Define la fórmula cuyo resultado activará el trigger. Hay que pulsar el botón '''Add'''. Se mostrará una &lt;br /&gt;
nueva ventana donde habrá que elegir el item (medida) sobre el que se basará el trigger (evidentemente la medida deberá &lt;br /&gt;
existir previamente) y la función necesaria para el cálculo. Para una descripción de las disponibles dirigirse a &lt;br /&gt;
https://www.zabbix.com/documentation/2.2/manual/appendix/triggers/functions.&amp;lt;br/&amp;gt;&lt;br /&gt;
Tras rellenar los campos anteriores y dar a la función los valores que necesite pulsar el botón '''Insert.'''&lt;br /&gt;
:3. '''Expression constructor:''' Permite crear expresiones complejas, uniendo varias.&lt;br /&gt;
:4. '''Description:''' Una explicación del trigger&lt;br /&gt;
:5. '''Severity:''' Criticidad el trigger&lt;br /&gt;
:6. Para una descripción del resto de campos visitar la página: https://www.zabbix.com/documentation/2.2/manual/config/triggers/trigger&lt;br /&gt;
'''5.''' Tras rellenar los campos, pulsar el botón '''Save'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''6.''' Si el trigger se ha añadido en un template, aparecerá en todos los hosts que tienen el template configurado.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''7.''' '''El trigger por si solo no envía ningún aviso''', solo se activa si se cumple la expresión definida.&lt;br /&gt;
Para enviar un aviso (normalmente un correo electrónico) cuando se active el trigger, será necesario definir una acción (Configuración/Actions).&lt;br /&gt;
&lt;br /&gt;
 '''NOTA.-''' Para consultar cualquier cuestión relativa a Zabbix, se encuentra a su disposición el manual: &amp;lt;br/&amp;gt;&lt;br /&gt;
 https://www.zabbix.com/documentation/2.2/manual&lt;br /&gt;
&lt;br /&gt;
== Como mostrar callername queues FOP2 ==&lt;br /&gt;
&lt;br /&gt;
Es necesario añadir el siguiente código al contexto de entrada:&lt;br /&gt;
&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Connect connid localhost usuario clave bd)&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Query resultid ${connid} SELECT\ firstname\,lastname\ from\ fop2\ where\ phone1=${CALLERID(num)}\ OR\ phone2=${CALLERID(num)})&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Fetch fetchid ${resultid} nombre apellidos)&lt;br /&gt;
 exten =&amp;gt; _X.,n,GotoIf($[${fetchid} = 1]?:noExiste)&lt;br /&gt;
 exten =&amp;gt; _X.,n,Set(CALLERID(name)=${nombre}${apellidos})&lt;br /&gt;
 exten =&amp;gt; _X.,n(noExiste),Continuar&lt;br /&gt;
&lt;br /&gt;
En la primera línea cambiar según lo necesario:&lt;br /&gt;
&lt;br /&gt;
*localhost: Dirección IP del servidor de MySQL donde está la BBDD de FOP2&lt;br /&gt;
*usuario: Usuario con permisos de acceso a la bbdd de FOP2&lt;br /&gt;
*clave: Clave del usuario&lt;br /&gt;
*bd: Nombre de la BBDD&lt;br /&gt;
&lt;br /&gt;
== Como ver los directorios de un NAS a montar con NFS ==&lt;br /&gt;
&lt;br /&gt;
Con el siguiente comando vemos los diferentes volúmenes de un NAS:&lt;br /&gt;
&lt;br /&gt;
 showmount -e IP_NAS&lt;br /&gt;
&lt;br /&gt;
Ejemplo de salida:&lt;br /&gt;
&lt;br /&gt;
 Export list for 192.168.10.10:&lt;br /&gt;
 /Backup/backup       *&lt;br /&gt;
 /DISCOS_1/VOL1_AUDIO *&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Instalación de ActivaSTP con VIVAit Call 3 y marcación desde Outlook ==&lt;br /&gt;
&lt;br /&gt;
Instalamos ActivaSTP desde:&lt;br /&gt;
 &lt;br /&gt;
 (http://activa.sourceforge.net/)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- *SIPTAPI, según la pagina Web, su ultima versión publicada es del 2014 con versión 0.2.17 (http://activa.sourceforge.net/)&lt;br /&gt;
&lt;br /&gt;
Hemos probado con http://www.xtelsio.com/en/products/ast_tsp/tapi_for_asterisk.htm.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La configuración necesaria se muestra en la siguiente imagen:&lt;br /&gt;
&lt;br /&gt;
[[File:Ventana ActivaTSP.jpg]]&lt;br /&gt;
&lt;br /&gt;
 El usuario del manager debe tener permisos originate para poder realizar llamadas.&lt;br /&gt;
&lt;br /&gt;
Se han realizado pruebas con Outlook 2013.&lt;br /&gt;
&lt;br /&gt;
Se ha comprobado la correcta realización de pruebas utilizando ActivaSTP, realizadon llamadas desde la pestaña &amp;quot;personas&amp;quot; con la vista en modo tarjeta de Pesentación, tarjeta, teléfono o lista.&lt;br /&gt;
&lt;br /&gt;
Outlook 2013 no da la opción de llamar si la vista está en modo personas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Como volver a procesar grabaciones con error ==&lt;br /&gt;
&lt;br /&gt;
Las grabaciones con error son aquellas que tienen el valor E_GRABACION=120 en la tabla DAT_GRABACIONES.&lt;br /&gt;
Las grabaciones con error se produce normalmente a perdida de conexión entre el nodo servidor de grabaciones y el resto&lt;br /&gt;
Para reprocesar la grabación hay que modificar ln campo E_GRABACION de la tabla DAT_GRABACIONES y ponerlo con valor 20 para que así el recordCentral la vuelva a procesar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Problemas de conmutación en cluster ==&lt;br /&gt;
El problema detectado fue que en la conmutacion de maquinas en el cluster cuando el control lo tiene la maquina 2 no funciona el servicio phoneprov-tftp.&lt;br /&gt;
&lt;br /&gt;
Hay que hacer las siguientes comprobaciones:&lt;br /&gt;
&lt;br /&gt;
 Que el directorio /var/lib/phoneprov-tftp esté en la partición /HDcluster&lt;br /&gt;
 Que fichero /etc/MDtel/phoneprov-tftp esté puesta como IP de la máquina la IP flotante del cluster (campo $dbHost)&lt;br /&gt;
 Que el servicio phoneprov-tftp del directorio /usr/local/sbin/phoneprov-tftp.pl tenga permisos de ejecución 755&lt;br /&gt;
 Que exista el fichero /etc/init/phoneprov-tftp.conf&lt;br /&gt;
&lt;br /&gt;
Para más información ver los log del phoneprov en /var/log/phoneprov-tftp.log&lt;br /&gt;
&lt;br /&gt;
El problema era que no se encontraba instalado el paquete phoneprov-tftp, hay que instalarlo manualmente. Instalar el paquete libnet-tftpd-perl.--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Howto%27s&amp;diff=5944</id>
		<title>Howto's</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Howto%27s&amp;diff=5944"/>
		<updated>2017-06-13T06:24:52Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* Instalación de ActivaSTP con VIVAit Call 3 y marcación desde Outlook */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!! VIVAit Call&lt;br /&gt;
VIVAit Suite&lt;br /&gt;
&lt;br /&gt;
VIVAit Fax&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Como parar asterisk ==&lt;br /&gt;
En situaciones límite en el que es necesario parar el asterisk y volver a arrancarlo hay que realizar los siguientes pasos:&lt;br /&gt;
&lt;br /&gt;
 Entrar en la consola de asterisk e introducir el comando core stop now&lt;br /&gt;
&lt;br /&gt;
 Si esto no funciona, tendremos que matar el proceso a mano. Esto es, primero el safe asterisk y luego el asterisk mediante el comando &lt;br /&gt;
 kill -9 nºPID&lt;br /&gt;
 &lt;br /&gt;
 Tras estos pasos, volveremos a arrancar el servicio asterisk mediante /etc/init.d/asterisk start&lt;br /&gt;
&lt;br /&gt;
== Como configurar la megafonía ==&lt;br /&gt;
&lt;br /&gt;
El servicio de megafonía se basa en el protocolo multicast.&lt;br /&gt;
&lt;br /&gt;
Para configurar la megafonía tenemos que activar en los teléfonos que para que estén &amp;quot;escuchando&amp;quot; en una dirección multicast y tener un emisor en esa dirección multicast.&lt;br /&gt;
&lt;br /&gt;
Los teléfonos suelen tener en su configuración un apartado para configurar el multicast. Por ejemplo en los yealink está en la pestaña directory sección multicast IP.&lt;br /&gt;
&lt;br /&gt;
En los teléfonos se puede configurar manualmente o incluirlo en las plantillas de aprovisionamiento.&lt;br /&gt;
&lt;br /&gt;
El asterisk tiene un canal para hacer multicast. Este canal es MulticastRTP.&lt;br /&gt;
&lt;br /&gt;
Para esto podemos crear un VDN que contenga la siguiente línea. (en el ejemplo la dirección multicast es 239.0.126.1 y el puerto es el 10001).&lt;br /&gt;
&lt;br /&gt;
 [Cen_VDN_90000]&lt;br /&gt;
 exten =&amp;gt; _X.,1,NoOp(MDVDN_90000*****EXTEN=${EXTEN}**CID=${CALLERID(NUM)}**UCID=${UCID}*)&lt;br /&gt;
  same =&amp;gt;     n,Answer&lt;br /&gt;
  same =&amp;gt;     n,Dial(MulticastRTP/basic/239.0.126.1:10001)&lt;br /&gt;
 include =&amp;gt; Cen_finLlamada&lt;br /&gt;
&lt;br /&gt;
== Como configurar el candado ==&lt;br /&gt;
El candado permite prohibir temporalmente la posibilidad de realizar llamadas hacia fuera. Sí se pueden seguir haciendo llamadas a extensiones fijas de la plataforma, es decir, llamadas sin coste.&lt;br /&gt;
&lt;br /&gt;
Para configurar dicha funcionalidad basta con crear extensiones con la categoría mas restrictiva posible y habilitar la movilidad, con lo que la extensión solo tendrá &amp;quot;permisos&amp;quot; para realizar llamadas internas.&lt;br /&gt;
&lt;br /&gt;
Para permitir llamadas externas solo hay que &amp;quot;mover&amp;quot; a un usuario con categoría suficiente a la extensión deseada.&lt;br /&gt;
== Como crear un grupo de captura y que se vea en cada teléfono el número que llama ==&lt;br /&gt;
&lt;br /&gt;
'''ATENCIÓN: SE CREAN CONFIGURACIONES NO REFLEJADAS EN PORTAL DE ADMINISTRACIÓN'''&lt;br /&gt;
&lt;br /&gt;
Para la simulación de grupos de captura y conseguir que todos los terminales vean el ANI del llamante:&lt;br /&gt;
&lt;br /&gt;
- Hacen falta teléfonos con dos líneas&lt;br /&gt;
&lt;br /&gt;
- Cada teléfono del grupo tiene en la línea 1 su extensión habitual (por ejemplo 40000)&lt;br /&gt;
&lt;br /&gt;
- Además, en el fichero &amp;quot;sip_Estatico.conf&amp;quot;, creamos una segunda extensión para cada teléfono, que le ocupará la segunda línea (por ejemplo 42000)&lt;br /&gt;
&lt;br /&gt;
- En esta segunda linea ponemos que cuando se llame tenga otro tono de llamada (un beep o nada...) que se asemeje en funcionamiento al de un mensaje de llamada en otra extension de mi grupo de captura&lt;br /&gt;
&lt;br /&gt;
- Se ha creado una variable global por cada teléfono en el fichero de variables &amp;quot;ext_MDtel_Particular.conf&amp;quot; de nombre EXTxxxxx (por ejemplo EXT40000); esa variable contiene las otras extensiones virtuales del grupo&lt;br /&gt;
por ejemplo EXT40000=&amp;gt;SIP/42001&amp;amp;SIP/42005&lt;br /&gt;
&lt;br /&gt;
- Hemos creado en el dialplan programación para que cuando exista esa variable global se añada a la marcación el contenido&lt;br /&gt;
&lt;br /&gt;
== Como crear supletorios ==&lt;br /&gt;
&lt;br /&gt;
'''ATENCIÓN: SE CREAN CONFIGURACIONES NO REFLEJADAS EN PORTAL DE ADMINISTRACIÓN'''&lt;br /&gt;
&lt;br /&gt;
Igual que el caso anterior pero en la variable ponemos números reales. Debido a un bug en el enrutador, que no devuelve la variable R_PARA, en el fichero ext_MARCAR_Extension.conf hay que sustituir la siguiente linea:&lt;br /&gt;
 &lt;br /&gt;
 ;same =&amp;gt;                   n,ExecIf($[&amp;quot;${EXT${R_PARA}}&amp;quot;=&amp;quot;&amp;quot;]?NoOp:Set(ENR_CADMARCAR=${ENR_CADMARCAR}&amp;amp;${EXT${R_PARA}}))&lt;br /&gt;
Por esta otra:&lt;br /&gt;
  same =&amp;gt;                   n,ExecIf($[&amp;quot;${EXT${R_DEST_${ENR_RUTA_CAD}}}&amp;quot;=&amp;quot;&amp;quot;]?NoOp:Set(ENR_CADMARCAR=${ENR_CADMARCAR}&amp;amp;${EXT${R_DEST_${ENR_RUTA_CAD}}}))&lt;br /&gt;
ATENCIÓN !!! en las llamadas salientes cada uno presenta su número&lt;br /&gt;
&lt;br /&gt;
Para emplear números externos en los supletorios hay que poner, al crear la variable que hemos explicado en el apartado anterior en el ext_MDtel_Particular.conf: &lt;br /&gt;
&lt;br /&gt;
 EXT335=&amp;gt;SIP/0999999999@Trunk_Movil ;En este caso suena en la ext 335 y en el móvil 999999999&lt;br /&gt;
&lt;br /&gt;
== Generación de llamada automática ==&lt;br /&gt;
&lt;br /&gt;
Para activar la funcionalidad es necesario lo siguiente: &lt;br /&gt;
&lt;br /&gt;
* Definir una variable ID_LISTA_LLAMAME con el ID de la lista que se va a usar para generar la llamada. Cuando se cree la lista hay que asegurarse que el campo &amp;quot;Nº segundos límite&amp;quot; tiene un valor lo suficientemente amplio para evitar que la llamada caduque antes de ejecutarse.&lt;br /&gt;
&lt;br /&gt;
* Establecer un timeout para la cola (en el Gosub Cen_Sub_GrupoACD se indica justo después de ${COLA})&lt;br /&gt;
&lt;br /&gt;
* Llamar a la función de MySQL ACD_FUNC_LLAMAME_CREAR a través de MDintz&lt;br /&gt;
&lt;br /&gt;
* En la función se usan los siguientes elementos variables:&lt;br /&gt;
&lt;br /&gt;
        ${ID_LISTA_LLAMAME}: Definida antes clienteTOCola: &lt;br /&gt;
        Nombre del cliente. Al no tener ningún nombre, se usa un denominador genérico&lt;br /&gt;
        ${CALLERID}: Número llamante, donde se dirigirá la llamada.&lt;br /&gt;
&lt;br /&gt;
Ejemplo:&lt;br /&gt;
&lt;br /&gt;
 [Cen_VDN_99001]&lt;br /&gt;
 ;----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 ;----------------------- VDN 99001 ------------------------------------------------------------&lt;br /&gt;
 ;----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 exten =&amp;gt; _X.,1,NoOp(MDENTGW_99001*****EXTEN=${EXTEN}**CID=${CALLERID(NUM)}**UCID=${UCID}*)&lt;br /&gt;
  same =&amp;gt;     n,Set(__COLA=89001)&lt;br /&gt;
  same =&amp;gt;     n,Set(ctiDiriTrato=0)&lt;br /&gt;
  same =&amp;gt;     n,Set(ctiDiriInterface=)&lt;br /&gt;
  same =&amp;gt;     n,Set(ID_LISTA_LLAMAME=2)&lt;br /&gt;
  same =&amp;gt;     n(cola),Gosub(Cen_Sub_GrupoACD,${EXTEN},1(${COLA},10,,Si,))&lt;br /&gt;
  same =&amp;gt;     n,GotoIf($[&amp;quot;${QUEUESTATUS}&amp;quot;!=&amp;quot;TIMEOUT&amp;quot;]?colgar)&lt;br /&gt;
  same =&amp;gt;     n,MDintz(nimitz|bd|sqlDato|select ACD_FUNC_LLAMAME_CREAR(CURRENT_TIMESTAMP\,${ID_LISTA_LLAMAME}\,&amp;quot;&amp;quot;\,&amp;quot;clienteTOCola&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,1\,&amp;quot;&amp;quot;\,&amp;quot;${CALLERID(NUM)}&amp;quot;\,1\,3\,1\,&amp;quot;&amp;quot;\,0\,0\,0\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;))&lt;br /&gt;
  same =&amp;gt;     n,GotoIf($[&amp;quot;${MDintzRes}&amp;quot;=&amp;quot;OK&amp;quot;]?colgar)&lt;br /&gt;
  same =&amp;gt;     n,NoOp(ACD_FUNC_LLAMAME_CREAR ${MDintzRes})&lt;br /&gt;
  same =&amp;gt;     n(colgar),Hangup&lt;br /&gt;
&lt;br /&gt;
== Como &amp;quot;dar paso&amp;quot; a través de un enlace exterior si hay una llamada para una extensión creada en el sistema pero no registrada ==&lt;br /&gt;
&lt;br /&gt;
Este procedimiento es de utilidad en procesos de migración, en los que recibimos las llamadas de la RTC, nos las quedamos si la extensión ya está registrada en VIVAit y la mandamos hacia la plataforma a migrar si aún sigue migrada ahí&lt;br /&gt;
&lt;br /&gt;
El procedimiento es:&lt;br /&gt;
* Activar desvío por no contesta en la extensión (portal de administración - VIVAit Call - Dispositivos - Extensiones - campo &amp;quot;Desvio no contesta&amp;quot;, indicando como destino un prefijo (por ejemplo &amp;quot;99&amp;quot;) seguido de la extensión destino&lt;br /&gt;
&lt;br /&gt;
* Creamos una preruta en vivait-call - rutas -prerutas con origen &amp;quot;99&amp;quot;, le quitamos el prefijo en campo &amp;quot;Destino saliente 1&amp;quot; (valor -2) e indicamos en campo &amp;quot;Tipo destino sal. 1&amp;quot; como &amp;quot;Ruta externa&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Debera existir una ruta externa para esa numeración&lt;br /&gt;
&lt;br /&gt;
== Comprobación de versiones de elementos de la plataforma ==&lt;br /&gt;
&lt;br /&gt;
'''Aplicaciones'''&lt;br /&gt;
:* Botón derecho del ratón, Acerca De&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Portales'''&lt;br /&gt;
:* En el Vivait-Call, en la pantalla de inicio de sesión pone el número de versión del portal.&lt;br /&gt;
:* Tanto en el Monitor como en el Tracker no se puede saber.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Demonios'''&lt;br /&gt;
:* Mediante el comando nc localhost &amp;lt;Puerto demonio&amp;gt;. Ejemplo:&lt;br /&gt;
::nc localhost 1120&lt;br /&gt;
::motorSal sis ver='03.02.00' inic='20150427 123457' alarmas=0 ultAlar='00000000000000'&lt;br /&gt;
::motorSal gmp msj=253/256 buf=256/256 tarea=99/102&lt;br /&gt;
::motorSal tmp uptime=12624 (0d 3h 30m 24s)&lt;br /&gt;
::motorSal mtr mys=1 ocup=0% planif=13(0) intento=11(0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::Ejemplos puertos demonios:&lt;br /&gt;
:::*1111: vivait-cti&lt;br /&gt;
:::*1112: myAcdSuperv&lt;br /&gt;
:::*1113: recordNodo&lt;br /&gt;
:::*1114: recordCentral&lt;br /&gt;
:::*1115: intz-nimitz&lt;br /&gt;
:::*1120: motorSal&lt;br /&gt;
:::*1123: phoneprov-tftp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Base de datos'''&lt;br /&gt;
:* No se puede saber la versión a no ser que se comparen esquemáticos con los subidos en el redmine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:administrador]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:VIVAit Suite]]&lt;br /&gt;
[[Category:VIVAit Fax]]&lt;br /&gt;
&lt;br /&gt;
== Añadir Auto-Answer a la cabecera SIP ==&lt;br /&gt;
&lt;br /&gt;
Si queremos que un teléfono tenga autoanswer:&lt;br /&gt;
* En el peer poner: headeraa=Call-Info: answer-after=0, esto tiene que ir en la plantilla de la extensión o como campo en la extensión. Dependiendo del terminal que utilicemos el valor de este campo variará:&lt;br /&gt;
&lt;br /&gt;
    Aastra: Alert-Info: info=alert-autoanswer&lt;br /&gt;
    Grandstream: Call-Info: answer-after=0&lt;br /&gt;
    Linksys: Call-Info:\;Answer-After=0&lt;br /&gt;
    Polycom: Alert-Info: Ring Answer&lt;br /&gt;
    Snom: Call-Info: answer-after=0&lt;br /&gt;
    Snom (nuevo firmware): Call-Info: &amp;lt;sip:IP&amp;gt;\;answer-after=0&lt;br /&gt;
    Yealink: Call-Info: answer-after=0&lt;br /&gt;
&lt;br /&gt;
* Luego en el diaplan añadir lo siguiente: exten =&amp;gt; _[*#%0-9a-zA-Z].,n,set(__AutoAnswer=AA) (Esto tendremos que ver como ponerlo de manera automática). De manera provisional si queremos que sea para llamadas salientes pondremos esto en el ext_n_marcador.conf. Si queremos que sea llamadas entrantes lo pondremos en ext_n_MARCAR.conf&lt;br /&gt;
&lt;br /&gt;
== Configuración de los portales web en HTTPS ==&lt;br /&gt;
&lt;br /&gt;
Desde /usr/lib/jvm/default-java/bin/ ejecutamos:&lt;br /&gt;
&lt;br /&gt;
keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/share/tomcat7/.keystore&lt;br /&gt;
&lt;br /&gt;
Escriba la contraseña del almacén de claves: (t0mc4t)&lt;br /&gt;
 Volver a escribir la contraseña nueva: (t0mc4t)&lt;br /&gt;
 *Personalizar para el cliente&lt;br /&gt;
 ¿Cuáles son su nombre y su apellido?&lt;br /&gt;
 [Unknown]: VIVAit Suite&lt;br /&gt;
 ¿Cuál es el nombre de su unidad de organización?&lt;br /&gt;
 [Unknown]: Desarrollo&lt;br /&gt;
 ¿Cuál es el nombre de su organización?&lt;br /&gt;
 [Unknown]: MDtel&lt;br /&gt;
 ¿Cuál es el nombre de su ciudad o localidad?&lt;br /&gt;
 [Unknown]: Madrid&lt;br /&gt;
 ¿Cuál es el nombre de su estado o provincia?&lt;br /&gt;
 [Unknown]: Madrid&lt;br /&gt;
 ¿Cuál es el código de país de dos letras de la unidad?&lt;br /&gt;
 [Unknown]: es&lt;br /&gt;
 ¿Es correcto CN=VIVAit Suite, OU=Desarrollo, O=MDtel, L=es, ST=Madrid,&lt;br /&gt;
 C=Unknown?&lt;br /&gt;
 [no]: si&lt;br /&gt;
 Escriba la contraseña clave para &amp;lt;tomcat&amp;gt;&lt;br /&gt;
 (INTRO si es la misma contraseña que la del almacén de claves)&lt;br /&gt;
&lt;br /&gt;
nano /var/lib/tomcat7/conf/server.xml&lt;br /&gt;
&lt;br /&gt;
Descomentar la línea:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; protocol=&amp;quot;HTTP/1.1&amp;quot; SSLEnabled=&amp;quot;true&amp;quot; &lt;br /&gt;
&lt;br /&gt;
 maxThreads=&amp;quot;150&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Añadir después de sslProtocol=&amp;quot;TLS&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 keystorePass=&amp;quot;t0mc4t&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Crear un motivo desconexión para el Supervisor en '''''VIVA'''''it Suite==&lt;br /&gt;
&lt;br /&gt;
Para crear motivos de desconexión adicionales a los que ya ofrece la aplicación tendremos que añadir una nueva entrada en la BD. El comando que emplearíamos seria el siguiente:&lt;br /&gt;
&lt;br /&gt;
INSERT INTO `nimitz`.`COM_ENUMERADOS` (`ID`, `C_NOMBRE`, `C_TEXTO`, `N_POSICION`, `C_OBSERV`) VALUES(1000700, 'TSesAgMotDesc', 'Nombre Motivo de desconexión', 60, ' ');&lt;br /&gt;
&lt;br /&gt;
El ID debe ser mayor o igual a 1000700 y menor a 1000800. El N_POSICION debe ser mayor o igual a 60 y menor que 100.&lt;br /&gt;
&lt;br /&gt;
== Envío de variables CTI al ACD ante un GW con asterisk 13==&lt;br /&gt;
Dado que para un GW con asterisk 13 un nodo ACD es considerado un elemento externo, por defecto, no se envían variables CTI (UCID, ...). En una fututa versión del nodo ACD, ya no se considerará un elemento externo por lo que si se enviarán dichas variables. Para lograrlo en la versión 3.0 de la plataforma Vivait hay que modificar el fichero ext_MARCAR_Externo_Particular.conf del GW. Deberemos poner la siguiente linea.&lt;br /&gt;
&lt;br /&gt;
 same =&amp;gt; n,Macro(escribirDatosCti)&lt;br /&gt;
&lt;br /&gt;
== Script para cambio automático de claves en salas de conferencia estáticas ==&lt;br /&gt;
&lt;br /&gt;
Para cambiar la clave de las salas de conferencias crear un script llamado cambioClaveConfe.sh con el siguiente contenido:&lt;br /&gt;
	&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 CLAVE=$(shuf -i 1111-9999 -n 1)&lt;br /&gt;
 &lt;br /&gt;
 echo $CLAVE&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;update CEN_SALAS_CONFERENCIAS set C_PIN='$CLAVE' WHERE C_NOMBRE='$1'&amp;quot; | mysql -u nimitz -pivivanimitz nimitz&lt;br /&gt;
 &lt;br /&gt;
 FROM=sat@mdtel.es&lt;br /&gt;
 FECHA=`date +&amp;quot;%Y%m%d%H%M%S&amp;quot;`&lt;br /&gt;
 CLIENTE=&amp;lt;PONER EL CLIENTE&amp;gt;&lt;br /&gt;
 TO=&amp;lt;DESTINATARIOS&amp;gt;&lt;br /&gt;
 ASUNTO=&amp;quot;Nueva clave en sala $1&amp;quot;&lt;br /&gt;
 CUERPO=&amp;quot;La nueva clave para la sala $1 es: $CLAVE&amp;quot;&lt;br /&gt;
 /usr/sbin/sendmail -oi -t -v -f $FROM &amp;lt;&amp;lt;EOF&lt;br /&gt;
 From: $FROM&lt;br /&gt;
 To: $TO&lt;br /&gt;
 Bcc: $BCC&lt;br /&gt;
 Subject: $ASUNTO&lt;br /&gt;
 &lt;br /&gt;
 $CUERPO&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
El script cambiará la clave de la sala pasada por parámetro por una aleatoria de 4 dígitos y la enviará por correo a los &amp;lt;DESTINATARIOS&amp;gt; (direcciones de correo electrónico separadas por coma).&lt;br /&gt;
&lt;br /&gt;
Hay que crear una tarea en /etc/crontab añadiendo una linea como la siguiente:&lt;br /&gt;
 30 6	* * 7	root	cambioClaveConfe.sh 6173&lt;br /&gt;
&lt;br /&gt;
Esto ejecutará el script todos los domingos a las 6:30 horas cambiando la clave de la sala 6173. Añadir tantas linéas como salas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Monitorización en Zabbix de un trunk caído ==&lt;br /&gt;
Para monitorizar un o varios trunk por separado y saber el estado de cada uno es necesario lo siguiente: &lt;br /&gt;
&lt;br /&gt;
*Añadir el UserParameter adjunto que contiene el siguiente texto:&lt;br /&gt;
&lt;br /&gt;
 UserParameter=asterisk.trunkEstado[*],sudo /usr/sbin/asterisk -rx 'sip show peers' | grep  --text -i '$1' |  grep OK &amp;gt;/dev/null; if [ $? -eq 0 ]; then echo 1; else echo 0; fi&lt;br /&gt;
&lt;br /&gt;
*Añadir en el portal de zabbix un item por cada trunk. En el campo Key se pondrá &amp;quot;asterisk.trunkEstado[nombre_trunk]&amp;quot;, donde nombre_trunk es el nombre del trunk tal y como se ve en Asterisk.&lt;br /&gt;
[[File:zabbix_item_trunkEstado.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Crear un trigger que avise cuando el último valor sea 0. Por ejemplo:&lt;br /&gt;
 {corp-bdtr:asterisk.trunkEstado[PrePro-ACD].last()}=0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:zabbix_trigger_trunkEstado.png]]&lt;br /&gt;
&lt;br /&gt;
== Agendas en terminales Yealink ==&lt;br /&gt;
En la agenda se mostrará como nombre lo que contenga el campo CEN_AGENDAS.C_NOMBRE_MOSTRAR y como teléfono el indicado en CEN_AGENDAS_TELEFONOS.C_TELEFONO&lt;br /&gt;
Para hacer funcionar la agenda:&lt;br /&gt;
&lt;br /&gt;
*En el archivo de aprovisionamiento correspondiente (Yealink-XXXX-comun.cfg) establecer los siguientes parámetros:&lt;br /&gt;
&lt;br /&gt;
    remote_phonebook.data.1.url = http://&amp;lt;direc IP&amp;gt;/vivait-agenda/yealink/contactData1.xml &lt;br /&gt;
    remote_phonebook.data.1.name = NOMBRE DE LA AGENDA EN EL TELEFONO&lt;br /&gt;
&lt;br /&gt;
*En el archivo /etc/apache2/apache2.conf añadir tras el último Directory:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Directory /var/www/html/vivait-agenda/&amp;gt;&lt;br /&gt;
             AddType application/x-httpd-php .xml&lt;br /&gt;
             Options Indexes FollowSymLinks MultiViews&lt;br /&gt;
             AllowOverride None&lt;br /&gt;
             Order allow,deny&lt;br /&gt;
             allow from all&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Ejecutar el comando:&lt;br /&gt;
&lt;br /&gt;
    /etc/init.d/apache2 reload&lt;br /&gt;
&lt;br /&gt;
== Calendarios ==&lt;br /&gt;
&lt;br /&gt;
=== Enrutamiento inteligente ===&lt;br /&gt;
&lt;br /&gt;
Ante una llamada a un destino, si hay cita de ocupado en el calendario se desvia al número indicado en el campo &amp;quot;location&amp;quot; del calendario o a su buzon de voz si hay valor en dicho campo&lt;br /&gt;
&lt;br /&gt;
 same =&amp;gt; n,Set(CalendarBusy=${CALENDAR_BUSY(GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,Set(id=${CALENDAR_QUERY(GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,NoOP(hay ${CALENDAR_QUERY_RESULT(${id},getnum)} eventos)&lt;br /&gt;
 same =&amp;gt; n,Verbose(3,The state of GoogleCalendar is $&lt;br /&gt;
 {DEVICE_STATE(Calendar:GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,Set(CalendarLocation=${CALENDAR_QUERY_RESULT(GoogleCalendar,location)})&lt;br /&gt;
 same =&amp;gt; n,GotoIf($[&amp;quot;${CalendarBusy}&amp;quot;==&amp;quot;1&amp;quot;]?:conCategoria)&lt;br /&gt;
 same =&amp;gt; n,GotoIf($[&amp;quot;${CalendarLocation}&amp;quot;==&amp;quot;&amp;quot;]?buzon)&lt;br /&gt;
 same =&amp;gt; n,Goto(Cen_iniLlam,${CalendarLocation},1)&lt;br /&gt;
 same =&amp;gt; n(buzon),Playback(Particular/buzon)&lt;br /&gt;
 same =&amp;gt; n,Hangup&lt;br /&gt;
 same=&amp;gt; n(conCategoria),Goto(Cen_iniLlam,${EXTEN},1)&lt;br /&gt;
&lt;br /&gt;
=== Conexión de cliente Outlook a calendarios VIVAit mediante Caldav===&lt;br /&gt;
Por defecto, el cliente outlook no soporta Caldav; si queremos disponer de calendarios de VIVAit en Outlook tendríamos dos opciones:&lt;br /&gt;
# Tener los calendarios en el servidor Exchange&lt;br /&gt;
# Instalar un plugin en el cliente outlook que permita conectar vía Caldav los calendarios que estén ubicados en el servidor de calendarios de VIVAit&lt;br /&gt;
&lt;br /&gt;
Este howto se centra en esta segunda posibilidad&lt;br /&gt;
&lt;br /&gt;
Procedimiento: &lt;br /&gt;
&lt;br /&gt;
1.- Instalar Calldavsincronizer (valdrían otros plugin de Caldav para Outlook)&lt;br /&gt;
&lt;br /&gt;
[https://sourceforge.net/projects/outlookcaldavsynchronizer/ https://sourceforge.net/projects/outlookcaldavsynchronizer/]&lt;br /&gt;
&lt;br /&gt;
2.- Entrar en Synchronization Profiles en la nueva pestaña Calldav Syncronizer de outlook       [[File:Syncronizer.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.- Añadir nuevo perfil (tecla +)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Nuevo.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A tener en cuenta:&lt;br /&gt;
&lt;br /&gt;
*Crear un nuevo “Outlook folder”, entendemos que es adecuado (quizás necesario) para que las entradas de calendario de VIVAit queden diferenciadas.&lt;br /&gt;
*Lo mejor es haber creado antes el calendario en el servidor para que al darlo de alta en oulook comprobemos que se conecta.&lt;br /&gt;
*Dando al botón “Test or discover settings” se nos muestran todos los calendarios del servidor y elegimos el que queramos; en “elementos de la carpeta” diremos “elementos de calendario”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Calendario.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
== Uso de reloj hardware en nodos de procesamiento ==&lt;br /&gt;
&lt;br /&gt;
=== En nodo de procesamiento ACD ===&lt;br /&gt;
En un nodo de procesamiento ACD es obligatorio instalar dahdi y una tarjeta de primario para emplear reloj hardware, ya que el reloj software que va en el asterisk 1.4 es defectuoso.&lt;br /&gt;
Para configurarlo basta con instalar la tarjeta en el servidor, instalar dahdi y posteriormente ejecutar el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
 dahdi_cfg&lt;br /&gt;
&lt;br /&gt;
Este comando generaŕa el fichero /etc/dahdi/system.conf&lt;br /&gt;
&lt;br /&gt;
Para comprobar que el comando se ha ejecutado satisfactoriamente lo abriremos y tendrá que tener un formato semejante al siguiente ejemplo:&lt;br /&gt;
&lt;br /&gt;
 # Autogenerated by /usr/sbin/dahdi_genconf on Tue Oct 22 17:42:59 2013&lt;br /&gt;
 # If you edit this file and execute /usr/sbin/dahdi_genconf again,&lt;br /&gt;
 # your manual changes will be LOST.&lt;br /&gt;
 # Dahdi Configuration File&lt;br /&gt;
 #&lt;br /&gt;
 # This file is parsed by the Dahdi Configurator, dahdi_cfg&lt;br /&gt;
 #&lt;br /&gt;
 # Span 1: WCT1/0 &amp;quot;Digium Wildcard TE110P T1/E1 Card 0&amp;quot; HDB3/CCS/CRC4&lt;br /&gt;
 span=1,1,0,ccs,hdb3,crc4&lt;br /&gt;
 # termtype: te&lt;br /&gt;
 bchan=1-15,17-31&lt;br /&gt;
 dchan=16&lt;br /&gt;
 echocanceller=oslec,1-15,17-31&lt;br /&gt;
 # Global data&lt;br /&gt;
 loadzone        = es&lt;br /&gt;
 defaultzone     = es&lt;br /&gt;
&lt;br /&gt;
=== En nodo de procesamiento de corporativa ===&lt;br /&gt;
En un nodo de procesamiento de corporativa no obligatorio instalar dahdi y una tarjeta de primario para emplear reloj hardware, ya que el no se han detectado errores en el reloj por software. Sin embargo si instalamos dahdi y una tarjeta de primario para emplear reloj hardware, el sistema funcionará mejor.&lt;br /&gt;
Para configurarlo basta con instalar la tarjeta en el servidor, instalar dahdi y posteriormente ejecutar el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
 dahdi_cfg&lt;br /&gt;
&lt;br /&gt;
Este comando generaŕa el fichero /etc/dahdi/system.conf&lt;br /&gt;
&lt;br /&gt;
Para comprobar que el comando se ha ejecutado satisfactoriamente lo abriremos y tendrá que tener un formato semejante al siguiente ejemplo:&lt;br /&gt;
&lt;br /&gt;
 # Autogenerated by /usr/sbin/dahdi_genconf on Tue Oct 22 17:42:59 2013&lt;br /&gt;
 # If you edit this file and execute /usr/sbin/dahdi_genconf again,&lt;br /&gt;
 # your manual changes will be LOST.&lt;br /&gt;
 # Dahdi Configuration File&lt;br /&gt;
 #&lt;br /&gt;
 # This file is parsed by the Dahdi Configurator, dahdi_cfg&lt;br /&gt;
 #&lt;br /&gt;
 # Span 1: WCT1/0 &amp;quot;Digium Wildcard TE110P T1/E1 Card 0&amp;quot; HDB3/CCS/CRC4&lt;br /&gt;
 span=1,1,0,ccs,hdb3,crc4&lt;br /&gt;
 # termtype: te&lt;br /&gt;
 bchan=1-15,17-31&lt;br /&gt;
 dchan=16&lt;br /&gt;
 echocanceller=oslec,1-15,17-31&lt;br /&gt;
 # Global data&lt;br /&gt;
 loadzone        = es&lt;br /&gt;
 defaultzone     = es&lt;br /&gt;
&lt;br /&gt;
== Aprovisionamiento terminales Cisco ==&lt;br /&gt;
=== Configurar protocolo SIP TCP o UDP en terminal Cisco ===&lt;br /&gt;
&lt;br /&gt;
Configuración de terminal Cisco para para funcionar bajo TCP o UDP:&lt;br /&gt;
Modificar parámetro&lt;br /&gt;
 &amp;lt;transportLayerProtocol&amp;gt;X&amp;lt;/transportLayerProtocol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde X es:&lt;br /&gt;
    1: TCP&lt;br /&gt;
    2: UDP&lt;br /&gt;
    4: Valor por defecto del firmware (al menos en la última versión equivale a TCP)&lt;br /&gt;
&lt;br /&gt;
=== Habilitar/Deshabilitar llamada en espera en terminales Cisco ===&lt;br /&gt;
&lt;br /&gt;
En el fichero de aprovisionamiento del terminal añadiremos la siguiente linea&lt;br /&gt;
 &amp;lt;callWaiting&amp;gt;X&amp;lt;/callWaiting&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde X es:&lt;br /&gt;
   0=off but can be changed through the settings menu.&lt;br /&gt;
   1=on but can be changed through the settings menu.&lt;br /&gt;
   2=off and locked so it can't be changed through the settings menu.&lt;br /&gt;
   3=on and locked so it can't be changed through the settings menu.&lt;br /&gt;
&lt;br /&gt;
== Como configurar servicio DHCP en Ubuntu Linux ==&lt;br /&gt;
=== ¿Que es un servicio DHCP? ===&lt;br /&gt;
Un servidor Dynamic Host Configuration Protocol (DHCP) asigna dinámicamente las direcciones IP y otras configuraciones de red a otros terminales que están conectados a la red.&lt;br /&gt;
&lt;br /&gt;
=== Instalar un servicio DHCP ===&lt;br /&gt;
Para instalar el servidor de asignacion automatica de direccion IP ejecutamos el comando:&lt;br /&gt;
 sudo apt-get install isc-dhcp-server&lt;br /&gt;
&lt;br /&gt;
=== Configurando el servicio DHCP ===&lt;br /&gt;
Editamos el archivo /etc/dhcp/dhcpd.conf creando primero un backup del mismo:&lt;br /&gt;
 mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.original&lt;br /&gt;
 nano /etc/dhcp/dhcpd.conf&lt;br /&gt;
&lt;br /&gt;
El archivo debe quedar de una forma muy similar a esta:&lt;br /&gt;
 authoritative&lt;br /&gt;
 subnet  10.254.239.0 netmask 255.255.255.254&lt;br /&gt;
 {&lt;br /&gt;
 range dynamic-bootp  10.254.239.40 10.254.239.60;&lt;br /&gt;
 option domain-name-servers ns1.example.org, ns2.example.org;&lt;br /&gt;
 option domain-name &amp;quot;example.org&amp;quot;;&lt;br /&gt;
 option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org ;&lt;br /&gt;
 option broadcast-address 10.254.239.255;&lt;br /&gt;
 default-lease-time 3600;&lt;br /&gt;
 max-lease-time 7200;&lt;br /&gt;
 option option-150 10.254.239.25&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Donde los campos:&lt;br /&gt;
*subnet: Direccion de red&lt;br /&gt;
*netmask: Máscara de red&lt;br /&gt;
*range dynamic-bootp: Rango de IPs que va a proporcionar el DHCP&lt;br /&gt;
*option domain-name-servers: Direcciones IPs de los DNS&lt;br /&gt;
*option domain-name: Nombre de dominio&lt;br /&gt;
*option routers:IPs de las puertas de enlace&lt;br /&gt;
*option broadcast-address: Dirección de broadcast&lt;br /&gt;
*default-lease-time: Tiempo de concesión por defecto&lt;br /&gt;
*max-lease-time: Valor máximo del tiempo de concesión&lt;br /&gt;
*option option-150: IPs de los servidores TFTPs que tiene la red&lt;br /&gt;
&lt;br /&gt;
===  Reiniciamos el servicio ===&lt;br /&gt;
 service isc-dhcp-server restart&lt;br /&gt;
&lt;br /&gt;
=== Direcciones IP estáticas basadas en la MAC ===&lt;br /&gt;
Pueden conocerse las MAC de las máquinas conectadas a la red ejecutando el comando arp desde la terminal.&lt;br /&gt;
&lt;br /&gt;
 host ejemplo {&lt;br /&gt;
        hardware ethernet 00:0B:82:19:A8:04;&lt;br /&gt;
        option option-150 10.254.239.0;&lt;br /&gt;
 #      fixed-address 10.254.239.52;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Protocolo Skinny en VIVAit Call mediante uso de Chan-SCCP ==&lt;br /&gt;
=== Instalación de chan_sccp ===&lt;br /&gt;
*Copiar el fichero chan-sccp-4.2.1.1.tar.gz en el directorio donde estén los fuentes de Asterisk (normalmente /usr/src/MDtel)&lt;br /&gt;
*Descomprimir&lt;br /&gt;
*Entrar al directorio chan-sccp-4.2.1.1&lt;br /&gt;
*Ejecutar: ./configure --with-asterisk=../DIRECTORIO_ASTERISK --enable-conference. Donde DIRECTORIO_ASTERISK es el nombre del directorio donde están los fuentes de asterisk.&lt;br /&gt;
*Tras el ejecutar el configure (si todo va bien al final se verá un resumen con el S.O, arquitectura, etc), ejecutar make y make install&lt;br /&gt;
*El nuevo módulo chan_sccp.so se generará dentro del DIRECTORIO_ASTERISK en lib/asterisk/modules/ y se deberá copiar en /usr/lib/asterisk/modules/&lt;br /&gt;
*Copiar el fichero sccp.conf a /etc/asterisk&lt;br /&gt;
*Entra a Asterisk y ejecutar: module load chan_sccp.so&lt;br /&gt;
*Si se ha cargado correctamente, desde dentro de Asterisk, si se teclea sccp show version deberá devolver: &amp;quot;Skinny Client Control Protocol (SCCP). Release: 4.3.0 4.3.0 - unknown (built by 'root' on '2016-06-01 10:42:32 UTC')&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Crear extensiones ===&lt;br /&gt;
*En el portal crear una nueva clase de dispositivo (Vivait-Call/Dispositivos/Clases de dispositivos), donde la clase sea extensión la subclase H323 (todavía no existe la subclase SCCP) y el formato SCCP/${DEST}&lt;br /&gt;
*Crear la nueva extensión, pero el dispositivo debe ser el creado en el campo anterior.&lt;br /&gt;
*Las extensiones creadas habrá que añadirlas al fichero sccp.conf así como los teléfonos que las usarán. En el fichero sccp.conf incluido hay ejemplos.&lt;br /&gt;
&lt;br /&gt;
=== Aprovisionamiento ===&lt;br /&gt;
Los terminales se aprovisionan de la misma manera que los SIP, exceptuando que las plantillas XML no tiene referencias a SIP. Se incluye un xml genérico con todas las opciones.&lt;br /&gt;
Dentro del directorio chan-sccp-4.2.1.1 hay un directorio conf con todos los archivos de configuración necesarios. Las versiones annotated contienen todas las opciones posibles comentadas.&lt;br /&gt;
&lt;br /&gt;
== Instalación y configuración Postfix en RedHat7 ==&lt;br /&gt;
&lt;br /&gt;
'''Postfix''' es un ''servidor de correo'' de software libre/código abierto, un programa informático para el enrutamiento y envío de correo electrónico.&lt;br /&gt;
&lt;br /&gt;
=== Instalación ===&lt;br /&gt;
 yum install postfix&lt;br /&gt;
&lt;br /&gt;
=== Configuración ===&lt;br /&gt;
Sobre la configuración de postfix por defecto (recién instalado):&lt;br /&gt;
Editar el fichero /etc/postfix/main.cf&lt;br /&gt;
 inet_protocols = ipv4&lt;br /&gt;
 relayhost = smtp.renfe.es&lt;br /&gt;
Revisar la configuración:&lt;br /&gt;
 postfix check&lt;br /&gt;
Configurar postfix como servicio (sólo en redhat y similares)&lt;br /&gt;
 chkconfig postfix on&lt;br /&gt;
Iniciar postfix:&lt;br /&gt;
 service postfix start&lt;br /&gt;
Instalar mailx para disponer de los comandos mail y sendmail:&lt;br /&gt;
 yum install mailx&lt;br /&gt;
Probar configuración:&lt;br /&gt;
 echo &amp;quot;Prueba de correo&amp;quot; | mail -vs &amp;quot;Prueba&amp;quot; correo@destino.soy&lt;br /&gt;
&lt;br /&gt;
=== Como crear un TRIGGER en Zabbix ===&lt;br /&gt;
&lt;br /&gt;
'''1.''' Hay '''dos posibilidades''' dependiendo si el trigger es para un solo host o es para varios, los cuales tienen en común un template:&lt;br /&gt;
&lt;br /&gt;
:# Si es para ''un host'': Ir a '''Configuración/Hosts'''&lt;br /&gt;
:# Si es para ''un template'': Ir a '''Configuración/Templates'''&lt;br /&gt;
&lt;br /&gt;
'''2.''' En la fila correspondiente al host/template al que queramos añadirle el trigger, pulsar sobre la '''columna triggers.'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''3.''' En la ventana de triggers, pulsar sobre el botón '''Create trigger''', situado en la esquina superior derecha.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''4.''' Aparecerá la ventana de creación de triggers, que tiene los siguientes campos:&lt;br /&gt;
:1. '''Name:''' Nombre del trigger, que deberá ser lo ''suficientemente descriptivo''. Aparecerá cuando se&lt;br /&gt;
active, en la ventana principal de Zabbix así como en los correos de aviso.&lt;br /&gt;
:2. '''Expression:''' Define la fórmula cuyo resultado activará el trigger. Hay que pulsar el botón '''Add'''. Se mostrará una &lt;br /&gt;
nueva ventana donde habrá que elegir el item (medida) sobre el que se basará el trigger (evidentemente la medida deberá &lt;br /&gt;
existir previamente) y la función necesaria para el cálculo. Para una descripción de las disponibles dirigirse a &lt;br /&gt;
https://www.zabbix.com/documentation/2.2/manual/appendix/triggers/functions.&amp;lt;br/&amp;gt;&lt;br /&gt;
Tras rellenar los campos anteriores y dar a la función los valores que necesite pulsar el botón '''Insert.'''&lt;br /&gt;
:3. '''Expression constructor:''' Permite crear expresiones complejas, uniendo varias.&lt;br /&gt;
:4. '''Description:''' Una explicación del trigger&lt;br /&gt;
:5. '''Severity:''' Criticidad el trigger&lt;br /&gt;
:6. Para una descripción del resto de campos visitar la página: https://www.zabbix.com/documentation/2.2/manual/config/triggers/trigger&lt;br /&gt;
'''5.''' Tras rellenar los campos, pulsar el botón '''Save'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''6.''' Si el trigger se ha añadido en un template, aparecerá en todos los hosts que tienen el template configurado.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''7.''' '''El trigger por si solo no envía ningún aviso''', solo se activa si se cumple la expresión definida.&lt;br /&gt;
Para enviar un aviso (normalmente un correo electrónico) cuando se active el trigger, será necesario definir una acción (Configuración/Actions).&lt;br /&gt;
&lt;br /&gt;
 '''NOTA.-''' Para consultar cualquier cuestión relativa a Zabbix, se encuentra a su disposición el manual: &amp;lt;br/&amp;gt;&lt;br /&gt;
 https://www.zabbix.com/documentation/2.2/manual&lt;br /&gt;
&lt;br /&gt;
== Como mostrar callername queues FOP2 ==&lt;br /&gt;
&lt;br /&gt;
Es necesario añadir el siguiente código al contexto de entrada:&lt;br /&gt;
&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Connect connid localhost usuario clave bd)&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Query resultid ${connid} SELECT\ firstname\,lastname\ from\ fop2\ where\ phone1=${CALLERID(num)}\ OR\ phone2=${CALLERID(num)})&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Fetch fetchid ${resultid} nombre apellidos)&lt;br /&gt;
 exten =&amp;gt; _X.,n,GotoIf($[${fetchid} = 1]?:noExiste)&lt;br /&gt;
 exten =&amp;gt; _X.,n,Set(CALLERID(name)=${nombre}${apellidos})&lt;br /&gt;
 exten =&amp;gt; _X.,n(noExiste),Continuar&lt;br /&gt;
&lt;br /&gt;
En la primera línea cambiar según lo necesario:&lt;br /&gt;
&lt;br /&gt;
*localhost: Dirección IP del servidor de MySQL donde está la BBDD de FOP2&lt;br /&gt;
*usuario: Usuario con permisos de acceso a la bbdd de FOP2&lt;br /&gt;
*clave: Clave del usuario&lt;br /&gt;
*bd: Nombre de la BBDD&lt;br /&gt;
&lt;br /&gt;
== Como ver los directorios de un NAS a montar con NFS ==&lt;br /&gt;
&lt;br /&gt;
Con el siguiente comando vemos los diferentes volúmenes de un NAS:&lt;br /&gt;
&lt;br /&gt;
 showmount -e IP_NAS&lt;br /&gt;
&lt;br /&gt;
Ejemplo de salida:&lt;br /&gt;
&lt;br /&gt;
 Export list for 192.168.10.10:&lt;br /&gt;
 /Backup/backup       *&lt;br /&gt;
 /DISCOS_1/VOL1_AUDIO *&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Instalación de ActivaSTP con VIVAit Call 3 y marcación desde Outlook ==&lt;br /&gt;
&lt;br /&gt;
Instalamos ActivaSTP desde:&lt;br /&gt;
 &lt;br /&gt;
 (http://activa.sourceforge.net/)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- *SIPTAPI, según la pagina Web, su ultima versión publicada es del 2014 con versión 0.2.17 (http://activa.sourceforge.net/)&lt;br /&gt;
&lt;br /&gt;
Hemos probado con http://www.xtelsio.com/en/products/ast_tsp/tapi_for_asterisk.htm.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La configuración necesaria se muestra en la siguiente imagen:&lt;br /&gt;
&lt;br /&gt;
[[File:Ventana ActivaTSP.jpg]]&lt;br /&gt;
&lt;br /&gt;
 El usuario del manager debe tener permisos originate para poder realizar llamadas.&lt;br /&gt;
&lt;br /&gt;
Se han realizado pruebas con Outlook 2013.&lt;br /&gt;
&lt;br /&gt;
Se ha comprobado la correcta realización de pruebas utilizando ActivaSTP, realizadon llamadas desde la pestaña &amp;quot;personas&amp;quot; con la vista en modo tarjeta de Pesentación, tarjeta, teléfono o lista.&lt;br /&gt;
&lt;br /&gt;
Outlook 2013 no da la opción de llamar si la vista está en modo personas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Como volver a procesar grabaciones con error ==&lt;br /&gt;
&lt;br /&gt;
Modificar en campo E_GRABACION de la tabla DAT_GRABACIONES y ponerlo con valor 20 para que así el recordCentral la vuelva a procesar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Problemas de conmutación en cluster ==&lt;br /&gt;
El problema detectado fue que en la conmutacion de maquinas en el cluster cuando el control lo tiene la maquina 2 no funciona el servicio phoneprov-tftp.&lt;br /&gt;
&lt;br /&gt;
Hay que hacer las siguientes comprobaciones:&lt;br /&gt;
&lt;br /&gt;
 Que el directorio /var/lib/phoneprov-tftp esté en la partición /HDcluster&lt;br /&gt;
 Que fichero /etc/MDtel/phoneprov-tftp esté puesta como IP de la máquina la IP flotante del cluster (campo $dbHost)&lt;br /&gt;
 Que el servicio phoneprov-tftp del directorio /usr/local/sbin/phoneprov-tftp.pl tenga permisos de ejecución 755&lt;br /&gt;
 Que exista el fichero /etc/init/phoneprov-tftp.conf&lt;br /&gt;
&lt;br /&gt;
Para más información ver los log del phoneprov en /var/log/phoneprov-tftp.log&lt;br /&gt;
&lt;br /&gt;
El problema era que no se encontraba instalado el paquete phoneprov-tftp, hay que instalarlo manualmente. Instalar el paquete libnet-tftpd-perl.--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Release_Notes_Plataforma_VIVAit_3.1&amp;diff=5942</id>
		<title>Release Notes Plataforma VIVAit 3.1</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Release_Notes_Plataforma_VIVAit_3.1&amp;diff=5942"/>
		<updated>2017-06-12T14:01:42Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* DialPlan ACD (3.3.2 → 3.5.0) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!!Plataforma''VIVA''it&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Aplica a los productos:&lt;br /&gt;
* '''''VIVA'''''it Call 3.1&lt;br /&gt;
* '''''VIVA'''''it Suite 3.5&lt;br /&gt;
&lt;br /&gt;
==Lázarus común (3.4.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3646: Nuevas clases de dispositivo TClaseDispositivo&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3694: Modificaciones en nimitz.pas&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3805: Nueva opción en el enumerado TComponente&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4472: Nuevos valores enumerados en TTipoContenido&lt;br /&gt;
&lt;br /&gt;
==BBDD (3.6.0 → 3.8.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3653: CEN_ENLACE_EXTERIOR ID_PLANTILLA es VARCHAR&lt;br /&gt;
&lt;br /&gt;
Bugs #3832: Modificacion de los Datos básicos para que los registros particulares se inserten con ID muy superior para que asi podamos eliminar los Datos particulares y volver a insertarlos&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3487: Campos nuevos en supervisor&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3553: Campo que indique que un nodo tiene el servicio recordCentral&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3582: Nueva entrada enumerado TTipoInforme&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3606: Añadir a los datos básicos los campos que se emplean en las plantillas en forma de texto&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3643: Nuevas clases de dispositivo TClaseDispositivo&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3644: Nuevas clases de dispositivo TClaseDispositivo&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3660: Nuevos valores en enumerado TClasePlantilla&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3667: Campo E_TIPO_CANAL en CEN_DISPOSITIVOS&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3693: Nuevos valores enumerado TSegTipoSeg&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3804: Añadir opción al enumerado TComponente&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4473: Modificación de la tabla DAT_MENSAJES&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4474: Modificación enumerado TTipoContenido&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4478: Creación de la tabla ACD CHAT USUARIOS&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4488: Añadir campo ID_PLANTILLA_SIP_GENERAL en COM_NODOS&lt;br /&gt;
&lt;br /&gt;
Bugs #3348: Quitar TElementosSincronizar&lt;br /&gt;
&lt;br /&gt;
Bugs #4526: Cambio enumerados&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3253: Crear un campo en base de datos para generar el recordCentral&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3651: Tablas para chat CEN_MULTICANAL_TEXTO_XXX&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4626: Campo LDAP para sincronizar Agendas&lt;br /&gt;
&lt;br /&gt;
== Asterisk ACD (3.3.1 → 3.4.1)==&lt;br /&gt;
&lt;br /&gt;
== DialPlan ACD (3.3.2 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #5083: Nuevos tipos de segDespues&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4470: Desarrollo de contexto para chat&lt;br /&gt;
&lt;br /&gt;
== Asterisk Corporativo (3.4.1 → 3.4.4)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3612: Versión asterisk cert3&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4143: parche BLF cisco en asterisk 13.1 cert 7&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4151: Se añade la funcionalidad del perro guardian&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4319: Habilitar conferencias y desvío incondicional en teléfonos Cisco en modo SIP.&lt;br /&gt;
&lt;br /&gt;
== DialPlan Corporativo (3.3.4 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3586: Fallo al borrar grabaciones PCI&lt;br /&gt;
&lt;br /&gt;
Bugs #3652: Error locución en activar y cancelar retrollamada&lt;br /&gt;
&lt;br /&gt;
Bugs #4516: Desvios a mensajeria por usuario no reproduce locución desvio desactivado&lt;br /&gt;
&lt;br /&gt;
Bugs #4542: Establecer el cdr a no&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4000: Nuevas facilidades echo y milliwatt&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4021: Al transferir una llamada, si el numero no esta disponible que vuelva la llamada&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4675: Crear fichrero particular para colas de centralita&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4818: Añadir el campo leavewhenempty a la plantilla de grupos corporativos&lt;br /&gt;
&lt;br /&gt;
==Generaconf (3.4.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3169: Generar ficheros recordNodo y recordCentral&lt;br /&gt;
&lt;br /&gt;
Bugs #3251: Cambiar select de DAT_SINCRONIZA por incompatibiliadad con MySQL 5.7 (Full group by)&lt;br /&gt;
&lt;br /&gt;
Bugs #3345: Los campos de objeto tienen proridad sobre los de plantilla&lt;br /&gt;
&lt;br /&gt;
Bugs #3347: Generar archivos correctamente desde sincronización manual&lt;br /&gt;
&lt;br /&gt;
Bugs #3406: Fallos varios en Generaconf para calendarios&lt;br /&gt;
&lt;br /&gt;
Bugs #3766: Error en Generaconf debido a timeout de libreria java&lt;br /&gt;
&lt;br /&gt;
Bugs #4884: No llama a la funcion dialplan reliad al generar el fichero ext_MDtel_Web.conf&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3337: Generar chan_dahdi.conf&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3532: Generar campo Qualify de los Nodos&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4144: Modificacion al generar grupos de captura&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4490: Se ha creado un campo en COM_NODOS ID_PLANTILLA_SIP_GENERAL&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4512: Los nodos ACD tienen que ser trunkinternos&lt;br /&gt;
&lt;br /&gt;
==Intz-nimitz ( 3.4.1 → 3.4.2)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4142: Cambio en prioridades en destinos externos&lt;br /&gt;
&lt;br /&gt;
==recordCentral (4.0.0 → 4.0.1)==&lt;br /&gt;
&lt;br /&gt;
Bugs #4747: No codifica en ogg&lt;br /&gt;
&lt;br /&gt;
==recordNodo (4.0.0 → 4.0.0)==&lt;br /&gt;
&lt;br /&gt;
==myACDSuperV (5.3.2 → 5.3.2)==&lt;br /&gt;
&lt;br /&gt;
==motorSal (3.3.0 → 3.4.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3611: Contactos en campaña saliente bajo de manda&lt;br /&gt;
&lt;br /&gt;
Bugs #3780: Parada del motorsal cuando en la descripción de la cola ocupa mas de 64 caracteres&lt;br /&gt;
&lt;br /&gt;
Bugs #3841: Mejoras en modulo empleado por Antonio Sanchez&lt;br /&gt;
&lt;br /&gt;
==VIVAit-cti (3.0.1 → 3.0.2)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3136: Problema abrir formulario en llamadas salientes&lt;br /&gt;
&lt;br /&gt;
==MultiMonitorWeb (3.1.0 → 3.2.0)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3289: Cabeceras en monitor&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4206: Acceder a la web del multimonitor directamente con un usuario y contraseña desde la propia url&lt;br /&gt;
&lt;br /&gt;
==Portal (3.4.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #2840: Error en campo Eje 1 de la vista permisos de usuarios&lt;br /&gt;
&lt;br /&gt;
Bugs #2841: Error en campo Eje 1 de la vista permisos de usuarios&lt;br /&gt;
&lt;br /&gt;
Bugs #2846: Fallo de seguridad en Login&lt;br /&gt;
&lt;br /&gt;
Bugs #2847: Literales en Contactos Click2Call&lt;br /&gt;
&lt;br /&gt;
Bugs #2852: Error al recuperar la información del campo &amp;quot;tipo formulario&amp;quot; en Grupos ACD&lt;br /&gt;
&lt;br /&gt;
Bugs #2866: Gestionar posible error en Extensiones en el campo Puesto&lt;br /&gt;
&lt;br /&gt;
Bugs #2930: Cambiar a valor por defecto no&lt;br /&gt;
&lt;br /&gt;
Bugs #2971: Menu desplegable por detras del formulario&lt;br /&gt;
&lt;br /&gt;
Bugs #3014: Duplica extensiones ya asignadas a un grupo en ViVAit Call.&lt;br /&gt;
&lt;br /&gt;
Bugs #3059: No puedo usar ningún filtro de búsqueda para buscar por usuario asignado a una extensión o al revés.&lt;br /&gt;
&lt;br /&gt;
Bugs #3171: Al borrar no vuelve a la pagina inicial de filtro, queremos que mantenga el filtro utilizado al volver de un borrado Y de un recuperado&lt;br /&gt;
&lt;br /&gt;
Bugs #3199: Rellenar valores de los umbrales de alarma del monitor web no ha de ser obligatorio&lt;br /&gt;
&lt;br /&gt;
Bugs #3261: literal sincronizado manual&lt;br /&gt;
&lt;br /&gt;
Bugs #3344: al borrar una extensión en grupos acd de centralita me va a otra pantalla&lt;br /&gt;
&lt;br /&gt;
Bugs #3391: usuario perteneciente a un subeje, puede ver objetos creados en un eje superior del usuario.&lt;br /&gt;
&lt;br /&gt;
Bugs #3402: Al guardar un calendario no llama sale enlace para sincronizar&lt;br /&gt;
&lt;br /&gt;
Bugs #3408: 25Campo Servicio en ventana General/Cuentas&lt;br /&gt;
&lt;br /&gt;
Bugs #3413: error literal&lt;br /&gt;
&lt;br /&gt;
Bugs #3415: Problemas con el portal&lt;br /&gt;
&lt;br /&gt;
Bugs #3427: el nombre del campo &amp;quot;grabar enrutamiento&amp;quot; del objeto Nodo, en el portal de administracion lleva a dudas.&lt;br /&gt;
&lt;br /&gt;
Bugs #3428: duda si el campo &amp;quot;prefijo entidad destino&amp;quot; debería ser obligatorio&lt;br /&gt;
&lt;br /&gt;
Bugs #3429: Menu por detras de la ventana de datos de una agenda&lt;br /&gt;
&lt;br /&gt;
Bugs #3430: problema el campo &amp;quot;MAC&amp;quot; de Aprosionamiento en Telefonos del portal de administracion&lt;br /&gt;
&lt;br /&gt;
Bugs #3444: 5ruta mostrada para acceder a Puestos en Vivait SUIT ACD+ del portal de administración.&lt;br /&gt;
&lt;br /&gt;
Bugs #3459: Al cambiar el telefono en la extensión no lo hace en la ventana telefonos&lt;br /&gt;
&lt;br /&gt;
Bugs #3488: Salas de conferencia, el numero no puede ser repetido&lt;br /&gt;
&lt;br /&gt;
Bugs #3490: Buzones -&amp;gt; el numero debe ser unico no puede repetirse.&lt;br /&gt;
&lt;br /&gt;
Bugs #3494: Finales -&amp;gt; el numero de Final debe ser unico no puede repetirse. y validar numero maximo a introducir.&lt;br /&gt;
&lt;br /&gt;
Bugs #3495: No valida tamaño del motivo y falla al insertar o actualizar y nombre es obligatorio y no esta validando&lt;br /&gt;
&lt;br /&gt;
Bugs #3502: Falta Idioma en tab usuario de opción usuario&lt;br /&gt;
&lt;br /&gt;
Bugs #3525: Si en extensiones &amp;quot;Hay movilidad&amp;quot; es NO el usuario movilidad se inserta/actualiza a null&lt;br /&gt;
&lt;br /&gt;
Bugs #3567: Literales no asignados en el portal&lt;br /&gt;
&lt;br /&gt;
Bugs #3609: Redimensión portal&lt;br /&gt;
&lt;br /&gt;
Bugs #3626: Los motivos de conexión creados desde el portalñ deben ser mayores de 100.&lt;br /&gt;
&lt;br /&gt;
Bugs #3677: Cambio de literal&lt;br /&gt;
&lt;br /&gt;
Bugs #3691: Revisión de literales en Ingles para internacionalización&lt;br /&gt;
&lt;br /&gt;
Bugs #3774: Bugs en Enlace exterior&lt;br /&gt;
&lt;br /&gt;
Bugs #3801: Si la validación del usuario es mediante LDAP la clave deja de ser un campo obligatorio&lt;br /&gt;
&lt;br /&gt;
Bugs #3824: Al descargar una locucion de Vivait-Response -&amp;gt; Locuciones FALLA&lt;br /&gt;
&lt;br /&gt;
Bugs #3872: Cajas de texto demasiado grandes en el portal&lt;br /&gt;
&lt;br /&gt;
Bugs #3886: Campo &amp;quot;La PBX está pendiente de sincronización&amp;quot; descuadra el resto de campos de la cabecera&lt;br /&gt;
&lt;br /&gt;
Bugs #3903: No validad el campo idioma en usuarios -&amp;gt; administrar usuarios ya que no es obligatorio rellenarlo&lt;br /&gt;
&lt;br /&gt;
Bugs #4080: Error al actualizar un usuario&lt;br /&gt;
&lt;br /&gt;
Bugs #4301: Error en argendas Vivait-Call&lt;br /&gt;
&lt;br /&gt;
Bugs #4403: Error al cambiar categoria en destinos externos&lt;br /&gt;
&lt;br /&gt;
Bugs #4415: Pequeños errores&lt;br /&gt;
&lt;br /&gt;
Bugs #4520: Error al crear Grupos ACD&lt;br /&gt;
&lt;br /&gt;
Bugs #4621: No despliega plantilla SIP en nodos&lt;br /&gt;
&lt;br /&gt;
Bugs #4648: No funciona login por LDAP&lt;br /&gt;
&lt;br /&gt;
Bugs #4668: corregir literal en Nodos&lt;br /&gt;
&lt;br /&gt;
Bugs #4669: No aparecen grupos ACD en el despegable de la ventana de Cinfig. monitores&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2524: Mejoras en las panallas de Filtros de busquedas&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2802: Selección y borrado masivo en portal VIVAit&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2845: Nueva imagen del Portal en Versión V.3.5.0&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2882: Modificaciones en ventana &amp;quot;Editar contactos&amp;quot; filtrado y cambio de estado&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2883: Modificaciones en ventana &amp;quot;Editar contactos&amp;quot; para visualización de prioridades&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2891: Acceso por https al Portal de administración&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2916: Operaciones sobre movilidad&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2985: Cabeceras en .java y en .jsp&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3086: Cambios en gestión de permisos de acceso a portal administración&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3087: Cambios en gestión de permisos de acceso a portal de usuario&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3148: Visualizar dos telefonos en la tabla de agenda para tener acceso directo sin tener que entrar al formulario.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3166: Cambios en portal de administración para gestión de chat&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3238: Nuevo campo en VIVAIT SUITE ACD+/PERFILES&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3311: campo de busqueda en la tabla , al rellenar con algo, se mantiene el estado en el portal de administracion.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3349: Mergeo sobre los últimos desarrollos&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3433: Gestión de calendario en la ventana de perfiles&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3552: Gestión de proyectos, analisis de incidencias, bugs encontrados y solucionados, y nuevas funcionalidades.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3566: Desarrollo de vulnerabilidad de seguridad&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3568: Diseño de cajas&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3658: Campos en COM_NODOS para definir el ws de multicanalidad&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3669: Nuevas tablas CEN_MULTICANAL_TEXTO_XXXX&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3676: Nuevo campo enpre-rutas&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3731: Vistas específicas de los datos que se muestran.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3744: Crear campo en COM_NODOS&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3753: Exportación de resultados de ventanas de listado&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3826: Estudio Graficas para mostrar informacion del portald e administración de forma amigable.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4489: La tabla COM_NODOS tiene un nuevo campo&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4597: Campo &amp;quot;Host multicanalidad y Puerto multicanalidad&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Tracker Web (3.3.0 → 3.4.0)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #137: Poder filtrar por campaña&lt;br /&gt;
&lt;br /&gt;
==Tracker Windows (3.2.0 → 3.4.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3730: problema de valoracion de segmento en el VIVait Tracker de Escritorio.&lt;br /&gt;
&lt;br /&gt;
==VIVA supervisor (3.2.0 → 3.4.0)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4431: Soporte chat&lt;br /&gt;
&lt;br /&gt;
==VIVA report (3.2.2 → 3.3.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3439: INFORME DE LLAMADAS POR GRUPO ACD&lt;br /&gt;
&lt;br /&gt;
Bugs #3548: Datos totales llamadas en Informe Tipológico unificado&lt;br /&gt;
&lt;br /&gt;
Bugs #4699: Error al mostrar informe por pantalla&lt;br /&gt;
&lt;br /&gt;
Bugs #4783: Error al generear informe de produccion&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3559: Filtros de agente con nombre&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4176: Creación de librerías dinámicas en Lazarus &lt;br /&gt;
&lt;br /&gt;
Vulnerabilidad #4333: Modificación o eliminación de la limitación de usuario desde scripting&lt;br /&gt;
&lt;br /&gt;
==VIVA desk (3.3.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3782: No cierra formulario en progresivo y predictivo cuando no se descuelga la llamada el agente&lt;br /&gt;
&lt;br /&gt;
Bugs #4461: Fallo boton de copiar código de cliente en formulario mdesigner.exe&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4292: Vivait-desk pruebas con soporte chat&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4401: Versión 3.5.0&lt;br /&gt;
&lt;br /&gt;
==VIVA designer ( 3.1.0 → 3.2.0)==&lt;br /&gt;
&lt;br /&gt;
Designer - Nuevas funcionalidades #4400: Añadir por designer los 16 campos de los contactos&lt;br /&gt;
&lt;br /&gt;
==Preview (3.4.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
==Phoneprov-tftp ( 3.0.3→ 3.0.3)==&lt;br /&gt;
&lt;br /&gt;
==Portal de Usuario (3.0.0 → 3.1.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3310: Cambio de logo &lt;br /&gt;
&lt;br /&gt;
Bugs #4002: No se loga por LDAP&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2915: Operaciones sobre movilidad&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3130: Visualizar dos teléfonos en la tabla de agenda para tener acceso directo sin tener que entrar al formulario.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3165: Desarrollo de interfaz CHAT en portal de usuario&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4847: Añadir el campo C_CUENTA_LDAP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:administrador]]&lt;br /&gt;
[[Category:Plataforma VIVAit]]&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Release_Notes_Plataforma_VIVAit_3.1&amp;diff=5941</id>
		<title>Release Notes Plataforma VIVAit 3.1</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Release_Notes_Plataforma_VIVAit_3.1&amp;diff=5941"/>
		<updated>2017-06-12T14:01:36Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* DialPlan ACD (3.3.2 → 3.5.0) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!!Plataforma''VIVA''it&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Aplica a los productos:&lt;br /&gt;
* '''''VIVA'''''it Call 3.1&lt;br /&gt;
* '''''VIVA'''''it Suite 3.5&lt;br /&gt;
&lt;br /&gt;
==Lázarus común (3.4.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3646: Nuevas clases de dispositivo TClaseDispositivo&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3694: Modificaciones en nimitz.pas&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3805: Nueva opción en el enumerado TComponente&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4472: Nuevos valores enumerados en TTipoContenido&lt;br /&gt;
&lt;br /&gt;
==BBDD (3.6.0 → 3.8.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3653: CEN_ENLACE_EXTERIOR ID_PLANTILLA es VARCHAR&lt;br /&gt;
&lt;br /&gt;
Bugs #3832: Modificacion de los Datos básicos para que los registros particulares se inserten con ID muy superior para que asi podamos eliminar los Datos particulares y volver a insertarlos&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3487: Campos nuevos en supervisor&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3553: Campo que indique que un nodo tiene el servicio recordCentral&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3582: Nueva entrada enumerado TTipoInforme&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3606: Añadir a los datos básicos los campos que se emplean en las plantillas en forma de texto&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3643: Nuevas clases de dispositivo TClaseDispositivo&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3644: Nuevas clases de dispositivo TClaseDispositivo&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3660: Nuevos valores en enumerado TClasePlantilla&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3667: Campo E_TIPO_CANAL en CEN_DISPOSITIVOS&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3693: Nuevos valores enumerado TSegTipoSeg&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3804: Añadir opción al enumerado TComponente&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4473: Modificación de la tabla DAT_MENSAJES&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4474: Modificación enumerado TTipoContenido&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4478: Creación de la tabla ACD CHAT USUARIOS&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4488: Añadir campo ID_PLANTILLA_SIP_GENERAL en COM_NODOS&lt;br /&gt;
&lt;br /&gt;
Bugs #3348: Quitar TElementosSincronizar&lt;br /&gt;
&lt;br /&gt;
Bugs #4526: Cambio enumerados&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3253: Crear un campo en base de datos para generar el recordCentral&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3651: Tablas para chat CEN_MULTICANAL_TEXTO_XXX&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4626: Campo LDAP para sincronizar Agendas&lt;br /&gt;
&lt;br /&gt;
== Asterisk ACD (3.3.1 → 3.4.1)==&lt;br /&gt;
&lt;br /&gt;
== DialPlan ACD (3.3.2 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #5083: Nuevos tipos de segDespues&lt;br /&gt;
Nuevas funcionalidades #4470: Desarrollo de contexto para chat&lt;br /&gt;
&lt;br /&gt;
== Asterisk Corporativo (3.4.1 → 3.4.4)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3612: Versión asterisk cert3&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4143: parche BLF cisco en asterisk 13.1 cert 7&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4151: Se añade la funcionalidad del perro guardian&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4319: Habilitar conferencias y desvío incondicional en teléfonos Cisco en modo SIP.&lt;br /&gt;
&lt;br /&gt;
== DialPlan Corporativo (3.3.4 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3586: Fallo al borrar grabaciones PCI&lt;br /&gt;
&lt;br /&gt;
Bugs #3652: Error locución en activar y cancelar retrollamada&lt;br /&gt;
&lt;br /&gt;
Bugs #4516: Desvios a mensajeria por usuario no reproduce locución desvio desactivado&lt;br /&gt;
&lt;br /&gt;
Bugs #4542: Establecer el cdr a no&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4000: Nuevas facilidades echo y milliwatt&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4021: Al transferir una llamada, si el numero no esta disponible que vuelva la llamada&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4675: Crear fichrero particular para colas de centralita&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4818: Añadir el campo leavewhenempty a la plantilla de grupos corporativos&lt;br /&gt;
&lt;br /&gt;
==Generaconf (3.4.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3169: Generar ficheros recordNodo y recordCentral&lt;br /&gt;
&lt;br /&gt;
Bugs #3251: Cambiar select de DAT_SINCRONIZA por incompatibiliadad con MySQL 5.7 (Full group by)&lt;br /&gt;
&lt;br /&gt;
Bugs #3345: Los campos de objeto tienen proridad sobre los de plantilla&lt;br /&gt;
&lt;br /&gt;
Bugs #3347: Generar archivos correctamente desde sincronización manual&lt;br /&gt;
&lt;br /&gt;
Bugs #3406: Fallos varios en Generaconf para calendarios&lt;br /&gt;
&lt;br /&gt;
Bugs #3766: Error en Generaconf debido a timeout de libreria java&lt;br /&gt;
&lt;br /&gt;
Bugs #4884: No llama a la funcion dialplan reliad al generar el fichero ext_MDtel_Web.conf&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3337: Generar chan_dahdi.conf&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3532: Generar campo Qualify de los Nodos&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4144: Modificacion al generar grupos de captura&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4490: Se ha creado un campo en COM_NODOS ID_PLANTILLA_SIP_GENERAL&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4512: Los nodos ACD tienen que ser trunkinternos&lt;br /&gt;
&lt;br /&gt;
==Intz-nimitz ( 3.4.1 → 3.4.2)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4142: Cambio en prioridades en destinos externos&lt;br /&gt;
&lt;br /&gt;
==recordCentral (4.0.0 → 4.0.1)==&lt;br /&gt;
&lt;br /&gt;
Bugs #4747: No codifica en ogg&lt;br /&gt;
&lt;br /&gt;
==recordNodo (4.0.0 → 4.0.0)==&lt;br /&gt;
&lt;br /&gt;
==myACDSuperV (5.3.2 → 5.3.2)==&lt;br /&gt;
&lt;br /&gt;
==motorSal (3.3.0 → 3.4.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3611: Contactos en campaña saliente bajo de manda&lt;br /&gt;
&lt;br /&gt;
Bugs #3780: Parada del motorsal cuando en la descripción de la cola ocupa mas de 64 caracteres&lt;br /&gt;
&lt;br /&gt;
Bugs #3841: Mejoras en modulo empleado por Antonio Sanchez&lt;br /&gt;
&lt;br /&gt;
==VIVAit-cti (3.0.1 → 3.0.2)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3136: Problema abrir formulario en llamadas salientes&lt;br /&gt;
&lt;br /&gt;
==MultiMonitorWeb (3.1.0 → 3.2.0)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3289: Cabeceras en monitor&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4206: Acceder a la web del multimonitor directamente con un usuario y contraseña desde la propia url&lt;br /&gt;
&lt;br /&gt;
==Portal (3.4.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #2840: Error en campo Eje 1 de la vista permisos de usuarios&lt;br /&gt;
&lt;br /&gt;
Bugs #2841: Error en campo Eje 1 de la vista permisos de usuarios&lt;br /&gt;
&lt;br /&gt;
Bugs #2846: Fallo de seguridad en Login&lt;br /&gt;
&lt;br /&gt;
Bugs #2847: Literales en Contactos Click2Call&lt;br /&gt;
&lt;br /&gt;
Bugs #2852: Error al recuperar la información del campo &amp;quot;tipo formulario&amp;quot; en Grupos ACD&lt;br /&gt;
&lt;br /&gt;
Bugs #2866: Gestionar posible error en Extensiones en el campo Puesto&lt;br /&gt;
&lt;br /&gt;
Bugs #2930: Cambiar a valor por defecto no&lt;br /&gt;
&lt;br /&gt;
Bugs #2971: Menu desplegable por detras del formulario&lt;br /&gt;
&lt;br /&gt;
Bugs #3014: Duplica extensiones ya asignadas a un grupo en ViVAit Call.&lt;br /&gt;
&lt;br /&gt;
Bugs #3059: No puedo usar ningún filtro de búsqueda para buscar por usuario asignado a una extensión o al revés.&lt;br /&gt;
&lt;br /&gt;
Bugs #3171: Al borrar no vuelve a la pagina inicial de filtro, queremos que mantenga el filtro utilizado al volver de un borrado Y de un recuperado&lt;br /&gt;
&lt;br /&gt;
Bugs #3199: Rellenar valores de los umbrales de alarma del monitor web no ha de ser obligatorio&lt;br /&gt;
&lt;br /&gt;
Bugs #3261: literal sincronizado manual&lt;br /&gt;
&lt;br /&gt;
Bugs #3344: al borrar una extensión en grupos acd de centralita me va a otra pantalla&lt;br /&gt;
&lt;br /&gt;
Bugs #3391: usuario perteneciente a un subeje, puede ver objetos creados en un eje superior del usuario.&lt;br /&gt;
&lt;br /&gt;
Bugs #3402: Al guardar un calendario no llama sale enlace para sincronizar&lt;br /&gt;
&lt;br /&gt;
Bugs #3408: 25Campo Servicio en ventana General/Cuentas&lt;br /&gt;
&lt;br /&gt;
Bugs #3413: error literal&lt;br /&gt;
&lt;br /&gt;
Bugs #3415: Problemas con el portal&lt;br /&gt;
&lt;br /&gt;
Bugs #3427: el nombre del campo &amp;quot;grabar enrutamiento&amp;quot; del objeto Nodo, en el portal de administracion lleva a dudas.&lt;br /&gt;
&lt;br /&gt;
Bugs #3428: duda si el campo &amp;quot;prefijo entidad destino&amp;quot; debería ser obligatorio&lt;br /&gt;
&lt;br /&gt;
Bugs #3429: Menu por detras de la ventana de datos de una agenda&lt;br /&gt;
&lt;br /&gt;
Bugs #3430: problema el campo &amp;quot;MAC&amp;quot; de Aprosionamiento en Telefonos del portal de administracion&lt;br /&gt;
&lt;br /&gt;
Bugs #3444: 5ruta mostrada para acceder a Puestos en Vivait SUIT ACD+ del portal de administración.&lt;br /&gt;
&lt;br /&gt;
Bugs #3459: Al cambiar el telefono en la extensión no lo hace en la ventana telefonos&lt;br /&gt;
&lt;br /&gt;
Bugs #3488: Salas de conferencia, el numero no puede ser repetido&lt;br /&gt;
&lt;br /&gt;
Bugs #3490: Buzones -&amp;gt; el numero debe ser unico no puede repetirse.&lt;br /&gt;
&lt;br /&gt;
Bugs #3494: Finales -&amp;gt; el numero de Final debe ser unico no puede repetirse. y validar numero maximo a introducir.&lt;br /&gt;
&lt;br /&gt;
Bugs #3495: No valida tamaño del motivo y falla al insertar o actualizar y nombre es obligatorio y no esta validando&lt;br /&gt;
&lt;br /&gt;
Bugs #3502: Falta Idioma en tab usuario de opción usuario&lt;br /&gt;
&lt;br /&gt;
Bugs #3525: Si en extensiones &amp;quot;Hay movilidad&amp;quot; es NO el usuario movilidad se inserta/actualiza a null&lt;br /&gt;
&lt;br /&gt;
Bugs #3567: Literales no asignados en el portal&lt;br /&gt;
&lt;br /&gt;
Bugs #3609: Redimensión portal&lt;br /&gt;
&lt;br /&gt;
Bugs #3626: Los motivos de conexión creados desde el portalñ deben ser mayores de 100.&lt;br /&gt;
&lt;br /&gt;
Bugs #3677: Cambio de literal&lt;br /&gt;
&lt;br /&gt;
Bugs #3691: Revisión de literales en Ingles para internacionalización&lt;br /&gt;
&lt;br /&gt;
Bugs #3774: Bugs en Enlace exterior&lt;br /&gt;
&lt;br /&gt;
Bugs #3801: Si la validación del usuario es mediante LDAP la clave deja de ser un campo obligatorio&lt;br /&gt;
&lt;br /&gt;
Bugs #3824: Al descargar una locucion de Vivait-Response -&amp;gt; Locuciones FALLA&lt;br /&gt;
&lt;br /&gt;
Bugs #3872: Cajas de texto demasiado grandes en el portal&lt;br /&gt;
&lt;br /&gt;
Bugs #3886: Campo &amp;quot;La PBX está pendiente de sincronización&amp;quot; descuadra el resto de campos de la cabecera&lt;br /&gt;
&lt;br /&gt;
Bugs #3903: No validad el campo idioma en usuarios -&amp;gt; administrar usuarios ya que no es obligatorio rellenarlo&lt;br /&gt;
&lt;br /&gt;
Bugs #4080: Error al actualizar un usuario&lt;br /&gt;
&lt;br /&gt;
Bugs #4301: Error en argendas Vivait-Call&lt;br /&gt;
&lt;br /&gt;
Bugs #4403: Error al cambiar categoria en destinos externos&lt;br /&gt;
&lt;br /&gt;
Bugs #4415: Pequeños errores&lt;br /&gt;
&lt;br /&gt;
Bugs #4520: Error al crear Grupos ACD&lt;br /&gt;
&lt;br /&gt;
Bugs #4621: No despliega plantilla SIP en nodos&lt;br /&gt;
&lt;br /&gt;
Bugs #4648: No funciona login por LDAP&lt;br /&gt;
&lt;br /&gt;
Bugs #4668: corregir literal en Nodos&lt;br /&gt;
&lt;br /&gt;
Bugs #4669: No aparecen grupos ACD en el despegable de la ventana de Cinfig. monitores&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2524: Mejoras en las panallas de Filtros de busquedas&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2802: Selección y borrado masivo en portal VIVAit&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2845: Nueva imagen del Portal en Versión V.3.5.0&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2882: Modificaciones en ventana &amp;quot;Editar contactos&amp;quot; filtrado y cambio de estado&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2883: Modificaciones en ventana &amp;quot;Editar contactos&amp;quot; para visualización de prioridades&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2891: Acceso por https al Portal de administración&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2916: Operaciones sobre movilidad&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2985: Cabeceras en .java y en .jsp&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3086: Cambios en gestión de permisos de acceso a portal administración&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3087: Cambios en gestión de permisos de acceso a portal de usuario&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3148: Visualizar dos telefonos en la tabla de agenda para tener acceso directo sin tener que entrar al formulario.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3166: Cambios en portal de administración para gestión de chat&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3238: Nuevo campo en VIVAIT SUITE ACD+/PERFILES&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3311: campo de busqueda en la tabla , al rellenar con algo, se mantiene el estado en el portal de administracion.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3349: Mergeo sobre los últimos desarrollos&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3433: Gestión de calendario en la ventana de perfiles&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3552: Gestión de proyectos, analisis de incidencias, bugs encontrados y solucionados, y nuevas funcionalidades.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3566: Desarrollo de vulnerabilidad de seguridad&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3568: Diseño de cajas&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3658: Campos en COM_NODOS para definir el ws de multicanalidad&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3669: Nuevas tablas CEN_MULTICANAL_TEXTO_XXXX&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3676: Nuevo campo enpre-rutas&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3731: Vistas específicas de los datos que se muestran.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3744: Crear campo en COM_NODOS&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3753: Exportación de resultados de ventanas de listado&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3826: Estudio Graficas para mostrar informacion del portald e administración de forma amigable.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4489: La tabla COM_NODOS tiene un nuevo campo&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4597: Campo &amp;quot;Host multicanalidad y Puerto multicanalidad&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Tracker Web (3.3.0 → 3.4.0)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #137: Poder filtrar por campaña&lt;br /&gt;
&lt;br /&gt;
==Tracker Windows (3.2.0 → 3.4.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3730: problema de valoracion de segmento en el VIVait Tracker de Escritorio.&lt;br /&gt;
&lt;br /&gt;
==VIVA supervisor (3.2.0 → 3.4.0)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4431: Soporte chat&lt;br /&gt;
&lt;br /&gt;
==VIVA report (3.2.2 → 3.3.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3439: INFORME DE LLAMADAS POR GRUPO ACD&lt;br /&gt;
&lt;br /&gt;
Bugs #3548: Datos totales llamadas en Informe Tipológico unificado&lt;br /&gt;
&lt;br /&gt;
Bugs #4699: Error al mostrar informe por pantalla&lt;br /&gt;
&lt;br /&gt;
Bugs #4783: Error al generear informe de produccion&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3559: Filtros de agente con nombre&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4176: Creación de librerías dinámicas en Lazarus &lt;br /&gt;
&lt;br /&gt;
Vulnerabilidad #4333: Modificación o eliminación de la limitación de usuario desde scripting&lt;br /&gt;
&lt;br /&gt;
==VIVA desk (3.3.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3782: No cierra formulario en progresivo y predictivo cuando no se descuelga la llamada el agente&lt;br /&gt;
&lt;br /&gt;
Bugs #4461: Fallo boton de copiar código de cliente en formulario mdesigner.exe&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4292: Vivait-desk pruebas con soporte chat&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4401: Versión 3.5.0&lt;br /&gt;
&lt;br /&gt;
==VIVA designer ( 3.1.0 → 3.2.0)==&lt;br /&gt;
&lt;br /&gt;
Designer - Nuevas funcionalidades #4400: Añadir por designer los 16 campos de los contactos&lt;br /&gt;
&lt;br /&gt;
==Preview (3.4.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
==Phoneprov-tftp ( 3.0.3→ 3.0.3)==&lt;br /&gt;
&lt;br /&gt;
==Portal de Usuario (3.0.0 → 3.1.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3310: Cambio de logo &lt;br /&gt;
&lt;br /&gt;
Bugs #4002: No se loga por LDAP&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2915: Operaciones sobre movilidad&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3130: Visualizar dos teléfonos en la tabla de agenda para tener acceso directo sin tener que entrar al formulario.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3165: Desarrollo de interfaz CHAT en portal de usuario&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4847: Añadir el campo C_CUENTA_LDAP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:administrador]]&lt;br /&gt;
[[Category:Plataforma VIVAit]]&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Release_Notes_Plataforma_VIVAit_3.1&amp;diff=5940</id>
		<title>Release Notes Plataforma VIVAit 3.1</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Release_Notes_Plataforma_VIVAit_3.1&amp;diff=5940"/>
		<updated>2017-06-12T13:59:54Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* Asterisk Corporativo (3.4.1 → 3.4.4) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!!Plataforma''VIVA''it&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Aplica a los productos:&lt;br /&gt;
* '''''VIVA'''''it Call 3.1&lt;br /&gt;
* '''''VIVA'''''it Suite 3.5&lt;br /&gt;
&lt;br /&gt;
==Lázarus común (3.4.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3646: Nuevas clases de dispositivo TClaseDispositivo&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3694: Modificaciones en nimitz.pas&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3805: Nueva opción en el enumerado TComponente&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4472: Nuevos valores enumerados en TTipoContenido&lt;br /&gt;
&lt;br /&gt;
==BBDD (3.6.0 → 3.8.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3653: CEN_ENLACE_EXTERIOR ID_PLANTILLA es VARCHAR&lt;br /&gt;
&lt;br /&gt;
Bugs #3832: Modificacion de los Datos básicos para que los registros particulares se inserten con ID muy superior para que asi podamos eliminar los Datos particulares y volver a insertarlos&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3487: Campos nuevos en supervisor&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3553: Campo que indique que un nodo tiene el servicio recordCentral&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3582: Nueva entrada enumerado TTipoInforme&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3606: Añadir a los datos básicos los campos que se emplean en las plantillas en forma de texto&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3643: Nuevas clases de dispositivo TClaseDispositivo&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3644: Nuevas clases de dispositivo TClaseDispositivo&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3660: Nuevos valores en enumerado TClasePlantilla&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3667: Campo E_TIPO_CANAL en CEN_DISPOSITIVOS&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3693: Nuevos valores enumerado TSegTipoSeg&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3804: Añadir opción al enumerado TComponente&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4473: Modificación de la tabla DAT_MENSAJES&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4474: Modificación enumerado TTipoContenido&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4478: Creación de la tabla ACD CHAT USUARIOS&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4488: Añadir campo ID_PLANTILLA_SIP_GENERAL en COM_NODOS&lt;br /&gt;
&lt;br /&gt;
Bugs #3348: Quitar TElementosSincronizar&lt;br /&gt;
&lt;br /&gt;
Bugs #4526: Cambio enumerados&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3253: Crear un campo en base de datos para generar el recordCentral&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3651: Tablas para chat CEN_MULTICANAL_TEXTO_XXX&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4626: Campo LDAP para sincronizar Agendas&lt;br /&gt;
&lt;br /&gt;
== Asterisk ACD (3.3.1 → 3.4.1)==&lt;br /&gt;
&lt;br /&gt;
== DialPlan ACD (3.3.2 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
== Asterisk Corporativo (3.4.1 → 3.4.4)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3612: Versión asterisk cert3&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4143: parche BLF cisco en asterisk 13.1 cert 7&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4151: Se añade la funcionalidad del perro guardian&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4319: Habilitar conferencias y desvío incondicional en teléfonos Cisco en modo SIP.&lt;br /&gt;
&lt;br /&gt;
== DialPlan Corporativo (3.3.4 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3586: Fallo al borrar grabaciones PCI&lt;br /&gt;
&lt;br /&gt;
Bugs #3652: Error locución en activar y cancelar retrollamada&lt;br /&gt;
&lt;br /&gt;
Bugs #4516: Desvios a mensajeria por usuario no reproduce locución desvio desactivado&lt;br /&gt;
&lt;br /&gt;
Bugs #4542: Establecer el cdr a no&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4000: Nuevas facilidades echo y milliwatt&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4021: Al transferir una llamada, si el numero no esta disponible que vuelva la llamada&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4675: Crear fichrero particular para colas de centralita&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4818: Añadir el campo leavewhenempty a la plantilla de grupos corporativos&lt;br /&gt;
&lt;br /&gt;
==Generaconf (3.4.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3169: Generar ficheros recordNodo y recordCentral&lt;br /&gt;
&lt;br /&gt;
Bugs #3251: Cambiar select de DAT_SINCRONIZA por incompatibiliadad con MySQL 5.7 (Full group by)&lt;br /&gt;
&lt;br /&gt;
Bugs #3345: Los campos de objeto tienen proridad sobre los de plantilla&lt;br /&gt;
&lt;br /&gt;
Bugs #3347: Generar archivos correctamente desde sincronización manual&lt;br /&gt;
&lt;br /&gt;
Bugs #3406: Fallos varios en Generaconf para calendarios&lt;br /&gt;
&lt;br /&gt;
Bugs #3766: Error en Generaconf debido a timeout de libreria java&lt;br /&gt;
&lt;br /&gt;
Bugs #4884: No llama a la funcion dialplan reliad al generar el fichero ext_MDtel_Web.conf&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3337: Generar chan_dahdi.conf&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3532: Generar campo Qualify de los Nodos&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4144: Modificacion al generar grupos de captura&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4490: Se ha creado un campo en COM_NODOS ID_PLANTILLA_SIP_GENERAL&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4512: Los nodos ACD tienen que ser trunkinternos&lt;br /&gt;
&lt;br /&gt;
==Intz-nimitz ( 3.4.1 → 3.4.2)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4142: Cambio en prioridades en destinos externos&lt;br /&gt;
&lt;br /&gt;
==recordCentral (4.0.0 → 4.0.1)==&lt;br /&gt;
&lt;br /&gt;
Bugs #4747: No codifica en ogg&lt;br /&gt;
&lt;br /&gt;
==recordNodo (4.0.0 → 4.0.0)==&lt;br /&gt;
&lt;br /&gt;
==myACDSuperV (5.3.2 → 5.3.2)==&lt;br /&gt;
&lt;br /&gt;
==motorSal (3.3.0 → 3.4.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3611: Contactos en campaña saliente bajo de manda&lt;br /&gt;
&lt;br /&gt;
Bugs #3780: Parada del motorsal cuando en la descripción de la cola ocupa mas de 64 caracteres&lt;br /&gt;
&lt;br /&gt;
Bugs #3841: Mejoras en modulo empleado por Antonio Sanchez&lt;br /&gt;
&lt;br /&gt;
==VIVAit-cti (3.0.1 → 3.0.2)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3136: Problema abrir formulario en llamadas salientes&lt;br /&gt;
&lt;br /&gt;
==MultiMonitorWeb (3.1.0 → 3.2.0)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3289: Cabeceras en monitor&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4206: Acceder a la web del multimonitor directamente con un usuario y contraseña desde la propia url&lt;br /&gt;
&lt;br /&gt;
==Portal (3.4.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #2840: Error en campo Eje 1 de la vista permisos de usuarios&lt;br /&gt;
&lt;br /&gt;
Bugs #2841: Error en campo Eje 1 de la vista permisos de usuarios&lt;br /&gt;
&lt;br /&gt;
Bugs #2846: Fallo de seguridad en Login&lt;br /&gt;
&lt;br /&gt;
Bugs #2847: Literales en Contactos Click2Call&lt;br /&gt;
&lt;br /&gt;
Bugs #2852: Error al recuperar la información del campo &amp;quot;tipo formulario&amp;quot; en Grupos ACD&lt;br /&gt;
&lt;br /&gt;
Bugs #2866: Gestionar posible error en Extensiones en el campo Puesto&lt;br /&gt;
&lt;br /&gt;
Bugs #2930: Cambiar a valor por defecto no&lt;br /&gt;
&lt;br /&gt;
Bugs #2971: Menu desplegable por detras del formulario&lt;br /&gt;
&lt;br /&gt;
Bugs #3014: Duplica extensiones ya asignadas a un grupo en ViVAit Call.&lt;br /&gt;
&lt;br /&gt;
Bugs #3059: No puedo usar ningún filtro de búsqueda para buscar por usuario asignado a una extensión o al revés.&lt;br /&gt;
&lt;br /&gt;
Bugs #3171: Al borrar no vuelve a la pagina inicial de filtro, queremos que mantenga el filtro utilizado al volver de un borrado Y de un recuperado&lt;br /&gt;
&lt;br /&gt;
Bugs #3199: Rellenar valores de los umbrales de alarma del monitor web no ha de ser obligatorio&lt;br /&gt;
&lt;br /&gt;
Bugs #3261: literal sincronizado manual&lt;br /&gt;
&lt;br /&gt;
Bugs #3344: al borrar una extensión en grupos acd de centralita me va a otra pantalla&lt;br /&gt;
&lt;br /&gt;
Bugs #3391: usuario perteneciente a un subeje, puede ver objetos creados en un eje superior del usuario.&lt;br /&gt;
&lt;br /&gt;
Bugs #3402: Al guardar un calendario no llama sale enlace para sincronizar&lt;br /&gt;
&lt;br /&gt;
Bugs #3408: 25Campo Servicio en ventana General/Cuentas&lt;br /&gt;
&lt;br /&gt;
Bugs #3413: error literal&lt;br /&gt;
&lt;br /&gt;
Bugs #3415: Problemas con el portal&lt;br /&gt;
&lt;br /&gt;
Bugs #3427: el nombre del campo &amp;quot;grabar enrutamiento&amp;quot; del objeto Nodo, en el portal de administracion lleva a dudas.&lt;br /&gt;
&lt;br /&gt;
Bugs #3428: duda si el campo &amp;quot;prefijo entidad destino&amp;quot; debería ser obligatorio&lt;br /&gt;
&lt;br /&gt;
Bugs #3429: Menu por detras de la ventana de datos de una agenda&lt;br /&gt;
&lt;br /&gt;
Bugs #3430: problema el campo &amp;quot;MAC&amp;quot; de Aprosionamiento en Telefonos del portal de administracion&lt;br /&gt;
&lt;br /&gt;
Bugs #3444: 5ruta mostrada para acceder a Puestos en Vivait SUIT ACD+ del portal de administración.&lt;br /&gt;
&lt;br /&gt;
Bugs #3459: Al cambiar el telefono en la extensión no lo hace en la ventana telefonos&lt;br /&gt;
&lt;br /&gt;
Bugs #3488: Salas de conferencia, el numero no puede ser repetido&lt;br /&gt;
&lt;br /&gt;
Bugs #3490: Buzones -&amp;gt; el numero debe ser unico no puede repetirse.&lt;br /&gt;
&lt;br /&gt;
Bugs #3494: Finales -&amp;gt; el numero de Final debe ser unico no puede repetirse. y validar numero maximo a introducir.&lt;br /&gt;
&lt;br /&gt;
Bugs #3495: No valida tamaño del motivo y falla al insertar o actualizar y nombre es obligatorio y no esta validando&lt;br /&gt;
&lt;br /&gt;
Bugs #3502: Falta Idioma en tab usuario de opción usuario&lt;br /&gt;
&lt;br /&gt;
Bugs #3525: Si en extensiones &amp;quot;Hay movilidad&amp;quot; es NO el usuario movilidad se inserta/actualiza a null&lt;br /&gt;
&lt;br /&gt;
Bugs #3567: Literales no asignados en el portal&lt;br /&gt;
&lt;br /&gt;
Bugs #3609: Redimensión portal&lt;br /&gt;
&lt;br /&gt;
Bugs #3626: Los motivos de conexión creados desde el portalñ deben ser mayores de 100.&lt;br /&gt;
&lt;br /&gt;
Bugs #3677: Cambio de literal&lt;br /&gt;
&lt;br /&gt;
Bugs #3691: Revisión de literales en Ingles para internacionalización&lt;br /&gt;
&lt;br /&gt;
Bugs #3774: Bugs en Enlace exterior&lt;br /&gt;
&lt;br /&gt;
Bugs #3801: Si la validación del usuario es mediante LDAP la clave deja de ser un campo obligatorio&lt;br /&gt;
&lt;br /&gt;
Bugs #3824: Al descargar una locucion de Vivait-Response -&amp;gt; Locuciones FALLA&lt;br /&gt;
&lt;br /&gt;
Bugs #3872: Cajas de texto demasiado grandes en el portal&lt;br /&gt;
&lt;br /&gt;
Bugs #3886: Campo &amp;quot;La PBX está pendiente de sincronización&amp;quot; descuadra el resto de campos de la cabecera&lt;br /&gt;
&lt;br /&gt;
Bugs #3903: No validad el campo idioma en usuarios -&amp;gt; administrar usuarios ya que no es obligatorio rellenarlo&lt;br /&gt;
&lt;br /&gt;
Bugs #4080: Error al actualizar un usuario&lt;br /&gt;
&lt;br /&gt;
Bugs #4301: Error en argendas Vivait-Call&lt;br /&gt;
&lt;br /&gt;
Bugs #4403: Error al cambiar categoria en destinos externos&lt;br /&gt;
&lt;br /&gt;
Bugs #4415: Pequeños errores&lt;br /&gt;
&lt;br /&gt;
Bugs #4520: Error al crear Grupos ACD&lt;br /&gt;
&lt;br /&gt;
Bugs #4621: No despliega plantilla SIP en nodos&lt;br /&gt;
&lt;br /&gt;
Bugs #4648: No funciona login por LDAP&lt;br /&gt;
&lt;br /&gt;
Bugs #4668: corregir literal en Nodos&lt;br /&gt;
&lt;br /&gt;
Bugs #4669: No aparecen grupos ACD en el despegable de la ventana de Cinfig. monitores&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2524: Mejoras en las panallas de Filtros de busquedas&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2802: Selección y borrado masivo en portal VIVAit&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2845: Nueva imagen del Portal en Versión V.3.5.0&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2882: Modificaciones en ventana &amp;quot;Editar contactos&amp;quot; filtrado y cambio de estado&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2883: Modificaciones en ventana &amp;quot;Editar contactos&amp;quot; para visualización de prioridades&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2891: Acceso por https al Portal de administración&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2916: Operaciones sobre movilidad&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2985: Cabeceras en .java y en .jsp&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3086: Cambios en gestión de permisos de acceso a portal administración&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3087: Cambios en gestión de permisos de acceso a portal de usuario&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3148: Visualizar dos telefonos en la tabla de agenda para tener acceso directo sin tener que entrar al formulario.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3166: Cambios en portal de administración para gestión de chat&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3238: Nuevo campo en VIVAIT SUITE ACD+/PERFILES&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3311: campo de busqueda en la tabla , al rellenar con algo, se mantiene el estado en el portal de administracion.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3349: Mergeo sobre los últimos desarrollos&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3433: Gestión de calendario en la ventana de perfiles&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3552: Gestión de proyectos, analisis de incidencias, bugs encontrados y solucionados, y nuevas funcionalidades.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3566: Desarrollo de vulnerabilidad de seguridad&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3568: Diseño de cajas&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3658: Campos en COM_NODOS para definir el ws de multicanalidad&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3669: Nuevas tablas CEN_MULTICANAL_TEXTO_XXXX&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3676: Nuevo campo enpre-rutas&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3731: Vistas específicas de los datos que se muestran.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3744: Crear campo en COM_NODOS&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3753: Exportación de resultados de ventanas de listado&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3826: Estudio Graficas para mostrar informacion del portald e administración de forma amigable.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4489: La tabla COM_NODOS tiene un nuevo campo&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4597: Campo &amp;quot;Host multicanalidad y Puerto multicanalidad&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Tracker Web (3.3.0 → 3.4.0)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #137: Poder filtrar por campaña&lt;br /&gt;
&lt;br /&gt;
==Tracker Windows (3.2.0 → 3.4.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3730: problema de valoracion de segmento en el VIVait Tracker de Escritorio.&lt;br /&gt;
&lt;br /&gt;
==VIVA supervisor (3.2.0 → 3.4.0)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4431: Soporte chat&lt;br /&gt;
&lt;br /&gt;
==VIVA report (3.2.2 → 3.3.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3439: INFORME DE LLAMADAS POR GRUPO ACD&lt;br /&gt;
&lt;br /&gt;
Bugs #3548: Datos totales llamadas en Informe Tipológico unificado&lt;br /&gt;
&lt;br /&gt;
Bugs #4699: Error al mostrar informe por pantalla&lt;br /&gt;
&lt;br /&gt;
Bugs #4783: Error al generear informe de produccion&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3559: Filtros de agente con nombre&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4176: Creación de librerías dinámicas en Lazarus &lt;br /&gt;
&lt;br /&gt;
Vulnerabilidad #4333: Modificación o eliminación de la limitación de usuario desde scripting&lt;br /&gt;
&lt;br /&gt;
==VIVA desk (3.3.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3782: No cierra formulario en progresivo y predictivo cuando no se descuelga la llamada el agente&lt;br /&gt;
&lt;br /&gt;
Bugs #4461: Fallo boton de copiar código de cliente en formulario mdesigner.exe&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4292: Vivait-desk pruebas con soporte chat&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4401: Versión 3.5.0&lt;br /&gt;
&lt;br /&gt;
==VIVA designer ( 3.1.0 → 3.2.0)==&lt;br /&gt;
&lt;br /&gt;
Designer - Nuevas funcionalidades #4400: Añadir por designer los 16 campos de los contactos&lt;br /&gt;
&lt;br /&gt;
==Preview (3.4.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
==Phoneprov-tftp ( 3.0.3→ 3.0.3)==&lt;br /&gt;
&lt;br /&gt;
==Portal de Usuario (3.0.0 → 3.1.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3310: Cambio de logo &lt;br /&gt;
&lt;br /&gt;
Bugs #4002: No se loga por LDAP&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2915: Operaciones sobre movilidad&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3130: Visualizar dos teléfonos en la tabla de agenda para tener acceso directo sin tener que entrar al formulario.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3165: Desarrollo de interfaz CHAT en portal de usuario&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4847: Añadir el campo C_CUENTA_LDAP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:administrador]]&lt;br /&gt;
[[Category:Plataforma VIVAit]]&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Release_Notes_Plataforma_VIVAit_3.1&amp;diff=5939</id>
		<title>Release Notes Plataforma VIVAit 3.1</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Release_Notes_Plataforma_VIVAit_3.1&amp;diff=5939"/>
		<updated>2017-06-12T13:59:06Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* DialPlan Corporativo (3.3.4 → 3.5.0) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!!Plataforma''VIVA''it&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Aplica a los productos:&lt;br /&gt;
* '''''VIVA'''''it Call 3.1&lt;br /&gt;
* '''''VIVA'''''it Suite 3.5&lt;br /&gt;
&lt;br /&gt;
==Lázarus común (3.4.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3646: Nuevas clases de dispositivo TClaseDispositivo&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3694: Modificaciones en nimitz.pas&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3805: Nueva opción en el enumerado TComponente&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4472: Nuevos valores enumerados en TTipoContenido&lt;br /&gt;
&lt;br /&gt;
==BBDD (3.6.0 → 3.8.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3653: CEN_ENLACE_EXTERIOR ID_PLANTILLA es VARCHAR&lt;br /&gt;
&lt;br /&gt;
Bugs #3832: Modificacion de los Datos básicos para que los registros particulares se inserten con ID muy superior para que asi podamos eliminar los Datos particulares y volver a insertarlos&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3487: Campos nuevos en supervisor&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3553: Campo que indique que un nodo tiene el servicio recordCentral&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3582: Nueva entrada enumerado TTipoInforme&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3606: Añadir a los datos básicos los campos que se emplean en las plantillas en forma de texto&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3643: Nuevas clases de dispositivo TClaseDispositivo&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3644: Nuevas clases de dispositivo TClaseDispositivo&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3660: Nuevos valores en enumerado TClasePlantilla&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3667: Campo E_TIPO_CANAL en CEN_DISPOSITIVOS&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3693: Nuevos valores enumerado TSegTipoSeg&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3804: Añadir opción al enumerado TComponente&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4473: Modificación de la tabla DAT_MENSAJES&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4474: Modificación enumerado TTipoContenido&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4478: Creación de la tabla ACD CHAT USUARIOS&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4488: Añadir campo ID_PLANTILLA_SIP_GENERAL en COM_NODOS&lt;br /&gt;
&lt;br /&gt;
Bugs #3348: Quitar TElementosSincronizar&lt;br /&gt;
&lt;br /&gt;
Bugs #4526: Cambio enumerados&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3253: Crear un campo en base de datos para generar el recordCentral&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3651: Tablas para chat CEN_MULTICANAL_TEXTO_XXX&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4626: Campo LDAP para sincronizar Agendas&lt;br /&gt;
&lt;br /&gt;
== Asterisk ACD (3.3.1 → 3.4.1)==&lt;br /&gt;
&lt;br /&gt;
== DialPlan ACD (3.3.2 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
== Asterisk Corporativo (3.4.1 → 3.4.4)==&lt;br /&gt;
&lt;br /&gt;
== DialPlan Corporativo (3.3.4 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3586: Fallo al borrar grabaciones PCI&lt;br /&gt;
&lt;br /&gt;
Bugs #3652: Error locución en activar y cancelar retrollamada&lt;br /&gt;
&lt;br /&gt;
Bugs #4516: Desvios a mensajeria por usuario no reproduce locución desvio desactivado&lt;br /&gt;
&lt;br /&gt;
Bugs #4542: Establecer el cdr a no&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4000: Nuevas facilidades echo y milliwatt&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4021: Al transferir una llamada, si el numero no esta disponible que vuelva la llamada&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4675: Crear fichrero particular para colas de centralita&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4818: Añadir el campo leavewhenempty a la plantilla de grupos corporativos&lt;br /&gt;
&lt;br /&gt;
==Generaconf (3.4.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3169: Generar ficheros recordNodo y recordCentral&lt;br /&gt;
&lt;br /&gt;
Bugs #3251: Cambiar select de DAT_SINCRONIZA por incompatibiliadad con MySQL 5.7 (Full group by)&lt;br /&gt;
&lt;br /&gt;
Bugs #3345: Los campos de objeto tienen proridad sobre los de plantilla&lt;br /&gt;
&lt;br /&gt;
Bugs #3347: Generar archivos correctamente desde sincronización manual&lt;br /&gt;
&lt;br /&gt;
Bugs #3406: Fallos varios en Generaconf para calendarios&lt;br /&gt;
&lt;br /&gt;
Bugs #3766: Error en Generaconf debido a timeout de libreria java&lt;br /&gt;
&lt;br /&gt;
Bugs #4884: No llama a la funcion dialplan reliad al generar el fichero ext_MDtel_Web.conf&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3337: Generar chan_dahdi.conf&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3532: Generar campo Qualify de los Nodos&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4144: Modificacion al generar grupos de captura&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4490: Se ha creado un campo en COM_NODOS ID_PLANTILLA_SIP_GENERAL&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4512: Los nodos ACD tienen que ser trunkinternos&lt;br /&gt;
&lt;br /&gt;
==Intz-nimitz ( 3.4.1 → 3.4.2)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4142: Cambio en prioridades en destinos externos&lt;br /&gt;
&lt;br /&gt;
==recordCentral (4.0.0 → 4.0.1)==&lt;br /&gt;
&lt;br /&gt;
Bugs #4747: No codifica en ogg&lt;br /&gt;
&lt;br /&gt;
==recordNodo (4.0.0 → 4.0.0)==&lt;br /&gt;
&lt;br /&gt;
==myACDSuperV (5.3.2 → 5.3.2)==&lt;br /&gt;
&lt;br /&gt;
==motorSal (3.3.0 → 3.4.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3611: Contactos en campaña saliente bajo de manda&lt;br /&gt;
&lt;br /&gt;
Bugs #3780: Parada del motorsal cuando en la descripción de la cola ocupa mas de 64 caracteres&lt;br /&gt;
&lt;br /&gt;
Bugs #3841: Mejoras en modulo empleado por Antonio Sanchez&lt;br /&gt;
&lt;br /&gt;
==VIVAit-cti (3.0.1 → 3.0.2)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3136: Problema abrir formulario en llamadas salientes&lt;br /&gt;
&lt;br /&gt;
==MultiMonitorWeb (3.1.0 → 3.2.0)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3289: Cabeceras en monitor&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4206: Acceder a la web del multimonitor directamente con un usuario y contraseña desde la propia url&lt;br /&gt;
&lt;br /&gt;
==Portal (3.4.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #2840: Error en campo Eje 1 de la vista permisos de usuarios&lt;br /&gt;
&lt;br /&gt;
Bugs #2841: Error en campo Eje 1 de la vista permisos de usuarios&lt;br /&gt;
&lt;br /&gt;
Bugs #2846: Fallo de seguridad en Login&lt;br /&gt;
&lt;br /&gt;
Bugs #2847: Literales en Contactos Click2Call&lt;br /&gt;
&lt;br /&gt;
Bugs #2852: Error al recuperar la información del campo &amp;quot;tipo formulario&amp;quot; en Grupos ACD&lt;br /&gt;
&lt;br /&gt;
Bugs #2866: Gestionar posible error en Extensiones en el campo Puesto&lt;br /&gt;
&lt;br /&gt;
Bugs #2930: Cambiar a valor por defecto no&lt;br /&gt;
&lt;br /&gt;
Bugs #2971: Menu desplegable por detras del formulario&lt;br /&gt;
&lt;br /&gt;
Bugs #3014: Duplica extensiones ya asignadas a un grupo en ViVAit Call.&lt;br /&gt;
&lt;br /&gt;
Bugs #3059: No puedo usar ningún filtro de búsqueda para buscar por usuario asignado a una extensión o al revés.&lt;br /&gt;
&lt;br /&gt;
Bugs #3171: Al borrar no vuelve a la pagina inicial de filtro, queremos que mantenga el filtro utilizado al volver de un borrado Y de un recuperado&lt;br /&gt;
&lt;br /&gt;
Bugs #3199: Rellenar valores de los umbrales de alarma del monitor web no ha de ser obligatorio&lt;br /&gt;
&lt;br /&gt;
Bugs #3261: literal sincronizado manual&lt;br /&gt;
&lt;br /&gt;
Bugs #3344: al borrar una extensión en grupos acd de centralita me va a otra pantalla&lt;br /&gt;
&lt;br /&gt;
Bugs #3391: usuario perteneciente a un subeje, puede ver objetos creados en un eje superior del usuario.&lt;br /&gt;
&lt;br /&gt;
Bugs #3402: Al guardar un calendario no llama sale enlace para sincronizar&lt;br /&gt;
&lt;br /&gt;
Bugs #3408: 25Campo Servicio en ventana General/Cuentas&lt;br /&gt;
&lt;br /&gt;
Bugs #3413: error literal&lt;br /&gt;
&lt;br /&gt;
Bugs #3415: Problemas con el portal&lt;br /&gt;
&lt;br /&gt;
Bugs #3427: el nombre del campo &amp;quot;grabar enrutamiento&amp;quot; del objeto Nodo, en el portal de administracion lleva a dudas.&lt;br /&gt;
&lt;br /&gt;
Bugs #3428: duda si el campo &amp;quot;prefijo entidad destino&amp;quot; debería ser obligatorio&lt;br /&gt;
&lt;br /&gt;
Bugs #3429: Menu por detras de la ventana de datos de una agenda&lt;br /&gt;
&lt;br /&gt;
Bugs #3430: problema el campo &amp;quot;MAC&amp;quot; de Aprosionamiento en Telefonos del portal de administracion&lt;br /&gt;
&lt;br /&gt;
Bugs #3444: 5ruta mostrada para acceder a Puestos en Vivait SUIT ACD+ del portal de administración.&lt;br /&gt;
&lt;br /&gt;
Bugs #3459: Al cambiar el telefono en la extensión no lo hace en la ventana telefonos&lt;br /&gt;
&lt;br /&gt;
Bugs #3488: Salas de conferencia, el numero no puede ser repetido&lt;br /&gt;
&lt;br /&gt;
Bugs #3490: Buzones -&amp;gt; el numero debe ser unico no puede repetirse.&lt;br /&gt;
&lt;br /&gt;
Bugs #3494: Finales -&amp;gt; el numero de Final debe ser unico no puede repetirse. y validar numero maximo a introducir.&lt;br /&gt;
&lt;br /&gt;
Bugs #3495: No valida tamaño del motivo y falla al insertar o actualizar y nombre es obligatorio y no esta validando&lt;br /&gt;
&lt;br /&gt;
Bugs #3502: Falta Idioma en tab usuario de opción usuario&lt;br /&gt;
&lt;br /&gt;
Bugs #3525: Si en extensiones &amp;quot;Hay movilidad&amp;quot; es NO el usuario movilidad se inserta/actualiza a null&lt;br /&gt;
&lt;br /&gt;
Bugs #3567: Literales no asignados en el portal&lt;br /&gt;
&lt;br /&gt;
Bugs #3609: Redimensión portal&lt;br /&gt;
&lt;br /&gt;
Bugs #3626: Los motivos de conexión creados desde el portalñ deben ser mayores de 100.&lt;br /&gt;
&lt;br /&gt;
Bugs #3677: Cambio de literal&lt;br /&gt;
&lt;br /&gt;
Bugs #3691: Revisión de literales en Ingles para internacionalización&lt;br /&gt;
&lt;br /&gt;
Bugs #3774: Bugs en Enlace exterior&lt;br /&gt;
&lt;br /&gt;
Bugs #3801: Si la validación del usuario es mediante LDAP la clave deja de ser un campo obligatorio&lt;br /&gt;
&lt;br /&gt;
Bugs #3824: Al descargar una locucion de Vivait-Response -&amp;gt; Locuciones FALLA&lt;br /&gt;
&lt;br /&gt;
Bugs #3872: Cajas de texto demasiado grandes en el portal&lt;br /&gt;
&lt;br /&gt;
Bugs #3886: Campo &amp;quot;La PBX está pendiente de sincronización&amp;quot; descuadra el resto de campos de la cabecera&lt;br /&gt;
&lt;br /&gt;
Bugs #3903: No validad el campo idioma en usuarios -&amp;gt; administrar usuarios ya que no es obligatorio rellenarlo&lt;br /&gt;
&lt;br /&gt;
Bugs #4080: Error al actualizar un usuario&lt;br /&gt;
&lt;br /&gt;
Bugs #4301: Error en argendas Vivait-Call&lt;br /&gt;
&lt;br /&gt;
Bugs #4403: Error al cambiar categoria en destinos externos&lt;br /&gt;
&lt;br /&gt;
Bugs #4415: Pequeños errores&lt;br /&gt;
&lt;br /&gt;
Bugs #4520: Error al crear Grupos ACD&lt;br /&gt;
&lt;br /&gt;
Bugs #4621: No despliega plantilla SIP en nodos&lt;br /&gt;
&lt;br /&gt;
Bugs #4648: No funciona login por LDAP&lt;br /&gt;
&lt;br /&gt;
Bugs #4668: corregir literal en Nodos&lt;br /&gt;
&lt;br /&gt;
Bugs #4669: No aparecen grupos ACD en el despegable de la ventana de Cinfig. monitores&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2524: Mejoras en las panallas de Filtros de busquedas&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2802: Selección y borrado masivo en portal VIVAit&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2845: Nueva imagen del Portal en Versión V.3.5.0&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2882: Modificaciones en ventana &amp;quot;Editar contactos&amp;quot; filtrado y cambio de estado&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2883: Modificaciones en ventana &amp;quot;Editar contactos&amp;quot; para visualización de prioridades&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2891: Acceso por https al Portal de administración&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2916: Operaciones sobre movilidad&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2985: Cabeceras en .java y en .jsp&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3086: Cambios en gestión de permisos de acceso a portal administración&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3087: Cambios en gestión de permisos de acceso a portal de usuario&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3148: Visualizar dos telefonos en la tabla de agenda para tener acceso directo sin tener que entrar al formulario.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3166: Cambios en portal de administración para gestión de chat&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3238: Nuevo campo en VIVAIT SUITE ACD+/PERFILES&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3311: campo de busqueda en la tabla , al rellenar con algo, se mantiene el estado en el portal de administracion.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3349: Mergeo sobre los últimos desarrollos&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3433: Gestión de calendario en la ventana de perfiles&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3552: Gestión de proyectos, analisis de incidencias, bugs encontrados y solucionados, y nuevas funcionalidades.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3566: Desarrollo de vulnerabilidad de seguridad&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3568: Diseño de cajas&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3658: Campos en COM_NODOS para definir el ws de multicanalidad&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3669: Nuevas tablas CEN_MULTICANAL_TEXTO_XXXX&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3676: Nuevo campo enpre-rutas&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3731: Vistas específicas de los datos que se muestran.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3744: Crear campo en COM_NODOS&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3753: Exportación de resultados de ventanas de listado&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3826: Estudio Graficas para mostrar informacion del portald e administración de forma amigable.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4489: La tabla COM_NODOS tiene un nuevo campo&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4597: Campo &amp;quot;Host multicanalidad y Puerto multicanalidad&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Tracker Web (3.3.0 → 3.4.0)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #137: Poder filtrar por campaña&lt;br /&gt;
&lt;br /&gt;
==Tracker Windows (3.2.0 → 3.4.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3730: problema de valoracion de segmento en el VIVait Tracker de Escritorio.&lt;br /&gt;
&lt;br /&gt;
==VIVA supervisor (3.2.0 → 3.4.0)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4431: Soporte chat&lt;br /&gt;
&lt;br /&gt;
==VIVA report (3.2.2 → 3.3.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3439: INFORME DE LLAMADAS POR GRUPO ACD&lt;br /&gt;
&lt;br /&gt;
Bugs #3548: Datos totales llamadas en Informe Tipológico unificado&lt;br /&gt;
&lt;br /&gt;
Bugs #4699: Error al mostrar informe por pantalla&lt;br /&gt;
&lt;br /&gt;
Bugs #4783: Error al generear informe de produccion&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3559: Filtros de agente con nombre&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4176: Creación de librerías dinámicas en Lazarus &lt;br /&gt;
&lt;br /&gt;
Vulnerabilidad #4333: Modificación o eliminación de la limitación de usuario desde scripting&lt;br /&gt;
&lt;br /&gt;
==VIVA desk (3.3.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3782: No cierra formulario en progresivo y predictivo cuando no se descuelga la llamada el agente&lt;br /&gt;
&lt;br /&gt;
Bugs #4461: Fallo boton de copiar código de cliente en formulario mdesigner.exe&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4292: Vivait-desk pruebas con soporte chat&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4401: Versión 3.5.0&lt;br /&gt;
&lt;br /&gt;
==VIVA designer ( 3.1.0 → 3.2.0)==&lt;br /&gt;
&lt;br /&gt;
Designer - Nuevas funcionalidades #4400: Añadir por designer los 16 campos de los contactos&lt;br /&gt;
&lt;br /&gt;
==Preview (3.4.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
==Phoneprov-tftp ( 3.0.3→ 3.0.3)==&lt;br /&gt;
&lt;br /&gt;
==Portal de Usuario (3.0.0 → 3.1.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3310: Cambio de logo &lt;br /&gt;
&lt;br /&gt;
Bugs #4002: No se loga por LDAP&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2915: Operaciones sobre movilidad&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3130: Visualizar dos teléfonos en la tabla de agenda para tener acceso directo sin tener que entrar al formulario.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3165: Desarrollo de interfaz CHAT en portal de usuario&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4847: Añadir el campo C_CUENTA_LDAP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:administrador]]&lt;br /&gt;
[[Category:Plataforma VIVAit]]&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Release_Notes_Plataforma_VIVAit_3.1&amp;diff=5938</id>
		<title>Release Notes Plataforma VIVAit 3.1</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Release_Notes_Plataforma_VIVAit_3.1&amp;diff=5938"/>
		<updated>2017-06-12T13:58:40Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* DialPlan Corporativo (3.3.4 → 3.5.0) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!!Plataforma''VIVA''it&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Aplica a los productos:&lt;br /&gt;
* '''''VIVA'''''it Call 3.1&lt;br /&gt;
* '''''VIVA'''''it Suite 3.5&lt;br /&gt;
&lt;br /&gt;
==Lázarus común (3.4.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3646: Nuevas clases de dispositivo TClaseDispositivo&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3694: Modificaciones en nimitz.pas&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3805: Nueva opción en el enumerado TComponente&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4472: Nuevos valores enumerados en TTipoContenido&lt;br /&gt;
&lt;br /&gt;
==BBDD (3.6.0 → 3.8.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3653: CEN_ENLACE_EXTERIOR ID_PLANTILLA es VARCHAR&lt;br /&gt;
&lt;br /&gt;
Bugs #3832: Modificacion de los Datos básicos para que los registros particulares se inserten con ID muy superior para que asi podamos eliminar los Datos particulares y volver a insertarlos&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3487: Campos nuevos en supervisor&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3553: Campo que indique que un nodo tiene el servicio recordCentral&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3582: Nueva entrada enumerado TTipoInforme&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3606: Añadir a los datos básicos los campos que se emplean en las plantillas en forma de texto&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3643: Nuevas clases de dispositivo TClaseDispositivo&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3644: Nuevas clases de dispositivo TClaseDispositivo&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3660: Nuevos valores en enumerado TClasePlantilla&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3667: Campo E_TIPO_CANAL en CEN_DISPOSITIVOS&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3693: Nuevos valores enumerado TSegTipoSeg&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3804: Añadir opción al enumerado TComponente&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4473: Modificación de la tabla DAT_MENSAJES&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4474: Modificación enumerado TTipoContenido&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4478: Creación de la tabla ACD CHAT USUARIOS&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4488: Añadir campo ID_PLANTILLA_SIP_GENERAL en COM_NODOS&lt;br /&gt;
&lt;br /&gt;
Bugs #3348: Quitar TElementosSincronizar&lt;br /&gt;
&lt;br /&gt;
Bugs #4526: Cambio enumerados&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3253: Crear un campo en base de datos para generar el recordCentral&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3651: Tablas para chat CEN_MULTICANAL_TEXTO_XXX&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4626: Campo LDAP para sincronizar Agendas&lt;br /&gt;
&lt;br /&gt;
== Asterisk ACD (3.3.1 → 3.4.1)==&lt;br /&gt;
&lt;br /&gt;
== DialPlan ACD (3.3.2 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
== Asterisk Corporativo (3.4.1 → 3.4.4)==&lt;br /&gt;
&lt;br /&gt;
== DialPlan Corporativo (3.3.4 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3586: Fallo al borrar grabaciones PCI&lt;br /&gt;
Bugs #3652: Error locución en activar y cancelar retrollamada&lt;br /&gt;
Bugs #4516: Desvios a mensajeria por usuario no reproduce locución desvio desactivado&lt;br /&gt;
Bugs #4542: Establecer el cdr a no&lt;br /&gt;
Nuevas funcionalidades #4000: Nuevas facilidades echo y milliwatt&lt;br /&gt;
Nuevas funcionalidades #4021: Al transferir una llamada, si el numero no esta disponible que vuelva la llamada&lt;br /&gt;
Nuevas funcionalidades #4675: Crear fichrero particular para colas de centralita&lt;br /&gt;
Nuevas funcionalidades #4818: Añadir el campo leavewhenempty a la plantilla de grupos corporativos&lt;br /&gt;
Cerrar versión #4889: Cerrar versión 3.4.0 DialPlan CORP&lt;br /&gt;
&lt;br /&gt;
==Generaconf (3.4.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3169: Generar ficheros recordNodo y recordCentral&lt;br /&gt;
&lt;br /&gt;
Bugs #3251: Cambiar select de DAT_SINCRONIZA por incompatibiliadad con MySQL 5.7 (Full group by)&lt;br /&gt;
&lt;br /&gt;
Bugs #3345: Los campos de objeto tienen proridad sobre los de plantilla&lt;br /&gt;
&lt;br /&gt;
Bugs #3347: Generar archivos correctamente desde sincronización manual&lt;br /&gt;
&lt;br /&gt;
Bugs #3406: Fallos varios en Generaconf para calendarios&lt;br /&gt;
&lt;br /&gt;
Bugs #3766: Error en Generaconf debido a timeout de libreria java&lt;br /&gt;
&lt;br /&gt;
Bugs #4884: No llama a la funcion dialplan reliad al generar el fichero ext_MDtel_Web.conf&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3337: Generar chan_dahdi.conf&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3532: Generar campo Qualify de los Nodos&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4144: Modificacion al generar grupos de captura&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4490: Se ha creado un campo en COM_NODOS ID_PLANTILLA_SIP_GENERAL&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4512: Los nodos ACD tienen que ser trunkinternos&lt;br /&gt;
&lt;br /&gt;
==Intz-nimitz ( 3.4.1 → 3.4.2)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4142: Cambio en prioridades en destinos externos&lt;br /&gt;
&lt;br /&gt;
==recordCentral (4.0.0 → 4.0.1)==&lt;br /&gt;
&lt;br /&gt;
Bugs #4747: No codifica en ogg&lt;br /&gt;
&lt;br /&gt;
==recordNodo (4.0.0 → 4.0.0)==&lt;br /&gt;
&lt;br /&gt;
==myACDSuperV (5.3.2 → 5.3.2)==&lt;br /&gt;
&lt;br /&gt;
==motorSal (3.3.0 → 3.4.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3611: Contactos en campaña saliente bajo de manda&lt;br /&gt;
&lt;br /&gt;
Bugs #3780: Parada del motorsal cuando en la descripción de la cola ocupa mas de 64 caracteres&lt;br /&gt;
&lt;br /&gt;
Bugs #3841: Mejoras en modulo empleado por Antonio Sanchez&lt;br /&gt;
&lt;br /&gt;
==VIVAit-cti (3.0.1 → 3.0.2)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3136: Problema abrir formulario en llamadas salientes&lt;br /&gt;
&lt;br /&gt;
==MultiMonitorWeb (3.1.0 → 3.2.0)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3289: Cabeceras en monitor&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4206: Acceder a la web del multimonitor directamente con un usuario y contraseña desde la propia url&lt;br /&gt;
&lt;br /&gt;
==Portal (3.4.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #2840: Error en campo Eje 1 de la vista permisos de usuarios&lt;br /&gt;
&lt;br /&gt;
Bugs #2841: Error en campo Eje 1 de la vista permisos de usuarios&lt;br /&gt;
&lt;br /&gt;
Bugs #2846: Fallo de seguridad en Login&lt;br /&gt;
&lt;br /&gt;
Bugs #2847: Literales en Contactos Click2Call&lt;br /&gt;
&lt;br /&gt;
Bugs #2852: Error al recuperar la información del campo &amp;quot;tipo formulario&amp;quot; en Grupos ACD&lt;br /&gt;
&lt;br /&gt;
Bugs #2866: Gestionar posible error en Extensiones en el campo Puesto&lt;br /&gt;
&lt;br /&gt;
Bugs #2930: Cambiar a valor por defecto no&lt;br /&gt;
&lt;br /&gt;
Bugs #2971: Menu desplegable por detras del formulario&lt;br /&gt;
&lt;br /&gt;
Bugs #3014: Duplica extensiones ya asignadas a un grupo en ViVAit Call.&lt;br /&gt;
&lt;br /&gt;
Bugs #3059: No puedo usar ningún filtro de búsqueda para buscar por usuario asignado a una extensión o al revés.&lt;br /&gt;
&lt;br /&gt;
Bugs #3171: Al borrar no vuelve a la pagina inicial de filtro, queremos que mantenga el filtro utilizado al volver de un borrado Y de un recuperado&lt;br /&gt;
&lt;br /&gt;
Bugs #3199: Rellenar valores de los umbrales de alarma del monitor web no ha de ser obligatorio&lt;br /&gt;
&lt;br /&gt;
Bugs #3261: literal sincronizado manual&lt;br /&gt;
&lt;br /&gt;
Bugs #3344: al borrar una extensión en grupos acd de centralita me va a otra pantalla&lt;br /&gt;
&lt;br /&gt;
Bugs #3391: usuario perteneciente a un subeje, puede ver objetos creados en un eje superior del usuario.&lt;br /&gt;
&lt;br /&gt;
Bugs #3402: Al guardar un calendario no llama sale enlace para sincronizar&lt;br /&gt;
&lt;br /&gt;
Bugs #3408: 25Campo Servicio en ventana General/Cuentas&lt;br /&gt;
&lt;br /&gt;
Bugs #3413: error literal&lt;br /&gt;
&lt;br /&gt;
Bugs #3415: Problemas con el portal&lt;br /&gt;
&lt;br /&gt;
Bugs #3427: el nombre del campo &amp;quot;grabar enrutamiento&amp;quot; del objeto Nodo, en el portal de administracion lleva a dudas.&lt;br /&gt;
&lt;br /&gt;
Bugs #3428: duda si el campo &amp;quot;prefijo entidad destino&amp;quot; debería ser obligatorio&lt;br /&gt;
&lt;br /&gt;
Bugs #3429: Menu por detras de la ventana de datos de una agenda&lt;br /&gt;
&lt;br /&gt;
Bugs #3430: problema el campo &amp;quot;MAC&amp;quot; de Aprosionamiento en Telefonos del portal de administracion&lt;br /&gt;
&lt;br /&gt;
Bugs #3444: 5ruta mostrada para acceder a Puestos en Vivait SUIT ACD+ del portal de administración.&lt;br /&gt;
&lt;br /&gt;
Bugs #3459: Al cambiar el telefono en la extensión no lo hace en la ventana telefonos&lt;br /&gt;
&lt;br /&gt;
Bugs #3488: Salas de conferencia, el numero no puede ser repetido&lt;br /&gt;
&lt;br /&gt;
Bugs #3490: Buzones -&amp;gt; el numero debe ser unico no puede repetirse.&lt;br /&gt;
&lt;br /&gt;
Bugs #3494: Finales -&amp;gt; el numero de Final debe ser unico no puede repetirse. y validar numero maximo a introducir.&lt;br /&gt;
&lt;br /&gt;
Bugs #3495: No valida tamaño del motivo y falla al insertar o actualizar y nombre es obligatorio y no esta validando&lt;br /&gt;
&lt;br /&gt;
Bugs #3502: Falta Idioma en tab usuario de opción usuario&lt;br /&gt;
&lt;br /&gt;
Bugs #3525: Si en extensiones &amp;quot;Hay movilidad&amp;quot; es NO el usuario movilidad se inserta/actualiza a null&lt;br /&gt;
&lt;br /&gt;
Bugs #3567: Literales no asignados en el portal&lt;br /&gt;
&lt;br /&gt;
Bugs #3609: Redimensión portal&lt;br /&gt;
&lt;br /&gt;
Bugs #3626: Los motivos de conexión creados desde el portalñ deben ser mayores de 100.&lt;br /&gt;
&lt;br /&gt;
Bugs #3677: Cambio de literal&lt;br /&gt;
&lt;br /&gt;
Bugs #3691: Revisión de literales en Ingles para internacionalización&lt;br /&gt;
&lt;br /&gt;
Bugs #3774: Bugs en Enlace exterior&lt;br /&gt;
&lt;br /&gt;
Bugs #3801: Si la validación del usuario es mediante LDAP la clave deja de ser un campo obligatorio&lt;br /&gt;
&lt;br /&gt;
Bugs #3824: Al descargar una locucion de Vivait-Response -&amp;gt; Locuciones FALLA&lt;br /&gt;
&lt;br /&gt;
Bugs #3872: Cajas de texto demasiado grandes en el portal&lt;br /&gt;
&lt;br /&gt;
Bugs #3886: Campo &amp;quot;La PBX está pendiente de sincronización&amp;quot; descuadra el resto de campos de la cabecera&lt;br /&gt;
&lt;br /&gt;
Bugs #3903: No validad el campo idioma en usuarios -&amp;gt; administrar usuarios ya que no es obligatorio rellenarlo&lt;br /&gt;
&lt;br /&gt;
Bugs #4080: Error al actualizar un usuario&lt;br /&gt;
&lt;br /&gt;
Bugs #4301: Error en argendas Vivait-Call&lt;br /&gt;
&lt;br /&gt;
Bugs #4403: Error al cambiar categoria en destinos externos&lt;br /&gt;
&lt;br /&gt;
Bugs #4415: Pequeños errores&lt;br /&gt;
&lt;br /&gt;
Bugs #4520: Error al crear Grupos ACD&lt;br /&gt;
&lt;br /&gt;
Bugs #4621: No despliega plantilla SIP en nodos&lt;br /&gt;
&lt;br /&gt;
Bugs #4648: No funciona login por LDAP&lt;br /&gt;
&lt;br /&gt;
Bugs #4668: corregir literal en Nodos&lt;br /&gt;
&lt;br /&gt;
Bugs #4669: No aparecen grupos ACD en el despegable de la ventana de Cinfig. monitores&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2524: Mejoras en las panallas de Filtros de busquedas&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2802: Selección y borrado masivo en portal VIVAit&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2845: Nueva imagen del Portal en Versión V.3.5.0&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2882: Modificaciones en ventana &amp;quot;Editar contactos&amp;quot; filtrado y cambio de estado&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2883: Modificaciones en ventana &amp;quot;Editar contactos&amp;quot; para visualización de prioridades&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2891: Acceso por https al Portal de administración&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2916: Operaciones sobre movilidad&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2985: Cabeceras en .java y en .jsp&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3086: Cambios en gestión de permisos de acceso a portal administración&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3087: Cambios en gestión de permisos de acceso a portal de usuario&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3148: Visualizar dos telefonos en la tabla de agenda para tener acceso directo sin tener que entrar al formulario.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3166: Cambios en portal de administración para gestión de chat&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3238: Nuevo campo en VIVAIT SUITE ACD+/PERFILES&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3311: campo de busqueda en la tabla , al rellenar con algo, se mantiene el estado en el portal de administracion.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3349: Mergeo sobre los últimos desarrollos&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3433: Gestión de calendario en la ventana de perfiles&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3552: Gestión de proyectos, analisis de incidencias, bugs encontrados y solucionados, y nuevas funcionalidades.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3566: Desarrollo de vulnerabilidad de seguridad&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3568: Diseño de cajas&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3658: Campos en COM_NODOS para definir el ws de multicanalidad&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3669: Nuevas tablas CEN_MULTICANAL_TEXTO_XXXX&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3676: Nuevo campo enpre-rutas&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3731: Vistas específicas de los datos que se muestran.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3744: Crear campo en COM_NODOS&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3753: Exportación de resultados de ventanas de listado&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3826: Estudio Graficas para mostrar informacion del portald e administración de forma amigable.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4489: La tabla COM_NODOS tiene un nuevo campo&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4597: Campo &amp;quot;Host multicanalidad y Puerto multicanalidad&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Tracker Web (3.3.0 → 3.4.0)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #137: Poder filtrar por campaña&lt;br /&gt;
&lt;br /&gt;
==Tracker Windows (3.2.0 → 3.4.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3730: problema de valoracion de segmento en el VIVait Tracker de Escritorio.&lt;br /&gt;
&lt;br /&gt;
==VIVA supervisor (3.2.0 → 3.4.0)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4431: Soporte chat&lt;br /&gt;
&lt;br /&gt;
==VIVA report (3.2.2 → 3.3.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3439: INFORME DE LLAMADAS POR GRUPO ACD&lt;br /&gt;
&lt;br /&gt;
Bugs #3548: Datos totales llamadas en Informe Tipológico unificado&lt;br /&gt;
&lt;br /&gt;
Bugs #4699: Error al mostrar informe por pantalla&lt;br /&gt;
&lt;br /&gt;
Bugs #4783: Error al generear informe de produccion&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3559: Filtros de agente con nombre&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4176: Creación de librerías dinámicas en Lazarus &lt;br /&gt;
&lt;br /&gt;
Vulnerabilidad #4333: Modificación o eliminación de la limitación de usuario desde scripting&lt;br /&gt;
&lt;br /&gt;
==VIVA desk (3.3.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3782: No cierra formulario en progresivo y predictivo cuando no se descuelga la llamada el agente&lt;br /&gt;
&lt;br /&gt;
Bugs #4461: Fallo boton de copiar código de cliente en formulario mdesigner.exe&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4292: Vivait-desk pruebas con soporte chat&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4401: Versión 3.5.0&lt;br /&gt;
&lt;br /&gt;
==VIVA designer ( 3.1.0 → 3.2.0)==&lt;br /&gt;
&lt;br /&gt;
Designer - Nuevas funcionalidades #4400: Añadir por designer los 16 campos de los contactos&lt;br /&gt;
&lt;br /&gt;
==Preview (3.4.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
==Phoneprov-tftp ( 3.0.3→ 3.0.3)==&lt;br /&gt;
&lt;br /&gt;
==Portal de Usuario (3.0.0 → 3.1.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3310: Cambio de logo &lt;br /&gt;
&lt;br /&gt;
Bugs #4002: No se loga por LDAP&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2915: Operaciones sobre movilidad&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3130: Visualizar dos teléfonos en la tabla de agenda para tener acceso directo sin tener que entrar al formulario.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3165: Desarrollo de interfaz CHAT en portal de usuario&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4847: Añadir el campo C_CUENTA_LDAP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:administrador]]&lt;br /&gt;
[[Category:Plataforma VIVAit]]&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Release_Notes_Plataforma_VIVAit_3.1&amp;diff=5937</id>
		<title>Release Notes Plataforma VIVAit 3.1</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Release_Notes_Plataforma_VIVAit_3.1&amp;diff=5937"/>
		<updated>2017-06-12T13:52:59Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* DialPlan Corporativo (3.4.0 → 3.5.0) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!!Plataforma''VIVA''it&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Aplica a los productos:&lt;br /&gt;
* '''''VIVA'''''it Call 3.1&lt;br /&gt;
* '''''VIVA'''''it Suite 3.5&lt;br /&gt;
&lt;br /&gt;
==Lázarus común (3.4.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3646: Nuevas clases de dispositivo TClaseDispositivo&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3694: Modificaciones en nimitz.pas&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3805: Nueva opción en el enumerado TComponente&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4472: Nuevos valores enumerados en TTipoContenido&lt;br /&gt;
&lt;br /&gt;
==BBDD (3.6.0 → 3.8.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3653: CEN_ENLACE_EXTERIOR ID_PLANTILLA es VARCHAR&lt;br /&gt;
&lt;br /&gt;
Bugs #3832: Modificacion de los Datos básicos para que los registros particulares se inserten con ID muy superior para que asi podamos eliminar los Datos particulares y volver a insertarlos&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3487: Campos nuevos en supervisor&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3553: Campo que indique que un nodo tiene el servicio recordCentral&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3582: Nueva entrada enumerado TTipoInforme&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3606: Añadir a los datos básicos los campos que se emplean en las plantillas en forma de texto&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3643: Nuevas clases de dispositivo TClaseDispositivo&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3644: Nuevas clases de dispositivo TClaseDispositivo&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3660: Nuevos valores en enumerado TClasePlantilla&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3667: Campo E_TIPO_CANAL en CEN_DISPOSITIVOS&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3693: Nuevos valores enumerado TSegTipoSeg&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3804: Añadir opción al enumerado TComponente&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4473: Modificación de la tabla DAT_MENSAJES&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4474: Modificación enumerado TTipoContenido&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4478: Creación de la tabla ACD CHAT USUARIOS&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4488: Añadir campo ID_PLANTILLA_SIP_GENERAL en COM_NODOS&lt;br /&gt;
&lt;br /&gt;
Bugs #3348: Quitar TElementosSincronizar&lt;br /&gt;
&lt;br /&gt;
Bugs #4526: Cambio enumerados&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3253: Crear un campo en base de datos para generar el recordCentral&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3651: Tablas para chat CEN_MULTICANAL_TEXTO_XXX&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4626: Campo LDAP para sincronizar Agendas&lt;br /&gt;
&lt;br /&gt;
== Asterisk ACD (3.3.1 → 3.4.1)==&lt;br /&gt;
&lt;br /&gt;
== DialPlan ACD (3.3.2 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
== Asterisk Corporativo (3.4.1 → 3.4.4)==&lt;br /&gt;
&lt;br /&gt;
== DialPlan Corporativo (3.3.4 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
==Generaconf (3.4.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3169: Generar ficheros recordNodo y recordCentral&lt;br /&gt;
&lt;br /&gt;
Bugs #3251: Cambiar select de DAT_SINCRONIZA por incompatibiliadad con MySQL 5.7 (Full group by)&lt;br /&gt;
&lt;br /&gt;
Bugs #3345: Los campos de objeto tienen proridad sobre los de plantilla&lt;br /&gt;
&lt;br /&gt;
Bugs #3347: Generar archivos correctamente desde sincronización manual&lt;br /&gt;
&lt;br /&gt;
Bugs #3406: Fallos varios en Generaconf para calendarios&lt;br /&gt;
&lt;br /&gt;
Bugs #3766: Error en Generaconf debido a timeout de libreria java&lt;br /&gt;
&lt;br /&gt;
Bugs #4884: No llama a la funcion dialplan reliad al generar el fichero ext_MDtel_Web.conf&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3337: Generar chan_dahdi.conf&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3532: Generar campo Qualify de los Nodos&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4144: Modificacion al generar grupos de captura&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4490: Se ha creado un campo en COM_NODOS ID_PLANTILLA_SIP_GENERAL&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4512: Los nodos ACD tienen que ser trunkinternos&lt;br /&gt;
&lt;br /&gt;
==Intz-nimitz ( 3.4.1 → 3.4.2)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4142: Cambio en prioridades en destinos externos&lt;br /&gt;
&lt;br /&gt;
==recordCentral (4.0.0 → 4.0.1)==&lt;br /&gt;
&lt;br /&gt;
Bugs #4747: No codifica en ogg&lt;br /&gt;
&lt;br /&gt;
==recordNodo (4.0.0 → 4.0.0)==&lt;br /&gt;
&lt;br /&gt;
==myACDSuperV (5.3.2 → 5.3.2)==&lt;br /&gt;
&lt;br /&gt;
==motorSal (3.3.0 → 3.4.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3611: Contactos en campaña saliente bajo de manda&lt;br /&gt;
&lt;br /&gt;
Bugs #3780: Parada del motorsal cuando en la descripción de la cola ocupa mas de 64 caracteres&lt;br /&gt;
&lt;br /&gt;
Bugs #3841: Mejoras en modulo empleado por Antonio Sanchez&lt;br /&gt;
&lt;br /&gt;
==VIVAit-cti (3.0.1 → 3.0.2)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3136: Problema abrir formulario en llamadas salientes&lt;br /&gt;
&lt;br /&gt;
==MultiMonitorWeb (3.1.0 → 3.2.0)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3289: Cabeceras en monitor&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4206: Acceder a la web del multimonitor directamente con un usuario y contraseña desde la propia url&lt;br /&gt;
&lt;br /&gt;
==Portal (3.4.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #2840: Error en campo Eje 1 de la vista permisos de usuarios&lt;br /&gt;
&lt;br /&gt;
Bugs #2841: Error en campo Eje 1 de la vista permisos de usuarios&lt;br /&gt;
&lt;br /&gt;
Bugs #2846: Fallo de seguridad en Login&lt;br /&gt;
&lt;br /&gt;
Bugs #2847: Literales en Contactos Click2Call&lt;br /&gt;
&lt;br /&gt;
Bugs #2852: Error al recuperar la información del campo &amp;quot;tipo formulario&amp;quot; en Grupos ACD&lt;br /&gt;
&lt;br /&gt;
Bugs #2866: Gestionar posible error en Extensiones en el campo Puesto&lt;br /&gt;
&lt;br /&gt;
Bugs #2930: Cambiar a valor por defecto no&lt;br /&gt;
&lt;br /&gt;
Bugs #2971: Menu desplegable por detras del formulario&lt;br /&gt;
&lt;br /&gt;
Bugs #3014: Duplica extensiones ya asignadas a un grupo en ViVAit Call.&lt;br /&gt;
&lt;br /&gt;
Bugs #3059: No puedo usar ningún filtro de búsqueda para buscar por usuario asignado a una extensión o al revés.&lt;br /&gt;
&lt;br /&gt;
Bugs #3171: Al borrar no vuelve a la pagina inicial de filtro, queremos que mantenga el filtro utilizado al volver de un borrado Y de un recuperado&lt;br /&gt;
&lt;br /&gt;
Bugs #3199: Rellenar valores de los umbrales de alarma del monitor web no ha de ser obligatorio&lt;br /&gt;
&lt;br /&gt;
Bugs #3261: literal sincronizado manual&lt;br /&gt;
&lt;br /&gt;
Bugs #3344: al borrar una extensión en grupos acd de centralita me va a otra pantalla&lt;br /&gt;
&lt;br /&gt;
Bugs #3391: usuario perteneciente a un subeje, puede ver objetos creados en un eje superior del usuario.&lt;br /&gt;
&lt;br /&gt;
Bugs #3402: Al guardar un calendario no llama sale enlace para sincronizar&lt;br /&gt;
&lt;br /&gt;
Bugs #3408: 25Campo Servicio en ventana General/Cuentas&lt;br /&gt;
&lt;br /&gt;
Bugs #3413: error literal&lt;br /&gt;
&lt;br /&gt;
Bugs #3415: Problemas con el portal&lt;br /&gt;
&lt;br /&gt;
Bugs #3427: el nombre del campo &amp;quot;grabar enrutamiento&amp;quot; del objeto Nodo, en el portal de administracion lleva a dudas.&lt;br /&gt;
&lt;br /&gt;
Bugs #3428: duda si el campo &amp;quot;prefijo entidad destino&amp;quot; debería ser obligatorio&lt;br /&gt;
&lt;br /&gt;
Bugs #3429: Menu por detras de la ventana de datos de una agenda&lt;br /&gt;
&lt;br /&gt;
Bugs #3430: problema el campo &amp;quot;MAC&amp;quot; de Aprosionamiento en Telefonos del portal de administracion&lt;br /&gt;
&lt;br /&gt;
Bugs #3444: 5ruta mostrada para acceder a Puestos en Vivait SUIT ACD+ del portal de administración.&lt;br /&gt;
&lt;br /&gt;
Bugs #3459: Al cambiar el telefono en la extensión no lo hace en la ventana telefonos&lt;br /&gt;
&lt;br /&gt;
Bugs #3488: Salas de conferencia, el numero no puede ser repetido&lt;br /&gt;
&lt;br /&gt;
Bugs #3490: Buzones -&amp;gt; el numero debe ser unico no puede repetirse.&lt;br /&gt;
&lt;br /&gt;
Bugs #3494: Finales -&amp;gt; el numero de Final debe ser unico no puede repetirse. y validar numero maximo a introducir.&lt;br /&gt;
&lt;br /&gt;
Bugs #3495: No valida tamaño del motivo y falla al insertar o actualizar y nombre es obligatorio y no esta validando&lt;br /&gt;
&lt;br /&gt;
Bugs #3502: Falta Idioma en tab usuario de opción usuario&lt;br /&gt;
&lt;br /&gt;
Bugs #3525: Si en extensiones &amp;quot;Hay movilidad&amp;quot; es NO el usuario movilidad se inserta/actualiza a null&lt;br /&gt;
&lt;br /&gt;
Bugs #3567: Literales no asignados en el portal&lt;br /&gt;
&lt;br /&gt;
Bugs #3609: Redimensión portal&lt;br /&gt;
&lt;br /&gt;
Bugs #3626: Los motivos de conexión creados desde el portalñ deben ser mayores de 100.&lt;br /&gt;
&lt;br /&gt;
Bugs #3677: Cambio de literal&lt;br /&gt;
&lt;br /&gt;
Bugs #3691: Revisión de literales en Ingles para internacionalización&lt;br /&gt;
&lt;br /&gt;
Bugs #3774: Bugs en Enlace exterior&lt;br /&gt;
&lt;br /&gt;
Bugs #3801: Si la validación del usuario es mediante LDAP la clave deja de ser un campo obligatorio&lt;br /&gt;
&lt;br /&gt;
Bugs #3824: Al descargar una locucion de Vivait-Response -&amp;gt; Locuciones FALLA&lt;br /&gt;
&lt;br /&gt;
Bugs #3872: Cajas de texto demasiado grandes en el portal&lt;br /&gt;
&lt;br /&gt;
Bugs #3886: Campo &amp;quot;La PBX está pendiente de sincronización&amp;quot; descuadra el resto de campos de la cabecera&lt;br /&gt;
&lt;br /&gt;
Bugs #3903: No validad el campo idioma en usuarios -&amp;gt; administrar usuarios ya que no es obligatorio rellenarlo&lt;br /&gt;
&lt;br /&gt;
Bugs #4080: Error al actualizar un usuario&lt;br /&gt;
&lt;br /&gt;
Bugs #4301: Error en argendas Vivait-Call&lt;br /&gt;
&lt;br /&gt;
Bugs #4403: Error al cambiar categoria en destinos externos&lt;br /&gt;
&lt;br /&gt;
Bugs #4415: Pequeños errores&lt;br /&gt;
&lt;br /&gt;
Bugs #4520: Error al crear Grupos ACD&lt;br /&gt;
&lt;br /&gt;
Bugs #4621: No despliega plantilla SIP en nodos&lt;br /&gt;
&lt;br /&gt;
Bugs #4648: No funciona login por LDAP&lt;br /&gt;
&lt;br /&gt;
Bugs #4668: corregir literal en Nodos&lt;br /&gt;
&lt;br /&gt;
Bugs #4669: No aparecen grupos ACD en el despegable de la ventana de Cinfig. monitores&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2524: Mejoras en las panallas de Filtros de busquedas&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2802: Selección y borrado masivo en portal VIVAit&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2845: Nueva imagen del Portal en Versión V.3.5.0&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2882: Modificaciones en ventana &amp;quot;Editar contactos&amp;quot; filtrado y cambio de estado&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2883: Modificaciones en ventana &amp;quot;Editar contactos&amp;quot; para visualización de prioridades&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2891: Acceso por https al Portal de administración&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2916: Operaciones sobre movilidad&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2985: Cabeceras en .java y en .jsp&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3086: Cambios en gestión de permisos de acceso a portal administración&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3087: Cambios en gestión de permisos de acceso a portal de usuario&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3148: Visualizar dos telefonos en la tabla de agenda para tener acceso directo sin tener que entrar al formulario.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3166: Cambios en portal de administración para gestión de chat&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3238: Nuevo campo en VIVAIT SUITE ACD+/PERFILES&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3311: campo de busqueda en la tabla , al rellenar con algo, se mantiene el estado en el portal de administracion.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3349: Mergeo sobre los últimos desarrollos&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3433: Gestión de calendario en la ventana de perfiles&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3552: Gestión de proyectos, analisis de incidencias, bugs encontrados y solucionados, y nuevas funcionalidades.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3566: Desarrollo de vulnerabilidad de seguridad&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3568: Diseño de cajas&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3658: Campos en COM_NODOS para definir el ws de multicanalidad&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3669: Nuevas tablas CEN_MULTICANAL_TEXTO_XXXX&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3676: Nuevo campo enpre-rutas&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3731: Vistas específicas de los datos que se muestran.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3744: Crear campo en COM_NODOS&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3753: Exportación de resultados de ventanas de listado&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3826: Estudio Graficas para mostrar informacion del portald e administración de forma amigable.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4489: La tabla COM_NODOS tiene un nuevo campo&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4597: Campo &amp;quot;Host multicanalidad y Puerto multicanalidad&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Tracker Web (3.3.0 → 3.4.0)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #137: Poder filtrar por campaña&lt;br /&gt;
&lt;br /&gt;
==Tracker Windows (3.2.0 → 3.4.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3730: problema de valoracion de segmento en el VIVait Tracker de Escritorio.&lt;br /&gt;
&lt;br /&gt;
==VIVA supervisor (3.2.0 → 3.4.0)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4431: Soporte chat&lt;br /&gt;
&lt;br /&gt;
==VIVA report (3.2.2 → 3.3.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3439: INFORME DE LLAMADAS POR GRUPO ACD&lt;br /&gt;
&lt;br /&gt;
Bugs #3548: Datos totales llamadas en Informe Tipológico unificado&lt;br /&gt;
&lt;br /&gt;
Bugs #4699: Error al mostrar informe por pantalla&lt;br /&gt;
&lt;br /&gt;
Bugs #4783: Error al generear informe de produccion&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3559: Filtros de agente con nombre&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4176: Creación de librerías dinámicas en Lazarus &lt;br /&gt;
&lt;br /&gt;
Vulnerabilidad #4333: Modificación o eliminación de la limitación de usuario desde scripting&lt;br /&gt;
&lt;br /&gt;
==VIVA desk (3.3.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3782: No cierra formulario en progresivo y predictivo cuando no se descuelga la llamada el agente&lt;br /&gt;
&lt;br /&gt;
Bugs #4461: Fallo boton de copiar código de cliente en formulario mdesigner.exe&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4292: Vivait-desk pruebas con soporte chat&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4401: Versión 3.5.0&lt;br /&gt;
&lt;br /&gt;
==VIVA designer ( 3.1.0 → 3.2.0)==&lt;br /&gt;
&lt;br /&gt;
Designer - Nuevas funcionalidades #4400: Añadir por designer los 16 campos de los contactos&lt;br /&gt;
&lt;br /&gt;
==Preview (3.4.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
==Phoneprov-tftp ( 3.0.3→ 3.0.3)==&lt;br /&gt;
&lt;br /&gt;
==Portal de Usuario (3.0.0 → 3.1.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3310: Cambio de logo &lt;br /&gt;
&lt;br /&gt;
Bugs #4002: No se loga por LDAP&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2915: Operaciones sobre movilidad&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3130: Visualizar dos teléfonos en la tabla de agenda para tener acceso directo sin tener que entrar al formulario.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3165: Desarrollo de interfaz CHAT en portal de usuario&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4847: Añadir el campo C_CUENTA_LDAP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:administrador]]&lt;br /&gt;
[[Category:Plataforma VIVAit]]&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Release_Notes_Plataforma_VIVAit_3.1&amp;diff=5936</id>
		<title>Release Notes Plataforma VIVAit 3.1</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Release_Notes_Plataforma_VIVAit_3.1&amp;diff=5936"/>
		<updated>2017-06-12T13:51:02Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* Generaconf (3.4.0 → 3.5.0) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!!Plataforma''VIVA''it&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Aplica a los productos:&lt;br /&gt;
* '''''VIVA'''''it Call 3.1&lt;br /&gt;
* '''''VIVA'''''it Suite 3.5&lt;br /&gt;
&lt;br /&gt;
==Lázarus común (3.4.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3646: Nuevas clases de dispositivo TClaseDispositivo&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3694: Modificaciones en nimitz.pas&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3805: Nueva opción en el enumerado TComponente&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4472: Nuevos valores enumerados en TTipoContenido&lt;br /&gt;
&lt;br /&gt;
==BBDD (3.6.0 → 3.8.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3653: CEN_ENLACE_EXTERIOR ID_PLANTILLA es VARCHAR&lt;br /&gt;
&lt;br /&gt;
Bugs #3832: Modificacion de los Datos básicos para que los registros particulares se inserten con ID muy superior para que asi podamos eliminar los Datos particulares y volver a insertarlos&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3487: Campos nuevos en supervisor&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3553: Campo que indique que un nodo tiene el servicio recordCentral&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3582: Nueva entrada enumerado TTipoInforme&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3606: Añadir a los datos básicos los campos que se emplean en las plantillas en forma de texto&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3643: Nuevas clases de dispositivo TClaseDispositivo&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3644: Nuevas clases de dispositivo TClaseDispositivo&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3660: Nuevos valores en enumerado TClasePlantilla&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3667: Campo E_TIPO_CANAL en CEN_DISPOSITIVOS&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3693: Nuevos valores enumerado TSegTipoSeg&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3804: Añadir opción al enumerado TComponente&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4473: Modificación de la tabla DAT_MENSAJES&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4474: Modificación enumerado TTipoContenido&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4478: Creación de la tabla ACD CHAT USUARIOS&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4488: Añadir campo ID_PLANTILLA_SIP_GENERAL en COM_NODOS&lt;br /&gt;
&lt;br /&gt;
Bugs #3348: Quitar TElementosSincronizar&lt;br /&gt;
&lt;br /&gt;
Bugs #4526: Cambio enumerados&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3253: Crear un campo en base de datos para generar el recordCentral&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3651: Tablas para chat CEN_MULTICANAL_TEXTO_XXX&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4626: Campo LDAP para sincronizar Agendas&lt;br /&gt;
&lt;br /&gt;
== Asterisk ACD (3.3.1 → 3.4.1)==&lt;br /&gt;
&lt;br /&gt;
== DialPlan ACD (3.3.2 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
== Asterisk Corporativo (3.4.1 → 3.4.4)==&lt;br /&gt;
&lt;br /&gt;
== DialPlan Corporativo (3.4.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
==Generaconf (3.4.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3169: Generar ficheros recordNodo y recordCentral&lt;br /&gt;
&lt;br /&gt;
Bugs #3251: Cambiar select de DAT_SINCRONIZA por incompatibiliadad con MySQL 5.7 (Full group by)&lt;br /&gt;
&lt;br /&gt;
Bugs #3345: Los campos de objeto tienen proridad sobre los de plantilla&lt;br /&gt;
&lt;br /&gt;
Bugs #3347: Generar archivos correctamente desde sincronización manual&lt;br /&gt;
&lt;br /&gt;
Bugs #3406: Fallos varios en Generaconf para calendarios&lt;br /&gt;
&lt;br /&gt;
Bugs #3766: Error en Generaconf debido a timeout de libreria java&lt;br /&gt;
&lt;br /&gt;
Bugs #4884: No llama a la funcion dialplan reliad al generar el fichero ext_MDtel_Web.conf&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3337: Generar chan_dahdi.conf&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3532: Generar campo Qualify de los Nodos&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4144: Modificacion al generar grupos de captura&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4490: Se ha creado un campo en COM_NODOS ID_PLANTILLA_SIP_GENERAL&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4512: Los nodos ACD tienen que ser trunkinternos&lt;br /&gt;
&lt;br /&gt;
==Intz-nimitz ( 3.4.1 → 3.4.2)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4142: Cambio en prioridades en destinos externos&lt;br /&gt;
&lt;br /&gt;
==recordCentral (4.0.0 → 4.0.1)==&lt;br /&gt;
&lt;br /&gt;
Bugs #4747: No codifica en ogg&lt;br /&gt;
&lt;br /&gt;
==recordNodo (4.0.0 → 4.0.0)==&lt;br /&gt;
&lt;br /&gt;
==myACDSuperV (5.3.2 → 5.3.2)==&lt;br /&gt;
&lt;br /&gt;
==motorSal (3.3.0 → 3.4.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3611: Contactos en campaña saliente bajo de manda&lt;br /&gt;
&lt;br /&gt;
Bugs #3780: Parada del motorsal cuando en la descripción de la cola ocupa mas de 64 caracteres&lt;br /&gt;
&lt;br /&gt;
Bugs #3841: Mejoras en modulo empleado por Antonio Sanchez&lt;br /&gt;
&lt;br /&gt;
==VIVAit-cti (3.0.1 → 3.0.2)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3136: Problema abrir formulario en llamadas salientes&lt;br /&gt;
&lt;br /&gt;
==MultiMonitorWeb (3.1.0 → 3.2.0)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3289: Cabeceras en monitor&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4206: Acceder a la web del multimonitor directamente con un usuario y contraseña desde la propia url&lt;br /&gt;
&lt;br /&gt;
==Portal (3.4.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #2840: Error en campo Eje 1 de la vista permisos de usuarios&lt;br /&gt;
&lt;br /&gt;
Bugs #2841: Error en campo Eje 1 de la vista permisos de usuarios&lt;br /&gt;
&lt;br /&gt;
Bugs #2846: Fallo de seguridad en Login&lt;br /&gt;
&lt;br /&gt;
Bugs #2847: Literales en Contactos Click2Call&lt;br /&gt;
&lt;br /&gt;
Bugs #2852: Error al recuperar la información del campo &amp;quot;tipo formulario&amp;quot; en Grupos ACD&lt;br /&gt;
&lt;br /&gt;
Bugs #2866: Gestionar posible error en Extensiones en el campo Puesto&lt;br /&gt;
&lt;br /&gt;
Bugs #2930: Cambiar a valor por defecto no&lt;br /&gt;
&lt;br /&gt;
Bugs #2971: Menu desplegable por detras del formulario&lt;br /&gt;
&lt;br /&gt;
Bugs #3014: Duplica extensiones ya asignadas a un grupo en ViVAit Call.&lt;br /&gt;
&lt;br /&gt;
Bugs #3059: No puedo usar ningún filtro de búsqueda para buscar por usuario asignado a una extensión o al revés.&lt;br /&gt;
&lt;br /&gt;
Bugs #3171: Al borrar no vuelve a la pagina inicial de filtro, queremos que mantenga el filtro utilizado al volver de un borrado Y de un recuperado&lt;br /&gt;
&lt;br /&gt;
Bugs #3199: Rellenar valores de los umbrales de alarma del monitor web no ha de ser obligatorio&lt;br /&gt;
&lt;br /&gt;
Bugs #3261: literal sincronizado manual&lt;br /&gt;
&lt;br /&gt;
Bugs #3344: al borrar una extensión en grupos acd de centralita me va a otra pantalla&lt;br /&gt;
&lt;br /&gt;
Bugs #3391: usuario perteneciente a un subeje, puede ver objetos creados en un eje superior del usuario.&lt;br /&gt;
&lt;br /&gt;
Bugs #3402: Al guardar un calendario no llama sale enlace para sincronizar&lt;br /&gt;
&lt;br /&gt;
Bugs #3408: 25Campo Servicio en ventana General/Cuentas&lt;br /&gt;
&lt;br /&gt;
Bugs #3413: error literal&lt;br /&gt;
&lt;br /&gt;
Bugs #3415: Problemas con el portal&lt;br /&gt;
&lt;br /&gt;
Bugs #3427: el nombre del campo &amp;quot;grabar enrutamiento&amp;quot; del objeto Nodo, en el portal de administracion lleva a dudas.&lt;br /&gt;
&lt;br /&gt;
Bugs #3428: duda si el campo &amp;quot;prefijo entidad destino&amp;quot; debería ser obligatorio&lt;br /&gt;
&lt;br /&gt;
Bugs #3429: Menu por detras de la ventana de datos de una agenda&lt;br /&gt;
&lt;br /&gt;
Bugs #3430: problema el campo &amp;quot;MAC&amp;quot; de Aprosionamiento en Telefonos del portal de administracion&lt;br /&gt;
&lt;br /&gt;
Bugs #3444: 5ruta mostrada para acceder a Puestos en Vivait SUIT ACD+ del portal de administración.&lt;br /&gt;
&lt;br /&gt;
Bugs #3459: Al cambiar el telefono en la extensión no lo hace en la ventana telefonos&lt;br /&gt;
&lt;br /&gt;
Bugs #3488: Salas de conferencia, el numero no puede ser repetido&lt;br /&gt;
&lt;br /&gt;
Bugs #3490: Buzones -&amp;gt; el numero debe ser unico no puede repetirse.&lt;br /&gt;
&lt;br /&gt;
Bugs #3494: Finales -&amp;gt; el numero de Final debe ser unico no puede repetirse. y validar numero maximo a introducir.&lt;br /&gt;
&lt;br /&gt;
Bugs #3495: No valida tamaño del motivo y falla al insertar o actualizar y nombre es obligatorio y no esta validando&lt;br /&gt;
&lt;br /&gt;
Bugs #3502: Falta Idioma en tab usuario de opción usuario&lt;br /&gt;
&lt;br /&gt;
Bugs #3525: Si en extensiones &amp;quot;Hay movilidad&amp;quot; es NO el usuario movilidad se inserta/actualiza a null&lt;br /&gt;
&lt;br /&gt;
Bugs #3567: Literales no asignados en el portal&lt;br /&gt;
&lt;br /&gt;
Bugs #3609: Redimensión portal&lt;br /&gt;
&lt;br /&gt;
Bugs #3626: Los motivos de conexión creados desde el portalñ deben ser mayores de 100.&lt;br /&gt;
&lt;br /&gt;
Bugs #3677: Cambio de literal&lt;br /&gt;
&lt;br /&gt;
Bugs #3691: Revisión de literales en Ingles para internacionalización&lt;br /&gt;
&lt;br /&gt;
Bugs #3774: Bugs en Enlace exterior&lt;br /&gt;
&lt;br /&gt;
Bugs #3801: Si la validación del usuario es mediante LDAP la clave deja de ser un campo obligatorio&lt;br /&gt;
&lt;br /&gt;
Bugs #3824: Al descargar una locucion de Vivait-Response -&amp;gt; Locuciones FALLA&lt;br /&gt;
&lt;br /&gt;
Bugs #3872: Cajas de texto demasiado grandes en el portal&lt;br /&gt;
&lt;br /&gt;
Bugs #3886: Campo &amp;quot;La PBX está pendiente de sincronización&amp;quot; descuadra el resto de campos de la cabecera&lt;br /&gt;
&lt;br /&gt;
Bugs #3903: No validad el campo idioma en usuarios -&amp;gt; administrar usuarios ya que no es obligatorio rellenarlo&lt;br /&gt;
&lt;br /&gt;
Bugs #4080: Error al actualizar un usuario&lt;br /&gt;
&lt;br /&gt;
Bugs #4301: Error en argendas Vivait-Call&lt;br /&gt;
&lt;br /&gt;
Bugs #4403: Error al cambiar categoria en destinos externos&lt;br /&gt;
&lt;br /&gt;
Bugs #4415: Pequeños errores&lt;br /&gt;
&lt;br /&gt;
Bugs #4520: Error al crear Grupos ACD&lt;br /&gt;
&lt;br /&gt;
Bugs #4621: No despliega plantilla SIP en nodos&lt;br /&gt;
&lt;br /&gt;
Bugs #4648: No funciona login por LDAP&lt;br /&gt;
&lt;br /&gt;
Bugs #4668: corregir literal en Nodos&lt;br /&gt;
&lt;br /&gt;
Bugs #4669: No aparecen grupos ACD en el despegable de la ventana de Cinfig. monitores&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2524: Mejoras en las panallas de Filtros de busquedas&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2802: Selección y borrado masivo en portal VIVAit&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2845: Nueva imagen del Portal en Versión V.3.5.0&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2882: Modificaciones en ventana &amp;quot;Editar contactos&amp;quot; filtrado y cambio de estado&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2883: Modificaciones en ventana &amp;quot;Editar contactos&amp;quot; para visualización de prioridades&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2891: Acceso por https al Portal de administración&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2916: Operaciones sobre movilidad&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2985: Cabeceras en .java y en .jsp&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3086: Cambios en gestión de permisos de acceso a portal administración&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3087: Cambios en gestión de permisos de acceso a portal de usuario&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3148: Visualizar dos telefonos en la tabla de agenda para tener acceso directo sin tener que entrar al formulario.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3166: Cambios en portal de administración para gestión de chat&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3238: Nuevo campo en VIVAIT SUITE ACD+/PERFILES&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3311: campo de busqueda en la tabla , al rellenar con algo, se mantiene el estado en el portal de administracion.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3349: Mergeo sobre los últimos desarrollos&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3433: Gestión de calendario en la ventana de perfiles&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3552: Gestión de proyectos, analisis de incidencias, bugs encontrados y solucionados, y nuevas funcionalidades.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3566: Desarrollo de vulnerabilidad de seguridad&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3568: Diseño de cajas&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3658: Campos en COM_NODOS para definir el ws de multicanalidad&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3669: Nuevas tablas CEN_MULTICANAL_TEXTO_XXXX&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3676: Nuevo campo enpre-rutas&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3731: Vistas específicas de los datos que se muestran.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3744: Crear campo en COM_NODOS&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3753: Exportación de resultados de ventanas de listado&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3826: Estudio Graficas para mostrar informacion del portald e administración de forma amigable.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4489: La tabla COM_NODOS tiene un nuevo campo&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4597: Campo &amp;quot;Host multicanalidad y Puerto multicanalidad&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Tracker Web (3.3.0 → 3.4.0)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #137: Poder filtrar por campaña&lt;br /&gt;
&lt;br /&gt;
==Tracker Windows (3.2.0 → 3.4.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3730: problema de valoracion de segmento en el VIVait Tracker de Escritorio.&lt;br /&gt;
&lt;br /&gt;
==VIVA supervisor (3.2.0 → 3.4.0)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4431: Soporte chat&lt;br /&gt;
&lt;br /&gt;
==VIVA report (3.2.2 → 3.3.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3439: INFORME DE LLAMADAS POR GRUPO ACD&lt;br /&gt;
&lt;br /&gt;
Bugs #3548: Datos totales llamadas en Informe Tipológico unificado&lt;br /&gt;
&lt;br /&gt;
Bugs #4699: Error al mostrar informe por pantalla&lt;br /&gt;
&lt;br /&gt;
Bugs #4783: Error al generear informe de produccion&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3559: Filtros de agente con nombre&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4176: Creación de librerías dinámicas en Lazarus &lt;br /&gt;
&lt;br /&gt;
Vulnerabilidad #4333: Modificación o eliminación de la limitación de usuario desde scripting&lt;br /&gt;
&lt;br /&gt;
==VIVA desk (3.3.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3782: No cierra formulario en progresivo y predictivo cuando no se descuelga la llamada el agente&lt;br /&gt;
&lt;br /&gt;
Bugs #4461: Fallo boton de copiar código de cliente en formulario mdesigner.exe&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4292: Vivait-desk pruebas con soporte chat&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4401: Versión 3.5.0&lt;br /&gt;
&lt;br /&gt;
==VIVA designer ( 3.1.0 → 3.2.0)==&lt;br /&gt;
&lt;br /&gt;
Designer - Nuevas funcionalidades #4400: Añadir por designer los 16 campos de los contactos&lt;br /&gt;
&lt;br /&gt;
==Preview (3.4.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
==Phoneprov-tftp ( 3.0.3→ 3.0.3)==&lt;br /&gt;
&lt;br /&gt;
==Portal de Usuario (3.0.0 → 3.1.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3310: Cambio de logo &lt;br /&gt;
&lt;br /&gt;
Bugs #4002: No se loga por LDAP&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2915: Operaciones sobre movilidad&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3130: Visualizar dos teléfonos en la tabla de agenda para tener acceso directo sin tener que entrar al formulario.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3165: Desarrollo de interfaz CHAT en portal de usuario&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4847: Añadir el campo C_CUENTA_LDAP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:administrador]]&lt;br /&gt;
[[Category:Plataforma VIVAit]]&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_plataforma_VIVAit&amp;diff=5932</id>
		<title>Manual de operación plataforma VIVAit</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_plataforma_VIVAit&amp;diff=5932"/>
		<updated>2017-06-07T14:59:11Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* Proceso de Backup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!! '''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; ALFREDO: INSISTIR EN EXPLICAR CONCEPTOS&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
En este documento se describe la arquitectura general de la plataforma '''''VIVA'''''it, detallando aquellos procesos principales que componen cada uno de los elementos del sistema, y sus principales elementos de diagnóstico&lt;br /&gt;
Quedan fuera del ámbito de este documento:&lt;br /&gt;
* Uso de aplicación de agente ('''''VIVA'''''it Desk)&lt;br /&gt;
* Uso de aplicación de supervisor ('''''VIVA'''''it Supervisor), incluyendo sus módulos autónomos ('''''VIVA'''''it reporting, '''''VIVA'''''it Tracker)&lt;br /&gt;
* Uso de portal de administración&lt;br /&gt;
* Uso de portal de traceo de llamadas y agentes ('''''VIVA'''''it Tracker web)&lt;br /&gt;
* Uso de portal de monitorización zabbix&lt;br /&gt;
&lt;br /&gt;
== Arquitectura ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura plataforma VIVAit.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Descripción de los elementos, diagnósticos y operaciones ==&lt;br /&gt;
Las siguientes tablas definen los principales elementos software de la plataforma '''''VIVA'''''it, que son detallados en apartados siguientes:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de sistema operativo'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu Server LTS 64 bits || Uno por servidor|| ||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|| Actualmente (Oct-2015) 14.04&lt;br /&gt;
Bajo proyecto puede cambiarse&lt;br /&gt;
|-&lt;br /&gt;
| Almacenamiento de grabaciones|| Uno por sistema|| Almacenamiento de las grabaciones, ya sean de entorno corporativo o de contact center||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|| Típicamente un espacio grande de almacenamiento proporcionado por el cliente y que se monta como un sistema de archivos local en los servidores de la plataforma&lt;br /&gt;
Pueden existir sistemas secundarios de almacenamiento de grabaciones&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de conmutación de voz'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Asterisk 1.4.24 by MDtel||Uno por servidor ACD||Núcleo de conmutación de voz basado en Asterisk 1.4 y modificado por MDtel||'''''VIVA'''''it Suite||Fuertemente modificado por MDtel&lt;br /&gt;
En el futuro migrará a Asterisk 13 Certified&lt;br /&gt;
|-&lt;br /&gt;
|Dialplan ACD by MDtel||Uno por servidor ACD||Configuración de voz||'''''VIVA'''''it Suite||En el futuro se unificará con corporativa&lt;br /&gt;
|-&lt;br /&gt;
|Asterisk 13 Certified by MDtel||Uno por servidor corporativo/gateway||Núcleo de conmutación de voz basado en Asterisk 13 y modificado por MDtel||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Actualmente asterisk estándar (10/15)&lt;br /&gt;
La instalación contempla descargar de la red el más actualizado, siempre CERTIFIED&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Dialplan corporativo||Uno por servidor corporativo/gateway||Configuración de voz||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||En el futuro se unificará con ACD&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de base de datos'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|MySQL 5.5||Donde haya BBDD de cualquier tipo (incluso zabbix)||Motor de Base de Datos||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||A efectos prácticos va a ser en todos los servidores con casi total seguridad&lt;br /&gt;
|-&lt;br /&gt;
|BBDD tiempo real||Una por sistema||Base de Datos sobre la que trabaja todo el entorno de tiempo real||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|BBDD réplica||Una por sistema multinodo||Base de Datos para acceso a información de reporting…y similar||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de una&lt;br /&gt;
En el nodo en el que exista réplica existirá además copia (excepto nodo ACD)&lt;br /&gt;
|-&lt;br /&gt;
|BBDD copia||Uno por servidor corporativo/gateway||Copias de tablas de configuración para respaldo de la misma||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Local en cada nodo&lt;br /&gt;
Los nodos de ACD actualmente no trabajan con copia; en caso de fallo de BBDD TR se usa el modo emergencia&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de procesos ''VIVA''it'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Intz-Nimitz||Donde haya una BBDD de tiempo real o copia||Interfaz entre el dialplan y la base de datos||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||No donde haya BBDD de réplica&lt;br /&gt;
Sistemas grandes pueden contemplar mas de un intz-nimitz central&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|vivait-cti||Uno por servidor ACD||Interfaz entre '''''VIVA'''''it Desk, supervisor y el manager de asterisk||'''''VIVA'''''it Suite||&lt;br /&gt;
|-&lt;br /&gt;
|myAcdSuperv||Uno por servidor ACD||Recopilador de datos de asterisk y actualiza en la BBDD&lt;br /&gt;
Genera llamadas en el marcador&lt;br /&gt;
||'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|motorSal||Uno por sistema con ACD||Motor de marcador saliente automático||'''''VIVA'''''it Suite||Solo si hay marcación saliente&lt;br /&gt;
Junto a la BBDD de tiempo real&lt;br /&gt;
|-&lt;br /&gt;
|recordCentral||Uno por sistema||Servidor de grabaciones, se conectan los agentes a el||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Se arrancan varias instancias en función del número de nodos&lt;br /&gt;
Debe instalarse en un servidor que tenga el almacenamiento de grabaciones en su sistema de archivos&lt;br /&gt;
|-&lt;br /&gt;
|recordNodo||Uno por servidor corporativo/gateway||Agente de grabación||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|bdCentral||Uno, en el nodo con la BBDD de tiempo real||Genera la base de datos que se copiará para respaldo a otros nodos||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|bdNodo||En cada nodo con BBDD de copia||Recoge la base de datos del servidor central con el objeto de tener el respaldo||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|Actualizador||Uno por sistema con ACD||Se encarga de proporcionar las versiones actualizadas de las aplicaciones de puesto de trabajo||'''''VIVA'''''it Suite||En el mismo servidor que el portal de administración&lt;br /&gt;
|-&lt;br /&gt;
|phoneProv-tftp||Uno por sistema||Se encarga del aprovisionamiento masivo de terminales||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||En instalaciones grandes habrá más de uno, quizás uno por sede grande; depende de la infraestructura de DHCP&lt;br /&gt;
|-&lt;br /&gt;
|borraregistrosnimitz||||||||				&lt;br /&gt;
|-&lt;br /&gt;
|Mover grabaciones a nube||||||||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Administración'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Tomcat 7||Uno por servidor con portales||Servidor de aplicaciones JAVA||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|Portal de administración ||Uno por sistema||Portal de administración del sistema||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Portal usuario||Uno por sistema||Portal de usuario, para acceso a buzones, su configuración||'''''VIVA'''''it Call||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Tracker web||Uno por sistema||Portal de seguimiento de llamadas||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Debe instalarse en un servidor que tenga los ficheros de grabación montados en su sistema de archivos&lt;br /&gt;
Ligado a recordCentral&lt;br /&gt;
Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Monitor||Uno por sistema||Portal de monitores de pared de Call Center||'''''VIVA'''''it Suite||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Apache||Uno por servidor de calendarios||Servidor de portales WEB||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|Servidor de calendarios||Uno por sistema||Aloja calendarios para su uso en diferentes entornos de NIMITZ||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Monitorización'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Servidor zabbix||Uno por instalación||Monitorización técnica y de negocio||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de uno&lt;br /&gt;
Tipicamente irá o en BBDD replica o en nodo de gestión en instalaciones grandes&lt;br /&gt;
|-&lt;br /&gt;
|Templates zabbix||Uno por instalación||Adaptaciones específicas||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|Agente Zabbix||Uno por servidor||Agente de monitorización||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
||Scripts monitorización zabbix||Uno por servidor||Agente de monitorización||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Versiones de módulos===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Módulo  !! V.3.10 !! V.3.2.0 !! V.3.3.0 !!  V.3.4.0&lt;br /&gt;
(VSuite 3.4+VCall3.0) &lt;br /&gt;
!  V.3.5.0&lt;br /&gt;
(VSuite 3.5+VCall3.1)&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk || 1.4 || 1.4 || 1.4 || 1.4 Nodo ACD&lt;br /&gt;
13 resto nodos&lt;br /&gt;
|| 1.4 Nodo ACD&lt;br /&gt;
13 resto nodos&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk ACD  ||  ||  || || 3.3.1 || 3.4.1 &lt;br /&gt;
|-&lt;br /&gt;
| Dialplan ACD || ||  ||  || || 3.4.1&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk Corp ||  ||  ||  || 3.3.4 || 3.4.4&lt;br /&gt;
|-&lt;br /&gt;
| Dialplan Corp  || ||  ||  || 3.3.1 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| Lazarus común  || 3.1.0  || 3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| BD  || 3.2.0 || 3.4.0 || 3.5.0 || 3.6.0 || 3.8.0&lt;br /&gt;
|-&lt;br /&gt;
| Generaconf || 3.0.0  || 3.0.0  || 3.2.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Instalador || 3.1.0  || 3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Intz-nimitz || 2.6.0  || 3.0.1 || 3.0.3 ||  3.4.1 || 3.4.2&lt;br /&gt;
|-&lt;br /&gt;
| recordgwd   ||  1.3.0 ||  1.3.0 || 3.1.0 ||  ----- || -----&lt;br /&gt;
|-&lt;br /&gt;
| recordNodo  || ----- || ----- || ----- ||  4.0.0 || 4.0.0&lt;br /&gt;
|-&lt;br /&gt;
| recordprocesad || 1.2.0 ||1.2.0|| 3.0.0 || ----- || -----&lt;br /&gt;
|-&lt;br /&gt;
| recordCentral || ----- || ----- || -----||  4.0.0 || 4.0.1&lt;br /&gt;
|-&lt;br /&gt;
| MyACDSuperv || 5.2.0 || 5.3.0  ||  5.3.0  ||  5.3.2 || 5.3.2&lt;br /&gt;
|-&lt;br /&gt;
| Motorsal || 1.4.0 || 3.1.0  || 3.2.0 || 3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| Vivait-cti  || 3.0.0 ||  3.0.1  ||  3.0.1  ||  3.0.1 || 3.0.2&lt;br /&gt;
|-&lt;br /&gt;
| Multimonitorweb ||  3.0.1 ||  3.0.2  || 3.1.0  || 3.1.0 || 3.2.0&lt;br /&gt;
|-&lt;br /&gt;
| Portal de administración || 3.1.0  || 3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Tracker Web  || 3.0.2  || 3.1.0 ||  3.2.0 ||  3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
|  VIVA supervisor || 3.0.0 ||  3.1.0  ||  3.2.0  ||  3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| Tracker windows  || 3.0.0  || 3.1.0  || 3.2.0 || 3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| VIVA report  || 1.2.0  || 3.1.0  || 3.2.0  ||  3.2.2 || 3.3.0&lt;br /&gt;
|-&lt;br /&gt;
| VIVA desk || 3.0.2 ||  3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| VIVA designer || 1.0.23 || 3.0.1  || 3.1.0 ||  3.1.0 || 3.2.0&lt;br /&gt;
|-&lt;br /&gt;
|  Preview || 1.0.18 || 3.2.0  || 3.3.0 || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Phone_prov  || ------ || ------ || 3.0.1 || 3.0.3 || 3.0.3&lt;br /&gt;
|-&lt;br /&gt;
| Portal usuario || ------ || ------ || ------ || 3.0.0 || 3.1.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Sistema Operativo ===&lt;br /&gt;
Los sistemas operativos de nuestra plataforma se corresponden a las versiones de Ubuntu Server LTS , ya que son las versiones estables, con un soporte continuado y mas estables a actualizaciones desde la salida Ubuntu 14.04.1. En concreto el sistema operativo utilizado para la plataforma '''''VIVA'''''it es Ubuntu Server 14.04.4 LTS. Para más información https://help.ubuntu.com/lts/serverguide/index.html.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ubuntu Kernel Release Schedule.png|750px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Funcionamiento en cluster ====&lt;br /&gt;
&lt;br /&gt;
Un clúster es un grupo de múltiples ordenadores unidos mediante una red de alta velocidad, de tal forma que el conjunto es visto como un único ordenador.&lt;br /&gt;
&lt;br /&gt;
De un clúster se espera que presente combinaciones de los siguientes servicios:&lt;br /&gt;
&lt;br /&gt;
# Alto rendimiento &lt;br /&gt;
# Alta disponibilidad&lt;br /&gt;
# Balanceo de carga &lt;br /&gt;
# Escalabilidad &lt;br /&gt;
&lt;br /&gt;
Tal y como esta definido el cluster de MDtel, este comprueba conectividad con la otra máquina que lo forma y con un punto de confianza. Si la máquina no tiene conectividad con la otra y si con el punto de confianza es que el servidor está vivo, mientas que si no tengo conectividad ni con la otra máquina ni con el punto de confianza es que el muerto soy yo, por lo que balanceo.&lt;br /&gt;
&lt;br /&gt;
Por lo que las máquinas balancean en los casos siguientes:&lt;br /&gt;
&lt;br /&gt;
* Todo lo que tenga que ver con la red, es decir, caída de la tarjeta de red, apagado de la máquina, corte en la red..&lt;br /&gt;
&lt;br /&gt;
Y no balancea en los siguientes:&lt;br /&gt;
&lt;br /&gt;
* No balancea en los demás casos, es decir, todo lo que tenga que ver con procesos de una máquina (caída asterisk, base de datos, intz-nimitz)&lt;br /&gt;
&lt;br /&gt;
El funcionamiento en cluster se basa en:&lt;br /&gt;
&lt;br /&gt;
* Heartbeat: IP flotante entre las dos máquinas que componen el cluster; típicamente este &amp;quot;latido&amp;quot; entre máquinas se realizará mediante conexión directa con cable cruzado para asegurar que no existan problemas de comunicaciones tales como retardo, pérdida de paquetes, etc en este latido y pueda ser causa de un balanceo inadecuado.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|  '''Nota 17-11-2015:''' Se ha realizado en un cliente un cluster distribuido, con dos servidores en diferentes sedes, realizando el heartbeat mediante enlace Gigabit. Si bien la solución no está validada por desarrollo, se está observando el funcionamiento.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* DRBD que se encargar de mantener una serie de carpetas totalmente replicadas entre los dos nodos; dichas las carpetas son:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El cluster es &amp;lt;big&amp;gt;'''activo/pasivo'''&amp;lt;/big&amp;gt;; la máquina activa posee la IP flotante y tiene arrancados los servicios.&lt;br /&gt;
&lt;br /&gt;
==== Configuración del cluster ====&lt;br /&gt;
Para montar un cluster de asterisk partimos de la siguiente situación inicial:&lt;br /&gt;
* Dos maquinas con '''''VIVA'''''it Call 3.0 instalado.&lt;br /&gt;
* El driver bonding de Interfaces de Red en Ubuntu Server.&lt;br /&gt;
&lt;br /&gt;
Los pasos a seguir para la configuración en el Ubuntu Server son los siguientes:&lt;br /&gt;
* Instalar ifenslave: &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 aptitude install ifenslave.&lt;br /&gt;
|}&lt;br /&gt;
: Finalizada la instalación, comprobamos que la instalación de Bonding se ha configurado para empezar desde el arranque del sistema operativo desde el fichero '''/etc/modules''':&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| vi /etc/modules&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 # Parameters can be specified after the module name.&lt;br /&gt;
 lp&lt;br /&gt;
 rtc&lt;br /&gt;
 bonding&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Crear o editar el archivo llamado '''/etc/modprobe.d/bonding.conf''' y añadir la siguiente linea en negrita:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 echo &amp;quot;alias bond0 bonding&amp;quot;&amp;gt; /etc/modprobe.d/bonding.conf&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Editar el fichero /etc/network/interfaces y añadir lo que esta en negrita:&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
 # This file describes the network interfaces available on your system&lt;br /&gt;
 # and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 &lt;br /&gt;
 '''# Bonding'''&lt;br /&gt;
 &lt;br /&gt;
 '''#em1 ip manual y esclavo en el &amp;quot;bond0&amp;quot; NIC'''&lt;br /&gt;
 '''auto em1'''&lt;br /&gt;
 '''iface em1 inet manual'''&lt;br /&gt;
 '''bond-master bond0'''&lt;br /&gt;
 '''bond-primary em0''' &lt;br /&gt;
 &lt;br /&gt;
 '''#em2 ídem, creando así un vínculo de enlace 2.'''&lt;br /&gt;
 '''auto em2'''&lt;br /&gt;
 '''iface em2 inet manual'''&lt;br /&gt;
 '''bond-master bond0'''&lt;br /&gt;
 '''auto bond0'''&lt;br /&gt;
 '''iface bond0 inet static'''&lt;br /&gt;
         '''address 10.255.255.11'''&lt;br /&gt;
        '''netmask 255.255.255.0'''&lt;br /&gt;
        '''gateway 10.255.255.254'''&lt;br /&gt;
 '''bond-mode active-backup'''&lt;br /&gt;
 '''bond-miimon 100'''&lt;br /&gt;
 '''bond-slaves none'''&lt;br /&gt;
 &lt;br /&gt;
 '''# em3 replica entre servidores'''&lt;br /&gt;
 '''auto em3'''&lt;br /&gt;
 '''iface em3 inet static'''&lt;br /&gt;
         '''address 10.255.254.10'''&lt;br /&gt;
        '''netmask 255.255.255.0'''&lt;br /&gt;
 &lt;br /&gt;
 '''# em4 gestion'''&lt;br /&gt;
 '''auto em4'''&lt;br /&gt;
 '''iface em4 inet static'''&lt;br /&gt;
         '''address 172.17.47.255'''&lt;br /&gt;
         '''netmask 255.255.0.0'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Reiniciamos el sistema para que el kernel tome los cambios.&lt;br /&gt;
&lt;br /&gt;
* Comprobación que en las dos maquinas el archivo '''/etc/host''' contenga el los nombre de las dos maquinas a vincular. En el ejemplo el archivo en ambas maquinas es:&lt;br /&gt;
&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 127.0.0.1       localhost&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.11   vivaitcall-CL-UAH-1&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.12   vivaitcall-CL-UAH-2&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.10   vivaitcall-CL-UAH&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.10   BDTR&lt;br /&gt;
 &lt;br /&gt;
 10.255.254.10   vivaitcall-CL-UAH-1-em3&lt;br /&gt;
 &lt;br /&gt;
 10.255.254.11   vivaitcall-CL-UAH-2-em3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Creamos dos particiones iguales en ambos ordenadores , usando el comando '''parted'''.&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# '''parted /dev/sda'''&lt;br /&gt;
 GNU Parted 2.3&lt;br /&gt;
 Using /dev/sda&lt;br /&gt;
 Welcome to GNU Parted! Type 'help' to view a list of commands.&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Number  Start   End     Size    File system     Name  Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 &lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                 boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
        237GB   1000GB  763GB   Free Space&lt;br /&gt;
 &lt;br /&gt;
 (parted) mkpart primary 237GB 1000GB&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Number  Start   End     Size    File system     Name     Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                    boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
 5      237GB   1000GB  763GB                   primary  No File System como ext4&lt;br /&gt;
        1000GB  1000GB  204kB   Free Space&lt;br /&gt;
 (parted)quit&lt;br /&gt;
 mkfs.ext4 /dev/sda5&lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# '''parted /dev/sda'''&lt;br /&gt;
 GNU Parted 2.3&lt;br /&gt;
 Using /dev/sda&lt;br /&gt;
 Welcome to GNU Parted! Type 'help' to view a list of commands.&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Number  Start   End     Size    File system     Name     Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                    boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
 5      237GB   1000GB  763GB                   primary&lt;br /&gt;
        1000GB  1000GB  204kB   Free Space&lt;br /&gt;
 (parted) rm 5&lt;br /&gt;
 (parted) mkpart primary 237GB 1000GB&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 &lt;br /&gt;
 Number  Start   End     Size    File system     Name     Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                    boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
 5      237GB   1000GB  763GB   ext4            primary  Si File Sytem ext4&lt;br /&gt;
        1000GB  1000GB  204kB   Free Space&lt;br /&gt;
 (parted)quit&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Instalar los paquetes necesarios para el drbd. '''En Ubuntu server 14.04 ya está instalado.'''&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 aptitude install drbd8-utils  &lt;br /&gt;
 aptitude update (si no instala el drbd8-utils actualizar)&lt;br /&gt;
 aptitude install drbd8-utils  (volver a lanzar)&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
* Creamos el archivo '''/etc/drbd.conf''' en ambas maquinas:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 # You can find an example in  /usr/share/doc/drbd.../drbd.conf.example&lt;br /&gt;
 include &amp;quot;drbd.d/global_common.conf&amp;quot;;&lt;br /&gt;
 include &amp;quot;drbd.d/*.res&amp;quot;;&lt;br /&gt;
 resource MDcluster {&lt;br /&gt;
         protocol C;&lt;br /&gt;
         on vivaitcall-CL-UAH-1 {&lt;br /&gt;
               device /dev/drbd0;&lt;br /&gt;
               disk /dev/sda5;&lt;br /&gt;
               address 10.255.254.10:7788;&lt;br /&gt;
               meta-disk internal;&lt;br /&gt;
        }&lt;br /&gt;
        on vivaitcall-CL-UAH-2 {&lt;br /&gt;
               device /dev/drbd0;&lt;br /&gt;
               disk /dev/sda5;&lt;br /&gt;
               address 10.255.254.11:7788;&lt;br /&gt;
               meta-disk internal;&lt;br /&gt;
        }&lt;br /&gt;
        disk {&lt;br /&gt;
               on-io-error detach;&lt;br /&gt;
        }&lt;br /&gt;
        net {&lt;br /&gt;
               max-buffers 2048;&lt;br /&gt;
               ko-count 4;&lt;br /&gt;
        }&lt;br /&gt;
        syncer {&lt;br /&gt;
               rate 100M;&lt;br /&gt;
               al-extents 257;&lt;br /&gt;
        }&lt;br /&gt;
        startup {&lt;br /&gt;
                wfc-timeout 0;&lt;br /&gt;
                degr-wfc-timeout 120;&lt;br /&gt;
        }&lt;br /&gt;
 }&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Reiniciamos el sistema para que el kernel tome los cambios.&lt;br /&gt;
* Inicializamos el recurso, para ello primero deberemos crear los recursos DRBD teclearemos en ambas maquinas. Desde /etc.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
  drbdadm create-md MDcluster  (no y yes )&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Si tenemos algún problema porque ya exista sistema de ficheros.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 dd if=/dev/zero of=/dev/sda5 bs=1M count=128&lt;br /&gt;
 drbdadm create-md MDcluster  (no y yes )&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Reiniciamos ambas maquinas para que su kernel tome los cambios.&lt;br /&gt;
* Levantamos el servicio del DRBD en ambos servidores (nos preguntara que si queremos enviar los datos a los desarrolladores de drbd) tecleando no, no se envían.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 service drbd start&lt;br /&gt;
 /etc/init.d/drbd start&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Ahora &amp;lt;u&amp;gt;ambas maquinas son secundarias&amp;lt;/u&amp;gt;.&lt;br /&gt;
: Indicar cual de las dos maquinas usaremos como primaria, por tanto en la maquina elegida habra que ejecutar:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 drbdadm -- --overwrite-data-of-peer primary all (en una máquina)&lt;br /&gt;
:&amp;lt;small&amp;gt;'''Nota:''' La ip virtual que va a estar asignada a la maquina activa es  172.25.129.70.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Podemos teclear el comando '''''cat''''' para ver si esta sincronizando  y su progreso:&lt;br /&gt;
&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 cat /proc/drbd&lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' El servicio DRBD  aparecera como '''''Primary/Secondary'''''  si ejecutamos en el primario ; &lt;br /&gt;
 y aparecerá ''''Secondary/Primary'''' si lo ejecutamos en el secundario. &amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
* Instalación de los script de arranque:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 update-rc.d -f drbd remove (en las dos maquinas)&lt;br /&gt;
 update-rc.d drbd start 13 2 3 4 5 . stop 87 0 1 6 . (en las dos máquinas)&lt;br /&gt;
|}&lt;br /&gt;
* Seleccionar la fuente de sincronización.&lt;br /&gt;
:Formateamos un disco de la maquina que queramos que funcione como fuente del servicio DRBD, para evitar conflictos:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 mkfs.ext4  /dev/drbd0&lt;br /&gt;
|}&lt;br /&gt;
: Creamos el directorio sobre el que vamos a montar el disco, en ambas maquinas.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 mkdir  /HDcluster&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Creamos un archivo dentro '''''/HDcluster''''' de que se verá solo cuando el disco no está montado en ambas maquinas.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 touch sinMontar&lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' Este archivo nos puede servir para monitorizar mediante zabbix, nagios, ... que el disco no está montado.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:  En una de las maquinas montamos el disco (desde fuera del directorio HDcluster) &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 mount  /dev/drbd0 /HDcluster&lt;br /&gt;
|}&lt;br /&gt;
* Procedemos a mover todos los datos que necesitemos en este disco y a crear accesos directos, los directorios que vamos a mover son los siguientes:&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 /etc/asterisk&lt;br /&gt;
 /var/lib/asterisk&lt;br /&gt;
 /usr/lib/asterisk&lt;br /&gt;
 /usr/spool/asterisk&lt;br /&gt;
 /var/lib/mysql&lt;br /&gt;
 /var/tftp/&lt;br /&gt;
|}&lt;br /&gt;
: El procedimiento que vamos a seguir es el siguiente, en el primer ordenador:&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 '''Cd /HDcluster'''&lt;br /&gt;
 '''tar -zcvf etc-asterisk.tgz /etc/asterisk'''&lt;br /&gt;
 '''tar -zxvf  etc-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /etc/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/etc/asterisk /etc/asterisk'''&lt;br /&gt;
 '''tar -zcvf var-lib-asterisk.tgz /var/lib/asterisk'''&lt;br /&gt;
 '''tar -zxvf  var-lib-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /var/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/asterisk /var/lib/asterisk'''&lt;br /&gt;
 '''tar -zcvf usr-lib-asterisk.tgz /usr/lib/asterisk'''&lt;br /&gt;
 '''tar -zxvf  usr-lib-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /usr/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/usr/lib/asterisk /usr/lib/asterisk'''&lt;br /&gt;
 '''tar -zcvf var-spool-asterisk.tgz /var/spool/asterisk'''&lt;br /&gt;
 '''tar -zxvf  var-spool-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /var/spool/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/spool/asterisk /var/spool/asterisk'''&lt;br /&gt;
 '''tar -zcvf var-lib-mysql.tgz /var/lib/mysql'''&lt;br /&gt;
 '''tar -zxvf  var-lib-mysql.tgz'''&lt;br /&gt;
 '''rm -rf /var/lib/mysql'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/mysql /var/lib/mysql'''&lt;br /&gt;
 '''tar -zcvf var-lib-phoneprov-tftp.tgz /var/lib/phoneprov-tftp/'''&lt;br /&gt;
 '''tar -zxvf  var-lib-phoneprov-tftp.tgz'''&lt;br /&gt;
 '''rm -rf /var/lib/phoneprov-tftp/'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/phoneprov-tftp /var/lib/phoneprov-tftp'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: En la segunda maquina debemos borrar los directorios y crear los accesos directos.&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''rm -rf /etc/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/etc/asterisk /etc/asterisk'''&lt;br /&gt;
 '''rm -rf /var/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/asterisk /var/lib/asterisk'''&lt;br /&gt;
 '''rm -rf /usr/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/usr/lib/asterisk /usr/lib/asterisk'''&lt;br /&gt;
 '''rm -rf /var/spool/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/spool/asterisk /var/spool/asterisk'''&lt;br /&gt;
 '''rm -rf /var/lib/mysql'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/mysql /var/lib/mysql'''&lt;br /&gt;
 '''rm -rf /var/lib/phoneprov-tftp'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/phoneprov-tftp /var/lib/phoneprov-tftp'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Configurar heartbeat para las dos maquinas.&lt;br /&gt;
: Instalamos heartbeat en las dos maquinas. '''En UBUNTU Server 14.04 ya está instalado.'''&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 aptitude install heartbeat&lt;br /&gt;
|}&lt;br /&gt;
: Debemos modificar 3 ficheros en cada una de las maquinas, estos se encuentran en '''/etc/ha.d'''. El primer fichero a modificar es '''''ha.cf.''''':&lt;br /&gt;
:: En la maquina ''vivaitcall-CL-UAH-1'' es: &lt;br /&gt;
::{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# cat /etc/ha.d/ha.cf&lt;br /&gt;
 '''# Explicacion en /usr/share/doc/heartbeat/ha.cf.gz'''&lt;br /&gt;
 &lt;br /&gt;
 '''udpport 694'''&lt;br /&gt;
 '''baud 19200'''&lt;br /&gt;
 '''auto_failback off'''&lt;br /&gt;
 '''use_logd yes'''&lt;br /&gt;
 '''crm no'''&lt;br /&gt;
 &lt;br /&gt;
 '''# Temporizaciones en segs'''&lt;br /&gt;
 '''logfacility local0'''&lt;br /&gt;
 '''keepalive 2'''&lt;br /&gt;
 '''deadtime 8'''&lt;br /&gt;
 '''warntime 16'''&lt;br /&gt;
 '''initdead 64'''&lt;br /&gt;
 '''deadping 6'''&lt;br /&gt;
 &lt;br /&gt;
 '''#ucast bond0 vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''ucast bond0 vivaitcall-CL-UAH-2'''&lt;br /&gt;
 &lt;br /&gt;
 '''#ucast em3 vivaitcall-CL-UAH-1-em3'''&lt;br /&gt;
 '''ucast em3 vivaitcall-CL-UAH-2-em3'''&lt;br /&gt;
 &lt;br /&gt;
 '''#Ping a puerta de enlace,gw1,gw2,gw3,gw4'''&lt;br /&gt;
 '''ping_group red_local 10.255.255.12'''&lt;br /&gt;
 &lt;br /&gt;
 '''respawn hacluster /usr/lib/heartbeat/ipfail'''&lt;br /&gt;
 '''apiauth ipfail gid=haclient uid=hacluster'''&lt;br /&gt;
 &lt;br /&gt;
 '''node vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''node vivaitcall-CL-UAH-2'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:: Y en la maquina ''vivaitcall-CL-palacio-2'' es:&lt;br /&gt;
::{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# cat /etc/ha.d/ha.cf&lt;br /&gt;
 '''# Explicacion en /usr/share/doc/heartbeat/ha.cf.gz'''&lt;br /&gt;
 &lt;br /&gt;
 '''udpport 694'''&lt;br /&gt;
 '''baud 19200'''&lt;br /&gt;
 '''auto_failback off'''&lt;br /&gt;
 '''use_logd yes'''&lt;br /&gt;
 '''crm no'''&lt;br /&gt;
 &lt;br /&gt;
 '''# Temporizaciones en segs'''&lt;br /&gt;
 '''logfacility local0'''&lt;br /&gt;
 '''keepalive 2'''&lt;br /&gt;
 '''deadtime 8'''&lt;br /&gt;
 '''warntime 16'''&lt;br /&gt;
 '''initdead 64'''&lt;br /&gt;
 '''deadping 6'''&lt;br /&gt;
 &lt;br /&gt;
 '''ucast bond0 vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''#ucast bond0 vivaitcall-CL-UAH-2'''&lt;br /&gt;
 &lt;br /&gt;
 '''ucast em3 vivaitcall-CL-UAH-1-em3'''&lt;br /&gt;
 '''#ucast em3 vivaitcall-CL-UAH-2-em3'''&lt;br /&gt;
 &lt;br /&gt;
 '''#Ping a puerta de enlace gw1 gw2 gw3 gw4'''&lt;br /&gt;
 '''ping_group red_local 10.255.255.12'''&lt;br /&gt;
 &lt;br /&gt;
 '''respawn hacluster /usr/lib/heartbeat/ipfail'''&lt;br /&gt;
 '''apiauth ipfail gid=haclient uid=hacluster'''&lt;br /&gt;
 &lt;br /&gt;
 '''node vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''node vivaitcall-CL-UAH-2'''&lt;br /&gt;
|}&lt;br /&gt;
::'''Nota:''' El parámetro '''auto_failback''' se utiliza para indicar si queremos que al recuperarse una maquina adquiera los recursos sobre los que tiene prioridad.&lt;br /&gt;
:El segundo fichero es '''''authkeys''''',, este fichero es el mismo en ambas maquinas: &lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 chmod 600 authkeys '''(importante)'''&lt;br /&gt;
 auth 1&lt;br /&gt;
 1 sha1 claveSecretaATope&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:El tercer fichero '''haresources''', donde especificaremos en las dos maquinas que deben apuntar a la maquina que queremos que tenga prioridad en la adquisición de los recursos, este fichero es el mismo en las dos maquinas: &lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 MÁQUINA 1 -&amp;gt; vivaitcall-CL-palacio-1 hb_mdtel&lt;br /&gt;
 MÁQUINA 2-&amp;gt; vivaitcall-CL-palacio-1 hb_mdtel &lt;br /&gt;
|}&lt;br /&gt;
: Copiaremos en el directorio '''/etc/ha.d/resource.d/''' los scripts de arranque con permisos 755 (lo podemos hacer mediante WINSCP). Los scripts se encuentran en '''''C:\Documents and Settings\javier.gutierrez.MDTEL\Mis documentos\Centrales\Asterisk\Cluster\scripts'''''.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 chmod 755 hb_catalina&lt;br /&gt;
 chmod 755 hb_mdtel&lt;br /&gt;
 chmod 755 hb_mdtel_firewall&lt;br /&gt;
|}&lt;br /&gt;
: Deberemos editar  el archivo '''hb_mdtel'''&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 (IP flotante a.b.c.d./mask) 10.255.255.10&lt;br /&gt;
 CAD_IP_FLOTA=10.255.255.10/24/bond0&lt;br /&gt;
|}&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* Paramos el proceso '''myAcdSuperv'''.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 mv /etc/rc2.d/S02myAcdSuperv s02myAcdSuperv&lt;br /&gt;
|}&lt;br /&gt;
* Reiniciamos ambas maquinas para que su kernel tome los cambios.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de buen funcionamiento del cluster ====&lt;br /&gt;
* La maquina activa tiene que tener en HDcluster montado el disco con todos sus directorios y la maquina inactiva no (tenemos que ver el archivo que hemos creado &amp;quot;sinMontar&amp;quot;). &lt;br /&gt;
* La ip virtual tiene que estar en la maquina activa (ifconfig)  y no tiene que estar en la inactiva. &lt;br /&gt;
* El asterisk tiene que estar arrancado en la maquina activa y parado en la inactiva. &lt;br /&gt;
* Tecleando la ip de la maquina activa en un navegador debemos acceder al portal de vivait-call y en la inactiva no debe de estar activo. &lt;br /&gt;
* Para cambiar el cluster manualmente podemos utilizar los siguientes comandos:&lt;br /&gt;
:{|&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
  /usr/share/heartbeat/hb_takeover&lt;br /&gt;
|}&lt;br /&gt;
: La maquina desde la que se ejecuta se convierte en la maquina activa&lt;br /&gt;
:{|&lt;br /&gt;
 |- &lt;br /&gt;
 |&lt;br /&gt;
  /usr/share/heartbeat/hb_standby&lt;br /&gt;
 |}&lt;br /&gt;
: La maquina desde la que se ejecuta deja de ser la maquina activa&lt;br /&gt;
&lt;br /&gt;
==== Notas para MySQL ====&lt;br /&gt;
Si mysql es parte del cluster tenemos que tener en cuenta dos cosas:&lt;br /&gt;
&lt;br /&gt;
* El archivo '''/etc/mysql/debían.cnf''' contiene una clave que debe ser igual en ambas maquinas y debe ser la clave de la máquina de donde cojamos la base de datos.&amp;lt;br&amp;gt;&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 # Automatically generated for Debian scripts. DO NOT TOUCH!&lt;br /&gt;
 [client]&lt;br /&gt;
 host     = localhost&lt;br /&gt;
 user     = debian-sys-maint&lt;br /&gt;
 password = AI6AdPtnhLUrNm1S&lt;br /&gt;
 socket   = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysql_upgrade]&lt;br /&gt;
 user     = debian-sys-maint&lt;br /&gt;
 password = AI6AdPtnhLUrNm1S&lt;br /&gt;
 socket   = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 basedir  = /usr&lt;br /&gt;
|} &amp;lt;br&amp;gt;&lt;br /&gt;
* El archivo '''/etc/apparmor.d/usr.sbin.mysqld''' contiene donde pueden estar ubicados los archivos de mysql, al cambiar su ubicación y poner un enlace directo en /var/lib/mysql si no modificamos este archivo mysql no arrancara al no tener la nueva ubicación entre sus localizaciones permitidas. Este es un ejemplo de las líneas que debemos añadir. &amp;lt;br&amp;gt;&lt;br /&gt;
:{|&lt;br /&gt;
|-  &lt;br /&gt;
|&lt;br /&gt;
 /var/run/mysqld/mysqld.sock w, (copiar después de esta linea)&lt;br /&gt;
 &lt;br /&gt;
 #//!!&lt;br /&gt;
   /HDcluster/var/lib/mysql/ r,&lt;br /&gt;
   /HDcluster/var/lib/mysql/** rwk,&lt;br /&gt;
   #//!!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Notas de desincronización ====&lt;br /&gt;
EL servicio del DRBD esta iniciado pero al teclear el comando cat /proc/drbd para ver si esta sincronizando se presenta &amp;quot;'''primary/unknown&amp;quot; y/o secondary/unknown''' &amp;quot;.&lt;br /&gt;
* En el nodo primary  &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 drbdadm connect all &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* En el nodo secondary  &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 drbdadm disconnect all  &lt;br /&gt;
 drbdadm -- --discard-my-data connect all&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Adaptar red a cliente ====&lt;br /&gt;
Para adaptar la red de los equipos al entorno del cliente hay que editar los siguientes ficheros:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 /etc/network/interfaces&lt;br /&gt;
 /etc/resolv.conf&lt;br /&gt;
 /etc/hosts&lt;br /&gt;
 /etc/ha.d/resource.d/hb_mdtel&lt;br /&gt;
 /etc/ha.d/ha.cf &lt;br /&gt;
 - TFTP: &lt;br /&gt;
 /etc/inetd.conf (IP del cluster)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
Tras la modificaciones oportunas, se debe reiniciar las dos máquinas para cargar las nuevas configuraciones.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Matriz de conmutación ===&lt;br /&gt;
&lt;br /&gt;
Encontramos dos diferentes núcleos de conmutación en la plataforma VIVAit:&lt;br /&gt;
&lt;br /&gt;
* Para los nodos de procesamiento ACD el núcleo de conmutación es asterisk 1.4 RSP con fuertes modificaciones realizadas por MDtel en determinados módulos (queues, chan_spy entre otros)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Para los nodos que realizan funcionalidad de gateway y/o procesamiento de telefonía corporativa, se utiliza como núcleo de conmutación asterisk 13, versión certified&lt;br /&gt;
https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Documentation&lt;br /&gt;
&lt;br /&gt;
==== Modificaciones realizadas sobre Asterisk 13 certified 2 ====&lt;br /&gt;
&lt;br /&gt;
===== Archivos añadidos por '''MD'''tel =====&lt;br /&gt;
Los archivos añadidos son los siguientes:&lt;br /&gt;
&lt;br /&gt;
* '''apps/app_ucid.c'''&lt;br /&gt;
* '''apps/app_cli.c'''&lt;br /&gt;
* '''apps/app_crash.c'''&lt;br /&gt;
* '''apps/app_mdintz.c'''&lt;br /&gt;
* '''apps/app_mdintz.exports.in'''&lt;br /&gt;
* '''include/asterisk/mdintz.h'''&lt;br /&gt;
* '''include/asterisk/ucid.h'''&lt;br /&gt;
* '''res/res_mdcal.c'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ apps/app_mdintz.exports.in '''&lt;br /&gt;
&lt;br /&gt;
Este archivo sirve para la exportación de funciones del mdintz para el uso por aplicaciones externas&lt;br /&gt;
&lt;br /&gt;
===== Modificaciones de archivos =====&lt;br /&gt;
&lt;br /&gt;
Los archivos modificados por '''MD'''tel son los mostrados a continuación:&lt;br /&gt;
&lt;br /&gt;
* '''apps/app_mixmonitor.c''' &lt;br /&gt;
* '''res/res_calendar_caldav.c'''&lt;br /&gt;
* '''contrib/scripts/safe_asterisk'''&lt;br /&gt;
* '''contrib/init.d/rc.debian.asterisk'''&lt;br /&gt;
* '''channels/sig_pri.c'''&lt;br /&gt;
* '''channels/chan_sip.c'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ main/audiohook.c''' &amp;lt;!--style=&amp;quot;color:#0000ff&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''audiohook.c''' ha sido modificado para solucionar un crash de asterisk al utilizar en el mixmonitor las opciónes r y t &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ app_crash.c '''&lt;br /&gt;
&lt;br /&gt;
Esta nueva aplicación es sólo compatible con '''Asterisk 13'''. &lt;br /&gt;
&lt;br /&gt;
La documentación de la misma se encuentra en el comando: '''&amp;quot;core show application Crash&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
Esta nueva aplicación ''permite añadir'' al plan de pruebas:&lt;br /&gt;
&lt;br /&gt;
* Generación de una parada de asterisk.&lt;br /&gt;
* Verificación de su impacto. Por ejemplo, no deben cortarse las llamadas en curso, si así está previsto por la topología.&lt;br /&gt;
* Correcta generación de los &amp;quot;core&amp;quot;, comprobando que funciona &amp;quot;backtrace&amp;quot; (bt).&lt;br /&gt;
&lt;br /&gt;
 '''Nota.-''' Esta aplicación no debería estar presente en una instalación de '''Asterisk 13'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ app_mdintz.c y mdintz.h''' &amp;lt;!--style=&amp;quot;color:#0000ff&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esta aplicación sirve como interfaz a entornos (funcionalidades) creados por MDtel&lt;br /&gt;
&lt;br /&gt;
Para mas información consultar la página de [[MDintz|MDintz]].&lt;br /&gt;
&lt;br /&gt;
Las rutas de estos archivos son las siguientes:&lt;br /&gt;
&lt;br /&gt;
'''apps/app_mdintz.c''' &amp;lt;br/&amp;gt;&lt;br /&gt;
'''include/asterisk/mdintz.h '''&lt;br /&gt;
&lt;br /&gt;
 '''app_mdintz.c''' :&lt;br /&gt;
&lt;br /&gt;
'''app_mdintz.c''' orientada al proceso de enrutamiento a implementar en ''intz-nimitz.''&lt;br /&gt;
&lt;br /&gt;
El archivo '''.c''' es casi igual para asterisk 1.4.24 y asterisk 13. &lt;br /&gt;
 '''Nota.-''' Cuando se compila para asterisk 13, es necesario comentar la línea que pone&amp;lt;br /&amp;gt; '''&amp;quot;#define ASTERISK_OLD&amp;quot;.'''&lt;br /&gt;
&lt;br /&gt;
Los cambios implementados son:&lt;br /&gt;
&lt;br /&gt;
* Unificación de código entre las versiones de asterisk&lt;br /&gt;
* Nuevo comando &amp;quot;qry&amp;quot;&lt;br /&gt;
* Posible resolución de &amp;quot;Mal write&amp;quot; en intz-nimitz (a verificar)&lt;br /&gt;
&lt;br /&gt;
En cuanto al nuevo comando, el formato es:&lt;br /&gt;
&lt;br /&gt;
 '''mdintz qry &amp;lt;nHostFijo&amp;gt; &amp;lt;entorno&amp;gt; &amp;lt;servicio&amp;gt; &amp;lt;par1&amp;gt;...&amp;lt;parN&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Permite interrogar a un servidor de igual modo que hace el dialplan con '''fines de diagnóstico'''. La única diferencia es que se ha añadido el parámetro '''&amp;quot;nHostFijo&amp;quot;''' que puede tomar como valor '''&amp;quot;*&amp;quot;''' (lo que solicita una interrogación secuencial a todos los servidores definidos, igual a la funcionalidad del dialplan) ó '''&amp;quot;0&amp;quot;''' a '''&amp;quot;3&amp;quot;''' (que solicita un interrogación dirigida el host indicado como hostN, y sólo a él, en archivo de configuración).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para instalarlo, es necesario copiar:&lt;br /&gt;
&lt;br /&gt;
* '''asterisk/apps/app_mdintz.c'''&lt;br /&gt;
* '''asterisk/include/asterisk/mdintz.h'''&lt;br /&gt;
* En asterisk 1.4.24 conviene asegurar que se ha actualizado '''&amp;quot;asterisk/apps/app_queue.o&amp;quot;''' y '''&amp;quot;asterisk/apps/app_queue.so&amp;quot;'''&lt;br /&gt;
* Luego '''&amp;quot;make&amp;quot;, &amp;quot;make install&amp;quot;''' y module '''&amp;quot;unload/load&amp;quot;''' (mejor &amp;quot;stop now&amp;quot; y start)&lt;br /&gt;
&lt;br /&gt;
'''→ scripts y rc.debian.asterisk'''&lt;br /&gt;
&lt;br /&gt;
cambiado contrib/scripts por el modificado por MDtel&amp;lt;br /&amp;gt;&lt;br /&gt;
cambiado contrib/init.d/rc.debian.asterisk por el modificado por MDtel &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ Carpeta mp3 añadida al directorio addons'''&lt;br /&gt;
&lt;br /&gt;
La carpeta mp3 en addons permite la reproducción desde el diaplan de los mensajes en mp3. En make menuselect hay que marcar el format_mp3 y app_mp3 e instalar el paquete mpg123 de ubuntu &lt;br /&gt;
&lt;br /&gt;
'''→ sig_pri.c'''&lt;br /&gt;
&lt;br /&gt;
Modificado para enviar/recibir el ucid en un primario qsig &lt;br /&gt;
&lt;br /&gt;
Para que se envie el ucis tenemos que habilitar el envio de facilidades en el chan_dahdi.conf&lt;br /&gt;
&lt;br /&gt;
facilityenable = yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ init.d''' &amp;lt;!--style=&amp;quot;color:#0000ff&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Uno de los archivos modificados ha sido '''init.d''', se encuentra en la ruta: '''/etc/init.d/asterisk'''. La modificación realizada es la siguiente:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;background-color:#ffffcc;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| SAFE_ASTEISK=/usr/sbin/safe_asterisk &amp;lt;br/&amp;gt;&lt;br /&gt;
if [ -x $SAFE_ASTERISK ] ; then&amp;lt;br/&amp;gt;&lt;br /&gt;
:# //!! wkw&amp;lt;br/&amp;gt;&lt;br /&gt;
:DAEMON=$SAFE_ASTERISK&amp;lt;br/&amp;gt;&lt;br /&gt;
fi&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--archivo--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''→ safe-asterisk'''&lt;br /&gt;
* Se encuentra en la siguiente ruta:'''/usr/sbin/safe-asterisk''' .En este archivo se ha modificado MAXFILES=32768&lt;br /&gt;
&lt;br /&gt;
'''→ default'''&lt;br /&gt;
&lt;br /&gt;
* Este fichero podemos encontrarlo en: '''/etc/default/asterisk'''. La finalidad de la modificación de este fichero es poder correr como usuario Asterisk, grupo asterisk y generar cores (descomentar línea)&lt;br /&gt;
Las modificaciones realizadas han sido:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;background-color:#ffffcc;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| AST_USER=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
AST_GROUP=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
COREDUMP=yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Nueva función de asterisk: app_cli.so =====&lt;br /&gt;
&lt;br /&gt;
Esta función permite ejecutar desde el '''dialplan''' un comando de línea de consola de '''asterisk (CLI).''' Su primer uso (y esperamos que no último) será para lanzar los '''notify''' que los teléfonos necesitan para el ''reaprovisionamiento'' desde el portal o desde la facilidad de movilidad de usuario.&lt;br /&gt;
&lt;br /&gt;
Básicamente ejecuta un comando y devuelve su salida. Utiliza un archivo intermedio que puede ser:&lt;br /&gt;
&lt;br /&gt;
* '''/dev/null''' si el campo se deja vacío, por tanto, no se puede recuperar la salida.&lt;br /&gt;
* '''TEMP''', en cuyo caso se crea un archivo temporal que se borra antes de finalizar la ejecución de la función.&lt;br /&gt;
* Un nombre de fichero que es responsabilidad del dialplan el borrarlo cuando proceda.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para instalarlo basta copiar '''apps/app_cli.c''' en el directorio ''' &amp;quot;apps&amp;quot; ''' de los fuentes y luego  ejecutar '''&amp;quot;make&amp;quot; y &amp;quot;make install&amp;quot;.'''&lt;br /&gt;
&lt;br /&gt;
A continuación se pasa el resultado de '''&amp;quot;core show function CLI&amp;quot; '''&lt;br /&gt;
&lt;br /&gt;
'''[Synopsis]'''&lt;br /&gt;
&lt;br /&gt;
 Lanza un comando CLI desde dialplan&lt;br /&gt;
&lt;br /&gt;
'''[Description]''' &amp;lt;br /&amp;gt;&lt;br /&gt;
 - CLI(nomArchSal,cmd)&amp;lt;br /&amp;gt;&lt;br /&gt;
 - Si 'nomArchSal' está vacio, se usa '/dev/null' y no se recupera resultado&amp;lt;br /&amp;gt;&lt;br /&gt;
 - Si 'nomArchSal'=TEMP, Se crea un archivo temporal que se borra al final&amp;lt;br /&amp;gt;&lt;br /&gt;
 - En otro caso, se crea el archivo y no se borra&lt;br /&gt;
&lt;br /&gt;
'''[Syntax]'''&amp;lt;br /&amp;gt;&lt;br /&gt;
 CLI(nomArchSal,cmd)&lt;br /&gt;
&lt;br /&gt;
'''[Arguments]'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''nomArchSal'''&lt;br /&gt;
    Archivo de salida (si se omite, /dev/null)&lt;br /&gt;
'''cmd'''&lt;br /&gt;
    Comando a ejecutar via CLI&lt;br /&gt;
&lt;br /&gt;
==== Dialplan  ====&lt;br /&gt;
&lt;br /&gt;
El Dialplan podría considerarse la columna vertebral del sistema ''Asterisk''.&lt;br /&gt;
&lt;br /&gt;
Es una colección ordenada de acciones que se llevan a cabo cuando un usuario marca una serie de números. Hace la función de una tabla de enrutamiento de llamadas.&lt;br /&gt;
&lt;br /&gt;
Todas las configuraciones generales de Asterisk están accesibles en la ruta '''/etc/asterisk'''&lt;br /&gt;
&lt;br /&gt;
'''CONCEPTOS BÁSICOS'''&lt;br /&gt;
&lt;br /&gt;
♦ '''EXTENSIONES'''&lt;br /&gt;
&lt;br /&gt;
Una extensión es una marcación en el teclado de un teléfono. Dicha configuración podemos encontrarla en el archivo '''extensions.conf''' &lt;br /&gt;
&lt;br /&gt;
Por ejemplo, un usuario podría marcar “3001” en su teléfono, y eso sería una extensión. También podría marcar un número de teléfono nacional, como por ejemplo “915881000”, y también sería una extensión.&lt;br /&gt;
&lt;br /&gt;
En Asterisk pueden definirse también extensiones como texto, por tanto no debemos relacionar las extensiones únicamente con números.&lt;br /&gt;
&lt;br /&gt;
Algunas reglas que sería interesante conocer serían las siguientes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Regla''' !! '''Descripción'''&lt;br /&gt;
|-&lt;br /&gt;
| '''X''' || Cualquier cifra de 0 a 9&lt;br /&gt;
|-&lt;br /&gt;
|'''Z'''||Cualquier cifra de 1 a 9&lt;br /&gt;
|-&lt;br /&gt;
|'''N'''||Cualquier cifra de 2 a 9&lt;br /&gt;
|-&lt;br /&gt;
|'''[x-y]'''||Cualquier cifra de &amp;quot;x&amp;quot; a &amp;quot;y&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''[xyz]'''|| 	Las cifras &amp;quot;x&amp;quot;, &amp;quot;y&amp;quot; o &amp;quot;z&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''.'''||Una o más repeticiones del símbolo anterior&lt;br /&gt;
|-&lt;br /&gt;
|'''!'''||Cero o más repeticiones del símbolo anterior&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Estas reglas son necesarias a la hora de definir por ejemplo todos los números de teléfono posibles en España &lt;br /&gt;
&lt;br /&gt;
♦ '''PRIORIDADES'''&lt;br /&gt;
&lt;br /&gt;
En lenguaje scripting, las acciones se van ejecutando de arriba a abajo en orden. En cambio, en Asterisk, el orden en el que se ejecutan las acciones es el indicado mediante números.&lt;br /&gt;
Primero se ejecutará la acción 1, luego la 2...así sucesivamente.&lt;br /&gt;
&lt;br /&gt;
Es decir no basta con definir las acciones que se llevarán a cabo, también debemos indicar el orden en el que se llevarán a cabo.&lt;br /&gt;
&lt;br /&gt;
♦ '''CONTEXTOS'''&lt;br /&gt;
&lt;br /&gt;
Es mecanismo que nos permite variar el comportamiento del sistema en función del número que se marque. Su misión es aumentar la seguridad del sistema ofreciendo servicios diferenciados en función del usuario.&lt;br /&gt;
&lt;br /&gt;
La sintaxis típica es el nombre del contexto englobado entre corchetes [nombre_contexto]. Si un dispositivo no tiene un contexto definido se redirige directamente al contexto por defecto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los ficheros que conforman el Dialplan se clasifican en:&lt;br /&gt;
&lt;br /&gt;
* '''Generales'''&lt;br /&gt;
* '''Particulares'''&lt;br /&gt;
* '''Web'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Fichero''' !! '''Función'''&lt;br /&gt;
|-&lt;br /&gt;
| '''Generales''' || Se encuentran los ficheros de propios de MDtel y Asterisk. Es importante remarcar que estos ficheros NO pueden ser modificados por el usuario.&lt;br /&gt;
|-&lt;br /&gt;
|'''Particular'''||Estos ficheros son los únicos que puede modificar el usuario&lt;br /&gt;
|-&lt;br /&gt;
|'''Web'''|| Se encierran aquí los archivos generados automáticamente por la plataforma, a través del portal&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
En función del nodo en el que estemos trabajando, encontraremos dos tipos de dialplan:&lt;br /&gt;
&lt;br /&gt;
'''* Dialplan ACD''' --&amp;gt; Dialplan que aplica a nodos ACD&lt;br /&gt;
&lt;br /&gt;
'''* Dialplan corporativa''' --&amp;gt; Dialplan que aplica a nodos de corporativa o gateways (ya sean de corporativa o ACD)&lt;br /&gt;
&lt;br /&gt;
A continuación se muestran las tablas con los ficheros correspondientes a cada Dialplan.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;FloralWhite&amp;quot;&lt;br /&gt;
|+ '''Ficheros de configuración Dialplan Corporativo'''&lt;br /&gt;
| '''GENERALES'''&lt;br /&gt;
| '''PARTICULARES'''&lt;br /&gt;
| '''WEB'''&lt;br /&gt;
|-&lt;br /&gt;
| ext_Grabaciones.conf &amp;lt;br /&amp;gt;ext_InicioLlamada.conf &amp;lt;br /&amp;gt; ext_InicioLlamada_Dahdi.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP.conf &amp;lt;br/&amp;gt;ext_InicioLlamada_TrunkSIP.conf &amp;lt;br /&amp;gt;ext_MARCAR_ColaCentralita.conf &amp;lt;br /&amp;gt; ext_MARCAR_ColaCentralita_Dial.conf&amp;lt;br /&amp;gt; ext_MARCAR_Cola.conf &amp;lt;br /&amp;gt;ext_MARCAR_Cola_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR.conf  &amp;lt;br /&amp;gt; ext_MARCAR_DejarMensaje.conf &amp;lt;br /&amp;gt; ext_MARCAR_DejarMensaje_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Extension.conf&amp;lt;br /&amp;gt;ext_MARCAR_Extension_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_nimitz.conf&amp;lt;br /&amp;gt;ext_MARCAR_Interno.conf &amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje.conf &amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR_Nodo.conf&amp;lt;br /&amp;gt;ext_MARCAR_Nodo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Servicios.conf &amp;lt;br /&amp;gt;ext_MARCAR_VDN.conf &amp;lt;br /&amp;gt;MARCAR_VDN_Dial.conf&amp;lt;br /&amp;gt;ext_MDtel.conf &amp;lt;br /&amp;gt;ext_MDtel_Var.conf &amp;lt;br /&amp;gt;ext_Subrutinas_AnchoBanda.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD_Facilidad.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD_Facilidad.conf &amp;lt;br /&amp;gt; ext_Subrutinas_Colas.conf &amp;lt;br /&amp;gt;ext_Subrutinas.conf &amp;lt;br /&amp;gt;ext_Subrutinas_Enrutamiento.conf &amp;lt;br /&amp;gt;ext_Subrutinas_finLlamada.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Grabacion.conf&amp;lt;br /&amp;gt;ext_Subrutinas_nimitz.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Varias.conf&amp;lt;br /&amp;gt;ext_Subscribe.conf&amp;lt;br /&amp;gt;ext_Transfer.conf &amp;lt;br /&amp;gt;ext_Transfer_ExtSIP.conf&amp;lt;br /&amp;gt;ext_Transfer_TrunkInternos.conf &amp;lt;br /&amp;gt;ext_TrunkInternos.conf&amp;lt;br /&amp;gt;ext_TrunkInternos_Dial.conf &amp;lt;br /&amp;gt;sip_Estatico.conf&amp;lt;br /&amp;gt; sip_GENCUST.conf &amp;lt;br /&amp;gt;sip_notify.conf &amp;lt;br /&amp;gt;queues.conf &amp;lt;br /&amp;gt; queues_GENERAL.conf &amp;lt;br /&amp;gt;queues_PLANTILLACOLAS.conf&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| ext_Enrutador_Particular.conf&amp;lt;br /&amp;gt; ext_InicioLlamada_Dahdi_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_Particular.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_TrunkSIP_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_Extension_Particular.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo_Particular.conf &amp;lt;br/&amp;gt; ext_MARCAR_Facilidad_Particular.conf&amp;lt;br /&amp;gt; ext_MARCAR_VDN_Particular.conf &amp;lt;br /&amp;gt;ext_MDtel_Particular.conf &amp;lt;br/&amp;gt; ext_TrunkInternos_Particular.conf &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|asterisk_WEB.conf &amp;lt;br /&amp;gt; ext_MDtel_WEB.conf &amp;lt;br /&amp;gt; sip_trunkExt_WEB.conf &amp;lt;br /&amp;gt;sip_trunkInt_WEB.conf &amp;lt;br /&amp;gt;sip_trunk_WEB.conf &amp;lt;br /&amp;gt; sip_WEB.conf &amp;lt;br /&amp;gt; queues_WEB.conf&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;FloralWhite&amp;quot;&lt;br /&gt;
|+ '''Ficheros de configuración Dialplan ACD'''&lt;br /&gt;
| '''GENERALES'''&lt;br /&gt;
| '''PARTICULARES'''&lt;br /&gt;
| '''WEB'''&lt;br /&gt;
|-&lt;br /&gt;
| ext_Enrutador.conf&amp;lt;br /&amp;gt;ext_Grabaciones.conf &amp;lt;br /&amp;gt; ext_InicioLlamada.conf &amp;lt;br /&amp;gt; ext_InicioLlamada_CTI.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_Dahdi.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_Marcador.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_TrunkSIP.conf &amp;lt;br /&amp;gt;ext_MARCAR_ColaCentralita.conf &amp;lt;br /&amp;gt;ext_MARCAR_ColaCentralita_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR_Cola.conf &amp;lt;br /&amp;gt;ext_MARCAR_Cola_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR.conf &amp;lt;br /&amp;gt;ext_MARCAR_DejarMensaje.conf &amp;lt;br /&amp;gt;ext_MARCAR_DejarMensaje_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Extension.conf &amp;lt;br /&amp;gt;ext_MARCAR_Extension_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_nimitz.conf&amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje.conf &amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Nodo.conf &amp;lt;br /&amp;gt;ext_MARCAR_Nodo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR_Servicios.conf &amp;lt;br /&amp;gt;ext_MARCAR_VDN.conf &amp;lt;br /&amp;gt;ext_MARCAR_VDN_Dial.conf&amp;lt;br /&amp;gt;ext_MDtel.conf &amp;lt;br /&amp;gt;ext_MDtel_Var.conf &amp;lt;br /&amp;gt;ext_Subrutinas_AnchoBanda.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD_Facilidad.conf &amp;lt;br /&amp;gt; ext_Subrutinas_Colas.conf &amp;lt;br /&amp;gt;ext_Subrutinas.conf &amp;lt;br /&amp;gt;ext_Subrutinas_Enrutamiento.conf &amp;lt;br /&amp;gt; ext_Subrutinas_finLlamada.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Grabacion.conf &amp;lt;br /&amp;gt;ext_Subrutinas_nimitz.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Varias.conf &amp;lt;br /&amp;gt;ext_Subscribe.conf&amp;lt;br /&amp;gt;ext_Transfer.conf &amp;lt;br /&amp;gt;ext_Transfer_ExtSIP.conf&amp;lt;br /&amp;gt;ext_Transfer_TrunkInternos.conf &amp;lt;br /&amp;gt;ext_TrunkInternos.conf &amp;lt;br /&amp;gt;ext_TrunkInternos_Dial.conf &amp;lt;br /&amp;gt;queues_GENERAL.conf&amp;lt;br /&amp;gt;queues_PLANTILLACOLAS.conf &amp;lt;br /&amp;gt;sip_GENCUST.conf &amp;lt;br /&amp;gt;sip_GENERAL.conf &amp;lt;br /&amp;gt;sip_notify.conf &amp;lt;br /&amp;gt;sip_PLANTILLAEXT.conf&amp;lt;br /&amp;gt;sip_supervision.conf &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| ext_Enrutador_Particular.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_CTI_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_Dahdi_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_Marcador_Particular.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_Particular.conf.&amp;lt;br /&amp;gt;ext_InicioLlamada_TrunkSIP_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_Externo_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_VDN_Particular.conf&amp;lt;br /&amp;gt; ext_MDtel_Particular.conf&amp;lt;br /&amp;gt;ext_TrunkInternos_Particular.conf&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
|asterisk_WEB.conf &amp;lt;br /&amp;gt; ext_MDtel_WEB.conf &amp;lt;br /&amp;gt;queues_WEB.conf&amp;lt;br /&amp;gt; sip_trunkInt_WEB.conf &amp;lt;br /&amp;gt;sip_WEB.conf &amp;lt;br /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Servicios networking ===&lt;br /&gt;
Son muy importantes las configuraciones adecuadas de los servicios de:&lt;br /&gt;
&lt;br /&gt;
* '''NTP''': El sistema en global ha de estar sincronizado; todos los servidores y puestos de trabajo (en el caso de ''VIVA''it Suite) han de estar perfectamente sincronizados; los servidores de la plataforma se sincronizarán con el NTP del cliente; si el cliente no tiene NTP será necesario que un servidor de la plataforma se sincronice con un NTP externo y este sea el servidor para el resto de la plataforma&lt;br /&gt;
&lt;br /&gt;
* '''DNS''': La configuración de DNS de la plataforma será coherente con el resto de la plataforma IT del cliente&lt;br /&gt;
&lt;br /&gt;
* '''DHCP''': Es necesario coordinar con el cliente la asignación de direcciones para los diferentes elementos de la plataforma '''''VIVA'''''it, fundamentalmente para terminales telefónicos; en este caso además será necesario activa la opción 66 que permitirá definir el servidor TFTP del que los terminales cogerán sus ficheros de aprovisionamiento&lt;br /&gt;
&lt;br /&gt;
=== Bases de datos (BBDD)===&lt;br /&gt;
&lt;br /&gt;
La base de datos del sistema se basa en el motor de base de datos MySQL, es un elemento crítico del sistema, en el que insertan y del que obtiene mucha información múltiples procesos.&lt;br /&gt;
Muchas comunicaciones entre procesos se realizan vía Base de Datos (tabla COM_COMUNICADOS). Pueden existir distintas instancias de base de datos que explicadas en las siguientes secciones, nuestra base de datos tiene la siguiente estructura: [[Base de datos|Información completa de la BD]]. Podéis ampliar más información en https://dev.mysql.com/doc/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== BBDD Tiempo Real ====&lt;br /&gt;
En la base de datos de tiempo real insertan información todos los procesos del sistema, y se realizan los cambios en configuración utilizando como herramienta el portal de administración y '''''VIVA'''''it Supervisor&lt;br /&gt;
&lt;br /&gt;
De la base de datos de tiempo real leen los procesos que requieren información, y las aplicaciones:&lt;br /&gt;
*'''''VIVA'''''it Supervisor (para reporting de tiempo real)&lt;br /&gt;
*PanelWeb&lt;br /&gt;
*Datos de sesión de '''''VIVA'''''it Desk&lt;br /&gt;
*Monitorización Zabbix&lt;br /&gt;
* Otros&lt;br /&gt;
&lt;br /&gt;
El portal de administración se encarga de escribir las configuraciones añadidas o modificadas en la base de datos&lt;br /&gt;
&lt;br /&gt;
==== BBDD Réplica ====&lt;br /&gt;
A efectos de asegurar las prestaciones del sistema, se establece una réplica de la base de datos, sincronizada con la de tiempo real; los procesos y aplicaciones pesados, que realicen consultas a las base de datos que puedan comprometer las prestaciones del sistema atacan a la réplica y nunca a la base de datos de tiempo real&lt;br /&gt;
&lt;br /&gt;
Es posible que en instalaciones pequeñas no exista réplica, en cuyo caso se establece una base de datos unificada sobre la de tiempo real, en la que se añaden índices y procedimientos almacenados que típicamente residen en la de réplica.&lt;br /&gt;
&lt;br /&gt;
Es posible establecer tantas réplicas como sean necesarias si diferentes procesos pesados se penalizan en exceso, si bien una implantación tipo contemplará una sola&lt;br /&gt;
&lt;br /&gt;
Algunos procesos que utilizan la base de datos de réplica son:&lt;br /&gt;
*'''''VIVA'''''it Reporting&lt;br /&gt;
*'''''VIVA'''''it Tracker&lt;br /&gt;
*Histórico en tiempo real de '''''VIVA'''''it Supervisor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANTE: Ningún proceso, programa, aplicación, etc. escribe en la base de datos de réplica; tan solo se extrae información'''&lt;br /&gt;
&lt;br /&gt;
==== BBDD de copia ====&lt;br /&gt;
A efectos de asegurar el funcionamiento y como medida de contingencia ante un problema puntual de comunicación con la BD de tiempo real, en cada nodo disponemos de una BD de copia local. Posiblemente de un tamaño menor que la BD de tiempo real, dependiendo de cuanto tiempo pase hasta la próxima sincronización con la base de tiempo real.Esta base de datos llamada '''nimitzCopia'''.&lt;br /&gt;
  &lt;br /&gt;
Solo entrara en funcionamiento,cuando se produzca el problema mencionado, dejando acceder a los datos y poder dar servicio a la empresa mientras se soluciona el problema.&lt;br /&gt;
&lt;br /&gt;
===== Backup y restore =====&lt;br /&gt;
&lt;br /&gt;
Se utilizan dos script, para realizar la copia de seguridad y restaurar en la base de datos de copia local que son:&lt;br /&gt;
&lt;br /&gt;
* El proceso '''bdCentral.sh''' que es el encargado de realizar la copia de seguridad. Tiene un archivo de configuración bdCentral.conf. En este archivo hay un parámetro (IGNORE_TABLAS) que indica las tablas de las que NO se realizará copia de seguridad. Toda tabla que no se indique formará parte de la copia de seguridad. Vuelca los resultados en /var/log/bdCentral.log&lt;br /&gt;
* El proceso '''bdNodo.sh''' que es el encargado de descargar la copia de seguridad y restaurarla en local. Tiene un archivo de configuración bdNodo.conf. Vuelca los resultados en /var/log/bdNodo.log. El fichero de backup se copia mediante el usuario sincroniza, que deberá poder acceder sin contraseña al servidor donde reside la copia.&lt;br /&gt;
&lt;br /&gt;
En caso de producirse algún error en alguno de los procesos, marcarán dicho error en el log con una línea que comienza con la cadena &amp;quot;*ERROR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Diagnósticos y operaciones sobre bases de datos ====&lt;br /&gt;
&lt;br /&gt;
=====Comprobación que una base de datos está arrancada=====&lt;br /&gt;
Para comprobar si la base de datos está arrancada debemos poner en el terminal : '''ps aux | grep mysql'''&lt;br /&gt;
&lt;br /&gt;
Si la base de datos está arrancada y funcionando correctamente se nos mostrará en el terminal:&lt;br /&gt;
[[Archivo:Base_Datos_bien.png‎ |500px|center]]&lt;br /&gt;
&lt;br /&gt;
Por el contrario, si la base de datos presenta algun problema el mensaje mostrado será:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Base_datos_mal.png |center]]&lt;br /&gt;
&lt;br /&gt;
=====Comprobación que la base de datos de réplica está sincronizada con la base de datos de tiempo real.=====&lt;br /&gt;
&lt;br /&gt;
Si se necesita verificar que la base de réplica está sincronizada con la base de datos en tiempo real basta con acudir al comando : '''show slave status\G'''.&lt;br /&gt;
&lt;br /&gt;
Una vez introducido veremos:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Replica.png |980px|center]]&lt;br /&gt;
&lt;br /&gt;
Comandos importantes, desde dentro consola de Mysql:&lt;br /&gt;
&lt;br /&gt;
 '''show master status''': Realizado desde el master&lt;br /&gt;
 '''show slave status''': Realizado desde el esclavo; el valor &amp;quot;seconds behind master&amp;quot; nos indica&lt;br /&gt;
 cuanto está retrasada la réplica con respecto a la base de datos de tiempo real. Si el valor de este campo es elevado nos indicará &lt;br /&gt;
 que la base de datos real con la réplica no estará sincronizada, por tanto, nos interesa que este valor sea lo más pequeño posible.&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Procesos propios ===&lt;br /&gt;
&lt;br /&gt;
==== bdCentral ====&lt;br /&gt;
&lt;br /&gt;
El proceso ''bdCentral.sh'' es el encargado de realizar la copia de seguridad. Tiene un archivo de configuración ''bdCentral.conf'' el cual puede encontrarse en la ruta '''/etc/MDtel/bdCentral.conf'''. En este archivo hay un parámetro (IGNORE_TABLAS) que indica las tablas de las que NO se realizará copia de seguridad. Toda tabla que no se indique formará parte de la copia de seguridad. Vuelca los resultados en /var/log/bdCentral.log&lt;br /&gt;
&lt;br /&gt;
En caso de producirse algún error, se marcará dicho error en el log con una línea que comienza con la cadena &amp;quot;*ERROR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Para ejecutar bdCentral:&lt;br /&gt;
 bdCentral.sh /etc/MDtel/bdCentral.conf&lt;br /&gt;
&lt;br /&gt;
Estos procesos se ejecutan automáticamente. Para ello está copiado el fichero bdCentral a /etc/cron.d.&lt;br /&gt;
&lt;br /&gt;
Por defecto la programación vienen comentada por lo que será necesario activarlo.&lt;br /&gt;
&lt;br /&gt;
Para que se roten los logs hay que copiar el fichero bdCentral.logrotate a /etc/logrotate.d (como bdCentral)&lt;br /&gt;
La ruta donde se encuentran los logs es la siguiente: '''/var/log/myAcdSuperv.log'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
*A continuación se explica la utilidad de los campos mas relevantes del fichero de configuración bdCentral.conf. &lt;br /&gt;
ARCH_LOG : &lt;br /&gt;
BDHOST: Localización de la base de datos&lt;br /&gt;
BDUSU: Usuario para la base de datos&lt;br /&gt;
BDRUTA: Ruta donde se encuentra la base de datos&lt;br /&gt;
IGNORE_TABLAS:&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== bdNodo ====&lt;br /&gt;
El proceso bdNodo.sh es el encargado de descargar la copia de seguridad y restaurarla en local. Tiene un archivo de configuración bdNodo.conf, este archivo puede encontrarse en la ruta '''/etc/MDtel/bdNodo.conf.''' Vuelca los resultados en /var/log/bdNodo.log. El fichero de backup se copia mediante el usuario sincroniza, que deberá poder acceder sin contraseña al servidor donde reside la copia.&lt;br /&gt;
&lt;br /&gt;
En caso de producirse algún error, se marcará dicho error en el log con una línea que comienza con la cadena &amp;quot;*ERROR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Para ejecutar bdNodo:&lt;br /&gt;
&lt;br /&gt;
 bdNodo.sh /etc/MDtel/bdNodo.conf&lt;br /&gt;
&lt;br /&gt;
Estos procesos se ejecutan automáticamente. Para ello está copiado el fichero bdNodo a /etc/cron.d.&lt;br /&gt;
&lt;br /&gt;
Por defecto la programación vienen comentada por lo que será necesario activarlo.&lt;br /&gt;
&lt;br /&gt;
Para que se roten los logs hay que copiar el fichero bdNodo.logrotate a /etc/logrotate.d (como bdNodo)&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Intz-Nimitz ====&lt;br /&gt;
&lt;br /&gt;
Permite integrar procesos de asterisk (del dialplan) con la base de datos; por ejemplo es el que graba segmentos, inspecciona donde esta registrado un agente…etc. La estabilidad de este proceso es importante para el funcionamiento del sistema, si bien las llamadas entran en caso de no estar disponible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para mas información consultar la página de [[intz-nimitz|intz-nimitz]].&lt;br /&gt;
&lt;br /&gt;
Desde un SSH ejecuta el comando “nc ip_maquina 1115”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1115'''&lt;br /&gt;
 intz-nimitz sis ver='V02.6' inic='20140401 110116' alarmas=21 ultAlar='20140414 171244'&lt;br /&gt;
 intz-nimitz gmp msj=942/1024 buf=1024/1024 tarea=16/102&lt;br /&gt;
 intz-nimitz tmp uptime=1816550 (21d 0h 35m 50s)&lt;br /&gt;
 intz-nimitz vic identif='cms1' entorno='nimitz' conx=0/128 numConx=1018(0)&lt;br /&gt;
 intz-nimitz mys curro=80/0/0/0 soli=1012(0) soliErr=6(0) soliEncol=0(0/0)&lt;br /&gt;
 intz-nimitz cache colas=128/10/0/0 vdn=128/8/0/0 usuExten=10/0/0/0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parámetro!!Descripción&lt;br /&gt;
|-&lt;br /&gt;
|sis/ver||Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|sis/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|Sis/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|Sis/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/msj||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/buf||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/tarea||&lt;br /&gt;
|-&lt;br /&gt;
|Tmp/uptime||Tiempo que lleva el servicio activo&lt;br /&gt;
|-&lt;br /&gt;
|Vic/identif||Etiqueta de identificación del servicio&lt;br /&gt;
|-&lt;br /&gt;
|Vic/entorno||Entorno de base de datos&lt;br /&gt;
|-&lt;br /&gt;
|Vic/conx||Conexiones activas/conexiones máximas&lt;br /&gt;
|-&lt;br /&gt;
|Vic/numConx||Conexiones totales (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|Mys/curro||Número de hilos contra la base de datos&lt;br /&gt;
|-&lt;br /&gt;
|Mys/soli||Conexiones solicitadas (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|Mys/soliErr||Conexiones solicitadas con error (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|Mys/soliEncol||Conexiones encoladas&lt;br /&gt;
|-&lt;br /&gt;
|Cache/cola|| Colas monitorizadas/&lt;br /&gt;
|-&lt;br /&gt;
|Cache/vdn||VDN’s monitorizados&lt;br /&gt;
|-&lt;br /&gt;
|Cache/usuExten||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en  '''/etc/MDtel/intz-nimitz.conf'''&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/intz-nimitz.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
A continuación se muestran los campos mas importantes del fichero de configuración intz-nimitz.conf:&lt;br /&gt;
&lt;br /&gt;
enrutamiento &lt;br /&gt;
{ &lt;br /&gt;
        hay_enrutamiento = 1 &lt;br /&gt;
        max_pre_ruta_regs = 4 &lt;br /&gt;
        max_ruta = 4 &lt;br /&gt;
        max_ruta_desvios = 2 &lt;br /&gt;
# Filtro de informacion de ancho de banda &lt;br /&gt;
# MYSDanchoBandaPasoNinguno      0 &lt;br /&gt;
# MYSDanchoBandaPasoSoloDirectos 1 &lt;br /&gt;
# MYSDanchoBandaPasoSoloEnPaso   2 &lt;br /&gt;
# MYSDanchoBandaPasoTodos        3 &lt;br /&gt;
        filtro_ancho_banda = 1 &lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
mysql &lt;br /&gt;
{ &lt;br /&gt;
        hay_mysql = 1   Indica si hay base de datos mysql&lt;br /&gt;
        host = BDTR &lt;br /&gt;
        usuario = nimitz   Usuario base de datos&lt;br /&gt;
        clave = phikau3iwCe4O0PP5b09ng==   clave base de datos&lt;br /&gt;
        base_datos = nimitz &lt;br /&gt;
        bd_supervivencia = 0 &lt;br /&gt;
        num_curro = 10 &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== motorSal ====&lt;br /&gt;
Parte fundamental del proceso de marcación saliente, gestiona como hay que llamar a los diferentes contactos asignados a las campañas. Transforma los contactos en intentos de marcación.&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH ejecuta el comando “nc ip_maquina 1120”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1120'''&lt;br /&gt;
 motorSal sis ver='V01.4' inic='20140725 140832' alarmas=1 ultAlar='20140725 140832'&lt;br /&gt;
 motorSal gmp msj=253/256 buf=256/256 tarea=99/102&lt;br /&gt;
 motorSal tmp uptime=600165 (6d 22h 42m 45s)&lt;br /&gt;
 motorSal mtr mys=1 ocup=0% planif=28(0) intento=26(0)&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parámetro!!Descripción&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ver||Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/msj||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/buf||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/tarea||&lt;br /&gt;
|-&lt;br /&gt;
|Tmp/uptime||Tiempo que lleva corriendo&lt;br /&gt;
|-&lt;br /&gt;
|mtr/mys||Si está conectado al MySQL&lt;br /&gt;
|-&lt;br /&gt;
|mtr/ocup||Porcentaje de ocupación&lt;br /&gt;
|-&lt;br /&gt;
|mtr/planif||Contactos planificados Totales (Último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|mtr/intento||Intentos totales (Ültimo minuto)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Posee un fichero de configuración llamado ''motorSal.conf'' en la ruta '''/etc/MDtel/motorSal.conf'''.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:Las variables que normalmente son modificadas son las siguientes:&lt;br /&gt;
&lt;br /&gt;
mysql&lt;br /&gt;
{&lt;br /&gt;
hay_mysql = 1&lt;br /&gt;
Indica si hay base de datos mysql&lt;br /&gt;
host = localhost&lt;br /&gt;
usuario = nimitz&lt;br /&gt;
Usuario base de datos&lt;br /&gt;
Clave base de datos&lt;br /&gt;
base_datos = nimitz&lt;br /&gt;
}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Respecto a los logs del motorSal consultar el siguiente apartado: [[Trazas motorSal]]. Los logs pueden verse en la ruta '''/var/log/intz-nimitz.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== MyACDSuperv ====&lt;br /&gt;
Refleja el estado de las colas de asterisk en la base de datos; tiene sentido a efectos de estadísticas e informes, pero no a efectos de funcionamiento de la conmutación de voz&lt;br /&gt;
&lt;br /&gt;
Es también el proceso que genera las llamadas en el marcador automático de '''''VIVA'''''it Suite&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando “nc ip_maquina 1112”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1112'''&lt;br /&gt;
 myAcdSuperv SIS ver='04.6' inic='20140416 081613' alarmas=6 ultAlar='20140416 121652'&lt;br /&gt;
 myAcdSuperv AMI cnx=1 ocup=28% exten=2/2/511 asig=0/11/4095&lt;br /&gt;
 myAcdSuperv MYSQL cnx=1 ms=316&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parámetro!!Descripción&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ver||Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|AMI/cnx||Conectado (1) a asterisk&lt;br /&gt;
|-&lt;br /&gt;
|AMI/ocup||Porcentaje de ocupación de MyACDSuperv&lt;br /&gt;
|-&lt;br /&gt;
|AMI/exten||Extensiones/Extensiones/Extensiones monitorizadas|-&lt;br /&gt;
|-&lt;br /&gt;
|AMI/asig||&lt;br /&gt;
|-&lt;br /&gt;
|MYSQL/cnx||Conectado (1) a MySQL&lt;br /&gt;
|-&lt;br /&gt;
|MYSQL/ms||Tiempo de última operación en ejecutarse&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/myAcdSuperv.cnf'''&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/myAcdSuperv.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Proceso escoba ====&lt;br /&gt;
El proceso escoba se encarga de resolver y consolidar todos aquellos segmentos de grabación que han quedado almacenados en los gateways por falta de información o incoherencias. Existen dos tipos de procesos escobas:&lt;br /&gt;
# Proceso escoba perteneciente a nodo con agente de grabación (recordNodo) llamado '''''escobaGW.pl'''''.&lt;br /&gt;
# Proceso escoba perteneciente o no a un servidor de grabación (recordCentral) llamado '''''escobaGrabsBd.pl'''''.&lt;br /&gt;
&lt;br /&gt;
===== escobaGW.pl =====&lt;br /&gt;
Proceso que se ejecuta en los nodos busca en el disco RAM , las grabaciones de segmentos cuya antigüedad sea superior a mas de un día, es decir, si el proceso por ejemplo se ejecuta a la 01:00 a.m. del día 24/03/2016 buscara todas aquellas grabacionesn de segmentos realizadas antes de la 01:00 a.m del día 22/03/2016.&lt;br /&gt;
Una vez realizada la busqueda, obtendra el UCID a traves del nombre del fichero, y comprobara su correspondencia con la tabla DAT_LLAMADAS. Si existe una llamada con ese UCID, cambiara el estado de la llamada para que sea procesada correctamente. En caso contrario, es movida a la carpeta ''/var/lib/recordNodo/grabError''.&lt;br /&gt;
&lt;br /&gt;
===== escobaGrabsBd.pl =====&lt;br /&gt;
Se ejecuta sobre la base de datos de histórico, normalmente se ejecuta en un servidor de grabación (recordCentral). El proceso hace una búsqueda en dos tablas:&lt;br /&gt;
* En DAT_SEGMENTOS obtiene todos aquellos segmentos con grabaciones que dieron error, su estado tendrá valor 120.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
* En DAT_LLAMADAS obtendremos todos los registros correspondiente al segmentos anteriores.&lt;br /&gt;
Después hace una búsqueda en el sistema, usando como ruta el campo D_HORA_INICIO de cada llamada, que indica la ruta entera donde se encuentra el archivo. Una vez encontrado el archivo cambia el estado del segmento que tenia un error a estado de grabación disponible , que tendrá valor 100. Si no encontramos el segmento, no realizara nada.&lt;br /&gt;
&lt;br /&gt;
==== recordCentral ====&lt;br /&gt;
Se considera como un servidor de grabaciones. Todas las grabaciones de llamadas son un activo importante y una empresa con Contact Center pueda recibir millones de llamadas que necesitan estar registradas y almacenadas en discos duros con gran capacidad, dichas maquinas donde suelen alojarse estos servidores poseen discos duros limitados, lo que hace necesario en algunos casos incorporar ''dispositivos NAS''.&lt;br /&gt;
&lt;br /&gt;
Los ''dispositivos NAS'' son dispositivos de almacenamiento conectados a una red que permite el almacenamiento y la recuperación de datos desde una ubicación centralizada, flexibles y escalables, lo que significa que a medida que necesite almacenamiento adicional, puede añadirlo al que tiene. Esto no indica que sea necesario poseer de ''dispositivos NAS'' para funcionar, sino que puede tomar datos de diferentes sitios.&lt;br /&gt;
&lt;br /&gt;
En '''recordCentral''' pueden existir tres tipos de dispositivos NAS:&lt;br /&gt;
* Uno dedicado para las llamadas &lt;br /&gt;
* Uno dedicado para los segmentos &lt;br /&gt;
* Uno mixto para todas las llamadas y segmentos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El '''recordCentral''' se encarga de recoger todas las grabaciones de segmentos que tienen de estado proceso(3) en cada nodo gestionado, es decir, coger aquellos segmentos de llamadas marcados como llamadas disponibles, intenta descargar los segmentos de las llamadas y convertirlas al formato adecuado (MP3).&lt;br /&gt;
Como una característica particular cada diez minutos, siempre que no tenga ninguna otra tarea, intenta ver si puede establecer conexión con un nodo en cuarentena, para sacarlos de cuarentena y recoger todas las grabaciones de segmentos disponibles, para intentar convertir y descargar todas las grabaciones.  &lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando '''''nc ip_maquina 1114''''' en la maquina donde creamos que debe estar ejecutando el proceso recordCentral. Ejemplo:&lt;br /&gt;
 '''root@smadavacdrecord1:~# nc localhost 1114'''&lt;br /&gt;
 recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423 160112'&lt;br /&gt;
 recordCentral MYSQL cnx=1&lt;br /&gt;
 recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
 recordCentral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
 recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10'&lt;br /&gt;
La explicación de los campos se muestra en la tabla siguiente:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parámetro !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ver || Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/inic || Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/alarmas || Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ultAlar || Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
| MYSQL/cnx || Conectado (1) a MySQL&lt;br /&gt;
|-&lt;br /&gt;
| NAS/llamadas || Alojamiento en NAS de llamadas activo (grabación de llamada completa en un único archivo)&lt;br /&gt;
|-&lt;br /&gt;
| NAS/segmentos || Alojamiento en NAS de segmentos activo&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamNum || Llamadas procesadas&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamErr || Llamadas con error&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmNum || Segmentos procesados&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmErr || Segmentos con error&lt;br /&gt;
|-&lt;br /&gt;
| NODO/fase  || Número de proceso de recordCentral&lt;br /&gt;
|-&lt;br /&gt;
| NODO/cuarentena  || Lista de nodos en cuarentena, separada por comas&lt;br /&gt;
|-&lt;br /&gt;
| NODO/descarga || Lista de nodos en descarga, separada por comas&lt;br /&gt;
|-&lt;br /&gt;
| NODO/gestion || Lista de nodos gestionados, separada por comas (cuarentena + descarga = gestión)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/recordCentral.pconf'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:Se explican a continuación las variables más importantes del proceso RecordCentral:&lt;br /&gt;
&lt;br /&gt;
# Conexion de base de datos&lt;br /&gt;
$db='nimitz';&lt;br /&gt;
$dbHost = 'BDTR';&lt;br /&gt;
$dbPort = '3306';&lt;br /&gt;
$dbUsuario = 'nimitz';&lt;br /&gt;
$dbClave = 'ivivanimitz';&lt;br /&gt;
&lt;br /&gt;
# Configuracion de archivos con grabaciones (Orig en nodo)&lt;br /&gt;
$grabHay = 0;&lt;br /&gt;
$grabAudioCalidad = 32;&lt;br /&gt;
$grabAudioFormato = 'ogg';&lt;br /&gt;
$grabAudioExten = 'ogg';&lt;br /&gt;
$grabAudioCifrado = 0;&lt;br /&gt;
$grabRutaUsaTimestamp = 1;&lt;br /&gt;
$grabRutaOrig = '/var/lib/recordNodo/grabaciones';&lt;br /&gt;
$grabRutaTmp = '/var/lib/recordProcesad/grabTmp';&lt;br /&gt;
$grabRutaDest = '/var/lib/recordProcesad/grabRecord';&lt;br /&gt;
$grabRutaError = '/var/lib/recordProcesad/grabError';&lt;br /&gt;
$segmHay = 1;&lt;br /&gt;
$segmUmbralTiempo = 10;&lt;br /&gt;
$segmMargenTiempo = 5;&lt;br /&gt;
$segmAudioCalidad = 32;&lt;br /&gt;
$segmAudioFormato = 'ogg';&lt;br /&gt;
$segmAudioExten = 'ogg';&lt;br /&gt;
$segmAudioCifrado = 0;&lt;br /&gt;
$segmRutaUsaTimestamp = 1;&lt;br /&gt;
$segmRutaTmp = '/var/lib/recordProcesad/segmTmp';&lt;br /&gt;
$segmRutaDest = '/var/lib/recordProcesad/segmRecord';&lt;br /&gt;
$segmRutaError = '/var/lib/recordProcesad/segmError';&lt;br /&gt;
&lt;br /&gt;
# Seleccion de tipos de segmento a grabar separados por comas ('' = todos)&lt;br /&gt;
$tiposSegmentoGrabar = '';&lt;br /&gt;
&lt;br /&gt;
# Indica si se graba ring&lt;br /&gt;
$grabarRing = 0;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/recordCentral.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== recordNodo ====&lt;br /&gt;
Se considera como proceso con función de agente de grabación para un nodo. Solo debe existir uno por maquina o por nodo (configurado como grabador) en el '''portal de administración de ''VIVA''it'''.&lt;br /&gt;
&lt;br /&gt;
Para su funcionamiento utiliza un ''disco RAM''  por que su tiempo de acceso mejora drásticamente, debido a que la memoria RAM es varios órdenes de magnitud más rápida que las unidades de disco reales, haciendo que la velocidad de procesamiento de las grabaciones sea mucho mas rápida.&lt;br /&gt;
&lt;br /&gt;
Este ''disco RAM'' normalmente ocupa la mitad de la memoria RAM de una maquina pero no es obligatorio pues dependerá de la memoria disponible en cada maquina, y además, se configura con un tamaño no superior a 2GB de memoria RAM. Hay que tener especial cuidado en que no se llene en espacio  ni tampoco los i-nodos. Se puede  monitorizar a través de la aplicación '''zabbix'''.&lt;br /&gt;
&lt;br /&gt;
El '''''recordNodo''''' se encarga de recoger todas las grabaciones de segmentos que tienen de estado  ''proceso(2)'', es decir, aquellos segmentos de llamadas que han sido grabadas pero no están siendo procesadas, moviéndolas del ''disco RAM'' a su carpeta correspondiente.&lt;br /&gt;
&lt;br /&gt;
La forma de obtener la carpeta correspondiente es obteniendo el dato del campo D_HORA_INICIO en la tabla DAT_LLAMADAS para cada segmento,tras un tratamiento del campo creara la subruta correspondientes: /año/mes/dia/hora/min. Entonces, la ruta correcta seria /var/lib/recordNodo/grabaciones/año/mes/dia/hora/min, donde año, mes, dia , hora y min son los valores numéricos obtenidos del campo D_HORA_INICIO.&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando '''''nc ip_maquina 1113''''' en la maquina donde creamos que debe estar ejecutando el proceso recordNodo:&lt;br /&gt;
&lt;br /&gt;
 root@smadavgw5:~#nc localhost 1113&lt;br /&gt;
 recordNodo SIS ver='04.00.00' inic='20160326 105137' alarmas=2 ultAlar='20160326 105542'&lt;br /&gt;
 recordNodo MYSQL cnx=1&lt;br /&gt;
 recordNodo REC grabNum=0 grabErr=0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La explicación de los campos se muestra en la tabla siguiente:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parámetro  !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ver || Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/inic  || Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/amarmas || Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ultAlar || Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
| MYSQL/cnx || Conectado (1) a MySQL&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamNum || Llamadas procesadas&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamErr || Llamadas con error&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmNum || Segmentos procesados&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmErr || Segmentos con error&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/recordNodo.pconf'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:Se muestran a continuación las variables que son modificadas con mayor frecuencia:&lt;br /&gt;
# Conexion de base de datos&lt;br /&gt;
$db='nimitz';&lt;br /&gt;
$dbHost = 'BDTR';&lt;br /&gt;
$dbPort = '3306';&lt;br /&gt;
$dbUsuario = 'nimitz';&lt;br /&gt;
$dbClave = 'ivivanimitz';&lt;br /&gt;
&lt;br /&gt;
# Quien es mi nodo para filtrar grabaciones&lt;br /&gt;
$miNodo = 1;&lt;br /&gt;
&lt;br /&gt;
# Indica si se procesan segmentos de tipo tipoSegmEliminarGrabacion y patron eliminación&lt;br /&gt;
$segmEliminarGrabacionTrato = 1;&lt;br /&gt;
$patronEliminarGrabacion = '/etc/MDtel/null.bin';&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/recordNodo.log'''&lt;br /&gt;
&lt;br /&gt;
==== Vivait-CTI ====&lt;br /&gt;
Permite la comunicación entre la aplicación '''''VIVA'''''it Desk de agente y el asterisk, sincronizando; convierte el protocolo “asterisk manager” a CSTA ('''''VIVA'''''it Desk “habla” CSTA).&lt;br /&gt;
&lt;br /&gt;
Es un proceso importante para que el uso de '''''VIVA'''''it Desk, y que los agentes puedan realizar su operativa normal con la entrada y salida de llamadas… si bien el cursado telefónico de llamadas es factible, no disponer de las facilidades de '''''VIVA'''''it Desk y formularios hace el sistema difícilmente manejable&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando “nc ip_maquina 1111”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1111'''&lt;br /&gt;
 vivait-cti sis ver='V01.5' inic='20140414 104312' alarmas=13 ultAlar='20140415 173152'&lt;br /&gt;
 vivait-cti gmp msj=1018/1024 buf=1023/1024 tarea=97/102&lt;br /&gt;
 vivait-cti tmp uptime=694748 (8d 0h 59m 8s)&lt;br /&gt;
 vivait-cti cti numConx=(0/511) numPend=(0/127) numMakeCallPend=0 numCall=(0/2047)&lt;br /&gt;
 numChan=(0/4095) numAuxStr=(0/511) numMoniColas=(0/511) numMoniDevice=0&lt;br /&gt;
 numMoniCall=0 numMoniCallAuto=0 numMoniCallByDevice=0 numMoni=(0/511)&lt;br /&gt;
 auditCallErr=0 auditAuxStrErr=0 auditMsjReqErr=0 araChanID=0 araUniqueID=0 araMoni=0&lt;br /&gt;
 vivait-cti ami esta=conx resp=652(0) evs=1397(0) descar=556(0) err=16 errConx=16&lt;br /&gt;
 numAct(0/0/127) auditErrAct=0&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!ver!!Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|sis/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|Sis/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|Sis/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/msj||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/buf||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/tarea||&lt;br /&gt;
|-&lt;br /&gt;
|Tmp/uptime||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numConx||Número de conexiones actuales / Número de conexiones máximo&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numPend||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMakeCallPend||Llamadas pendientes de realizar&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numcall||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numChan||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numAuxStr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniColas||Número de colas monitorizadas&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniDevice||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniCall||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniCallAuto||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniCallByDevice||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoni||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/auditCallErr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/auditAuxStrErr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ auditMsjReqErr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ araChanID||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ araUniqueID||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ araMoni||&lt;br /&gt;
|-&lt;br /&gt;
|Ami/esta||Estado de conexión contra manarger de asterisk&lt;br /&gt;
|-&lt;br /&gt;
|Ami/resp||&lt;br /&gt;
|-&lt;br /&gt;
|Ami/evs||Número de eventos (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
||Ami/descar&lt;br /&gt;
|-&lt;br /&gt;
|Ami/err||Errores&lt;br /&gt;
|-&lt;br /&gt;
|Ami/errConx||Errores de conexión&lt;br /&gt;
|-&lt;br /&gt;
|Ami/numAct||&lt;br /&gt;
|-&lt;br /&gt;
|Ami/auditErrAct||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/vivait-cti.conf'''&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/vivait-cti.conf'''&lt;br /&gt;
&lt;br /&gt;
==== Phoneprov-TFTP ====&lt;br /&gt;
&lt;br /&gt;
==== Introducción al aprovisionamiento ====&lt;br /&gt;
&lt;br /&gt;
En cada Centralita Telefónica existente, se puede configurar sus teléfonos IP y asignarles extensiones a cada teléfono. Para hacer un ''aprovisionamiento'' de los teléfonos es necesario que el técnico configure uno a uno manualmente utilizando su interfaz web, esto no es práctico, ya que genera muchos errores y el tiempo de implementación se incrementa drásticamente. Además, es casi imposible la administración cotidiana de los teléfonos IP. Desde '''MD'''tel se utiliza una herramienta que permite que los teléfonos IP soportados y homologados por '''MD'''tel ([[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_3.0#Terminales_telef.C3.B3nicos ver Terminales telefónicos]]) se puedan aprovisionar automáticamente, brindando una fácil implementación y administración cotidiana. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== ¿Qué es aprovisionar? =====&lt;br /&gt;
&lt;br /&gt;
Aprovisionar un teléfono es el proceso de configuración automático de teléfonos IP para su uso con una Centralita Telefónica de forma remota. Una vez que aprovisione un teléfono, el teléfono automáticamente se configurará correctamente y podrá administrar los teléfonos de forma centralizada y remota,  sin tener que iniciar sesión en la interfaz web de cada uno de los teléfonos. &lt;br /&gt;
&lt;br /&gt;
El aprovisionamiento de teléfono facilita enormemente la administración cotidiana de los teléfonos IP. Esto hace que sea fácil de cambiar las contraseñas de extensión,realizar desvíos de llamadas, nombre a mostrar, mensajería y demás configuraciones, ya que puede hacerlo de forma centralizada para todos los teléfonos desde el portal de administración y luego transferir los cambios al teléfono. &lt;br /&gt;
&lt;br /&gt;
===== TFTP =====&lt;br /&gt;
&lt;br /&gt;
'''TFTP''' son las siglas de '''T'''rivial '''F'''ile '''T'''ransfer '''P'''rotocol ''(Protocolo de transferencia de archivos trivial)''. &lt;br /&gt;
&lt;br /&gt;
Es un protocolo de transferencia muy simple semejante a una versión básica de FTP. TFTP a menudo se utiliza para transferir pequeños archivos entre terminales en una red. &lt;br /&gt;
&lt;br /&gt;
Algunos detalles del TFTP: &lt;br /&gt;
&lt;br /&gt;
* Utiliza UDP (puerto 69) como protocolo de transporte (a diferencia de FTP que utiliza los &lt;br /&gt;
puertos 20 y 21 TCP). &lt;br /&gt;
* No puede listar el contenido de los directorios. &lt;br /&gt;
* No existen mecanismos de autenticación o cifrado. &lt;br /&gt;
* Se utiliza para leer o escribir archivos de un servidor remoto. &lt;br /&gt;
* Soporta tres modos diferentes de transferencia, &amp;quot;netascii&amp;quot;, &amp;quot;octet&amp;quot; y &amp;quot;mail”.&lt;br /&gt;
&lt;br /&gt;
===== Funcionamiento del servidor phoneprove-TFTP =====&lt;br /&gt;
&lt;br /&gt;
A continuación se muestra un esquema que facilita el entendimiento del funcionamiento del servidor phoneprove-TFTP:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Funcionamiento_Servidor.png‎ |center]]&lt;br /&gt;
&lt;br /&gt;
El servidor Phoneprove-TFTP se ''encarga del aprovisionamiento masivo de terminales'', es de gran utilidad porque cualquier cambio en los teléfonos pueden ser realizados a nivel DHCP y todos los teléfonos tomarán la nueva configuración luego de reiniciarlos. &lt;br /&gt;
&lt;br /&gt;
Desde phoneprove-TFTP se generara los archivos necesarios para cada teléfono y que sirven para ser aprovisionados automáticamente. &lt;br /&gt;
El servidor phoneprove-TFTP  tiene alojados los ficheros de configuración están ordenados según las direcciones MAC de los teléfonos. El teléfono “preguntará” al servidor cual es su fichero de configuración utilizando su dirección MAC. Este a través de su MAC , consulta en la base de datos para ofrecer al terminal los datos de configuración según su plantilla, cual sera su extensión , cual sera el usuario propietario, entre otras cosas.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
  '''Nota:''' En instalaciones grandes habrá más de uno, quizás uno por sede grande; depende de la infraestructura de DHCP.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Parámetros necesarios de Aprovisionamiento de Teléfonos =====&lt;br /&gt;
&lt;br /&gt;
 '''Notas:''' el aprovisionamiento desarrollador por '''MD'''tel, no emplea un fichero por cada &lt;br /&gt;
 teléfono, sino que emplea una plantilla por cada modelo de teléfono.&lt;br /&gt;
 Debe haber una '''configuración previa del servidor DHCP''' es necesario coordinar con el cliente la asignación de direcciones para &lt;br /&gt;
 los diferentes elementos de la plataforma '''''VIVA'''''it, fundamentalmente para terminales telefónicos; en este caso además será necesario &lt;br /&gt;
 activar la opción 66 que permitirá definir el servidor TFTP del que los terminales cogerán sus ficheros de aprovisionamiento.&lt;br /&gt;
 El aprovisionamiento desde el portal de administración solo es posible para aquellos teléfonos IP homologados y probados desde '''MD'''tel   &lt;br /&gt;
 [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_3.0#Terminales_telef.C3.B3nicos ver Terminales  telefónicos]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como existen parámetros comunes de todos los teléfonos de la misma marca de fabricante, muchos de los parámetros necesarios para el aprovisionamiento  como comentamos se han generado desde MDtel en forma de plantillas, que estarán disponibles en el portal de administración VIVAit [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Plantillas | ver plantilla del portal de administración VIVAit]]. &lt;br /&gt;
&lt;br /&gt;
La configuración de un teléfono SIP es muy sencilla y en no es necesario tener conocimientos avanzados de informática o de telefonía. Cada una de estas plantillas que sirven para aprovisionar un teléfono IP homologado, algunos de los parámetros predeterminados se explicarán a continuación .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== Parámetros de Aprovisionamiento globales ======&lt;br /&gt;
&lt;br /&gt;
* Configuración de la red y MAC. &lt;br /&gt;
* Zona horaria. &lt;br /&gt;
&lt;br /&gt;
====== Parámetros de Aprovisionamiento Personales ======&lt;br /&gt;
&lt;br /&gt;
Además de los parámetros de aprovisionamiento globales, el teléfono también obtendrá información de configuración individual, tales como: &lt;br /&gt;
&lt;br /&gt;
*Número de Extensión.&lt;br /&gt;
*Nombre y Contraseña de usuario SIP. &lt;br /&gt;
*Configuración de Teclas BLF.&lt;br /&gt;
*Contraseña de la Interfaz Web del Teléfono IP.&lt;br /&gt;
*Idioma de la Pantalla.&lt;br /&gt;
*Orden de Preferencia de los Codecs.&lt;br /&gt;
&lt;br /&gt;
===== Aprovisionamiento de teléfonos nivel usuario =====&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
  '''Notas:''' La dirección MAC debe estar especificada en letras mayúsculas.&lt;br /&gt;
  La dirección MAC del teléfono se puede encontrar en la etiqueta adhesiva en la parte inferior del teléfono, o de lo contrario se deberá acceder desde&lt;br /&gt;
  el menú del propio terminal.   &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Los pasos a seguir son los siguientes: &lt;br /&gt;
&lt;br /&gt;
'''1)''' Dar de alta el teléfono en el portal de administración, se debe seleccionar el modelo del teléfono, e indicar la dirección MAC del teléfono a aprovisionar, todo ello desde el portal de administración VIVAit. &lt;br /&gt;
Para mas información ver [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Aprovisionamiento del portal de administracion| aprovisionamiento del portal de administración VIVAit]]. &lt;br /&gt;
&lt;br /&gt;
'''2)''' En el mismo portal de administración se deberá crear una extensión , asignar a la extensión el teléfono que se quiera aprovisionar, elegir la plantilla adecuada del teléfono y el usuario propietario (solo si sera un puesto fijo) desde [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Extensiones | extensiones del portal de administración]]. &lt;br /&gt;
&lt;br /&gt;
'''3)''' Conectar el teléfono a la red LAN informática (conectarlo al router o switch) para que tenga acceso a Internet:&lt;br /&gt;
&lt;br /&gt;
:*El teléfono enviará un mensaje de multidifusión a través de la LAN. &lt;br /&gt;
:*Este será captado por la Central Telefónica siempre que esté en la misma LAN. &lt;br /&gt;
:*Al teléfono se le enviará una URL de aprovisionamiento. &lt;br /&gt;
&lt;br /&gt;
'''4)''' Como la mayoría de teléfonos IP del mercado al arrancar una vez sabiendo la URL de aprovisionamiento piden una serie de archivos de configuración para aprovisionarse vía TFTP. EL servidor phoneprove-TFTP, detectara la petición y a través de la MAC y datos del usuario, consultará en la base de datos los datos necesarios para aprovisionar al teléfono y si todo funciona correctamente mandara al teléfono IP los datos de configuración necesarios para funcionar. &lt;br /&gt;
&lt;br /&gt;
'''5)''' Asegúrese de que el teléfono encuentren el servidor TFTP, para ello esperar un tiempo adecuado para que termine el aprovisionamiento. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''6)''' Finalmente aparecerá  como registrado en la centralita, obtendrá una dirección IP y podra funcionar según la configuración establecida.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
  '''Nota''': Si no se reaprovisiona tras un periodo largo de tiempo, desenchufe el cable de alimentación eléctrica &amp;lt;br /&amp;gt; o el cable Ethernet (si se utiliza la alimentación en línea PoE) para reiniciar los teléfonos. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Aprovisionamiento de teléfonos nivel técnico =====&lt;br /&gt;
&lt;br /&gt;
====== Plantilla de configuración ======&lt;br /&gt;
&lt;br /&gt;
La plantilla de configuración empleadas en el apartado  [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Plantillas | plantilla del portal de administración VIVAit]] de cada modelo está formada por una serie de variables. &lt;br /&gt;
&lt;br /&gt;
Los valores se obtienen de la tabla de la base de datos CEN_TELEFONOS, CEN_USUARIOS, ACD_EXTENSIONES, ACD_NODOS, COM_NODOS... correspondientes a la extensión del teléfono, usuario, nodo, etc. &lt;br /&gt;
&lt;br /&gt;
 variable ${NODO1_C_NOMBRE}='corp-ast13'&lt;br /&gt;
 variable ${EXTEN_C_CLAVE_REGISTRO}='Tel21002'&lt;br /&gt;
 variable ${USU_C_CODIGO_POSTAL}=''28034'&lt;br /&gt;
 variable ${SEDE_C_CODIGO_POSTAL}='28034' &lt;br /&gt;
 variable ${USU_C_NOMBRE}='Juan Antonio'&lt;br /&gt;
 variable ${USU_C_APELLIDO2}='Ramirez'&lt;br /&gt;
 variable ${SEDE_C_NOMBRE}='RED_LAB'&lt;br /&gt;
 variable ${NODO2_C_NOMBRE}= NULL&lt;br /&gt;
 variable ${EXTEN_C_NOMBRE}='' 21002&lt;br /&gt;
 variable ${USU_C_LOCALIDAD}='' &lt;br /&gt;
 variable ${USU_C_NOMBRE_MOSTRAR}='Juan' &lt;br /&gt;
 variable ${NODO1_C_IP}='175.25.129.70' &lt;br /&gt;
 variable ${MODEL_C_PREFIJO_PLANTILLA_MAC}='T28P' &lt;br /&gt;
 variable ${SEDE_C_LOCALIDAD}='Madrid' &lt;br /&gt;
 variable ${USU_C_APELLIDO1}='Casas' &lt;br /&gt;
 variable ${NODO2_C_IP}= NULL&lt;br /&gt;
 variable ${TF_ID_EXTENSION}='5' &lt;br /&gt;
 cargando campos idExten=5&lt;br /&gt;
&lt;br /&gt;
====== Ficheros y paquetes necesarios ======&lt;br /&gt;
&lt;br /&gt;
'''Paquetes previos:''' libnet-tftpd-perl, tftp-hpa, libnet-address-ip-local-perl &lt;br /&gt;
'''Usuario de funcionamiento:''' root &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
   '''Nota:'''  los archivos y directorios que generemos podrian necesitar que se permitiera el acceso al archivo de lectura &amp;lt;br/&amp;gt; y escritura en el servidor TFTP.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Archivos necesarios:''' &lt;br /&gt;
&lt;br /&gt;
 /usr/local/sbin/phoneprov-tftp.pl &lt;br /&gt;
 /usr/local/sbin/phoneprov-tftp.pm&lt;br /&gt;
 /etc/MDtel/phoneprov-tftp.pconf &lt;br /&gt;
 /etc/init/phoneprov-tftp.conf &lt;br /&gt;
 /etc/logrotate.d/phoneprov-tftp &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Directorios a crear:''' &lt;br /&gt;
&lt;br /&gt;
 /var/lib/phoneprov-tftp/plt &lt;br /&gt;
 /var/lib/phoneprov-tftp/bin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Watchdog ====&lt;br /&gt;
&lt;br /&gt;
Se trata de una aplicación del astrisk que monitoriza el SIP y en caso de fallo, pasado un cierto tiempo, reinicia el asterisk y genera un core.&lt;br /&gt;
Si escribimos en CLI de asterisk perro tenemos los siguientes comandos:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Activar||Activar el Watchdog&lt;br /&gt;
|-&lt;br /&gt;
|Desactivar||Desactiva el Watchdog&lt;br /&gt;
|-&lt;br /&gt;
|Parada||Reinicia el asterisk y genera un core para pruebas&lt;br /&gt;
|-&lt;br /&gt;
|Reload||Realiza una recarga del Watchdog y aplica cambios en su configuración&lt;br /&gt;
|-&lt;br /&gt;
|Show||Ver el estado del Watchdog&lt;br /&gt;
&lt;br /&gt;
perro avisado=0 activo=1 segsDormir=1 segsInic=60 segsGuarda=30 maxErr=3&lt;br /&gt;
perro        nombre=sip_monitor_udp lwp=[15437] segsInic=60 segsGuarda=30 hace=11 err=0/5&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El dato &amp;quot;hace&amp;quot; informa de cuanto tiempo ha transcurrido desde el último tick. Facilita la calibración del parámetro de configuración &amp;quot;segs_guarda&amp;quot;, normalmente es 30&lt;br /&gt;
&lt;br /&gt;
Tiene un fichero de configuración ubicado en /etc/asterisk/MDcrash.conf&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Sección [perro]&lt;br /&gt;
||activo=yes (Si esta o no activo)&lt;br /&gt;
segs_dormir=1 (Un tick por segundo)&lt;br /&gt;
&lt;br /&gt;
segs_inic=60&lt;br /&gt;
&lt;br /&gt;
segs_guarda=30 &lt;br /&gt;
&lt;br /&gt;
max_errores=3  &lt;br /&gt;
|-&lt;br /&gt;
|Sección [sip_monitor_udp]&lt;br /&gt;
||segs_inic=60&lt;br /&gt;
&lt;br /&gt;
segs_guarda=30 (Cada 30 segundos si no reciba trafico SIP genera core)&lt;br /&gt;
&lt;br /&gt;
max_errores=5 (Número máximo de errores)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Proceso de Backup ====&lt;br /&gt;
Las plataformas '''''VIVA'''''it Call y '''''VIVA'''''it Suite incluyen un script para realizar un proceso de backup.&lt;br /&gt;
&lt;br /&gt;
Se utilizará el script '''backup.sh''', que se encuentra en el directorio '''etc/MDTel'''.&lt;br /&gt;
&lt;br /&gt;
Se ejecuta automaticamente mediante el uso de un cron&lt;br /&gt;
&lt;br /&gt;
'''texto del cron:'''&lt;br /&gt;
&lt;br /&gt;
 SHELL=/bin/sh&lt;br /&gt;
 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin&lt;br /&gt;
 # m h dom mon dow user command&lt;br /&gt;
 0 2 * * * root  /etc/MDtel/backup.sh /etc/MDtel/backup.cfg&lt;br /&gt;
&lt;br /&gt;
Para activar el script hay que descomentar la línea&lt;br /&gt;
 # m h dom mon dow user command&lt;br /&gt;
&lt;br /&gt;
Los directorios de los que se hace copia son:&lt;br /&gt;
* DIR=var/lib/asterisk/sounds/Particular&lt;br /&gt;
* DIR=var/lib/asterisk/moh&lt;br /&gt;
* DIR=etc&lt;br /&gt;
* DIR=etc/asterisk&lt;br /&gt;
* DIR=etc/cron.d&lt;br /&gt;
* DIR=etc/dahdi&lt;br /&gt;
* DIR=etc/exim4&lt;br /&gt;
* DIR=etc/ha.d&lt;br /&gt;
* DIR=etc/logrotate.d&lt;br /&gt;
* DIR=etc/MDtel&lt;br /&gt;
* DIR=etc/mysql&lt;br /&gt;
* DIR=etc/network&lt;br /&gt;
* DIR=etc/zabbix&lt;br /&gt;
* DIR=usr/local/sbin&lt;br /&gt;
&lt;br /&gt;
Por defecto se realiza un backup cada dos horas en la carpeta '''/var/spool/MDtel/backup'''.&lt;br /&gt;
&lt;br /&gt;
Para cambiar la ruta de destino del backup habrá que modificar el fichero backup.sh, en concreto modificar la variable MDTEL.&lt;br /&gt;
&lt;br /&gt;
El fichero ''' backup.cfg''' que se genera incluye copia de la siguiente información:&lt;br /&gt;
* Ficheros de configuración de la aplicación.&lt;br /&gt;
* Base de Datos.&lt;br /&gt;
* Dialplan.&lt;br /&gt;
&lt;br /&gt;
Se guardarán 10 copias del fichero ''' backup.cfg '''&lt;br /&gt;
&lt;br /&gt;
Para recuperar una plataforma utilizando el backup, habrá que instalar una máquina nueva y cargar los ficheros de configuración, Base de Datos y Dialplan guardados en el proceso de backup.&lt;br /&gt;
&lt;br /&gt;
=== Requerimientos de conectividad ===&lt;br /&gt;
&lt;br /&gt;
El esquema siguiente muestra como ejemplo todos los flujos de información existentes en un entorno típico de &amp;lt;big&amp;gt;'''telefonía corporativa (sin presencia)'''&amp;lt;/big&amp;gt; ('''''VIVA'''''it Call)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Flujos corporativa.png|cebter]]&lt;br /&gt;
&lt;br /&gt;
En el entorno de &amp;lt;big&amp;gt;'''Contact Center'''&amp;lt;/big&amp;gt;, encontramos los siguientes flujos &amp;lt;big&amp;gt;'''entre servicios'''&amp;lt;/big&amp;gt; (comunicaciones entre servidores, ('''''VIVA'''''it Suite)) &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Flujos Contact servicios.png|650px|center]]&lt;br /&gt;
&lt;br /&gt;
y &amp;lt;big&amp;gt;'''entre usuarios y servicios'''&amp;lt;/big&amp;gt; los reflejados a continuación:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Flujos Contact puestos.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Lado A!!Lado B!!Puertos!!Sentido!!Observ.&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor||TCP 5060||A -&amp;gt; B||Señalización SIP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor||UDP 5060||A -&amp;gt; B||Señalización SIP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor||10000 a 20000||A -&amp;gt; B&lt;br /&gt;
B -&amp;gt; A&lt;br /&gt;
||RTP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor TFTP||UDP 69||A -&amp;gt; B&lt;br /&gt;
B -&amp;gt; A&lt;br /&gt;
||Para actualización de terminales por TFTP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor NTP||UDP 123||A -&amp;gt; B||&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Desk||Servidor||TCP 4500||A -&amp;gt; B||Comunicación CTI&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Desk||Servidor||TCP 3306||A -&amp;gt; B||Acceso a Mysql Base de datos&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Desk||Servidor Syslog||UDP 514||A -&amp;gt; B||Para envio de logs de agente&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Supervisor||Servidor||TCP 3306||A -&amp;gt; B||Acceso a Mysql Base de datos&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker||Servidor||TCP 3306||A -&amp;gt; B||Acceso a Mysql Base de datos&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker||Servidor||TCP 8180||A -&amp;gt; B||&lt;br /&gt;
|-&lt;br /&gt;
|Actualizador||Servidor||TCP 80||A -&amp;gt; B||Necesario para actualizaciones de versiones de aplicaciones de agente y supervisores&lt;br /&gt;
|-&lt;br /&gt;
|Portal de administración||Servidor||TCP 8180||A -&amp;gt; B||Acceso al portal de administración '''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker Web||Servidor||TCP 8180||A -&amp;gt; B||&lt;br /&gt;
|-&lt;br /&gt;
|Monitor||Servidor||TCP 8180||A -&amp;gt; B||Wallboard&lt;br /&gt;
|-&lt;br /&gt;
|Monitorización||Servidor||TCP 80||A -&amp;gt; B||Acceso a portal monitorización (Zabbix)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Gateways ===&lt;br /&gt;
El concepto de gateway como tal no existe en la plataforma '''''VIVA'''''it; existen nodos de ACD y nodos de corporativa.&lt;br /&gt;
&lt;br /&gt;
A efectos de operación un nodo de corporativa es el que en cualquier caso asumirá las funcionalidades de gateway, y recibirá las conexiones (analógicas, digitales o IP) a sistemas externos o a la RTC&lt;br /&gt;
&lt;br /&gt;
El concepto gateway queda pues suscrito a entornos meramente comerciales&lt;br /&gt;
&lt;br /&gt;
Incluimos no obstante en este apartado los diagnósticos y operaciones básicos de conexiones a sistemas externos o RTC&lt;br /&gt;
&lt;br /&gt;
Para verificar los enlaces establecidos ejecutamos el siguiente comando en el terminal: '''sip show peers''' &lt;br /&gt;
&lt;br /&gt;
Al ejecutar este comando obtenemos la salida:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Enlace_Exterior.png |center]]&lt;br /&gt;
&lt;br /&gt;
Las columnas ''Host'' y ''Port'' nos muestran las conexiones establecidas y nos informa de un posible problema de conexión. &lt;br /&gt;
&lt;br /&gt;
Sabremos que ''no existe conexión'' cuando la columna Host tiene el valor '''Unspecified''' y en la columna Port aparece un '''0''' , a continuación se muestra un ejemplo:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ejemplo_no_conexion.png |center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#00FF00&amp;quot;&amp;gt;FALTA AQUI DIAGNOSTICOS Y OPERACIONES DE ENLACES EXTERNOS&amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Servidor de grabación === &lt;br /&gt;
==== Almacenamiento en la nube ====&lt;br /&gt;
Almacenamiento en la nube.&lt;br /&gt;
Existe la posibilidad de que tras un determinado periodo de tiempo las grabaciones sean movidas a un almacenamiento externo. De esta operativa se encarga el proceso /usr/local/sbin/mueveGrabaciones.pl que recibe como parámetro la ruta al archivo de configuración. Dicho archivo tiene los siguientes elementos:&lt;br /&gt;
&lt;br /&gt;
*$db: Nombre de la base de datos.&lt;br /&gt;
*$dbHost: servidor de MySQL&lt;br /&gt;
*$dbPort: Puerto del MySQL.&lt;br /&gt;
*$dbUsuario: Usuario de conexión a MySQL.&lt;br /&gt;
*$dbClave: Clave del usuario anterior.&lt;br /&gt;
*$dirBase: Directorio donde residen las grabaciones&lt;br /&gt;
*$diasCaducidad: Dias de antigüedad para mover las grabaciones&lt;br /&gt;
*$sftpHost: Servidor SFTP de destino&lt;br /&gt;
*$sftpPort: Puerto SFTP.&lt;br /&gt;
*$sftpUsuario: Usuario SFTP.&lt;br /&gt;
*$sftpClave: Clave del usuario SFTP.&lt;br /&gt;
*$simula: Si este campo vale 1, las grabaciones se copian, pero no se borran del directorio original, ni se actualiza su ubicación en la base de datos.&lt;br /&gt;
&lt;br /&gt;
La grabación indica donde se encuentra mediante el campo E_UBICACION_GRABACION, que puede tener los siguientes valores:&lt;br /&gt;
*Sin definir (0)&lt;br /&gt;
*En línea (10): Las grabaciones se encuentran en el servidor de grabaciones.&lt;br /&gt;
*Fuera de línea (20): las grabaciones se encuentran en una ubicación externa.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Reporting ===&lt;br /&gt;
La aplicación de reporting en general no tiene procesos habituales de operación y mantenimiento.&lt;br /&gt;
Los informes son obtenidos desde la interfaz gráfica o mediante un procedimiento de scripting, descritos en “Formato de fichero de intercambio para '''''VIVA'''''it Reporting”.&lt;br /&gt;
&lt;br /&gt;
==== Formato de fichero de intercambio para '''''VIVA'''''it Reporting ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Nombre !! Descripción !! Ejemplo&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;| Selección de registros&lt;br /&gt;
|-&lt;br /&gt;
| SQL_selec || Expresión SQL que se añadirá al where a la SQL principal. || C_ORIGEN like '6%' and C_COD_CLIENTE= '023'&lt;br /&gt;
|-&lt;br /&gt;
| SQL_select_leido || Filtro de selección legible&lt;br /&gt;
 || Skill igual a 60310&lt;br /&gt;
|-&lt;br /&gt;
| SQL_orden || Lista de campos por los que se ordenará, después de los que estén ya definidos en la plantilla. || C_ORIGEN, C_COD_CLIENTE&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Salida&lt;br /&gt;
|-&lt;br /&gt;
| FIC_extension || Extensión de fichero de salida: PDF, XLSX, CSV || PDF&lt;br /&gt;
|-&lt;br /&gt;
| FIC_tipo_entrega || 'P': Pantalla, 'D': Directorio, 'C': Correo || D&lt;br /&gt;
|-&lt;br /&gt;
| FIC_destino || Si 'C', dirección de correo, si 'D', ruta del directorio || D:\informes\&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Plantilla&lt;br /&gt;
|-&lt;br /&gt;
| INF_modelo || Ruta del fichero de plantilla || C:\Modelos\llamadas.rep&lt;br /&gt;
|-&lt;br /&gt;
| INF_descripción || Descripción del informe || Informe detallado de llamadas&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Base de datos&lt;br /&gt;
|-&lt;br /&gt;
| BD_ip || IP o nombre de máquina || &lt;br /&gt;
|-&lt;br /&gt;
| BD_puerto || Puerto de MySQL || &lt;br /&gt;
|-&lt;br /&gt;
| BD_base_datos || Nombre de base de datos || &lt;br /&gt;
|-&lt;br /&gt;
| BD_usuario || Usuario de base de datos || &lt;br /&gt;
|-&lt;br /&gt;
| BD_clave || Clave de acceso cifrada || &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Parámetros&lt;br /&gt;
|-&lt;br /&gt;
| PAR_desde_vis || Fecha inicial de selección en formato legible (o '-' si no hay) || 01/01/2016&lt;br /&gt;
|-&lt;br /&gt;
| PAR_hasta_vis || Fecha final de selección en formato legible (o '-' si no hay) || 31/01/2016&lt;br /&gt;
|-&lt;br /&gt;
| PAR_01 || Parámetro opcional || &lt;br /&gt;
|-&lt;br /&gt;
| .. || .. || &lt;br /&gt;
|-&lt;br /&gt;
| PAR_20 || Parámetro opcional || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El fichero tendrá un nombre único para permitir la generación simultánea de informes.&lt;br /&gt;
El fichero es borrado por la aplicación de forma automática.&lt;br /&gt;
Se pasa a la aplicación de generación de informes como parámetro. Por ejemplo:&lt;br /&gt;
 “C:\Archivos de Programa\MDtel\Nimitz\LanzaInformes\LanzaInformes.exe”&lt;br /&gt;
 “C:\Archivos de Programa\MDtel\Nimitz\LanzaInformes\NIM00001.tmp”&lt;br /&gt;
&lt;br /&gt;
Ejemplo de fichero:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| SQL_selec=(DAT_ACUMULADOS_COLAS.ID_COLA in (11))&lt;br /&gt;
&lt;br /&gt;
SQL_select_leido=Skill igual a 60310&lt;br /&gt;
&lt;br /&gt;
SQL_orden=&lt;br /&gt;
FIC_extension=pdf&lt;br /&gt;
&lt;br /&gt;
FIC_tipo_entrega=P&lt;br /&gt;
&lt;br /&gt;
FIC_destino=C:\&lt;br /&gt;
&lt;br /&gt;
INF_modelo=skill_setsi.rep&lt;br /&gt;
&lt;br /&gt;
INF_descripcion=Skill. SETSI&lt;br /&gt;
&lt;br /&gt;
BD_ip=172.25.1.2&lt;br /&gt;
&lt;br /&gt;
BD_puerto=3306&lt;br /&gt;
&lt;br /&gt;
BD_base_datos=nimitz&lt;br /&gt;
&lt;br /&gt;
BD_usuario=nimitz&lt;br /&gt;
&lt;br /&gt;
BD_clave=UIk5jNY9PVX5ogg=&lt;br /&gt;
&lt;br /&gt;
PAR_desde_vis=-&lt;br /&gt;
&lt;br /&gt;
PAR_hasta_vis=-&lt;br /&gt;
&lt;br /&gt;
PAR_01=&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Resumen de significado de columnas en reporting histórico ====&lt;br /&gt;
Esta información se puede consultar en el siguiente enlace:&lt;br /&gt;
&lt;br /&gt;
http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Documentacion_de_usuario_VIVAit_Suite_3.3#Resumen_del_valor_de_las_columnas_que_aparecen_en_los_informes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===== Agente,asistencia diaria y agente. Asistencia diaria del grupo =====&lt;br /&gt;
&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo de llamado:''' Tiempo de ring en llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo disponible:''' Tiempo que el agente estuvo conectado y no está&lt;br /&gt;
incluido en ninguno de los anteriores.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas transferidas:''' Número de llamadas ACD que fueron&lt;br /&gt;
transferidas por el agente.&lt;br /&gt;
&lt;br /&gt;
===== Agente. Aux y Grupo Aux =====&lt;br /&gt;
&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Desglose de tiempos AUX:''' Tiempo que el agente estuvo en cada uno&lt;br /&gt;
de los motivos de pausa.&lt;br /&gt;
&lt;br /&gt;
===== Agente. Resumen diario =====&lt;br /&gt;
&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo de llamado:''' Tiempo de ring en llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo disponible:''' Tiempo que el agente estuvo conectado y no está&lt;br /&gt;
incluido en ninguno de los anteriores.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas entrada Ext:''' Número de llamadas entrantes NO ACD a la&lt;br /&gt;
extensión.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas salida Ext:''' Número de llamadas salientes NO ACD desde la&lt;br /&gt;
extensión.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas transferidas:''' Número de llamadas ACD que fueron&lt;br /&gt;
transferidas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas retenidas:''' Número de retenciones que sufrieron las&lt;br /&gt;
llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACD:''' Tiempo ACD/ Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACW:''' TiempoACW/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio de entrada a la Ext:''' Tiempo entrada Ext/&lt;br /&gt;
Llamadas entrada Ext.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio de salida a la Ext:''' Tiempo salida Ext/ Llamadas&lt;br /&gt;
salida Ext.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio retención:''' Tiempo retención/Llamadas retenidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % Ocupación con ACW:''' ((Tiempo ACD+ Tiempo retención+ Tiempo&lt;br /&gt;
ACW)/Tiempo con personal)* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % Ocupación sin ACW:''' ((Tiempo ACD+ Tiempo retención)/Tiempo&lt;br /&gt;
con personal)* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % disp.:''' (Tiempo disponible/Tiempo conectado)* 100.&lt;br /&gt;
&lt;br /&gt;
===== Agente. Grupo ACD diario =====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención de un grupo&lt;br /&gt;
ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Ayuda:''' Número de llamadas contestadas por el agente que necesitaron&lt;br /&gt;
de consulta de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas retenidas:''' Número de retenciones que el agente realizó&lt;br /&gt;
sobre las llamadas de ese grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas por&lt;br /&gt;
el agente en ese grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Trans. salida:''' Llamadas que finalizan con una transferencia.&lt;br /&gt;
&lt;br /&gt;
===== Grupo ACD. Reporte diario con AHT =====&lt;br /&gt;
&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACD:''' Tiempo ACD/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACW:''' Tiempo ACW/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención de un grupo&lt;br /&gt;
ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente de un grupo ACD.&lt;br /&gt;
'''• Tiempo de llamado:''' Tiempo de ring en llamadas ACD de un grupo&lt;br /&gt;
ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo disponible:''' Tiempo que el agente estuvo conectado y no está&lt;br /&gt;
incluido en ninguno de los anteriores.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Ayuda:''' Número de llamadas ACD contestadas por el agente en las que&lt;br /&gt;
necesito hacer uso de la consulta.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas retenidas:''' Número de retenciones que el agente realizó&lt;br /&gt;
sobre las llamadas ACD contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas contestadas ACD&lt;br /&gt;
estuvieron retenidas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Trans. salida:''' Número de llamadas ACD que fueron transferidas por el&lt;br /&gt;
agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• AHT:''' (Tiempo ACD+ Tiempo ACW+ Tiempo retención)/Llamadas&lt;br /&gt;
ACD.(Average Handle Time)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Grupo ACD. QOS  =====&lt;br /&gt;
&lt;br /&gt;
'''• Vel. prom. de resp.:''' Tiempo total de espera de llamadas antes de ser&lt;br /&gt;
atendidas/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo prom. de aban.:''' Tiempo abandonadas(tiempo que las&lt;br /&gt;
llamadas abandonadas estuvieron en el grupo ACD)/Llamadas&lt;br /&gt;
abandonadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ofrecidas:''' Número de llamadas entrantes al grupo&lt;br /&gt;
ACD(Llamadas ACD+ Abandonadas+ Desbordadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas contestadas por los agentes.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas abandonadas:''' Número de llamadas colgadas por el cliente&lt;br /&gt;
en el grupo ACD antes de ser contestadas o desbordadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Desconectadas por ACD:''' Número de llamadas desbordadas que al&lt;br /&gt;
salir del grupo ACD se cuelgan.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Desbordadas por ACD:''' Número total de llamadas desbordadas(incluye&lt;br /&gt;
las desconectadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas atendidas en &amp;lt; 20s:'''Número de llamadas contestadas con&lt;br /&gt;
tiempo de respuesta menor a 20 segundos.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo total de espera:''' Tiempo total que las llamadas estuvieron&lt;br /&gt;
esperando antes de ser atendidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % N.A.:''' Llamadas ACD/(Llamadas ACD+ Llamadas abandonadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % N.D.S.:''' (Llamadas atendidas en &amp;lt; 20s/Llamadas ofrecidas)* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• T.M.O:''' (Tiempo ACD+ Tiempo ACW+ Tiempo retención)/Llamadas&lt;br /&gt;
ACD.(Tiempo Medio Operación)&lt;br /&gt;
&lt;br /&gt;
===== Informe conducción (VDN Conducción) =====&lt;br /&gt;
&lt;br /&gt;
'''•Entrantes al grupo ACD:''' Número de llamadas ofrecidas al grupo&lt;br /&gt;
ACD(Contestadas+ Abandonadas+ Desbordadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Llamadas contestadas:''' Número de llamadas contestadas por un agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Contestadas NDS:''' Número de llamadas contestadas en nivel de servicio,&lt;br /&gt;
tiempo de respuesta&amp;lt; 20 segundos.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Abandonadas:''' Número de llamadas abandonadas, colgadas por el cliente&lt;br /&gt;
antes de ser contestadas por un agente o desbordadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Desconectadas:''' Número de llamadas desbordadas que fueron colgadas al&lt;br /&gt;
salir del grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Desbordadas:''' Número total de llamadas desbordadas (incluye desconectadas)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Llamadas retenidas:''' Número de retenciones que el agente realizó sobre las&lt;br /&gt;
llamadas ACD contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•% N.A.:''' (Llamadas contestadas/(Llamadas contestadas+ Abandonadas+&lt;br /&gt;
Desbordadas))* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•% N.D.S.:''' (Contestadas NDS/(Llamadas contestadas+ Abandonadas + Desbordadas))*100&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•% Abandonadas:''' (Abandonadas/(Llamadas contestadas+ Abandonadas+ Desbordadas))* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. RING:''' Tiempo de ring en llamadas ACD(entrantes).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•ACDTIME:''' Tiempo de conversación ACD de las llamadas contestadas o&lt;br /&gt;
realizadas por el agente excluido el tiempo de retención de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. ACW:''' Tiempo dedicado por el agente a tareas administrativas tras&lt;br /&gt;
finalizar las llamadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum HOLD:''' Tiempo que las llamadas contestadas ACD estuvieron retenidas&lt;br /&gt;
por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. OTHER:''' Tiempo total que las llamadas estuvieron esperando en el&lt;br /&gt;
grupo ACD antes de ser atendidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. AVAIL:''' Acum. STAFF- (ACDTIME+ Acum. ACW+ Acum. RING+ Acum.&lt;br /&gt;
HOLD+ Acum. AUX).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. Staff:''' Suma del Tiempo conectado de todos los agentes al grupo&lt;br /&gt;
ACD(Este tiempo se repercute en todos los grupos ACD a los que esta&lt;br /&gt;
conectado el agente).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. AUX:''' Suma del Tiempo en pausa de todos los agentes que estén&lt;br /&gt;
conectados al grupo ACD(Este tiempo se repercute en todos los grupos ACD a&lt;br /&gt;
los que esta conectado el agente).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Prom. ACD:''' ACDTIME/Llamadas contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Prom. ACW:''' Acum. ACW/Llamadas contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Prom. HOLD:''' Acum. HOLD/Llamadas retenidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•AHT:''' (ACDTIME+ Acum. ACW+ Acum. HOLD)/Llamadas contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Vel. prom. de resp.:''' Tiempo total de espera de llamadas antes de ser&lt;br /&gt;
atendidas/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Tiempo máx. de espera:''' Tiempo de la llamada que estuvo mas tiempo en el&lt;br /&gt;
grupo ACD hasta que fue atendida.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Agentes en PH:''' (Acum. Staff- Acum. AUX)/1800(Agentes conectados que no&lt;br /&gt;
están en pausa en el intervalo).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Agentes Staff:''' Acum. Staff/1800(Agentes conectados en el intervalo)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Desglose de tiempos AUX:''' Tiempo que el agente estuvo en cada uno de los&lt;br /&gt;
motivos de pausa.&lt;br /&gt;
&lt;br /&gt;
===== Informe de producción =====&lt;br /&gt;
&lt;br /&gt;
'''• LL. ACD:'''Número de llamadas contestadas por ese agente para ese&lt;br /&gt;
grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. HOLD:''' Número de retenciones efectuadas para las llamadas&lt;br /&gt;
contestadas en ese grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Redir.:''' Número de llamadas no contestadas por un agente que&lt;br /&gt;
fueron redirigidas de nuevo a la cola.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. No colgadas cliente:''' Número de llamadas que terminaron sin el&lt;br /&gt;
colgado del cliente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Aband.:''' Número de llamadas abandonadas en ese grupo ACD, este&lt;br /&gt;
valor es independiente del agente por tanto se repite el valor para todos&lt;br /&gt;
los agentes en un mismo grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Transfer.:''' Número de llamadas ACD que fueron transferidas por el&lt;br /&gt;
agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Conf:''' Número de llamadas ACD en las que el agente estableció&lt;br /&gt;
conferencia.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• S. Extensión:''' Número de llamadas salientes de extensión, este valor es&lt;br /&gt;
independiente del grupo ACD se repite el valor para todos los grupos&lt;br /&gt;
ACD en los que está conectado el agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. Staff:''' Tiempo que el agente estuvo conectado al grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. RING:''' Tiempo de ring en las llamadas ACD(entrantes) que&lt;br /&gt;
fueron contestadas por el agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. ACD:''' Tiempo de conversación de las llamadas ACD(entrantes)&lt;br /&gt;
que fueron contestadas por el agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas que fueron contestadas por él.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum HOLD:''' Tiempo que las llamadas ACD(entrantes) para ese grupo&lt;br /&gt;
ACD que fueron contestadas por el agente estuvieron retenidas.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. AVAIL:''' Acum. STAFF- (Acum. ACD+ Acum. ACW+ Acum. RING+&lt;br /&gt;
Acum. HOLD+ Acum. AUX)..&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. AUX:''' Tiempo que el agente estuvo en pausa este valor es&lt;br /&gt;
independiente del grupo ACD se repite el valor para todos los grupos&lt;br /&gt;
ACD en los que está conectado el agente..&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Desgloses de tiempos AUX, tiempo AUX por cada uno de los&lt;br /&gt;
motivos.''' este valor es independiente del grupo ACD se repite el valor&lt;br /&gt;
para todos los grupos ACD en los que está conectado el agente.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Consideraciones adicionales =====&lt;br /&gt;
&lt;br /&gt;
Los tiempos se insertan en el intervalo en el que se deja ese &amp;quot;estado&amp;quot;, esto provoca que en un intervalo pueda ser mayor el tiempo ACD que el tiempo conectado.&lt;br /&gt;
&lt;br /&gt;
''* Ejemplo:''&lt;br /&gt;
&lt;br /&gt;
 -Llamada: Duración 15 minutos Hora fin de la llamada 13:01&lt;br /&gt;
 -Llamada: Duración 20 minutos Hora fin de la llamada 13:24&lt;br /&gt;
 Suma de las duraciones de las llamadas para el intervalo ''35 minutos'' tiempo&lt;br /&gt;
 conectado del agente en el intervalo ''30 minutos.''&lt;br /&gt;
 Cuando los periodos consultados sean mas amplios (diario, mensual) los&lt;br /&gt;
 desfases tenderán a desaparecer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Otros Diagnósticos y operaciones básicas ==&lt;br /&gt;
=== Arranque y apagado de la plataforma ===&lt;br /&gt;
&lt;br /&gt;
En general el arranque y apagado de cada nodo de una plataforma '''''VIVA'''''it es el estándar de un procedimiento ordenado de apagado en una máquina linux: '''&amp;quot;Shutdown -h now&amp;quot;''' o comando de apagado inmediato o programado equivalente&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El orden de arranque de la plataforma deberá ser:&lt;br /&gt;
# En primer lugar arrancar el nodo con la base de datos de tiempo real&lt;br /&gt;
# Una vez finalizado el arranque del punto 1, arrancar el nodo con la base de datos de réplica&lt;br /&gt;
# Una vez finalizado el arranque del punto 2, arrancar el resto de nodos en cualquier orden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Al respecto del orden de apagado de nodos, es el siguiente:&lt;br /&gt;
# En primer lugar se apagarán, en cualquier orden, los nodos que NO CONTENGAN bases de datos de tiempo real ni bases de datos de réplica&lt;br /&gt;
# Una vez apagados totalmente todos los nodos del punto 1, apagaremos el nodo (o nodos) con bases de datos de réplica&lt;br /&gt;
# Una vez apagados totalmente todos los nodos del punto 2, se apagará el nodo con la base de datos de tiempo real&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== Nivel matriz de conmutación ===&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Grabación ===&lt;br /&gt;
&lt;br /&gt;
==== Configuración de la grabación en la plataforma corporativa ====&lt;br /&gt;
Para que una llamada se grabe, lo primero de todo es que  alguien tenga la capacidad de grabar. Esto se consigue diciendo al nodo que sea grabador. Esto provoca que el nodo llame al mixmonitor para grabar y se inserte un registro en el DAT_GRABACIONES. Esto no significa que ya las llamadas se vayan a grabar, ya que para eso tiene que ser procesadas por un nodo que sea grabador. Hay tres, llamémosle elementos, que se pueden grabar:&lt;br /&gt;
&lt;br /&gt;
* El nodo, es decir todo lo que el nodo enrute&lt;br /&gt;
* Prerutas&lt;br /&gt;
* Objetos: que son las extensiones, usuarios, grupos corporativos, etc.&lt;br /&gt;
&lt;br /&gt;
Tenemos tres formas de grabar:&lt;br /&gt;
&lt;br /&gt;
* Grabar con beep periódico&lt;br /&gt;
* Grabar sin beep periódico&lt;br /&gt;
* Descartar grabación&lt;br /&gt;
&lt;br /&gt;
Si de los tres elementos tenemos que uno grabe, ya sea con o sin beep periódico, esa llamada se va a grabar ya que son OR, en cuanto haya un elemento que diga que grabe se va a grabar.&lt;br /&gt;
&lt;br /&gt;
Al igual pasa si tenemos que un elemento tenga descartar la grabación. La grabación no se inicia.&lt;br /&gt;
&lt;br /&gt;
Referente al campo de Modo de grabación en infraestructura, este no se emplea para la grabación de corporativo, sino que solo tiene validez en ACD. Para grabación en el ACD hay que, como se ha dicho anteriormente poner un nodo que sea grabador y especificar un elemento de los tres que hay cual es el que se va a grabar.&lt;br /&gt;
&lt;br /&gt;
Para que exista una grabación a de existir un segmento asociado a esta. Los segmentos se tratan en las prerutas. Hay un campo es las prerutas que es Generar segmento al enrutar. Si está se generará el segmento del tipo de la preruta y su correspondiente grabación si esta está configurada. Si le decimos que no genere segmentos al enrutar y el sistema está configurado para que grabe, el recordCentral creará un tipo de segmento llamado externo para esa grabación. Podemos configurar si queremos que se cree o no ese segmento, para eso hay que modificar el fichero de configuración del recordCentral y poner un tiempo muy alto al campo $segmExternoMinSegs. También podemos configurar que segmentos queremos que se graben. Por defecto el recordCentral va configurado para que se graben todos los segmentos. Para decirle que solo grabe cierto tipo de segmentos hay que ponerlos los que queramos que si se graben en la variable $tiposSegmentoGrabar del fichero de configuración del recordCentral.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que el servidor de grabación esta activo ====&lt;br /&gt;
&lt;br /&gt;
Si al ejecutar el comando '''''nc ip_maquina 1114''''',si no se recibe ninguna respuesta, significa el servidor de grabación no estaría activo. &lt;br /&gt;
También usando el comando ''''' ps aux | grep recordCentral ''''', donde si no escribe ningún resultado implica que tampoco esta activo.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que los nodos están conectados al servidor de grabación ====&lt;br /&gt;
&lt;br /&gt;
Debemos fijarnos en la linea de respuesta del comando '''''nc ip_maquina 1114''''', que seria:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| root@smadavacdrecord1:~# nc localhost 1114&lt;br /&gt;
recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423&lt;br /&gt;
160112'&lt;br /&gt;
&lt;br /&gt;
recordCentral MYSQL cnx=1&lt;br /&gt;
&lt;br /&gt;
recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
&lt;br /&gt;
recordCenral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
&lt;br /&gt;
'''recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10''''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el parámetro &amp;quot;fase=0&amp;quot; es el numero que identifica el recordCentral, los demás parámetros nos indicaran los nodos disponibles , que funcionan o no en el servidor. Entonces &amp;quot;gestión=4,6,7,8,9,10&amp;quot; indica el id de los nodos que maneja el proceso.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que un nodo tiene activo el agente de grabación ====&lt;br /&gt;
Si al ejecutar el comando '''''nc ip_maquina 1113''''', no se recibe ninguna respuesta, significa que el nodo no tiene activo el agente de grabación.&lt;br /&gt;
También usando el comando ''''' ps aux | grep recordNodo''''', donde si no escribe ningun resultado implica que tampoco esta activo.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que un nodo está subiendo archivos de grabación al servidor ====&lt;br /&gt;
Debemos fijarnos en la linea de respuesta del comando '''''nc ip_maquina 1114''''', que seria:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| root@smadavacdrecord1:~# nc localhost 1114&lt;br /&gt;
recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423&lt;br /&gt;
160112'&lt;br /&gt;
&lt;br /&gt;
recordCentral MYSQL cnx=1&lt;br /&gt;
&lt;br /&gt;
recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
&lt;br /&gt;
recordCenral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
&lt;br /&gt;
'''recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10''''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Fijándonos en &amp;quot;descarga=8,6,4,7,10,9&amp;quot; nos confirma que todos los nodos que maneja el proceso funcionan perfectamente y el servidor puede manejar las grabaciones.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de grabaciones que se hayan quedado enganchadas en un nodo ====&lt;br /&gt;
Podemos fijarnos en los dos comandos, para '''''nc ip_maquina 1114''''':&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| root@smadavacdrecord1:~# nc localhost 1114&lt;br /&gt;
recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423&lt;br /&gt;
160112'&lt;br /&gt;
&lt;br /&gt;
recordCentral MYSQL cnx=1&lt;br /&gt;
&lt;br /&gt;
recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
&lt;br /&gt;
recordCenral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
&lt;br /&gt;
'''recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10''''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Fijándonos en el campo &amp;quot;cuarentena=''&amp;quot; indica que ninguno de los nodos tiene problemas.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación del estado de ocupación del almacenamiento temporal de grabaciones en un nodo. ====&lt;br /&gt;
&lt;br /&gt;
Desde un SSH ejecuta el comando '''''df - h''''' en la maquina donde creamos que debe estar ejecutando el proceso recordNod:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Filesystem !! Size !! Used !! Avail !! Use% !! Mounted on&lt;br /&gt;
|-&lt;br /&gt;
| udev || 486M || 4,0K || 486M || 1,00% || /dev&lt;br /&gt;
|-&lt;br /&gt;
| tmpfs || 100M || 416K || 99M || 1,00% || /run&lt;br /&gt;
|-&lt;br /&gt;
| '''/dev/vda1''' ||''' 236M''' ||''' 68M''' ||''' 156M''' ||''' 31,00% '''||''' /boot'''&lt;br /&gt;
|-&lt;br /&gt;
| tmpfs || 100M || 48K || 100M || 1,00% || /var/spool/asterisk/monitor&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Nos fijaríamos en la línea marcada en negrita, el campo &amp;quot;Use%&amp;quot; indicara el porcentaje de almacenamiento temporal de grabaciones en un nodo.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Escuchas e intrusiones en asterisk===&lt;br /&gt;
'''CallSpy''' es una aplicación elaborada para asterisk que permite a un usuario realizar escuchas e &lt;br /&gt;
intrusiones en llamadas. &lt;br /&gt;
En realidad tenemos dos aplicaciones en asterisk, CallSpy y CallSpyee. &lt;br /&gt;
====CallSpy ====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 '''Nota:''' Como mucho se pueden tener a dieciséis personas al mismo tiempo usando esta aplicación. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como hemos mencionado anteriormente, esta aplicación permite la escucha de llamadas y, &lt;br /&gt;
opcionalmente, realiza la función de intrusión. Tiene tres opciones de configuración obligatorios &lt;br /&gt;
que mostramos a continuación: &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 CallSpy(&amp;lt;tipoEspiado&amp;gt;,&amp;lt;expRegEspiado&amp;gt;,&amp;lt;parametrosConf&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
La opción '''&amp;lt;tipoEspiado&amp;gt;''' se refiere a que tipo de objeto que podemos espiar correspondiente, solo debe elegirse un único tipo: &lt;br /&gt;
*'''c:''' escuchar una cola&lt;br /&gt;
*'''v:''' escuchar un vdn &lt;br /&gt;
*'''a:''' escuchar a un agente &lt;br /&gt;
*'''e:''' escuchar extensión &lt;br /&gt;
La opción '''&amp;lt;expRegEspiado&amp;gt;''' representa el número de la cola, VDN, agente o extensión que queremos escuchar. Tiene que ser una expresión regular. &lt;br /&gt;
La opción '''&amp;lt;parametrosConf&amp;gt;''' se refiera a los parámetros de configuración para la llamada que podemos espiar, se pueden combinar o juntar : &lt;br /&gt;
*'''q:''' Desactiva el 'beep' al comienzo de cada nueva llamada. &lt;br /&gt;
*'''v([value]):''' Ajusta el volumen en el rango -4 a 4 (más alto, mas volumen). &lt;br /&gt;
*'''e:''' Habilita el que se pueda cambiar a otra llamada de la misma extensión. &lt;br /&gt;
*'''w:''' Habilita el que se pueda activar la intrusión (whisper).&lt;br /&gt;
Una vez iniciada la escucha, solo falta que entre una llamada al objetivo que estemos espiando. Al &lt;br /&gt;
iniciar la escucha, se puede hacer lo siguiente: &lt;br /&gt;
*Pulsando '''#''' modifica el volumen de escucha. &lt;br /&gt;
*Pulsando '''*''' cambia a una nueva llamada. &lt;br /&gt;
*Pulsando '''1''' si esta habilitado, cambia a otra llamada de la misma extensión. &lt;br /&gt;
*Pulsando '''2''' si esta habilitado, inicia la función de intrusión. &lt;br /&gt;
*Pulsando '''3''' desactiva la función de intrusión. &lt;br /&gt;
====CallSpyee (espiado)====&lt;br /&gt;
Mediante esta aplicación indicamos los parámetros que permite a una llamada ser seleccionada para &lt;br /&gt;
escuchar. Las opciones de configuración son: &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 CallSpyee([CID_NUM],[cola],[vdn],[agen],[exten]) &lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:'''No son parámetros obligatorios, por lo que no hace falta rellenar todos los campos pero si respetar sus posiciones separadas por comas.&amp;lt;small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
La explicación de los parámetros es la siguiente:&lt;br /&gt;
*'''CID_NUM:''' representa el call ID de la llamadas &lt;br /&gt;
*'''cola:'''representa el número de la cola que se quiere espiar (${QUEUE} ).&lt;br /&gt;
*'''vdn:'''   representa el número del VDN que se quiere espiar (${VDN} ).&lt;br /&gt;
*'''agen:''' representa el número del agente que se quiere espiar.&lt;br /&gt;
*'''exten:''' representa el número de la extensión que se quiere espiar (${EXTENSION}) .&lt;br /&gt;
&lt;br /&gt;
Por ejemplo si queremos escuchar todas las llamadas en las que participa una extensión determinada pondremos en la macro de extensiones: &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,,,${EXTENSION}) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Cambios para el dialplan de asterisk==== &lt;br /&gt;
El funcionamiento de este tipo de servicio conlleva un cambio en el dialplan de asterisk. En cada macro correspondiente se pondrá los diferentes CallSpyee para VDN, colas  , extensiones y agentes. &lt;br /&gt;
Pasos a seguir: &lt;br /&gt;
*Paso 1. Creación de un código de intrusión para cada tipo según necesidad (cola, VDN, agente y &lt;br /&gt;
extensión). &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Ejemplo '''MD'''tel:  declaramos como código de intrusión a Agente *44*NUMERO &lt;br /&gt;
 ;========================================== &lt;br /&gt;
 ;======== Intrusion a Agente &lt;br /&gt;
 ;========================================== &lt;br /&gt;
 exten =&amp;gt; _*44*X.,1,set(CadMarcar=intrusionEspiado) &lt;br /&gt;
 exten =&amp;gt; _*44*X.,n,set(DesL=SERVICIO) &lt;br /&gt;
 exten =&amp;gt; _*44*X.,n,set(datoServicio=^${EXTEN:4}) &lt;br /&gt;
 exten =&amp;gt; _*44*X.,n,Goto(finMacro,1) &lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' En la tercera línea podemos observar la expresión regular que se le pasara al CallSpy correspondiente con el número marcado por el espia. &amp;lt;small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*Paso 2.Llamar a CallSpy con la configuración deseada.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Ejemplo '''MD'''tel:  llamada a CallSpy especificando que vamos a espiar una cola (la c del primer parámetro, con la&lt;br /&gt;
 extensión introducida en el código de intrusión y con whisper, es decir, función de intrusión habilitada. &lt;br /&gt;
 ;------------------------------------------------------------------------ &lt;br /&gt;
 ; Intrusion a Espiado &lt;br /&gt;
 ;------------------------------------------------------------------------ &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,1,NoOp &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,n,GotoIf($[&amp;quot;${datoServicio}&amp;quot;=&amp;quot;&amp;quot;]?colgar) &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,n,CallSpy(c,${datoServicio},w) &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,n(colgar),Hangup &lt;br /&gt;
|}&lt;br /&gt;
* Paso 3. Llamar a CallSpyee con la configuración de las llamadas candidatas a ser escuchadas.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Ejemplo '''MD'''tel: &lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,,,,${EXTENSION}) → Para extensiones &lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,${QUEUE},,,) → Llamadas espiadas por cola &lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,,${VDN},,) → Llamadas espiadas por VDN &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Calendarios ===&lt;br /&gt;
&lt;br /&gt;
Para la configuración de los Calendarios se hace uso de '''CalDAV''', estándar de Internet que permite a un cliente acceder a información de planificación en un servidor remoto. Permite que varios clientes accedan a la misma información, facilitando la cooperación. Muchas aplicaciones, tanto clientes como servidores, son compatibles con este protocolo.&lt;br /&gt;
&lt;br /&gt;
Si deseamos crear un calendario en la plataforma '''VIVAit''' podemos hacerlo siguiendo el  siguiente enlace:  &lt;br /&gt;
Para comprobar que el servidor de calendarios funciona correctamente bastaría con cargar en la barra de direcciones la siguiente url: [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Calendarios |Calendarios]]&lt;br /&gt;
&lt;br /&gt;
http://${NODO.HOST}/dav/html/cal.php/calendars/${DAV.CUENTA}/${DAV.CALENDARIO}&lt;br /&gt;
&lt;br /&gt;
donde,&lt;br /&gt;
&lt;br /&gt;
* '''NODO.HOST:''' es la ip del servidor calendar&lt;br /&gt;
* '''DAV.CUENTA:''' hace referencia a la cuenta de usuario&lt;br /&gt;
* '''DAV.CALENDARIO:''' hace referencia el nombre de la cuenta&lt;br /&gt;
&lt;br /&gt;
Una vez que se carga la url sabremos que el servidor funciona correctamente si visualizamos lo siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla de 2016-07-21 12_43_58.png || 1020px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si el sistema nos pide usuario y clave querrá decir que el servidor de calendarios está operativo en esa maquina&lt;br /&gt;
&lt;br /&gt;
Para comprobar que funciona en la consola de asterisk usaremos los comandos &lt;br /&gt;
 calendar show calendars&lt;br /&gt;
 calendar show calendar [nombreCalendario]&lt;br /&gt;
&lt;br /&gt;
 '''Nota:''' Debido bugs detectados, el proceso requerirá:&lt;br /&gt;
       - La realización de una sincronización manual de la sección &amp;quot;mdcal&amp;quot; desde el portal de administración&lt;br /&gt;
       - Añadir la línea '''''#include &amp;quot;/etc/asterisk/mdcal.conf&amp;quot;''''' en el fichero calendars.conf y hacer &amp;quot;reload&amp;quot; de asterisk&lt;br /&gt;
       - En la máquina donde esté instalado el servidor de calendarios apuntar a la IP de la BDTR (/var/www/dav/config.php)&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Syslog de agentes ===&lt;br /&gt;
'''''Syslog''''' es un estándar para el envío de mensajes de registro en una red informática IP. Por '''''Syslog''''' se conoce tanto al protocolo de red como a la aplicación o biblioteca que envía los mensajes de registro. Se lanza automáticamente al arrancar un sistema Unix, y es el encargado de guardar informes sobre el funcionamiento de la máquina (eventos, seguridad del sistema, etc) pero puede contener también cualquier información como mensajes de las diferentes partes del sistema (núcleo, programas...) y los envía y/o almacena en diferentes localizaciones transmitiéndose mediante un puerto UDP. Esto permite concentrar los registros de múltiples máquinas en un único punto simplificando la labor de gestión al administrador siendo habitual que múltiples dispositivos lo soporten.&lt;br /&gt;
&lt;br /&gt;
El formato del mensaje se compone de tres campos :&lt;br /&gt;
&lt;br /&gt;
* La cabecera contiene la prioridad, fecha y hora del mensaje, máquina, proceso (nombre e identificador) que lo ha generado y la versión del protocolo utilizado.&lt;br /&gt;
* Una serie de pares clave-valor con metadatos.&lt;br /&gt;
* El texto del mensaje.&lt;br /&gt;
&lt;br /&gt;
Si es necesario podemos activar el registro de todos los eventos telefónicos que realiza un agente ACD llamado '''Syslog de agentes'''. Su activación se realiza mediante el '''portal de administración ''VIVA''it'''  configurando unos parámetros para un usuario llamado ''Rastreo BBDD&amp;quot; y ''Rastreo Syslog''. Para más información[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Pesta.C3.B1a_ACD | ver sección  Portal de administración - General - Usuarios - Pestaña ACD  ]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot;  align=&amp;quot;top&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot; |&amp;lt;big&amp;gt;'''Elemento'''&amp;lt;/big&amp;gt; &lt;br /&gt;
|align=&amp;quot;center&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot; | &amp;lt;big&amp;gt;'''Procedimiento'''&amp;lt;/big&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Operacion&lt;br /&gt;
|-&lt;br /&gt;
|Ubicación del proceso||Script arranque: /etc/init/ rsyslog.conf&lt;br /&gt;
Configuración :&lt;br /&gt;
/etc/rsyslog.d/30-vivait-&lt;br /&gt;
desk.conf&lt;br /&gt;
|-&lt;br /&gt;
|Arranque||service rsyslog start&lt;br /&gt;
|-&lt;br /&gt;
|Parada||service rsyslog stop&lt;br /&gt;
|-&lt;br /&gt;
|Reinicio||service rsyslog reload&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Diagnostico&lt;br /&gt;
|-&lt;br /&gt;
|Registro de logs||/var/log/MDtel/vivait-desk.log&lt;br /&gt;
Fichero del día actual. se guardan los 30&lt;br /&gt;
anteriores comprimidos en tar.g&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==Funcionalidades específicas ==&lt;br /&gt;
=== Mecanismo de prioridad adaptativa ===&lt;br /&gt;
&lt;br /&gt;
El mecanismo de prioridad adaptativa permite en una plataforma '''''VIVA'''''it Suite establecer prioridades en las que se tenga en cuenta el tiempo de espera de las llamadas en cola, proporcionando una alternativa al mecanismo de prioridad absoluta que existe por defecto&lt;br /&gt;
&lt;br /&gt;
==== Introducción ====&lt;br /&gt;
&lt;br /&gt;
Este documento presenta una propuesta de mecanismo de asignación de llamadas en colas a agentes basado no solo en las prioridades de agente a cola,&lt;br /&gt;
sino en un factor de corrección de prioridad derivado del tiempo de espera de una llamada&lt;br /&gt;
&lt;br /&gt;
==== Terminología ====&lt;br /&gt;
&lt;br /&gt;
* '''Prioridad de llamada:''' A cada llamada susceptible de ser atendida en el ''Call Center'' se le asignará una prioridad de llamada; dicha prioridad será asignada cada vez que un agente quede disponible.&lt;br /&gt;
* '''Prioridad de grupo ACD:''' Los agentes del ''Call Center'' tendrán configurada una prioridad para cada grupo ACD al que pertenecen&lt;br /&gt;
* '''Tiempo de espera:''' Tiempo que una llamada lleva en espera en un determinado grupo ACD; si la llamada cambia de un grupo ACD a otro el tiempo de espera pasa a cero&lt;br /&gt;
* '''Objetivo de servicio:''' Tiempo objetivo máximo de espera por cada grupo ACD&lt;br /&gt;
&lt;br /&gt;
 '''Nota.-''' ''En terminología Asterisk el aumento de prioridad corresponde con números descendentes, es decir,&amp;lt;br /&amp;gt;&lt;br /&gt;
 prioridad 50 es mejor que prioridad 70''&lt;br /&gt;
&lt;br /&gt;
==== Mecanismo de asignación de llamadas ====&lt;br /&gt;
&lt;br /&gt;
En el momento en que exista un agente disponible para recibir llamada, el agente recepcionará la llamada con mejor prioridad de llamada (menor número). La prioridad de llamada para cada llamada se establecerá de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
- Agentes con prioridad de grupo ACD de 1 a 99 utilizarán el mecanismo convencional de asterisk de prioridad absoluta; será útil para grupos ACD críticos o en Call Centers muy convencionales&lt;br /&gt;
&lt;br /&gt;
'''Si un agente tiene prioridad menor de 100 en grupos ACD y hay llamadas en dichos grupos, estas llamadas serán atendidas por el agente con prioridad absoluta.'''&lt;br /&gt;
&lt;br /&gt;
- Agentes con prioridad de colas de 100 en adelante; se utilizará el siguiente mecanismo de prioridad ponderada:&lt;br /&gt;
&lt;br /&gt;
:*Si el grupo ACD de la llamada está dentro del objetivo de servicio, la prioridad de llamada será la prioridad de grupo ACD (a efectos prácticos se aplicará el mecanismo convencional de asignación de llamada a agente, equitativo entre grupos ACD con misma prioridad)&lt;br /&gt;
&lt;br /&gt;
:*Si el grupo ACD de la llamada está fuera del objetivo de servicio, se aplicará una ponderación que mejorará la prioridad de la llamada a medida que aumente el tiempo de espera:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Formula.png |center]]&lt;br /&gt;
&lt;br /&gt;
En una configuración de igualdad de prioridad de agente y objetivo de servicio, el tiempo de espera influiría de manera determinante (más o menos en&lt;br /&gt;
función del peso) en la asignación de la siguiente llamada&lt;br /&gt;
El peso podrá adquirir tres posibles valores: 0, 1 y 10&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Esquema.png |center]]&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;span style=&amp;quot;color:#000080&amp;quot;&amp;gt;- Calculo prioridad de llamada: se calcula por llamada cada vez que un agente queda libre&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span style=&amp;quot;color:#000080&amp;quot;&amp;gt;- Agente atiende llamada con mejor prioridad de llamada&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Medio:Asignación de llamadas por prioridad adaptativa.pdf|Asignación de llamadas por prioridad adaptativa]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Marcación saliente ===&lt;br /&gt;
Dentro del ACD hay un comportamiento especial que es la marcación saliente. Esta puede ser de tres tipos:&lt;br /&gt;
* '''Vista previa''': El agente demanda la siguiente llamada a realizar.&lt;br /&gt;
* '''Progresivo''': Se llama al agente y se lanza la llamada al contacto.&lt;br /&gt;
* '''Predictivo''': El sistema calcula cuando va a estar libre el agente y se adelanta lanzando varias llamadas (configurables por parámetros). La llamada que es contestada primero, se pasa a una cola (el resto se cuelgan) a la espera que el agente se quede libre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Esquema de funcionamiento====&lt;br /&gt;
[[Archivo:esquema funcionamiento marcador.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
Los contactos se agrupan en listas para su facilidad de asignación a campañas, aunque finalmente lo que se asigna a una campaña es un contacto.&lt;br /&gt;
&lt;br /&gt;
Las campañas tienen estrategias. Las estrategias definen como se ha de llamar (del primero al último, sólo los pares, etc.). Tienen una serie de parámetros que  dependiendo de la estrategia pueden tener distinta utilidad. Desde el punto de vista de la base de datos, las estrategias se definirían en la tabla ACD_CLASES_ESTRATEGIAS y se les da valor en la tabla ACD_ESTRATEGIAS_MARCADOR.&lt;br /&gt;
Una vez establecida la campaña y asignados sus contactos y dependiendo del modo de marcación (que se define en las colas) el proceso motorSal crea los intentos de marcación (siempre y cuando no estén en las listas Robinson), que serán leídos por el proceso myAcdSuperv que los convierte en llamadas para el Asterisk.&lt;br /&gt;
&lt;br /&gt;
====Flujo de estados====&lt;br /&gt;
&lt;br /&gt;
El flujo de estados es el reflejado en la figura siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:diagrama de flujo motorsal.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
Los diferentes estados de un contacto son:&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Estado !! ID_Estado!! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| Planificable || 0|| El contacto está preparado para que lo gestione motorSal y según la estrategia definida se establece el campo ACD_CONTACTOS_CAMPANNAS.D_HORA_PROXIMA&lt;br /&gt;
|-&lt;br /&gt;
|Planificado||10||Cuando ha llegado el tiempo marcado en HORA PROXIMA, motorSal ejecuta la 2ª fase de la estrategia, generando el intento de marcación.&lt;br /&gt;
|-&lt;br /&gt;
|Intento||20||El control pasa a myAcdSuperv, que a su vez genera la llamada en Asterisk. Cuando termina, se pasa a Planificable o Finalizado.&lt;br /&gt;
|-&lt;br /&gt;
|Finalizado||100||Las gestiones con este contacto han terminado.&lt;br /&gt;
|-&lt;br /&gt;
|Abortado||110||&lt;br /&gt;
|-&lt;br /&gt;
|Obsoleto||200||Se ha agotado el tiempo para contactar sin agotar todos los intentos. No se le vuelve a llamar nunca.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Carga de contactos====&lt;br /&gt;
&lt;br /&gt;
===== Descripción =====&lt;br /&gt;
&lt;br /&gt;
A continuación se explica la configuración y funcionamiento de la utilidad encargada de asignar contactos a campañas.&lt;br /&gt;
&lt;br /&gt;
===== Configuración =====&lt;br /&gt;
&lt;br /&gt;
El archivo de configuración recibe el nombre de '''cargaContactos.pconf.''' Este archivo reside en '''/etc/MDtel.''' El formato se describe en la tabla siguiente. Hay que tener en cuenta que las columnas empiezan a numerarse en 0.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Parámetro !! Valor !! Obligatorio !! Defecto&lt;br /&gt;
|- &lt;br /&gt;
| db|| Nombre de la base de datos|| SI || nimitz&lt;br /&gt;
|- &lt;br /&gt;
| dbHost|| Host MySQL || SI || localhost&lt;br /&gt;
|- &lt;br /&gt;
| dbPort|| Puerto MySQL || NO || 3306&lt;br /&gt;
|- &lt;br /&gt;
| dbUsuario || Usuario de acceso a la base de datos|| SI ||&lt;br /&gt;
|- &lt;br /&gt;
| dbClave || Clave del usuario || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| rutaContactos || Ruta hasta el archivo de contactos || NO || /var/spool/MDtel/contactos&lt;br /&gt;
|- &lt;br /&gt;
| obsoletos || Si vale 1, marcar como obsoletos los contactos anteriores || NO || 0&lt;br /&gt;
|- &lt;br /&gt;
| diasCaducidad || Número de dias a partir de los cuales caducarán los contactos || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| idCampanna || Número de columna que contiene el ID de la campaña || SI||&lt;br /&gt;
|- &lt;br /&gt;
| idLista || Numero de columna que contiene el ID de la lista || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| prioridad || Número de columna que contiene la prioridad || NO || Nota: El valor es de 0 a 99. A mayor número menor prioridad (se le llamará más tarde)&lt;br /&gt;
|- &lt;br /&gt;
| tipoTarea|| Número de columna que contiene el tipo de tarea || NO || Nota: los posibles valores de la columna son : &amp;lt;br /&amp;gt; *A: Alta &amp;lt;br /&amp;gt; *M: Modificación &amp;lt;br /&amp;gt; *B: Baja&amp;lt;br /&amp;gt; Por defecto el valor es A&lt;br /&gt;
|- &lt;br /&gt;
| codCli || Número de columna del CSV que contiene el código de cliente || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| nombreCon || Número de columna del CSV que contiene el nombre || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| apellido1 || Número de columna del CSV que contiene el primer apellido|| NO ||&lt;br /&gt;
|- &lt;br /&gt;
| apellido2 || Número de columna del CSV que contiene el segundo apellido || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| empresa || Número de columna del CSV que contiene la empresa || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| direccion1 || Número de columna del CSV que contiene la dirección || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| direccion2 || Número de columna del CSV que contiene la dirección 2 || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| codPostal || Número de columna del CSV que contiene el código postal || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| localidad || Número de columna del CSV que contiene la localidad || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| provin || Número de columna del CSV que contiene la provincia || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| email || Número de columna del CSV que contiene el email || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_1 || Número de columna del CSV que contiene el primer número fijo del contacto || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_2 || Número de columna del CSV que contiene el segundo número fijo del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_3 || Número de columna del CSV que contiene el tercer número fijo del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_4 || Número de columna del CSV que contiene el cuarto número fijo del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_1 || Número de columna del CSV que contiene el primer número móvil del contacto || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_2 || Número de columna del CSV que contiene el segundo número móvil del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_3 || Número de columna del CSV que contiene el tercer número móvil del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_4 || Número de columna del CSV que contiene el CUARTO número móvil del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| edad || Número de columna del CSV que contiene la edad || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc1|| Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc2 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc3 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc4 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc5 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc6 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc7 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc8 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc1 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc2 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc3 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc4 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc5 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc6 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc7 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc8 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Funcionamiento =====&lt;br /&gt;
&lt;br /&gt;
Para ejecutar la utilidad se debe teclear la siguiente orden en la línea de comandos:&lt;br /&gt;
&lt;br /&gt;
'''cmd# cargaContactos.pl /&amp;lt;ruta hasta el conf&amp;gt;/cargaContactos.pconf &amp;lt;archivo CSV&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
El archivo con los contactos deberá ser un CSV con los campos separados por ';'. La utilidad parsea el archivo conforme a la distribución indicada en la configuración y crea las correspondientes entradas en las tablas '''ACD_CONTACTOS''' y '''ACD_CONTACTOS_CAMPANNAS.'''&lt;br /&gt;
&lt;br /&gt;
La utilidad crea un log en '''/var/log/cargaContactos.log''' en el que vuelca toda la operativa.&lt;br /&gt;
Por pantalla se va mostrando un lista con el ID asignado al contacto y el ID de campaña al que se le ha asignado.&lt;br /&gt;
&lt;br /&gt;
Un ejemplo de fichero de carga de contactos sería el siguiente: &lt;br /&gt;
&lt;br /&gt;
 #&lt;br /&gt;
 # Configuracion de recordGwd.pl&lt;br /&gt;
 #&lt;br /&gt;
 # Conexion de base de datos&lt;br /&gt;
 $db='nimitz';&lt;br /&gt;
 $dbHost = 'localhost';&lt;br /&gt;
 $dbPort = '3306';&lt;br /&gt;
 $dbUsuario = 'nimitz';&lt;br /&gt;
 $dbClave = 'LA QUE SEA';&lt;br /&gt;
 $diasCaducidad='300';&lt;br /&gt;
 $rutaGrab = '/var/spool/MDtel/contactos';&lt;br /&gt;
 $idCampanna = '31';&lt;br /&gt;
 $idLista = '32';&lt;br /&gt;
 $obsoletos = 0;&lt;br /&gt;
 $codCli = '1';&lt;br /&gt;
 $nombreCon = '2';&lt;br /&gt;
 $apellido1 = '3';&lt;br /&gt;
 $apellido2 = '4';&lt;br /&gt;
 $empresa = '5';&lt;br /&gt;
 $direccion1 = '6';&lt;br /&gt;
 $direccion2 = '7';&lt;br /&gt;
 $codPostal = '8';&lt;br /&gt;
 $localidad = '9';&lt;br /&gt;
 $provin = '10';&lt;br /&gt;
 $email = '11';&lt;br /&gt;
 $valFijo_1 = '12';&lt;br /&gt;
 $valFijo_2 = '13';&lt;br /&gt;
 $valFijo_3 = '14';&lt;br /&gt;
 $valFijo_4 = '15';&lt;br /&gt;
 $valMovil_1 = '16';&lt;br /&gt;
 $valMovil_2 = '17';&lt;br /&gt;
 $valMovil_3 = '18';&lt;br /&gt;
 $valMovil_4 = '19';&lt;br /&gt;
 $edad = '20';&lt;br /&gt;
 $nOpc1 = '21';&lt;br /&gt;
 $nOpc2 = '22';&lt;br /&gt;
 $nOpc3 = '23';&lt;br /&gt;
 $nOpc4 = '24';&lt;br /&gt;
 $cOpc1 = '25';&lt;br /&gt;
 $cOpc2 = '26';&lt;br /&gt;
 $cOpc3 = '27';&lt;br /&gt;
 $cOpc4 = '28';&lt;br /&gt;
 $prioridad = '29';&lt;br /&gt;
 $tipoTarea = '30';&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ENLACES QUE HABIA&lt;br /&gt;
[[Medio:CargaContactos300.pdf|Instrucciones para carga automatizada de contactos]]&lt;br /&gt;
&lt;br /&gt;
[[Medio:EjemplocargaContactos.pconf.pdf|Ejemplo de fichero de carga de contactos]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Movilidad ===&lt;br /&gt;
La movilidad es una función integral de las comunicaciones en la empresa. Cualquier empleado (usuario) es móvil en cierto grado, sea dentro o fuera de la organización.La solución óptima debe proporcionar continuidad de servicios y acceso a nuestros servicios, sin importar donde se esté.&lt;br /&gt;
&lt;br /&gt;
==== Ofrecer movilidad a un usuario ====&lt;br /&gt;
&amp;lt;!--parte daniel--&amp;gt;&lt;br /&gt;
Para permitir la movilidad a un usuario, puede ser en el momento de crear o editar un usuario en el apartado ''Administración de usuario'' en ''General'' del '''portal de administración ''VIVA''it'''.  Asignándole un '''''numero login''''' (numero personal corporativo para el usuario) y una '''''clave login''''' ( se debe asignar una clave por defecto, pero puede cambiarla en el [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_3.0#Portal_de_usuario |portal de usuario]]). &amp;lt;br/&amp;gt;Para más información[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Pesta.C3.B1a_Centralita | ver sección Portal de administración - General - Usuarios - administración de usuarios - Pestaña Centralita]].&lt;br /&gt;
&lt;br /&gt;
Además, de crear un permiso de la '''aplicación ''Centralita''''' a cualquier nivel, desde el apartado ''Permisos de usuarios'' en ''General'' del '''portal de administración ''VIVA''it'''.&amp;lt;br/&amp;gt;Para más información[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Asignaci.C3.B3n_de_Permisos_de_Usuario_por_Administrador | ver sección  Portal de administración - General - Usuarios - Permisos a usuarios]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''La movilidad permite''' disponer de las extensiones telefónicas empresariales en cualquier lugar. Por&lt;br /&gt;
ejemplo, con un ordenador portátil o smartphone en una ubicación remota con conexión a Internet,&lt;br /&gt;
podríamos tener registrada nuestra extensión remotamente, y así las llamadas hacia/desde nuestra&lt;br /&gt;
oficina serían enrutadas por Internet hasta el equipo en cuestión sin coste alguno.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--parte daniel--&amp;gt;&lt;br /&gt;
Todo terminal tiene asociado una extensión y deberá permitir la movilidad de usuarios. La extensión se configura cambiando a '''''SI''''' el campo '''''Hay Movilidad''''' desde el apartado ''Extensiones'' de ''Dispositivos'' en ''VIVAit Call'' del '''portal de administración ''VIVA''it'''. Para más información [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Extensiones | ver sección Portal de administración - VIVAit Call - Dispositivos - Extensiones]]&lt;br /&gt;
&lt;br /&gt;
==== ¿Cómo funcionan las extensiones? ====&lt;br /&gt;
&lt;br /&gt;
Primeramente el usuario debe tener los ejes apropiados en la tabla '''COM_USUARIOS_APLICACION''' (aplicación centralita).&lt;br /&gt;
&lt;br /&gt;
La extensión debe de tener ''un teléfono'' y por tanto ''un modelo de teléfono asociado.''&lt;br /&gt;
&lt;br /&gt;
Es tan simple como especificar '''la extensión, el usuario y la clave de este.'''&lt;br /&gt;
&lt;br /&gt;
Para corroborar el funcionamiento de esta hay ''dos métodos'':&lt;br /&gt;
&lt;br /&gt;
'''* CLI asterisk:'''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenEntraUsuarioMovil 25001 20001 1234'''&lt;br /&gt;
&lt;br /&gt;
Y como resultado obtenemos lo siguiente:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br /&amp;gt;&lt;br /&gt;
 MOVIL_TIPO_RESET='10'&amp;lt;br /&amp;gt;&lt;br /&gt;
 MOVIL_CAD_RESET='notify_yealink'&amp;lt;br /&amp;gt;&lt;br /&gt;
 MdintzRes='OK'&lt;br /&gt;
&lt;br /&gt;
El usuario con el login numérico 20001 se ha &amp;quot;movido&amp;quot; a la extensión 25001&lt;br /&gt;
&lt;br /&gt;
Ahora ''nos quitamos de esa extensión mediante el siguiente comando:''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenSaleUsuarioMovil 25001'''&lt;br /&gt;
&lt;br /&gt;
Resultado del comando:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MOVIL_TIPO_RESET='10'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MOVIL_CAD_RESET='notify_yealink'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzRes='OK'&lt;br /&gt;
&lt;br /&gt;
Las pruebas anteriores han sido '''con extensiones con movilidad y con usuario con/sin&lt;br /&gt;
propietario.'''&lt;br /&gt;
&lt;br /&gt;
Ahora las realizamos '''con extensiones sin movilidad'''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenEntraUsuarioMovil 25002 20001 1234'''&lt;br /&gt;
&lt;br /&gt;
Obteniendo:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzRes='movil_error_datos'&lt;br /&gt;
&lt;br /&gt;
Como era lo previsible no nos deja &amp;quot;movernos&amp;quot; a esa extensión ya que no tiene movilidad.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;Si un usuario ya se ha movido a una extensión no se puede mover a otra si no es deslogandose de esta antes.&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenEntraUsuarioMovil 21000 20001 1234'''&lt;br /&gt;
&lt;br /&gt;
Con salida:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MOVIL_EXTEN='25001'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MDintzRes='movil_ya_login'&lt;br /&gt;
&lt;br /&gt;
'''* Dialplan'''&lt;br /&gt;
&lt;br /&gt;
Para llamar a la función de movilidad hay que marcar el '''9992.'''&lt;br /&gt;
&lt;br /&gt;
 Nota.- Para comprobar que se realiza todo correctamente habría que mirar las trazas de Asterisk&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Grabación ===&lt;br /&gt;
&lt;br /&gt;
La grabación en '''''VIVA'''''it Call está diseñada para ser lo mas flexible posible.&lt;br /&gt;
&lt;br /&gt;
====Configuración====&lt;br /&gt;
&lt;br /&gt;
Si deseamos grabar, debemos activar que alguno de los dispositivos/elementos que intervienen en la llamada se grabe.&lt;br /&gt;
&lt;br /&gt;
Estos dispositivos/elementos son:&lt;br /&gt;
&lt;br /&gt;
* Nodo.&lt;br /&gt;
* Usuario con Centralita.&lt;br /&gt;
* Agente.&lt;br /&gt;
* Grupo ACD corporativo y de Contact Center.&lt;br /&gt;
* Enlace exterior.&lt;br /&gt;
* Extensión.&lt;br /&gt;
* Facilidades.&lt;br /&gt;
* Grupo: grupo de salto o grupo de operadoras.&lt;br /&gt;
* Sala de conferencia.&lt;br /&gt;
* VDN corporativo y de Contact Center.&lt;br /&gt;
* Pre-rutas.&lt;br /&gt;
&lt;br /&gt;
Por otro lado necesitaremos que la llamada pase por un nodo que sea grabador, es decir, que si la llamada esta configurada para que se grabe pero no pasa por ningún nodo grabador, la llamada no se grabará.&lt;br /&gt;
&lt;br /&gt;
Al configurar un nodo existen cuatro campos que intervienen en la grabación.&lt;br /&gt;
&lt;br /&gt;
''''Grabador''''&lt;br /&gt;
&lt;br /&gt;
Se configura en el portal en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Este campo corresponde con el campo [[BD.COM_NODOS#B_ES_GRABADOR|B_ES_GRABADOR]] de la tabla [[BD.COM_NODOS|COM_NODOS]] , este campo define si el nodo va a grabar las llamas que pasen por el que necesiten ser grabadas y no se estén grabando ya.&lt;br /&gt;
&lt;br /&gt;
Es un campo booleano los posibles valores en el portal son si/no y en la base de datos 1/0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''''Modo grabación infraestructura''''&lt;br /&gt;
&lt;br /&gt;
Su configuración se realiza en el portal, en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Este campo define como está configurada la infraestructura, este campo existe por compatibilidad con '''''VIVA'''''it suite y para poder configurar la grabación bajo demanda.&lt;br /&gt;
&lt;br /&gt;
Este campo corresponde con el campo [[BD.COM_NODOS#E_MODO_GRABACION_INFRAESTRUCTURA|E_MODO_GRABACION_INFRAESTRUCTURA]] de la tabla [[BD.COM_NODOS|COM_NODOS]], Este campo usa los valores del enumerado BD.ENUM.TModoGrabacionInfraestructura|TModoGrabacionInfraestructura]].&lt;br /&gt;
&lt;br /&gt;
La formula que se seguiría para ver si una llamada se graba en ese nodo es:&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 (NODO.E_MODO_GRABACION_INFRAESTRUCTURA) AND (NODO.B_ENRU_GRABAR OR CEN_PRE_RUTA.B_ENRU_GRABAR OR &amp;quot;OBJETO&amp;quot;.B_ENRU_GRABAR)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Que sería que si la infraestructura esta en NoGraba no se graba nada de lo que se rute en ese nodo y en cualquiera de los 2 otros caso (GrabaTodo o GrabaPorPeticion) se grabaría dependiendo de la configuración del Nodo, la ruta o el objeto en cuestión (preruta, grupo ACD, extension,...).&lt;br /&gt;
&lt;br /&gt;
''''Grabar enrutamiento''''&lt;br /&gt;
&lt;br /&gt;
Se configura en el portal en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Este campo define si van a grabar las llamadas que se enruten en este nodo.&lt;br /&gt;
&lt;br /&gt;
Campo [[BD.COM_NODOS#E_ENRU_GRABAR|E_ENRU_GRABAR]] de la tabla [[BD.COM_NODOS|COM_NODOS]] que usa los valores del enumerado [[BD.ENUM.TTipoEnruGrabar|TTipoEnruGrabar]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''''RecordCentral''''&lt;br /&gt;
&lt;br /&gt;
Se configura en el portal en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Define que instancia del recordCentral es la encargada de tratar las grabaciones de este nodo.&lt;br /&gt;
&lt;br /&gt;
Para aumentar el rendimiento a la hora de traerse las grabaciones, se pueden definir varias instancias de proceso recordCentral, este campo define cual de estas instancias se encargara de este nodo.&lt;br /&gt;
&lt;br /&gt;
====Vivait Tracker====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL LA ÚNICA REFERENCIA A VIVAIT TRACKER EN LA DOCUMENTACIÓN &amp;quot;Vivait supervisor&amp;quot; QUE TENGO DICE LO SIGUIENTE. &amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Desde '''''VIVA'''''it Supervisor,  que es la aplicación dirigida a Supervisores, ofrece la posibilidad de supervisar y gestionar grupos ACD, agentes, asignaciones, prioridades,etc. Se puede obtener acceso directo a las aplicaciones de grabación ('''''VIVA'''''it tracker) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL FIN EXPLICACIÓN. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL De la documentacion creada por ivan. &amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Esquematico actual del proyecto tracker &lt;br /&gt;
[[Archivo:Esquematico_tracker_1.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1º El tracker web llama al web service Remote login para iniciar sesión y determinar si tiene permisos para la escucha y descarga de grabaciones.&lt;br /&gt;
&lt;br /&gt;
2º Si la ubicación de la grabación es local, mira la ruta de esta y se procede a la escucha o descarga de esta.&lt;br /&gt;
&lt;br /&gt;
3º Si la ubicación de la grabación es remota, entra en escena el proxy. Es el que realiza la petición.&lt;br /&gt;
&lt;br /&gt;
4º Si utilizamos el tracker windows, este, como el tracker web, llama primero al web service remote login para la autenticación y tema de Permisos.&lt;br /&gt;
&lt;br /&gt;
5º Para descargar o escuchar una grabación desde el tracker windows, se llama al web service servidor de grabaciones pasándole simplemente el ID de segmento.mp3. Este web service, con el ID de segmento, se encarga de determinar la ubicación de la grabación.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL De la documentación creada por ivan. &amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Esquematico actual del proyecto tracker &lt;br /&gt;
[[Archivo:Esquematico_tracker_2_https.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1º El tracker web llama al web service Remote login para iniciar sesión (comunicación https) y determinar si tiene permisos para la escucha y descarga de grabaciones. Se elimina el proxy&lt;br /&gt;
&lt;br /&gt;
2º Si la ubicación de la grabación es local, mira la ruta de esta y se procede a la escucha o descarga de esta.&lt;br /&gt;
&lt;br /&gt;
3º Si la ubicación de la grabación es remota, se realiza una petición al host remoto. El tipo de petición vendrá fijada por base de datos (http, https, ftp,ftps)&lt;br /&gt;
&lt;br /&gt;
4º Si utilizamos el tracker windows, este, como el tracker web, llama primero al web service remote login para la autenticación y tema de permisos (comunicación https extremo a extremo).&lt;br /&gt;
&lt;br /&gt;
5º Para descargar o escuchar una grabación desde el tracker windows, se llama al web service servidor de grabaciones pasándole simplemente el ID de segmento.mp3. Este web service, con el ID de segmento, se encarga de determinar la ubicación de la grabación.&lt;br /&gt;
&lt;br /&gt;
[[#Grabación_(Vivait_Tracker)| Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operación_plataforma_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
=== Enrutamiento ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Enrutamiento.png|885px |center]]&lt;br /&gt;
&lt;br /&gt;
==== Funcionamiento ====&lt;br /&gt;
El proceso de enrutamiento, como vemos en el esquemático, se compone de dos fases:&lt;br /&gt;
&lt;br /&gt;
# Preenrutameinto, que se encarga de tratar todas las llamadas&lt;br /&gt;
# Enrutamiento externo, que tiene módulos dedicados al enrutamiento hacia:&lt;br /&gt;
:*Enlaces externos. &lt;br /&gt;
:*Extensiones. &lt;br /&gt;
:*Usuarios de telefonía corporativa. &lt;br /&gt;
:*Facilidades. &lt;br /&gt;
:*Salas de conferencia. &lt;br /&gt;
:*Agentes de grupos ACD. &lt;br /&gt;
:*Grupos ACD. &lt;br /&gt;
:*Vdn. &lt;br /&gt;
:*Buzones para dejar mensaje. &lt;br /&gt;
:*Buzones para su gestión.&lt;br /&gt;
&lt;br /&gt;
Se asume que existen rutas directas entre todos los nodos de la red.&lt;br /&gt;
&lt;br /&gt;
Se asume que están directamente enrutadas todas las direcciones IP involucradas, tanto nodos, como terminales.&lt;br /&gt;
&lt;br /&gt;
Se asume que todas las facilidades están disponibles en todos los nodos, aunque es posible que la implementación sea diferente entre ellos.&lt;br /&gt;
&lt;br /&gt;
Los datos de entrada básicos al proceso de enrutamiento (pdEntr) son:&lt;br /&gt;
* Dispositivo&lt;br /&gt;
* Cola&lt;br /&gt;
* Origen&lt;br /&gt;
* Nodo entrada&lt;br /&gt;
* UCID&lt;br /&gt;
* CALLER_ID_NAME&lt;br /&gt;
* CALLER_ID_NUM&lt;br /&gt;
* DNIS&lt;br /&gt;
* Desvío por dialplan&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A partir de los datos de entrada básicos anteriores se pueden deducir los siguientes valores:&lt;br /&gt;
* Sede del dispositivo de entrada&lt;br /&gt;
* Sede del nodo de entrada&lt;br /&gt;
* Ancho de banda disponible en la sede del dispositivo&lt;br /&gt;
* Ancho de banda disponible en la sede del nodo&lt;br /&gt;
* Categoría entrante&lt;br /&gt;
* Valor del eje1 asignado a la llamadas&lt;br /&gt;
* CALLER_ID_NUM_EXTERNO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los datos de salida globales del proceso de enrutamiento (pdSale) son:&lt;br /&gt;
* Categoría saliente&lt;br /&gt;
* Código de cliente (opcional)&lt;br /&gt;
* Tipo de destino:	&lt;br /&gt;
:* No existe&lt;br /&gt;
:* Ruta externa&lt;br /&gt;
:* Extensión&lt;br /&gt;
:* Usuario de telefonía corporativa&lt;br /&gt;
:* Facilidad&lt;br /&gt;
:* Salas de conferencia&lt;br /&gt;
:* Agentes de grupos ACD&lt;br /&gt;
:* Grupos ACD&lt;br /&gt;
:* VDN&lt;br /&gt;
:* Buzón para dejar mensaje. &lt;br /&gt;
:* Buzón para dejar mensaje por ocupado. &lt;br /&gt;
:* Buzón para dejar mensaje por no contestación. &lt;br /&gt;
:* Buzón para su gestión.&lt;br /&gt;
* Destinatario (cuando se trata de un usuario o de un agente)&lt;br /&gt;
* Valor del eje1 asignado a la llamada&lt;br /&gt;
* Buzón de las extensiones y usuarios que los tengan asignados&lt;br /&gt;
* Si el buzón está en nodo distinto al de entrada&lt;br /&gt;
* DESVIO_INCONDICIONAL (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable) &lt;br /&gt;
* DESVIO_NO_CONTESTA (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable) &lt;br /&gt;
* DESVIO_OCUPADO (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable) &lt;br /&gt;
* DESVIO_FUERA_SERV (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los datos de salida para cada una de las posibles rutas en orden son (nn va de 01 maxRutas [nn son dos dígitos decimales]):&lt;br /&gt;
* CONTADOR_ABDE_nn (contador para control de ancho de banda en sede de dispositivo de entrada).  &lt;br /&gt;
* CONTADOR_ABNE_nn (contador para control de ancho de banda en sede de nodo de entrada).  &lt;br /&gt;
* CONTADOR_ABDS_nn (contador para control de ancho de banda en sede de dispositivo de salida).  &lt;br /&gt;
* CONTADOR_ABNS_nn (contador para control de ancho de banda en sede de nodo de salida).  &lt;br /&gt;
* CALLER_NAME_SAL_nn , puede salir de una extensión, un usuario o de un agente. &lt;br /&gt;
* CALLER_NUM_SAL_nn, puede salir de una extensión, un usuario o de un agente.  &lt;br /&gt;
* DESTINO_SAL_nn , en general, el valor C_NOMBRE o destino de salida.  &lt;br /&gt;
* RUTA_NODO_nn , Cadena de marcación para ir la nodo que soporta DESTINO_SAL_nn, si es distinto del nodo de entrada.  &lt;br /&gt;
* RUTA_SAL_nn &lt;br /&gt;
:* Extensión: cadena marcación. &lt;br /&gt;
:* Facilidad: E_CODIGO_FACILIDAD obtenido de la tabla CEN_FACILIDADES. &lt;br /&gt;
:* Usuario: cadena marcación de la extensión asignada al usuario en movilidad o en propiedad. &lt;br /&gt;
:* Agente: cadena marcación de la extensión a la que está conectado el agente. &lt;br /&gt;
:* Ruta externa: contexto que gestiona la llamada saliente.&lt;br /&gt;
&lt;br /&gt;
=====Fase preenrutamiento =====&lt;br /&gt;
&lt;br /&gt;
La fase de preenrutamiento (basada en la tabla CEN_PRE_RUTA) se usa en todas las llamadas entrantes, tanto internas, como externas. Permite desarrollar un “prerouting” estándar para ACD y para telefonía corporativa.&lt;br /&gt;
&lt;br /&gt;
Los datos de entrada al proceso de enrutamiento son iguales a los del proceso global de enrutamiento, excepto en que este proceso no usa el nodo de entrada ya que es independiente de éste.&lt;br /&gt;
&lt;br /&gt;
Los datos de salida de la fase de preenrutamiento:&lt;br /&gt;
* D_CATEGORIA_SAL &lt;br /&gt;
* COD_CLIENTE (opcional) &lt;br /&gt;
* TIPO_DESTINO_SAL&lt;br /&gt;
:* No existe.   &lt;br /&gt;
:* Volver a preenrutar.   &lt;br /&gt;
:* Ruta externa.   &lt;br /&gt;
:* Extensión.   &lt;br /&gt;
:* Usuario de telefonía corporativa.   &lt;br /&gt;
:* Facilidad.   &lt;br /&gt;
:* Sala de conferencia.   &lt;br /&gt;
:* Agente de grupos ACD.   &lt;br /&gt;
:* Grupos ACD.   &lt;br /&gt;
:* VDN.   &lt;br /&gt;
:* Buzón para dejar mensaje.   &lt;br /&gt;
:* Buzón para dejar mensaje por ocupado.   &lt;br /&gt;
:* Buzón para dejar mensaje por no contestación.   &lt;br /&gt;
:* Buzón para su gestión. &lt;br /&gt;
* COD_CLIENTE &lt;br /&gt;
* Valor del eje1 asignado a la llamada &lt;br /&gt;
* CALLER_NAME &lt;br /&gt;
* CALLER_NUM &lt;br /&gt;
* DESTINO&lt;br /&gt;
&lt;br /&gt;
El proceso de preenrutamiento consiste en seleccionar un único registro de la tabla CEN_PRE_RUTA y, con sus valores y con los valores de entrada al proceso, generar los datos de salida.&lt;br /&gt;
&lt;br /&gt;
Un posible tipo de salida es &amp;quot;Volver a preenrutar&amp;quot;. Esto permite realimentar el proceso un máximo de &amp;quot;max_pre_ruta_regs&amp;quot; veces (en archivo .conf) para simplificar configuración. Sólo tiene sentido realimentar si se ha hecho alguna modificación en los datos de selección de registro, ya que en caso contrario se produciría un bucle que el proceso de preenrutamiento es capaz de detectar y evitar.&lt;br /&gt;
&lt;br /&gt;
Para elegir el registro de CEN_PRE_RUTA, se tienen en cuenta los datos de entrada de la llamada, de modo que se cumpla con todos los puntos siguientes: &lt;br /&gt;
* ID_CATEGORIA_ENT igual a la del dispositivo de entrada.  &lt;br /&gt;
* CALLER_NUM de entrada  &lt;br /&gt;
:* Debe comenzar por la cadena C_ORIGEN_ENT_PREF o C_ORIGEN_ENT_PREF=NULL, con menos prioridad. Es conveniente rellenar este dato del modo más restrictivo que sea posible, independientemente de C_ORIGEN_ENT_EXPR. Ello permite disminuir el uso innecesario de recursos de evaluación de expresiones regulares.    &lt;br /&gt;
:* Debe de tener un número de dígitos igual o superior a N_ORIGEN_ENT_MIN_DIGITOS, si este valor no es NULL o cero.    &lt;br /&gt;
:* Debe de tener un número de dígitos igual o inferior a N_ORIGEN_ENT_MAX_DIGITOS, si este valor no es NULL o cero.    &lt;br /&gt;
:* Debe cumplir la expresión regular C_ORIGEN_ENT_EXPR, si ésta no es NULL.  &lt;br /&gt;
* DNIS empiece con C_DESTINO_ENT_PREF o C_DESTINO_ENT_PREF=NULL. Es conveniente rellenar este dato del modo más restrictivo que sea posible, independientemente de C_DESTINO_ENT_EXPR. Ello permite disminuir el uso innecesario de recursos de evaluación de expresiones regulares.  &lt;br /&gt;
* Si varias entradas cumplen la condición anterior, se prueba primero la que el campo C_DESTINO_ENT_PREF tenga una longitud mayor y, de entre éstas, la que C_ORIGEN_ENT_PREF tenga una longitud mayor.  &lt;br /&gt;
* DNIS tenga un número de dígitos igual o superior a N_DESTINO_ENT_MIN_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* DNIS tenga un número de dígitos igual o inferior a N_ORIGEN_ENT_MIN_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* DNIS cumpla la expresión regular C_DESTINO_ENT_EXPR, si ésta no es NULL. &lt;br /&gt;
&lt;br /&gt;
Si no se encuentra ninguna entrada adecuada, quiere decir que es una llamada prohibida y se devuelve el tipo de destino &amp;quot;No existe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Puede conseguirse un destino &amp;quot;por defecto&amp;quot; diferente, creando una entrada que encaje siempre para cada categoría: C_ORIGEN_ENT, C_ORIGEN_ENT_MIN_DIGITOS, C_ORIGEN_ENT_MAX_DIGITOS, C_ORIGEN_ENT_EXPR, C_DESTINO_ENT_PREF, N_DESTINO_ENT_MIN_DIGITOS, N_DESTINO_ENT_MAX_DIGITOS y C_DESTINO_ENT_EXPR a valor NULL.&lt;br /&gt;
&lt;br /&gt;
Una vez elegida una entrada, ésta puede transformar o sustituir el valor de ID_CATEGORIA, CALLER_NAME, CALLER_NUM, DESTINO, COD_CLIENTE y/o EJE1_MSK a la salida del proceso. &lt;br /&gt;
&lt;br /&gt;
Si ID_CATEGORIA_SAL es cero, se propaga a la salida el valor de la entrada. En caso contrario, se sustituye. &lt;br /&gt;
&lt;br /&gt;
Si C_CALLER_NAME está vacío, se mantiene el valor hubiese a la entrada. En caso contrario, se sustituye. &lt;br /&gt;
&lt;br /&gt;
C_CALLER_NUM puede contener una cadena que identifica el nuevo CALLER_NUM. Además, si la cadena comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo CALLER_NUM es igual al de entrada al proceso. &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo CALLER_NUM es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo. &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;. &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al CALLER_NUM de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo CALLER_NUM de salida. Si la expresión regular no se cumpliese, se propagará el valor de entrada al proceso. &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante que sustituye el valor a la entrada.&lt;br /&gt;
&lt;br /&gt;
Cada vez que se utilice una preruta, se incrementará el valor de N_CONTA si el valor de N_UMBRAL es mayor que cero.&lt;br /&gt;
&lt;br /&gt;
Un valor N_UMBRAL mayor que cero permite modificar el destino de salida cuando el valor de actual de N_CONTA (antes de incrementarse) supere o sea igual el valor de N_UMBRAL. Si se cumple la condición indicada, se usa como destino tras el preenrutamiento, los valores de los campos E_TIPO_DESTINO_SAL_2 y C_DESTINO_SAL_2.&lt;br /&gt;
&lt;br /&gt;
Si el valor de N_UMBRAL es menor o igual a cero o si N_CONTA es inferior a N_UMBRAL, se usa como destino tras el preenrutamiento, los valores de los campos E_TIPO_DESTINO_SAL_1 y C_DESTINO_SAL_1.&lt;br /&gt;
Con este mecanismo de N_CONTA y N_UMBRAL, se pretende facilitar el discriminar a los llamantes reincidentes, cuando sea necesario. &lt;br /&gt;
&lt;br /&gt;
Un proceso periódico externo debe encargarse de poner a cero o decrementar el valor de N_CONTA.&lt;br /&gt;
Como resultado de los procesos de filtrado y de verificación anteriores, se habrá obtenido un TIPO_DESTINO_SAL y un C_DESTINO_SAL a partir de los campos con sufijo &amp;quot;_1&amp;quot; o &amp;quot;_2&amp;quot;, con una metodología similar al caso C_CALLER_NUM.&lt;br /&gt;
&lt;br /&gt;
C_DESTINO_SAL_x puede contener cadena que permite obtener el nuevo destino. Además, si la cadena comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo destino es igual al de entrada al proceso.  &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo destino es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo.  &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;.  &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al destino de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo destino de salida. Si la expresión regular no se cumpliese, quiere decir que es una llamada prohibida y se encaminará hacia una facilidad por defecto.  &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante que sustituye el valor a la entrada. &lt;br /&gt;
Información de salida del proceso de preenrutamiento: Cuando TIPO_DESTINO_SAL_x toma los valores que se indican, el proceso global de enrutamiento sólo requiere de preenrutamiento y la información a devolver se obtiene dependiendo de TIPO_DESTINO_SAL_x: &lt;br /&gt;
* No existe: Se asume que no se conoce un destino para los datos de entrada, por lo que la llamada se encamina hacia una facilidad por defecto que gestiona su tratamiento.  &lt;br /&gt;
* Extensión: A partir de las tablas CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar la extensión en el nodo principal y en el secundario.  &lt;br /&gt;
* Facilidad: A partir de las tablas CEN_DISPOSITIVOS, CEN_FACILIDADES y CEN_NODOS.  &lt;br /&gt;
* Usuario de telefonía corporativa: A partir de las tablas CEN_USUARIOS, CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar al usuario en el nodo principal y en el secundario de la extensión que corresponde en base a movilidad, con prioridad, o en base a propiedad.  El caso de movilidad no se tiene en cuenta si el proceso de enrutamiento se realiza en &amp;quot;modo supervivencia&amp;quot;.  &lt;br /&gt;
* Sala conferencia: A partir de las tablas CEN_SALAS_CONFERENCIAS y CEN_NODOS.  &lt;br /&gt;
* Agente de ACD: A partir de las tablas ACD_USUARIOS, DAT_TR_ACD_EXTENSIONES, CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar al agente en el nodo principal y en el secundario.  &lt;br /&gt;
* VDN: A partir de las tablas ACD_VDN y CEN_NODOS, se devolverán los valores que permiten alcanzar al VDN en su nodo.  &lt;br /&gt;
* Grupo ACD: A partir de las tablas ACD_COLAS y CEN_NODOS, se devolverán los valores que permiten alcanzar al grupo ACD en su nodo. &lt;br /&gt;
&lt;br /&gt;
El campo B_GENERAR_SEGMENTO de la tabla CEN_PRE_RUTA indica al proceso de preenrutamiento que es preciso generar un segmento de tipo &amp;quot;preenrutamiento&amp;quot;. En el segmento generado, se rellena el campo C_ETIQUETA1 del nuevo segmento con el valor que contiene el campo homónimo del registro asociado en la tabla CEN_LISTA_PRE_RUTAS.&lt;br /&gt;
&lt;br /&gt;
===== Fase de enrutamiento en casos en que el destino no es externo =====&lt;br /&gt;
Datos de entrada al proceso de enrutamiento externo: iguales a los de salida del proceso de preenrutamiento (pdPreSale), uniéndose a éstos los datos globales de entrada al proceso (pdEntr). &lt;br /&gt;
&lt;br /&gt;
Datos de salida de la fase de enrutamiento: iguales que los del proceso global de enrutamiento (pdSale). &lt;br /&gt;
&lt;br /&gt;
Específicamente y sólo para los casos en que el destino es una extensión (tipo de destino extensión, usuario de telefonía corporativa o agente) es cuando son válidos los datos correspondientes al buzón asociado y los datos de los posibles desvíos previstos. &lt;br /&gt;
&lt;br /&gt;
También en este caso, se prevén dos posibles rutas, una se corresponde con el acceso a la extensión en el nodo principal de ésta y la otra en el nodo secundario. &lt;br /&gt;
&lt;br /&gt;
En el resto de tipos de destino, sólo se prevé una ruta que puede incluir o no un enlace internodal. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Fase de enrutamiento en el caso de destino externo =====&lt;br /&gt;
Datos de entrada al proceso de enrutamiento externo: iguales a los de salida del proceso de preenrutamiento (pdPreSale), uniéndose a éstos los datos globales de entrada al proceso (pdEntr). &lt;br /&gt;
Datos de salida de la fase de enrutamiento: iguales que los del proceso global de enrutamiento (pdSale). &lt;br /&gt;
&lt;br /&gt;
Se elige los primeros &amp;quot;max_ruta&amp;quot; registros (configurado en archivo .conf) en CEN_DESTINOS_EXTERNOS unido con CEN_RELACION_DESTINOS_ENLACES_EXTERNOS que, teniendo en cuenta los datos de entrada al proceso de enrutamiento, cumpla con todos los puntos siguientes: &lt;br /&gt;
* ID_CATEGORIA_ENT igual a la de salida del proceso de preenrutamiento.  &lt;br /&gt;
* C_DESTINO_SAL de proceso de preenrutamiento empiece con C_DESTINO_ENT_PREF. &lt;br /&gt;
* Si varias entradas cumplen la condicion anterior, se prueba primero la que el campo C_DESTINO_ENT_PREF tenga una longitud mayor.  &lt;br /&gt;
* C_DESTINO_SAL tenga un número de dígitos igual o superior a N_DESTINO_ENT_MIN_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* C_DESTINO_SAL tenga un número de dígitos igual o inferior a N_DESTINO_ENT_MAX_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* C_DESTINO_SAL cumpla la expresión regular C_DESTINO_ENT_EXPR, si ésta no es NULL. &lt;br /&gt;
&lt;br /&gt;
Aparte de la longitud del campo C_DESTINO_ENT_PREF, se usa N_PRIORIDAD como campo para ordenar los registros y seleccionar lo &amp;quot;max_ruta&amp;quot; primeros. &lt;br /&gt;
&lt;br /&gt;
Una vez que un registro es válido, se descartan todos los registros cuyo C_DESTINO_ENT_PREF es diferente del primero seleccionado. &lt;br /&gt;
&lt;br /&gt;
Como resultado de los procesos de filtrado y de verificación anteriores, se habrá obtenido hasta un máximo de &amp;quot;max_rutas&amp;quot; valores para posibles rutas. Las posibles propagaciones y transformaciones en los datos de cada ruta son función de los datos de cada registro seleccionado: &lt;br /&gt;
&lt;br /&gt;
CALLER_NAME_nn: Si C_CALLER_NAME está vacío, se propaga el valor de entrada. En caso contrario, se sustituye. &lt;br /&gt;
&lt;br /&gt;
CALLER_NUM_nn: Sale de C_CALLER_NUM que puede contener una cadena que identifica el nuevo CALLER_NUM_n. Además, si C_CALLER_NUM comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo CALLER_NUM_nn es igual al de entrada al proceso.  &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo CALLER_NUM_nn es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo.  &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;.  &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al CALLER_NUM de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo CALLER_NUM de salida. Si la expresión regular no se cumpliese, se propaga el valor de entrada al proceso.  &lt;br /&gt;
* &amp;quot;&amp;gt;&amp;quot; Si existe valor para CALLER_NUM_EXTERNO, se propagará éste a la salida. En caso contrario y si no está vacía la cadena que queda al eliminar el prefijo &amp;quot;&amp;gt;&amp;quot;, se susituye en la salida por el valor de la cadena sin prefijo. Si la cadena estuviese únicamente constituida por el valor &amp;quot;&amp;gt;&amp;quot;, se propaga el valor de entrada.  &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante sin ninguna modificación. &lt;br /&gt;
&lt;br /&gt;
C_DESTINO_SAL_nn: Se obtiene a partir de C_DESTINO_SAL que puede contener una cadena que identifica el nuevo destino. Además, si la cadena comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo destino es igual al de entrada al proceso. &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo destino es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo. &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;. &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al destino de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo destino de salida. Si la expresión regular no se cumpliese, se propaga el valor de entrada al proceso. &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante sin ninguna modificación. &lt;br /&gt;
&lt;br /&gt;
RUTA_NODO_nn: Sólo se usa si el nodo de salida es diferente del nodo de entrada. Contiene la cadena de marcación para ir la nodo que soporta DESTINO_SAL_nn. Sale del campo C_FORMATO_DIAL (sustituyendo variables) correspondiente al tipo de dispositivo del enlace exterior. &lt;br /&gt;
&lt;br /&gt;
RUTA_SAL_nn: Es el campo C_DATO_ASTERISK obtenido a partir del registro en la tabla CEN_ENLACE_EXTERIOR que se corresponde con ID_ENLACE_EXTERIOR de la tabla CEN_RELACION_DESTINOS_ENLACES_EXTERNOS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Control de ancho de banda ===&lt;br /&gt;
&lt;br /&gt;
Para el control de ancho de banda, primero hemos de tener en consideración que una llamada puede tener asociadas hasta cuatro sedes&lt;br /&gt;
:* Sede del terminal origen (terminal A)&lt;br /&gt;
:* Sede del nodo de registro del terminal origen (nodo A)&lt;br /&gt;
:* Sede del terminal destino (terminal B)&lt;br /&gt;
:* Sede del nodo de registro del terminal destino (nodo B)&lt;br /&gt;
&lt;br /&gt;
Además hemos de tener en cuenta que el audio de la conversación podrá ir:&lt;br /&gt;
:* De manera directa entre terminal A y terminal B&lt;br /&gt;
:* De manera indirecta, a través de los nodos A y B&lt;br /&gt;
&lt;br /&gt;
[[Archivo:ancho de banda.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Cuando se va a cursar una llamada de terminal A a terminal B, el proceso de enrutamiento del nodo A devuelve 4 variables de canal al dialplan:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! Variable!!Campos &lt;br /&gt;
|- &lt;br /&gt;
|R_ABDE_xx||R = Variable de rutas --- AB = ancho de banda --- D = dispositivo --- E = Entrante --- xx = de 0 a 3&lt;br /&gt;
|-&lt;br /&gt;
|R_ABNE_xx||R = Variable de rutas --- AB = ancho de banda --- N = nodo --- E = Entrante --- xx = de 0 a 3&lt;br /&gt;
|-&lt;br /&gt;
|R_ABDS_xx||R = Variable de rutas --- AB = ancho de banda --- D = dispositivo --- S = Saliente --- xx = de 0 a 3&lt;br /&gt;
|- &lt;br /&gt;
|R_ABNS_xx||R = Variable de rutas --- AB = ancho de banda --- N = nodo --- S = Saliente --- xx = de 0 a 3&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El valor de cada variable es una cadena del tipo '''AB.wwww.xxxx.y.z''' donde cada valor es:&lt;br /&gt;
:* '''wwww''' --&amp;gt; id de sede&lt;br /&gt;
:* '''xxxx''' --&amp;gt; ancho de banda total de la sede&lt;br /&gt;
:* '''y''' --&amp;gt; número de llamadas a sumar si conversación directa&lt;br /&gt;
:* '''z''' --&amp;gt; número de llamadas a sumar si conversación indirecta&lt;br /&gt;
&lt;br /&gt;
Por otro lado tenemos que tener en cuenta que el dialplan tiene control de las llamadas que cada sede puede cursar&lt;br /&gt;
&lt;br /&gt;
De esta forma, cuando existe una nueva llamada el dialplan aplica la fórmula, suma el resultado al número de llamadas en curso y lo compara con el máximo...si el resultado es mayor que le máximo la llamada no se cursará por congestión&lt;br /&gt;
&lt;br /&gt;
Configuraremos el ancho de banda por sede en el portal de administración y el consumo que hace cada llamada en la variable '''AB_CONSUMO_LLAMADA''' del fichero '''ext_MDtel_particular.conf''' de cada nodo de conmutación; el valor por defecto es 32&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Puesto de trabajo ==&lt;br /&gt;
El puesto de trabajo del agente en la plataforma '''''VIVA'''''it  (para el producto '''''VIVA'''''it Suite) estará compuesto por:&lt;br /&gt;
* PC (típicamente windows) en el que reside la aplicación '''''VIVA'''''it Desk&lt;br /&gt;
* Terminal telefónico con extensión física asociada.&lt;br /&gt;
&lt;br /&gt;
Para más información [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Puestos | ver sección Portal de administración-VIVAit Suite ACD+ - Puestos]].&lt;br /&gt;
&lt;br /&gt;
=== Relación PC/teléfono en puesto de trabajo ===&lt;br /&gt;
&lt;br /&gt;
Existirá una relación única entre nombre PC y extensión física asociada, si bien los agentes se identificarán por su login que les acompaña al puesto de trabajo en el que se loguen&lt;br /&gt;
Existe un procedimiento documentado para la operativa de cambio de puesto de trabajo, en caso de ser necesario el cambio de PC o de teléfono de un puesto de trabajo.&lt;br /&gt;
==== Procedimiento para un cambio de puesto de trabajo ====&lt;br /&gt;
Se basa en una asignación de PC a teléfono relaccionando la extensión telefónica del terminal físico con el nombre del puesto de trabajo. La configuración de dicha asociación se realiza en el portal de administración de la plataforma. &lt;br /&gt;
&lt;br /&gt;
Cualquier cambio que se realice en terminal telefónico o PC de agente ha de mantener la asociación en el portal a efectos de permitir el funcionamiento del sistema.&lt;br /&gt;
&lt;br /&gt;
A continuación se reflejan los cambios más habituales:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cambio !! Procedimiento !! Punto de acción&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| Cambio de ubicación de un PC || Opción 1.- Renombrar el PC para que conserve el nombre que tenía el anterior en esa ubicación || PC de agente&lt;br /&gt;
|-&lt;br /&gt;
|  Opción 2.- Rehacer la asignación extensión/puesto || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot;| Instalación de PC nuevo en puesto existente || Opción 1.- Renombrar el PC para que conserve el nombre que tenía el anterior en esa ubicación || PC de agente&lt;br /&gt;
|-&lt;br /&gt;
| Opción 2.- Rehacer la asignación extensión/puesto || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| Cambio de nombre en un PC || Rehacer asignación extensión/puesto || Rehacer asignación extensión/puesto&lt;br /&gt;
|-&lt;br /&gt;
|Cambio de ubicación de un teléfono  || Rehacer la asignación extensión/puesto&lt;br /&gt;
 || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| Instalación de un teléfono nuevo en puesto existente || Rehacer la asignación extensión/puesto || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| Instalación de un nuevo puesto de agente|| Hacer asignación extensión/puesto || Portal de administración&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:relacion_puesto_agente.png|center|500px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Estructura de aplicaciones en puesto de trabajo ===&lt;br /&gt;
Las aplicaciones del puesto de trabajo pueden estar ubicadas en cualquier carpeta del sistema. Es importante tener en cuenta que los procesos de actualización, logs… escriben en dichas carpetas, por lo que el usuario de windows deberá tener permisos de lectura/escritura y borrado sobre dichas carpetas&lt;br /&gt;
La instalación del puesto de trabajo es muy liviana para el sistema; las aplicaciones ocupan poco espacio y no se modifican ficheros del sistema operativo (registry o similares)&lt;br /&gt;
Los ficheros importantes son&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Fichero !! Descrición&lt;br /&gt;
|-&lt;br /&gt;
| Vivait-desk.exe || Contiene la aplicación '''''VIVA'''''it Desk de agente&lt;br /&gt;
|-&lt;br /&gt;
| vivait_desk_dll.dll||Este fichero contiene controles sobre los formularios (controles de&lt;br /&gt;
texto, algunas reglas de obligatoriedad…)&lt;br /&gt;
|-&lt;br /&gt;
| nimitz.ini || Configuración del puesto de agente&lt;br /&gt;
|-&lt;br /&gt;
| lanzador.exe || Aplicación de actualización de versiones&lt;br /&gt;
|-&lt;br /&gt;
| lanzador.ini || Configuración del actualizador de aplicaciones&lt;br /&gt;
|-&lt;br /&gt;
| Carpeta forms || En esta carpeta están ubicados los formularios que se abren ante llamada entrante o saliente&lt;br /&gt;
|-&lt;br /&gt;
| Carpeta imágenes || Contiene las imágenes izquierda y derecha de la barra de '''''VIVA'''''it Desk&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Secciones de utilidad en nimitz.ini ===&lt;br /&gt;
&lt;br /&gt;
==== Configuración del puesto de agente ====&lt;br /&gt;
&lt;br /&gt;
El fichero nimitz.ini contiene la configuración del puesto de agente; sus principales parámetros son:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| |''' Fichero'''&lt;br /&gt;
|| '''Descripción'''&lt;br /&gt;
|-&lt;br /&gt;
|Sección [bd1]&lt;br /&gt;
||host=&amp;quot;ip_BBDD_tiempo_real&amp;quot;&lt;br /&gt;
puerto=&amp;quot;Nº puerto&amp;quot;&lt;br /&gt;
basedatos=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
usuario=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
clave=&amp;quot;UIk5jMY9PVX6ogg=&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Contiene información para la conexión a BBDD de tiempo real, en la que '''''VIVA'''''it Desk fundamentalmente inserta información&lt;br /&gt;
|-&lt;br /&gt;
|Sección [bd2]&lt;br /&gt;
||host=&amp;quot; ip_BBDD_replica &amp;quot;&lt;br /&gt;
puerto=&amp;quot;Nº puerto&amp;quot;&lt;br /&gt;
basedatos=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
usuario=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
clave=&amp;quot;UIk5jMY9PVX6ogg=&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Contiene información para la conexión a BBDD de réplica, en la que '''''VIVA'''''it Desk solo leerá información&lt;br /&gt;
|-&lt;br /&gt;
|Sección [telefono]&lt;br /&gt;
||pruebas=1 (Valores válidos 0 ó 1)&lt;br /&gt;
Activación de funcionalidad &amp;quot;servicio técnico&amp;quot; en '''''VIVA'''''it Desk.&lt;br /&gt;
&lt;br /&gt;
puesto=&amp;quot;Nombre puesto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Sección [trazas]&lt;br /&gt;
|| nivel=3&lt;br /&gt;
&lt;br /&gt;
archivo=1&lt;br /&gt;
&lt;br /&gt;
consola=0&lt;br /&gt;
&lt;br /&gt;
sobreescribir=1&lt;br /&gt;
&lt;br /&gt;
Activación de generación de ficheros de trazas &amp;quot;viva-desk.log&amp;quot; en carpeta de aplicaciones &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Parámetros en invocación a '''''VIVA'''''it Desk ===&lt;br /&gt;
&lt;br /&gt;
La aplicación '''''VIVA'''''it Desk puede ser invocada con una serie de parámetros que condicionan su funcionamiento; los parámetros son:&lt;br /&gt;
* Primer parámetro: Nombre del archivo .ini; usado como alternativa al fichero por defecto &amp;quot;nimitz.ini&amp;quot;&lt;br /&gt;
* Segundo parámetro: Nombre de puesto; usado como alternativa al nombre de puesto del ordenador&lt;br /&gt;
* Tercer parámetro: Nombre de login; para forzar un usuario; es de utilidad si el sistema está configurado como &amp;quot;confiar en sistema operativo&amp;quot;, en cuyo caso no permite seleccionar un login de agente para acceder a la aplicación&lt;br /&gt;
&lt;br /&gt;
=== Instalación y actualización de aplicaciones de puestos de trabajo ===&lt;br /&gt;
La instalación y actualización de las aplicaciones en el puesto de trabajo pasan por disponer de los ficheros “lanzador.exe” y “lanzador.ini” (debidamente configurado) dentro de la carpeta en la que se desee instalar.&lt;br /&gt;
Lanzando la aplicación “lanzador.exe” se instalará o actualizará el sistema. &lt;br /&gt;
&lt;br /&gt;
El fichero “lanzador.ini” tiene el siguiente aspecto:&lt;br /&gt;
 URL=&amp;quot;http://IP_Servidor:8180/WSActualizaXML/actualizar.xml&amp;quot;&lt;br /&gt;
 BASE_URL_DESCARGAS=&amp;quot;http://IP_servidor:8180/XMLFILES/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Servicio técnico en '''''VIVA'''''it Desk ===&lt;br /&gt;
La activación de la funcionalidad de servicio técnico en '''''VIVA'''''it Desk nos permite realizar sincronizaciones manuales de la aplicación y activar trazas a nivel de Base de Datos o a nivel de log sobre el propio '''''VIVA'''''it Desk. Pulsando el botón derecho del ratón sobre la barra '''''VIVA'''''it Desk accederemos a las capacidades de soporte técnico&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Funcionamiento de la plataforma en modo emergencia ==&lt;br /&gt;
== Accesos Web ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Aplicación !! Enlace&lt;br /&gt;
|-&lt;br /&gt;
|Portal de administración '''''VIVA'''''it Suite || http://ip_admin:8180/Vivait-Call&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker||http://ip_tracker:8180/Vivait-Tracker&lt;br /&gt;
|-&lt;br /&gt;
|Monitor Web||http://ip_monitor:8180/MonitorWeb&lt;br /&gt;
|-&lt;br /&gt;
|Monitorización Zabbix||http://ip_zabbix:80/zabbix&lt;br /&gt;
|-&lt;br /&gt;
|Base de datos tiempo real||http://ip_bbdd_tr:80/phpmyadmin/&lt;br /&gt;
|-&lt;br /&gt;
|Base de datos réplica||http://ip_bbdd_replica:80/phpmyadmin&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Permisos de aplicaciones ===&lt;br /&gt;
Se crean a través del '''portal de administración ''VIVA''it''' . Debe conocerse como funcionan los ejes [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Ejes| ver sección Portal de administracion - General - Ejes]] y que existen cuatro aplicaciones creadas en la plataforma:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:17_2 Pestaña Genera - Usuarios - Explicacion permisos.png|center]]&lt;br /&gt;
&lt;br /&gt;
La forma como dar permisos de aplicaciones a un usuario esta explicada en la [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Asignaci.C3.B3n_de_Permisos_de_Usuario_por_Administrador | sección  Portal de administracion - General - Usuarios ]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elementos monitorizados del sistema ==&lt;br /&gt;
===Generalidades de Zabbix===&lt;br /&gt;
====Zabbix ====&lt;br /&gt;
Zabbix es una solución de código abierto que ofrece características de monitorización avanzada de forma tecnica y para el negocio, para todo tipo de servidores, aplicaciones y equipos que forman parte de una red. La versión que utilizamos en '''md'''tel es Zabbix 2.2.2.&lt;br /&gt;
&lt;br /&gt;
Zabbix  monitoriza los  recursos  de un equipo en forma remota, permite centralizar la información en un servidor que permite visualizar el monitoreo, cuenta con una interfaz de administración vía web y utiliza un mecanismo flexible de la notificación que permita que los usuarios configuren las alarmas basadas email para informar virtualmente cualquier acontecimiento. Esto permite una reacción rápida a los problemas del servidor. &lt;br /&gt;
&lt;br /&gt;
Para acceder al servidor Zabbix abrimos el navegador y ponemos la dirección de red (IP) de la maquina donde se encuentra instalado el servidor de Zabbix seguido de &amp;quot;/Zabbix.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Direccion.IP.Zabbix.Server/zabbix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Zabbix posee documentación tanto en wiki, foros y comunidades.Para ampliar la información se puede visitar:&lt;br /&gt;
[[http://www.zabbix.com Sitio oficial de Zabbix]]&lt;br /&gt;
===== Glosario Zabbix =====&lt;br /&gt;
Se trata de una lista de conceptos básicos de Zabbix, pero para ampliar la información sobre otros términos, visite el [[http://www.zabbix.com Sitio oficial de Zabbix]].&lt;br /&gt;
* '''host''' &lt;br /&gt;
:En Zabbix, un host es una entidad que define el elemento en red que se desea monitorizar/supervisar activamente sus recursos locales y aplicaciones. Este puede ser una impresa, router, switch, sensores de temperatura, un servidor, un ordenador,etc, o también una aplicación. La característica de un host es que debe poseer una dirección de red (IP).&lt;br /&gt;
&lt;br /&gt;
* '''host group'''&lt;br /&gt;
:En Zabbix, un host group (grupo host) es una agrupación lógica de los host, como una forma de organizar los dispositivos &amp;quot;Host&amp;quot; registrados en Zabbix para su monitorización. Puede contener hosts y templates.  Los grupos host se utilizan en la asignación de derechos de acceso a los hosts para diferentes grupos de usuarios.&lt;br /&gt;
&lt;br /&gt;
* '''item'''&lt;br /&gt;
:En Zabbix, un item (medida) es el parámetro que deseamos obtener del host, básicamente es una medida especifica que el servidor Zabbix recogerá de los agentes de Zabbix instalados en los host.&lt;br /&gt;
&lt;br /&gt;
* '''trigger'''&lt;br /&gt;
:En Zabbix, un trigger(disparador) es una entidad que define un umbral para detectar la existencia de un problema en un dispositivo.  Son valores recolectados por los &amp;quot;items&amp;quot;, se usa para &amp;quot;evaluar&amp;quot; los datos recibidos con condiciones definidas. Las condiciones son de tipo aritmético y lógico.&lt;br /&gt;
* '''event'''&lt;br /&gt;
:En Zabbix, un event (evento) es la aparición de un suceso en Zabbix que necesita atención. Por ejemplo, el cambio de estado a raíz de un trigger, el descubrimiento de un nuevo agente (autoregistro),etc.&lt;br /&gt;
* '''action'''&lt;br /&gt;
:En Zabbix, una action(acción) son reglas predefinidas para reaccionar a un evento disparado por los triggers, es decir, define qué hacer ante un evento. Consta de operaciones (por ejemplo, una notificacion, comandos remotos) y condiciones (cuando  la operación se lleva a cabo).&lt;br /&gt;
* '''notification'''&lt;br /&gt;
:En Zabbix, una notification (notificacion) es la entidad con que Zabbix nos puede notificar (Correo Electrónico,mensajes vía &amp;quot;SMS&amp;quot; o Jabber).&lt;br /&gt;
* '''template'''&lt;br /&gt;
:En Zabbix, un témplate (plantilla) viene predefinida en la instalación de Zabbix Server, con el fin de ser aplicada en base al tipo de sistema operativo(Linux, Mac, Window, etc) o en elementos que comparten los mismos parámetros de medición, por ejemplo la carga del procesador, uso de memoria y  uso de recursos de red. Las plantillas son un conjunto de módulos &amp;quot;ITEM, TRIGGERS y GRÁFICAS&amp;quot;, que están preconfigurados y listas para ser aplicadas a uno o varios hosts.&lt;br /&gt;
* '''application'''&lt;br /&gt;
:En Zabbix, una application (aplicación) es una agrupación lógica de los items.&lt;br /&gt;
* '''Zabbix server'''&lt;br /&gt;
:El Zabbix server (servidor de Zabbix) es el proceso central donde están definidas las configuraciones y donde se almacenan todos los datos y estadísticas recogidas de los agentes Zabbix.Consta de una base de datos, una interfaz web y el propio server. Como servidor, se encarga de recoger los datos de los agentes, calcular los triggers, enviar notificaciones, etc. &lt;br /&gt;
* '''Zabbix agent'''&lt;br /&gt;
:El zabbix agent (agente de Zabbix)  es un proceso desplegado en los host que son supervisados, que funciona como un servicio y puede funcionar de forma activa y pasiva simultáneamente.&lt;br /&gt;
&lt;br /&gt;
=====Discovery=====&lt;br /&gt;
La funcionalidad discovery(detección) lista los dispositivos que se integran en nuestra red y el tipo de servicios que proporciona. Por ejemplo, si la empresa tuviera cien colas ACDs, y veinticinco VDNS, y en cada cola como veinte medidas, seria muy laborioso registrar una por uno cada uno.  &lt;br /&gt;
Gracias a esta funcionalidad, se descubre todas las interfaces de red que se tiene, automáticamente y tanto para colas nodos o IVR. Para utilizar esta funcionalidad , se hace el uso de dos script, que se instalan en el momento de instalación de Zabbix en el directorio &amp;quot;/usr/local/sbin&amp;quot;, que son:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
'''zabbixDiscoveryQueues.pl''' : script utilizado para buscar colas ACD.&lt;br /&gt;
&lt;br /&gt;
'''zabbixDiscoveryVDN.pl''' : script utilizado para buscar VDNS.&lt;br /&gt;
|}&lt;br /&gt;
La explicación de como configurarla se encuentra en el manual oficial [[https://www.zabbix.com/documentation/2.2/manual/discovery/network_discovery/rule | Zabbix detección de redes]].&lt;br /&gt;
&lt;br /&gt;
=====Notificaciones=====&lt;br /&gt;
&lt;br /&gt;
Necesariamente, debe darse de alta al usuario y darse de alta el servidor de correo electrónico para poder ser capaz de enviar correos.&lt;br /&gt;
&lt;br /&gt;
Por otro lado, el formato del correo electrónico y las condiciones de envío de correo al usuario se configura en las acciones. Véase  el [[https://www.zabbix.com/documentation/2.2/manual/quickstart/notification  | manual oficial de Zabbix 2.2]]&lt;br /&gt;
&lt;br /&gt;
=====Usuarios=====&lt;br /&gt;
Zabbix permite la organización de usuarios en grupos para establecer los permisos adecuados de acuerdo al tipo de perfil que deseemos crear. Necesariamente un usuario debe permanecer a un grupo o varios grupos.Todos los usuarios acceden a la aplicación de Zabbix a través de la interfaz Web. &lt;br /&gt;
&lt;br /&gt;
Cada usuario Zabbix se le asigna un nombre de usuario único , una contraseña y podemos indicarle que tipo de comunicación que posee, normalmente es vía email, pero puede ser vía a otro tipo de medios. Para mas información ver el [[https://www.zabbix.com/documentation/2.2/manual/web_interface/user_profile || manual oficial ]].&lt;br /&gt;
 &lt;br /&gt;
=====Visualización=====&lt;br /&gt;
Con Zabbix es posible visualizar los datos como  gráficos, pantallas, mapas y hasta presentaciones cambiantes, entre otros. En este apartado solo nombraremos características esenciales que se tendra que completar con el [[https://www.zabbix.com/documentation/2.2/manual/config/visualisation | manual oficial]]&lt;br /&gt;
======Graphs======&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''Nota:''' Debe crearse algun item dentro del host para poder utilizar una gráfica.&lt;br /&gt;
|}&lt;br /&gt;
En Zabbix una gráfica sirve para representar gráficamente los resultados obtenidos de uno item o varios items.&lt;br /&gt;
[[File:EjemploGrafica.png|center|750px]]&lt;br /&gt;
Los valores min / avg / max que Zabbix obtiene y representa son de un registro de datos de la tabla tendencias.&lt;br /&gt;
&lt;br /&gt;
======Screens======&lt;br /&gt;
La pantalla refiere a otra característica adaptable de ZABBIX cuál permite que los usuarios creen las pantallas personalizadas dentro de ZABBIX para exhibir la información. Se considera como una colección de gráficas y no depende del host. Una pantalla puede consistir en gráficos simples, gráficos personalizados, integrar mapas, Alertas, gráficos estadísticos o texto llano tal como los 5 valores pasados de un item particular entre otros; y mostrar la información de forma dinámica.&lt;br /&gt;
&lt;br /&gt;
[[File:EjemploScreen.png|center|750px]]&lt;br /&gt;
&lt;br /&gt;
======Maps======&lt;br /&gt;
En Zabbix, un map (mapa) es una representación gráfica de la situacion de nuestros dispositivos en red. Es un escenario que muestra nuestra red, aplicaciones y servicios a través de figuras o iconos.  Dichas figuras toman vida en respuesta a los eventos que se dan en nuestro entorno.&lt;br /&gt;
[[File:EjemploMaps.png|center|750px]]&lt;br /&gt;
[[File:EstadosMaps.png|center|750px]]&lt;br /&gt;
===Zabbix en '''MD'''tel===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Configuraciones de Zabbix ====&lt;br /&gt;
&lt;br /&gt;
===== Agentes Zabbix =====&lt;br /&gt;
{|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 '''Nota:''' Hay que instalar un agente Zabbix en cada maquina que se quiera monitorizar.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El agente de Zabbix puede recoger datos: &lt;br /&gt;
*'''De forma pasiva:''' el server contacta al agente pidiéndole un dato (por ejemplo el consumo de CPU en ese instante) y el agente responde al server con ese dato. A esta acción del agente le llamaremos '''Agente activo'''.&lt;br /&gt;
*'''De forma activa:''' en un primer momento, el server le enviará al agente el listado de items a monitorizar. A partir de ese momento, será el agente que de forma periódica recogerá datos sobre esos ítems y se los hará llegar al server. A esta acción del agente le llamaremos ''''''Agente pasivo''''''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== Configurar agente de forma pasiva======&lt;br /&gt;
Para configurar el agente de Zabbix necesitamos acceder a la maquina que actuará como agente, y en el directorio /etc/zabbix modificar el fichero '''zabbix_agentd.conf''' e indicar cual es la dirección de red (IP) del servidor Zabbix.&lt;br /&gt;
&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 ##### Passive checks related&lt;br /&gt;
 ### Option: Server&lt;br /&gt;
 #       List of comma delimited IP addresses (or hostnames) of Zabbix servers.&lt;br /&gt;
 #       Incoming connections will be accepted only from the hosts listed here.&lt;br /&gt;
 #       If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1'  &lt;br /&gt;
 #       are treated equall$&lt;br /&gt;
 #&lt;br /&gt;
 # Mandatory: no&lt;br /&gt;
 # Default:&lt;br /&gt;
 Server= IP.Server Zabbix.&lt;br /&gt;
|}&lt;br /&gt;
Tras la configuración del fichero, debemos reiniciar el servicio de los agentes.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 sudo service zabbix-agent restart&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====== Configurar agente de forma activa ======&lt;br /&gt;
&lt;br /&gt;
Para configurar el agente de Zabbix necesitamos acceder a la máquina que actuará como agente, y en el directorio /etc/zabbix modificar el fichero '''zabbix_agentd.conf''' e indicar cual es la dirección de red (IP) del servidor Zabbix.&lt;br /&gt;
&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 ##### Active checks related&lt;br /&gt;
 ### Option: ServerActive&lt;br /&gt;
 #       List of comma delimited IP:port (or hostname:port) pairs of Zabbix serv$&lt;br /&gt;
 #       If port is not specified, default port is used.&lt;br /&gt;
 #       IPv6 addresses must be enclosed in square brackets if port for that hos$&lt;br /&gt;
 #       If port is not specified, square brackets for IPv6 addresses are option$&lt;br /&gt;
 #       If this parameter is not specified, active checks are disabled.&lt;br /&gt;
 #       Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12$&lt;br /&gt;
 #&lt;br /&gt;
 # Mandatory: no&lt;br /&gt;
 # Default:&lt;br /&gt;
 ServerActive=127.0.0.1&lt;br /&gt;
 --------------------------sección separada----------------------------&lt;br /&gt;
 ### Option: UserParameter&lt;br /&gt;
 #       User-defined parameter to monitor. There can be several user-defined pa$&lt;br /&gt;
 #       Format: UserParameter=&amp;lt;key&amp;gt;,&amp;lt;shell command&amp;gt;&lt;br /&gt;
 #       See 'zabbix_agentd' directory for examples.&lt;br /&gt;
 #&lt;br /&gt;
 # Mandatory: no&lt;br /&gt;
 # Default:&lt;br /&gt;
 # UserParameter=&lt;br /&gt;
 User_parameters:asterisk.pid, /usr/bin/asterisk -rx 'core show chanels'|grep 'active calls'| cat -d -f 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El parámetro '''User_parameters''' tiene un formato de este estilo:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 User_parameters: NombreMedida, comando.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El nombre de la medida se refiere al nombre que demos a la aplicación , no hace falta que exista una aplicación con ese nombre en Zabbix, y el comando , es el comando remoto que tiene que ejecutar el servidor Zabbix. Posiblemente necesita darse permisos para ejecutar el comando y siempre debe devolver un valor (un numero o un tiempo) que el servidor Zabbix puede manejar.&lt;br /&gt;
Tras la configuración del fichero, debemos reiniciar el servicio de los agentes.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 sudo service zabbix-agent restart&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Scripts del Servidor Zabbix =====&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''': &amp;lt;small&amp;gt;No olvidar que en la misma maquina del server Zabbix, debe configurarse como agente de Zabbix.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Después de realizar la [[# Instalación de Zabbix | Instalación de Zabbix ]] correctamente. Se han creado otros ficheros scripts (''scripts propios de '''md'''tel'') que facilitarán la petición del servidor a los agentes activos, para poder parametrizar todos los elementos del negocio que suelen monitorizarse. &lt;br /&gt;
Dependiendo de lo que vaya a monitorizarse necesitaremos algún script o todos. Algunos nos informan sobre elementos de negocio, saber si asterisk funciona , monitorizar el CTI (lanzara nc localhost 1111) , controlar el Intz-Nimitz, comprobar si funciona motalsal, ect.&lt;br /&gt;
&lt;br /&gt;
Cada script se exportara a los host, para que pueda facilitar los datos que pide el servidor Zabbix y configurarse.&lt;br /&gt;
Por ejemplo,para monitorizar las llamadas en curso del ACD, agentes conectados, agentes desconectados, etc.&lt;br /&gt;
Todos los scripts se deben colocar en el directorio /usr/local/sbin con permisos 755, su nombre es parecido a &amp;quot;zabbixSenderXXXXX.pl&amp;quot;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 ls /usr/local/sbin/ |grep zabbixSender&lt;br /&gt;
 '''zabbixSenderACDBD.pl'''&lt;br /&gt;
 '''zabbixSenderACD.pl'''&lt;br /&gt;
 '''zabbixSenderCTI.pl'''&lt;br /&gt;
 '''zabbixSender-intz-nimitz.pl'''&lt;br /&gt;
 '''zabbixSenderMotorSal.pl'''&lt;br /&gt;
 '''zabbixSenderMyACDSuperv.pl'''&lt;br /&gt;
 '''zabbixSenderRecordNodo.pl'''&lt;br /&gt;
 '''zabbixSenderRecordCentral.pl'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Se crea una tarea programada en linux para poder ejecutarse los scripts, programando el tiempo en que debe ejecutarse.&lt;br /&gt;
&lt;br /&gt;
Si visualizo que &amp;quot;............&amp;quot; aparece:&lt;br /&gt;
&lt;br /&gt;
*****  root zabbix&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderACDBD.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtiene diversos valores por cada cola, estados de agente por cola y estados de agente generales.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor BDTR.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:''' Ruta al archivo de configuración (Por ejemplo: ''/etc/MDtel/zabbixSenderACDBD.pconf'')&lt;br /&gt;
&lt;br /&gt;
'''Archivo de configuración:''' zabbixSenderACDBD.pconf&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''$db:''' Nombre de la BBDD (normalmente nimitz)&lt;br /&gt;
 '''$dbHost:''' Dirección IP del servidor de BBDD de TR (normalmente BDTR)&lt;br /&gt;
 '''$dbPort:''' Puerto MySQL (normalmente 3306)&lt;br /&gt;
 '''$dbUsuario:''' Usuario MySQL (normalmente nimitz)&lt;br /&gt;
 '''$dbClave:''' Clave del usuario&lt;br /&gt;
 '''$sZab:''' Dirección IP del servidor Zabbix&lt;br /&gt;
 '''$hZab:''' Nombre del host Zabbix (normalmente el nombre de máquina, tal y como se configura en &lt;br /&gt;
 zabbix_agentd.conf o en el host en la web de Zabbix)&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderACD.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener el PID de Asterisk para revisar si se ha reiniciado en caso de que cambie.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor ACD.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:''' Ruta al archivo de configuración (Por ejemplo: ''/etc/MDtel/zabbixSenderACD.pconf'').&lt;br /&gt;
&lt;br /&gt;
'''Archivo de configuración:''' zabbixSenderACDBD.pconf.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''$db:''' Nombre de la BBDD (normalmente nimitz)&lt;br /&gt;
 '''$dbHost:''' Dirección IP del servidor de BBDD de TR (normalmente BDTR)&lt;br /&gt;
 '''$dbPort:''' Puerto MySQL (normalmente 3306)&lt;br /&gt;
 '''$dbUsuario:''' Usuario MySQL (normalmente nimitz)&lt;br /&gt;
 '''$dbClave:''' Clave del usuario&lt;br /&gt;
 '''$sZab:''' Dirección IP del servidor Zabbix&lt;br /&gt;
 '''$hZab:''' Nombre del host Zabbix (normalmente el nombre de máquina, tal y como se configura en&lt;br /&gt;
 zabbix_agentd.conf o en el host en la web de Zabbix)&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
======zabbixSenderCTI.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de vivait-cti.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute vivait-cti. Normalmente el servidor ACD.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======zabbixSender-intz-nimitz.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de intz-nimitz.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute intz-nimitz.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
======zabbixSenderMotorSal.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de motorSal.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute motorSal.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderMyACDSuperv.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de myAcdSuperv.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute myAcdSuperv.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderRecordNodo.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de recordNodo.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute recordNodo.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderRecordCentral.pl======&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de recordCentral.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute recordCentral.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A continuación se muestra una tabla resumen de los distintos scripts y sus funcionalidades: &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Zabbix_scripts.png |960px]]&lt;br /&gt;
&lt;br /&gt;
====== Dimensionamiento del servidor (Startpollers) ======&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''': &amp;lt;small&amp;gt;EL parámetro StartPollers es un &amp;lt;u&amp;gt;parámetro numérico&amp;lt;/u&amp;gt; que forma parte del fichero de configuración &lt;br /&gt;
 del servidor Zabbix(zabbix_server.conf). Por defecto el servidor Zabbix esta configurado para&lt;br /&gt;
 iniciar con cinco startpollers.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El servidor Zabbix puede hace peticiones a los agentes de las medidas que necesita o quiere. O en caso contrario los agentes envian en un tiempo determinado la información al servidor. Para recibir todas estas peticiones necesitamos los pollers.  &lt;br /&gt;
&lt;br /&gt;
Los poller son los procesos encargados de recibir todas las peticiones de medidas. Aumentaremos su cantidad dependiendo de la necesitad que tengamos. Para ello podemos observar la queue , que es la encargada de almacenar un listado de todas las cosas que están pedidas para medirse y recibirse.  SI por ejemplo esta cola (queue) muestra mas de mil medidas seguramente estos pollers sean un cuello de botella y habrá que aumentar su numero.&lt;br /&gt;
&lt;br /&gt;
=====Templates=====&lt;br /&gt;
&lt;br /&gt;
Zabbix cuenta con templates (plantillas) que facilitan la tarea de &amp;quot;Registrar Equipos y Dispositivos&amp;quot; y agregarles métricas; acelerar el despliegue de las tareas de supervisión en un host; aplicar cambios masivos a tareas de supervisión. En '''md'''tel hemos creado plantillas propias que facilitan estos procesos, los cuales necesitaremos [[#Importar templates |importar templates]].&lt;br /&gt;
&lt;br /&gt;
Las plantillas están vinculados directamente a los hosts individuales, por tanto se necesitaran utilizar en cada host.&lt;br /&gt;
&lt;br /&gt;
Automáticamente, cada template rellena por item las aplicaciones, trigers, alarmas,gráficos,... etc. &lt;br /&gt;
&lt;br /&gt;
A continuación, se muestran los distintos bloques de funciones de la instalación en función de cada template:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! Se instalan en general &lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| SI (si clúster)&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| si&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| -&lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| si(si no posee ip virtuales de clúster)&lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| si&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ '''Dependiendo del tipo de nodo:'''&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! ACD !! Corporativo/GW&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| Si || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - || Si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - || Si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ '''Dependiendo del tipo de Base de dato'''s:&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! BBDD &amp;lt;br /&amp;gt;Tiempo Real !! BBDD&amp;lt;br /&amp;gt; Réplica !! BBDD Copia&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| Si(si ACD) || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| si || si || si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| si || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! Administración&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - &lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - &lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal||SI (si posee servidor calendarios)&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! Servidor de grabaciones&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - &lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| Si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - &lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal||-&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ '''Monitorización'''&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! General !! Contact Center&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - || - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - || - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| si || - &lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - || - &lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 * El template OS Linux tiene asociado el Template App Zabbix Agent.&lt;br /&gt;
 Una '''base de datos unificada''' es una base de datos de tiempo real junto a  una base de datos de replica&lt;br /&gt;
&lt;br /&gt;
====== Importar templates======&lt;br /&gt;
&lt;br /&gt;
Las plantillas propias de '''md'''tel se encuentran en la ruta &amp;quot;'''/usr/src/nimitz/archivos'''&amp;quot; y empiezan con el nombre de &amp;quot;TemplateXXX.xml&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 ls /usr/src/nimitz/archivos | grep Template&lt;br /&gt;
 '''Template DRBD.xml'''&lt;br /&gt;
 '''Template motorSal.xml'''&lt;br /&gt;
 '''Templates Vivait-Suite_GW.xml'''&lt;br /&gt;
 '''Templates Vivait-Suite.xml'''&lt;br /&gt;
 '''Template Vivait-Call Asterisk.xml'''&lt;br /&gt;
 '''Template Vivait-Call bdCentral.xml'''&lt;br /&gt;
 '''Template Vivait-Call bdNodo.xml'''&lt;br /&gt;
 '''Template Vivait-Call cambiarPerfil_Cal.xml'''&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La importación se realizara una vez a través de la web, no hace falta desde el servidor Zabbix, puede ser en cualquier  computadora con acceso a la interfaz web de Zabbix.&lt;br /&gt;
&lt;br /&gt;
[[File:ImportarTemplates.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
Hay opciones varias opciones a elegir para importación de templates, pero podemos dejar por defecto las señaladas y pulsar el botón &amp;quot;import&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Configuración para un primer funcionamiento de Zabbix===&lt;br /&gt;
Se describe una básica configuracion de Zabbix para cualquier equipo que utilice Windows o linux. Pues  mediante la definición de hosts, items, triggers y acciones, Zabbix permite efectuar un monitoreo efectivo de plataformas IT heterogéneas. &lt;br /&gt;
&lt;br /&gt;
====Configuración de los equipost (host) para la monitorización====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''': Tenga en cuenta que debe de estar previamente configurado el agente Zabbix del &lt;br /&gt;
 dispositivo a ser monitorizado apuntando a la IP del &amp;quot;Servidor Zabbix&amp;quot;.&lt;br /&gt;
|}&lt;br /&gt;
Existen dos tipos de host:&lt;br /&gt;
* '''Host físico''': donde la dirección de red que registramos en Zabbix, corresponde al dispositivo que deseamos monitorizar.&lt;br /&gt;
* '''Host virtual''': es una dirección IP virtual, que puede relacionarse con un servidor Web, clusters, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:CreacionHost.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
﻿Las opciones basicas para configurar un host son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center ;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Host Name'''&lt;br /&gt;
|  | Definir un nombre para el host.&lt;br /&gt;
||Se puede utilizar números, letras, espacios y guiones bajos están permitidos.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Visible Name'''&lt;br /&gt;
|  | Identificar con un nombre, la maquina a la que se refiere el host.&lt;br /&gt;
||Si no tiene valor, se mostrara como nombre &amp;quot;Host Name&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Groups'''&lt;br /&gt;
|  | Seleccionar al grupo de host que pertence.Seleccione uno o varios grupos de la caja derecha.&lt;br /&gt;
|| Los valores que puede seleccionar por defecto:&lt;br /&gt;
Discoverd hosts.&lt;br /&gt;
&lt;br /&gt;
Switches.&lt;br /&gt;
&lt;br /&gt;
Templates.&lt;br /&gt;
&lt;br /&gt;
Templates MDtel.&lt;br /&gt;
&lt;br /&gt;
Zabbix servers.&lt;br /&gt;
&lt;br /&gt;
Linux Servers.&lt;br /&gt;
&lt;br /&gt;
Hypervisors.&lt;br /&gt;
&lt;br /&gt;
Virtual machines.&lt;br /&gt;
&lt;br /&gt;
O crear uno nuevo en '''New group'''.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Agent interfaces'''&lt;br /&gt;
|  |Se recomienda usar una dirección IP, en vez de un nombre de la maquina para resolver por un servidor de DNS que puede fallar.&lt;br /&gt;
|  | 10050 por defecto&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cuando termine, haga clic en nel boton &amp;quot;Save&amp;quot;.  Su nuevo &amp;quot;Host&amp;quot; debe ser visible en la lista de &amp;quot;Host registrados&amp;quot;.Despues el zabbix, intentara configurarse el zabbix para conectarse a la IP.... cada x tiempo hace un barrido. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Comprobación de disponibilidad del host=====&lt;br /&gt;
Para saber si todo esta bien debemos ver la Z de disponibilidad.   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:EstadosZHost.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Indicacion de los colores del icono Z:&lt;br /&gt;
&lt;br /&gt;
* Si el icono Z en la columna de disponibilidad es de color rojo, indica que hay un error en la comunicación - mueva el cursor del ratón sobre él para ver el mensaje de error. &lt;br /&gt;
&lt;br /&gt;
* Si el icono es gris, significa que esta en proceso de comunicación con el &amp;quot;Agente Zabbix&amp;quot;. Compruebe que el servidor Zabbix está en marcha, y pruebe a actualizar la página más tarde.  El tiempo estimado para revisar si existe problemas es de 5 minutos.&lt;br /&gt;
&lt;br /&gt;
* Si el icono es verde, esta funcionando correctamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Indicar que plantilla(template) tendra el host [opcional]====&lt;br /&gt;
Tras [[#Importar templates |importar templates]] nos dirigimos al host ya configurado, y en su pestaña de templates pulsamos &amp;quot;add&amp;quot; y añadimos la plantilla/s adecuadas.&lt;br /&gt;
&lt;br /&gt;
====Asignar items al host ====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''':Un host puede tener un ITEM sin necesitad de tener template.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Todos lo ITEMS se agrupan por HOST, esto significa que cada HOST tiene sus propios &amp;quot;Módulos que recogen datos del Host&amp;quot;.   Para agregar un nuevo módulo vamos a &amp;quot;Configuration → Hosts&amp;quot; y localizamos el &amp;quot;Host&amp;quot; al cual queremos agregarle un nuevo &amp;quot;Item&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:CrearItemEjemplo.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
Parametros o campos a rellenar para una configuración básica :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center ;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Name'''&lt;br /&gt;
|  | Definir un nombre para el item.  Este nombre va a ser nuestro identificador para todas la gestiones en donde lo involucremos como el caso de Triggers.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Type'''&lt;br /&gt;
|| Indicar de que entidad queremos recibir informacion.&lt;br /&gt;
||Puede ser al &amp;quot;Agente Zabbix&amp;quot; o a el Hardware como impresoras, switch o routers.   &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Key'''&lt;br /&gt;
|  | los &amp;quot;Items&amp;quot; utilizan &amp;quot;Key&amp;quot; que son parámetros de Zabbix.  Los &amp;quot;Key&amp;quot; nos permiten indicar específicamente que tipo de información vamos a solicitara a la entidad. Se puede considerar también como el nombre de alguna aplicación.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''host interface'''&lt;br /&gt;
|  |Es la direccion de red del servidor zabbix (puede ser uno o mas)&lt;br /&gt;
|  | &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Units'''&lt;br /&gt;
|  |Es la dirección de red del servidor zabbix (puede ser uno o mas)&lt;br /&gt;
|  | &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Type of information'''&lt;br /&gt;
|  |Tipo de unidades con el que mostrar Zabbix el valor segundos, minutos, euros,....&lt;br /&gt;
|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cuando termine, haga clic en Guardar.   El nuevo elemento debe aparecer en la ITEMLIST. &lt;br /&gt;
Para mas informacion [[http://entation/1.8/manual/config/items#zabbix_agent. ver documentación Zabbix]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Ver la información recolectada por el item =====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' Normalmente para ver la información lo encontraremos en &amp;quot;Monitoring → Latest data&amp;quot;,luego &lt;br /&gt;
 clic en el signo &amp;quot;+&amp;quot; en &amp;quot;other&amp;quot; siempre que no pertenezca a una aplicación. &lt;br /&gt;
 En caso contrario, estará bajo el nombre de la aplicación.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Después de definir el &amp;quot;Item&amp;quot; vamos a revisar la información que esta recolectando.  .  La información comenzará a ser recolectada según el tiempo que le indicamos en el &amp;quot;Item&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:VerInfoITEM.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
La espera para recibir la información varía dependiendo del tiempo de recolección del item, la mayoría suele ser aproximadamente al minuto de generar el &amp;quot;Item&amp;quot;. Zabbix le ofrece la opción de visualizar la información en forma gráfica (sencilla).  En el &amp;quot;Item&amp;quot; en lista haga clic en la columna &amp;quot;History - Graph&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:VIsualGraficaValorItem.png|center|750px]]&lt;br /&gt;
Si en un caso usted no observa información le recomendamos:&lt;br /&gt;
  &lt;br /&gt;
* Ingrese al &amp;quot;Item&amp;quot; y revise que la información del &amp;quot;Key&amp;quot; este igual al ejemplo &amp;quot;system.cpu.load&amp;quot; &lt;br /&gt;
* Verifique que el agente este funcionando en el &amp;quot;Servidor a ser monitoreado&amp;quot; y que &amp;quot;El Servidor recolector Zabbix&amp;quot; este funcionando. &lt;br /&gt;
* El icono &amp;quot;Z&amp;quot; en el host debe estar en color verde. &lt;br /&gt;
* Asegure que esta monitoreando el servidor que le agregó este &amp;quot;Item&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Configurar los Triggers para los host====&lt;br /&gt;
A partir de la información que captura los agentes , el servidor de Zabbix comienza a efectuar la recolección de estos items en la base de datos. Con esto se tiene un registro histórico de tales mediciones, que pueden ser tan simples como un simple ping hasta datos de uso de disco, memoria, cpu, etc.&lt;br /&gt;
A partir de los datos que se reciben de los agentes lo que sigue es definir y configurar Triggers, que son evaluaciones que hace Zabix de estos datos para determinar la existencia de un Problema en un dispositivo.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Nota: Un trigger necesita una accion, que indica que hacer cuando se activa el trigger.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un trigger(disparador) es un tipo de reacción ante unas medidas, como un disparador en el que si pasa algo se activa. Los Trigger en Zabbix son módulos que creamos a uno o múltiples &amp;quot;Items&amp;quot; para evaluar o comparar los valores recolectados por los &amp;quot;Items&amp;quot; con condiciones que nosotros definamos.  Las condiciones son de tipo aritmético y lógico.&lt;br /&gt;
&lt;br /&gt;
Para configurar un &amp;quot;Trigger o Disparador&amp;quot; seleccionamos &amp;quot;Configuration → Hosts&amp;quot; localizamos el &amp;quot;Host&amp;quot; de ejemplo que creamos y luego hacemos clic en &amp;quot;Trigger&amp;quot;, después haga clic en &amp;quot;Create Trigger&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Parametros o campos a rellenar para una configuración básica :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center ;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Name'''&lt;br /&gt;
|  | Definir un nombre para el trigger.  Este nombre va a ser nuestro identificador para todas la gestiones en donde lo involucremos como el caso de los eventos.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Expression'''&lt;br /&gt;
||  Hay que indicar para que medida se crea (item) y sus funciones con los parametros adecuados. '''''Recomendación usar expression constructor que pedirá siempre al crearlo, para que item es y sus funciones...'''''&lt;br /&gt;
||Ejemplo: {New host:system.cpu.load.avg(180)}&amp;gt;2 &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Key'''&lt;br /&gt;
|  | los &amp;quot;Items&amp;quot; utilizan &amp;quot;Key&amp;quot; que son parámetros de Zabbix.  Los &amp;quot;Key&amp;quot; nos permiten indicar específicamente que tipo de información vamos a solicitara a la entidad. Se puede considerar tambien como el nombre de alguna aplicacion.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Una descripción breve sobre el trigger.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Severity'''&lt;br /&gt;
|  | everidad distinguida por colores,&lt;br /&gt;
|| No classified&lt;br /&gt;
 Information&lt;br /&gt;
 Warning&lt;br /&gt;
 Average&lt;br /&gt;
 High&lt;br /&gt;
 Disaster&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Comprobar el estado del trigger =====&lt;br /&gt;
Podemos ver el estado del &amp;quot;Trigger&amp;quot; en &amp;quot;Monitoring → Triggers&amp;quot;.El  color en caso de que se active depende de la severidad definida. Por ejemplo,  si el &amp;quot;Trigger&amp;quot; esta en color verde indica que el resultado de la métrica se mantiene por debajo de la condición que indicamos.  Por el contrario si el resultado esta &amp;quot;sobre lo indicado&amp;quot; su color sera rojo.&lt;br /&gt;
&lt;br /&gt;
[[File:EstadoTrigger.png|center|750px]]&lt;br /&gt;
&lt;br /&gt;
====Asociar un Action al trigger====&lt;br /&gt;
&lt;br /&gt;
Una action(acción) sirve para configurar un mensaje de alerta o una accion para Zabbix, ante un problema. Hay varias formas de gestionar un problema a través de una acción:&lt;br /&gt;
&lt;br /&gt;
# A través de mensajes simples, alertando al instante.&lt;br /&gt;
# Escalar los mensajes hacia el jefe y/o otros grupos.&lt;br /&gt;
# Ejecución de commandos remotos.&lt;br /&gt;
# Notificaciones repetidas hasta que se resuelve el problema.&lt;br /&gt;
# Notificaciones y comandos retardados.&lt;br /&gt;
# Escenario complejo, la combinación de todo lo anterior.&lt;br /&gt;
&lt;br /&gt;
Para crear una configuración en &amp;quot;Configuration-Actions&amp;quot;. La explicación esta en la [[ https://www.zabbix.com/documentation/2.0/manual/config/notifications/action documentación de Zabbix]].&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integraciones con servicios externos ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Presencia con Openfire ===&lt;br /&gt;
'''''VIVA'''''it se integra con servidor XMPP Openfire en su versión 3.10.2 (última probada)&lt;br /&gt;
&lt;br /&gt;
Además del servidor, es necesario instalar un plugin de integración con asterisk 13, denominado &amp;quot;asterisk IM&amp;quot;, versión 1.4.1&lt;br /&gt;
&lt;br /&gt;
La instalación del servidor Openfire es una instalación estándar, realizada de paquete&lt;br /&gt;
&lt;br /&gt;
La instalación del plugin es un &amp;quot;jar&amp;quot; que se carga desde la pagina de plugins de openfire&lt;br /&gt;
&lt;br /&gt;
Con esto conseguiremos comunicar asterisk y OPenfire de manera que:&lt;br /&gt;
*Los estados telefónicos de una extensión '''''VIVA'''''it  se reflejen en Openfire&lt;br /&gt;
*Poder marcar desde los clientes de IM instalados en los puestos&lt;br /&gt;
*Ver en el cliente llamadas entrantes al teléfono&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;Enlaces de interes:&amp;lt;/big&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
[http://www.igniterealtime.org/projects/openfire/ Página proyecto openfire]&lt;br /&gt;
&lt;br /&gt;
[https://community.igniterealtime.org/thread/56076 Página proyecto &amp;quot;asterisk IM&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reuniones virtuales con Openmeetings ===&lt;br /&gt;
'''OpenMeetings''' es un sistema de vídeo web-conferencia en tiempo real. Usando recursos como audio (micrófono), vídeo (cámara web), posibilidad de subir y convertir presentaciones (en PDF , PPT o ODP que se convierten a Flash), compartición de la pantalla de tu ordenador, o pizarra digital compartida, panel de administración, posibilidad de grabar las sesiones… y completo soporte multiplataforma, es decir, que aparte de poder grabar las sesiones, se puede compartir un escritorio también desde una máquina Linux.&lt;br /&gt;
&lt;br /&gt;
Para instalar '''OpenMettings''' debe seguir el [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manuales_de_instalaci%C3%B3n#Instalaci.C3.B3n_de_Openmeetings | manual de Instalación de Openmeetings]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]] &lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:VIVAit Suite]]&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_plataforma_VIVAit&amp;diff=5931</id>
		<title>Manual de operación plataforma VIVAit</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_plataforma_VIVAit&amp;diff=5931"/>
		<updated>2017-06-07T14:58:54Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* Proceso de Backup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!! '''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; ALFREDO: INSISTIR EN EXPLICAR CONCEPTOS&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
En este documento se describe la arquitectura general de la plataforma '''''VIVA'''''it, detallando aquellos procesos principales que componen cada uno de los elementos del sistema, y sus principales elementos de diagnóstico&lt;br /&gt;
Quedan fuera del ámbito de este documento:&lt;br /&gt;
* Uso de aplicación de agente ('''''VIVA'''''it Desk)&lt;br /&gt;
* Uso de aplicación de supervisor ('''''VIVA'''''it Supervisor), incluyendo sus módulos autónomos ('''''VIVA'''''it reporting, '''''VIVA'''''it Tracker)&lt;br /&gt;
* Uso de portal de administración&lt;br /&gt;
* Uso de portal de traceo de llamadas y agentes ('''''VIVA'''''it Tracker web)&lt;br /&gt;
* Uso de portal de monitorización zabbix&lt;br /&gt;
&lt;br /&gt;
== Arquitectura ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura plataforma VIVAit.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Descripción de los elementos, diagnósticos y operaciones ==&lt;br /&gt;
Las siguientes tablas definen los principales elementos software de la plataforma '''''VIVA'''''it, que son detallados en apartados siguientes:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de sistema operativo'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu Server LTS 64 bits || Uno por servidor|| ||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|| Actualmente (Oct-2015) 14.04&lt;br /&gt;
Bajo proyecto puede cambiarse&lt;br /&gt;
|-&lt;br /&gt;
| Almacenamiento de grabaciones|| Uno por sistema|| Almacenamiento de las grabaciones, ya sean de entorno corporativo o de contact center||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|| Típicamente un espacio grande de almacenamiento proporcionado por el cliente y que se monta como un sistema de archivos local en los servidores de la plataforma&lt;br /&gt;
Pueden existir sistemas secundarios de almacenamiento de grabaciones&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de conmutación de voz'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Asterisk 1.4.24 by MDtel||Uno por servidor ACD||Núcleo de conmutación de voz basado en Asterisk 1.4 y modificado por MDtel||'''''VIVA'''''it Suite||Fuertemente modificado por MDtel&lt;br /&gt;
En el futuro migrará a Asterisk 13 Certified&lt;br /&gt;
|-&lt;br /&gt;
|Dialplan ACD by MDtel||Uno por servidor ACD||Configuración de voz||'''''VIVA'''''it Suite||En el futuro se unificará con corporativa&lt;br /&gt;
|-&lt;br /&gt;
|Asterisk 13 Certified by MDtel||Uno por servidor corporativo/gateway||Núcleo de conmutación de voz basado en Asterisk 13 y modificado por MDtel||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Actualmente asterisk estándar (10/15)&lt;br /&gt;
La instalación contempla descargar de la red el más actualizado, siempre CERTIFIED&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Dialplan corporativo||Uno por servidor corporativo/gateway||Configuración de voz||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||En el futuro se unificará con ACD&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de base de datos'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|MySQL 5.5||Donde haya BBDD de cualquier tipo (incluso zabbix)||Motor de Base de Datos||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||A efectos prácticos va a ser en todos los servidores con casi total seguridad&lt;br /&gt;
|-&lt;br /&gt;
|BBDD tiempo real||Una por sistema||Base de Datos sobre la que trabaja todo el entorno de tiempo real||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|BBDD réplica||Una por sistema multinodo||Base de Datos para acceso a información de reporting…y similar||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de una&lt;br /&gt;
En el nodo en el que exista réplica existirá además copia (excepto nodo ACD)&lt;br /&gt;
|-&lt;br /&gt;
|BBDD copia||Uno por servidor corporativo/gateway||Copias de tablas de configuración para respaldo de la misma||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Local en cada nodo&lt;br /&gt;
Los nodos de ACD actualmente no trabajan con copia; en caso de fallo de BBDD TR se usa el modo emergencia&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de procesos ''VIVA''it'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Intz-Nimitz||Donde haya una BBDD de tiempo real o copia||Interfaz entre el dialplan y la base de datos||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||No donde haya BBDD de réplica&lt;br /&gt;
Sistemas grandes pueden contemplar mas de un intz-nimitz central&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|vivait-cti||Uno por servidor ACD||Interfaz entre '''''VIVA'''''it Desk, supervisor y el manager de asterisk||'''''VIVA'''''it Suite||&lt;br /&gt;
|-&lt;br /&gt;
|myAcdSuperv||Uno por servidor ACD||Recopilador de datos de asterisk y actualiza en la BBDD&lt;br /&gt;
Genera llamadas en el marcador&lt;br /&gt;
||'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|motorSal||Uno por sistema con ACD||Motor de marcador saliente automático||'''''VIVA'''''it Suite||Solo si hay marcación saliente&lt;br /&gt;
Junto a la BBDD de tiempo real&lt;br /&gt;
|-&lt;br /&gt;
|recordCentral||Uno por sistema||Servidor de grabaciones, se conectan los agentes a el||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Se arrancan varias instancias en función del número de nodos&lt;br /&gt;
Debe instalarse en un servidor que tenga el almacenamiento de grabaciones en su sistema de archivos&lt;br /&gt;
|-&lt;br /&gt;
|recordNodo||Uno por servidor corporativo/gateway||Agente de grabación||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|bdCentral||Uno, en el nodo con la BBDD de tiempo real||Genera la base de datos que se copiará para respaldo a otros nodos||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|bdNodo||En cada nodo con BBDD de copia||Recoge la base de datos del servidor central con el objeto de tener el respaldo||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|Actualizador||Uno por sistema con ACD||Se encarga de proporcionar las versiones actualizadas de las aplicaciones de puesto de trabajo||'''''VIVA'''''it Suite||En el mismo servidor que el portal de administración&lt;br /&gt;
|-&lt;br /&gt;
|phoneProv-tftp||Uno por sistema||Se encarga del aprovisionamiento masivo de terminales||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||En instalaciones grandes habrá más de uno, quizás uno por sede grande; depende de la infraestructura de DHCP&lt;br /&gt;
|-&lt;br /&gt;
|borraregistrosnimitz||||||||				&lt;br /&gt;
|-&lt;br /&gt;
|Mover grabaciones a nube||||||||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Administración'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Tomcat 7||Uno por servidor con portales||Servidor de aplicaciones JAVA||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|Portal de administración ||Uno por sistema||Portal de administración del sistema||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Portal usuario||Uno por sistema||Portal de usuario, para acceso a buzones, su configuración||'''''VIVA'''''it Call||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Tracker web||Uno por sistema||Portal de seguimiento de llamadas||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Debe instalarse en un servidor que tenga los ficheros de grabación montados en su sistema de archivos&lt;br /&gt;
Ligado a recordCentral&lt;br /&gt;
Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Monitor||Uno por sistema||Portal de monitores de pared de Call Center||'''''VIVA'''''it Suite||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Apache||Uno por servidor de calendarios||Servidor de portales WEB||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|Servidor de calendarios||Uno por sistema||Aloja calendarios para su uso en diferentes entornos de NIMITZ||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Monitorización'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Servidor zabbix||Uno por instalación||Monitorización técnica y de negocio||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de uno&lt;br /&gt;
Tipicamente irá o en BBDD replica o en nodo de gestión en instalaciones grandes&lt;br /&gt;
|-&lt;br /&gt;
|Templates zabbix||Uno por instalación||Adaptaciones específicas||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|Agente Zabbix||Uno por servidor||Agente de monitorización||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
||Scripts monitorización zabbix||Uno por servidor||Agente de monitorización||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Versiones de módulos===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Módulo  !! V.3.10 !! V.3.2.0 !! V.3.3.0 !!  V.3.4.0&lt;br /&gt;
(VSuite 3.4+VCall3.0) &lt;br /&gt;
!  V.3.5.0&lt;br /&gt;
(VSuite 3.5+VCall3.1)&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk || 1.4 || 1.4 || 1.4 || 1.4 Nodo ACD&lt;br /&gt;
13 resto nodos&lt;br /&gt;
|| 1.4 Nodo ACD&lt;br /&gt;
13 resto nodos&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk ACD  ||  ||  || || 3.3.1 || 3.4.1 &lt;br /&gt;
|-&lt;br /&gt;
| Dialplan ACD || ||  ||  || || 3.4.1&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk Corp ||  ||  ||  || 3.3.4 || 3.4.4&lt;br /&gt;
|-&lt;br /&gt;
| Dialplan Corp  || ||  ||  || 3.3.1 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| Lazarus común  || 3.1.0  || 3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| BD  || 3.2.0 || 3.4.0 || 3.5.0 || 3.6.0 || 3.8.0&lt;br /&gt;
|-&lt;br /&gt;
| Generaconf || 3.0.0  || 3.0.0  || 3.2.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Instalador || 3.1.0  || 3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Intz-nimitz || 2.6.0  || 3.0.1 || 3.0.3 ||  3.4.1 || 3.4.2&lt;br /&gt;
|-&lt;br /&gt;
| recordgwd   ||  1.3.0 ||  1.3.0 || 3.1.0 ||  ----- || -----&lt;br /&gt;
|-&lt;br /&gt;
| recordNodo  || ----- || ----- || ----- ||  4.0.0 || 4.0.0&lt;br /&gt;
|-&lt;br /&gt;
| recordprocesad || 1.2.0 ||1.2.0|| 3.0.0 || ----- || -----&lt;br /&gt;
|-&lt;br /&gt;
| recordCentral || ----- || ----- || -----||  4.0.0 || 4.0.1&lt;br /&gt;
|-&lt;br /&gt;
| MyACDSuperv || 5.2.0 || 5.3.0  ||  5.3.0  ||  5.3.2 || 5.3.2&lt;br /&gt;
|-&lt;br /&gt;
| Motorsal || 1.4.0 || 3.1.0  || 3.2.0 || 3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| Vivait-cti  || 3.0.0 ||  3.0.1  ||  3.0.1  ||  3.0.1 || 3.0.2&lt;br /&gt;
|-&lt;br /&gt;
| Multimonitorweb ||  3.0.1 ||  3.0.2  || 3.1.0  || 3.1.0 || 3.2.0&lt;br /&gt;
|-&lt;br /&gt;
| Portal de administración || 3.1.0  || 3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Tracker Web  || 3.0.2  || 3.1.0 ||  3.2.0 ||  3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
|  VIVA supervisor || 3.0.0 ||  3.1.0  ||  3.2.0  ||  3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| Tracker windows  || 3.0.0  || 3.1.0  || 3.2.0 || 3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| VIVA report  || 1.2.0  || 3.1.0  || 3.2.0  ||  3.2.2 || 3.3.0&lt;br /&gt;
|-&lt;br /&gt;
| VIVA desk || 3.0.2 ||  3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| VIVA designer || 1.0.23 || 3.0.1  || 3.1.0 ||  3.1.0 || 3.2.0&lt;br /&gt;
|-&lt;br /&gt;
|  Preview || 1.0.18 || 3.2.0  || 3.3.0 || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Phone_prov  || ------ || ------ || 3.0.1 || 3.0.3 || 3.0.3&lt;br /&gt;
|-&lt;br /&gt;
| Portal usuario || ------ || ------ || ------ || 3.0.0 || 3.1.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Sistema Operativo ===&lt;br /&gt;
Los sistemas operativos de nuestra plataforma se corresponden a las versiones de Ubuntu Server LTS , ya que son las versiones estables, con un soporte continuado y mas estables a actualizaciones desde la salida Ubuntu 14.04.1. En concreto el sistema operativo utilizado para la plataforma '''''VIVA'''''it es Ubuntu Server 14.04.4 LTS. Para más información https://help.ubuntu.com/lts/serverguide/index.html.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ubuntu Kernel Release Schedule.png|750px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Funcionamiento en cluster ====&lt;br /&gt;
&lt;br /&gt;
Un clúster es un grupo de múltiples ordenadores unidos mediante una red de alta velocidad, de tal forma que el conjunto es visto como un único ordenador.&lt;br /&gt;
&lt;br /&gt;
De un clúster se espera que presente combinaciones de los siguientes servicios:&lt;br /&gt;
&lt;br /&gt;
# Alto rendimiento &lt;br /&gt;
# Alta disponibilidad&lt;br /&gt;
# Balanceo de carga &lt;br /&gt;
# Escalabilidad &lt;br /&gt;
&lt;br /&gt;
Tal y como esta definido el cluster de MDtel, este comprueba conectividad con la otra máquina que lo forma y con un punto de confianza. Si la máquina no tiene conectividad con la otra y si con el punto de confianza es que el servidor está vivo, mientas que si no tengo conectividad ni con la otra máquina ni con el punto de confianza es que el muerto soy yo, por lo que balanceo.&lt;br /&gt;
&lt;br /&gt;
Por lo que las máquinas balancean en los casos siguientes:&lt;br /&gt;
&lt;br /&gt;
* Todo lo que tenga que ver con la red, es decir, caída de la tarjeta de red, apagado de la máquina, corte en la red..&lt;br /&gt;
&lt;br /&gt;
Y no balancea en los siguientes:&lt;br /&gt;
&lt;br /&gt;
* No balancea en los demás casos, es decir, todo lo que tenga que ver con procesos de una máquina (caída asterisk, base de datos, intz-nimitz)&lt;br /&gt;
&lt;br /&gt;
El funcionamiento en cluster se basa en:&lt;br /&gt;
&lt;br /&gt;
* Heartbeat: IP flotante entre las dos máquinas que componen el cluster; típicamente este &amp;quot;latido&amp;quot; entre máquinas se realizará mediante conexión directa con cable cruzado para asegurar que no existan problemas de comunicaciones tales como retardo, pérdida de paquetes, etc en este latido y pueda ser causa de un balanceo inadecuado.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|  '''Nota 17-11-2015:''' Se ha realizado en un cliente un cluster distribuido, con dos servidores en diferentes sedes, realizando el heartbeat mediante enlace Gigabit. Si bien la solución no está validada por desarrollo, se está observando el funcionamiento.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* DRBD que se encargar de mantener una serie de carpetas totalmente replicadas entre los dos nodos; dichas las carpetas son:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El cluster es &amp;lt;big&amp;gt;'''activo/pasivo'''&amp;lt;/big&amp;gt;; la máquina activa posee la IP flotante y tiene arrancados los servicios.&lt;br /&gt;
&lt;br /&gt;
==== Configuración del cluster ====&lt;br /&gt;
Para montar un cluster de asterisk partimos de la siguiente situación inicial:&lt;br /&gt;
* Dos maquinas con '''''VIVA'''''it Call 3.0 instalado.&lt;br /&gt;
* El driver bonding de Interfaces de Red en Ubuntu Server.&lt;br /&gt;
&lt;br /&gt;
Los pasos a seguir para la configuración en el Ubuntu Server son los siguientes:&lt;br /&gt;
* Instalar ifenslave: &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 aptitude install ifenslave.&lt;br /&gt;
|}&lt;br /&gt;
: Finalizada la instalación, comprobamos que la instalación de Bonding se ha configurado para empezar desde el arranque del sistema operativo desde el fichero '''/etc/modules''':&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| vi /etc/modules&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 # Parameters can be specified after the module name.&lt;br /&gt;
 lp&lt;br /&gt;
 rtc&lt;br /&gt;
 bonding&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Crear o editar el archivo llamado '''/etc/modprobe.d/bonding.conf''' y añadir la siguiente linea en negrita:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 echo &amp;quot;alias bond0 bonding&amp;quot;&amp;gt; /etc/modprobe.d/bonding.conf&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Editar el fichero /etc/network/interfaces y añadir lo que esta en negrita:&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
 # This file describes the network interfaces available on your system&lt;br /&gt;
 # and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 &lt;br /&gt;
 '''# Bonding'''&lt;br /&gt;
 &lt;br /&gt;
 '''#em1 ip manual y esclavo en el &amp;quot;bond0&amp;quot; NIC'''&lt;br /&gt;
 '''auto em1'''&lt;br /&gt;
 '''iface em1 inet manual'''&lt;br /&gt;
 '''bond-master bond0'''&lt;br /&gt;
 '''bond-primary em0''' &lt;br /&gt;
 &lt;br /&gt;
 '''#em2 ídem, creando así un vínculo de enlace 2.'''&lt;br /&gt;
 '''auto em2'''&lt;br /&gt;
 '''iface em2 inet manual'''&lt;br /&gt;
 '''bond-master bond0'''&lt;br /&gt;
 '''auto bond0'''&lt;br /&gt;
 '''iface bond0 inet static'''&lt;br /&gt;
         '''address 10.255.255.11'''&lt;br /&gt;
        '''netmask 255.255.255.0'''&lt;br /&gt;
        '''gateway 10.255.255.254'''&lt;br /&gt;
 '''bond-mode active-backup'''&lt;br /&gt;
 '''bond-miimon 100'''&lt;br /&gt;
 '''bond-slaves none'''&lt;br /&gt;
 &lt;br /&gt;
 '''# em3 replica entre servidores'''&lt;br /&gt;
 '''auto em3'''&lt;br /&gt;
 '''iface em3 inet static'''&lt;br /&gt;
         '''address 10.255.254.10'''&lt;br /&gt;
        '''netmask 255.255.255.0'''&lt;br /&gt;
 &lt;br /&gt;
 '''# em4 gestion'''&lt;br /&gt;
 '''auto em4'''&lt;br /&gt;
 '''iface em4 inet static'''&lt;br /&gt;
         '''address 172.17.47.255'''&lt;br /&gt;
         '''netmask 255.255.0.0'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Reiniciamos el sistema para que el kernel tome los cambios.&lt;br /&gt;
&lt;br /&gt;
* Comprobación que en las dos maquinas el archivo '''/etc/host''' contenga el los nombre de las dos maquinas a vincular. En el ejemplo el archivo en ambas maquinas es:&lt;br /&gt;
&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 127.0.0.1       localhost&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.11   vivaitcall-CL-UAH-1&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.12   vivaitcall-CL-UAH-2&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.10   vivaitcall-CL-UAH&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.10   BDTR&lt;br /&gt;
 &lt;br /&gt;
 10.255.254.10   vivaitcall-CL-UAH-1-em3&lt;br /&gt;
 &lt;br /&gt;
 10.255.254.11   vivaitcall-CL-UAH-2-em3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Creamos dos particiones iguales en ambos ordenadores , usando el comando '''parted'''.&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# '''parted /dev/sda'''&lt;br /&gt;
 GNU Parted 2.3&lt;br /&gt;
 Using /dev/sda&lt;br /&gt;
 Welcome to GNU Parted! Type 'help' to view a list of commands.&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Number  Start   End     Size    File system     Name  Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 &lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                 boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
        237GB   1000GB  763GB   Free Space&lt;br /&gt;
 &lt;br /&gt;
 (parted) mkpart primary 237GB 1000GB&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Number  Start   End     Size    File system     Name     Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                    boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
 5      237GB   1000GB  763GB                   primary  No File System como ext4&lt;br /&gt;
        1000GB  1000GB  204kB   Free Space&lt;br /&gt;
 (parted)quit&lt;br /&gt;
 mkfs.ext4 /dev/sda5&lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# '''parted /dev/sda'''&lt;br /&gt;
 GNU Parted 2.3&lt;br /&gt;
 Using /dev/sda&lt;br /&gt;
 Welcome to GNU Parted! Type 'help' to view a list of commands.&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Number  Start   End     Size    File system     Name     Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                    boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
 5      237GB   1000GB  763GB                   primary&lt;br /&gt;
        1000GB  1000GB  204kB   Free Space&lt;br /&gt;
 (parted) rm 5&lt;br /&gt;
 (parted) mkpart primary 237GB 1000GB&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 &lt;br /&gt;
 Number  Start   End     Size    File system     Name     Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                    boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
 5      237GB   1000GB  763GB   ext4            primary  Si File Sytem ext4&lt;br /&gt;
        1000GB  1000GB  204kB   Free Space&lt;br /&gt;
 (parted)quit&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Instalar los paquetes necesarios para el drbd. '''En Ubuntu server 14.04 ya está instalado.'''&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 aptitude install drbd8-utils  &lt;br /&gt;
 aptitude update (si no instala el drbd8-utils actualizar)&lt;br /&gt;
 aptitude install drbd8-utils  (volver a lanzar)&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
* Creamos el archivo '''/etc/drbd.conf''' en ambas maquinas:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 # You can find an example in  /usr/share/doc/drbd.../drbd.conf.example&lt;br /&gt;
 include &amp;quot;drbd.d/global_common.conf&amp;quot;;&lt;br /&gt;
 include &amp;quot;drbd.d/*.res&amp;quot;;&lt;br /&gt;
 resource MDcluster {&lt;br /&gt;
         protocol C;&lt;br /&gt;
         on vivaitcall-CL-UAH-1 {&lt;br /&gt;
               device /dev/drbd0;&lt;br /&gt;
               disk /dev/sda5;&lt;br /&gt;
               address 10.255.254.10:7788;&lt;br /&gt;
               meta-disk internal;&lt;br /&gt;
        }&lt;br /&gt;
        on vivaitcall-CL-UAH-2 {&lt;br /&gt;
               device /dev/drbd0;&lt;br /&gt;
               disk /dev/sda5;&lt;br /&gt;
               address 10.255.254.11:7788;&lt;br /&gt;
               meta-disk internal;&lt;br /&gt;
        }&lt;br /&gt;
        disk {&lt;br /&gt;
               on-io-error detach;&lt;br /&gt;
        }&lt;br /&gt;
        net {&lt;br /&gt;
               max-buffers 2048;&lt;br /&gt;
               ko-count 4;&lt;br /&gt;
        }&lt;br /&gt;
        syncer {&lt;br /&gt;
               rate 100M;&lt;br /&gt;
               al-extents 257;&lt;br /&gt;
        }&lt;br /&gt;
        startup {&lt;br /&gt;
                wfc-timeout 0;&lt;br /&gt;
                degr-wfc-timeout 120;&lt;br /&gt;
        }&lt;br /&gt;
 }&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Reiniciamos el sistema para que el kernel tome los cambios.&lt;br /&gt;
* Inicializamos el recurso, para ello primero deberemos crear los recursos DRBD teclearemos en ambas maquinas. Desde /etc.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
  drbdadm create-md MDcluster  (no y yes )&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Si tenemos algún problema porque ya exista sistema de ficheros.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 dd if=/dev/zero of=/dev/sda5 bs=1M count=128&lt;br /&gt;
 drbdadm create-md MDcluster  (no y yes )&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Reiniciamos ambas maquinas para que su kernel tome los cambios.&lt;br /&gt;
* Levantamos el servicio del DRBD en ambos servidores (nos preguntara que si queremos enviar los datos a los desarrolladores de drbd) tecleando no, no se envían.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 service drbd start&lt;br /&gt;
 /etc/init.d/drbd start&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Ahora &amp;lt;u&amp;gt;ambas maquinas son secundarias&amp;lt;/u&amp;gt;.&lt;br /&gt;
: Indicar cual de las dos maquinas usaremos como primaria, por tanto en la maquina elegida habra que ejecutar:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 drbdadm -- --overwrite-data-of-peer primary all (en una máquina)&lt;br /&gt;
:&amp;lt;small&amp;gt;'''Nota:''' La ip virtual que va a estar asignada a la maquina activa es  172.25.129.70.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Podemos teclear el comando '''''cat''''' para ver si esta sincronizando  y su progreso:&lt;br /&gt;
&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 cat /proc/drbd&lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' El servicio DRBD  aparecera como '''''Primary/Secondary'''''  si ejecutamos en el primario ; &lt;br /&gt;
 y aparecerá ''''Secondary/Primary'''' si lo ejecutamos en el secundario. &amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
* Instalación de los script de arranque:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 update-rc.d -f drbd remove (en las dos maquinas)&lt;br /&gt;
 update-rc.d drbd start 13 2 3 4 5 . stop 87 0 1 6 . (en las dos máquinas)&lt;br /&gt;
|}&lt;br /&gt;
* Seleccionar la fuente de sincronización.&lt;br /&gt;
:Formateamos un disco de la maquina que queramos que funcione como fuente del servicio DRBD, para evitar conflictos:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 mkfs.ext4  /dev/drbd0&lt;br /&gt;
|}&lt;br /&gt;
: Creamos el directorio sobre el que vamos a montar el disco, en ambas maquinas.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 mkdir  /HDcluster&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Creamos un archivo dentro '''''/HDcluster''''' de que se verá solo cuando el disco no está montado en ambas maquinas.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 touch sinMontar&lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' Este archivo nos puede servir para monitorizar mediante zabbix, nagios, ... que el disco no está montado.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:  En una de las maquinas montamos el disco (desde fuera del directorio HDcluster) &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 mount  /dev/drbd0 /HDcluster&lt;br /&gt;
|}&lt;br /&gt;
* Procedemos a mover todos los datos que necesitemos en este disco y a crear accesos directos, los directorios que vamos a mover son los siguientes:&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 /etc/asterisk&lt;br /&gt;
 /var/lib/asterisk&lt;br /&gt;
 /usr/lib/asterisk&lt;br /&gt;
 /usr/spool/asterisk&lt;br /&gt;
 /var/lib/mysql&lt;br /&gt;
 /var/tftp/&lt;br /&gt;
|}&lt;br /&gt;
: El procedimiento que vamos a seguir es el siguiente, en el primer ordenador:&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 '''Cd /HDcluster'''&lt;br /&gt;
 '''tar -zcvf etc-asterisk.tgz /etc/asterisk'''&lt;br /&gt;
 '''tar -zxvf  etc-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /etc/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/etc/asterisk /etc/asterisk'''&lt;br /&gt;
 '''tar -zcvf var-lib-asterisk.tgz /var/lib/asterisk'''&lt;br /&gt;
 '''tar -zxvf  var-lib-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /var/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/asterisk /var/lib/asterisk'''&lt;br /&gt;
 '''tar -zcvf usr-lib-asterisk.tgz /usr/lib/asterisk'''&lt;br /&gt;
 '''tar -zxvf  usr-lib-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /usr/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/usr/lib/asterisk /usr/lib/asterisk'''&lt;br /&gt;
 '''tar -zcvf var-spool-asterisk.tgz /var/spool/asterisk'''&lt;br /&gt;
 '''tar -zxvf  var-spool-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /var/spool/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/spool/asterisk /var/spool/asterisk'''&lt;br /&gt;
 '''tar -zcvf var-lib-mysql.tgz /var/lib/mysql'''&lt;br /&gt;
 '''tar -zxvf  var-lib-mysql.tgz'''&lt;br /&gt;
 '''rm -rf /var/lib/mysql'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/mysql /var/lib/mysql'''&lt;br /&gt;
 '''tar -zcvf var-lib-phoneprov-tftp.tgz /var/lib/phoneprov-tftp/'''&lt;br /&gt;
 '''tar -zxvf  var-lib-phoneprov-tftp.tgz'''&lt;br /&gt;
 '''rm -rf /var/lib/phoneprov-tftp/'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/phoneprov-tftp /var/lib/phoneprov-tftp'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: En la segunda maquina debemos borrar los directorios y crear los accesos directos.&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''rm -rf /etc/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/etc/asterisk /etc/asterisk'''&lt;br /&gt;
 '''rm -rf /var/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/asterisk /var/lib/asterisk'''&lt;br /&gt;
 '''rm -rf /usr/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/usr/lib/asterisk /usr/lib/asterisk'''&lt;br /&gt;
 '''rm -rf /var/spool/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/spool/asterisk /var/spool/asterisk'''&lt;br /&gt;
 '''rm -rf /var/lib/mysql'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/mysql /var/lib/mysql'''&lt;br /&gt;
 '''rm -rf /var/lib/phoneprov-tftp'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/phoneprov-tftp /var/lib/phoneprov-tftp'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Configurar heartbeat para las dos maquinas.&lt;br /&gt;
: Instalamos heartbeat en las dos maquinas. '''En UBUNTU Server 14.04 ya está instalado.'''&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 aptitude install heartbeat&lt;br /&gt;
|}&lt;br /&gt;
: Debemos modificar 3 ficheros en cada una de las maquinas, estos se encuentran en '''/etc/ha.d'''. El primer fichero a modificar es '''''ha.cf.''''':&lt;br /&gt;
:: En la maquina ''vivaitcall-CL-UAH-1'' es: &lt;br /&gt;
::{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# cat /etc/ha.d/ha.cf&lt;br /&gt;
 '''# Explicacion en /usr/share/doc/heartbeat/ha.cf.gz'''&lt;br /&gt;
 &lt;br /&gt;
 '''udpport 694'''&lt;br /&gt;
 '''baud 19200'''&lt;br /&gt;
 '''auto_failback off'''&lt;br /&gt;
 '''use_logd yes'''&lt;br /&gt;
 '''crm no'''&lt;br /&gt;
 &lt;br /&gt;
 '''# Temporizaciones en segs'''&lt;br /&gt;
 '''logfacility local0'''&lt;br /&gt;
 '''keepalive 2'''&lt;br /&gt;
 '''deadtime 8'''&lt;br /&gt;
 '''warntime 16'''&lt;br /&gt;
 '''initdead 64'''&lt;br /&gt;
 '''deadping 6'''&lt;br /&gt;
 &lt;br /&gt;
 '''#ucast bond0 vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''ucast bond0 vivaitcall-CL-UAH-2'''&lt;br /&gt;
 &lt;br /&gt;
 '''#ucast em3 vivaitcall-CL-UAH-1-em3'''&lt;br /&gt;
 '''ucast em3 vivaitcall-CL-UAH-2-em3'''&lt;br /&gt;
 &lt;br /&gt;
 '''#Ping a puerta de enlace,gw1,gw2,gw3,gw4'''&lt;br /&gt;
 '''ping_group red_local 10.255.255.12'''&lt;br /&gt;
 &lt;br /&gt;
 '''respawn hacluster /usr/lib/heartbeat/ipfail'''&lt;br /&gt;
 '''apiauth ipfail gid=haclient uid=hacluster'''&lt;br /&gt;
 &lt;br /&gt;
 '''node vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''node vivaitcall-CL-UAH-2'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:: Y en la maquina ''vivaitcall-CL-palacio-2'' es:&lt;br /&gt;
::{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# cat /etc/ha.d/ha.cf&lt;br /&gt;
 '''# Explicacion en /usr/share/doc/heartbeat/ha.cf.gz'''&lt;br /&gt;
 &lt;br /&gt;
 '''udpport 694'''&lt;br /&gt;
 '''baud 19200'''&lt;br /&gt;
 '''auto_failback off'''&lt;br /&gt;
 '''use_logd yes'''&lt;br /&gt;
 '''crm no'''&lt;br /&gt;
 &lt;br /&gt;
 '''# Temporizaciones en segs'''&lt;br /&gt;
 '''logfacility local0'''&lt;br /&gt;
 '''keepalive 2'''&lt;br /&gt;
 '''deadtime 8'''&lt;br /&gt;
 '''warntime 16'''&lt;br /&gt;
 '''initdead 64'''&lt;br /&gt;
 '''deadping 6'''&lt;br /&gt;
 &lt;br /&gt;
 '''ucast bond0 vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''#ucast bond0 vivaitcall-CL-UAH-2'''&lt;br /&gt;
 &lt;br /&gt;
 '''ucast em3 vivaitcall-CL-UAH-1-em3'''&lt;br /&gt;
 '''#ucast em3 vivaitcall-CL-UAH-2-em3'''&lt;br /&gt;
 &lt;br /&gt;
 '''#Ping a puerta de enlace gw1 gw2 gw3 gw4'''&lt;br /&gt;
 '''ping_group red_local 10.255.255.12'''&lt;br /&gt;
 &lt;br /&gt;
 '''respawn hacluster /usr/lib/heartbeat/ipfail'''&lt;br /&gt;
 '''apiauth ipfail gid=haclient uid=hacluster'''&lt;br /&gt;
 &lt;br /&gt;
 '''node vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''node vivaitcall-CL-UAH-2'''&lt;br /&gt;
|}&lt;br /&gt;
::'''Nota:''' El parámetro '''auto_failback''' se utiliza para indicar si queremos que al recuperarse una maquina adquiera los recursos sobre los que tiene prioridad.&lt;br /&gt;
:El segundo fichero es '''''authkeys''''',, este fichero es el mismo en ambas maquinas: &lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 chmod 600 authkeys '''(importante)'''&lt;br /&gt;
 auth 1&lt;br /&gt;
 1 sha1 claveSecretaATope&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:El tercer fichero '''haresources''', donde especificaremos en las dos maquinas que deben apuntar a la maquina que queremos que tenga prioridad en la adquisición de los recursos, este fichero es el mismo en las dos maquinas: &lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 MÁQUINA 1 -&amp;gt; vivaitcall-CL-palacio-1 hb_mdtel&lt;br /&gt;
 MÁQUINA 2-&amp;gt; vivaitcall-CL-palacio-1 hb_mdtel &lt;br /&gt;
|}&lt;br /&gt;
: Copiaremos en el directorio '''/etc/ha.d/resource.d/''' los scripts de arranque con permisos 755 (lo podemos hacer mediante WINSCP). Los scripts se encuentran en '''''C:\Documents and Settings\javier.gutierrez.MDTEL\Mis documentos\Centrales\Asterisk\Cluster\scripts'''''.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 chmod 755 hb_catalina&lt;br /&gt;
 chmod 755 hb_mdtel&lt;br /&gt;
 chmod 755 hb_mdtel_firewall&lt;br /&gt;
|}&lt;br /&gt;
: Deberemos editar  el archivo '''hb_mdtel'''&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 (IP flotante a.b.c.d./mask) 10.255.255.10&lt;br /&gt;
 CAD_IP_FLOTA=10.255.255.10/24/bond0&lt;br /&gt;
|}&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* Paramos el proceso '''myAcdSuperv'''.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 mv /etc/rc2.d/S02myAcdSuperv s02myAcdSuperv&lt;br /&gt;
|}&lt;br /&gt;
* Reiniciamos ambas maquinas para que su kernel tome los cambios.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de buen funcionamiento del cluster ====&lt;br /&gt;
* La maquina activa tiene que tener en HDcluster montado el disco con todos sus directorios y la maquina inactiva no (tenemos que ver el archivo que hemos creado &amp;quot;sinMontar&amp;quot;). &lt;br /&gt;
* La ip virtual tiene que estar en la maquina activa (ifconfig)  y no tiene que estar en la inactiva. &lt;br /&gt;
* El asterisk tiene que estar arrancado en la maquina activa y parado en la inactiva. &lt;br /&gt;
* Tecleando la ip de la maquina activa en un navegador debemos acceder al portal de vivait-call y en la inactiva no debe de estar activo. &lt;br /&gt;
* Para cambiar el cluster manualmente podemos utilizar los siguientes comandos:&lt;br /&gt;
:{|&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
  /usr/share/heartbeat/hb_takeover&lt;br /&gt;
|}&lt;br /&gt;
: La maquina desde la que se ejecuta se convierte en la maquina activa&lt;br /&gt;
:{|&lt;br /&gt;
 |- &lt;br /&gt;
 |&lt;br /&gt;
  /usr/share/heartbeat/hb_standby&lt;br /&gt;
 |}&lt;br /&gt;
: La maquina desde la que se ejecuta deja de ser la maquina activa&lt;br /&gt;
&lt;br /&gt;
==== Notas para MySQL ====&lt;br /&gt;
Si mysql es parte del cluster tenemos que tener en cuenta dos cosas:&lt;br /&gt;
&lt;br /&gt;
* El archivo '''/etc/mysql/debían.cnf''' contiene una clave que debe ser igual en ambas maquinas y debe ser la clave de la máquina de donde cojamos la base de datos.&amp;lt;br&amp;gt;&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 # Automatically generated for Debian scripts. DO NOT TOUCH!&lt;br /&gt;
 [client]&lt;br /&gt;
 host     = localhost&lt;br /&gt;
 user     = debian-sys-maint&lt;br /&gt;
 password = AI6AdPtnhLUrNm1S&lt;br /&gt;
 socket   = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysql_upgrade]&lt;br /&gt;
 user     = debian-sys-maint&lt;br /&gt;
 password = AI6AdPtnhLUrNm1S&lt;br /&gt;
 socket   = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 basedir  = /usr&lt;br /&gt;
|} &amp;lt;br&amp;gt;&lt;br /&gt;
* El archivo '''/etc/apparmor.d/usr.sbin.mysqld''' contiene donde pueden estar ubicados los archivos de mysql, al cambiar su ubicación y poner un enlace directo en /var/lib/mysql si no modificamos este archivo mysql no arrancara al no tener la nueva ubicación entre sus localizaciones permitidas. Este es un ejemplo de las líneas que debemos añadir. &amp;lt;br&amp;gt;&lt;br /&gt;
:{|&lt;br /&gt;
|-  &lt;br /&gt;
|&lt;br /&gt;
 /var/run/mysqld/mysqld.sock w, (copiar después de esta linea)&lt;br /&gt;
 &lt;br /&gt;
 #//!!&lt;br /&gt;
   /HDcluster/var/lib/mysql/ r,&lt;br /&gt;
   /HDcluster/var/lib/mysql/** rwk,&lt;br /&gt;
   #//!!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Notas de desincronización ====&lt;br /&gt;
EL servicio del DRBD esta iniciado pero al teclear el comando cat /proc/drbd para ver si esta sincronizando se presenta &amp;quot;'''primary/unknown&amp;quot; y/o secondary/unknown''' &amp;quot;.&lt;br /&gt;
* En el nodo primary  &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 drbdadm connect all &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* En el nodo secondary  &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 drbdadm disconnect all  &lt;br /&gt;
 drbdadm -- --discard-my-data connect all&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Adaptar red a cliente ====&lt;br /&gt;
Para adaptar la red de los equipos al entorno del cliente hay que editar los siguientes ficheros:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 /etc/network/interfaces&lt;br /&gt;
 /etc/resolv.conf&lt;br /&gt;
 /etc/hosts&lt;br /&gt;
 /etc/ha.d/resource.d/hb_mdtel&lt;br /&gt;
 /etc/ha.d/ha.cf &lt;br /&gt;
 - TFTP: &lt;br /&gt;
 /etc/inetd.conf (IP del cluster)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
Tras la modificaciones oportunas, se debe reiniciar las dos máquinas para cargar las nuevas configuraciones.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Matriz de conmutación ===&lt;br /&gt;
&lt;br /&gt;
Encontramos dos diferentes núcleos de conmutación en la plataforma VIVAit:&lt;br /&gt;
&lt;br /&gt;
* Para los nodos de procesamiento ACD el núcleo de conmutación es asterisk 1.4 RSP con fuertes modificaciones realizadas por MDtel en determinados módulos (queues, chan_spy entre otros)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Para los nodos que realizan funcionalidad de gateway y/o procesamiento de telefonía corporativa, se utiliza como núcleo de conmutación asterisk 13, versión certified&lt;br /&gt;
https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Documentation&lt;br /&gt;
&lt;br /&gt;
==== Modificaciones realizadas sobre Asterisk 13 certified 2 ====&lt;br /&gt;
&lt;br /&gt;
===== Archivos añadidos por '''MD'''tel =====&lt;br /&gt;
Los archivos añadidos son los siguientes:&lt;br /&gt;
&lt;br /&gt;
* '''apps/app_ucid.c'''&lt;br /&gt;
* '''apps/app_cli.c'''&lt;br /&gt;
* '''apps/app_crash.c'''&lt;br /&gt;
* '''apps/app_mdintz.c'''&lt;br /&gt;
* '''apps/app_mdintz.exports.in'''&lt;br /&gt;
* '''include/asterisk/mdintz.h'''&lt;br /&gt;
* '''include/asterisk/ucid.h'''&lt;br /&gt;
* '''res/res_mdcal.c'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ apps/app_mdintz.exports.in '''&lt;br /&gt;
&lt;br /&gt;
Este archivo sirve para la exportación de funciones del mdintz para el uso por aplicaciones externas&lt;br /&gt;
&lt;br /&gt;
===== Modificaciones de archivos =====&lt;br /&gt;
&lt;br /&gt;
Los archivos modificados por '''MD'''tel son los mostrados a continuación:&lt;br /&gt;
&lt;br /&gt;
* '''apps/app_mixmonitor.c''' &lt;br /&gt;
* '''res/res_calendar_caldav.c'''&lt;br /&gt;
* '''contrib/scripts/safe_asterisk'''&lt;br /&gt;
* '''contrib/init.d/rc.debian.asterisk'''&lt;br /&gt;
* '''channels/sig_pri.c'''&lt;br /&gt;
* '''channels/chan_sip.c'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ main/audiohook.c''' &amp;lt;!--style=&amp;quot;color:#0000ff&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''audiohook.c''' ha sido modificado para solucionar un crash de asterisk al utilizar en el mixmonitor las opciónes r y t &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ app_crash.c '''&lt;br /&gt;
&lt;br /&gt;
Esta nueva aplicación es sólo compatible con '''Asterisk 13'''. &lt;br /&gt;
&lt;br /&gt;
La documentación de la misma se encuentra en el comando: '''&amp;quot;core show application Crash&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
Esta nueva aplicación ''permite añadir'' al plan de pruebas:&lt;br /&gt;
&lt;br /&gt;
* Generación de una parada de asterisk.&lt;br /&gt;
* Verificación de su impacto. Por ejemplo, no deben cortarse las llamadas en curso, si así está previsto por la topología.&lt;br /&gt;
* Correcta generación de los &amp;quot;core&amp;quot;, comprobando que funciona &amp;quot;backtrace&amp;quot; (bt).&lt;br /&gt;
&lt;br /&gt;
 '''Nota.-''' Esta aplicación no debería estar presente en una instalación de '''Asterisk 13'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ app_mdintz.c y mdintz.h''' &amp;lt;!--style=&amp;quot;color:#0000ff&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esta aplicación sirve como interfaz a entornos (funcionalidades) creados por MDtel&lt;br /&gt;
&lt;br /&gt;
Para mas información consultar la página de [[MDintz|MDintz]].&lt;br /&gt;
&lt;br /&gt;
Las rutas de estos archivos son las siguientes:&lt;br /&gt;
&lt;br /&gt;
'''apps/app_mdintz.c''' &amp;lt;br/&amp;gt;&lt;br /&gt;
'''include/asterisk/mdintz.h '''&lt;br /&gt;
&lt;br /&gt;
 '''app_mdintz.c''' :&lt;br /&gt;
&lt;br /&gt;
'''app_mdintz.c''' orientada al proceso de enrutamiento a implementar en ''intz-nimitz.''&lt;br /&gt;
&lt;br /&gt;
El archivo '''.c''' es casi igual para asterisk 1.4.24 y asterisk 13. &lt;br /&gt;
 '''Nota.-''' Cuando se compila para asterisk 13, es necesario comentar la línea que pone&amp;lt;br /&amp;gt; '''&amp;quot;#define ASTERISK_OLD&amp;quot;.'''&lt;br /&gt;
&lt;br /&gt;
Los cambios implementados son:&lt;br /&gt;
&lt;br /&gt;
* Unificación de código entre las versiones de asterisk&lt;br /&gt;
* Nuevo comando &amp;quot;qry&amp;quot;&lt;br /&gt;
* Posible resolución de &amp;quot;Mal write&amp;quot; en intz-nimitz (a verificar)&lt;br /&gt;
&lt;br /&gt;
En cuanto al nuevo comando, el formato es:&lt;br /&gt;
&lt;br /&gt;
 '''mdintz qry &amp;lt;nHostFijo&amp;gt; &amp;lt;entorno&amp;gt; &amp;lt;servicio&amp;gt; &amp;lt;par1&amp;gt;...&amp;lt;parN&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Permite interrogar a un servidor de igual modo que hace el dialplan con '''fines de diagnóstico'''. La única diferencia es que se ha añadido el parámetro '''&amp;quot;nHostFijo&amp;quot;''' que puede tomar como valor '''&amp;quot;*&amp;quot;''' (lo que solicita una interrogación secuencial a todos los servidores definidos, igual a la funcionalidad del dialplan) ó '''&amp;quot;0&amp;quot;''' a '''&amp;quot;3&amp;quot;''' (que solicita un interrogación dirigida el host indicado como hostN, y sólo a él, en archivo de configuración).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para instalarlo, es necesario copiar:&lt;br /&gt;
&lt;br /&gt;
* '''asterisk/apps/app_mdintz.c'''&lt;br /&gt;
* '''asterisk/include/asterisk/mdintz.h'''&lt;br /&gt;
* En asterisk 1.4.24 conviene asegurar que se ha actualizado '''&amp;quot;asterisk/apps/app_queue.o&amp;quot;''' y '''&amp;quot;asterisk/apps/app_queue.so&amp;quot;'''&lt;br /&gt;
* Luego '''&amp;quot;make&amp;quot;, &amp;quot;make install&amp;quot;''' y module '''&amp;quot;unload/load&amp;quot;''' (mejor &amp;quot;stop now&amp;quot; y start)&lt;br /&gt;
&lt;br /&gt;
'''→ scripts y rc.debian.asterisk'''&lt;br /&gt;
&lt;br /&gt;
cambiado contrib/scripts por el modificado por MDtel&amp;lt;br /&amp;gt;&lt;br /&gt;
cambiado contrib/init.d/rc.debian.asterisk por el modificado por MDtel &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ Carpeta mp3 añadida al directorio addons'''&lt;br /&gt;
&lt;br /&gt;
La carpeta mp3 en addons permite la reproducción desde el diaplan de los mensajes en mp3. En make menuselect hay que marcar el format_mp3 y app_mp3 e instalar el paquete mpg123 de ubuntu &lt;br /&gt;
&lt;br /&gt;
'''→ sig_pri.c'''&lt;br /&gt;
&lt;br /&gt;
Modificado para enviar/recibir el ucid en un primario qsig &lt;br /&gt;
&lt;br /&gt;
Para que se envie el ucis tenemos que habilitar el envio de facilidades en el chan_dahdi.conf&lt;br /&gt;
&lt;br /&gt;
facilityenable = yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ init.d''' &amp;lt;!--style=&amp;quot;color:#0000ff&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Uno de los archivos modificados ha sido '''init.d''', se encuentra en la ruta: '''/etc/init.d/asterisk'''. La modificación realizada es la siguiente:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;background-color:#ffffcc;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| SAFE_ASTEISK=/usr/sbin/safe_asterisk &amp;lt;br/&amp;gt;&lt;br /&gt;
if [ -x $SAFE_ASTERISK ] ; then&amp;lt;br/&amp;gt;&lt;br /&gt;
:# //!! wkw&amp;lt;br/&amp;gt;&lt;br /&gt;
:DAEMON=$SAFE_ASTERISK&amp;lt;br/&amp;gt;&lt;br /&gt;
fi&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--archivo--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''→ safe-asterisk'''&lt;br /&gt;
* Se encuentra en la siguiente ruta:'''/usr/sbin/safe-asterisk''' .En este archivo se ha modificado MAXFILES=32768&lt;br /&gt;
&lt;br /&gt;
'''→ default'''&lt;br /&gt;
&lt;br /&gt;
* Este fichero podemos encontrarlo en: '''/etc/default/asterisk'''. La finalidad de la modificación de este fichero es poder correr como usuario Asterisk, grupo asterisk y generar cores (descomentar línea)&lt;br /&gt;
Las modificaciones realizadas han sido:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;background-color:#ffffcc;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| AST_USER=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
AST_GROUP=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
COREDUMP=yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Nueva función de asterisk: app_cli.so =====&lt;br /&gt;
&lt;br /&gt;
Esta función permite ejecutar desde el '''dialplan''' un comando de línea de consola de '''asterisk (CLI).''' Su primer uso (y esperamos que no último) será para lanzar los '''notify''' que los teléfonos necesitan para el ''reaprovisionamiento'' desde el portal o desde la facilidad de movilidad de usuario.&lt;br /&gt;
&lt;br /&gt;
Básicamente ejecuta un comando y devuelve su salida. Utiliza un archivo intermedio que puede ser:&lt;br /&gt;
&lt;br /&gt;
* '''/dev/null''' si el campo se deja vacío, por tanto, no se puede recuperar la salida.&lt;br /&gt;
* '''TEMP''', en cuyo caso se crea un archivo temporal que se borra antes de finalizar la ejecución de la función.&lt;br /&gt;
* Un nombre de fichero que es responsabilidad del dialplan el borrarlo cuando proceda.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para instalarlo basta copiar '''apps/app_cli.c''' en el directorio ''' &amp;quot;apps&amp;quot; ''' de los fuentes y luego  ejecutar '''&amp;quot;make&amp;quot; y &amp;quot;make install&amp;quot;.'''&lt;br /&gt;
&lt;br /&gt;
A continuación se pasa el resultado de '''&amp;quot;core show function CLI&amp;quot; '''&lt;br /&gt;
&lt;br /&gt;
'''[Synopsis]'''&lt;br /&gt;
&lt;br /&gt;
 Lanza un comando CLI desde dialplan&lt;br /&gt;
&lt;br /&gt;
'''[Description]''' &amp;lt;br /&amp;gt;&lt;br /&gt;
 - CLI(nomArchSal,cmd)&amp;lt;br /&amp;gt;&lt;br /&gt;
 - Si 'nomArchSal' está vacio, se usa '/dev/null' y no se recupera resultado&amp;lt;br /&amp;gt;&lt;br /&gt;
 - Si 'nomArchSal'=TEMP, Se crea un archivo temporal que se borra al final&amp;lt;br /&amp;gt;&lt;br /&gt;
 - En otro caso, se crea el archivo y no se borra&lt;br /&gt;
&lt;br /&gt;
'''[Syntax]'''&amp;lt;br /&amp;gt;&lt;br /&gt;
 CLI(nomArchSal,cmd)&lt;br /&gt;
&lt;br /&gt;
'''[Arguments]'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''nomArchSal'''&lt;br /&gt;
    Archivo de salida (si se omite, /dev/null)&lt;br /&gt;
'''cmd'''&lt;br /&gt;
    Comando a ejecutar via CLI&lt;br /&gt;
&lt;br /&gt;
==== Dialplan  ====&lt;br /&gt;
&lt;br /&gt;
El Dialplan podría considerarse la columna vertebral del sistema ''Asterisk''.&lt;br /&gt;
&lt;br /&gt;
Es una colección ordenada de acciones que se llevan a cabo cuando un usuario marca una serie de números. Hace la función de una tabla de enrutamiento de llamadas.&lt;br /&gt;
&lt;br /&gt;
Todas las configuraciones generales de Asterisk están accesibles en la ruta '''/etc/asterisk'''&lt;br /&gt;
&lt;br /&gt;
'''CONCEPTOS BÁSICOS'''&lt;br /&gt;
&lt;br /&gt;
♦ '''EXTENSIONES'''&lt;br /&gt;
&lt;br /&gt;
Una extensión es una marcación en el teclado de un teléfono. Dicha configuración podemos encontrarla en el archivo '''extensions.conf''' &lt;br /&gt;
&lt;br /&gt;
Por ejemplo, un usuario podría marcar “3001” en su teléfono, y eso sería una extensión. También podría marcar un número de teléfono nacional, como por ejemplo “915881000”, y también sería una extensión.&lt;br /&gt;
&lt;br /&gt;
En Asterisk pueden definirse también extensiones como texto, por tanto no debemos relacionar las extensiones únicamente con números.&lt;br /&gt;
&lt;br /&gt;
Algunas reglas que sería interesante conocer serían las siguientes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Regla''' !! '''Descripción'''&lt;br /&gt;
|-&lt;br /&gt;
| '''X''' || Cualquier cifra de 0 a 9&lt;br /&gt;
|-&lt;br /&gt;
|'''Z'''||Cualquier cifra de 1 a 9&lt;br /&gt;
|-&lt;br /&gt;
|'''N'''||Cualquier cifra de 2 a 9&lt;br /&gt;
|-&lt;br /&gt;
|'''[x-y]'''||Cualquier cifra de &amp;quot;x&amp;quot; a &amp;quot;y&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''[xyz]'''|| 	Las cifras &amp;quot;x&amp;quot;, &amp;quot;y&amp;quot; o &amp;quot;z&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''.'''||Una o más repeticiones del símbolo anterior&lt;br /&gt;
|-&lt;br /&gt;
|'''!'''||Cero o más repeticiones del símbolo anterior&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Estas reglas son necesarias a la hora de definir por ejemplo todos los números de teléfono posibles en España &lt;br /&gt;
&lt;br /&gt;
♦ '''PRIORIDADES'''&lt;br /&gt;
&lt;br /&gt;
En lenguaje scripting, las acciones se van ejecutando de arriba a abajo en orden. En cambio, en Asterisk, el orden en el que se ejecutan las acciones es el indicado mediante números.&lt;br /&gt;
Primero se ejecutará la acción 1, luego la 2...así sucesivamente.&lt;br /&gt;
&lt;br /&gt;
Es decir no basta con definir las acciones que se llevarán a cabo, también debemos indicar el orden en el que se llevarán a cabo.&lt;br /&gt;
&lt;br /&gt;
♦ '''CONTEXTOS'''&lt;br /&gt;
&lt;br /&gt;
Es mecanismo que nos permite variar el comportamiento del sistema en función del número que se marque. Su misión es aumentar la seguridad del sistema ofreciendo servicios diferenciados en función del usuario.&lt;br /&gt;
&lt;br /&gt;
La sintaxis típica es el nombre del contexto englobado entre corchetes [nombre_contexto]. Si un dispositivo no tiene un contexto definido se redirige directamente al contexto por defecto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los ficheros que conforman el Dialplan se clasifican en:&lt;br /&gt;
&lt;br /&gt;
* '''Generales'''&lt;br /&gt;
* '''Particulares'''&lt;br /&gt;
* '''Web'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Fichero''' !! '''Función'''&lt;br /&gt;
|-&lt;br /&gt;
| '''Generales''' || Se encuentran los ficheros de propios de MDtel y Asterisk. Es importante remarcar que estos ficheros NO pueden ser modificados por el usuario.&lt;br /&gt;
|-&lt;br /&gt;
|'''Particular'''||Estos ficheros son los únicos que puede modificar el usuario&lt;br /&gt;
|-&lt;br /&gt;
|'''Web'''|| Se encierran aquí los archivos generados automáticamente por la plataforma, a través del portal&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
En función del nodo en el que estemos trabajando, encontraremos dos tipos de dialplan:&lt;br /&gt;
&lt;br /&gt;
'''* Dialplan ACD''' --&amp;gt; Dialplan que aplica a nodos ACD&lt;br /&gt;
&lt;br /&gt;
'''* Dialplan corporativa''' --&amp;gt; Dialplan que aplica a nodos de corporativa o gateways (ya sean de corporativa o ACD)&lt;br /&gt;
&lt;br /&gt;
A continuación se muestran las tablas con los ficheros correspondientes a cada Dialplan.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;FloralWhite&amp;quot;&lt;br /&gt;
|+ '''Ficheros de configuración Dialplan Corporativo'''&lt;br /&gt;
| '''GENERALES'''&lt;br /&gt;
| '''PARTICULARES'''&lt;br /&gt;
| '''WEB'''&lt;br /&gt;
|-&lt;br /&gt;
| ext_Grabaciones.conf &amp;lt;br /&amp;gt;ext_InicioLlamada.conf &amp;lt;br /&amp;gt; ext_InicioLlamada_Dahdi.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP.conf &amp;lt;br/&amp;gt;ext_InicioLlamada_TrunkSIP.conf &amp;lt;br /&amp;gt;ext_MARCAR_ColaCentralita.conf &amp;lt;br /&amp;gt; ext_MARCAR_ColaCentralita_Dial.conf&amp;lt;br /&amp;gt; ext_MARCAR_Cola.conf &amp;lt;br /&amp;gt;ext_MARCAR_Cola_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR.conf  &amp;lt;br /&amp;gt; ext_MARCAR_DejarMensaje.conf &amp;lt;br /&amp;gt; ext_MARCAR_DejarMensaje_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Extension.conf&amp;lt;br /&amp;gt;ext_MARCAR_Extension_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_nimitz.conf&amp;lt;br /&amp;gt;ext_MARCAR_Interno.conf &amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje.conf &amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR_Nodo.conf&amp;lt;br /&amp;gt;ext_MARCAR_Nodo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Servicios.conf &amp;lt;br /&amp;gt;ext_MARCAR_VDN.conf &amp;lt;br /&amp;gt;MARCAR_VDN_Dial.conf&amp;lt;br /&amp;gt;ext_MDtel.conf &amp;lt;br /&amp;gt;ext_MDtel_Var.conf &amp;lt;br /&amp;gt;ext_Subrutinas_AnchoBanda.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD_Facilidad.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD_Facilidad.conf &amp;lt;br /&amp;gt; ext_Subrutinas_Colas.conf &amp;lt;br /&amp;gt;ext_Subrutinas.conf &amp;lt;br /&amp;gt;ext_Subrutinas_Enrutamiento.conf &amp;lt;br /&amp;gt;ext_Subrutinas_finLlamada.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Grabacion.conf&amp;lt;br /&amp;gt;ext_Subrutinas_nimitz.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Varias.conf&amp;lt;br /&amp;gt;ext_Subscribe.conf&amp;lt;br /&amp;gt;ext_Transfer.conf &amp;lt;br /&amp;gt;ext_Transfer_ExtSIP.conf&amp;lt;br /&amp;gt;ext_Transfer_TrunkInternos.conf &amp;lt;br /&amp;gt;ext_TrunkInternos.conf&amp;lt;br /&amp;gt;ext_TrunkInternos_Dial.conf &amp;lt;br /&amp;gt;sip_Estatico.conf&amp;lt;br /&amp;gt; sip_GENCUST.conf &amp;lt;br /&amp;gt;sip_notify.conf &amp;lt;br /&amp;gt;queues.conf &amp;lt;br /&amp;gt; queues_GENERAL.conf &amp;lt;br /&amp;gt;queues_PLANTILLACOLAS.conf&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| ext_Enrutador_Particular.conf&amp;lt;br /&amp;gt; ext_InicioLlamada_Dahdi_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_Particular.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_TrunkSIP_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_Extension_Particular.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo_Particular.conf &amp;lt;br/&amp;gt; ext_MARCAR_Facilidad_Particular.conf&amp;lt;br /&amp;gt; ext_MARCAR_VDN_Particular.conf &amp;lt;br /&amp;gt;ext_MDtel_Particular.conf &amp;lt;br/&amp;gt; ext_TrunkInternos_Particular.conf &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|asterisk_WEB.conf &amp;lt;br /&amp;gt; ext_MDtel_WEB.conf &amp;lt;br /&amp;gt; sip_trunkExt_WEB.conf &amp;lt;br /&amp;gt;sip_trunkInt_WEB.conf &amp;lt;br /&amp;gt;sip_trunk_WEB.conf &amp;lt;br /&amp;gt; sip_WEB.conf &amp;lt;br /&amp;gt; queues_WEB.conf&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;FloralWhite&amp;quot;&lt;br /&gt;
|+ '''Ficheros de configuración Dialplan ACD'''&lt;br /&gt;
| '''GENERALES'''&lt;br /&gt;
| '''PARTICULARES'''&lt;br /&gt;
| '''WEB'''&lt;br /&gt;
|-&lt;br /&gt;
| ext_Enrutador.conf&amp;lt;br /&amp;gt;ext_Grabaciones.conf &amp;lt;br /&amp;gt; ext_InicioLlamada.conf &amp;lt;br /&amp;gt; ext_InicioLlamada_CTI.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_Dahdi.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_Marcador.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_TrunkSIP.conf &amp;lt;br /&amp;gt;ext_MARCAR_ColaCentralita.conf &amp;lt;br /&amp;gt;ext_MARCAR_ColaCentralita_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR_Cola.conf &amp;lt;br /&amp;gt;ext_MARCAR_Cola_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR.conf &amp;lt;br /&amp;gt;ext_MARCAR_DejarMensaje.conf &amp;lt;br /&amp;gt;ext_MARCAR_DejarMensaje_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Extension.conf &amp;lt;br /&amp;gt;ext_MARCAR_Extension_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_nimitz.conf&amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje.conf &amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Nodo.conf &amp;lt;br /&amp;gt;ext_MARCAR_Nodo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR_Servicios.conf &amp;lt;br /&amp;gt;ext_MARCAR_VDN.conf &amp;lt;br /&amp;gt;ext_MARCAR_VDN_Dial.conf&amp;lt;br /&amp;gt;ext_MDtel.conf &amp;lt;br /&amp;gt;ext_MDtel_Var.conf &amp;lt;br /&amp;gt;ext_Subrutinas_AnchoBanda.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD_Facilidad.conf &amp;lt;br /&amp;gt; ext_Subrutinas_Colas.conf &amp;lt;br /&amp;gt;ext_Subrutinas.conf &amp;lt;br /&amp;gt;ext_Subrutinas_Enrutamiento.conf &amp;lt;br /&amp;gt; ext_Subrutinas_finLlamada.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Grabacion.conf &amp;lt;br /&amp;gt;ext_Subrutinas_nimitz.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Varias.conf &amp;lt;br /&amp;gt;ext_Subscribe.conf&amp;lt;br /&amp;gt;ext_Transfer.conf &amp;lt;br /&amp;gt;ext_Transfer_ExtSIP.conf&amp;lt;br /&amp;gt;ext_Transfer_TrunkInternos.conf &amp;lt;br /&amp;gt;ext_TrunkInternos.conf &amp;lt;br /&amp;gt;ext_TrunkInternos_Dial.conf &amp;lt;br /&amp;gt;queues_GENERAL.conf&amp;lt;br /&amp;gt;queues_PLANTILLACOLAS.conf &amp;lt;br /&amp;gt;sip_GENCUST.conf &amp;lt;br /&amp;gt;sip_GENERAL.conf &amp;lt;br /&amp;gt;sip_notify.conf &amp;lt;br /&amp;gt;sip_PLANTILLAEXT.conf&amp;lt;br /&amp;gt;sip_supervision.conf &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| ext_Enrutador_Particular.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_CTI_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_Dahdi_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_Marcador_Particular.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_Particular.conf.&amp;lt;br /&amp;gt;ext_InicioLlamada_TrunkSIP_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_Externo_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_VDN_Particular.conf&amp;lt;br /&amp;gt; ext_MDtel_Particular.conf&amp;lt;br /&amp;gt;ext_TrunkInternos_Particular.conf&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
|asterisk_WEB.conf &amp;lt;br /&amp;gt; ext_MDtel_WEB.conf &amp;lt;br /&amp;gt;queues_WEB.conf&amp;lt;br /&amp;gt; sip_trunkInt_WEB.conf &amp;lt;br /&amp;gt;sip_WEB.conf &amp;lt;br /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Servicios networking ===&lt;br /&gt;
Son muy importantes las configuraciones adecuadas de los servicios de:&lt;br /&gt;
&lt;br /&gt;
* '''NTP''': El sistema en global ha de estar sincronizado; todos los servidores y puestos de trabajo (en el caso de ''VIVA''it Suite) han de estar perfectamente sincronizados; los servidores de la plataforma se sincronizarán con el NTP del cliente; si el cliente no tiene NTP será necesario que un servidor de la plataforma se sincronice con un NTP externo y este sea el servidor para el resto de la plataforma&lt;br /&gt;
&lt;br /&gt;
* '''DNS''': La configuración de DNS de la plataforma será coherente con el resto de la plataforma IT del cliente&lt;br /&gt;
&lt;br /&gt;
* '''DHCP''': Es necesario coordinar con el cliente la asignación de direcciones para los diferentes elementos de la plataforma '''''VIVA'''''it, fundamentalmente para terminales telefónicos; en este caso además será necesario activa la opción 66 que permitirá definir el servidor TFTP del que los terminales cogerán sus ficheros de aprovisionamiento&lt;br /&gt;
&lt;br /&gt;
=== Bases de datos (BBDD)===&lt;br /&gt;
&lt;br /&gt;
La base de datos del sistema se basa en el motor de base de datos MySQL, es un elemento crítico del sistema, en el que insertan y del que obtiene mucha información múltiples procesos.&lt;br /&gt;
Muchas comunicaciones entre procesos se realizan vía Base de Datos (tabla COM_COMUNICADOS). Pueden existir distintas instancias de base de datos que explicadas en las siguientes secciones, nuestra base de datos tiene la siguiente estructura: [[Base de datos|Información completa de la BD]]. Podéis ampliar más información en https://dev.mysql.com/doc/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== BBDD Tiempo Real ====&lt;br /&gt;
En la base de datos de tiempo real insertan información todos los procesos del sistema, y se realizan los cambios en configuración utilizando como herramienta el portal de administración y '''''VIVA'''''it Supervisor&lt;br /&gt;
&lt;br /&gt;
De la base de datos de tiempo real leen los procesos que requieren información, y las aplicaciones:&lt;br /&gt;
*'''''VIVA'''''it Supervisor (para reporting de tiempo real)&lt;br /&gt;
*PanelWeb&lt;br /&gt;
*Datos de sesión de '''''VIVA'''''it Desk&lt;br /&gt;
*Monitorización Zabbix&lt;br /&gt;
* Otros&lt;br /&gt;
&lt;br /&gt;
El portal de administración se encarga de escribir las configuraciones añadidas o modificadas en la base de datos&lt;br /&gt;
&lt;br /&gt;
==== BBDD Réplica ====&lt;br /&gt;
A efectos de asegurar las prestaciones del sistema, se establece una réplica de la base de datos, sincronizada con la de tiempo real; los procesos y aplicaciones pesados, que realicen consultas a las base de datos que puedan comprometer las prestaciones del sistema atacan a la réplica y nunca a la base de datos de tiempo real&lt;br /&gt;
&lt;br /&gt;
Es posible que en instalaciones pequeñas no exista réplica, en cuyo caso se establece una base de datos unificada sobre la de tiempo real, en la que se añaden índices y procedimientos almacenados que típicamente residen en la de réplica.&lt;br /&gt;
&lt;br /&gt;
Es posible establecer tantas réplicas como sean necesarias si diferentes procesos pesados se penalizan en exceso, si bien una implantación tipo contemplará una sola&lt;br /&gt;
&lt;br /&gt;
Algunos procesos que utilizan la base de datos de réplica son:&lt;br /&gt;
*'''''VIVA'''''it Reporting&lt;br /&gt;
*'''''VIVA'''''it Tracker&lt;br /&gt;
*Histórico en tiempo real de '''''VIVA'''''it Supervisor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANTE: Ningún proceso, programa, aplicación, etc. escribe en la base de datos de réplica; tan solo se extrae información'''&lt;br /&gt;
&lt;br /&gt;
==== BBDD de copia ====&lt;br /&gt;
A efectos de asegurar el funcionamiento y como medida de contingencia ante un problema puntual de comunicación con la BD de tiempo real, en cada nodo disponemos de una BD de copia local. Posiblemente de un tamaño menor que la BD de tiempo real, dependiendo de cuanto tiempo pase hasta la próxima sincronización con la base de tiempo real.Esta base de datos llamada '''nimitzCopia'''.&lt;br /&gt;
  &lt;br /&gt;
Solo entrara en funcionamiento,cuando se produzca el problema mencionado, dejando acceder a los datos y poder dar servicio a la empresa mientras se soluciona el problema.&lt;br /&gt;
&lt;br /&gt;
===== Backup y restore =====&lt;br /&gt;
&lt;br /&gt;
Se utilizan dos script, para realizar la copia de seguridad y restaurar en la base de datos de copia local que son:&lt;br /&gt;
&lt;br /&gt;
* El proceso '''bdCentral.sh''' que es el encargado de realizar la copia de seguridad. Tiene un archivo de configuración bdCentral.conf. En este archivo hay un parámetro (IGNORE_TABLAS) que indica las tablas de las que NO se realizará copia de seguridad. Toda tabla que no se indique formará parte de la copia de seguridad. Vuelca los resultados en /var/log/bdCentral.log&lt;br /&gt;
* El proceso '''bdNodo.sh''' que es el encargado de descargar la copia de seguridad y restaurarla en local. Tiene un archivo de configuración bdNodo.conf. Vuelca los resultados en /var/log/bdNodo.log. El fichero de backup se copia mediante el usuario sincroniza, que deberá poder acceder sin contraseña al servidor donde reside la copia.&lt;br /&gt;
&lt;br /&gt;
En caso de producirse algún error en alguno de los procesos, marcarán dicho error en el log con una línea que comienza con la cadena &amp;quot;*ERROR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Diagnósticos y operaciones sobre bases de datos ====&lt;br /&gt;
&lt;br /&gt;
=====Comprobación que una base de datos está arrancada=====&lt;br /&gt;
Para comprobar si la base de datos está arrancada debemos poner en el terminal : '''ps aux | grep mysql'''&lt;br /&gt;
&lt;br /&gt;
Si la base de datos está arrancada y funcionando correctamente se nos mostrará en el terminal:&lt;br /&gt;
[[Archivo:Base_Datos_bien.png‎ |500px|center]]&lt;br /&gt;
&lt;br /&gt;
Por el contrario, si la base de datos presenta algun problema el mensaje mostrado será:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Base_datos_mal.png |center]]&lt;br /&gt;
&lt;br /&gt;
=====Comprobación que la base de datos de réplica está sincronizada con la base de datos de tiempo real.=====&lt;br /&gt;
&lt;br /&gt;
Si se necesita verificar que la base de réplica está sincronizada con la base de datos en tiempo real basta con acudir al comando : '''show slave status\G'''.&lt;br /&gt;
&lt;br /&gt;
Una vez introducido veremos:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Replica.png |980px|center]]&lt;br /&gt;
&lt;br /&gt;
Comandos importantes, desde dentro consola de Mysql:&lt;br /&gt;
&lt;br /&gt;
 '''show master status''': Realizado desde el master&lt;br /&gt;
 '''show slave status''': Realizado desde el esclavo; el valor &amp;quot;seconds behind master&amp;quot; nos indica&lt;br /&gt;
 cuanto está retrasada la réplica con respecto a la base de datos de tiempo real. Si el valor de este campo es elevado nos indicará &lt;br /&gt;
 que la base de datos real con la réplica no estará sincronizada, por tanto, nos interesa que este valor sea lo más pequeño posible.&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Procesos propios ===&lt;br /&gt;
&lt;br /&gt;
==== bdCentral ====&lt;br /&gt;
&lt;br /&gt;
El proceso ''bdCentral.sh'' es el encargado de realizar la copia de seguridad. Tiene un archivo de configuración ''bdCentral.conf'' el cual puede encontrarse en la ruta '''/etc/MDtel/bdCentral.conf'''. En este archivo hay un parámetro (IGNORE_TABLAS) que indica las tablas de las que NO se realizará copia de seguridad. Toda tabla que no se indique formará parte de la copia de seguridad. Vuelca los resultados en /var/log/bdCentral.log&lt;br /&gt;
&lt;br /&gt;
En caso de producirse algún error, se marcará dicho error en el log con una línea que comienza con la cadena &amp;quot;*ERROR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Para ejecutar bdCentral:&lt;br /&gt;
 bdCentral.sh /etc/MDtel/bdCentral.conf&lt;br /&gt;
&lt;br /&gt;
Estos procesos se ejecutan automáticamente. Para ello está copiado el fichero bdCentral a /etc/cron.d.&lt;br /&gt;
&lt;br /&gt;
Por defecto la programación vienen comentada por lo que será necesario activarlo.&lt;br /&gt;
&lt;br /&gt;
Para que se roten los logs hay que copiar el fichero bdCentral.logrotate a /etc/logrotate.d (como bdCentral)&lt;br /&gt;
La ruta donde se encuentran los logs es la siguiente: '''/var/log/myAcdSuperv.log'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
*A continuación se explica la utilidad de los campos mas relevantes del fichero de configuración bdCentral.conf. &lt;br /&gt;
ARCH_LOG : &lt;br /&gt;
BDHOST: Localización de la base de datos&lt;br /&gt;
BDUSU: Usuario para la base de datos&lt;br /&gt;
BDRUTA: Ruta donde se encuentra la base de datos&lt;br /&gt;
IGNORE_TABLAS:&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== bdNodo ====&lt;br /&gt;
El proceso bdNodo.sh es el encargado de descargar la copia de seguridad y restaurarla en local. Tiene un archivo de configuración bdNodo.conf, este archivo puede encontrarse en la ruta '''/etc/MDtel/bdNodo.conf.''' Vuelca los resultados en /var/log/bdNodo.log. El fichero de backup se copia mediante el usuario sincroniza, que deberá poder acceder sin contraseña al servidor donde reside la copia.&lt;br /&gt;
&lt;br /&gt;
En caso de producirse algún error, se marcará dicho error en el log con una línea que comienza con la cadena &amp;quot;*ERROR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Para ejecutar bdNodo:&lt;br /&gt;
&lt;br /&gt;
 bdNodo.sh /etc/MDtel/bdNodo.conf&lt;br /&gt;
&lt;br /&gt;
Estos procesos se ejecutan automáticamente. Para ello está copiado el fichero bdNodo a /etc/cron.d.&lt;br /&gt;
&lt;br /&gt;
Por defecto la programación vienen comentada por lo que será necesario activarlo.&lt;br /&gt;
&lt;br /&gt;
Para que se roten los logs hay que copiar el fichero bdNodo.logrotate a /etc/logrotate.d (como bdNodo)&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Intz-Nimitz ====&lt;br /&gt;
&lt;br /&gt;
Permite integrar procesos de asterisk (del dialplan) con la base de datos; por ejemplo es el que graba segmentos, inspecciona donde esta registrado un agente…etc. La estabilidad de este proceso es importante para el funcionamiento del sistema, si bien las llamadas entran en caso de no estar disponible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para mas información consultar la página de [[intz-nimitz|intz-nimitz]].&lt;br /&gt;
&lt;br /&gt;
Desde un SSH ejecuta el comando “nc ip_maquina 1115”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1115'''&lt;br /&gt;
 intz-nimitz sis ver='V02.6' inic='20140401 110116' alarmas=21 ultAlar='20140414 171244'&lt;br /&gt;
 intz-nimitz gmp msj=942/1024 buf=1024/1024 tarea=16/102&lt;br /&gt;
 intz-nimitz tmp uptime=1816550 (21d 0h 35m 50s)&lt;br /&gt;
 intz-nimitz vic identif='cms1' entorno='nimitz' conx=0/128 numConx=1018(0)&lt;br /&gt;
 intz-nimitz mys curro=80/0/0/0 soli=1012(0) soliErr=6(0) soliEncol=0(0/0)&lt;br /&gt;
 intz-nimitz cache colas=128/10/0/0 vdn=128/8/0/0 usuExten=10/0/0/0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parámetro!!Descripción&lt;br /&gt;
|-&lt;br /&gt;
|sis/ver||Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|sis/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|Sis/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|Sis/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/msj||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/buf||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/tarea||&lt;br /&gt;
|-&lt;br /&gt;
|Tmp/uptime||Tiempo que lleva el servicio activo&lt;br /&gt;
|-&lt;br /&gt;
|Vic/identif||Etiqueta de identificación del servicio&lt;br /&gt;
|-&lt;br /&gt;
|Vic/entorno||Entorno de base de datos&lt;br /&gt;
|-&lt;br /&gt;
|Vic/conx||Conexiones activas/conexiones máximas&lt;br /&gt;
|-&lt;br /&gt;
|Vic/numConx||Conexiones totales (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|Mys/curro||Número de hilos contra la base de datos&lt;br /&gt;
|-&lt;br /&gt;
|Mys/soli||Conexiones solicitadas (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|Mys/soliErr||Conexiones solicitadas con error (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|Mys/soliEncol||Conexiones encoladas&lt;br /&gt;
|-&lt;br /&gt;
|Cache/cola|| Colas monitorizadas/&lt;br /&gt;
|-&lt;br /&gt;
|Cache/vdn||VDN’s monitorizados&lt;br /&gt;
|-&lt;br /&gt;
|Cache/usuExten||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en  '''/etc/MDtel/intz-nimitz.conf'''&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/intz-nimitz.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
A continuación se muestran los campos mas importantes del fichero de configuración intz-nimitz.conf:&lt;br /&gt;
&lt;br /&gt;
enrutamiento &lt;br /&gt;
{ &lt;br /&gt;
        hay_enrutamiento = 1 &lt;br /&gt;
        max_pre_ruta_regs = 4 &lt;br /&gt;
        max_ruta = 4 &lt;br /&gt;
        max_ruta_desvios = 2 &lt;br /&gt;
# Filtro de informacion de ancho de banda &lt;br /&gt;
# MYSDanchoBandaPasoNinguno      0 &lt;br /&gt;
# MYSDanchoBandaPasoSoloDirectos 1 &lt;br /&gt;
# MYSDanchoBandaPasoSoloEnPaso   2 &lt;br /&gt;
# MYSDanchoBandaPasoTodos        3 &lt;br /&gt;
        filtro_ancho_banda = 1 &lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
mysql &lt;br /&gt;
{ &lt;br /&gt;
        hay_mysql = 1   Indica si hay base de datos mysql&lt;br /&gt;
        host = BDTR &lt;br /&gt;
        usuario = nimitz   Usuario base de datos&lt;br /&gt;
        clave = phikau3iwCe4O0PP5b09ng==   clave base de datos&lt;br /&gt;
        base_datos = nimitz &lt;br /&gt;
        bd_supervivencia = 0 &lt;br /&gt;
        num_curro = 10 &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== motorSal ====&lt;br /&gt;
Parte fundamental del proceso de marcación saliente, gestiona como hay que llamar a los diferentes contactos asignados a las campañas. Transforma los contactos en intentos de marcación.&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH ejecuta el comando “nc ip_maquina 1120”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1120'''&lt;br /&gt;
 motorSal sis ver='V01.4' inic='20140725 140832' alarmas=1 ultAlar='20140725 140832'&lt;br /&gt;
 motorSal gmp msj=253/256 buf=256/256 tarea=99/102&lt;br /&gt;
 motorSal tmp uptime=600165 (6d 22h 42m 45s)&lt;br /&gt;
 motorSal mtr mys=1 ocup=0% planif=28(0) intento=26(0)&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parámetro!!Descripción&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ver||Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/msj||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/buf||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/tarea||&lt;br /&gt;
|-&lt;br /&gt;
|Tmp/uptime||Tiempo que lleva corriendo&lt;br /&gt;
|-&lt;br /&gt;
|mtr/mys||Si está conectado al MySQL&lt;br /&gt;
|-&lt;br /&gt;
|mtr/ocup||Porcentaje de ocupación&lt;br /&gt;
|-&lt;br /&gt;
|mtr/planif||Contactos planificados Totales (Último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|mtr/intento||Intentos totales (Ültimo minuto)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Posee un fichero de configuración llamado ''motorSal.conf'' en la ruta '''/etc/MDtel/motorSal.conf'''.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:Las variables que normalmente son modificadas son las siguientes:&lt;br /&gt;
&lt;br /&gt;
mysql&lt;br /&gt;
{&lt;br /&gt;
hay_mysql = 1&lt;br /&gt;
Indica si hay base de datos mysql&lt;br /&gt;
host = localhost&lt;br /&gt;
usuario = nimitz&lt;br /&gt;
Usuario base de datos&lt;br /&gt;
Clave base de datos&lt;br /&gt;
base_datos = nimitz&lt;br /&gt;
}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Respecto a los logs del motorSal consultar el siguiente apartado: [[Trazas motorSal]]. Los logs pueden verse en la ruta '''/var/log/intz-nimitz.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== MyACDSuperv ====&lt;br /&gt;
Refleja el estado de las colas de asterisk en la base de datos; tiene sentido a efectos de estadísticas e informes, pero no a efectos de funcionamiento de la conmutación de voz&lt;br /&gt;
&lt;br /&gt;
Es también el proceso que genera las llamadas en el marcador automático de '''''VIVA'''''it Suite&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando “nc ip_maquina 1112”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1112'''&lt;br /&gt;
 myAcdSuperv SIS ver='04.6' inic='20140416 081613' alarmas=6 ultAlar='20140416 121652'&lt;br /&gt;
 myAcdSuperv AMI cnx=1 ocup=28% exten=2/2/511 asig=0/11/4095&lt;br /&gt;
 myAcdSuperv MYSQL cnx=1 ms=316&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parámetro!!Descripción&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ver||Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|AMI/cnx||Conectado (1) a asterisk&lt;br /&gt;
|-&lt;br /&gt;
|AMI/ocup||Porcentaje de ocupación de MyACDSuperv&lt;br /&gt;
|-&lt;br /&gt;
|AMI/exten||Extensiones/Extensiones/Extensiones monitorizadas|-&lt;br /&gt;
|-&lt;br /&gt;
|AMI/asig||&lt;br /&gt;
|-&lt;br /&gt;
|MYSQL/cnx||Conectado (1) a MySQL&lt;br /&gt;
|-&lt;br /&gt;
|MYSQL/ms||Tiempo de última operación en ejecutarse&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/myAcdSuperv.cnf'''&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/myAcdSuperv.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Proceso escoba ====&lt;br /&gt;
El proceso escoba se encarga de resolver y consolidar todos aquellos segmentos de grabación que han quedado almacenados en los gateways por falta de información o incoherencias. Existen dos tipos de procesos escobas:&lt;br /&gt;
# Proceso escoba perteneciente a nodo con agente de grabación (recordNodo) llamado '''''escobaGW.pl'''''.&lt;br /&gt;
# Proceso escoba perteneciente o no a un servidor de grabación (recordCentral) llamado '''''escobaGrabsBd.pl'''''.&lt;br /&gt;
&lt;br /&gt;
===== escobaGW.pl =====&lt;br /&gt;
Proceso que se ejecuta en los nodos busca en el disco RAM , las grabaciones de segmentos cuya antigüedad sea superior a mas de un día, es decir, si el proceso por ejemplo se ejecuta a la 01:00 a.m. del día 24/03/2016 buscara todas aquellas grabacionesn de segmentos realizadas antes de la 01:00 a.m del día 22/03/2016.&lt;br /&gt;
Una vez realizada la busqueda, obtendra el UCID a traves del nombre del fichero, y comprobara su correspondencia con la tabla DAT_LLAMADAS. Si existe una llamada con ese UCID, cambiara el estado de la llamada para que sea procesada correctamente. En caso contrario, es movida a la carpeta ''/var/lib/recordNodo/grabError''.&lt;br /&gt;
&lt;br /&gt;
===== escobaGrabsBd.pl =====&lt;br /&gt;
Se ejecuta sobre la base de datos de histórico, normalmente se ejecuta en un servidor de grabación (recordCentral). El proceso hace una búsqueda en dos tablas:&lt;br /&gt;
* En DAT_SEGMENTOS obtiene todos aquellos segmentos con grabaciones que dieron error, su estado tendrá valor 120.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
* En DAT_LLAMADAS obtendremos todos los registros correspondiente al segmentos anteriores.&lt;br /&gt;
Después hace una búsqueda en el sistema, usando como ruta el campo D_HORA_INICIO de cada llamada, que indica la ruta entera donde se encuentra el archivo. Una vez encontrado el archivo cambia el estado del segmento que tenia un error a estado de grabación disponible , que tendrá valor 100. Si no encontramos el segmento, no realizara nada.&lt;br /&gt;
&lt;br /&gt;
==== recordCentral ====&lt;br /&gt;
Se considera como un servidor de grabaciones. Todas las grabaciones de llamadas son un activo importante y una empresa con Contact Center pueda recibir millones de llamadas que necesitan estar registradas y almacenadas en discos duros con gran capacidad, dichas maquinas donde suelen alojarse estos servidores poseen discos duros limitados, lo que hace necesario en algunos casos incorporar ''dispositivos NAS''.&lt;br /&gt;
&lt;br /&gt;
Los ''dispositivos NAS'' son dispositivos de almacenamiento conectados a una red que permite el almacenamiento y la recuperación de datos desde una ubicación centralizada, flexibles y escalables, lo que significa que a medida que necesite almacenamiento adicional, puede añadirlo al que tiene. Esto no indica que sea necesario poseer de ''dispositivos NAS'' para funcionar, sino que puede tomar datos de diferentes sitios.&lt;br /&gt;
&lt;br /&gt;
En '''recordCentral''' pueden existir tres tipos de dispositivos NAS:&lt;br /&gt;
* Uno dedicado para las llamadas &lt;br /&gt;
* Uno dedicado para los segmentos &lt;br /&gt;
* Uno mixto para todas las llamadas y segmentos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El '''recordCentral''' se encarga de recoger todas las grabaciones de segmentos que tienen de estado proceso(3) en cada nodo gestionado, es decir, coger aquellos segmentos de llamadas marcados como llamadas disponibles, intenta descargar los segmentos de las llamadas y convertirlas al formato adecuado (MP3).&lt;br /&gt;
Como una característica particular cada diez minutos, siempre que no tenga ninguna otra tarea, intenta ver si puede establecer conexión con un nodo en cuarentena, para sacarlos de cuarentena y recoger todas las grabaciones de segmentos disponibles, para intentar convertir y descargar todas las grabaciones.  &lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando '''''nc ip_maquina 1114''''' en la maquina donde creamos que debe estar ejecutando el proceso recordCentral. Ejemplo:&lt;br /&gt;
 '''root@smadavacdrecord1:~# nc localhost 1114'''&lt;br /&gt;
 recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423 160112'&lt;br /&gt;
 recordCentral MYSQL cnx=1&lt;br /&gt;
 recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
 recordCentral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
 recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10'&lt;br /&gt;
La explicación de los campos se muestra en la tabla siguiente:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parámetro !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ver || Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/inic || Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/alarmas || Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ultAlar || Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
| MYSQL/cnx || Conectado (1) a MySQL&lt;br /&gt;
|-&lt;br /&gt;
| NAS/llamadas || Alojamiento en NAS de llamadas activo (grabación de llamada completa en un único archivo)&lt;br /&gt;
|-&lt;br /&gt;
| NAS/segmentos || Alojamiento en NAS de segmentos activo&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamNum || Llamadas procesadas&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamErr || Llamadas con error&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmNum || Segmentos procesados&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmErr || Segmentos con error&lt;br /&gt;
|-&lt;br /&gt;
| NODO/fase  || Número de proceso de recordCentral&lt;br /&gt;
|-&lt;br /&gt;
| NODO/cuarentena  || Lista de nodos en cuarentena, separada por comas&lt;br /&gt;
|-&lt;br /&gt;
| NODO/descarga || Lista de nodos en descarga, separada por comas&lt;br /&gt;
|-&lt;br /&gt;
| NODO/gestion || Lista de nodos gestionados, separada por comas (cuarentena + descarga = gestión)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/recordCentral.pconf'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:Se explican a continuación las variables más importantes del proceso RecordCentral:&lt;br /&gt;
&lt;br /&gt;
# Conexion de base de datos&lt;br /&gt;
$db='nimitz';&lt;br /&gt;
$dbHost = 'BDTR';&lt;br /&gt;
$dbPort = '3306';&lt;br /&gt;
$dbUsuario = 'nimitz';&lt;br /&gt;
$dbClave = 'ivivanimitz';&lt;br /&gt;
&lt;br /&gt;
# Configuracion de archivos con grabaciones (Orig en nodo)&lt;br /&gt;
$grabHay = 0;&lt;br /&gt;
$grabAudioCalidad = 32;&lt;br /&gt;
$grabAudioFormato = 'ogg';&lt;br /&gt;
$grabAudioExten = 'ogg';&lt;br /&gt;
$grabAudioCifrado = 0;&lt;br /&gt;
$grabRutaUsaTimestamp = 1;&lt;br /&gt;
$grabRutaOrig = '/var/lib/recordNodo/grabaciones';&lt;br /&gt;
$grabRutaTmp = '/var/lib/recordProcesad/grabTmp';&lt;br /&gt;
$grabRutaDest = '/var/lib/recordProcesad/grabRecord';&lt;br /&gt;
$grabRutaError = '/var/lib/recordProcesad/grabError';&lt;br /&gt;
$segmHay = 1;&lt;br /&gt;
$segmUmbralTiempo = 10;&lt;br /&gt;
$segmMargenTiempo = 5;&lt;br /&gt;
$segmAudioCalidad = 32;&lt;br /&gt;
$segmAudioFormato = 'ogg';&lt;br /&gt;
$segmAudioExten = 'ogg';&lt;br /&gt;
$segmAudioCifrado = 0;&lt;br /&gt;
$segmRutaUsaTimestamp = 1;&lt;br /&gt;
$segmRutaTmp = '/var/lib/recordProcesad/segmTmp';&lt;br /&gt;
$segmRutaDest = '/var/lib/recordProcesad/segmRecord';&lt;br /&gt;
$segmRutaError = '/var/lib/recordProcesad/segmError';&lt;br /&gt;
&lt;br /&gt;
# Seleccion de tipos de segmento a grabar separados por comas ('' = todos)&lt;br /&gt;
$tiposSegmentoGrabar = '';&lt;br /&gt;
&lt;br /&gt;
# Indica si se graba ring&lt;br /&gt;
$grabarRing = 0;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/recordCentral.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== recordNodo ====&lt;br /&gt;
Se considera como proceso con función de agente de grabación para un nodo. Solo debe existir uno por maquina o por nodo (configurado como grabador) en el '''portal de administración de ''VIVA''it'''.&lt;br /&gt;
&lt;br /&gt;
Para su funcionamiento utiliza un ''disco RAM''  por que su tiempo de acceso mejora drásticamente, debido a que la memoria RAM es varios órdenes de magnitud más rápida que las unidades de disco reales, haciendo que la velocidad de procesamiento de las grabaciones sea mucho mas rápida.&lt;br /&gt;
&lt;br /&gt;
Este ''disco RAM'' normalmente ocupa la mitad de la memoria RAM de una maquina pero no es obligatorio pues dependerá de la memoria disponible en cada maquina, y además, se configura con un tamaño no superior a 2GB de memoria RAM. Hay que tener especial cuidado en que no se llene en espacio  ni tampoco los i-nodos. Se puede  monitorizar a través de la aplicación '''zabbix'''.&lt;br /&gt;
&lt;br /&gt;
El '''''recordNodo''''' se encarga de recoger todas las grabaciones de segmentos que tienen de estado  ''proceso(2)'', es decir, aquellos segmentos de llamadas que han sido grabadas pero no están siendo procesadas, moviéndolas del ''disco RAM'' a su carpeta correspondiente.&lt;br /&gt;
&lt;br /&gt;
La forma de obtener la carpeta correspondiente es obteniendo el dato del campo D_HORA_INICIO en la tabla DAT_LLAMADAS para cada segmento,tras un tratamiento del campo creara la subruta correspondientes: /año/mes/dia/hora/min. Entonces, la ruta correcta seria /var/lib/recordNodo/grabaciones/año/mes/dia/hora/min, donde año, mes, dia , hora y min son los valores numéricos obtenidos del campo D_HORA_INICIO.&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando '''''nc ip_maquina 1113''''' en la maquina donde creamos que debe estar ejecutando el proceso recordNodo:&lt;br /&gt;
&lt;br /&gt;
 root@smadavgw5:~#nc localhost 1113&lt;br /&gt;
 recordNodo SIS ver='04.00.00' inic='20160326 105137' alarmas=2 ultAlar='20160326 105542'&lt;br /&gt;
 recordNodo MYSQL cnx=1&lt;br /&gt;
 recordNodo REC grabNum=0 grabErr=0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La explicación de los campos se muestra en la tabla siguiente:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parámetro  !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ver || Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/inic  || Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/amarmas || Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ultAlar || Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
| MYSQL/cnx || Conectado (1) a MySQL&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamNum || Llamadas procesadas&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamErr || Llamadas con error&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmNum || Segmentos procesados&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmErr || Segmentos con error&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/recordNodo.pconf'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:Se muestran a continuación las variables que son modificadas con mayor frecuencia:&lt;br /&gt;
# Conexion de base de datos&lt;br /&gt;
$db='nimitz';&lt;br /&gt;
$dbHost = 'BDTR';&lt;br /&gt;
$dbPort = '3306';&lt;br /&gt;
$dbUsuario = 'nimitz';&lt;br /&gt;
$dbClave = 'ivivanimitz';&lt;br /&gt;
&lt;br /&gt;
# Quien es mi nodo para filtrar grabaciones&lt;br /&gt;
$miNodo = 1;&lt;br /&gt;
&lt;br /&gt;
# Indica si se procesan segmentos de tipo tipoSegmEliminarGrabacion y patron eliminación&lt;br /&gt;
$segmEliminarGrabacionTrato = 1;&lt;br /&gt;
$patronEliminarGrabacion = '/etc/MDtel/null.bin';&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/recordNodo.log'''&lt;br /&gt;
&lt;br /&gt;
==== Vivait-CTI ====&lt;br /&gt;
Permite la comunicación entre la aplicación '''''VIVA'''''it Desk de agente y el asterisk, sincronizando; convierte el protocolo “asterisk manager” a CSTA ('''''VIVA'''''it Desk “habla” CSTA).&lt;br /&gt;
&lt;br /&gt;
Es un proceso importante para que el uso de '''''VIVA'''''it Desk, y que los agentes puedan realizar su operativa normal con la entrada y salida de llamadas… si bien el cursado telefónico de llamadas es factible, no disponer de las facilidades de '''''VIVA'''''it Desk y formularios hace el sistema difícilmente manejable&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando “nc ip_maquina 1111”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1111'''&lt;br /&gt;
 vivait-cti sis ver='V01.5' inic='20140414 104312' alarmas=13 ultAlar='20140415 173152'&lt;br /&gt;
 vivait-cti gmp msj=1018/1024 buf=1023/1024 tarea=97/102&lt;br /&gt;
 vivait-cti tmp uptime=694748 (8d 0h 59m 8s)&lt;br /&gt;
 vivait-cti cti numConx=(0/511) numPend=(0/127) numMakeCallPend=0 numCall=(0/2047)&lt;br /&gt;
 numChan=(0/4095) numAuxStr=(0/511) numMoniColas=(0/511) numMoniDevice=0&lt;br /&gt;
 numMoniCall=0 numMoniCallAuto=0 numMoniCallByDevice=0 numMoni=(0/511)&lt;br /&gt;
 auditCallErr=0 auditAuxStrErr=0 auditMsjReqErr=0 araChanID=0 araUniqueID=0 araMoni=0&lt;br /&gt;
 vivait-cti ami esta=conx resp=652(0) evs=1397(0) descar=556(0) err=16 errConx=16&lt;br /&gt;
 numAct(0/0/127) auditErrAct=0&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!ver!!Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|sis/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|Sis/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|Sis/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/msj||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/buf||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/tarea||&lt;br /&gt;
|-&lt;br /&gt;
|Tmp/uptime||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numConx||Número de conexiones actuales / Número de conexiones máximo&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numPend||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMakeCallPend||Llamadas pendientes de realizar&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numcall||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numChan||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numAuxStr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniColas||Número de colas monitorizadas&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniDevice||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniCall||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniCallAuto||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniCallByDevice||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoni||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/auditCallErr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/auditAuxStrErr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ auditMsjReqErr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ araChanID||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ araUniqueID||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ araMoni||&lt;br /&gt;
|-&lt;br /&gt;
|Ami/esta||Estado de conexión contra manarger de asterisk&lt;br /&gt;
|-&lt;br /&gt;
|Ami/resp||&lt;br /&gt;
|-&lt;br /&gt;
|Ami/evs||Número de eventos (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
||Ami/descar&lt;br /&gt;
|-&lt;br /&gt;
|Ami/err||Errores&lt;br /&gt;
|-&lt;br /&gt;
|Ami/errConx||Errores de conexión&lt;br /&gt;
|-&lt;br /&gt;
|Ami/numAct||&lt;br /&gt;
|-&lt;br /&gt;
|Ami/auditErrAct||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/vivait-cti.conf'''&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/vivait-cti.conf'''&lt;br /&gt;
&lt;br /&gt;
==== Phoneprov-TFTP ====&lt;br /&gt;
&lt;br /&gt;
==== Introducción al aprovisionamiento ====&lt;br /&gt;
&lt;br /&gt;
En cada Centralita Telefónica existente, se puede configurar sus teléfonos IP y asignarles extensiones a cada teléfono. Para hacer un ''aprovisionamiento'' de los teléfonos es necesario que el técnico configure uno a uno manualmente utilizando su interfaz web, esto no es práctico, ya que genera muchos errores y el tiempo de implementación se incrementa drásticamente. Además, es casi imposible la administración cotidiana de los teléfonos IP. Desde '''MD'''tel se utiliza una herramienta que permite que los teléfonos IP soportados y homologados por '''MD'''tel ([[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_3.0#Terminales_telef.C3.B3nicos ver Terminales telefónicos]]) se puedan aprovisionar automáticamente, brindando una fácil implementación y administración cotidiana. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== ¿Qué es aprovisionar? =====&lt;br /&gt;
&lt;br /&gt;
Aprovisionar un teléfono es el proceso de configuración automático de teléfonos IP para su uso con una Centralita Telefónica de forma remota. Una vez que aprovisione un teléfono, el teléfono automáticamente se configurará correctamente y podrá administrar los teléfonos de forma centralizada y remota,  sin tener que iniciar sesión en la interfaz web de cada uno de los teléfonos. &lt;br /&gt;
&lt;br /&gt;
El aprovisionamiento de teléfono facilita enormemente la administración cotidiana de los teléfonos IP. Esto hace que sea fácil de cambiar las contraseñas de extensión,realizar desvíos de llamadas, nombre a mostrar, mensajería y demás configuraciones, ya que puede hacerlo de forma centralizada para todos los teléfonos desde el portal de administración y luego transferir los cambios al teléfono. &lt;br /&gt;
&lt;br /&gt;
===== TFTP =====&lt;br /&gt;
&lt;br /&gt;
'''TFTP''' son las siglas de '''T'''rivial '''F'''ile '''T'''ransfer '''P'''rotocol ''(Protocolo de transferencia de archivos trivial)''. &lt;br /&gt;
&lt;br /&gt;
Es un protocolo de transferencia muy simple semejante a una versión básica de FTP. TFTP a menudo se utiliza para transferir pequeños archivos entre terminales en una red. &lt;br /&gt;
&lt;br /&gt;
Algunos detalles del TFTP: &lt;br /&gt;
&lt;br /&gt;
* Utiliza UDP (puerto 69) como protocolo de transporte (a diferencia de FTP que utiliza los &lt;br /&gt;
puertos 20 y 21 TCP). &lt;br /&gt;
* No puede listar el contenido de los directorios. &lt;br /&gt;
* No existen mecanismos de autenticación o cifrado. &lt;br /&gt;
* Se utiliza para leer o escribir archivos de un servidor remoto. &lt;br /&gt;
* Soporta tres modos diferentes de transferencia, &amp;quot;netascii&amp;quot;, &amp;quot;octet&amp;quot; y &amp;quot;mail”.&lt;br /&gt;
&lt;br /&gt;
===== Funcionamiento del servidor phoneprove-TFTP =====&lt;br /&gt;
&lt;br /&gt;
A continuación se muestra un esquema que facilita el entendimiento del funcionamiento del servidor phoneprove-TFTP:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Funcionamiento_Servidor.png‎ |center]]&lt;br /&gt;
&lt;br /&gt;
El servidor Phoneprove-TFTP se ''encarga del aprovisionamiento masivo de terminales'', es de gran utilidad porque cualquier cambio en los teléfonos pueden ser realizados a nivel DHCP y todos los teléfonos tomarán la nueva configuración luego de reiniciarlos. &lt;br /&gt;
&lt;br /&gt;
Desde phoneprove-TFTP se generara los archivos necesarios para cada teléfono y que sirven para ser aprovisionados automáticamente. &lt;br /&gt;
El servidor phoneprove-TFTP  tiene alojados los ficheros de configuración están ordenados según las direcciones MAC de los teléfonos. El teléfono “preguntará” al servidor cual es su fichero de configuración utilizando su dirección MAC. Este a través de su MAC , consulta en la base de datos para ofrecer al terminal los datos de configuración según su plantilla, cual sera su extensión , cual sera el usuario propietario, entre otras cosas.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
  '''Nota:''' En instalaciones grandes habrá más de uno, quizás uno por sede grande; depende de la infraestructura de DHCP.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Parámetros necesarios de Aprovisionamiento de Teléfonos =====&lt;br /&gt;
&lt;br /&gt;
 '''Notas:''' el aprovisionamiento desarrollador por '''MD'''tel, no emplea un fichero por cada &lt;br /&gt;
 teléfono, sino que emplea una plantilla por cada modelo de teléfono.&lt;br /&gt;
 Debe haber una '''configuración previa del servidor DHCP''' es necesario coordinar con el cliente la asignación de direcciones para &lt;br /&gt;
 los diferentes elementos de la plataforma '''''VIVA'''''it, fundamentalmente para terminales telefónicos; en este caso además será necesario &lt;br /&gt;
 activar la opción 66 que permitirá definir el servidor TFTP del que los terminales cogerán sus ficheros de aprovisionamiento.&lt;br /&gt;
 El aprovisionamiento desde el portal de administración solo es posible para aquellos teléfonos IP homologados y probados desde '''MD'''tel   &lt;br /&gt;
 [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_3.0#Terminales_telef.C3.B3nicos ver Terminales  telefónicos]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como existen parámetros comunes de todos los teléfonos de la misma marca de fabricante, muchos de los parámetros necesarios para el aprovisionamiento  como comentamos se han generado desde MDtel en forma de plantillas, que estarán disponibles en el portal de administración VIVAit [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Plantillas | ver plantilla del portal de administración VIVAit]]. &lt;br /&gt;
&lt;br /&gt;
La configuración de un teléfono SIP es muy sencilla y en no es necesario tener conocimientos avanzados de informática o de telefonía. Cada una de estas plantillas que sirven para aprovisionar un teléfono IP homologado, algunos de los parámetros predeterminados se explicarán a continuación .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== Parámetros de Aprovisionamiento globales ======&lt;br /&gt;
&lt;br /&gt;
* Configuración de la red y MAC. &lt;br /&gt;
* Zona horaria. &lt;br /&gt;
&lt;br /&gt;
====== Parámetros de Aprovisionamiento Personales ======&lt;br /&gt;
&lt;br /&gt;
Además de los parámetros de aprovisionamiento globales, el teléfono también obtendrá información de configuración individual, tales como: &lt;br /&gt;
&lt;br /&gt;
*Número de Extensión.&lt;br /&gt;
*Nombre y Contraseña de usuario SIP. &lt;br /&gt;
*Configuración de Teclas BLF.&lt;br /&gt;
*Contraseña de la Interfaz Web del Teléfono IP.&lt;br /&gt;
*Idioma de la Pantalla.&lt;br /&gt;
*Orden de Preferencia de los Codecs.&lt;br /&gt;
&lt;br /&gt;
===== Aprovisionamiento de teléfonos nivel usuario =====&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
  '''Notas:''' La dirección MAC debe estar especificada en letras mayúsculas.&lt;br /&gt;
  La dirección MAC del teléfono se puede encontrar en la etiqueta adhesiva en la parte inferior del teléfono, o de lo contrario se deberá acceder desde&lt;br /&gt;
  el menú del propio terminal.   &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Los pasos a seguir son los siguientes: &lt;br /&gt;
&lt;br /&gt;
'''1)''' Dar de alta el teléfono en el portal de administración, se debe seleccionar el modelo del teléfono, e indicar la dirección MAC del teléfono a aprovisionar, todo ello desde el portal de administración VIVAit. &lt;br /&gt;
Para mas información ver [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Aprovisionamiento del portal de administracion| aprovisionamiento del portal de administración VIVAit]]. &lt;br /&gt;
&lt;br /&gt;
'''2)''' En el mismo portal de administración se deberá crear una extensión , asignar a la extensión el teléfono que se quiera aprovisionar, elegir la plantilla adecuada del teléfono y el usuario propietario (solo si sera un puesto fijo) desde [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Extensiones | extensiones del portal de administración]]. &lt;br /&gt;
&lt;br /&gt;
'''3)''' Conectar el teléfono a la red LAN informática (conectarlo al router o switch) para que tenga acceso a Internet:&lt;br /&gt;
&lt;br /&gt;
:*El teléfono enviará un mensaje de multidifusión a través de la LAN. &lt;br /&gt;
:*Este será captado por la Central Telefónica siempre que esté en la misma LAN. &lt;br /&gt;
:*Al teléfono se le enviará una URL de aprovisionamiento. &lt;br /&gt;
&lt;br /&gt;
'''4)''' Como la mayoría de teléfonos IP del mercado al arrancar una vez sabiendo la URL de aprovisionamiento piden una serie de archivos de configuración para aprovisionarse vía TFTP. EL servidor phoneprove-TFTP, detectara la petición y a través de la MAC y datos del usuario, consultará en la base de datos los datos necesarios para aprovisionar al teléfono y si todo funciona correctamente mandara al teléfono IP los datos de configuración necesarios para funcionar. &lt;br /&gt;
&lt;br /&gt;
'''5)''' Asegúrese de que el teléfono encuentren el servidor TFTP, para ello esperar un tiempo adecuado para que termine el aprovisionamiento. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''6)''' Finalmente aparecerá  como registrado en la centralita, obtendrá una dirección IP y podra funcionar según la configuración establecida.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
  '''Nota''': Si no se reaprovisiona tras un periodo largo de tiempo, desenchufe el cable de alimentación eléctrica &amp;lt;br /&amp;gt; o el cable Ethernet (si se utiliza la alimentación en línea PoE) para reiniciar los teléfonos. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Aprovisionamiento de teléfonos nivel técnico =====&lt;br /&gt;
&lt;br /&gt;
====== Plantilla de configuración ======&lt;br /&gt;
&lt;br /&gt;
La plantilla de configuración empleadas en el apartado  [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Plantillas | plantilla del portal de administración VIVAit]] de cada modelo está formada por una serie de variables. &lt;br /&gt;
&lt;br /&gt;
Los valores se obtienen de la tabla de la base de datos CEN_TELEFONOS, CEN_USUARIOS, ACD_EXTENSIONES, ACD_NODOS, COM_NODOS... correspondientes a la extensión del teléfono, usuario, nodo, etc. &lt;br /&gt;
&lt;br /&gt;
 variable ${NODO1_C_NOMBRE}='corp-ast13'&lt;br /&gt;
 variable ${EXTEN_C_CLAVE_REGISTRO}='Tel21002'&lt;br /&gt;
 variable ${USU_C_CODIGO_POSTAL}=''28034'&lt;br /&gt;
 variable ${SEDE_C_CODIGO_POSTAL}='28034' &lt;br /&gt;
 variable ${USU_C_NOMBRE}='Juan Antonio'&lt;br /&gt;
 variable ${USU_C_APELLIDO2}='Ramirez'&lt;br /&gt;
 variable ${SEDE_C_NOMBRE}='RED_LAB'&lt;br /&gt;
 variable ${NODO2_C_NOMBRE}= NULL&lt;br /&gt;
 variable ${EXTEN_C_NOMBRE}='' 21002&lt;br /&gt;
 variable ${USU_C_LOCALIDAD}='' &lt;br /&gt;
 variable ${USU_C_NOMBRE_MOSTRAR}='Juan' &lt;br /&gt;
 variable ${NODO1_C_IP}='175.25.129.70' &lt;br /&gt;
 variable ${MODEL_C_PREFIJO_PLANTILLA_MAC}='T28P' &lt;br /&gt;
 variable ${SEDE_C_LOCALIDAD}='Madrid' &lt;br /&gt;
 variable ${USU_C_APELLIDO1}='Casas' &lt;br /&gt;
 variable ${NODO2_C_IP}= NULL&lt;br /&gt;
 variable ${TF_ID_EXTENSION}='5' &lt;br /&gt;
 cargando campos idExten=5&lt;br /&gt;
&lt;br /&gt;
====== Ficheros y paquetes necesarios ======&lt;br /&gt;
&lt;br /&gt;
'''Paquetes previos:''' libnet-tftpd-perl, tftp-hpa, libnet-address-ip-local-perl &lt;br /&gt;
'''Usuario de funcionamiento:''' root &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
   '''Nota:'''  los archivos y directorios que generemos podrian necesitar que se permitiera el acceso al archivo de lectura &amp;lt;br/&amp;gt; y escritura en el servidor TFTP.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Archivos necesarios:''' &lt;br /&gt;
&lt;br /&gt;
 /usr/local/sbin/phoneprov-tftp.pl &lt;br /&gt;
 /usr/local/sbin/phoneprov-tftp.pm&lt;br /&gt;
 /etc/MDtel/phoneprov-tftp.pconf &lt;br /&gt;
 /etc/init/phoneprov-tftp.conf &lt;br /&gt;
 /etc/logrotate.d/phoneprov-tftp &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Directorios a crear:''' &lt;br /&gt;
&lt;br /&gt;
 /var/lib/phoneprov-tftp/plt &lt;br /&gt;
 /var/lib/phoneprov-tftp/bin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Watchdog ====&lt;br /&gt;
&lt;br /&gt;
Se trata de una aplicación del astrisk que monitoriza el SIP y en caso de fallo, pasado un cierto tiempo, reinicia el asterisk y genera un core.&lt;br /&gt;
Si escribimos en CLI de asterisk perro tenemos los siguientes comandos:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Activar||Activar el Watchdog&lt;br /&gt;
|-&lt;br /&gt;
|Desactivar||Desactiva el Watchdog&lt;br /&gt;
|-&lt;br /&gt;
|Parada||Reinicia el asterisk y genera un core para pruebas&lt;br /&gt;
|-&lt;br /&gt;
|Reload||Realiza una recarga del Watchdog y aplica cambios en su configuración&lt;br /&gt;
|-&lt;br /&gt;
|Show||Ver el estado del Watchdog&lt;br /&gt;
&lt;br /&gt;
perro avisado=0 activo=1 segsDormir=1 segsInic=60 segsGuarda=30 maxErr=3&lt;br /&gt;
perro        nombre=sip_monitor_udp lwp=[15437] segsInic=60 segsGuarda=30 hace=11 err=0/5&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El dato &amp;quot;hace&amp;quot; informa de cuanto tiempo ha transcurrido desde el último tick. Facilita la calibración del parámetro de configuración &amp;quot;segs_guarda&amp;quot;, normalmente es 30&lt;br /&gt;
&lt;br /&gt;
Tiene un fichero de configuración ubicado en /etc/asterisk/MDcrash.conf&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Sección [perro]&lt;br /&gt;
||activo=yes (Si esta o no activo)&lt;br /&gt;
segs_dormir=1 (Un tick por segundo)&lt;br /&gt;
&lt;br /&gt;
segs_inic=60&lt;br /&gt;
&lt;br /&gt;
segs_guarda=30 &lt;br /&gt;
&lt;br /&gt;
max_errores=3  &lt;br /&gt;
|-&lt;br /&gt;
|Sección [sip_monitor_udp]&lt;br /&gt;
||segs_inic=60&lt;br /&gt;
&lt;br /&gt;
segs_guarda=30 (Cada 30 segundos si no reciba trafico SIP genera core)&lt;br /&gt;
&lt;br /&gt;
max_errores=5 (Número máximo de errores)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Proceso de Backup ====&lt;br /&gt;
Las plataformas '''''VIVA'''''it Call y '''''VIVA'''''it Suite incluyen un script para realizar un proceso de backup.&lt;br /&gt;
&lt;br /&gt;
Se utilizará el script '''backup.sh''', que se encuentra en el directorio '''etc/MDTel'''.&lt;br /&gt;
&lt;br /&gt;
Se ejecuta automaticamente mediante el uso de un cron&lt;br /&gt;
&lt;br /&gt;
'''texto del cron:'''&lt;br /&gt;
&lt;br /&gt;
 SHELL=/bin/sh&lt;br /&gt;
 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin&lt;br /&gt;
 # m h dom mon dow user command&lt;br /&gt;
 0 2 * * * root  /etc/MDtel/backup.sh /etc/MDtel/backup.cfg&lt;br /&gt;
&lt;br /&gt;
Para activar el script hay que descomentar la línea&lt;br /&gt;
 # m h dom mon dow user command&lt;br /&gt;
&lt;br /&gt;
Los directorios de los que se hace copia son:&lt;br /&gt;
* DIR=var/lib/asterisk/sounds/Particular&lt;br /&gt;
* DIR=var/lib/asterisk/moh&lt;br /&gt;
* DIR=etc&lt;br /&gt;
* DIR=etc/asterisk&lt;br /&gt;
* DIR=etc/cron.d&lt;br /&gt;
* DIR=etc/dahdi&lt;br /&gt;
* DIR=etc/exim4&lt;br /&gt;
* DIR=etc/ha.d&lt;br /&gt;
* DIR=etc/logrotate.d&lt;br /&gt;
* DIR=etc/MDtel&lt;br /&gt;
* DIR=etc/mysql&lt;br /&gt;
* DIR=etc/network&lt;br /&gt;
* DIR=etc/zabbix&lt;br /&gt;
* DIR=usr/local/sbin&lt;br /&gt;
&lt;br /&gt;
Por defecto se realiza un backup cada dos horas en la carpeta '''/var/spool/MDtel/backup'''.&lt;br /&gt;
Para cambiar la ruta de destino del backup habrá que modificar el fichero backup.sh, en concreto modificar la variable MDTEL.&lt;br /&gt;
&lt;br /&gt;
El fichero ''' backup.cfg''' que se genera incluye copia de la siguiente información:&lt;br /&gt;
* Ficheros de configuración de la aplicación.&lt;br /&gt;
* Base de Datos.&lt;br /&gt;
* Dialplan.&lt;br /&gt;
&lt;br /&gt;
Se guardarán 10 copias del fichero ''' backup.cfg '''&lt;br /&gt;
&lt;br /&gt;
Para recuperar una plataforma utilizando el backup, habrá que instalar una máquina nueva y cargar los ficheros de configuración, Base de Datos y Dialplan guardados en el proceso de backup.&lt;br /&gt;
&lt;br /&gt;
=== Requerimientos de conectividad ===&lt;br /&gt;
&lt;br /&gt;
El esquema siguiente muestra como ejemplo todos los flujos de información existentes en un entorno típico de &amp;lt;big&amp;gt;'''telefonía corporativa (sin presencia)'''&amp;lt;/big&amp;gt; ('''''VIVA'''''it Call)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Flujos corporativa.png|cebter]]&lt;br /&gt;
&lt;br /&gt;
En el entorno de &amp;lt;big&amp;gt;'''Contact Center'''&amp;lt;/big&amp;gt;, encontramos los siguientes flujos &amp;lt;big&amp;gt;'''entre servicios'''&amp;lt;/big&amp;gt; (comunicaciones entre servidores, ('''''VIVA'''''it Suite)) &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Flujos Contact servicios.png|650px|center]]&lt;br /&gt;
&lt;br /&gt;
y &amp;lt;big&amp;gt;'''entre usuarios y servicios'''&amp;lt;/big&amp;gt; los reflejados a continuación:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Flujos Contact puestos.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Lado A!!Lado B!!Puertos!!Sentido!!Observ.&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor||TCP 5060||A -&amp;gt; B||Señalización SIP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor||UDP 5060||A -&amp;gt; B||Señalización SIP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor||10000 a 20000||A -&amp;gt; B&lt;br /&gt;
B -&amp;gt; A&lt;br /&gt;
||RTP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor TFTP||UDP 69||A -&amp;gt; B&lt;br /&gt;
B -&amp;gt; A&lt;br /&gt;
||Para actualización de terminales por TFTP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor NTP||UDP 123||A -&amp;gt; B||&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Desk||Servidor||TCP 4500||A -&amp;gt; B||Comunicación CTI&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Desk||Servidor||TCP 3306||A -&amp;gt; B||Acceso a Mysql Base de datos&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Desk||Servidor Syslog||UDP 514||A -&amp;gt; B||Para envio de logs de agente&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Supervisor||Servidor||TCP 3306||A -&amp;gt; B||Acceso a Mysql Base de datos&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker||Servidor||TCP 3306||A -&amp;gt; B||Acceso a Mysql Base de datos&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker||Servidor||TCP 8180||A -&amp;gt; B||&lt;br /&gt;
|-&lt;br /&gt;
|Actualizador||Servidor||TCP 80||A -&amp;gt; B||Necesario para actualizaciones de versiones de aplicaciones de agente y supervisores&lt;br /&gt;
|-&lt;br /&gt;
|Portal de administración||Servidor||TCP 8180||A -&amp;gt; B||Acceso al portal de administración '''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker Web||Servidor||TCP 8180||A -&amp;gt; B||&lt;br /&gt;
|-&lt;br /&gt;
|Monitor||Servidor||TCP 8180||A -&amp;gt; B||Wallboard&lt;br /&gt;
|-&lt;br /&gt;
|Monitorización||Servidor||TCP 80||A -&amp;gt; B||Acceso a portal monitorización (Zabbix)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Gateways ===&lt;br /&gt;
El concepto de gateway como tal no existe en la plataforma '''''VIVA'''''it; existen nodos de ACD y nodos de corporativa.&lt;br /&gt;
&lt;br /&gt;
A efectos de operación un nodo de corporativa es el que en cualquier caso asumirá las funcionalidades de gateway, y recibirá las conexiones (analógicas, digitales o IP) a sistemas externos o a la RTC&lt;br /&gt;
&lt;br /&gt;
El concepto gateway queda pues suscrito a entornos meramente comerciales&lt;br /&gt;
&lt;br /&gt;
Incluimos no obstante en este apartado los diagnósticos y operaciones básicos de conexiones a sistemas externos o RTC&lt;br /&gt;
&lt;br /&gt;
Para verificar los enlaces establecidos ejecutamos el siguiente comando en el terminal: '''sip show peers''' &lt;br /&gt;
&lt;br /&gt;
Al ejecutar este comando obtenemos la salida:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Enlace_Exterior.png |center]]&lt;br /&gt;
&lt;br /&gt;
Las columnas ''Host'' y ''Port'' nos muestran las conexiones establecidas y nos informa de un posible problema de conexión. &lt;br /&gt;
&lt;br /&gt;
Sabremos que ''no existe conexión'' cuando la columna Host tiene el valor '''Unspecified''' y en la columna Port aparece un '''0''' , a continuación se muestra un ejemplo:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ejemplo_no_conexion.png |center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#00FF00&amp;quot;&amp;gt;FALTA AQUI DIAGNOSTICOS Y OPERACIONES DE ENLACES EXTERNOS&amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Servidor de grabación === &lt;br /&gt;
==== Almacenamiento en la nube ====&lt;br /&gt;
Almacenamiento en la nube.&lt;br /&gt;
Existe la posibilidad de que tras un determinado periodo de tiempo las grabaciones sean movidas a un almacenamiento externo. De esta operativa se encarga el proceso /usr/local/sbin/mueveGrabaciones.pl que recibe como parámetro la ruta al archivo de configuración. Dicho archivo tiene los siguientes elementos:&lt;br /&gt;
&lt;br /&gt;
*$db: Nombre de la base de datos.&lt;br /&gt;
*$dbHost: servidor de MySQL&lt;br /&gt;
*$dbPort: Puerto del MySQL.&lt;br /&gt;
*$dbUsuario: Usuario de conexión a MySQL.&lt;br /&gt;
*$dbClave: Clave del usuario anterior.&lt;br /&gt;
*$dirBase: Directorio donde residen las grabaciones&lt;br /&gt;
*$diasCaducidad: Dias de antigüedad para mover las grabaciones&lt;br /&gt;
*$sftpHost: Servidor SFTP de destino&lt;br /&gt;
*$sftpPort: Puerto SFTP.&lt;br /&gt;
*$sftpUsuario: Usuario SFTP.&lt;br /&gt;
*$sftpClave: Clave del usuario SFTP.&lt;br /&gt;
*$simula: Si este campo vale 1, las grabaciones se copian, pero no se borran del directorio original, ni se actualiza su ubicación en la base de datos.&lt;br /&gt;
&lt;br /&gt;
La grabación indica donde se encuentra mediante el campo E_UBICACION_GRABACION, que puede tener los siguientes valores:&lt;br /&gt;
*Sin definir (0)&lt;br /&gt;
*En línea (10): Las grabaciones se encuentran en el servidor de grabaciones.&lt;br /&gt;
*Fuera de línea (20): las grabaciones se encuentran en una ubicación externa.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Reporting ===&lt;br /&gt;
La aplicación de reporting en general no tiene procesos habituales de operación y mantenimiento.&lt;br /&gt;
Los informes son obtenidos desde la interfaz gráfica o mediante un procedimiento de scripting, descritos en “Formato de fichero de intercambio para '''''VIVA'''''it Reporting”.&lt;br /&gt;
&lt;br /&gt;
==== Formato de fichero de intercambio para '''''VIVA'''''it Reporting ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Nombre !! Descripción !! Ejemplo&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;| Selección de registros&lt;br /&gt;
|-&lt;br /&gt;
| SQL_selec || Expresión SQL que se añadirá al where a la SQL principal. || C_ORIGEN like '6%' and C_COD_CLIENTE= '023'&lt;br /&gt;
|-&lt;br /&gt;
| SQL_select_leido || Filtro de selección legible&lt;br /&gt;
 || Skill igual a 60310&lt;br /&gt;
|-&lt;br /&gt;
| SQL_orden || Lista de campos por los que se ordenará, después de los que estén ya definidos en la plantilla. || C_ORIGEN, C_COD_CLIENTE&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Salida&lt;br /&gt;
|-&lt;br /&gt;
| FIC_extension || Extensión de fichero de salida: PDF, XLSX, CSV || PDF&lt;br /&gt;
|-&lt;br /&gt;
| FIC_tipo_entrega || 'P': Pantalla, 'D': Directorio, 'C': Correo || D&lt;br /&gt;
|-&lt;br /&gt;
| FIC_destino || Si 'C', dirección de correo, si 'D', ruta del directorio || D:\informes\&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Plantilla&lt;br /&gt;
|-&lt;br /&gt;
| INF_modelo || Ruta del fichero de plantilla || C:\Modelos\llamadas.rep&lt;br /&gt;
|-&lt;br /&gt;
| INF_descripción || Descripción del informe || Informe detallado de llamadas&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Base de datos&lt;br /&gt;
|-&lt;br /&gt;
| BD_ip || IP o nombre de máquina || &lt;br /&gt;
|-&lt;br /&gt;
| BD_puerto || Puerto de MySQL || &lt;br /&gt;
|-&lt;br /&gt;
| BD_base_datos || Nombre de base de datos || &lt;br /&gt;
|-&lt;br /&gt;
| BD_usuario || Usuario de base de datos || &lt;br /&gt;
|-&lt;br /&gt;
| BD_clave || Clave de acceso cifrada || &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Parámetros&lt;br /&gt;
|-&lt;br /&gt;
| PAR_desde_vis || Fecha inicial de selección en formato legible (o '-' si no hay) || 01/01/2016&lt;br /&gt;
|-&lt;br /&gt;
| PAR_hasta_vis || Fecha final de selección en formato legible (o '-' si no hay) || 31/01/2016&lt;br /&gt;
|-&lt;br /&gt;
| PAR_01 || Parámetro opcional || &lt;br /&gt;
|-&lt;br /&gt;
| .. || .. || &lt;br /&gt;
|-&lt;br /&gt;
| PAR_20 || Parámetro opcional || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El fichero tendrá un nombre único para permitir la generación simultánea de informes.&lt;br /&gt;
El fichero es borrado por la aplicación de forma automática.&lt;br /&gt;
Se pasa a la aplicación de generación de informes como parámetro. Por ejemplo:&lt;br /&gt;
 “C:\Archivos de Programa\MDtel\Nimitz\LanzaInformes\LanzaInformes.exe”&lt;br /&gt;
 “C:\Archivos de Programa\MDtel\Nimitz\LanzaInformes\NIM00001.tmp”&lt;br /&gt;
&lt;br /&gt;
Ejemplo de fichero:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| SQL_selec=(DAT_ACUMULADOS_COLAS.ID_COLA in (11))&lt;br /&gt;
&lt;br /&gt;
SQL_select_leido=Skill igual a 60310&lt;br /&gt;
&lt;br /&gt;
SQL_orden=&lt;br /&gt;
FIC_extension=pdf&lt;br /&gt;
&lt;br /&gt;
FIC_tipo_entrega=P&lt;br /&gt;
&lt;br /&gt;
FIC_destino=C:\&lt;br /&gt;
&lt;br /&gt;
INF_modelo=skill_setsi.rep&lt;br /&gt;
&lt;br /&gt;
INF_descripcion=Skill. SETSI&lt;br /&gt;
&lt;br /&gt;
BD_ip=172.25.1.2&lt;br /&gt;
&lt;br /&gt;
BD_puerto=3306&lt;br /&gt;
&lt;br /&gt;
BD_base_datos=nimitz&lt;br /&gt;
&lt;br /&gt;
BD_usuario=nimitz&lt;br /&gt;
&lt;br /&gt;
BD_clave=UIk5jNY9PVX5ogg=&lt;br /&gt;
&lt;br /&gt;
PAR_desde_vis=-&lt;br /&gt;
&lt;br /&gt;
PAR_hasta_vis=-&lt;br /&gt;
&lt;br /&gt;
PAR_01=&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Resumen de significado de columnas en reporting histórico ====&lt;br /&gt;
Esta información se puede consultar en el siguiente enlace:&lt;br /&gt;
&lt;br /&gt;
http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Documentacion_de_usuario_VIVAit_Suite_3.3#Resumen_del_valor_de_las_columnas_que_aparecen_en_los_informes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===== Agente,asistencia diaria y agente. Asistencia diaria del grupo =====&lt;br /&gt;
&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo de llamado:''' Tiempo de ring en llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo disponible:''' Tiempo que el agente estuvo conectado y no está&lt;br /&gt;
incluido en ninguno de los anteriores.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas transferidas:''' Número de llamadas ACD que fueron&lt;br /&gt;
transferidas por el agente.&lt;br /&gt;
&lt;br /&gt;
===== Agente. Aux y Grupo Aux =====&lt;br /&gt;
&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Desglose de tiempos AUX:''' Tiempo que el agente estuvo en cada uno&lt;br /&gt;
de los motivos de pausa.&lt;br /&gt;
&lt;br /&gt;
===== Agente. Resumen diario =====&lt;br /&gt;
&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo de llamado:''' Tiempo de ring en llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo disponible:''' Tiempo que el agente estuvo conectado y no está&lt;br /&gt;
incluido en ninguno de los anteriores.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas entrada Ext:''' Número de llamadas entrantes NO ACD a la&lt;br /&gt;
extensión.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas salida Ext:''' Número de llamadas salientes NO ACD desde la&lt;br /&gt;
extensión.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas transferidas:''' Número de llamadas ACD que fueron&lt;br /&gt;
transferidas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas retenidas:''' Número de retenciones que sufrieron las&lt;br /&gt;
llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACD:''' Tiempo ACD/ Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACW:''' TiempoACW/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio de entrada a la Ext:''' Tiempo entrada Ext/&lt;br /&gt;
Llamadas entrada Ext.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio de salida a la Ext:''' Tiempo salida Ext/ Llamadas&lt;br /&gt;
salida Ext.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio retención:''' Tiempo retención/Llamadas retenidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % Ocupación con ACW:''' ((Tiempo ACD+ Tiempo retención+ Tiempo&lt;br /&gt;
ACW)/Tiempo con personal)* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % Ocupación sin ACW:''' ((Tiempo ACD+ Tiempo retención)/Tiempo&lt;br /&gt;
con personal)* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % disp.:''' (Tiempo disponible/Tiempo conectado)* 100.&lt;br /&gt;
&lt;br /&gt;
===== Agente. Grupo ACD diario =====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención de un grupo&lt;br /&gt;
ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Ayuda:''' Número de llamadas contestadas por el agente que necesitaron&lt;br /&gt;
de consulta de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas retenidas:''' Número de retenciones que el agente realizó&lt;br /&gt;
sobre las llamadas de ese grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas por&lt;br /&gt;
el agente en ese grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Trans. salida:''' Llamadas que finalizan con una transferencia.&lt;br /&gt;
&lt;br /&gt;
===== Grupo ACD. Reporte diario con AHT =====&lt;br /&gt;
&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACD:''' Tiempo ACD/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACW:''' Tiempo ACW/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención de un grupo&lt;br /&gt;
ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente de un grupo ACD.&lt;br /&gt;
'''• Tiempo de llamado:''' Tiempo de ring en llamadas ACD de un grupo&lt;br /&gt;
ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo disponible:''' Tiempo que el agente estuvo conectado y no está&lt;br /&gt;
incluido en ninguno de los anteriores.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Ayuda:''' Número de llamadas ACD contestadas por el agente en las que&lt;br /&gt;
necesito hacer uso de la consulta.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas retenidas:''' Número de retenciones que el agente realizó&lt;br /&gt;
sobre las llamadas ACD contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas contestadas ACD&lt;br /&gt;
estuvieron retenidas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Trans. salida:''' Número de llamadas ACD que fueron transferidas por el&lt;br /&gt;
agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• AHT:''' (Tiempo ACD+ Tiempo ACW+ Tiempo retención)/Llamadas&lt;br /&gt;
ACD.(Average Handle Time)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Grupo ACD. QOS  =====&lt;br /&gt;
&lt;br /&gt;
'''• Vel. prom. de resp.:''' Tiempo total de espera de llamadas antes de ser&lt;br /&gt;
atendidas/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo prom. de aban.:''' Tiempo abandonadas(tiempo que las&lt;br /&gt;
llamadas abandonadas estuvieron en el grupo ACD)/Llamadas&lt;br /&gt;
abandonadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ofrecidas:''' Número de llamadas entrantes al grupo&lt;br /&gt;
ACD(Llamadas ACD+ Abandonadas+ Desbordadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas contestadas por los agentes.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas abandonadas:''' Número de llamadas colgadas por el cliente&lt;br /&gt;
en el grupo ACD antes de ser contestadas o desbordadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Desconectadas por ACD:''' Número de llamadas desbordadas que al&lt;br /&gt;
salir del grupo ACD se cuelgan.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Desbordadas por ACD:''' Número total de llamadas desbordadas(incluye&lt;br /&gt;
las desconectadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas atendidas en &amp;lt; 20s:'''Número de llamadas contestadas con&lt;br /&gt;
tiempo de respuesta menor a 20 segundos.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo total de espera:''' Tiempo total que las llamadas estuvieron&lt;br /&gt;
esperando antes de ser atendidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % N.A.:''' Llamadas ACD/(Llamadas ACD+ Llamadas abandonadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % N.D.S.:''' (Llamadas atendidas en &amp;lt; 20s/Llamadas ofrecidas)* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• T.M.O:''' (Tiempo ACD+ Tiempo ACW+ Tiempo retención)/Llamadas&lt;br /&gt;
ACD.(Tiempo Medio Operación)&lt;br /&gt;
&lt;br /&gt;
===== Informe conducción (VDN Conducción) =====&lt;br /&gt;
&lt;br /&gt;
'''•Entrantes al grupo ACD:''' Número de llamadas ofrecidas al grupo&lt;br /&gt;
ACD(Contestadas+ Abandonadas+ Desbordadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Llamadas contestadas:''' Número de llamadas contestadas por un agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Contestadas NDS:''' Número de llamadas contestadas en nivel de servicio,&lt;br /&gt;
tiempo de respuesta&amp;lt; 20 segundos.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Abandonadas:''' Número de llamadas abandonadas, colgadas por el cliente&lt;br /&gt;
antes de ser contestadas por un agente o desbordadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Desconectadas:''' Número de llamadas desbordadas que fueron colgadas al&lt;br /&gt;
salir del grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Desbordadas:''' Número total de llamadas desbordadas (incluye desconectadas)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Llamadas retenidas:''' Número de retenciones que el agente realizó sobre las&lt;br /&gt;
llamadas ACD contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•% N.A.:''' (Llamadas contestadas/(Llamadas contestadas+ Abandonadas+&lt;br /&gt;
Desbordadas))* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•% N.D.S.:''' (Contestadas NDS/(Llamadas contestadas+ Abandonadas + Desbordadas))*100&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•% Abandonadas:''' (Abandonadas/(Llamadas contestadas+ Abandonadas+ Desbordadas))* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. RING:''' Tiempo de ring en llamadas ACD(entrantes).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•ACDTIME:''' Tiempo de conversación ACD de las llamadas contestadas o&lt;br /&gt;
realizadas por el agente excluido el tiempo de retención de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. ACW:''' Tiempo dedicado por el agente a tareas administrativas tras&lt;br /&gt;
finalizar las llamadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum HOLD:''' Tiempo que las llamadas contestadas ACD estuvieron retenidas&lt;br /&gt;
por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. OTHER:''' Tiempo total que las llamadas estuvieron esperando en el&lt;br /&gt;
grupo ACD antes de ser atendidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. AVAIL:''' Acum. STAFF- (ACDTIME+ Acum. ACW+ Acum. RING+ Acum.&lt;br /&gt;
HOLD+ Acum. AUX).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. Staff:''' Suma del Tiempo conectado de todos los agentes al grupo&lt;br /&gt;
ACD(Este tiempo se repercute en todos los grupos ACD a los que esta&lt;br /&gt;
conectado el agente).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. AUX:''' Suma del Tiempo en pausa de todos los agentes que estén&lt;br /&gt;
conectados al grupo ACD(Este tiempo se repercute en todos los grupos ACD a&lt;br /&gt;
los que esta conectado el agente).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Prom. ACD:''' ACDTIME/Llamadas contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Prom. ACW:''' Acum. ACW/Llamadas contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Prom. HOLD:''' Acum. HOLD/Llamadas retenidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•AHT:''' (ACDTIME+ Acum. ACW+ Acum. HOLD)/Llamadas contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Vel. prom. de resp.:''' Tiempo total de espera de llamadas antes de ser&lt;br /&gt;
atendidas/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Tiempo máx. de espera:''' Tiempo de la llamada que estuvo mas tiempo en el&lt;br /&gt;
grupo ACD hasta que fue atendida.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Agentes en PH:''' (Acum. Staff- Acum. AUX)/1800(Agentes conectados que no&lt;br /&gt;
están en pausa en el intervalo).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Agentes Staff:''' Acum. Staff/1800(Agentes conectados en el intervalo)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Desglose de tiempos AUX:''' Tiempo que el agente estuvo en cada uno de los&lt;br /&gt;
motivos de pausa.&lt;br /&gt;
&lt;br /&gt;
===== Informe de producción =====&lt;br /&gt;
&lt;br /&gt;
'''• LL. ACD:'''Número de llamadas contestadas por ese agente para ese&lt;br /&gt;
grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. HOLD:''' Número de retenciones efectuadas para las llamadas&lt;br /&gt;
contestadas en ese grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Redir.:''' Número de llamadas no contestadas por un agente que&lt;br /&gt;
fueron redirigidas de nuevo a la cola.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. No colgadas cliente:''' Número de llamadas que terminaron sin el&lt;br /&gt;
colgado del cliente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Aband.:''' Número de llamadas abandonadas en ese grupo ACD, este&lt;br /&gt;
valor es independiente del agente por tanto se repite el valor para todos&lt;br /&gt;
los agentes en un mismo grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Transfer.:''' Número de llamadas ACD que fueron transferidas por el&lt;br /&gt;
agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Conf:''' Número de llamadas ACD en las que el agente estableció&lt;br /&gt;
conferencia.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• S. Extensión:''' Número de llamadas salientes de extensión, este valor es&lt;br /&gt;
independiente del grupo ACD se repite el valor para todos los grupos&lt;br /&gt;
ACD en los que está conectado el agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. Staff:''' Tiempo que el agente estuvo conectado al grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. RING:''' Tiempo de ring en las llamadas ACD(entrantes) que&lt;br /&gt;
fueron contestadas por el agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. ACD:''' Tiempo de conversación de las llamadas ACD(entrantes)&lt;br /&gt;
que fueron contestadas por el agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas que fueron contestadas por él.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum HOLD:''' Tiempo que las llamadas ACD(entrantes) para ese grupo&lt;br /&gt;
ACD que fueron contestadas por el agente estuvieron retenidas.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. AVAIL:''' Acum. STAFF- (Acum. ACD+ Acum. ACW+ Acum. RING+&lt;br /&gt;
Acum. HOLD+ Acum. AUX)..&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. AUX:''' Tiempo que el agente estuvo en pausa este valor es&lt;br /&gt;
independiente del grupo ACD se repite el valor para todos los grupos&lt;br /&gt;
ACD en los que está conectado el agente..&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Desgloses de tiempos AUX, tiempo AUX por cada uno de los&lt;br /&gt;
motivos.''' este valor es independiente del grupo ACD se repite el valor&lt;br /&gt;
para todos los grupos ACD en los que está conectado el agente.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Consideraciones adicionales =====&lt;br /&gt;
&lt;br /&gt;
Los tiempos se insertan en el intervalo en el que se deja ese &amp;quot;estado&amp;quot;, esto provoca que en un intervalo pueda ser mayor el tiempo ACD que el tiempo conectado.&lt;br /&gt;
&lt;br /&gt;
''* Ejemplo:''&lt;br /&gt;
&lt;br /&gt;
 -Llamada: Duración 15 minutos Hora fin de la llamada 13:01&lt;br /&gt;
 -Llamada: Duración 20 minutos Hora fin de la llamada 13:24&lt;br /&gt;
 Suma de las duraciones de las llamadas para el intervalo ''35 minutos'' tiempo&lt;br /&gt;
 conectado del agente en el intervalo ''30 minutos.''&lt;br /&gt;
 Cuando los periodos consultados sean mas amplios (diario, mensual) los&lt;br /&gt;
 desfases tenderán a desaparecer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Otros Diagnósticos y operaciones básicas ==&lt;br /&gt;
=== Arranque y apagado de la plataforma ===&lt;br /&gt;
&lt;br /&gt;
En general el arranque y apagado de cada nodo de una plataforma '''''VIVA'''''it es el estándar de un procedimiento ordenado de apagado en una máquina linux: '''&amp;quot;Shutdown -h now&amp;quot;''' o comando de apagado inmediato o programado equivalente&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El orden de arranque de la plataforma deberá ser:&lt;br /&gt;
# En primer lugar arrancar el nodo con la base de datos de tiempo real&lt;br /&gt;
# Una vez finalizado el arranque del punto 1, arrancar el nodo con la base de datos de réplica&lt;br /&gt;
# Una vez finalizado el arranque del punto 2, arrancar el resto de nodos en cualquier orden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Al respecto del orden de apagado de nodos, es el siguiente:&lt;br /&gt;
# En primer lugar se apagarán, en cualquier orden, los nodos que NO CONTENGAN bases de datos de tiempo real ni bases de datos de réplica&lt;br /&gt;
# Una vez apagados totalmente todos los nodos del punto 1, apagaremos el nodo (o nodos) con bases de datos de réplica&lt;br /&gt;
# Una vez apagados totalmente todos los nodos del punto 2, se apagará el nodo con la base de datos de tiempo real&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== Nivel matriz de conmutación ===&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Grabación ===&lt;br /&gt;
&lt;br /&gt;
==== Configuración de la grabación en la plataforma corporativa ====&lt;br /&gt;
Para que una llamada se grabe, lo primero de todo es que  alguien tenga la capacidad de grabar. Esto se consigue diciendo al nodo que sea grabador. Esto provoca que el nodo llame al mixmonitor para grabar y se inserte un registro en el DAT_GRABACIONES. Esto no significa que ya las llamadas se vayan a grabar, ya que para eso tiene que ser procesadas por un nodo que sea grabador. Hay tres, llamémosle elementos, que se pueden grabar:&lt;br /&gt;
&lt;br /&gt;
* El nodo, es decir todo lo que el nodo enrute&lt;br /&gt;
* Prerutas&lt;br /&gt;
* Objetos: que son las extensiones, usuarios, grupos corporativos, etc.&lt;br /&gt;
&lt;br /&gt;
Tenemos tres formas de grabar:&lt;br /&gt;
&lt;br /&gt;
* Grabar con beep periódico&lt;br /&gt;
* Grabar sin beep periódico&lt;br /&gt;
* Descartar grabación&lt;br /&gt;
&lt;br /&gt;
Si de los tres elementos tenemos que uno grabe, ya sea con o sin beep periódico, esa llamada se va a grabar ya que son OR, en cuanto haya un elemento que diga que grabe se va a grabar.&lt;br /&gt;
&lt;br /&gt;
Al igual pasa si tenemos que un elemento tenga descartar la grabación. La grabación no se inicia.&lt;br /&gt;
&lt;br /&gt;
Referente al campo de Modo de grabación en infraestructura, este no se emplea para la grabación de corporativo, sino que solo tiene validez en ACD. Para grabación en el ACD hay que, como se ha dicho anteriormente poner un nodo que sea grabador y especificar un elemento de los tres que hay cual es el que se va a grabar.&lt;br /&gt;
&lt;br /&gt;
Para que exista una grabación a de existir un segmento asociado a esta. Los segmentos se tratan en las prerutas. Hay un campo es las prerutas que es Generar segmento al enrutar. Si está se generará el segmento del tipo de la preruta y su correspondiente grabación si esta está configurada. Si le decimos que no genere segmentos al enrutar y el sistema está configurado para que grabe, el recordCentral creará un tipo de segmento llamado externo para esa grabación. Podemos configurar si queremos que se cree o no ese segmento, para eso hay que modificar el fichero de configuración del recordCentral y poner un tiempo muy alto al campo $segmExternoMinSegs. También podemos configurar que segmentos queremos que se graben. Por defecto el recordCentral va configurado para que se graben todos los segmentos. Para decirle que solo grabe cierto tipo de segmentos hay que ponerlos los que queramos que si se graben en la variable $tiposSegmentoGrabar del fichero de configuración del recordCentral.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que el servidor de grabación esta activo ====&lt;br /&gt;
&lt;br /&gt;
Si al ejecutar el comando '''''nc ip_maquina 1114''''',si no se recibe ninguna respuesta, significa el servidor de grabación no estaría activo. &lt;br /&gt;
También usando el comando ''''' ps aux | grep recordCentral ''''', donde si no escribe ningún resultado implica que tampoco esta activo.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que los nodos están conectados al servidor de grabación ====&lt;br /&gt;
&lt;br /&gt;
Debemos fijarnos en la linea de respuesta del comando '''''nc ip_maquina 1114''''', que seria:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| root@smadavacdrecord1:~# nc localhost 1114&lt;br /&gt;
recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423&lt;br /&gt;
160112'&lt;br /&gt;
&lt;br /&gt;
recordCentral MYSQL cnx=1&lt;br /&gt;
&lt;br /&gt;
recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
&lt;br /&gt;
recordCenral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
&lt;br /&gt;
'''recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10''''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el parámetro &amp;quot;fase=0&amp;quot; es el numero que identifica el recordCentral, los demás parámetros nos indicaran los nodos disponibles , que funcionan o no en el servidor. Entonces &amp;quot;gestión=4,6,7,8,9,10&amp;quot; indica el id de los nodos que maneja el proceso.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que un nodo tiene activo el agente de grabación ====&lt;br /&gt;
Si al ejecutar el comando '''''nc ip_maquina 1113''''', no se recibe ninguna respuesta, significa que el nodo no tiene activo el agente de grabación.&lt;br /&gt;
También usando el comando ''''' ps aux | grep recordNodo''''', donde si no escribe ningun resultado implica que tampoco esta activo.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que un nodo está subiendo archivos de grabación al servidor ====&lt;br /&gt;
Debemos fijarnos en la linea de respuesta del comando '''''nc ip_maquina 1114''''', que seria:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| root@smadavacdrecord1:~# nc localhost 1114&lt;br /&gt;
recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423&lt;br /&gt;
160112'&lt;br /&gt;
&lt;br /&gt;
recordCentral MYSQL cnx=1&lt;br /&gt;
&lt;br /&gt;
recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
&lt;br /&gt;
recordCenral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
&lt;br /&gt;
'''recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10''''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Fijándonos en &amp;quot;descarga=8,6,4,7,10,9&amp;quot; nos confirma que todos los nodos que maneja el proceso funcionan perfectamente y el servidor puede manejar las grabaciones.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de grabaciones que se hayan quedado enganchadas en un nodo ====&lt;br /&gt;
Podemos fijarnos en los dos comandos, para '''''nc ip_maquina 1114''''':&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| root@smadavacdrecord1:~# nc localhost 1114&lt;br /&gt;
recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423&lt;br /&gt;
160112'&lt;br /&gt;
&lt;br /&gt;
recordCentral MYSQL cnx=1&lt;br /&gt;
&lt;br /&gt;
recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
&lt;br /&gt;
recordCenral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
&lt;br /&gt;
'''recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10''''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Fijándonos en el campo &amp;quot;cuarentena=''&amp;quot; indica que ninguno de los nodos tiene problemas.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación del estado de ocupación del almacenamiento temporal de grabaciones en un nodo. ====&lt;br /&gt;
&lt;br /&gt;
Desde un SSH ejecuta el comando '''''df - h''''' en la maquina donde creamos que debe estar ejecutando el proceso recordNod:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Filesystem !! Size !! Used !! Avail !! Use% !! Mounted on&lt;br /&gt;
|-&lt;br /&gt;
| udev || 486M || 4,0K || 486M || 1,00% || /dev&lt;br /&gt;
|-&lt;br /&gt;
| tmpfs || 100M || 416K || 99M || 1,00% || /run&lt;br /&gt;
|-&lt;br /&gt;
| '''/dev/vda1''' ||''' 236M''' ||''' 68M''' ||''' 156M''' ||''' 31,00% '''||''' /boot'''&lt;br /&gt;
|-&lt;br /&gt;
| tmpfs || 100M || 48K || 100M || 1,00% || /var/spool/asterisk/monitor&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Nos fijaríamos en la línea marcada en negrita, el campo &amp;quot;Use%&amp;quot; indicara el porcentaje de almacenamiento temporal de grabaciones en un nodo.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Escuchas e intrusiones en asterisk===&lt;br /&gt;
'''CallSpy''' es una aplicación elaborada para asterisk que permite a un usuario realizar escuchas e &lt;br /&gt;
intrusiones en llamadas. &lt;br /&gt;
En realidad tenemos dos aplicaciones en asterisk, CallSpy y CallSpyee. &lt;br /&gt;
====CallSpy ====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 '''Nota:''' Como mucho se pueden tener a dieciséis personas al mismo tiempo usando esta aplicación. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como hemos mencionado anteriormente, esta aplicación permite la escucha de llamadas y, &lt;br /&gt;
opcionalmente, realiza la función de intrusión. Tiene tres opciones de configuración obligatorios &lt;br /&gt;
que mostramos a continuación: &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 CallSpy(&amp;lt;tipoEspiado&amp;gt;,&amp;lt;expRegEspiado&amp;gt;,&amp;lt;parametrosConf&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
La opción '''&amp;lt;tipoEspiado&amp;gt;''' se refiere a que tipo de objeto que podemos espiar correspondiente, solo debe elegirse un único tipo: &lt;br /&gt;
*'''c:''' escuchar una cola&lt;br /&gt;
*'''v:''' escuchar un vdn &lt;br /&gt;
*'''a:''' escuchar a un agente &lt;br /&gt;
*'''e:''' escuchar extensión &lt;br /&gt;
La opción '''&amp;lt;expRegEspiado&amp;gt;''' representa el número de la cola, VDN, agente o extensión que queremos escuchar. Tiene que ser una expresión regular. &lt;br /&gt;
La opción '''&amp;lt;parametrosConf&amp;gt;''' se refiera a los parámetros de configuración para la llamada que podemos espiar, se pueden combinar o juntar : &lt;br /&gt;
*'''q:''' Desactiva el 'beep' al comienzo de cada nueva llamada. &lt;br /&gt;
*'''v([value]):''' Ajusta el volumen en el rango -4 a 4 (más alto, mas volumen). &lt;br /&gt;
*'''e:''' Habilita el que se pueda cambiar a otra llamada de la misma extensión. &lt;br /&gt;
*'''w:''' Habilita el que se pueda activar la intrusión (whisper).&lt;br /&gt;
Una vez iniciada la escucha, solo falta que entre una llamada al objetivo que estemos espiando. Al &lt;br /&gt;
iniciar la escucha, se puede hacer lo siguiente: &lt;br /&gt;
*Pulsando '''#''' modifica el volumen de escucha. &lt;br /&gt;
*Pulsando '''*''' cambia a una nueva llamada. &lt;br /&gt;
*Pulsando '''1''' si esta habilitado, cambia a otra llamada de la misma extensión. &lt;br /&gt;
*Pulsando '''2''' si esta habilitado, inicia la función de intrusión. &lt;br /&gt;
*Pulsando '''3''' desactiva la función de intrusión. &lt;br /&gt;
====CallSpyee (espiado)====&lt;br /&gt;
Mediante esta aplicación indicamos los parámetros que permite a una llamada ser seleccionada para &lt;br /&gt;
escuchar. Las opciones de configuración son: &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 CallSpyee([CID_NUM],[cola],[vdn],[agen],[exten]) &lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:'''No son parámetros obligatorios, por lo que no hace falta rellenar todos los campos pero si respetar sus posiciones separadas por comas.&amp;lt;small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
La explicación de los parámetros es la siguiente:&lt;br /&gt;
*'''CID_NUM:''' representa el call ID de la llamadas &lt;br /&gt;
*'''cola:'''representa el número de la cola que se quiere espiar (${QUEUE} ).&lt;br /&gt;
*'''vdn:'''   representa el número del VDN que se quiere espiar (${VDN} ).&lt;br /&gt;
*'''agen:''' representa el número del agente que se quiere espiar.&lt;br /&gt;
*'''exten:''' representa el número de la extensión que se quiere espiar (${EXTENSION}) .&lt;br /&gt;
&lt;br /&gt;
Por ejemplo si queremos escuchar todas las llamadas en las que participa una extensión determinada pondremos en la macro de extensiones: &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,,,${EXTENSION}) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Cambios para el dialplan de asterisk==== &lt;br /&gt;
El funcionamiento de este tipo de servicio conlleva un cambio en el dialplan de asterisk. En cada macro correspondiente se pondrá los diferentes CallSpyee para VDN, colas  , extensiones y agentes. &lt;br /&gt;
Pasos a seguir: &lt;br /&gt;
*Paso 1. Creación de un código de intrusión para cada tipo según necesidad (cola, VDN, agente y &lt;br /&gt;
extensión). &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Ejemplo '''MD'''tel:  declaramos como código de intrusión a Agente *44*NUMERO &lt;br /&gt;
 ;========================================== &lt;br /&gt;
 ;======== Intrusion a Agente &lt;br /&gt;
 ;========================================== &lt;br /&gt;
 exten =&amp;gt; _*44*X.,1,set(CadMarcar=intrusionEspiado) &lt;br /&gt;
 exten =&amp;gt; _*44*X.,n,set(DesL=SERVICIO) &lt;br /&gt;
 exten =&amp;gt; _*44*X.,n,set(datoServicio=^${EXTEN:4}) &lt;br /&gt;
 exten =&amp;gt; _*44*X.,n,Goto(finMacro,1) &lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' En la tercera línea podemos observar la expresión regular que se le pasara al CallSpy correspondiente con el número marcado por el espia. &amp;lt;small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*Paso 2.Llamar a CallSpy con la configuración deseada.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Ejemplo '''MD'''tel:  llamada a CallSpy especificando que vamos a espiar una cola (la c del primer parámetro, con la&lt;br /&gt;
 extensión introducida en el código de intrusión y con whisper, es decir, función de intrusión habilitada. &lt;br /&gt;
 ;------------------------------------------------------------------------ &lt;br /&gt;
 ; Intrusion a Espiado &lt;br /&gt;
 ;------------------------------------------------------------------------ &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,1,NoOp &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,n,GotoIf($[&amp;quot;${datoServicio}&amp;quot;=&amp;quot;&amp;quot;]?colgar) &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,n,CallSpy(c,${datoServicio},w) &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,n(colgar),Hangup &lt;br /&gt;
|}&lt;br /&gt;
* Paso 3. Llamar a CallSpyee con la configuración de las llamadas candidatas a ser escuchadas.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Ejemplo '''MD'''tel: &lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,,,,${EXTENSION}) → Para extensiones &lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,${QUEUE},,,) → Llamadas espiadas por cola &lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,,${VDN},,) → Llamadas espiadas por VDN &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Calendarios ===&lt;br /&gt;
&lt;br /&gt;
Para la configuración de los Calendarios se hace uso de '''CalDAV''', estándar de Internet que permite a un cliente acceder a información de planificación en un servidor remoto. Permite que varios clientes accedan a la misma información, facilitando la cooperación. Muchas aplicaciones, tanto clientes como servidores, son compatibles con este protocolo.&lt;br /&gt;
&lt;br /&gt;
Si deseamos crear un calendario en la plataforma '''VIVAit''' podemos hacerlo siguiendo el  siguiente enlace:  &lt;br /&gt;
Para comprobar que el servidor de calendarios funciona correctamente bastaría con cargar en la barra de direcciones la siguiente url: [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Calendarios |Calendarios]]&lt;br /&gt;
&lt;br /&gt;
http://${NODO.HOST}/dav/html/cal.php/calendars/${DAV.CUENTA}/${DAV.CALENDARIO}&lt;br /&gt;
&lt;br /&gt;
donde,&lt;br /&gt;
&lt;br /&gt;
* '''NODO.HOST:''' es la ip del servidor calendar&lt;br /&gt;
* '''DAV.CUENTA:''' hace referencia a la cuenta de usuario&lt;br /&gt;
* '''DAV.CALENDARIO:''' hace referencia el nombre de la cuenta&lt;br /&gt;
&lt;br /&gt;
Una vez que se carga la url sabremos que el servidor funciona correctamente si visualizamos lo siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla de 2016-07-21 12_43_58.png || 1020px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si el sistema nos pide usuario y clave querrá decir que el servidor de calendarios está operativo en esa maquina&lt;br /&gt;
&lt;br /&gt;
Para comprobar que funciona en la consola de asterisk usaremos los comandos &lt;br /&gt;
 calendar show calendars&lt;br /&gt;
 calendar show calendar [nombreCalendario]&lt;br /&gt;
&lt;br /&gt;
 '''Nota:''' Debido bugs detectados, el proceso requerirá:&lt;br /&gt;
       - La realización de una sincronización manual de la sección &amp;quot;mdcal&amp;quot; desde el portal de administración&lt;br /&gt;
       - Añadir la línea '''''#include &amp;quot;/etc/asterisk/mdcal.conf&amp;quot;''''' en el fichero calendars.conf y hacer &amp;quot;reload&amp;quot; de asterisk&lt;br /&gt;
       - En la máquina donde esté instalado el servidor de calendarios apuntar a la IP de la BDTR (/var/www/dav/config.php)&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Syslog de agentes ===&lt;br /&gt;
'''''Syslog''''' es un estándar para el envío de mensajes de registro en una red informática IP. Por '''''Syslog''''' se conoce tanto al protocolo de red como a la aplicación o biblioteca que envía los mensajes de registro. Se lanza automáticamente al arrancar un sistema Unix, y es el encargado de guardar informes sobre el funcionamiento de la máquina (eventos, seguridad del sistema, etc) pero puede contener también cualquier información como mensajes de las diferentes partes del sistema (núcleo, programas...) y los envía y/o almacena en diferentes localizaciones transmitiéndose mediante un puerto UDP. Esto permite concentrar los registros de múltiples máquinas en un único punto simplificando la labor de gestión al administrador siendo habitual que múltiples dispositivos lo soporten.&lt;br /&gt;
&lt;br /&gt;
El formato del mensaje se compone de tres campos :&lt;br /&gt;
&lt;br /&gt;
* La cabecera contiene la prioridad, fecha y hora del mensaje, máquina, proceso (nombre e identificador) que lo ha generado y la versión del protocolo utilizado.&lt;br /&gt;
* Una serie de pares clave-valor con metadatos.&lt;br /&gt;
* El texto del mensaje.&lt;br /&gt;
&lt;br /&gt;
Si es necesario podemos activar el registro de todos los eventos telefónicos que realiza un agente ACD llamado '''Syslog de agentes'''. Su activación se realiza mediante el '''portal de administración ''VIVA''it'''  configurando unos parámetros para un usuario llamado ''Rastreo BBDD&amp;quot; y ''Rastreo Syslog''. Para más información[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Pesta.C3.B1a_ACD | ver sección  Portal de administración - General - Usuarios - Pestaña ACD  ]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot;  align=&amp;quot;top&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot; |&amp;lt;big&amp;gt;'''Elemento'''&amp;lt;/big&amp;gt; &lt;br /&gt;
|align=&amp;quot;center&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot; | &amp;lt;big&amp;gt;'''Procedimiento'''&amp;lt;/big&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Operacion&lt;br /&gt;
|-&lt;br /&gt;
|Ubicación del proceso||Script arranque: /etc/init/ rsyslog.conf&lt;br /&gt;
Configuración :&lt;br /&gt;
/etc/rsyslog.d/30-vivait-&lt;br /&gt;
desk.conf&lt;br /&gt;
|-&lt;br /&gt;
|Arranque||service rsyslog start&lt;br /&gt;
|-&lt;br /&gt;
|Parada||service rsyslog stop&lt;br /&gt;
|-&lt;br /&gt;
|Reinicio||service rsyslog reload&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Diagnostico&lt;br /&gt;
|-&lt;br /&gt;
|Registro de logs||/var/log/MDtel/vivait-desk.log&lt;br /&gt;
Fichero del día actual. se guardan los 30&lt;br /&gt;
anteriores comprimidos en tar.g&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==Funcionalidades específicas ==&lt;br /&gt;
=== Mecanismo de prioridad adaptativa ===&lt;br /&gt;
&lt;br /&gt;
El mecanismo de prioridad adaptativa permite en una plataforma '''''VIVA'''''it Suite establecer prioridades en las que se tenga en cuenta el tiempo de espera de las llamadas en cola, proporcionando una alternativa al mecanismo de prioridad absoluta que existe por defecto&lt;br /&gt;
&lt;br /&gt;
==== Introducción ====&lt;br /&gt;
&lt;br /&gt;
Este documento presenta una propuesta de mecanismo de asignación de llamadas en colas a agentes basado no solo en las prioridades de agente a cola,&lt;br /&gt;
sino en un factor de corrección de prioridad derivado del tiempo de espera de una llamada&lt;br /&gt;
&lt;br /&gt;
==== Terminología ====&lt;br /&gt;
&lt;br /&gt;
* '''Prioridad de llamada:''' A cada llamada susceptible de ser atendida en el ''Call Center'' se le asignará una prioridad de llamada; dicha prioridad será asignada cada vez que un agente quede disponible.&lt;br /&gt;
* '''Prioridad de grupo ACD:''' Los agentes del ''Call Center'' tendrán configurada una prioridad para cada grupo ACD al que pertenecen&lt;br /&gt;
* '''Tiempo de espera:''' Tiempo que una llamada lleva en espera en un determinado grupo ACD; si la llamada cambia de un grupo ACD a otro el tiempo de espera pasa a cero&lt;br /&gt;
* '''Objetivo de servicio:''' Tiempo objetivo máximo de espera por cada grupo ACD&lt;br /&gt;
&lt;br /&gt;
 '''Nota.-''' ''En terminología Asterisk el aumento de prioridad corresponde con números descendentes, es decir,&amp;lt;br /&amp;gt;&lt;br /&gt;
 prioridad 50 es mejor que prioridad 70''&lt;br /&gt;
&lt;br /&gt;
==== Mecanismo de asignación de llamadas ====&lt;br /&gt;
&lt;br /&gt;
En el momento en que exista un agente disponible para recibir llamada, el agente recepcionará la llamada con mejor prioridad de llamada (menor número). La prioridad de llamada para cada llamada se establecerá de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
- Agentes con prioridad de grupo ACD de 1 a 99 utilizarán el mecanismo convencional de asterisk de prioridad absoluta; será útil para grupos ACD críticos o en Call Centers muy convencionales&lt;br /&gt;
&lt;br /&gt;
'''Si un agente tiene prioridad menor de 100 en grupos ACD y hay llamadas en dichos grupos, estas llamadas serán atendidas por el agente con prioridad absoluta.'''&lt;br /&gt;
&lt;br /&gt;
- Agentes con prioridad de colas de 100 en adelante; se utilizará el siguiente mecanismo de prioridad ponderada:&lt;br /&gt;
&lt;br /&gt;
:*Si el grupo ACD de la llamada está dentro del objetivo de servicio, la prioridad de llamada será la prioridad de grupo ACD (a efectos prácticos se aplicará el mecanismo convencional de asignación de llamada a agente, equitativo entre grupos ACD con misma prioridad)&lt;br /&gt;
&lt;br /&gt;
:*Si el grupo ACD de la llamada está fuera del objetivo de servicio, se aplicará una ponderación que mejorará la prioridad de la llamada a medida que aumente el tiempo de espera:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Formula.png |center]]&lt;br /&gt;
&lt;br /&gt;
En una configuración de igualdad de prioridad de agente y objetivo de servicio, el tiempo de espera influiría de manera determinante (más o menos en&lt;br /&gt;
función del peso) en la asignación de la siguiente llamada&lt;br /&gt;
El peso podrá adquirir tres posibles valores: 0, 1 y 10&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Esquema.png |center]]&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;span style=&amp;quot;color:#000080&amp;quot;&amp;gt;- Calculo prioridad de llamada: se calcula por llamada cada vez que un agente queda libre&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span style=&amp;quot;color:#000080&amp;quot;&amp;gt;- Agente atiende llamada con mejor prioridad de llamada&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Medio:Asignación de llamadas por prioridad adaptativa.pdf|Asignación de llamadas por prioridad adaptativa]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Marcación saliente ===&lt;br /&gt;
Dentro del ACD hay un comportamiento especial que es la marcación saliente. Esta puede ser de tres tipos:&lt;br /&gt;
* '''Vista previa''': El agente demanda la siguiente llamada a realizar.&lt;br /&gt;
* '''Progresivo''': Se llama al agente y se lanza la llamada al contacto.&lt;br /&gt;
* '''Predictivo''': El sistema calcula cuando va a estar libre el agente y se adelanta lanzando varias llamadas (configurables por parámetros). La llamada que es contestada primero, se pasa a una cola (el resto se cuelgan) a la espera que el agente se quede libre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Esquema de funcionamiento====&lt;br /&gt;
[[Archivo:esquema funcionamiento marcador.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
Los contactos se agrupan en listas para su facilidad de asignación a campañas, aunque finalmente lo que se asigna a una campaña es un contacto.&lt;br /&gt;
&lt;br /&gt;
Las campañas tienen estrategias. Las estrategias definen como se ha de llamar (del primero al último, sólo los pares, etc.). Tienen una serie de parámetros que  dependiendo de la estrategia pueden tener distinta utilidad. Desde el punto de vista de la base de datos, las estrategias se definirían en la tabla ACD_CLASES_ESTRATEGIAS y se les da valor en la tabla ACD_ESTRATEGIAS_MARCADOR.&lt;br /&gt;
Una vez establecida la campaña y asignados sus contactos y dependiendo del modo de marcación (que se define en las colas) el proceso motorSal crea los intentos de marcación (siempre y cuando no estén en las listas Robinson), que serán leídos por el proceso myAcdSuperv que los convierte en llamadas para el Asterisk.&lt;br /&gt;
&lt;br /&gt;
====Flujo de estados====&lt;br /&gt;
&lt;br /&gt;
El flujo de estados es el reflejado en la figura siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:diagrama de flujo motorsal.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
Los diferentes estados de un contacto son:&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Estado !! ID_Estado!! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| Planificable || 0|| El contacto está preparado para que lo gestione motorSal y según la estrategia definida se establece el campo ACD_CONTACTOS_CAMPANNAS.D_HORA_PROXIMA&lt;br /&gt;
|-&lt;br /&gt;
|Planificado||10||Cuando ha llegado el tiempo marcado en HORA PROXIMA, motorSal ejecuta la 2ª fase de la estrategia, generando el intento de marcación.&lt;br /&gt;
|-&lt;br /&gt;
|Intento||20||El control pasa a myAcdSuperv, que a su vez genera la llamada en Asterisk. Cuando termina, se pasa a Planificable o Finalizado.&lt;br /&gt;
|-&lt;br /&gt;
|Finalizado||100||Las gestiones con este contacto han terminado.&lt;br /&gt;
|-&lt;br /&gt;
|Abortado||110||&lt;br /&gt;
|-&lt;br /&gt;
|Obsoleto||200||Se ha agotado el tiempo para contactar sin agotar todos los intentos. No se le vuelve a llamar nunca.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Carga de contactos====&lt;br /&gt;
&lt;br /&gt;
===== Descripción =====&lt;br /&gt;
&lt;br /&gt;
A continuación se explica la configuración y funcionamiento de la utilidad encargada de asignar contactos a campañas.&lt;br /&gt;
&lt;br /&gt;
===== Configuración =====&lt;br /&gt;
&lt;br /&gt;
El archivo de configuración recibe el nombre de '''cargaContactos.pconf.''' Este archivo reside en '''/etc/MDtel.''' El formato se describe en la tabla siguiente. Hay que tener en cuenta que las columnas empiezan a numerarse en 0.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Parámetro !! Valor !! Obligatorio !! Defecto&lt;br /&gt;
|- &lt;br /&gt;
| db|| Nombre de la base de datos|| SI || nimitz&lt;br /&gt;
|- &lt;br /&gt;
| dbHost|| Host MySQL || SI || localhost&lt;br /&gt;
|- &lt;br /&gt;
| dbPort|| Puerto MySQL || NO || 3306&lt;br /&gt;
|- &lt;br /&gt;
| dbUsuario || Usuario de acceso a la base de datos|| SI ||&lt;br /&gt;
|- &lt;br /&gt;
| dbClave || Clave del usuario || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| rutaContactos || Ruta hasta el archivo de contactos || NO || /var/spool/MDtel/contactos&lt;br /&gt;
|- &lt;br /&gt;
| obsoletos || Si vale 1, marcar como obsoletos los contactos anteriores || NO || 0&lt;br /&gt;
|- &lt;br /&gt;
| diasCaducidad || Número de dias a partir de los cuales caducarán los contactos || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| idCampanna || Número de columna que contiene el ID de la campaña || SI||&lt;br /&gt;
|- &lt;br /&gt;
| idLista || Numero de columna que contiene el ID de la lista || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| prioridad || Número de columna que contiene la prioridad || NO || Nota: El valor es de 0 a 99. A mayor número menor prioridad (se le llamará más tarde)&lt;br /&gt;
|- &lt;br /&gt;
| tipoTarea|| Número de columna que contiene el tipo de tarea || NO || Nota: los posibles valores de la columna son : &amp;lt;br /&amp;gt; *A: Alta &amp;lt;br /&amp;gt; *M: Modificación &amp;lt;br /&amp;gt; *B: Baja&amp;lt;br /&amp;gt; Por defecto el valor es A&lt;br /&gt;
|- &lt;br /&gt;
| codCli || Número de columna del CSV que contiene el código de cliente || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| nombreCon || Número de columna del CSV que contiene el nombre || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| apellido1 || Número de columna del CSV que contiene el primer apellido|| NO ||&lt;br /&gt;
|- &lt;br /&gt;
| apellido2 || Número de columna del CSV que contiene el segundo apellido || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| empresa || Número de columna del CSV que contiene la empresa || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| direccion1 || Número de columna del CSV que contiene la dirección || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| direccion2 || Número de columna del CSV que contiene la dirección 2 || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| codPostal || Número de columna del CSV que contiene el código postal || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| localidad || Número de columna del CSV que contiene la localidad || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| provin || Número de columna del CSV que contiene la provincia || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| email || Número de columna del CSV que contiene el email || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_1 || Número de columna del CSV que contiene el primer número fijo del contacto || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_2 || Número de columna del CSV que contiene el segundo número fijo del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_3 || Número de columna del CSV que contiene el tercer número fijo del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_4 || Número de columna del CSV que contiene el cuarto número fijo del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_1 || Número de columna del CSV que contiene el primer número móvil del contacto || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_2 || Número de columna del CSV que contiene el segundo número móvil del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_3 || Número de columna del CSV que contiene el tercer número móvil del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_4 || Número de columna del CSV que contiene el CUARTO número móvil del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| edad || Número de columna del CSV que contiene la edad || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc1|| Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc2 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc3 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc4 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc5 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc6 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc7 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc8 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc1 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc2 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc3 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc4 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc5 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc6 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc7 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc8 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Funcionamiento =====&lt;br /&gt;
&lt;br /&gt;
Para ejecutar la utilidad se debe teclear la siguiente orden en la línea de comandos:&lt;br /&gt;
&lt;br /&gt;
'''cmd# cargaContactos.pl /&amp;lt;ruta hasta el conf&amp;gt;/cargaContactos.pconf &amp;lt;archivo CSV&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
El archivo con los contactos deberá ser un CSV con los campos separados por ';'. La utilidad parsea el archivo conforme a la distribución indicada en la configuración y crea las correspondientes entradas en las tablas '''ACD_CONTACTOS''' y '''ACD_CONTACTOS_CAMPANNAS.'''&lt;br /&gt;
&lt;br /&gt;
La utilidad crea un log en '''/var/log/cargaContactos.log''' en el que vuelca toda la operativa.&lt;br /&gt;
Por pantalla se va mostrando un lista con el ID asignado al contacto y el ID de campaña al que se le ha asignado.&lt;br /&gt;
&lt;br /&gt;
Un ejemplo de fichero de carga de contactos sería el siguiente: &lt;br /&gt;
&lt;br /&gt;
 #&lt;br /&gt;
 # Configuracion de recordGwd.pl&lt;br /&gt;
 #&lt;br /&gt;
 # Conexion de base de datos&lt;br /&gt;
 $db='nimitz';&lt;br /&gt;
 $dbHost = 'localhost';&lt;br /&gt;
 $dbPort = '3306';&lt;br /&gt;
 $dbUsuario = 'nimitz';&lt;br /&gt;
 $dbClave = 'LA QUE SEA';&lt;br /&gt;
 $diasCaducidad='300';&lt;br /&gt;
 $rutaGrab = '/var/spool/MDtel/contactos';&lt;br /&gt;
 $idCampanna = '31';&lt;br /&gt;
 $idLista = '32';&lt;br /&gt;
 $obsoletos = 0;&lt;br /&gt;
 $codCli = '1';&lt;br /&gt;
 $nombreCon = '2';&lt;br /&gt;
 $apellido1 = '3';&lt;br /&gt;
 $apellido2 = '4';&lt;br /&gt;
 $empresa = '5';&lt;br /&gt;
 $direccion1 = '6';&lt;br /&gt;
 $direccion2 = '7';&lt;br /&gt;
 $codPostal = '8';&lt;br /&gt;
 $localidad = '9';&lt;br /&gt;
 $provin = '10';&lt;br /&gt;
 $email = '11';&lt;br /&gt;
 $valFijo_1 = '12';&lt;br /&gt;
 $valFijo_2 = '13';&lt;br /&gt;
 $valFijo_3 = '14';&lt;br /&gt;
 $valFijo_4 = '15';&lt;br /&gt;
 $valMovil_1 = '16';&lt;br /&gt;
 $valMovil_2 = '17';&lt;br /&gt;
 $valMovil_3 = '18';&lt;br /&gt;
 $valMovil_4 = '19';&lt;br /&gt;
 $edad = '20';&lt;br /&gt;
 $nOpc1 = '21';&lt;br /&gt;
 $nOpc2 = '22';&lt;br /&gt;
 $nOpc3 = '23';&lt;br /&gt;
 $nOpc4 = '24';&lt;br /&gt;
 $cOpc1 = '25';&lt;br /&gt;
 $cOpc2 = '26';&lt;br /&gt;
 $cOpc3 = '27';&lt;br /&gt;
 $cOpc4 = '28';&lt;br /&gt;
 $prioridad = '29';&lt;br /&gt;
 $tipoTarea = '30';&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ENLACES QUE HABIA&lt;br /&gt;
[[Medio:CargaContactos300.pdf|Instrucciones para carga automatizada de contactos]]&lt;br /&gt;
&lt;br /&gt;
[[Medio:EjemplocargaContactos.pconf.pdf|Ejemplo de fichero de carga de contactos]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Movilidad ===&lt;br /&gt;
La movilidad es una función integral de las comunicaciones en la empresa. Cualquier empleado (usuario) es móvil en cierto grado, sea dentro o fuera de la organización.La solución óptima debe proporcionar continuidad de servicios y acceso a nuestros servicios, sin importar donde se esté.&lt;br /&gt;
&lt;br /&gt;
==== Ofrecer movilidad a un usuario ====&lt;br /&gt;
&amp;lt;!--parte daniel--&amp;gt;&lt;br /&gt;
Para permitir la movilidad a un usuario, puede ser en el momento de crear o editar un usuario en el apartado ''Administración de usuario'' en ''General'' del '''portal de administración ''VIVA''it'''.  Asignándole un '''''numero login''''' (numero personal corporativo para el usuario) y una '''''clave login''''' ( se debe asignar una clave por defecto, pero puede cambiarla en el [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_3.0#Portal_de_usuario |portal de usuario]]). &amp;lt;br/&amp;gt;Para más información[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Pesta.C3.B1a_Centralita | ver sección Portal de administración - General - Usuarios - administración de usuarios - Pestaña Centralita]].&lt;br /&gt;
&lt;br /&gt;
Además, de crear un permiso de la '''aplicación ''Centralita''''' a cualquier nivel, desde el apartado ''Permisos de usuarios'' en ''General'' del '''portal de administración ''VIVA''it'''.&amp;lt;br/&amp;gt;Para más información[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Asignaci.C3.B3n_de_Permisos_de_Usuario_por_Administrador | ver sección  Portal de administración - General - Usuarios - Permisos a usuarios]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''La movilidad permite''' disponer de las extensiones telefónicas empresariales en cualquier lugar. Por&lt;br /&gt;
ejemplo, con un ordenador portátil o smartphone en una ubicación remota con conexión a Internet,&lt;br /&gt;
podríamos tener registrada nuestra extensión remotamente, y así las llamadas hacia/desde nuestra&lt;br /&gt;
oficina serían enrutadas por Internet hasta el equipo en cuestión sin coste alguno.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--parte daniel--&amp;gt;&lt;br /&gt;
Todo terminal tiene asociado una extensión y deberá permitir la movilidad de usuarios. La extensión se configura cambiando a '''''SI''''' el campo '''''Hay Movilidad''''' desde el apartado ''Extensiones'' de ''Dispositivos'' en ''VIVAit Call'' del '''portal de administración ''VIVA''it'''. Para más información [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Extensiones | ver sección Portal de administración - VIVAit Call - Dispositivos - Extensiones]]&lt;br /&gt;
&lt;br /&gt;
==== ¿Cómo funcionan las extensiones? ====&lt;br /&gt;
&lt;br /&gt;
Primeramente el usuario debe tener los ejes apropiados en la tabla '''COM_USUARIOS_APLICACION''' (aplicación centralita).&lt;br /&gt;
&lt;br /&gt;
La extensión debe de tener ''un teléfono'' y por tanto ''un modelo de teléfono asociado.''&lt;br /&gt;
&lt;br /&gt;
Es tan simple como especificar '''la extensión, el usuario y la clave de este.'''&lt;br /&gt;
&lt;br /&gt;
Para corroborar el funcionamiento de esta hay ''dos métodos'':&lt;br /&gt;
&lt;br /&gt;
'''* CLI asterisk:'''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenEntraUsuarioMovil 25001 20001 1234'''&lt;br /&gt;
&lt;br /&gt;
Y como resultado obtenemos lo siguiente:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br /&amp;gt;&lt;br /&gt;
 MOVIL_TIPO_RESET='10'&amp;lt;br /&amp;gt;&lt;br /&gt;
 MOVIL_CAD_RESET='notify_yealink'&amp;lt;br /&amp;gt;&lt;br /&gt;
 MdintzRes='OK'&lt;br /&gt;
&lt;br /&gt;
El usuario con el login numérico 20001 se ha &amp;quot;movido&amp;quot; a la extensión 25001&lt;br /&gt;
&lt;br /&gt;
Ahora ''nos quitamos de esa extensión mediante el siguiente comando:''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenSaleUsuarioMovil 25001'''&lt;br /&gt;
&lt;br /&gt;
Resultado del comando:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MOVIL_TIPO_RESET='10'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MOVIL_CAD_RESET='notify_yealink'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzRes='OK'&lt;br /&gt;
&lt;br /&gt;
Las pruebas anteriores han sido '''con extensiones con movilidad y con usuario con/sin&lt;br /&gt;
propietario.'''&lt;br /&gt;
&lt;br /&gt;
Ahora las realizamos '''con extensiones sin movilidad'''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenEntraUsuarioMovil 25002 20001 1234'''&lt;br /&gt;
&lt;br /&gt;
Obteniendo:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzRes='movil_error_datos'&lt;br /&gt;
&lt;br /&gt;
Como era lo previsible no nos deja &amp;quot;movernos&amp;quot; a esa extensión ya que no tiene movilidad.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;Si un usuario ya se ha movido a una extensión no se puede mover a otra si no es deslogandose de esta antes.&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenEntraUsuarioMovil 21000 20001 1234'''&lt;br /&gt;
&lt;br /&gt;
Con salida:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MOVIL_EXTEN='25001'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MDintzRes='movil_ya_login'&lt;br /&gt;
&lt;br /&gt;
'''* Dialplan'''&lt;br /&gt;
&lt;br /&gt;
Para llamar a la función de movilidad hay que marcar el '''9992.'''&lt;br /&gt;
&lt;br /&gt;
 Nota.- Para comprobar que se realiza todo correctamente habría que mirar las trazas de Asterisk&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Grabación ===&lt;br /&gt;
&lt;br /&gt;
La grabación en '''''VIVA'''''it Call está diseñada para ser lo mas flexible posible.&lt;br /&gt;
&lt;br /&gt;
====Configuración====&lt;br /&gt;
&lt;br /&gt;
Si deseamos grabar, debemos activar que alguno de los dispositivos/elementos que intervienen en la llamada se grabe.&lt;br /&gt;
&lt;br /&gt;
Estos dispositivos/elementos son:&lt;br /&gt;
&lt;br /&gt;
* Nodo.&lt;br /&gt;
* Usuario con Centralita.&lt;br /&gt;
* Agente.&lt;br /&gt;
* Grupo ACD corporativo y de Contact Center.&lt;br /&gt;
* Enlace exterior.&lt;br /&gt;
* Extensión.&lt;br /&gt;
* Facilidades.&lt;br /&gt;
* Grupo: grupo de salto o grupo de operadoras.&lt;br /&gt;
* Sala de conferencia.&lt;br /&gt;
* VDN corporativo y de Contact Center.&lt;br /&gt;
* Pre-rutas.&lt;br /&gt;
&lt;br /&gt;
Por otro lado necesitaremos que la llamada pase por un nodo que sea grabador, es decir, que si la llamada esta configurada para que se grabe pero no pasa por ningún nodo grabador, la llamada no se grabará.&lt;br /&gt;
&lt;br /&gt;
Al configurar un nodo existen cuatro campos que intervienen en la grabación.&lt;br /&gt;
&lt;br /&gt;
''''Grabador''''&lt;br /&gt;
&lt;br /&gt;
Se configura en el portal en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Este campo corresponde con el campo [[BD.COM_NODOS#B_ES_GRABADOR|B_ES_GRABADOR]] de la tabla [[BD.COM_NODOS|COM_NODOS]] , este campo define si el nodo va a grabar las llamas que pasen por el que necesiten ser grabadas y no se estén grabando ya.&lt;br /&gt;
&lt;br /&gt;
Es un campo booleano los posibles valores en el portal son si/no y en la base de datos 1/0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''''Modo grabación infraestructura''''&lt;br /&gt;
&lt;br /&gt;
Su configuración se realiza en el portal, en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Este campo define como está configurada la infraestructura, este campo existe por compatibilidad con '''''VIVA'''''it suite y para poder configurar la grabación bajo demanda.&lt;br /&gt;
&lt;br /&gt;
Este campo corresponde con el campo [[BD.COM_NODOS#E_MODO_GRABACION_INFRAESTRUCTURA|E_MODO_GRABACION_INFRAESTRUCTURA]] de la tabla [[BD.COM_NODOS|COM_NODOS]], Este campo usa los valores del enumerado BD.ENUM.TModoGrabacionInfraestructura|TModoGrabacionInfraestructura]].&lt;br /&gt;
&lt;br /&gt;
La formula que se seguiría para ver si una llamada se graba en ese nodo es:&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 (NODO.E_MODO_GRABACION_INFRAESTRUCTURA) AND (NODO.B_ENRU_GRABAR OR CEN_PRE_RUTA.B_ENRU_GRABAR OR &amp;quot;OBJETO&amp;quot;.B_ENRU_GRABAR)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Que sería que si la infraestructura esta en NoGraba no se graba nada de lo que se rute en ese nodo y en cualquiera de los 2 otros caso (GrabaTodo o GrabaPorPeticion) se grabaría dependiendo de la configuración del Nodo, la ruta o el objeto en cuestión (preruta, grupo ACD, extension,...).&lt;br /&gt;
&lt;br /&gt;
''''Grabar enrutamiento''''&lt;br /&gt;
&lt;br /&gt;
Se configura en el portal en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Este campo define si van a grabar las llamadas que se enruten en este nodo.&lt;br /&gt;
&lt;br /&gt;
Campo [[BD.COM_NODOS#E_ENRU_GRABAR|E_ENRU_GRABAR]] de la tabla [[BD.COM_NODOS|COM_NODOS]] que usa los valores del enumerado [[BD.ENUM.TTipoEnruGrabar|TTipoEnruGrabar]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''''RecordCentral''''&lt;br /&gt;
&lt;br /&gt;
Se configura en el portal en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Define que instancia del recordCentral es la encargada de tratar las grabaciones de este nodo.&lt;br /&gt;
&lt;br /&gt;
Para aumentar el rendimiento a la hora de traerse las grabaciones, se pueden definir varias instancias de proceso recordCentral, este campo define cual de estas instancias se encargara de este nodo.&lt;br /&gt;
&lt;br /&gt;
====Vivait Tracker====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL LA ÚNICA REFERENCIA A VIVAIT TRACKER EN LA DOCUMENTACIÓN &amp;quot;Vivait supervisor&amp;quot; QUE TENGO DICE LO SIGUIENTE. &amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Desde '''''VIVA'''''it Supervisor,  que es la aplicación dirigida a Supervisores, ofrece la posibilidad de supervisar y gestionar grupos ACD, agentes, asignaciones, prioridades,etc. Se puede obtener acceso directo a las aplicaciones de grabación ('''''VIVA'''''it tracker) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL FIN EXPLICACIÓN. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL De la documentacion creada por ivan. &amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Esquematico actual del proyecto tracker &lt;br /&gt;
[[Archivo:Esquematico_tracker_1.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1º El tracker web llama al web service Remote login para iniciar sesión y determinar si tiene permisos para la escucha y descarga de grabaciones.&lt;br /&gt;
&lt;br /&gt;
2º Si la ubicación de la grabación es local, mira la ruta de esta y se procede a la escucha o descarga de esta.&lt;br /&gt;
&lt;br /&gt;
3º Si la ubicación de la grabación es remota, entra en escena el proxy. Es el que realiza la petición.&lt;br /&gt;
&lt;br /&gt;
4º Si utilizamos el tracker windows, este, como el tracker web, llama primero al web service remote login para la autenticación y tema de Permisos.&lt;br /&gt;
&lt;br /&gt;
5º Para descargar o escuchar una grabación desde el tracker windows, se llama al web service servidor de grabaciones pasándole simplemente el ID de segmento.mp3. Este web service, con el ID de segmento, se encarga de determinar la ubicación de la grabación.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL De la documentación creada por ivan. &amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Esquematico actual del proyecto tracker &lt;br /&gt;
[[Archivo:Esquematico_tracker_2_https.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1º El tracker web llama al web service Remote login para iniciar sesión (comunicación https) y determinar si tiene permisos para la escucha y descarga de grabaciones. Se elimina el proxy&lt;br /&gt;
&lt;br /&gt;
2º Si la ubicación de la grabación es local, mira la ruta de esta y se procede a la escucha o descarga de esta.&lt;br /&gt;
&lt;br /&gt;
3º Si la ubicación de la grabación es remota, se realiza una petición al host remoto. El tipo de petición vendrá fijada por base de datos (http, https, ftp,ftps)&lt;br /&gt;
&lt;br /&gt;
4º Si utilizamos el tracker windows, este, como el tracker web, llama primero al web service remote login para la autenticación y tema de permisos (comunicación https extremo a extremo).&lt;br /&gt;
&lt;br /&gt;
5º Para descargar o escuchar una grabación desde el tracker windows, se llama al web service servidor de grabaciones pasándole simplemente el ID de segmento.mp3. Este web service, con el ID de segmento, se encarga de determinar la ubicación de la grabación.&lt;br /&gt;
&lt;br /&gt;
[[#Grabación_(Vivait_Tracker)| Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operación_plataforma_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
=== Enrutamiento ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Enrutamiento.png|885px |center]]&lt;br /&gt;
&lt;br /&gt;
==== Funcionamiento ====&lt;br /&gt;
El proceso de enrutamiento, como vemos en el esquemático, se compone de dos fases:&lt;br /&gt;
&lt;br /&gt;
# Preenrutameinto, que se encarga de tratar todas las llamadas&lt;br /&gt;
# Enrutamiento externo, que tiene módulos dedicados al enrutamiento hacia:&lt;br /&gt;
:*Enlaces externos. &lt;br /&gt;
:*Extensiones. &lt;br /&gt;
:*Usuarios de telefonía corporativa. &lt;br /&gt;
:*Facilidades. &lt;br /&gt;
:*Salas de conferencia. &lt;br /&gt;
:*Agentes de grupos ACD. &lt;br /&gt;
:*Grupos ACD. &lt;br /&gt;
:*Vdn. &lt;br /&gt;
:*Buzones para dejar mensaje. &lt;br /&gt;
:*Buzones para su gestión.&lt;br /&gt;
&lt;br /&gt;
Se asume que existen rutas directas entre todos los nodos de la red.&lt;br /&gt;
&lt;br /&gt;
Se asume que están directamente enrutadas todas las direcciones IP involucradas, tanto nodos, como terminales.&lt;br /&gt;
&lt;br /&gt;
Se asume que todas las facilidades están disponibles en todos los nodos, aunque es posible que la implementación sea diferente entre ellos.&lt;br /&gt;
&lt;br /&gt;
Los datos de entrada básicos al proceso de enrutamiento (pdEntr) son:&lt;br /&gt;
* Dispositivo&lt;br /&gt;
* Cola&lt;br /&gt;
* Origen&lt;br /&gt;
* Nodo entrada&lt;br /&gt;
* UCID&lt;br /&gt;
* CALLER_ID_NAME&lt;br /&gt;
* CALLER_ID_NUM&lt;br /&gt;
* DNIS&lt;br /&gt;
* Desvío por dialplan&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A partir de los datos de entrada básicos anteriores se pueden deducir los siguientes valores:&lt;br /&gt;
* Sede del dispositivo de entrada&lt;br /&gt;
* Sede del nodo de entrada&lt;br /&gt;
* Ancho de banda disponible en la sede del dispositivo&lt;br /&gt;
* Ancho de banda disponible en la sede del nodo&lt;br /&gt;
* Categoría entrante&lt;br /&gt;
* Valor del eje1 asignado a la llamadas&lt;br /&gt;
* CALLER_ID_NUM_EXTERNO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los datos de salida globales del proceso de enrutamiento (pdSale) son:&lt;br /&gt;
* Categoría saliente&lt;br /&gt;
* Código de cliente (opcional)&lt;br /&gt;
* Tipo de destino:	&lt;br /&gt;
:* No existe&lt;br /&gt;
:* Ruta externa&lt;br /&gt;
:* Extensión&lt;br /&gt;
:* Usuario de telefonía corporativa&lt;br /&gt;
:* Facilidad&lt;br /&gt;
:* Salas de conferencia&lt;br /&gt;
:* Agentes de grupos ACD&lt;br /&gt;
:* Grupos ACD&lt;br /&gt;
:* VDN&lt;br /&gt;
:* Buzón para dejar mensaje. &lt;br /&gt;
:* Buzón para dejar mensaje por ocupado. &lt;br /&gt;
:* Buzón para dejar mensaje por no contestación. &lt;br /&gt;
:* Buzón para su gestión.&lt;br /&gt;
* Destinatario (cuando se trata de un usuario o de un agente)&lt;br /&gt;
* Valor del eje1 asignado a la llamada&lt;br /&gt;
* Buzón de las extensiones y usuarios que los tengan asignados&lt;br /&gt;
* Si el buzón está en nodo distinto al de entrada&lt;br /&gt;
* DESVIO_INCONDICIONAL (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable) &lt;br /&gt;
* DESVIO_NO_CONTESTA (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable) &lt;br /&gt;
* DESVIO_OCUPADO (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable) &lt;br /&gt;
* DESVIO_FUERA_SERV (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los datos de salida para cada una de las posibles rutas en orden son (nn va de 01 maxRutas [nn son dos dígitos decimales]):&lt;br /&gt;
* CONTADOR_ABDE_nn (contador para control de ancho de banda en sede de dispositivo de entrada).  &lt;br /&gt;
* CONTADOR_ABNE_nn (contador para control de ancho de banda en sede de nodo de entrada).  &lt;br /&gt;
* CONTADOR_ABDS_nn (contador para control de ancho de banda en sede de dispositivo de salida).  &lt;br /&gt;
* CONTADOR_ABNS_nn (contador para control de ancho de banda en sede de nodo de salida).  &lt;br /&gt;
* CALLER_NAME_SAL_nn , puede salir de una extensión, un usuario o de un agente. &lt;br /&gt;
* CALLER_NUM_SAL_nn, puede salir de una extensión, un usuario o de un agente.  &lt;br /&gt;
* DESTINO_SAL_nn , en general, el valor C_NOMBRE o destino de salida.  &lt;br /&gt;
* RUTA_NODO_nn , Cadena de marcación para ir la nodo que soporta DESTINO_SAL_nn, si es distinto del nodo de entrada.  &lt;br /&gt;
* RUTA_SAL_nn &lt;br /&gt;
:* Extensión: cadena marcación. &lt;br /&gt;
:* Facilidad: E_CODIGO_FACILIDAD obtenido de la tabla CEN_FACILIDADES. &lt;br /&gt;
:* Usuario: cadena marcación de la extensión asignada al usuario en movilidad o en propiedad. &lt;br /&gt;
:* Agente: cadena marcación de la extensión a la que está conectado el agente. &lt;br /&gt;
:* Ruta externa: contexto que gestiona la llamada saliente.&lt;br /&gt;
&lt;br /&gt;
=====Fase preenrutamiento =====&lt;br /&gt;
&lt;br /&gt;
La fase de preenrutamiento (basada en la tabla CEN_PRE_RUTA) se usa en todas las llamadas entrantes, tanto internas, como externas. Permite desarrollar un “prerouting” estándar para ACD y para telefonía corporativa.&lt;br /&gt;
&lt;br /&gt;
Los datos de entrada al proceso de enrutamiento son iguales a los del proceso global de enrutamiento, excepto en que este proceso no usa el nodo de entrada ya que es independiente de éste.&lt;br /&gt;
&lt;br /&gt;
Los datos de salida de la fase de preenrutamiento:&lt;br /&gt;
* D_CATEGORIA_SAL &lt;br /&gt;
* COD_CLIENTE (opcional) &lt;br /&gt;
* TIPO_DESTINO_SAL&lt;br /&gt;
:* No existe.   &lt;br /&gt;
:* Volver a preenrutar.   &lt;br /&gt;
:* Ruta externa.   &lt;br /&gt;
:* Extensión.   &lt;br /&gt;
:* Usuario de telefonía corporativa.   &lt;br /&gt;
:* Facilidad.   &lt;br /&gt;
:* Sala de conferencia.   &lt;br /&gt;
:* Agente de grupos ACD.   &lt;br /&gt;
:* Grupos ACD.   &lt;br /&gt;
:* VDN.   &lt;br /&gt;
:* Buzón para dejar mensaje.   &lt;br /&gt;
:* Buzón para dejar mensaje por ocupado.   &lt;br /&gt;
:* Buzón para dejar mensaje por no contestación.   &lt;br /&gt;
:* Buzón para su gestión. &lt;br /&gt;
* COD_CLIENTE &lt;br /&gt;
* Valor del eje1 asignado a la llamada &lt;br /&gt;
* CALLER_NAME &lt;br /&gt;
* CALLER_NUM &lt;br /&gt;
* DESTINO&lt;br /&gt;
&lt;br /&gt;
El proceso de preenrutamiento consiste en seleccionar un único registro de la tabla CEN_PRE_RUTA y, con sus valores y con los valores de entrada al proceso, generar los datos de salida.&lt;br /&gt;
&lt;br /&gt;
Un posible tipo de salida es &amp;quot;Volver a preenrutar&amp;quot;. Esto permite realimentar el proceso un máximo de &amp;quot;max_pre_ruta_regs&amp;quot; veces (en archivo .conf) para simplificar configuración. Sólo tiene sentido realimentar si se ha hecho alguna modificación en los datos de selección de registro, ya que en caso contrario se produciría un bucle que el proceso de preenrutamiento es capaz de detectar y evitar.&lt;br /&gt;
&lt;br /&gt;
Para elegir el registro de CEN_PRE_RUTA, se tienen en cuenta los datos de entrada de la llamada, de modo que se cumpla con todos los puntos siguientes: &lt;br /&gt;
* ID_CATEGORIA_ENT igual a la del dispositivo de entrada.  &lt;br /&gt;
* CALLER_NUM de entrada  &lt;br /&gt;
:* Debe comenzar por la cadena C_ORIGEN_ENT_PREF o C_ORIGEN_ENT_PREF=NULL, con menos prioridad. Es conveniente rellenar este dato del modo más restrictivo que sea posible, independientemente de C_ORIGEN_ENT_EXPR. Ello permite disminuir el uso innecesario de recursos de evaluación de expresiones regulares.    &lt;br /&gt;
:* Debe de tener un número de dígitos igual o superior a N_ORIGEN_ENT_MIN_DIGITOS, si este valor no es NULL o cero.    &lt;br /&gt;
:* Debe de tener un número de dígitos igual o inferior a N_ORIGEN_ENT_MAX_DIGITOS, si este valor no es NULL o cero.    &lt;br /&gt;
:* Debe cumplir la expresión regular C_ORIGEN_ENT_EXPR, si ésta no es NULL.  &lt;br /&gt;
* DNIS empiece con C_DESTINO_ENT_PREF o C_DESTINO_ENT_PREF=NULL. Es conveniente rellenar este dato del modo más restrictivo que sea posible, independientemente de C_DESTINO_ENT_EXPR. Ello permite disminuir el uso innecesario de recursos de evaluación de expresiones regulares.  &lt;br /&gt;
* Si varias entradas cumplen la condición anterior, se prueba primero la que el campo C_DESTINO_ENT_PREF tenga una longitud mayor y, de entre éstas, la que C_ORIGEN_ENT_PREF tenga una longitud mayor.  &lt;br /&gt;
* DNIS tenga un número de dígitos igual o superior a N_DESTINO_ENT_MIN_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* DNIS tenga un número de dígitos igual o inferior a N_ORIGEN_ENT_MIN_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* DNIS cumpla la expresión regular C_DESTINO_ENT_EXPR, si ésta no es NULL. &lt;br /&gt;
&lt;br /&gt;
Si no se encuentra ninguna entrada adecuada, quiere decir que es una llamada prohibida y se devuelve el tipo de destino &amp;quot;No existe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Puede conseguirse un destino &amp;quot;por defecto&amp;quot; diferente, creando una entrada que encaje siempre para cada categoría: C_ORIGEN_ENT, C_ORIGEN_ENT_MIN_DIGITOS, C_ORIGEN_ENT_MAX_DIGITOS, C_ORIGEN_ENT_EXPR, C_DESTINO_ENT_PREF, N_DESTINO_ENT_MIN_DIGITOS, N_DESTINO_ENT_MAX_DIGITOS y C_DESTINO_ENT_EXPR a valor NULL.&lt;br /&gt;
&lt;br /&gt;
Una vez elegida una entrada, ésta puede transformar o sustituir el valor de ID_CATEGORIA, CALLER_NAME, CALLER_NUM, DESTINO, COD_CLIENTE y/o EJE1_MSK a la salida del proceso. &lt;br /&gt;
&lt;br /&gt;
Si ID_CATEGORIA_SAL es cero, se propaga a la salida el valor de la entrada. En caso contrario, se sustituye. &lt;br /&gt;
&lt;br /&gt;
Si C_CALLER_NAME está vacío, se mantiene el valor hubiese a la entrada. En caso contrario, se sustituye. &lt;br /&gt;
&lt;br /&gt;
C_CALLER_NUM puede contener una cadena que identifica el nuevo CALLER_NUM. Además, si la cadena comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo CALLER_NUM es igual al de entrada al proceso. &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo CALLER_NUM es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo. &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;. &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al CALLER_NUM de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo CALLER_NUM de salida. Si la expresión regular no se cumpliese, se propagará el valor de entrada al proceso. &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante que sustituye el valor a la entrada.&lt;br /&gt;
&lt;br /&gt;
Cada vez que se utilice una preruta, se incrementará el valor de N_CONTA si el valor de N_UMBRAL es mayor que cero.&lt;br /&gt;
&lt;br /&gt;
Un valor N_UMBRAL mayor que cero permite modificar el destino de salida cuando el valor de actual de N_CONTA (antes de incrementarse) supere o sea igual el valor de N_UMBRAL. Si se cumple la condición indicada, se usa como destino tras el preenrutamiento, los valores de los campos E_TIPO_DESTINO_SAL_2 y C_DESTINO_SAL_2.&lt;br /&gt;
&lt;br /&gt;
Si el valor de N_UMBRAL es menor o igual a cero o si N_CONTA es inferior a N_UMBRAL, se usa como destino tras el preenrutamiento, los valores de los campos E_TIPO_DESTINO_SAL_1 y C_DESTINO_SAL_1.&lt;br /&gt;
Con este mecanismo de N_CONTA y N_UMBRAL, se pretende facilitar el discriminar a los llamantes reincidentes, cuando sea necesario. &lt;br /&gt;
&lt;br /&gt;
Un proceso periódico externo debe encargarse de poner a cero o decrementar el valor de N_CONTA.&lt;br /&gt;
Como resultado de los procesos de filtrado y de verificación anteriores, se habrá obtenido un TIPO_DESTINO_SAL y un C_DESTINO_SAL a partir de los campos con sufijo &amp;quot;_1&amp;quot; o &amp;quot;_2&amp;quot;, con una metodología similar al caso C_CALLER_NUM.&lt;br /&gt;
&lt;br /&gt;
C_DESTINO_SAL_x puede contener cadena que permite obtener el nuevo destino. Además, si la cadena comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo destino es igual al de entrada al proceso.  &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo destino es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo.  &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;.  &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al destino de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo destino de salida. Si la expresión regular no se cumpliese, quiere decir que es una llamada prohibida y se encaminará hacia una facilidad por defecto.  &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante que sustituye el valor a la entrada. &lt;br /&gt;
Información de salida del proceso de preenrutamiento: Cuando TIPO_DESTINO_SAL_x toma los valores que se indican, el proceso global de enrutamiento sólo requiere de preenrutamiento y la información a devolver se obtiene dependiendo de TIPO_DESTINO_SAL_x: &lt;br /&gt;
* No existe: Se asume que no se conoce un destino para los datos de entrada, por lo que la llamada se encamina hacia una facilidad por defecto que gestiona su tratamiento.  &lt;br /&gt;
* Extensión: A partir de las tablas CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar la extensión en el nodo principal y en el secundario.  &lt;br /&gt;
* Facilidad: A partir de las tablas CEN_DISPOSITIVOS, CEN_FACILIDADES y CEN_NODOS.  &lt;br /&gt;
* Usuario de telefonía corporativa: A partir de las tablas CEN_USUARIOS, CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar al usuario en el nodo principal y en el secundario de la extensión que corresponde en base a movilidad, con prioridad, o en base a propiedad.  El caso de movilidad no se tiene en cuenta si el proceso de enrutamiento se realiza en &amp;quot;modo supervivencia&amp;quot;.  &lt;br /&gt;
* Sala conferencia: A partir de las tablas CEN_SALAS_CONFERENCIAS y CEN_NODOS.  &lt;br /&gt;
* Agente de ACD: A partir de las tablas ACD_USUARIOS, DAT_TR_ACD_EXTENSIONES, CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar al agente en el nodo principal y en el secundario.  &lt;br /&gt;
* VDN: A partir de las tablas ACD_VDN y CEN_NODOS, se devolverán los valores que permiten alcanzar al VDN en su nodo.  &lt;br /&gt;
* Grupo ACD: A partir de las tablas ACD_COLAS y CEN_NODOS, se devolverán los valores que permiten alcanzar al grupo ACD en su nodo. &lt;br /&gt;
&lt;br /&gt;
El campo B_GENERAR_SEGMENTO de la tabla CEN_PRE_RUTA indica al proceso de preenrutamiento que es preciso generar un segmento de tipo &amp;quot;preenrutamiento&amp;quot;. En el segmento generado, se rellena el campo C_ETIQUETA1 del nuevo segmento con el valor que contiene el campo homónimo del registro asociado en la tabla CEN_LISTA_PRE_RUTAS.&lt;br /&gt;
&lt;br /&gt;
===== Fase de enrutamiento en casos en que el destino no es externo =====&lt;br /&gt;
Datos de entrada al proceso de enrutamiento externo: iguales a los de salida del proceso de preenrutamiento (pdPreSale), uniéndose a éstos los datos globales de entrada al proceso (pdEntr). &lt;br /&gt;
&lt;br /&gt;
Datos de salida de la fase de enrutamiento: iguales que los del proceso global de enrutamiento (pdSale). &lt;br /&gt;
&lt;br /&gt;
Específicamente y sólo para los casos en que el destino es una extensión (tipo de destino extensión, usuario de telefonía corporativa o agente) es cuando son válidos los datos correspondientes al buzón asociado y los datos de los posibles desvíos previstos. &lt;br /&gt;
&lt;br /&gt;
También en este caso, se prevén dos posibles rutas, una se corresponde con el acceso a la extensión en el nodo principal de ésta y la otra en el nodo secundario. &lt;br /&gt;
&lt;br /&gt;
En el resto de tipos de destino, sólo se prevé una ruta que puede incluir o no un enlace internodal. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Fase de enrutamiento en el caso de destino externo =====&lt;br /&gt;
Datos de entrada al proceso de enrutamiento externo: iguales a los de salida del proceso de preenrutamiento (pdPreSale), uniéndose a éstos los datos globales de entrada al proceso (pdEntr). &lt;br /&gt;
Datos de salida de la fase de enrutamiento: iguales que los del proceso global de enrutamiento (pdSale). &lt;br /&gt;
&lt;br /&gt;
Se elige los primeros &amp;quot;max_ruta&amp;quot; registros (configurado en archivo .conf) en CEN_DESTINOS_EXTERNOS unido con CEN_RELACION_DESTINOS_ENLACES_EXTERNOS que, teniendo en cuenta los datos de entrada al proceso de enrutamiento, cumpla con todos los puntos siguientes: &lt;br /&gt;
* ID_CATEGORIA_ENT igual a la de salida del proceso de preenrutamiento.  &lt;br /&gt;
* C_DESTINO_SAL de proceso de preenrutamiento empiece con C_DESTINO_ENT_PREF. &lt;br /&gt;
* Si varias entradas cumplen la condicion anterior, se prueba primero la que el campo C_DESTINO_ENT_PREF tenga una longitud mayor.  &lt;br /&gt;
* C_DESTINO_SAL tenga un número de dígitos igual o superior a N_DESTINO_ENT_MIN_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* C_DESTINO_SAL tenga un número de dígitos igual o inferior a N_DESTINO_ENT_MAX_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* C_DESTINO_SAL cumpla la expresión regular C_DESTINO_ENT_EXPR, si ésta no es NULL. &lt;br /&gt;
&lt;br /&gt;
Aparte de la longitud del campo C_DESTINO_ENT_PREF, se usa N_PRIORIDAD como campo para ordenar los registros y seleccionar lo &amp;quot;max_ruta&amp;quot; primeros. &lt;br /&gt;
&lt;br /&gt;
Una vez que un registro es válido, se descartan todos los registros cuyo C_DESTINO_ENT_PREF es diferente del primero seleccionado. &lt;br /&gt;
&lt;br /&gt;
Como resultado de los procesos de filtrado y de verificación anteriores, se habrá obtenido hasta un máximo de &amp;quot;max_rutas&amp;quot; valores para posibles rutas. Las posibles propagaciones y transformaciones en los datos de cada ruta son función de los datos de cada registro seleccionado: &lt;br /&gt;
&lt;br /&gt;
CALLER_NAME_nn: Si C_CALLER_NAME está vacío, se propaga el valor de entrada. En caso contrario, se sustituye. &lt;br /&gt;
&lt;br /&gt;
CALLER_NUM_nn: Sale de C_CALLER_NUM que puede contener una cadena que identifica el nuevo CALLER_NUM_n. Además, si C_CALLER_NUM comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo CALLER_NUM_nn es igual al de entrada al proceso.  &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo CALLER_NUM_nn es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo.  &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;.  &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al CALLER_NUM de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo CALLER_NUM de salida. Si la expresión regular no se cumpliese, se propaga el valor de entrada al proceso.  &lt;br /&gt;
* &amp;quot;&amp;gt;&amp;quot; Si existe valor para CALLER_NUM_EXTERNO, se propagará éste a la salida. En caso contrario y si no está vacía la cadena que queda al eliminar el prefijo &amp;quot;&amp;gt;&amp;quot;, se susituye en la salida por el valor de la cadena sin prefijo. Si la cadena estuviese únicamente constituida por el valor &amp;quot;&amp;gt;&amp;quot;, se propaga el valor de entrada.  &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante sin ninguna modificación. &lt;br /&gt;
&lt;br /&gt;
C_DESTINO_SAL_nn: Se obtiene a partir de C_DESTINO_SAL que puede contener una cadena que identifica el nuevo destino. Además, si la cadena comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo destino es igual al de entrada al proceso. &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo destino es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo. &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;. &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al destino de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo destino de salida. Si la expresión regular no se cumpliese, se propaga el valor de entrada al proceso. &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante sin ninguna modificación. &lt;br /&gt;
&lt;br /&gt;
RUTA_NODO_nn: Sólo se usa si el nodo de salida es diferente del nodo de entrada. Contiene la cadena de marcación para ir la nodo que soporta DESTINO_SAL_nn. Sale del campo C_FORMATO_DIAL (sustituyendo variables) correspondiente al tipo de dispositivo del enlace exterior. &lt;br /&gt;
&lt;br /&gt;
RUTA_SAL_nn: Es el campo C_DATO_ASTERISK obtenido a partir del registro en la tabla CEN_ENLACE_EXTERIOR que se corresponde con ID_ENLACE_EXTERIOR de la tabla CEN_RELACION_DESTINOS_ENLACES_EXTERNOS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Control de ancho de banda ===&lt;br /&gt;
&lt;br /&gt;
Para el control de ancho de banda, primero hemos de tener en consideración que una llamada puede tener asociadas hasta cuatro sedes&lt;br /&gt;
:* Sede del terminal origen (terminal A)&lt;br /&gt;
:* Sede del nodo de registro del terminal origen (nodo A)&lt;br /&gt;
:* Sede del terminal destino (terminal B)&lt;br /&gt;
:* Sede del nodo de registro del terminal destino (nodo B)&lt;br /&gt;
&lt;br /&gt;
Además hemos de tener en cuenta que el audio de la conversación podrá ir:&lt;br /&gt;
:* De manera directa entre terminal A y terminal B&lt;br /&gt;
:* De manera indirecta, a través de los nodos A y B&lt;br /&gt;
&lt;br /&gt;
[[Archivo:ancho de banda.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Cuando se va a cursar una llamada de terminal A a terminal B, el proceso de enrutamiento del nodo A devuelve 4 variables de canal al dialplan:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! Variable!!Campos &lt;br /&gt;
|- &lt;br /&gt;
|R_ABDE_xx||R = Variable de rutas --- AB = ancho de banda --- D = dispositivo --- E = Entrante --- xx = de 0 a 3&lt;br /&gt;
|-&lt;br /&gt;
|R_ABNE_xx||R = Variable de rutas --- AB = ancho de banda --- N = nodo --- E = Entrante --- xx = de 0 a 3&lt;br /&gt;
|-&lt;br /&gt;
|R_ABDS_xx||R = Variable de rutas --- AB = ancho de banda --- D = dispositivo --- S = Saliente --- xx = de 0 a 3&lt;br /&gt;
|- &lt;br /&gt;
|R_ABNS_xx||R = Variable de rutas --- AB = ancho de banda --- N = nodo --- S = Saliente --- xx = de 0 a 3&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El valor de cada variable es una cadena del tipo '''AB.wwww.xxxx.y.z''' donde cada valor es:&lt;br /&gt;
:* '''wwww''' --&amp;gt; id de sede&lt;br /&gt;
:* '''xxxx''' --&amp;gt; ancho de banda total de la sede&lt;br /&gt;
:* '''y''' --&amp;gt; número de llamadas a sumar si conversación directa&lt;br /&gt;
:* '''z''' --&amp;gt; número de llamadas a sumar si conversación indirecta&lt;br /&gt;
&lt;br /&gt;
Por otro lado tenemos que tener en cuenta que el dialplan tiene control de las llamadas que cada sede puede cursar&lt;br /&gt;
&lt;br /&gt;
De esta forma, cuando existe una nueva llamada el dialplan aplica la fórmula, suma el resultado al número de llamadas en curso y lo compara con el máximo...si el resultado es mayor que le máximo la llamada no se cursará por congestión&lt;br /&gt;
&lt;br /&gt;
Configuraremos el ancho de banda por sede en el portal de administración y el consumo que hace cada llamada en la variable '''AB_CONSUMO_LLAMADA''' del fichero '''ext_MDtel_particular.conf''' de cada nodo de conmutación; el valor por defecto es 32&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Puesto de trabajo ==&lt;br /&gt;
El puesto de trabajo del agente en la plataforma '''''VIVA'''''it  (para el producto '''''VIVA'''''it Suite) estará compuesto por:&lt;br /&gt;
* PC (típicamente windows) en el que reside la aplicación '''''VIVA'''''it Desk&lt;br /&gt;
* Terminal telefónico con extensión física asociada.&lt;br /&gt;
&lt;br /&gt;
Para más información [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Puestos | ver sección Portal de administración-VIVAit Suite ACD+ - Puestos]].&lt;br /&gt;
&lt;br /&gt;
=== Relación PC/teléfono en puesto de trabajo ===&lt;br /&gt;
&lt;br /&gt;
Existirá una relación única entre nombre PC y extensión física asociada, si bien los agentes se identificarán por su login que les acompaña al puesto de trabajo en el que se loguen&lt;br /&gt;
Existe un procedimiento documentado para la operativa de cambio de puesto de trabajo, en caso de ser necesario el cambio de PC o de teléfono de un puesto de trabajo.&lt;br /&gt;
==== Procedimiento para un cambio de puesto de trabajo ====&lt;br /&gt;
Se basa en una asignación de PC a teléfono relaccionando la extensión telefónica del terminal físico con el nombre del puesto de trabajo. La configuración de dicha asociación se realiza en el portal de administración de la plataforma. &lt;br /&gt;
&lt;br /&gt;
Cualquier cambio que se realice en terminal telefónico o PC de agente ha de mantener la asociación en el portal a efectos de permitir el funcionamiento del sistema.&lt;br /&gt;
&lt;br /&gt;
A continuación se reflejan los cambios más habituales:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cambio !! Procedimiento !! Punto de acción&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| Cambio de ubicación de un PC || Opción 1.- Renombrar el PC para que conserve el nombre que tenía el anterior en esa ubicación || PC de agente&lt;br /&gt;
|-&lt;br /&gt;
|  Opción 2.- Rehacer la asignación extensión/puesto || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot;| Instalación de PC nuevo en puesto existente || Opción 1.- Renombrar el PC para que conserve el nombre que tenía el anterior en esa ubicación || PC de agente&lt;br /&gt;
|-&lt;br /&gt;
| Opción 2.- Rehacer la asignación extensión/puesto || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| Cambio de nombre en un PC || Rehacer asignación extensión/puesto || Rehacer asignación extensión/puesto&lt;br /&gt;
|-&lt;br /&gt;
|Cambio de ubicación de un teléfono  || Rehacer la asignación extensión/puesto&lt;br /&gt;
 || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| Instalación de un teléfono nuevo en puesto existente || Rehacer la asignación extensión/puesto || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| Instalación de un nuevo puesto de agente|| Hacer asignación extensión/puesto || Portal de administración&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:relacion_puesto_agente.png|center|500px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Estructura de aplicaciones en puesto de trabajo ===&lt;br /&gt;
Las aplicaciones del puesto de trabajo pueden estar ubicadas en cualquier carpeta del sistema. Es importante tener en cuenta que los procesos de actualización, logs… escriben en dichas carpetas, por lo que el usuario de windows deberá tener permisos de lectura/escritura y borrado sobre dichas carpetas&lt;br /&gt;
La instalación del puesto de trabajo es muy liviana para el sistema; las aplicaciones ocupan poco espacio y no se modifican ficheros del sistema operativo (registry o similares)&lt;br /&gt;
Los ficheros importantes son&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Fichero !! Descrición&lt;br /&gt;
|-&lt;br /&gt;
| Vivait-desk.exe || Contiene la aplicación '''''VIVA'''''it Desk de agente&lt;br /&gt;
|-&lt;br /&gt;
| vivait_desk_dll.dll||Este fichero contiene controles sobre los formularios (controles de&lt;br /&gt;
texto, algunas reglas de obligatoriedad…)&lt;br /&gt;
|-&lt;br /&gt;
| nimitz.ini || Configuración del puesto de agente&lt;br /&gt;
|-&lt;br /&gt;
| lanzador.exe || Aplicación de actualización de versiones&lt;br /&gt;
|-&lt;br /&gt;
| lanzador.ini || Configuración del actualizador de aplicaciones&lt;br /&gt;
|-&lt;br /&gt;
| Carpeta forms || En esta carpeta están ubicados los formularios que se abren ante llamada entrante o saliente&lt;br /&gt;
|-&lt;br /&gt;
| Carpeta imágenes || Contiene las imágenes izquierda y derecha de la barra de '''''VIVA'''''it Desk&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Secciones de utilidad en nimitz.ini ===&lt;br /&gt;
&lt;br /&gt;
==== Configuración del puesto de agente ====&lt;br /&gt;
&lt;br /&gt;
El fichero nimitz.ini contiene la configuración del puesto de agente; sus principales parámetros son:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| |''' Fichero'''&lt;br /&gt;
|| '''Descripción'''&lt;br /&gt;
|-&lt;br /&gt;
|Sección [bd1]&lt;br /&gt;
||host=&amp;quot;ip_BBDD_tiempo_real&amp;quot;&lt;br /&gt;
puerto=&amp;quot;Nº puerto&amp;quot;&lt;br /&gt;
basedatos=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
usuario=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
clave=&amp;quot;UIk5jMY9PVX6ogg=&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Contiene información para la conexión a BBDD de tiempo real, en la que '''''VIVA'''''it Desk fundamentalmente inserta información&lt;br /&gt;
|-&lt;br /&gt;
|Sección [bd2]&lt;br /&gt;
||host=&amp;quot; ip_BBDD_replica &amp;quot;&lt;br /&gt;
puerto=&amp;quot;Nº puerto&amp;quot;&lt;br /&gt;
basedatos=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
usuario=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
clave=&amp;quot;UIk5jMY9PVX6ogg=&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Contiene información para la conexión a BBDD de réplica, en la que '''''VIVA'''''it Desk solo leerá información&lt;br /&gt;
|-&lt;br /&gt;
|Sección [telefono]&lt;br /&gt;
||pruebas=1 (Valores válidos 0 ó 1)&lt;br /&gt;
Activación de funcionalidad &amp;quot;servicio técnico&amp;quot; en '''''VIVA'''''it Desk.&lt;br /&gt;
&lt;br /&gt;
puesto=&amp;quot;Nombre puesto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Sección [trazas]&lt;br /&gt;
|| nivel=3&lt;br /&gt;
&lt;br /&gt;
archivo=1&lt;br /&gt;
&lt;br /&gt;
consola=0&lt;br /&gt;
&lt;br /&gt;
sobreescribir=1&lt;br /&gt;
&lt;br /&gt;
Activación de generación de ficheros de trazas &amp;quot;viva-desk.log&amp;quot; en carpeta de aplicaciones &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Parámetros en invocación a '''''VIVA'''''it Desk ===&lt;br /&gt;
&lt;br /&gt;
La aplicación '''''VIVA'''''it Desk puede ser invocada con una serie de parámetros que condicionan su funcionamiento; los parámetros son:&lt;br /&gt;
* Primer parámetro: Nombre del archivo .ini; usado como alternativa al fichero por defecto &amp;quot;nimitz.ini&amp;quot;&lt;br /&gt;
* Segundo parámetro: Nombre de puesto; usado como alternativa al nombre de puesto del ordenador&lt;br /&gt;
* Tercer parámetro: Nombre de login; para forzar un usuario; es de utilidad si el sistema está configurado como &amp;quot;confiar en sistema operativo&amp;quot;, en cuyo caso no permite seleccionar un login de agente para acceder a la aplicación&lt;br /&gt;
&lt;br /&gt;
=== Instalación y actualización de aplicaciones de puestos de trabajo ===&lt;br /&gt;
La instalación y actualización de las aplicaciones en el puesto de trabajo pasan por disponer de los ficheros “lanzador.exe” y “lanzador.ini” (debidamente configurado) dentro de la carpeta en la que se desee instalar.&lt;br /&gt;
Lanzando la aplicación “lanzador.exe” se instalará o actualizará el sistema. &lt;br /&gt;
&lt;br /&gt;
El fichero “lanzador.ini” tiene el siguiente aspecto:&lt;br /&gt;
 URL=&amp;quot;http://IP_Servidor:8180/WSActualizaXML/actualizar.xml&amp;quot;&lt;br /&gt;
 BASE_URL_DESCARGAS=&amp;quot;http://IP_servidor:8180/XMLFILES/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Servicio técnico en '''''VIVA'''''it Desk ===&lt;br /&gt;
La activación de la funcionalidad de servicio técnico en '''''VIVA'''''it Desk nos permite realizar sincronizaciones manuales de la aplicación y activar trazas a nivel de Base de Datos o a nivel de log sobre el propio '''''VIVA'''''it Desk. Pulsando el botón derecho del ratón sobre la barra '''''VIVA'''''it Desk accederemos a las capacidades de soporte técnico&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Funcionamiento de la plataforma en modo emergencia ==&lt;br /&gt;
== Accesos Web ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Aplicación !! Enlace&lt;br /&gt;
|-&lt;br /&gt;
|Portal de administración '''''VIVA'''''it Suite || http://ip_admin:8180/Vivait-Call&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker||http://ip_tracker:8180/Vivait-Tracker&lt;br /&gt;
|-&lt;br /&gt;
|Monitor Web||http://ip_monitor:8180/MonitorWeb&lt;br /&gt;
|-&lt;br /&gt;
|Monitorización Zabbix||http://ip_zabbix:80/zabbix&lt;br /&gt;
|-&lt;br /&gt;
|Base de datos tiempo real||http://ip_bbdd_tr:80/phpmyadmin/&lt;br /&gt;
|-&lt;br /&gt;
|Base de datos réplica||http://ip_bbdd_replica:80/phpmyadmin&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Permisos de aplicaciones ===&lt;br /&gt;
Se crean a través del '''portal de administración ''VIVA''it''' . Debe conocerse como funcionan los ejes [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Ejes| ver sección Portal de administracion - General - Ejes]] y que existen cuatro aplicaciones creadas en la plataforma:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:17_2 Pestaña Genera - Usuarios - Explicacion permisos.png|center]]&lt;br /&gt;
&lt;br /&gt;
La forma como dar permisos de aplicaciones a un usuario esta explicada en la [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Asignaci.C3.B3n_de_Permisos_de_Usuario_por_Administrador | sección  Portal de administracion - General - Usuarios ]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elementos monitorizados del sistema ==&lt;br /&gt;
===Generalidades de Zabbix===&lt;br /&gt;
====Zabbix ====&lt;br /&gt;
Zabbix es una solución de código abierto que ofrece características de monitorización avanzada de forma tecnica y para el negocio, para todo tipo de servidores, aplicaciones y equipos que forman parte de una red. La versión que utilizamos en '''md'''tel es Zabbix 2.2.2.&lt;br /&gt;
&lt;br /&gt;
Zabbix  monitoriza los  recursos  de un equipo en forma remota, permite centralizar la información en un servidor que permite visualizar el monitoreo, cuenta con una interfaz de administración vía web y utiliza un mecanismo flexible de la notificación que permita que los usuarios configuren las alarmas basadas email para informar virtualmente cualquier acontecimiento. Esto permite una reacción rápida a los problemas del servidor. &lt;br /&gt;
&lt;br /&gt;
Para acceder al servidor Zabbix abrimos el navegador y ponemos la dirección de red (IP) de la maquina donde se encuentra instalado el servidor de Zabbix seguido de &amp;quot;/Zabbix.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Direccion.IP.Zabbix.Server/zabbix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Zabbix posee documentación tanto en wiki, foros y comunidades.Para ampliar la información se puede visitar:&lt;br /&gt;
[[http://www.zabbix.com Sitio oficial de Zabbix]]&lt;br /&gt;
===== Glosario Zabbix =====&lt;br /&gt;
Se trata de una lista de conceptos básicos de Zabbix, pero para ampliar la información sobre otros términos, visite el [[http://www.zabbix.com Sitio oficial de Zabbix]].&lt;br /&gt;
* '''host''' &lt;br /&gt;
:En Zabbix, un host es una entidad que define el elemento en red que se desea monitorizar/supervisar activamente sus recursos locales y aplicaciones. Este puede ser una impresa, router, switch, sensores de temperatura, un servidor, un ordenador,etc, o también una aplicación. La característica de un host es que debe poseer una dirección de red (IP).&lt;br /&gt;
&lt;br /&gt;
* '''host group'''&lt;br /&gt;
:En Zabbix, un host group (grupo host) es una agrupación lógica de los host, como una forma de organizar los dispositivos &amp;quot;Host&amp;quot; registrados en Zabbix para su monitorización. Puede contener hosts y templates.  Los grupos host se utilizan en la asignación de derechos de acceso a los hosts para diferentes grupos de usuarios.&lt;br /&gt;
&lt;br /&gt;
* '''item'''&lt;br /&gt;
:En Zabbix, un item (medida) es el parámetro que deseamos obtener del host, básicamente es una medida especifica que el servidor Zabbix recogerá de los agentes de Zabbix instalados en los host.&lt;br /&gt;
&lt;br /&gt;
* '''trigger'''&lt;br /&gt;
:En Zabbix, un trigger(disparador) es una entidad que define un umbral para detectar la existencia de un problema en un dispositivo.  Son valores recolectados por los &amp;quot;items&amp;quot;, se usa para &amp;quot;evaluar&amp;quot; los datos recibidos con condiciones definidas. Las condiciones son de tipo aritmético y lógico.&lt;br /&gt;
* '''event'''&lt;br /&gt;
:En Zabbix, un event (evento) es la aparición de un suceso en Zabbix que necesita atención. Por ejemplo, el cambio de estado a raíz de un trigger, el descubrimiento de un nuevo agente (autoregistro),etc.&lt;br /&gt;
* '''action'''&lt;br /&gt;
:En Zabbix, una action(acción) son reglas predefinidas para reaccionar a un evento disparado por los triggers, es decir, define qué hacer ante un evento. Consta de operaciones (por ejemplo, una notificacion, comandos remotos) y condiciones (cuando  la operación se lleva a cabo).&lt;br /&gt;
* '''notification'''&lt;br /&gt;
:En Zabbix, una notification (notificacion) es la entidad con que Zabbix nos puede notificar (Correo Electrónico,mensajes vía &amp;quot;SMS&amp;quot; o Jabber).&lt;br /&gt;
* '''template'''&lt;br /&gt;
:En Zabbix, un témplate (plantilla) viene predefinida en la instalación de Zabbix Server, con el fin de ser aplicada en base al tipo de sistema operativo(Linux, Mac, Window, etc) o en elementos que comparten los mismos parámetros de medición, por ejemplo la carga del procesador, uso de memoria y  uso de recursos de red. Las plantillas son un conjunto de módulos &amp;quot;ITEM, TRIGGERS y GRÁFICAS&amp;quot;, que están preconfigurados y listas para ser aplicadas a uno o varios hosts.&lt;br /&gt;
* '''application'''&lt;br /&gt;
:En Zabbix, una application (aplicación) es una agrupación lógica de los items.&lt;br /&gt;
* '''Zabbix server'''&lt;br /&gt;
:El Zabbix server (servidor de Zabbix) es el proceso central donde están definidas las configuraciones y donde se almacenan todos los datos y estadísticas recogidas de los agentes Zabbix.Consta de una base de datos, una interfaz web y el propio server. Como servidor, se encarga de recoger los datos de los agentes, calcular los triggers, enviar notificaciones, etc. &lt;br /&gt;
* '''Zabbix agent'''&lt;br /&gt;
:El zabbix agent (agente de Zabbix)  es un proceso desplegado en los host que son supervisados, que funciona como un servicio y puede funcionar de forma activa y pasiva simultáneamente.&lt;br /&gt;
&lt;br /&gt;
=====Discovery=====&lt;br /&gt;
La funcionalidad discovery(detección) lista los dispositivos que se integran en nuestra red y el tipo de servicios que proporciona. Por ejemplo, si la empresa tuviera cien colas ACDs, y veinticinco VDNS, y en cada cola como veinte medidas, seria muy laborioso registrar una por uno cada uno.  &lt;br /&gt;
Gracias a esta funcionalidad, se descubre todas las interfaces de red que se tiene, automáticamente y tanto para colas nodos o IVR. Para utilizar esta funcionalidad , se hace el uso de dos script, que se instalan en el momento de instalación de Zabbix en el directorio &amp;quot;/usr/local/sbin&amp;quot;, que son:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
'''zabbixDiscoveryQueues.pl''' : script utilizado para buscar colas ACD.&lt;br /&gt;
&lt;br /&gt;
'''zabbixDiscoveryVDN.pl''' : script utilizado para buscar VDNS.&lt;br /&gt;
|}&lt;br /&gt;
La explicación de como configurarla se encuentra en el manual oficial [[https://www.zabbix.com/documentation/2.2/manual/discovery/network_discovery/rule | Zabbix detección de redes]].&lt;br /&gt;
&lt;br /&gt;
=====Notificaciones=====&lt;br /&gt;
&lt;br /&gt;
Necesariamente, debe darse de alta al usuario y darse de alta el servidor de correo electrónico para poder ser capaz de enviar correos.&lt;br /&gt;
&lt;br /&gt;
Por otro lado, el formato del correo electrónico y las condiciones de envío de correo al usuario se configura en las acciones. Véase  el [[https://www.zabbix.com/documentation/2.2/manual/quickstart/notification  | manual oficial de Zabbix 2.2]]&lt;br /&gt;
&lt;br /&gt;
=====Usuarios=====&lt;br /&gt;
Zabbix permite la organización de usuarios en grupos para establecer los permisos adecuados de acuerdo al tipo de perfil que deseemos crear. Necesariamente un usuario debe permanecer a un grupo o varios grupos.Todos los usuarios acceden a la aplicación de Zabbix a través de la interfaz Web. &lt;br /&gt;
&lt;br /&gt;
Cada usuario Zabbix se le asigna un nombre de usuario único , una contraseña y podemos indicarle que tipo de comunicación que posee, normalmente es vía email, pero puede ser vía a otro tipo de medios. Para mas información ver el [[https://www.zabbix.com/documentation/2.2/manual/web_interface/user_profile || manual oficial ]].&lt;br /&gt;
 &lt;br /&gt;
=====Visualización=====&lt;br /&gt;
Con Zabbix es posible visualizar los datos como  gráficos, pantallas, mapas y hasta presentaciones cambiantes, entre otros. En este apartado solo nombraremos características esenciales que se tendra que completar con el [[https://www.zabbix.com/documentation/2.2/manual/config/visualisation | manual oficial]]&lt;br /&gt;
======Graphs======&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''Nota:''' Debe crearse algun item dentro del host para poder utilizar una gráfica.&lt;br /&gt;
|}&lt;br /&gt;
En Zabbix una gráfica sirve para representar gráficamente los resultados obtenidos de uno item o varios items.&lt;br /&gt;
[[File:EjemploGrafica.png|center|750px]]&lt;br /&gt;
Los valores min / avg / max que Zabbix obtiene y representa son de un registro de datos de la tabla tendencias.&lt;br /&gt;
&lt;br /&gt;
======Screens======&lt;br /&gt;
La pantalla refiere a otra característica adaptable de ZABBIX cuál permite que los usuarios creen las pantallas personalizadas dentro de ZABBIX para exhibir la información. Se considera como una colección de gráficas y no depende del host. Una pantalla puede consistir en gráficos simples, gráficos personalizados, integrar mapas, Alertas, gráficos estadísticos o texto llano tal como los 5 valores pasados de un item particular entre otros; y mostrar la información de forma dinámica.&lt;br /&gt;
&lt;br /&gt;
[[File:EjemploScreen.png|center|750px]]&lt;br /&gt;
&lt;br /&gt;
======Maps======&lt;br /&gt;
En Zabbix, un map (mapa) es una representación gráfica de la situacion de nuestros dispositivos en red. Es un escenario que muestra nuestra red, aplicaciones y servicios a través de figuras o iconos.  Dichas figuras toman vida en respuesta a los eventos que se dan en nuestro entorno.&lt;br /&gt;
[[File:EjemploMaps.png|center|750px]]&lt;br /&gt;
[[File:EstadosMaps.png|center|750px]]&lt;br /&gt;
===Zabbix en '''MD'''tel===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Configuraciones de Zabbix ====&lt;br /&gt;
&lt;br /&gt;
===== Agentes Zabbix =====&lt;br /&gt;
{|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 '''Nota:''' Hay que instalar un agente Zabbix en cada maquina que se quiera monitorizar.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El agente de Zabbix puede recoger datos: &lt;br /&gt;
*'''De forma pasiva:''' el server contacta al agente pidiéndole un dato (por ejemplo el consumo de CPU en ese instante) y el agente responde al server con ese dato. A esta acción del agente le llamaremos '''Agente activo'''.&lt;br /&gt;
*'''De forma activa:''' en un primer momento, el server le enviará al agente el listado de items a monitorizar. A partir de ese momento, será el agente que de forma periódica recogerá datos sobre esos ítems y se los hará llegar al server. A esta acción del agente le llamaremos ''''''Agente pasivo''''''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== Configurar agente de forma pasiva======&lt;br /&gt;
Para configurar el agente de Zabbix necesitamos acceder a la maquina que actuará como agente, y en el directorio /etc/zabbix modificar el fichero '''zabbix_agentd.conf''' e indicar cual es la dirección de red (IP) del servidor Zabbix.&lt;br /&gt;
&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 ##### Passive checks related&lt;br /&gt;
 ### Option: Server&lt;br /&gt;
 #       List of comma delimited IP addresses (or hostnames) of Zabbix servers.&lt;br /&gt;
 #       Incoming connections will be accepted only from the hosts listed here.&lt;br /&gt;
 #       If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1'  &lt;br /&gt;
 #       are treated equall$&lt;br /&gt;
 #&lt;br /&gt;
 # Mandatory: no&lt;br /&gt;
 # Default:&lt;br /&gt;
 Server= IP.Server Zabbix.&lt;br /&gt;
|}&lt;br /&gt;
Tras la configuración del fichero, debemos reiniciar el servicio de los agentes.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 sudo service zabbix-agent restart&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====== Configurar agente de forma activa ======&lt;br /&gt;
&lt;br /&gt;
Para configurar el agente de Zabbix necesitamos acceder a la máquina que actuará como agente, y en el directorio /etc/zabbix modificar el fichero '''zabbix_agentd.conf''' e indicar cual es la dirección de red (IP) del servidor Zabbix.&lt;br /&gt;
&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 ##### Active checks related&lt;br /&gt;
 ### Option: ServerActive&lt;br /&gt;
 #       List of comma delimited IP:port (or hostname:port) pairs of Zabbix serv$&lt;br /&gt;
 #       If port is not specified, default port is used.&lt;br /&gt;
 #       IPv6 addresses must be enclosed in square brackets if port for that hos$&lt;br /&gt;
 #       If port is not specified, square brackets for IPv6 addresses are option$&lt;br /&gt;
 #       If this parameter is not specified, active checks are disabled.&lt;br /&gt;
 #       Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12$&lt;br /&gt;
 #&lt;br /&gt;
 # Mandatory: no&lt;br /&gt;
 # Default:&lt;br /&gt;
 ServerActive=127.0.0.1&lt;br /&gt;
 --------------------------sección separada----------------------------&lt;br /&gt;
 ### Option: UserParameter&lt;br /&gt;
 #       User-defined parameter to monitor. There can be several user-defined pa$&lt;br /&gt;
 #       Format: UserParameter=&amp;lt;key&amp;gt;,&amp;lt;shell command&amp;gt;&lt;br /&gt;
 #       See 'zabbix_agentd' directory for examples.&lt;br /&gt;
 #&lt;br /&gt;
 # Mandatory: no&lt;br /&gt;
 # Default:&lt;br /&gt;
 # UserParameter=&lt;br /&gt;
 User_parameters:asterisk.pid, /usr/bin/asterisk -rx 'core show chanels'|grep 'active calls'| cat -d -f 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El parámetro '''User_parameters''' tiene un formato de este estilo:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 User_parameters: NombreMedida, comando.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El nombre de la medida se refiere al nombre que demos a la aplicación , no hace falta que exista una aplicación con ese nombre en Zabbix, y el comando , es el comando remoto que tiene que ejecutar el servidor Zabbix. Posiblemente necesita darse permisos para ejecutar el comando y siempre debe devolver un valor (un numero o un tiempo) que el servidor Zabbix puede manejar.&lt;br /&gt;
Tras la configuración del fichero, debemos reiniciar el servicio de los agentes.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 sudo service zabbix-agent restart&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Scripts del Servidor Zabbix =====&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''': &amp;lt;small&amp;gt;No olvidar que en la misma maquina del server Zabbix, debe configurarse como agente de Zabbix.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Después de realizar la [[# Instalación de Zabbix | Instalación de Zabbix ]] correctamente. Se han creado otros ficheros scripts (''scripts propios de '''md'''tel'') que facilitarán la petición del servidor a los agentes activos, para poder parametrizar todos los elementos del negocio que suelen monitorizarse. &lt;br /&gt;
Dependiendo de lo que vaya a monitorizarse necesitaremos algún script o todos. Algunos nos informan sobre elementos de negocio, saber si asterisk funciona , monitorizar el CTI (lanzara nc localhost 1111) , controlar el Intz-Nimitz, comprobar si funciona motalsal, ect.&lt;br /&gt;
&lt;br /&gt;
Cada script se exportara a los host, para que pueda facilitar los datos que pide el servidor Zabbix y configurarse.&lt;br /&gt;
Por ejemplo,para monitorizar las llamadas en curso del ACD, agentes conectados, agentes desconectados, etc.&lt;br /&gt;
Todos los scripts se deben colocar en el directorio /usr/local/sbin con permisos 755, su nombre es parecido a &amp;quot;zabbixSenderXXXXX.pl&amp;quot;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 ls /usr/local/sbin/ |grep zabbixSender&lt;br /&gt;
 '''zabbixSenderACDBD.pl'''&lt;br /&gt;
 '''zabbixSenderACD.pl'''&lt;br /&gt;
 '''zabbixSenderCTI.pl'''&lt;br /&gt;
 '''zabbixSender-intz-nimitz.pl'''&lt;br /&gt;
 '''zabbixSenderMotorSal.pl'''&lt;br /&gt;
 '''zabbixSenderMyACDSuperv.pl'''&lt;br /&gt;
 '''zabbixSenderRecordNodo.pl'''&lt;br /&gt;
 '''zabbixSenderRecordCentral.pl'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Se crea una tarea programada en linux para poder ejecutarse los scripts, programando el tiempo en que debe ejecutarse.&lt;br /&gt;
&lt;br /&gt;
Si visualizo que &amp;quot;............&amp;quot; aparece:&lt;br /&gt;
&lt;br /&gt;
*****  root zabbix&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderACDBD.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtiene diversos valores por cada cola, estados de agente por cola y estados de agente generales.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor BDTR.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:''' Ruta al archivo de configuración (Por ejemplo: ''/etc/MDtel/zabbixSenderACDBD.pconf'')&lt;br /&gt;
&lt;br /&gt;
'''Archivo de configuración:''' zabbixSenderACDBD.pconf&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''$db:''' Nombre de la BBDD (normalmente nimitz)&lt;br /&gt;
 '''$dbHost:''' Dirección IP del servidor de BBDD de TR (normalmente BDTR)&lt;br /&gt;
 '''$dbPort:''' Puerto MySQL (normalmente 3306)&lt;br /&gt;
 '''$dbUsuario:''' Usuario MySQL (normalmente nimitz)&lt;br /&gt;
 '''$dbClave:''' Clave del usuario&lt;br /&gt;
 '''$sZab:''' Dirección IP del servidor Zabbix&lt;br /&gt;
 '''$hZab:''' Nombre del host Zabbix (normalmente el nombre de máquina, tal y como se configura en &lt;br /&gt;
 zabbix_agentd.conf o en el host en la web de Zabbix)&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderACD.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener el PID de Asterisk para revisar si se ha reiniciado en caso de que cambie.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor ACD.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:''' Ruta al archivo de configuración (Por ejemplo: ''/etc/MDtel/zabbixSenderACD.pconf'').&lt;br /&gt;
&lt;br /&gt;
'''Archivo de configuración:''' zabbixSenderACDBD.pconf.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''$db:''' Nombre de la BBDD (normalmente nimitz)&lt;br /&gt;
 '''$dbHost:''' Dirección IP del servidor de BBDD de TR (normalmente BDTR)&lt;br /&gt;
 '''$dbPort:''' Puerto MySQL (normalmente 3306)&lt;br /&gt;
 '''$dbUsuario:''' Usuario MySQL (normalmente nimitz)&lt;br /&gt;
 '''$dbClave:''' Clave del usuario&lt;br /&gt;
 '''$sZab:''' Dirección IP del servidor Zabbix&lt;br /&gt;
 '''$hZab:''' Nombre del host Zabbix (normalmente el nombre de máquina, tal y como se configura en&lt;br /&gt;
 zabbix_agentd.conf o en el host en la web de Zabbix)&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
======zabbixSenderCTI.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de vivait-cti.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute vivait-cti. Normalmente el servidor ACD.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======zabbixSender-intz-nimitz.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de intz-nimitz.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute intz-nimitz.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
======zabbixSenderMotorSal.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de motorSal.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute motorSal.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderMyACDSuperv.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de myAcdSuperv.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute myAcdSuperv.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderRecordNodo.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de recordNodo.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute recordNodo.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderRecordCentral.pl======&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de recordCentral.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute recordCentral.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A continuación se muestra una tabla resumen de los distintos scripts y sus funcionalidades: &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Zabbix_scripts.png |960px]]&lt;br /&gt;
&lt;br /&gt;
====== Dimensionamiento del servidor (Startpollers) ======&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''': &amp;lt;small&amp;gt;EL parámetro StartPollers es un &amp;lt;u&amp;gt;parámetro numérico&amp;lt;/u&amp;gt; que forma parte del fichero de configuración &lt;br /&gt;
 del servidor Zabbix(zabbix_server.conf). Por defecto el servidor Zabbix esta configurado para&lt;br /&gt;
 iniciar con cinco startpollers.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El servidor Zabbix puede hace peticiones a los agentes de las medidas que necesita o quiere. O en caso contrario los agentes envian en un tiempo determinado la información al servidor. Para recibir todas estas peticiones necesitamos los pollers.  &lt;br /&gt;
&lt;br /&gt;
Los poller son los procesos encargados de recibir todas las peticiones de medidas. Aumentaremos su cantidad dependiendo de la necesitad que tengamos. Para ello podemos observar la queue , que es la encargada de almacenar un listado de todas las cosas que están pedidas para medirse y recibirse.  SI por ejemplo esta cola (queue) muestra mas de mil medidas seguramente estos pollers sean un cuello de botella y habrá que aumentar su numero.&lt;br /&gt;
&lt;br /&gt;
=====Templates=====&lt;br /&gt;
&lt;br /&gt;
Zabbix cuenta con templates (plantillas) que facilitan la tarea de &amp;quot;Registrar Equipos y Dispositivos&amp;quot; y agregarles métricas; acelerar el despliegue de las tareas de supervisión en un host; aplicar cambios masivos a tareas de supervisión. En '''md'''tel hemos creado plantillas propias que facilitan estos procesos, los cuales necesitaremos [[#Importar templates |importar templates]].&lt;br /&gt;
&lt;br /&gt;
Las plantillas están vinculados directamente a los hosts individuales, por tanto se necesitaran utilizar en cada host.&lt;br /&gt;
&lt;br /&gt;
Automáticamente, cada template rellena por item las aplicaciones, trigers, alarmas,gráficos,... etc. &lt;br /&gt;
&lt;br /&gt;
A continuación, se muestran los distintos bloques de funciones de la instalación en función de cada template:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! Se instalan en general &lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| SI (si clúster)&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| si&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| -&lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| si(si no posee ip virtuales de clúster)&lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| si&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ '''Dependiendo del tipo de nodo:'''&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! ACD !! Corporativo/GW&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| Si || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - || Si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - || Si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ '''Dependiendo del tipo de Base de dato'''s:&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! BBDD &amp;lt;br /&amp;gt;Tiempo Real !! BBDD&amp;lt;br /&amp;gt; Réplica !! BBDD Copia&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| Si(si ACD) || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| si || si || si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| si || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! Administración&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - &lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - &lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal||SI (si posee servidor calendarios)&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! Servidor de grabaciones&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - &lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| Si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - &lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal||-&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ '''Monitorización'''&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! General !! Contact Center&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - || - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - || - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| si || - &lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - || - &lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 * El template OS Linux tiene asociado el Template App Zabbix Agent.&lt;br /&gt;
 Una '''base de datos unificada''' es una base de datos de tiempo real junto a  una base de datos de replica&lt;br /&gt;
&lt;br /&gt;
====== Importar templates======&lt;br /&gt;
&lt;br /&gt;
Las plantillas propias de '''md'''tel se encuentran en la ruta &amp;quot;'''/usr/src/nimitz/archivos'''&amp;quot; y empiezan con el nombre de &amp;quot;TemplateXXX.xml&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 ls /usr/src/nimitz/archivos | grep Template&lt;br /&gt;
 '''Template DRBD.xml'''&lt;br /&gt;
 '''Template motorSal.xml'''&lt;br /&gt;
 '''Templates Vivait-Suite_GW.xml'''&lt;br /&gt;
 '''Templates Vivait-Suite.xml'''&lt;br /&gt;
 '''Template Vivait-Call Asterisk.xml'''&lt;br /&gt;
 '''Template Vivait-Call bdCentral.xml'''&lt;br /&gt;
 '''Template Vivait-Call bdNodo.xml'''&lt;br /&gt;
 '''Template Vivait-Call cambiarPerfil_Cal.xml'''&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La importación se realizara una vez a través de la web, no hace falta desde el servidor Zabbix, puede ser en cualquier  computadora con acceso a la interfaz web de Zabbix.&lt;br /&gt;
&lt;br /&gt;
[[File:ImportarTemplates.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
Hay opciones varias opciones a elegir para importación de templates, pero podemos dejar por defecto las señaladas y pulsar el botón &amp;quot;import&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Configuración para un primer funcionamiento de Zabbix===&lt;br /&gt;
Se describe una básica configuracion de Zabbix para cualquier equipo que utilice Windows o linux. Pues  mediante la definición de hosts, items, triggers y acciones, Zabbix permite efectuar un monitoreo efectivo de plataformas IT heterogéneas. &lt;br /&gt;
&lt;br /&gt;
====Configuración de los equipost (host) para la monitorización====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''': Tenga en cuenta que debe de estar previamente configurado el agente Zabbix del &lt;br /&gt;
 dispositivo a ser monitorizado apuntando a la IP del &amp;quot;Servidor Zabbix&amp;quot;.&lt;br /&gt;
|}&lt;br /&gt;
Existen dos tipos de host:&lt;br /&gt;
* '''Host físico''': donde la dirección de red que registramos en Zabbix, corresponde al dispositivo que deseamos monitorizar.&lt;br /&gt;
* '''Host virtual''': es una dirección IP virtual, que puede relacionarse con un servidor Web, clusters, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:CreacionHost.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
﻿Las opciones basicas para configurar un host son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center ;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Host Name'''&lt;br /&gt;
|  | Definir un nombre para el host.&lt;br /&gt;
||Se puede utilizar números, letras, espacios y guiones bajos están permitidos.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Visible Name'''&lt;br /&gt;
|  | Identificar con un nombre, la maquina a la que se refiere el host.&lt;br /&gt;
||Si no tiene valor, se mostrara como nombre &amp;quot;Host Name&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Groups'''&lt;br /&gt;
|  | Seleccionar al grupo de host que pertence.Seleccione uno o varios grupos de la caja derecha.&lt;br /&gt;
|| Los valores que puede seleccionar por defecto:&lt;br /&gt;
Discoverd hosts.&lt;br /&gt;
&lt;br /&gt;
Switches.&lt;br /&gt;
&lt;br /&gt;
Templates.&lt;br /&gt;
&lt;br /&gt;
Templates MDtel.&lt;br /&gt;
&lt;br /&gt;
Zabbix servers.&lt;br /&gt;
&lt;br /&gt;
Linux Servers.&lt;br /&gt;
&lt;br /&gt;
Hypervisors.&lt;br /&gt;
&lt;br /&gt;
Virtual machines.&lt;br /&gt;
&lt;br /&gt;
O crear uno nuevo en '''New group'''.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Agent interfaces'''&lt;br /&gt;
|  |Se recomienda usar una dirección IP, en vez de un nombre de la maquina para resolver por un servidor de DNS que puede fallar.&lt;br /&gt;
|  | 10050 por defecto&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cuando termine, haga clic en nel boton &amp;quot;Save&amp;quot;.  Su nuevo &amp;quot;Host&amp;quot; debe ser visible en la lista de &amp;quot;Host registrados&amp;quot;.Despues el zabbix, intentara configurarse el zabbix para conectarse a la IP.... cada x tiempo hace un barrido. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Comprobación de disponibilidad del host=====&lt;br /&gt;
Para saber si todo esta bien debemos ver la Z de disponibilidad.   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:EstadosZHost.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Indicacion de los colores del icono Z:&lt;br /&gt;
&lt;br /&gt;
* Si el icono Z en la columna de disponibilidad es de color rojo, indica que hay un error en la comunicación - mueva el cursor del ratón sobre él para ver el mensaje de error. &lt;br /&gt;
&lt;br /&gt;
* Si el icono es gris, significa que esta en proceso de comunicación con el &amp;quot;Agente Zabbix&amp;quot;. Compruebe que el servidor Zabbix está en marcha, y pruebe a actualizar la página más tarde.  El tiempo estimado para revisar si existe problemas es de 5 minutos.&lt;br /&gt;
&lt;br /&gt;
* Si el icono es verde, esta funcionando correctamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Indicar que plantilla(template) tendra el host [opcional]====&lt;br /&gt;
Tras [[#Importar templates |importar templates]] nos dirigimos al host ya configurado, y en su pestaña de templates pulsamos &amp;quot;add&amp;quot; y añadimos la plantilla/s adecuadas.&lt;br /&gt;
&lt;br /&gt;
====Asignar items al host ====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''':Un host puede tener un ITEM sin necesitad de tener template.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Todos lo ITEMS se agrupan por HOST, esto significa que cada HOST tiene sus propios &amp;quot;Módulos que recogen datos del Host&amp;quot;.   Para agregar un nuevo módulo vamos a &amp;quot;Configuration → Hosts&amp;quot; y localizamos el &amp;quot;Host&amp;quot; al cual queremos agregarle un nuevo &amp;quot;Item&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:CrearItemEjemplo.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
Parametros o campos a rellenar para una configuración básica :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center ;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Name'''&lt;br /&gt;
|  | Definir un nombre para el item.  Este nombre va a ser nuestro identificador para todas la gestiones en donde lo involucremos como el caso de Triggers.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Type'''&lt;br /&gt;
|| Indicar de que entidad queremos recibir informacion.&lt;br /&gt;
||Puede ser al &amp;quot;Agente Zabbix&amp;quot; o a el Hardware como impresoras, switch o routers.   &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Key'''&lt;br /&gt;
|  | los &amp;quot;Items&amp;quot; utilizan &amp;quot;Key&amp;quot; que son parámetros de Zabbix.  Los &amp;quot;Key&amp;quot; nos permiten indicar específicamente que tipo de información vamos a solicitara a la entidad. Se puede considerar también como el nombre de alguna aplicación.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''host interface'''&lt;br /&gt;
|  |Es la direccion de red del servidor zabbix (puede ser uno o mas)&lt;br /&gt;
|  | &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Units'''&lt;br /&gt;
|  |Es la dirección de red del servidor zabbix (puede ser uno o mas)&lt;br /&gt;
|  | &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Type of information'''&lt;br /&gt;
|  |Tipo de unidades con el que mostrar Zabbix el valor segundos, minutos, euros,....&lt;br /&gt;
|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cuando termine, haga clic en Guardar.   El nuevo elemento debe aparecer en la ITEMLIST. &lt;br /&gt;
Para mas informacion [[http://entation/1.8/manual/config/items#zabbix_agent. ver documentación Zabbix]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Ver la información recolectada por el item =====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' Normalmente para ver la información lo encontraremos en &amp;quot;Monitoring → Latest data&amp;quot;,luego &lt;br /&gt;
 clic en el signo &amp;quot;+&amp;quot; en &amp;quot;other&amp;quot; siempre que no pertenezca a una aplicación. &lt;br /&gt;
 En caso contrario, estará bajo el nombre de la aplicación.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Después de definir el &amp;quot;Item&amp;quot; vamos a revisar la información que esta recolectando.  .  La información comenzará a ser recolectada según el tiempo que le indicamos en el &amp;quot;Item&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:VerInfoITEM.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
La espera para recibir la información varía dependiendo del tiempo de recolección del item, la mayoría suele ser aproximadamente al minuto de generar el &amp;quot;Item&amp;quot;. Zabbix le ofrece la opción de visualizar la información en forma gráfica (sencilla).  En el &amp;quot;Item&amp;quot; en lista haga clic en la columna &amp;quot;History - Graph&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:VIsualGraficaValorItem.png|center|750px]]&lt;br /&gt;
Si en un caso usted no observa información le recomendamos:&lt;br /&gt;
  &lt;br /&gt;
* Ingrese al &amp;quot;Item&amp;quot; y revise que la información del &amp;quot;Key&amp;quot; este igual al ejemplo &amp;quot;system.cpu.load&amp;quot; &lt;br /&gt;
* Verifique que el agente este funcionando en el &amp;quot;Servidor a ser monitoreado&amp;quot; y que &amp;quot;El Servidor recolector Zabbix&amp;quot; este funcionando. &lt;br /&gt;
* El icono &amp;quot;Z&amp;quot; en el host debe estar en color verde. &lt;br /&gt;
* Asegure que esta monitoreando el servidor que le agregó este &amp;quot;Item&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Configurar los Triggers para los host====&lt;br /&gt;
A partir de la información que captura los agentes , el servidor de Zabbix comienza a efectuar la recolección de estos items en la base de datos. Con esto se tiene un registro histórico de tales mediciones, que pueden ser tan simples como un simple ping hasta datos de uso de disco, memoria, cpu, etc.&lt;br /&gt;
A partir de los datos que se reciben de los agentes lo que sigue es definir y configurar Triggers, que son evaluaciones que hace Zabix de estos datos para determinar la existencia de un Problema en un dispositivo.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Nota: Un trigger necesita una accion, que indica que hacer cuando se activa el trigger.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un trigger(disparador) es un tipo de reacción ante unas medidas, como un disparador en el que si pasa algo se activa. Los Trigger en Zabbix son módulos que creamos a uno o múltiples &amp;quot;Items&amp;quot; para evaluar o comparar los valores recolectados por los &amp;quot;Items&amp;quot; con condiciones que nosotros definamos.  Las condiciones son de tipo aritmético y lógico.&lt;br /&gt;
&lt;br /&gt;
Para configurar un &amp;quot;Trigger o Disparador&amp;quot; seleccionamos &amp;quot;Configuration → Hosts&amp;quot; localizamos el &amp;quot;Host&amp;quot; de ejemplo que creamos y luego hacemos clic en &amp;quot;Trigger&amp;quot;, después haga clic en &amp;quot;Create Trigger&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Parametros o campos a rellenar para una configuración básica :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center ;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Name'''&lt;br /&gt;
|  | Definir un nombre para el trigger.  Este nombre va a ser nuestro identificador para todas la gestiones en donde lo involucremos como el caso de los eventos.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Expression'''&lt;br /&gt;
||  Hay que indicar para que medida se crea (item) y sus funciones con los parametros adecuados. '''''Recomendación usar expression constructor que pedirá siempre al crearlo, para que item es y sus funciones...'''''&lt;br /&gt;
||Ejemplo: {New host:system.cpu.load.avg(180)}&amp;gt;2 &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Key'''&lt;br /&gt;
|  | los &amp;quot;Items&amp;quot; utilizan &amp;quot;Key&amp;quot; que son parámetros de Zabbix.  Los &amp;quot;Key&amp;quot; nos permiten indicar específicamente que tipo de información vamos a solicitara a la entidad. Se puede considerar tambien como el nombre de alguna aplicacion.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Una descripción breve sobre el trigger.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Severity'''&lt;br /&gt;
|  | everidad distinguida por colores,&lt;br /&gt;
|| No classified&lt;br /&gt;
 Information&lt;br /&gt;
 Warning&lt;br /&gt;
 Average&lt;br /&gt;
 High&lt;br /&gt;
 Disaster&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Comprobar el estado del trigger =====&lt;br /&gt;
Podemos ver el estado del &amp;quot;Trigger&amp;quot; en &amp;quot;Monitoring → Triggers&amp;quot;.El  color en caso de que se active depende de la severidad definida. Por ejemplo,  si el &amp;quot;Trigger&amp;quot; esta en color verde indica que el resultado de la métrica se mantiene por debajo de la condición que indicamos.  Por el contrario si el resultado esta &amp;quot;sobre lo indicado&amp;quot; su color sera rojo.&lt;br /&gt;
&lt;br /&gt;
[[File:EstadoTrigger.png|center|750px]]&lt;br /&gt;
&lt;br /&gt;
====Asociar un Action al trigger====&lt;br /&gt;
&lt;br /&gt;
Una action(acción) sirve para configurar un mensaje de alerta o una accion para Zabbix, ante un problema. Hay varias formas de gestionar un problema a través de una acción:&lt;br /&gt;
&lt;br /&gt;
# A través de mensajes simples, alertando al instante.&lt;br /&gt;
# Escalar los mensajes hacia el jefe y/o otros grupos.&lt;br /&gt;
# Ejecución de commandos remotos.&lt;br /&gt;
# Notificaciones repetidas hasta que se resuelve el problema.&lt;br /&gt;
# Notificaciones y comandos retardados.&lt;br /&gt;
# Escenario complejo, la combinación de todo lo anterior.&lt;br /&gt;
&lt;br /&gt;
Para crear una configuración en &amp;quot;Configuration-Actions&amp;quot;. La explicación esta en la [[ https://www.zabbix.com/documentation/2.0/manual/config/notifications/action documentación de Zabbix]].&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integraciones con servicios externos ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Presencia con Openfire ===&lt;br /&gt;
'''''VIVA'''''it se integra con servidor XMPP Openfire en su versión 3.10.2 (última probada)&lt;br /&gt;
&lt;br /&gt;
Además del servidor, es necesario instalar un plugin de integración con asterisk 13, denominado &amp;quot;asterisk IM&amp;quot;, versión 1.4.1&lt;br /&gt;
&lt;br /&gt;
La instalación del servidor Openfire es una instalación estándar, realizada de paquete&lt;br /&gt;
&lt;br /&gt;
La instalación del plugin es un &amp;quot;jar&amp;quot; que se carga desde la pagina de plugins de openfire&lt;br /&gt;
&lt;br /&gt;
Con esto conseguiremos comunicar asterisk y OPenfire de manera que:&lt;br /&gt;
*Los estados telefónicos de una extensión '''''VIVA'''''it  se reflejen en Openfire&lt;br /&gt;
*Poder marcar desde los clientes de IM instalados en los puestos&lt;br /&gt;
*Ver en el cliente llamadas entrantes al teléfono&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;Enlaces de interes:&amp;lt;/big&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
[http://www.igniterealtime.org/projects/openfire/ Página proyecto openfire]&lt;br /&gt;
&lt;br /&gt;
[https://community.igniterealtime.org/thread/56076 Página proyecto &amp;quot;asterisk IM&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reuniones virtuales con Openmeetings ===&lt;br /&gt;
'''OpenMeetings''' es un sistema de vídeo web-conferencia en tiempo real. Usando recursos como audio (micrófono), vídeo (cámara web), posibilidad de subir y convertir presentaciones (en PDF , PPT o ODP que se convierten a Flash), compartición de la pantalla de tu ordenador, o pizarra digital compartida, panel de administración, posibilidad de grabar las sesiones… y completo soporte multiplataforma, es decir, que aparte de poder grabar las sesiones, se puede compartir un escritorio también desde una máquina Linux.&lt;br /&gt;
&lt;br /&gt;
Para instalar '''OpenMettings''' debe seguir el [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manuales_de_instalaci%C3%B3n#Instalaci.C3.B3n_de_Openmeetings | manual de Instalación de Openmeetings]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]] &lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:VIVAit Suite]]&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Intz-nimitz&amp;diff=5924</id>
		<title>Intz-nimitz</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Intz-nimitz&amp;diff=5924"/>
		<updated>2017-06-02T11:39:13Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* Parámetros */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Descripción==&lt;br /&gt;
Entrono creado para ser invocado desde el dialplan de asterisk mediante el MDintz.&lt;br /&gt;
&lt;br /&gt;
Este entorno proporciona servicios para el acceso a la BD nimitz, enrutamiento y expresiones regulares con la aplicación mdintz.&lt;br /&gt;
&lt;br /&gt;
Para mas información consultar la página de [[MDintz|MDintz]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Formato invocación===&lt;br /&gt;
&lt;br /&gt;
Formato de comando en dialplan de asterisk (el separador ',' puede ser sustituido por '|'):&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  MDintz(&amp;lt;entorno(nimitz)&amp;gt;,&amp;lt;servicio&amp;gt;,&amp;lt;comando&amp;gt;,&amp;lt;par1&amp;gt;,&amp;lt;par2&amp;gt;,...,&amp;lt;parN&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Formato de comando en CLI de asterisk:&lt;br /&gt;
  mdintz qry &amp;lt;nHostFijo(*,0..3)&amp;gt; &amp;lt;entorno(nimitz)&amp;gt; &amp;lt;servicio&amp;gt; &amp;lt;comando&amp;gt; &amp;lt;par1&amp;gt; &amp;lt;par2&amp;gt;...&amp;lt;parN&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Retornos generales===&lt;br /&gt;
&lt;br /&gt;
Cuando un retorno comienza por el caracter &amp;quot;+&amp;quot;, indica a app_mdintz que debe reintentar en otro intz-nimitz.&lt;br /&gt;
&lt;br /&gt;
Retornos genericos en ${MDintzRes}:&lt;br /&gt;
&lt;br /&gt;
  '''+curro_congestion'''&lt;br /&gt;
  Hay demasiados trabajos encolados a la espera de ejecucion.&lt;br /&gt;
&lt;br /&gt;
  '''curro_error_param'''&lt;br /&gt;
  El numero de parametros es incorrecto o el comando es desconocido.&lt;br /&gt;
&lt;br /&gt;
  '''curro_cmd_desconocido'''&lt;br /&gt;
  El comando solicitado es desconocido.&lt;br /&gt;
&lt;br /&gt;
  '''curro_supervivencia'''&lt;br /&gt;
  No se puede ejecutar en modo supervivencia.&lt;br /&gt;
&lt;br /&gt;
  '''+mysql_fuera_servicio'''&lt;br /&gt;
  No hay conexion con la base de datos.&lt;br /&gt;
&lt;br /&gt;
  '''mysql_error_ejec'''&lt;br /&gt;
  Se ha producido algun error en la ejecucion de sentencias SQL.&lt;br /&gt;
&lt;br /&gt;
  '''+mysql_temporizador'''&lt;br /&gt;
  Cumplido temporizador sin recibir respuesta de la base de datos.&lt;br /&gt;
&lt;br /&gt;
==Servicio ping==&lt;br /&gt;
&lt;br /&gt;
Servicio de prueba &amp;quot;ping&amp;quot; (no requiere de comando):&lt;br /&gt;
===Retornos===&lt;br /&gt;
&lt;br /&gt;
en ${MDintzRes}: &lt;br /&gt;
&lt;br /&gt;
  '''pong'''&lt;br /&gt;
&lt;br /&gt;
==Servicio BD==&lt;br /&gt;
&lt;br /&gt;
Comandos del servicios &amp;quot;bd&amp;quot; soportados por intz-nimitz:&lt;br /&gt;
&lt;br /&gt;
===dameModoSupervivencia===&lt;br /&gt;
&lt;br /&gt;
  Devuelve si el servicio trabaja en modo supervivencia.&lt;br /&gt;
  Espera resultado.&lt;br /&gt;
  Retorno en ${MDintzRes}:&lt;br /&gt;
    .. OK El servicio no esta en modo supervivencia.&lt;br /&gt;
    .. curro_supervivencia El servicio esta en modo supervivencia.&lt;br /&gt;
&lt;br /&gt;
===segmInsertColaVDN===&lt;br /&gt;
  Inserta un registro en DAT_SEGMENTOS de tipo &amp;quot;grupoACD&amp;quot; y actualiza acumulados mediante ACD_PROC_ACUMULADO.&lt;br /&gt;
  No espera resultado.&lt;br /&gt;
&lt;br /&gt;
====Parámetros====&lt;br /&gt;
&lt;br /&gt;
  . par1 (QUEUESTATUS). ${QUEUESTATUS} de retorno de comando &amp;quot;Queue&amp;quot;:&lt;br /&gt;
    .. CONNECT&lt;br /&gt;
    .. ABANDONED&lt;br /&gt;
    .. TIMEOUT&lt;br /&gt;
    .. FULL&lt;br /&gt;
    .. JOINEMPTY&lt;br /&gt;
    .. JOINUNAVAIL&lt;br /&gt;
    .. LEAVEEMPTY&lt;br /&gt;
    .. LEAVEUNAVAIL&lt;br /&gt;
  . par2 (N_DURACION).&lt;br /&gt;
  . par3 (C_ORIGEN).&lt;br /&gt;
  . par4 (C_DESTINO).&lt;br /&gt;
  . par5 (C_UCID).&lt;br /&gt;
  . par6 (C_COLA).&lt;br /&gt;
  . par7 (C_VDN).&lt;br /&gt;
  . par8 (C_VDN_DESDE).&lt;br /&gt;
  . par9 (C_VDN_HACIA).&lt;br /&gt;
  . par10 (C_EXTENSION).&lt;br /&gt;
  . par11 (SERA_DESCONECTADA).&lt;br /&gt;
  . par12 (DESDE_OTRO_GRUPO_ACD).&lt;br /&gt;
  . par13 (C_EJE1_MASCARA).&lt;br /&gt;
&lt;br /&gt;
====Retornos====&lt;br /&gt;
&lt;br /&gt;
  Retornos posibles (además del los genéricos) en ${MDintzRes}:&lt;br /&gt;
&lt;br /&gt;
    .. OK Todo correcto.&lt;br /&gt;
&lt;br /&gt;
===llamGwInsert===&lt;br /&gt;
&lt;br /&gt;
  . Servicio de insercion en DAT_LLAMADAS para gateway.&lt;br /&gt;
  . Lo primero se comprueba si el registro ya existe en base a C_UCID.&lt;br /&gt;
  . Si ya existe y es saliente, se acutaliza.&lt;br /&gt;
  . Si no existe, se inserta un nuevo registro.&lt;br /&gt;
  . No espera resultado.&lt;br /&gt;
&lt;br /&gt;
====Parámetros====&lt;br /&gt;
&lt;br /&gt;
  . par1 (C_ORIGEN).&lt;br /&gt;
  . par2 (C_DESTINO).&lt;br /&gt;
  . par3 (C_UCID).&lt;br /&gt;
  . par4 (E_TIPO_LLAMADA).&lt;br /&gt;
  . par5 (ID_NODO_GW).&lt;br /&gt;
  . par6 (N_PRIMARIO).&lt;br /&gt;
  . par7 (N_CANAL_PRIMARIO).&lt;br /&gt;
  . par8 (C_CALLERID).&lt;br /&gt;
&lt;br /&gt;
====Retornos====&lt;br /&gt;
&lt;br /&gt;
  . Retornos posibles (ademas del los genericos) en ${MDintzRes}:&lt;br /&gt;
    .. OK Todo correcto.&lt;br /&gt;
&lt;br /&gt;
===llamGwUpdateIn===&lt;br /&gt;
&lt;br /&gt;
  . Cierra un registro en DAT_LLAMADAS desde la gateway en el caso de llamada entrante.&lt;br /&gt;
  . No espera resultado.&lt;br /&gt;
&lt;br /&gt;
====Parámetros====&lt;br /&gt;
  . par1 (C_UCID).&lt;br /&gt;
&lt;br /&gt;
====Retornos====&lt;br /&gt;
&lt;br /&gt;
  . Retornos posibles (ademas del los genericos) en ${MDintzRes}:&lt;br /&gt;
    .. OK Todo correcto.&lt;br /&gt;
&lt;br /&gt;
===llamGwUpdateOut===&lt;br /&gt;
&lt;br /&gt;
  . Cierra un registro en DAT_LLAMADAS desde la gateway en el caso de llamada saliente.&lt;br /&gt;
  . No espera resultado.&lt;br /&gt;
&lt;br /&gt;
====Parámetros====&lt;br /&gt;
&lt;br /&gt;
  . par1 (ID_NODO_GW).&lt;br /&gt;
  . par2 (N_PRIMARIO).&lt;br /&gt;
  . par3 (N_CANAL_PRIMARIO).&lt;br /&gt;
  . par4 (C_UCID).&lt;br /&gt;
&lt;br /&gt;
====Retornos====&lt;br /&gt;
&lt;br /&gt;
  . Retornos posibles (ademas del los genericos) en ${MDintzRes}:&lt;br /&gt;
    .. OK Todo correcto.&lt;br /&gt;
&lt;br /&gt;
===agenAexten===&lt;br /&gt;
&lt;br /&gt;
  . Traduce un identificador numerico que es un posible agente ACD&lt;br /&gt;
  . al identificador de la extension en que esta conectado.&lt;br /&gt;
  . Si no es un agente o no esta conectado, devuelve el mismo valor sin traducir.&lt;br /&gt;
  . Espera resultado.&lt;br /&gt;
&lt;br /&gt;
====Parámetros====&lt;br /&gt;
&lt;br /&gt;
  . par1 (agente): Identificador numerico del agente.&lt;br /&gt;
&lt;br /&gt;
====Retornos====&lt;br /&gt;
&lt;br /&gt;
  . Retornos posibles (ademas del los genericos) en ${MDintzRes}:&lt;br /&gt;
    .. OK Todo correcto. Se devuelve el dato solicitado en ${extAgen}.&lt;br /&gt;
  . Retorno en ${extAgen} (solo si ${MDintzRes}=OK):&lt;br /&gt;
    .. Extension en que se encuentra conectado el agente o el valor de entrada sin traducir.&lt;br /&gt;
&lt;br /&gt;
===colaConfig===&lt;br /&gt;
&lt;br /&gt;
  . Devuelve datos de configuracion de una cola. Lo usa app_queue.&lt;br /&gt;
  . Esta funcion es utilizada por app_queue. Por ello es muy importante el orden en que se generan las variables resultado.&lt;br /&gt;
  . Espera resultado.&lt;br /&gt;
&lt;br /&gt;
====Parámetros====&lt;br /&gt;
&lt;br /&gt;
  . par1 (COLA).&lt;br /&gt;
&lt;br /&gt;
====Retornos====&lt;br /&gt;
&lt;br /&gt;
  . Retornos posibles (ademas del los genericos) en ${MDintzRes}:&lt;br /&gt;
    .. OK Todo correcto. Se devuelven los datos solicitados.&lt;br /&gt;
  . Retorno en ${objServ} (solo si ${MDintzRes}=OK): Objetivo de servicio configurado.&lt;br /&gt;
  . Retorno en ${pesoObjServ} (solo si ${MDintzRes}=OK): Peso configurado.&lt;br /&gt;
&lt;br /&gt;
===sqlDato===&lt;br /&gt;
&lt;br /&gt;
  . Devuelve el primer campo del primer registro obtenido en una consulta SQL.&lt;br /&gt;
  . Espera resultado.&lt;br /&gt;
&lt;br /&gt;
====Parámetros====&lt;br /&gt;
&lt;br /&gt;
  . par1 (sql): consulta SQL.&lt;br /&gt;
&lt;br /&gt;
====Retornos====&lt;br /&gt;
&lt;br /&gt;
  . Retornos posibles (ademas del los genericos) en ${MDintzRes}:&lt;br /&gt;
    .. OK Todo correcto. Se devuelve el dato solicitado en ${sqlDato}.&lt;br /&gt;
  . Retorno en ${sqlDato}:&lt;br /&gt;
    .. Valor del primer campo del primer registro resultado de la consulta SQL (solo si OK).&lt;br /&gt;
&lt;br /&gt;
===sqlModiDato===&lt;br /&gt;
&lt;br /&gt;
  . Igual al anterior. Debe usarse cuando la sentencia sql llama funcion que modifica datos.&lt;br /&gt;
&lt;br /&gt;
===sqlSinEspera===&lt;br /&gt;
&lt;br /&gt;
  . Ejecuta una sentencia SQL y devuelve el control sin esperar ni devolver el resultado.&lt;br /&gt;
  . No espera resultado.&lt;br /&gt;
&lt;br /&gt;
====Parámetros====&lt;br /&gt;
&lt;br /&gt;
  . par1 (sql): consulta SQL.&lt;br /&gt;
&lt;br /&gt;
====Retornos====&lt;br /&gt;
&lt;br /&gt;
  . Retornos posibles (ademas del los genericos) en ${MDintzRes}:&lt;br /&gt;
    .. OK Todo correcto.&lt;br /&gt;
&lt;br /&gt;
===validaDato===&lt;br /&gt;
&lt;br /&gt;
  . Se valida una clave contra una clave cifrada.&lt;br /&gt;
&lt;br /&gt;
====Parámetros====&lt;br /&gt;
&lt;br /&gt;
  . par1 (clave)&lt;br /&gt;
  . par2 (clave_cifrada)&lt;br /&gt;
&lt;br /&gt;
====Retornos====&lt;br /&gt;
&lt;br /&gt;
  . Retornos posibles (ademas del los genericos) en ${MDintzRes}:&lt;br /&gt;
    .. OK: Todo correcto.&lt;br /&gt;
    .. KO: Clave erronea.&lt;br /&gt;
&lt;br /&gt;
===validaAcceso===&lt;br /&gt;
&lt;br /&gt;
  . Se valida un acceso a un objeto del tipo que se indica del modo previsto para el dialplan.&lt;br /&gt;
&lt;br /&gt;
====Parámetros====&lt;br /&gt;
&lt;br /&gt;
  . par1 (tipo_objeto):&lt;br /&gt;
    .. buzon: se valida con la clave de buzon o la del usuario, si lo tiene asignado.&lt;br /&gt;
    .. usuario: se valida con el login numerico del usuario.&lt;br /&gt;
    .. conferencia_usuario: se valida con el pin de usuario.&lt;br /&gt;
    .. conferencia_admin: se valida con el pin de administracion.&lt;br /&gt;
    .. agente&lt;br /&gt;
  . par2 (login)&lt;br /&gt;
  . par3 (clave)&lt;br /&gt;
&lt;br /&gt;
====Retornos====&lt;br /&gt;
&lt;br /&gt;
  . Retornos posibles (ademas del los genericos) en ${MDintzRes}:&lt;br /&gt;
    .. OK: Todo correcto.&lt;br /&gt;
    .. KO: Login o clave erroneo.&lt;br /&gt;
    .. error_tipo_objeto: Tipo de objeto desconocido.&lt;br /&gt;
&lt;br /&gt;
===modificaClaveBuzon===&lt;br /&gt;
&lt;br /&gt;
  . Se modifica la clave de un buzon para invocar desde mensajeria. Esta puede estar en:&lt;br /&gt;
    .. CEN_USUARIOS.C_CLAVE_NUMERICA si:&lt;br /&gt;
      ... MEN_BUZONES.ID_USUARIO&amp;gt;0, existe y ya tiene clave; y&lt;br /&gt;
      ... MEN_BUZONES.C_CLAVE is NULL&lt;br /&gt;
    .. MEN_BUZONES.C_CLAVE en el caso de que no se de alguna de las condiciones anteriores y&lt;br /&gt;
      ... MEN_BUZONES.C_CLAVE is not NULL&lt;br /&gt;
  . O sea, nunca modifica una clave que previamente tenga un valor NULL&lt;br /&gt;
  . No se puede ejecutar si esta en modo supervivencia.&lt;br /&gt;
&lt;br /&gt;
====Parámetros====&lt;br /&gt;
&lt;br /&gt;
  . par1 (buzon)&lt;br /&gt;
  . par2 (clave_nueva)&lt;br /&gt;
&lt;br /&gt;
====Retornos====&lt;br /&gt;
&lt;br /&gt;
  . Retornos posibles (ademas del los genericos) en ${MDintzRes}:&lt;br /&gt;
    .. OK: Todo correcto.&lt;br /&gt;
    .. error_buzon: No se encuentra el buzon indicado.&lt;br /&gt;
    .. error_no_clave: El buzon no tiene clave y no tiene usuario o este no tiene clave.&lt;br /&gt;
&lt;br /&gt;
===extenEntraUsuarioMovil===&lt;br /&gt;
&lt;br /&gt;
  . Un usuario de centralita ejerce la movilidad sobre una extension.&lt;br /&gt;
  . Espera resultado.&lt;br /&gt;
  . No se puede ejecutar si esta en modo supervivencia.&lt;br /&gt;
&lt;br /&gt;
====Parámetros====&lt;br /&gt;
&lt;br /&gt;
  . par1 (extension).&lt;br /&gt;
  . par2 (login). Identificador numerico del usuario de centralita.&lt;br /&gt;
  . par3 (clave). Clave numerica del usuario de centralita.&lt;br /&gt;
  . par4 (auto_desconexion). Si el usuario esta en movilidad en otra extension, lo desconecta. Puede tomar los valores 0 y 1; y que, en caso de tomar valor 1 y asumiendo que un usuario desea conectarse &lt;br /&gt;
    en movilidad a una extensión pero, está conectado en otra; es desconectado de la última en la misma operación de conexión a la solicitada&lt;br /&gt;
&lt;br /&gt;
====Retornos====&lt;br /&gt;
&lt;br /&gt;
  . Retornos posibles (ademas del los genericos) en ${MDintzRes}:&lt;br /&gt;
    .. OK Todo correcto. Se devuelven datos de reaprovisionamiento.&lt;br /&gt;
    .. movil_error_login El identificador numerico de usuario no es valido.&lt;br /&gt;
    .. movil_error_datos Falta algun dato imprescindible en la base de datos.&lt;br /&gt;
    .. movil_ya_login El usuario ya ha ejercido la movilidad en la extension ${MOVIL_EXTEN}.&lt;br /&gt;
    .. movil_usu_no_ejes No se encuentran valores para los ejes asignados al usuario.&lt;br /&gt;
    .. movil_error_clave La clave numerica no es correcta.&lt;br /&gt;
    .. movil_error_exten No existe la extension indicada.&lt;br /&gt;
    .. movil_exten_no_movil La extension indicada no esta configurada para movilidad.&lt;br /&gt;
    .. movil_exten_ya_asignada El usuario ya ha ejercido la movilidad en la extension indicada.&lt;br /&gt;
    .. movil_exten_propietario El usuario es el propietario de la extension y no tiene asignado usuario en movilidad.&lt;br /&gt;
    .. movil_exten_error_ejes El usuario no puede ejercer la movilidad en la extension por asignacion de ejes.&lt;br /&gt;
  . Retorno en ${MOVIL_EXTEN} (solo si ${MDintzRes}=movil_ya_login):&lt;br /&gt;
    .. Indica la extension en la que el usuario ya ha ejercido la movilidad.&lt;br /&gt;
  . Retorno en ${MOVIL_TIPO_RESET} (solo si ${MDintzRes}=OK):&lt;br /&gt;
    .. Devuelve el procedimiento de reaprovisionamiento. Posibles valores:&lt;br /&gt;
      ... 10: Noficacion SIP.&lt;br /&gt;
  . Retorno en ${MOVIL_CAD_RESET} (solo si ${MDintzRes}=OK):&lt;br /&gt;
    .. Devuelve una cadena que tiene un significado relacionado con el procedimiento de reaprovisionamiento.&lt;br /&gt;
&lt;br /&gt;
===extenSaleUsuarioMovil===&lt;br /&gt;
&lt;br /&gt;
  . Desde una extension, se anula la situacion de movilidad previamente establecida.&lt;br /&gt;
  . Espera resultado.&lt;br /&gt;
  . No se puede ejecutar si esta en modo supervivencia.&lt;br /&gt;
&lt;br /&gt;
====Parámetros====&lt;br /&gt;
&lt;br /&gt;
  . par1 (extension).&lt;br /&gt;
&lt;br /&gt;
====Retornos====&lt;br /&gt;
&lt;br /&gt;
  . Retornos posibles (ademas del los genericos) en ${MDintzRes}:&lt;br /&gt;
    .. OK Todo correcto. Se devuelven datos de reaprovisionamiento.&lt;br /&gt;
    .. movil_error_datos Falta algun dato imprescindible en la base de datos.&lt;br /&gt;
    .. movil_error_exten No existe la extension indicada.&lt;br /&gt;
    .. movil_exten_propietario La extension no tiene asignado usuario en movilidad.&lt;br /&gt;
  . Retorno en ${MOVIL_TIPO_RESET} (solo si ${MDintzRes}=OK):&lt;br /&gt;
    .. Devuelve el procedimiento de reaprovisionamiento. Posibles valores:&lt;br /&gt;
      ... 10: Noficacion SIP.&lt;br /&gt;
  . Retorno en ${MOVIL_CAD_RESET} (solo si ${MDintzRes}=OK):&lt;br /&gt;
    .. Devuelve una cadena que tiene un significado relacionado con el procedimiento de reaprovisionamiento.&lt;br /&gt;
&lt;br /&gt;
===enrutar=== &lt;br /&gt;
&lt;br /&gt;
(simulacion por comando y sin grabar segmentos de preenrutamiento)&lt;br /&gt;
&lt;br /&gt;
===enrutarReal===&lt;br /&gt;
&lt;br /&gt;
(se generan segmentos de preenrutamiento)&lt;br /&gt;
&lt;br /&gt;
  . El dialplan envia una solicitud de enrutamiento al iniciarse una llamada desde dispositivo (llamada entrante) o desde un grupo ACD de llamadas salientes.&lt;br /&gt;
  . Espera resultado.&lt;br /&gt;
&lt;br /&gt;
====Parámetros====&lt;br /&gt;
&lt;br /&gt;
  . par1 (TIPO_ORIGEN): Enumerado TTipoEnrutamiento.&lt;br /&gt;
    .. tipoEnrutamiento_idDispositivo = 10.&lt;br /&gt;
    .. tipoEnrutamiento_idCola = 20.&lt;br /&gt;
  . par2 (ORIGEN): En funcion del valor anterior, el origen de la llamada.&lt;br /&gt;
    .. Si TIPO_ORIGEN=tipoEnrutamiento_idDispositivo, ORIGEN=idDispositivo.&lt;br /&gt;
    .. Si TIPO_ORIGEN=tipoEnrutamiento_idCola, ORIGEN=idCola.&lt;br /&gt;
  . par3 (ID_NODO_ENT): ID del nodo de entrada de la llamada. Se simplifican consultas. Podria deducirse del dispositivo o del grupo ACD, pero seria indeterminado si:&lt;br /&gt;
    .. El origen es una extension y la llamada se efectua desde el nodo secundario.&lt;br /&gt;
  . par4 (UCID).&lt;br /&gt;
  . par5 (callerIdName).&lt;br /&gt;
  . par6 (callerIdNum).&lt;br /&gt;
  . par7 (DNIS).&lt;br /&gt;
  . par8 (desvioDialPlan). Permite solicitar datos para un  desvio cuando es requerido.&lt;br /&gt;
&lt;br /&gt;
====Retornos====&lt;br /&gt;
&lt;br /&gt;
  . Retornos posibles para ${MDintzRes}:&lt;br /&gt;
    .. enru_error_dispositivo&lt;br /&gt;
    .. enru_no_destino&lt;br /&gt;
    .. enru_no_pre_ruta&lt;br /&gt;
    .. enru_no_pre_nodo&lt;br /&gt;
    .. enru_bucle_pre_ruta&lt;br /&gt;
    .. enru_bucle_ruta&lt;br /&gt;
    .. enru_no_nodo&lt;br /&gt;
    .. enru_no_ruta&lt;br /&gt;
    .. enru_no_extension&lt;br /&gt;
    .. enru_no_usuario&lt;br /&gt;
    .. enru_no_agente&lt;br /&gt;
    .. enru_no_facilidad&lt;br /&gt;
    .. enru_no_vdn&lt;br /&gt;
    .. enru_no_cola&lt;br /&gt;
    .. enru_no_buzon&lt;br /&gt;
    .. enru_no_conferencia&lt;br /&gt;
    .. enru_no_cola_cen&lt;br /&gt;
&lt;br /&gt;
  . Variables de retorno comunes:&lt;br /&gt;
    .. R_TIP_DESTINO&lt;br /&gt;
    .. R_PARA: indica el destino solicitado cuando es distinto del alcanzado (ej.: usuario)&lt;br /&gt;
    .. R_CODCLI: codigo de cliente&lt;br /&gt;
    .. R_EJE1&lt;br /&gt;
    .. R_DESV_NC (MENSA si desvio a mensajeria) (solo si destino extension o usuario)&lt;br /&gt;
    .. R_DESV_OCUP (MENSA si desvio a mensajeria) (solo si destino extension o usuario)&lt;br /&gt;
    .. R_DESV_FSER (MENSA si desvio a mensajeria) (solo si destino extension o usuario)&lt;br /&gt;
    .. R_BUZON (solo si destino extension o usuario)&lt;br /&gt;
    .. R_RUT_NODO_BUZON (solo si destino extension o usuario)&lt;br /&gt;
&lt;br /&gt;
  . Variables de ruta nn:&lt;br /&gt;
    .. R_ABDE_nn: ancho de banda del dispositivo de entrada.&lt;br /&gt;
    .. R_ABNE_nn: ancho de banda del nodo de entrada.&lt;br /&gt;
    .. R_ABDS_nn: ancho de banda del dispositico de salida.&lt;br /&gt;
    .. R_ABNS_nn: ancho de banda del nodo de salida.&lt;br /&gt;
    .. R_CID_NAME_nn&lt;br /&gt;
    .. R_CID_NUM_nn&lt;br /&gt;
    .. R_DEST_nn&lt;br /&gt;
    .. R_RUT_NODO_nn&lt;br /&gt;
    .. R_RUT_SAL_nn&lt;br /&gt;
&lt;br /&gt;
==Servicio regExpr==&lt;br /&gt;
&lt;br /&gt;
Comandos del servicios &amp;quot;regExpr&amp;quot; soportados por intz-nimitz:&lt;br /&gt;
&lt;br /&gt;
===sinSubCad===&lt;br /&gt;
&lt;br /&gt;
  . Empareja una expresion regular extendida con una cadena sin obtener subcadenas.&lt;br /&gt;
&lt;br /&gt;
====Parámetros====&lt;br /&gt;
&lt;br /&gt;
  . par1 (noCache). 0: se almacena la expresion regular en el cache. 1: no se almacena.&lt;br /&gt;
  . par2 (exprReg). Expresion regular.&lt;br /&gt;
  . par3 (cad). Cadena a verificar emparejamiento.&lt;br /&gt;
  . Espera resultado.&lt;br /&gt;
&lt;br /&gt;
====Retornos====&lt;br /&gt;
&lt;br /&gt;
  . Retornos posibles (ademas del los genericos) en ${MDintzRes}:&lt;br /&gt;
    .. OK Todo correcto y se verifica el emparejamiento.&lt;br /&gt;
    .. rxp_no_empareja Todo correcto, pero la cadena no se empareja.&lt;br /&gt;
    .. rxp_error Se produce algun tipo de error (ej.: la expresion no compila).&lt;br /&gt;
&lt;br /&gt;
===conSubCad===&lt;br /&gt;
&lt;br /&gt;
  . Empareja una expresion regular extendida con una cadena, obteniendo un maximo de 8 subcadenas.&lt;br /&gt;
  . Espera resultado.&lt;br /&gt;
&lt;br /&gt;
====Parámetros====&lt;br /&gt;
&lt;br /&gt;
  . par1 (noCache). 0: se almacena la expresion regular en el cache. 1: no se almacena.&lt;br /&gt;
  . par2 (exprReg). Expresion regular.&lt;br /&gt;
  . par3 (cad). Cadena a verificar emparejamiento.&lt;br /&gt;
&lt;br /&gt;
====Retornos====&lt;br /&gt;
&lt;br /&gt;
  . Retornos posibles (ademas del los genericos) en ${MDintzRes}:&lt;br /&gt;
    .. OK Todo correcto y se verifica el emparejamiento. Se obtienen subcadenas en otras variables.&lt;br /&gt;
    .. rxp_no_empareja Todo correcto, pero la cadena no se empareja y no hay subcadenas.&lt;br /&gt;
    .. rxp_error Se produce algun tipo de error (ej.: la expresion no compila).&lt;br /&gt;
  . Retorno en ${RXP_SUB_nn}: valor de la subexpresion enesima. Solo se da si antes OK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Proceso de enrutamiento==&lt;br /&gt;
&lt;br /&gt;
===Descripción===&lt;br /&gt;
&lt;br /&gt;
* Globalmente, el proceso de enrutamiento se compone de dos fases:&lt;br /&gt;
&lt;br /&gt;
	. La primera es el preenrutamiento, que trata toda clase de llamadas.&lt;br /&gt;
	. La segunda es el enrutamiento externo, que tiene módulos dedicados al enrutamiento hacia:&lt;br /&gt;
		.. enlaces externos.&lt;br /&gt;
		.. extensiones.&lt;br /&gt;
		.. usuarios de telefonía corporativa.&lt;br /&gt;
		.. facilidades.&lt;br /&gt;
		.. salas de conferencia.&lt;br /&gt;
		.. agentes de grupos ACD.&lt;br /&gt;
		.. grupos ACD.&lt;br /&gt;
		.. vdn.&lt;br /&gt;
		.. buzones para dejar mensaje.&lt;br /&gt;
		.. buzones para su gestión.&lt;br /&gt;
		.. grupo de salto.&lt;br /&gt;
		.. operadora.&lt;br /&gt;
		.. cola de centralita.&lt;br /&gt;
	. Puede ser realizado por un servicio que tiene conexión con la base de datos en tiempo real o, cuando se den problemas de disponibilidad de ésta o del servicio primario, en otro servicio que trabaja en &amp;quot;modo supervivencia&amp;quot; sobre una copia no actual de la base de datos.&lt;br /&gt;
&lt;br /&gt;
* Se asume que existen rutas directas entre todos los nodos de red.&lt;br /&gt;
&lt;br /&gt;
* Se asume que estan directamente enrutadas todas las direcciones IP involucradas, tanto nodos, como terminales.&lt;br /&gt;
&lt;br /&gt;
* Se asume que todas las facilidades estan disponibles en todos los nodos, aunque es posible que la implementación sea diferente entre ellos.&lt;br /&gt;
&lt;br /&gt;
* Los datos de entrada básicos al proceso de enrutamiento (pdEntr) son:&lt;br /&gt;
&lt;br /&gt;
	. TIPO_ORIGEN (TTipoEnrutamiento)&lt;br /&gt;
		.. TIPO_ID_DISPOSITIVO&lt;br /&gt;
		.. TIPO_ID_COLA&lt;br /&gt;
	. ID_ORIGEN&lt;br /&gt;
	. ID_NODO_ENT (no sirve el del dispositivo si se trata de una extensión en nodo secundario)&lt;br /&gt;
	. UCID&lt;br /&gt;
	. CALLER_ID_NAME&lt;br /&gt;
	. CALLER_ID_NUM&lt;br /&gt;
	. DNIS&lt;br /&gt;
	. DESVIO_DIALPLAN&lt;br /&gt;
&lt;br /&gt;
* Datos deducidos a partir de los anteriores&lt;br /&gt;
	. ID_SEDE_DISP_ENT (sede del dispositivo de entrada)&lt;br /&gt;
	. ID_SEDE_NODO_ENT (sede del nodo de entrada)&lt;br /&gt;
	. ANCHO_DE_BANDA_DISP (ancho de banda disponible en la sede del dispositivo)&lt;br /&gt;
	. ANCHO_DE_BANDA_NODO (ancho de banda disponible en la sede del nodo)&lt;br /&gt;
	. ID_CATEGORIA_ENT&lt;br /&gt;
	. EJE1_MSK (valor del eje1 asignado a la llamada)&lt;br /&gt;
	. CALLER_ID_NUM_EXTERNO (uso potencial en llamadas con destino externo)&lt;br /&gt;
	. HAY_GRABAR (en base a cola, extension, nodo o usuario origen)&lt;br /&gt;
&lt;br /&gt;
* Los datos de salida globales del proceso de enrutamiento (pdSale) son (todos los nombres tienen prefijo &amp;quot;__&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
	. SPRV (Si el proceso se ha realizado en modo supervivencia)&lt;br /&gt;
	. ID_SEGM (ID del segmento generado)&lt;br /&gt;
	. ID_CATEGORIA_SAL&lt;br /&gt;
	. COD_CLIENTE (opcional)&lt;br /&gt;
	. TIPO_DESTINO_SAL ( /* TTipoDestinoEnrutamiento */)&lt;br /&gt;
		.. No existe.&lt;br /&gt;
		.. Ruta externa.&lt;br /&gt;
		.. Extensión.&lt;br /&gt;
		.. Extension o (si falla la extensión) usuario.&lt;br /&gt;
		.. Usuario de telefonía corporativa.&lt;br /&gt;
		.. Usuario o (si falla el usuario) extensión.&lt;br /&gt;
		.. Facilidad.&lt;br /&gt;
		.. Sala de conferencia.&lt;br /&gt;
		.. Agente de grupos ACD.&lt;br /&gt;
		.. Grupos ACD.&lt;br /&gt;
		.. VDN.&lt;br /&gt;
		.. Buzón para dejar mensaje.&lt;br /&gt;
		.. Buzón para dejar mensaje por ocupado.&lt;br /&gt;
		.. Buzón para dejar mensaje por no contestación.&lt;br /&gt;
		.. Buzón para su gestión.&lt;br /&gt;
		.. Grupo de salto.&lt;br /&gt;
		.. Operadora.&lt;br /&gt;
		.. Cola de centralita.&lt;br /&gt;
		.. VDN de centralita.&lt;br /&gt;
	. TIP_LLAM (tipo de llamada)&lt;br /&gt;
		.. Saliente&lt;br /&gt;
		.. Entrante&lt;br /&gt;
		.. Interior&lt;br /&gt;
		.. Transito&lt;br /&gt;
	. PARA (destinatario cuando se trata de un usuario o de un agente)&lt;br /&gt;
	. PARA_NAME&lt;br /&gt;
	. COD_CLIENTE&lt;br /&gt;
	. EJE1_MSK (valor del eje1 asignado a la llamada)&lt;br /&gt;
	. BUZON (sólo extensiones y usuarios que tengan buzón asignado)&lt;br /&gt;
	. RUTA_NODO_BUZON (si el buzón está en nodo distinto al de entrada)&lt;br /&gt;
	. DESVIO_INCONDICIONAL (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable)&lt;br /&gt;
	. DESVIO_NO_CONTESTA (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable)&lt;br /&gt;
	. DESVIO_OCUPADO (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable)&lt;br /&gt;
	. DESVIO_FUERA_SERV (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable)&lt;br /&gt;
&lt;br /&gt;
*  Los datos de salida para cada una de las posibles rutas en orden son (nn va de 01 maxRutas [nn son dos dígitos decimales]):&lt;br /&gt;
&lt;br /&gt;
	. CONTADOR_ABDE_nn (contador para control de ancho de banda en sede de dispositivo de entrada).&lt;br /&gt;
	. CONTADOR_ABNE_nn (contador para control de ancho de banda en sede de nodo de entrada).&lt;br /&gt;
	. CONTADOR_ABDS_nn (contador para control de ancho de banda en sede de dispositivo de salida).&lt;br /&gt;
	. CONTADOR_ABNS_nn (contador para control de ancho de banda en sede de nodo de salida).&lt;br /&gt;
	. GB_nn (modo de grabacion).&lt;br /&gt;
	. CALLER_NAME_SAL_nn&lt;br /&gt;
		.. Puede salir de una extensión, un usuario o de un agente.&lt;br /&gt;
	. CALLER_NUM_SAL_nn&lt;br /&gt;
		.. Puede salir de una extensión, un usuario o de un agente.&lt;br /&gt;
	. DESTINO_SAL_nn&lt;br /&gt;
		.. En general, el valor C_NOMBRE o destino de salida.&lt;br /&gt;
	. RUTA_NODO_nn&lt;br /&gt;
		.. Cadena de marcación para ir la nodo que soporta DESTINO_SAL_nn, si es distinto del nodo de entrada.&lt;br /&gt;
	. RUTA_SAL_nn (dependiendo de TIPO_DESTINO_SAL)&lt;br /&gt;
		.. Extensión: cadena marcación.&lt;br /&gt;
		.. Facilidad: E_CODIGO_FACILIDAD obtenido de la tabla CEN_FACILIDADES.&lt;br /&gt;
		.. Usuario: cadena marcación de la extensión asignada al usuario en movilidad o en propiedad.&lt;br /&gt;
		.. Agente: cadena marcación de la extensión a la que está conectado el agente.&lt;br /&gt;
		.. Ruta externa: contexto que gestiona la llamada saliente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Fase preenrutamiento:===&lt;br /&gt;
&lt;br /&gt;
* La fase de preenrutamiento (basada en la table CEN_PRE_RUTA) se usa en todas las llamadas entrantes, tanto internas, como externas. Permite desarrollar un &amp;quot;prerouting&amp;quot; estándar para ACD y para telefonía corporativa.&lt;br /&gt;
&lt;br /&gt;
* Datos de entrada al proceso de preenrutamiento (pdPreEntr): iguales que los del proceso global de enrutamiento, excepto en que este proceso no usa ID_NODO_ENT ya que es independiente de éste.&lt;br /&gt;
&lt;br /&gt;
* Datos de salida de la fase de preenrutamiento (pdPreSal): &lt;br /&gt;
	. GB (modo de grabacion)&lt;br /&gt;
	. ID_CATEGORIA_SAL&lt;br /&gt;
	. COD_CLIENTE (opcional)&lt;br /&gt;
	. TIPO_DESTINO_SAL ( /* TTipoDestinoEnrutamiento */)&lt;br /&gt;
		.. No existe.&lt;br /&gt;
		.. Volver a preenrutar.&lt;br /&gt;
		.. Ruta externa.&lt;br /&gt;
		.. Extensión.&lt;br /&gt;
		.. Usuario de telefonía corporativa.&lt;br /&gt;
		.. Facilidad.&lt;br /&gt;
		.. Sala de conferencia.&lt;br /&gt;
		.. Agente de grupos ACD.&lt;br /&gt;
		.. Grupos ACD.&lt;br /&gt;
		.. VDN.&lt;br /&gt;
		.. Buzón para dejar mensaje.&lt;br /&gt;
		.. Buzón para dejar mensaje por ocupado.&lt;br /&gt;
		.. Buzón para dejar mensaje por no contestación.&lt;br /&gt;
		.. Buzón para su gestión.&lt;br /&gt;
		.. Grupo de salto.&lt;br /&gt;
		.. Operadora.&lt;br /&gt;
		.. Cola de centralita.&lt;br /&gt;
	. COD_CLIENTE&lt;br /&gt;
	. EJE1_MSK (valor del eje1 asignado a la llamada)&lt;br /&gt;
	. CALLER_NAME&lt;br /&gt;
	. CALLER_NUM&lt;br /&gt;
	. DESTINO&lt;br /&gt;
&lt;br /&gt;
* El proceso de preenrutamiento consiste en seleccionar un único registro de la tabla CEN_PRE_RUTA y, con sus valores y con los valores de entrada al proceso, generar los datos de salida.&lt;br /&gt;
&lt;br /&gt;
* Un posible tipo de salida es &amp;quot;Volver a preenrutar&amp;quot;. Esto permite realimentar el proceso un máximo de &amp;quot;max_pre_ruta_regs&amp;quot; veces (en archivo .conf) para simplificar configuración. Sólo tiene sentido realimentar si se ha hecho alguna modificación en los datos de selección de registro, ya que en caso contrario se produciría un bucle que el proceso de preenrutamiento es capaz de detectar y evitar.&lt;br /&gt;
&lt;br /&gt;
* Para elegir el registro de CEN_PRE_RUTA, se tienen en cuenta los datos de entrada de la llamada, de modo que se cumpla con todos los puntos siguientes:&lt;br /&gt;
&lt;br /&gt;
	. ID_CATEGORIA_ENT igual a la del dispositivo de entrada.&lt;br /&gt;
	. CALLER_NUM de entrada&lt;br /&gt;
		.. debe comenzar por la cadena C_ORIGEN_ENT_PREF o C_ORIGEN_ENT_PREF=NULL, con menos prioridad. Es conveniente rellenar este dato del modo más restrictivo que sea posible, independientemente de C_ORIGEN_ENT_EXPR. Ello permite disminuir el uso innecesario de recursos de evaluación de expresiones regulares.&lt;br /&gt;
		.. debe de tener un número de dígitos igual o superior a N_ORIGEN_ENT_MIN_DIGITOS, si este valor no es NULL o cero.&lt;br /&gt;
		.. debe de tener un número de dígitos igual o inferior a N_ORIGEN_ENT_MAX_DIGITOS, si este valor no es NULL o cero.&lt;br /&gt;
		.. debe cumplir la expresión regular C_ORIGEN_ENT_EXPR, si ésta no es NULL.&lt;br /&gt;
	. DNIS empiece con C_DESTINO_ENT_PREF o C_DESTINO_ENT_PREF=NULL. Es conveniente rellenar este dato del modo más restrictivo que sea posible, independientemente de C_DESTINO_ENT_EXPR. Ello permite disminuir el uso innecesario de recursos de evaluación de expresiones regulares.&lt;br /&gt;
	. Si varias entradas cumplen la condicion anterior, se prueba primero la que el campo C_DESTINO_ENT_PREF tenga una longitud mayor y, de entre éstas, la que C_ORIGEN_ENT_PREF tenga una longitud mayor.&lt;br /&gt;
	. DNIS tenga un número de dígitos igual o superior a N_DESTINO_ENT_MIN_DIGITOS, si este valor no es NULL o cero.&lt;br /&gt;
	. DNIS tenga un número de dígitos igual o inferior a N_ORIGEN_ENT_MIN_DIGITOS, si este valor no es NULL o cero.&lt;br /&gt;
	. DNIS cumpla la expresión regular C_DESTINO_ENT_EXPR, si ésta no es NULL.&lt;br /&gt;
	. El campo N_PCT_LLAMADAS define un porcentaje de llamadas aleatorio al que se puede aplicar el registro. Obviamente, si el valor es 100, se aplica siempre y si es 0 el registro no se usa nunca (deshabilitado).&lt;br /&gt;
&lt;br /&gt;
* Si no se encuentra ninguna entrada adecuada, quiere decir que es una llamada prohibida y se devuelve el tipo de destino &amp;quot;No existe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Puede conseguirse un destino &amp;quot;por defecto&amp;quot; diferente, creando una entrada que encaje siempre para cada categoría: C_ORIGEN_ENT, C_ORIGEN_ENT_MIN_DIGITOS, C_ORIGEN_ENT_MAX_DIGITOS, C_ORIGEN_ENT_EXPR, C_DESTINO_ENT_PREF, N_DESTINO_ENT_MIN_DIGITOS, N_DESTINO_ENT_MAX_DIGITOS y C_DESTINO_ENT_EXPR a valor NULL.&lt;br /&gt;
&lt;br /&gt;
* Una vez elegida una entrada, ésta puede transformar o sustituir el valor de ID_CATEGORIA, CALLER_NAME, CALLER_NUM, DESTINO, COD_CLIENTE y/o EJE1_MSK a la salida del proceso.&lt;br /&gt;
&lt;br /&gt;
* Si ID_CATEGORIA_SAL es cero, se propaga a la salida el valor de la entrada. En caso contrario, se sustituye.&lt;br /&gt;
&lt;br /&gt;
* Si C_CALLER_NAME está vacío, se mantiene el valor hubiese a la entrada. En caso contrario, se sustituye.&lt;br /&gt;
&lt;br /&gt;
* C_CALLER_NUM puede contener una cadena que identifica el nuevo CALLER_NUM. Además, si la cadena comienza por los caracteres que se indican, el significado es especial:&lt;br /&gt;
&lt;br /&gt;
	. &amp;quot;=&amp;quot; o cadena vacía, el nuevo CALLER_NUM es igual al de entrada al proceso.&lt;br /&gt;
	. &amp;quot;+&amp;quot; el nuevo CALLER_NUM es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo.&lt;br /&gt;
	. &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;.&lt;br /&gt;
	. &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al CALLER_NUM de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo CALLER_NUM de salida. Si la expresión regular no se cumpliese, se propagará el valor de entrada al proceso.&lt;br /&gt;
	. cualquier otro valor del primer carácter determina que es una constante que sustituye el valor a la entrada.&lt;br /&gt;
&lt;br /&gt;
* Cada vez que se utilice un registro de CEN_PRE_RUTA, se incrementará el valor de N_CONTA si el valor de N_UMBRAL es mayor que cero.&lt;br /&gt;
&lt;br /&gt;
* Un valor N_UMBRAL mayor que cero permite modificar el destino de salida cuando el valor de actual de N_CONTA (antes de incrementarse) supere o sea igual el valor de N_UMBRAL. Si se cumple la condicion indicada, se usa como destino tras el preenrutamiento, los valores de los campos E_TIPO_DESTINO_SAL_2 y C_DESTINO_SAL_2.&lt;br /&gt;
&lt;br /&gt;
* Si el valor de N_UMBRAL es menor o igual a cero o si N_CONTA es inferior a N_UMBRAL, se usa como destino tras el preenrutamiento, los valores de los campos E_TIPO_DESTINO_SAL_1 y C_DESTINO_SAL_1.&lt;br /&gt;
&lt;br /&gt;
* Con este mecanismo de N_CONTA y N_UMBRAL, se pretende facilitar el discriminar a los llamantes reincidentes, cuando sea necesario.&lt;br /&gt;
&lt;br /&gt;
* Un proceso periódico externo debe encargarse de poner a cero o decrementar el valor de N_CONTA.&lt;br /&gt;
&lt;br /&gt;
* Como resultado de los procesos de filtrado y de verificación anteriores, se habrá obtenido un TIPO_DESTINO_SAL y un C_DESTINO_SAL a partir de los campos con sufijo &amp;quot;_1&amp;quot; o &amp;quot;_2&amp;quot;, con una metodología similar al caso C_CALLER_NUM.&lt;br /&gt;
&lt;br /&gt;
* C_DESTINO_SAL_x puede contener cadena que permite obtener el nuevo destino. Además, si la cadena comienza por los caracteres que se indican, el significado es especial:&lt;br /&gt;
&lt;br /&gt;
	. &amp;quot;=&amp;quot; o cadena vacía, el nuevo destino es igual al de entrada al proceso.&lt;br /&gt;
	. &amp;quot;+&amp;quot; el nuevo destino es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo.&lt;br /&gt;
	. &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;.&lt;br /&gt;
	. &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al destino de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo destino de salida. Si la expresión regular no se cumpliese, quiere decir que es una llamada prohibida y se encaminará hacia una facilidad por defecto.&lt;br /&gt;
	. cualquier otro valor del primer carácter determina que es una constante que sustituye el valor a la entrada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Información de salida del proceso de preenrutamiento: Cuando TIPO_DESTINO_SAL_x toma los valores que se indican, el proceso global de enrutamiento sólo requiere de preenrutamiento y la información a devolver se obtiene dependiendo de TIPO_DESTINO_SAL_x:&lt;br /&gt;
&lt;br /&gt;
	. No existe: Se asume que no se conoce un destino para los datos de entrada, por lo que la llamada se encamina hacia una facilidad por defecto que gestiona su tratamiento.&lt;br /&gt;
&lt;br /&gt;
	. Extensión: A partir de las tablas CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar la extensión en el nodo principal y en el secundario.&lt;br /&gt;
&lt;br /&gt;
	. Facilidad: A partir de las tablas CEN_DISPOSITIVOS, CEN_FACILIDADES y CEN_NODOS.&lt;br /&gt;
&lt;br /&gt;
	. Usuario de telefonía corporativa: A partir de las tablas CEN_USUARIOS, CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar al usuario en el nodo principal y en el secundario de la extensión que corresponde en base a movilidad, con prioridad, o en base a propiedad.  El caso de movilidad no se tiene en cuenta si el proceso de enrutamiento se realiza en &amp;quot;modo supervivencia&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
	. Sala conferencia: A partir de las tablas CEN_SALAS_CONFERENCIAS y CEN_NODOS.&lt;br /&gt;
&lt;br /&gt;
	. Agente de ACD: A partir de las tablas ACD_USUARIOS, DAT_TR_ACD_EXTENSIONES, CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar al agente en el nodo principal y en el secundario.&lt;br /&gt;
&lt;br /&gt;
	. VDN: A partir de las tablas ACD_VDN y CEN_NODOS, se devolverán los valores que permiten alcanzar al VDN en su nodo.&lt;br /&gt;
&lt;br /&gt;
	. Grupo ACD: A partir de las tablas ACD_COLAS y CEN_NODOS, se devolverán los valores que permiten alcanzar al grupo ACD en su nodo.&lt;br /&gt;
&lt;br /&gt;
	. VDN de Centralita: A partir de las tablas CEN_VDN y CEN_NODOS, se devolverán los valores que permiten alcanzar al VDN en su nodo.&lt;br /&gt;
&lt;br /&gt;
	. Cola de Centralita: A partir de las tablas CEN_COLAS y CEN_NODOS, se devolverán los valores que permiten alcanzar al grupo ACD en su nodo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* El campo B_ENRU_SEGMENTO de la tabla CEN_PRE_RUTA indica al proceso de preenrutamiento que es preciso generar un segmento en DAT_SEGMENTOS y CEN_SEGMENTOS. En el segmento generado, se rellena el campo C_ETIQUETA1 del nuevo segmento con el valor que contiene el campo homónimo del registro asociado en la tabla CEN_LISTA_PRE_RUTAS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Fase enrutamiento===&lt;br /&gt;
&lt;br /&gt;
Fase de enrutamiento en casos en que el destino no es externo:&lt;br /&gt;
&lt;br /&gt;
* Datos de entrada al proceso de enrutamiento externo: iguales a los de salida del proceso de preenrutamiento (pdPreSale), uniéndose a éstos los datos globales de entrada al proceso (pdEntr).&lt;br /&gt;
&lt;br /&gt;
* Datos de salida de la fase de enrutamiento: iguales que los del proceso global de enrutamiento (pdSale).&lt;br /&gt;
&lt;br /&gt;
* Específicamente y sólo para los casos en que el destino es una extensión (tipo de destino extensión, usuario de telefonía corporativa o agente) es cuando son válidod los datos correspondientes al buzón asociado y los datos de los posibles desvíos previstos.&lt;br /&gt;
&lt;br /&gt;
* También en este caso, se prevén dos posibles rutas, una se corresponde con el acceso a la extensión en el nodo principal de ésta y la otra en el nodo secundario.&lt;br /&gt;
&lt;br /&gt;
* En el resto de tipos de destino, sólo se prevé una ruta que puede incluir o no un enlace internodal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fase de enrutamiento en el caso de destino externo:&lt;br /&gt;
&lt;br /&gt;
* Datos de entrada al proceso de enrutamiento externo: iguales a los de salida del proceso de preenrutamiento (pdPreSale), uniéndose a éstos los datos globales de entrada al proceso (pdEntr).&lt;br /&gt;
&lt;br /&gt;
* Datos de salida de la fase de enrutamiento: iguales que los del proceso global de enrutamiento (pdSale). &lt;br /&gt;
&lt;br /&gt;
* Se elige los primeros &amp;quot;max_ruta&amp;quot; registros (configurado en archivo .conf) en CEN_DESTINOS_EXTERNOS unido con CEN_RELACION_DESTINOS_ENLACES_EXTERNOS que, teniendo en cuenta los datos de entrada al proceso de enrutamiento, cumpla con todos los puntos siguientes:&lt;br /&gt;
&lt;br /&gt;
	. ID_CATEGORIA_ENT igual a la de salida del proceso de preenrutamiento.&lt;br /&gt;
	. C_DESTINO_SAL de proceso de preenrutamiento empiece con C_DESTINO_ENT_PREF.&lt;br /&gt;
	. Si varias entradas cumplen la condicion anterior, se prueba primero la que el campo C_DESTINO_ENT_PREF tenga una longitud mayor.&lt;br /&gt;
	. C_DESTINO_SAL tenga un número de dígitos igual o superior a N_DESTINO_ENT_MIN_DIGITOS, si este valor no es NULL o cero.&lt;br /&gt;
	. C_DESTINO_SAL tenga un número de dígitos igual o inferior a N_DESTINO_ENT_MAX_DIGITOS, si este valor no es NULL o cero.&lt;br /&gt;
	. C_DESTINO_SAL cumpla la expresión regular C_DESTINO_ENT_EXPR, si ésta no es NULL.&lt;br /&gt;
&lt;br /&gt;
* Aparte de la longitud del campo C_DESTINO_ENT_PREF, se usa N_PRIORIDAD como campo para ordenar los registros y seleccionar lo &amp;quot;max_ruta&amp;quot; primeros.&lt;br /&gt;
&lt;br /&gt;
* Una vez que un registro es válido, se descartan todos los registros cuyo C_DESTINO_ENT_PREF es diferente del primero seleccionado.&lt;br /&gt;
&lt;br /&gt;
* Como resultado de los procesos de filtrado y de verificación anteriores, se habrá obtenido hasta un máximo de &amp;quot;max_rutas&amp;quot; valores para posibles rutas. Las posibles propagaciones y transformaciones en los datos de cada ruta son función de los datos de cada registro seleccionado:&lt;br /&gt;
&lt;br /&gt;
* CALLER_NAME_nn: Si C_CALLER_NAME está vacío, se propaga el valor de entrada. En caso contrario, se sustituye.&lt;br /&gt;
&lt;br /&gt;
* CALLER_NUM_nn: Sale de C_CALLER_NUM que puede contener una cadena que identifica el nuevo CALLER_NUM_n. Además, si C_CALLER_NUM comienza por los caracteres que se indican, el significado es especial:&lt;br /&gt;
&lt;br /&gt;
	. &amp;quot;=&amp;quot; o cadena vacía, el nuevo CALLER_NUM_nn es igual al de entrada al proceso.&lt;br /&gt;
	. &amp;quot;+&amp;quot; el nuevo CALLER_NUM_nn es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo.&lt;br /&gt;
	. &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;.&lt;br /&gt;
	. &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al CALLER_NUM de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo CALLER_NUM de salida. Si la expresión regular no se cumpliese, se propaga el valor de entrada al proceso.&lt;br /&gt;
	. &amp;quot;&amp;gt;&amp;quot; Si existe valor para CALLER_NUM_EXTERNO, se propagará éste a la salida. En caso contrario y si no está vacía la cadena que queda al eliminar el prefijo &amp;quot;&amp;gt;&amp;quot;, se susituye en la salida por el valor de la cadena sin prefijo. Si la cadena estuviese únicamente constituida por el valor &amp;quot;&amp;gt;&amp;quot;, se propaga el valor de entrada.&lt;br /&gt;
	. cualquier otro valor del primer carácter determina que es una constante sin ninguna modificación.&lt;br /&gt;
&lt;br /&gt;
* C_DESTINO_SAL_nn: Se obtiene a partir de C_DESTINO_SAL que puede contener una cadena que identifica el nuevo destino. Además, si la cadena comienza por los caracteres que se indican, el significado es especial:&lt;br /&gt;
&lt;br /&gt;
	. &amp;quot;=&amp;quot; o cadena vacía, el nuevo destino es igual al de entrada al proceso.&lt;br /&gt;
	. &amp;quot;+&amp;quot; el nuevo destino es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo.&lt;br /&gt;
	. &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;.&lt;br /&gt;
	. &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al destino de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo destino de salida. Si la expresión regular no se cumpliese, se propaga el valor de entrada al proceso.&lt;br /&gt;
	. cualquier otro valor del primer carácter determina que es una constante sin ninguna modificación.&lt;br /&gt;
&lt;br /&gt;
* RUTA_NODO_nn: Sólo se usa si el nodo de salida es diferente del nodo de entrada. Contiene la cadena de marcación para ir la nodo que soporta DESTINO_SAL_nn. Sale del campo C_FORMATO_DIAL (sustituyendo variables) correspondiente al tipo de dispositivo del enlace exterior.&lt;br /&gt;
&lt;br /&gt;
* RUTA_SAL_nn: Es el campo C_DATO_ASTERISK obtenido a partir del registro en la tabla CEN_ENLACE_EXTERIOR que se corresponde con ID_ENLACE_EXTERIOR de la tabla CEN_RELACION_DESTINOS_ENLACES_EXTERNOS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Variables de salida globales para el dialplan (todos los nombres tienen prefijo &amp;quot;__&amp;quot;):&lt;br /&gt;
  . SPRV: 0/1 indica si el proceso se ejecuta en modo supervivencia.&lt;br /&gt;
  . ID_SEGM: ID del segmento generado.&lt;br /&gt;
  . R_TIP_DESTINO&lt;br /&gt;
  . R_TIP_LLAM: (10: saliente, 20: entrante, 30: interior, 40: transito).&lt;br /&gt;
  . R_PARA: indica el destino solicitado cuando es distinto del alcanzado (ej.: usuario).&lt;br /&gt;
  . R_PARA_NAME: nombre del destino solicitado.&lt;br /&gt;
  . R_CODCLI: codigo de cliente.&lt;br /&gt;
  . R_EJE1&lt;br /&gt;
  . R_DESV_NC (MENSA si desvio a mensajeria) (solo si destino extension o usuario).&lt;br /&gt;
  . R_DESV_OCUP (MENSA si desvio a mensajeria) (solo si destino extension o usuario).&lt;br /&gt;
  . R_DESV_FSER (MENSA si desvio a mensajeria) (solo si destino extension o usuario).&lt;br /&gt;
  . R_BUZON (solo si destino extension o usuario).&lt;br /&gt;
  . R_RUT_ND_BZ (solo si destino extension o usuario).&lt;br /&gt;
&lt;br /&gt;
* Variables de ruta nn para el dialplan:&lt;br /&gt;
  . R_ABDE_nn: ancho de banda del dispositivo de entrada.&lt;br /&gt;
  . R_ABNE_nn: ancho de banda del nodo de entrada.&lt;br /&gt;
  . R_ABDS_nn: ancho de banda del dispositico de salida.&lt;br /&gt;
  . R_ABNS_nn: ancho de banda del nodo de salida.&lt;br /&gt;
  . R_GB_nn: 0(no) 1(sinPito) 2(conPito) 1000(descartar) modo grabacion.&lt;br /&gt;
  . R_CID_NAME_nn&lt;br /&gt;
  . R_CID_NUM_nn&lt;br /&gt;
  . R_DEST_nn&lt;br /&gt;
  . R_RUT_NODO_nn&lt;br /&gt;
  . R_RUT_SAL_nn&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Intz-nimitz&amp;diff=5923</id>
		<title>Intz-nimitz</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Intz-nimitz&amp;diff=5923"/>
		<updated>2017-06-02T11:38:17Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* Parámetros */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Descripción==&lt;br /&gt;
Entrono creado para ser invocado desde el dialplan de asterisk mediante el MDintz.&lt;br /&gt;
&lt;br /&gt;
Este entorno proporciona servicios para el acceso a la BD nimitz, enrutamiento y expresiones regulares con la aplicación mdintz.&lt;br /&gt;
&lt;br /&gt;
Para mas información consultar la página de [[MDintz|MDintz]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Formato invocación===&lt;br /&gt;
&lt;br /&gt;
Formato de comando en dialplan de asterisk (el separador ',' puede ser sustituido por '|'):&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  MDintz(&amp;lt;entorno(nimitz)&amp;gt;,&amp;lt;servicio&amp;gt;,&amp;lt;comando&amp;gt;,&amp;lt;par1&amp;gt;,&amp;lt;par2&amp;gt;,...,&amp;lt;parN&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Formato de comando en CLI de asterisk:&lt;br /&gt;
  mdintz qry &amp;lt;nHostFijo(*,0..3)&amp;gt; &amp;lt;entorno(nimitz)&amp;gt; &amp;lt;servicio&amp;gt; &amp;lt;comando&amp;gt; &amp;lt;par1&amp;gt; &amp;lt;par2&amp;gt;...&amp;lt;parN&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Retornos generales===&lt;br /&gt;
&lt;br /&gt;
Cuando un retorno comienza por el caracter &amp;quot;+&amp;quot;, indica a app_mdintz que debe reintentar en otro intz-nimitz.&lt;br /&gt;
&lt;br /&gt;
Retornos genericos en ${MDintzRes}:&lt;br /&gt;
&lt;br /&gt;
  '''+curro_congestion'''&lt;br /&gt;
  Hay demasiados trabajos encolados a la espera de ejecucion.&lt;br /&gt;
&lt;br /&gt;
  '''curro_error_param'''&lt;br /&gt;
  El numero de parametros es incorrecto o el comando es desconocido.&lt;br /&gt;
&lt;br /&gt;
  '''curro_cmd_desconocido'''&lt;br /&gt;
  El comando solicitado es desconocido.&lt;br /&gt;
&lt;br /&gt;
  '''curro_supervivencia'''&lt;br /&gt;
  No se puede ejecutar en modo supervivencia.&lt;br /&gt;
&lt;br /&gt;
  '''+mysql_fuera_servicio'''&lt;br /&gt;
  No hay conexion con la base de datos.&lt;br /&gt;
&lt;br /&gt;
  '''mysql_error_ejec'''&lt;br /&gt;
  Se ha producido algun error en la ejecucion de sentencias SQL.&lt;br /&gt;
&lt;br /&gt;
  '''+mysql_temporizador'''&lt;br /&gt;
  Cumplido temporizador sin recibir respuesta de la base de datos.&lt;br /&gt;
&lt;br /&gt;
==Servicio ping==&lt;br /&gt;
&lt;br /&gt;
Servicio de prueba &amp;quot;ping&amp;quot; (no requiere de comando):&lt;br /&gt;
===Retornos===&lt;br /&gt;
&lt;br /&gt;
en ${MDintzRes}: &lt;br /&gt;
&lt;br /&gt;
  '''pong'''&lt;br /&gt;
&lt;br /&gt;
==Servicio BD==&lt;br /&gt;
&lt;br /&gt;
Comandos del servicios &amp;quot;bd&amp;quot; soportados por intz-nimitz:&lt;br /&gt;
&lt;br /&gt;
===dameModoSupervivencia===&lt;br /&gt;
&lt;br /&gt;
  Devuelve si el servicio trabaja en modo supervivencia.&lt;br /&gt;
  Espera resultado.&lt;br /&gt;
  Retorno en ${MDintzRes}:&lt;br /&gt;
    .. OK El servicio no esta en modo supervivencia.&lt;br /&gt;
    .. curro_supervivencia El servicio esta en modo supervivencia.&lt;br /&gt;
&lt;br /&gt;
===segmInsertColaVDN===&lt;br /&gt;
  Inserta un registro en DAT_SEGMENTOS de tipo &amp;quot;grupoACD&amp;quot; y actualiza acumulados mediante ACD_PROC_ACUMULADO.&lt;br /&gt;
  No espera resultado.&lt;br /&gt;
&lt;br /&gt;
====Parámetros====&lt;br /&gt;
&lt;br /&gt;
  . par1 (QUEUESTATUS). ${QUEUESTATUS} de retorno de comando &amp;quot;Queue&amp;quot;:&lt;br /&gt;
    .. CONNECT&lt;br /&gt;
    .. ABANDONED&lt;br /&gt;
    .. TIMEOUT&lt;br /&gt;
    .. FULL&lt;br /&gt;
    .. JOINEMPTY&lt;br /&gt;
    .. JOINUNAVAIL&lt;br /&gt;
    .. LEAVEEMPTY&lt;br /&gt;
    .. LEAVEUNAVAIL&lt;br /&gt;
  . par2 (N_DURACION).&lt;br /&gt;
  . par3 (C_ORIGEN).&lt;br /&gt;
  . par4 (C_DESTINO).&lt;br /&gt;
  . par5 (C_UCID).&lt;br /&gt;
  . par6 (C_COLA).&lt;br /&gt;
  . par7 (C_VDN).&lt;br /&gt;
  . par8 (C_VDN_DESDE).&lt;br /&gt;
  . par9 (C_VDN_HACIA).&lt;br /&gt;
  . par10 (C_EXTENSION).&lt;br /&gt;
  . par11 (SERA_DESCONECTADA).&lt;br /&gt;
  . par12 (DESDE_OTRO_GRUPO_ACD).&lt;br /&gt;
  . par13 (C_EJE1_MASCARA).&lt;br /&gt;
&lt;br /&gt;
====Retornos====&lt;br /&gt;
&lt;br /&gt;
  Retornos posibles (además del los genéricos) en ${MDintzRes}:&lt;br /&gt;
&lt;br /&gt;
    .. OK Todo correcto.&lt;br /&gt;
&lt;br /&gt;
===llamGwInsert===&lt;br /&gt;
&lt;br /&gt;
  . Servicio de insercion en DAT_LLAMADAS para gateway.&lt;br /&gt;
  . Lo primero se comprueba si el registro ya existe en base a C_UCID.&lt;br /&gt;
  . Si ya existe y es saliente, se acutaliza.&lt;br /&gt;
  . Si no existe, se inserta un nuevo registro.&lt;br /&gt;
  . No espera resultado.&lt;br /&gt;
&lt;br /&gt;
====Parámetros====&lt;br /&gt;
&lt;br /&gt;
  . par1 (C_ORIGEN).&lt;br /&gt;
  . par2 (C_DESTINO).&lt;br /&gt;
  . par3 (C_UCID).&lt;br /&gt;
  . par4 (E_TIPO_LLAMADA).&lt;br /&gt;
  . par5 (ID_NODO_GW).&lt;br /&gt;
  . par6 (N_PRIMARIO).&lt;br /&gt;
  . par7 (N_CANAL_PRIMARIO).&lt;br /&gt;
  . par8 (C_CALLERID).&lt;br /&gt;
&lt;br /&gt;
====Retornos====&lt;br /&gt;
&lt;br /&gt;
  . Retornos posibles (ademas del los genericos) en ${MDintzRes}:&lt;br /&gt;
    .. OK Todo correcto.&lt;br /&gt;
&lt;br /&gt;
===llamGwUpdateIn===&lt;br /&gt;
&lt;br /&gt;
  . Cierra un registro en DAT_LLAMADAS desde la gateway en el caso de llamada entrante.&lt;br /&gt;
  . No espera resultado.&lt;br /&gt;
&lt;br /&gt;
====Parámetros====&lt;br /&gt;
  . par1 (C_UCID).&lt;br /&gt;
&lt;br /&gt;
====Retornos====&lt;br /&gt;
&lt;br /&gt;
  . Retornos posibles (ademas del los genericos) en ${MDintzRes}:&lt;br /&gt;
    .. OK Todo correcto.&lt;br /&gt;
&lt;br /&gt;
===llamGwUpdateOut===&lt;br /&gt;
&lt;br /&gt;
  . Cierra un registro en DAT_LLAMADAS desde la gateway en el caso de llamada saliente.&lt;br /&gt;
  . No espera resultado.&lt;br /&gt;
&lt;br /&gt;
====Parámetros====&lt;br /&gt;
&lt;br /&gt;
  . par1 (ID_NODO_GW).&lt;br /&gt;
  . par2 (N_PRIMARIO).&lt;br /&gt;
  . par3 (N_CANAL_PRIMARIO).&lt;br /&gt;
  . par4 (C_UCID).&lt;br /&gt;
&lt;br /&gt;
====Retornos====&lt;br /&gt;
&lt;br /&gt;
  . Retornos posibles (ademas del los genericos) en ${MDintzRes}:&lt;br /&gt;
    .. OK Todo correcto.&lt;br /&gt;
&lt;br /&gt;
===agenAexten===&lt;br /&gt;
&lt;br /&gt;
  . Traduce un identificador numerico que es un posible agente ACD&lt;br /&gt;
  . al identificador de la extension en que esta conectado.&lt;br /&gt;
  . Si no es un agente o no esta conectado, devuelve el mismo valor sin traducir.&lt;br /&gt;
  . Espera resultado.&lt;br /&gt;
&lt;br /&gt;
====Parámetros====&lt;br /&gt;
&lt;br /&gt;
  . par1 (agente): Identificador numerico del agente.&lt;br /&gt;
&lt;br /&gt;
====Retornos====&lt;br /&gt;
&lt;br /&gt;
  . Retornos posibles (ademas del los genericos) en ${MDintzRes}:&lt;br /&gt;
    .. OK Todo correcto. Se devuelve el dato solicitado en ${extAgen}.&lt;br /&gt;
  . Retorno en ${extAgen} (solo si ${MDintzRes}=OK):&lt;br /&gt;
    .. Extension en que se encuentra conectado el agente o el valor de entrada sin traducir.&lt;br /&gt;
&lt;br /&gt;
===colaConfig===&lt;br /&gt;
&lt;br /&gt;
  . Devuelve datos de configuracion de una cola. Lo usa app_queue.&lt;br /&gt;
  . Esta funcion es utilizada por app_queue. Por ello es muy importante el orden en que se generan las variables resultado.&lt;br /&gt;
  . Espera resultado.&lt;br /&gt;
&lt;br /&gt;
====Parámetros====&lt;br /&gt;
&lt;br /&gt;
  . par1 (COLA).&lt;br /&gt;
&lt;br /&gt;
====Retornos====&lt;br /&gt;
&lt;br /&gt;
  . Retornos posibles (ademas del los genericos) en ${MDintzRes}:&lt;br /&gt;
    .. OK Todo correcto. Se devuelven los datos solicitados.&lt;br /&gt;
  . Retorno en ${objServ} (solo si ${MDintzRes}=OK): Objetivo de servicio configurado.&lt;br /&gt;
  . Retorno en ${pesoObjServ} (solo si ${MDintzRes}=OK): Peso configurado.&lt;br /&gt;
&lt;br /&gt;
===sqlDato===&lt;br /&gt;
&lt;br /&gt;
  . Devuelve el primer campo del primer registro obtenido en una consulta SQL.&lt;br /&gt;
  . Espera resultado.&lt;br /&gt;
&lt;br /&gt;
====Parámetros====&lt;br /&gt;
&lt;br /&gt;
  . par1 (sql): consulta SQL.&lt;br /&gt;
&lt;br /&gt;
====Retornos====&lt;br /&gt;
&lt;br /&gt;
  . Retornos posibles (ademas del los genericos) en ${MDintzRes}:&lt;br /&gt;
    .. OK Todo correcto. Se devuelve el dato solicitado en ${sqlDato}.&lt;br /&gt;
  . Retorno en ${sqlDato}:&lt;br /&gt;
    .. Valor del primer campo del primer registro resultado de la consulta SQL (solo si OK).&lt;br /&gt;
&lt;br /&gt;
===sqlModiDato===&lt;br /&gt;
&lt;br /&gt;
  . Igual al anterior. Debe usarse cuando la sentencia sql llama funcion que modifica datos.&lt;br /&gt;
&lt;br /&gt;
===sqlSinEspera===&lt;br /&gt;
&lt;br /&gt;
  . Ejecuta una sentencia SQL y devuelve el control sin esperar ni devolver el resultado.&lt;br /&gt;
  . No espera resultado.&lt;br /&gt;
&lt;br /&gt;
====Parámetros====&lt;br /&gt;
&lt;br /&gt;
  . par1 (sql): consulta SQL.&lt;br /&gt;
&lt;br /&gt;
====Retornos====&lt;br /&gt;
&lt;br /&gt;
  . Retornos posibles (ademas del los genericos) en ${MDintzRes}:&lt;br /&gt;
    .. OK Todo correcto.&lt;br /&gt;
&lt;br /&gt;
===validaDato===&lt;br /&gt;
&lt;br /&gt;
  . Se valida una clave contra una clave cifrada.&lt;br /&gt;
&lt;br /&gt;
====Parámetros====&lt;br /&gt;
&lt;br /&gt;
  . par1 (clave)&lt;br /&gt;
  . par2 (clave_cifrada)&lt;br /&gt;
&lt;br /&gt;
====Retornos====&lt;br /&gt;
&lt;br /&gt;
  . Retornos posibles (ademas del los genericos) en ${MDintzRes}:&lt;br /&gt;
    .. OK: Todo correcto.&lt;br /&gt;
    .. KO: Clave erronea.&lt;br /&gt;
&lt;br /&gt;
===validaAcceso===&lt;br /&gt;
&lt;br /&gt;
  . Se valida un acceso a un objeto del tipo que se indica del modo previsto para el dialplan.&lt;br /&gt;
&lt;br /&gt;
====Parámetros====&lt;br /&gt;
&lt;br /&gt;
  . par1 (tipo_objeto):&lt;br /&gt;
    .. buzon: se valida con la clave de buzon o la del usuario, si lo tiene asignado.&lt;br /&gt;
    .. usuario: se valida con el login numerico del usuario.&lt;br /&gt;
    .. conferencia_usuario: se valida con el pin de usuario.&lt;br /&gt;
    .. conferencia_admin: se valida con el pin de administracion.&lt;br /&gt;
    .. agente&lt;br /&gt;
  . par2 (login)&lt;br /&gt;
  . par3 (clave)&lt;br /&gt;
&lt;br /&gt;
====Retornos====&lt;br /&gt;
&lt;br /&gt;
  . Retornos posibles (ademas del los genericos) en ${MDintzRes}:&lt;br /&gt;
    .. OK: Todo correcto.&lt;br /&gt;
    .. KO: Login o clave erroneo.&lt;br /&gt;
    .. error_tipo_objeto: Tipo de objeto desconocido.&lt;br /&gt;
&lt;br /&gt;
===modificaClaveBuzon===&lt;br /&gt;
&lt;br /&gt;
  . Se modifica la clave de un buzon para invocar desde mensajeria. Esta puede estar en:&lt;br /&gt;
    .. CEN_USUARIOS.C_CLAVE_NUMERICA si:&lt;br /&gt;
      ... MEN_BUZONES.ID_USUARIO&amp;gt;0, existe y ya tiene clave; y&lt;br /&gt;
      ... MEN_BUZONES.C_CLAVE is NULL&lt;br /&gt;
    .. MEN_BUZONES.C_CLAVE en el caso de que no se de alguna de las condiciones anteriores y&lt;br /&gt;
      ... MEN_BUZONES.C_CLAVE is not NULL&lt;br /&gt;
  . O sea, nunca modifica una clave que previamente tenga un valor NULL&lt;br /&gt;
  . No se puede ejecutar si esta en modo supervivencia.&lt;br /&gt;
&lt;br /&gt;
====Parámetros====&lt;br /&gt;
&lt;br /&gt;
  . par1 (buzon)&lt;br /&gt;
  . par2 (clave_nueva)&lt;br /&gt;
&lt;br /&gt;
====Retornos====&lt;br /&gt;
&lt;br /&gt;
  . Retornos posibles (ademas del los genericos) en ${MDintzRes}:&lt;br /&gt;
    .. OK: Todo correcto.&lt;br /&gt;
    .. error_buzon: No se encuentra el buzon indicado.&lt;br /&gt;
    .. error_no_clave: El buzon no tiene clave y no tiene usuario o este no tiene clave.&lt;br /&gt;
&lt;br /&gt;
===extenEntraUsuarioMovil===&lt;br /&gt;
&lt;br /&gt;
  . Un usuario de centralita ejerce la movilidad sobre una extension.&lt;br /&gt;
  . Espera resultado.&lt;br /&gt;
  . No se puede ejecutar si esta en modo supervivencia.&lt;br /&gt;
&lt;br /&gt;
====Parámetros====&lt;br /&gt;
&lt;br /&gt;
  . par1 (extension).&lt;br /&gt;
  . par2 (login). Identificador numerico del usuario de centralita.&lt;br /&gt;
  . par3 (clave). Clave numerica del usuario de centralita.&lt;br /&gt;
  . par4 (auto_desconexion). Si el usuario esta en movilidad en otra extension, lo desconecta. Puede tomar los valores 0 y 1; y que, en caso de tomar valor 1 y asumiendo que un usuario desea conectarse en movilidad a una extensión pero, está conectado en otra; es desconectado de la última en la misma operación de conexión a la solicitada&lt;br /&gt;
&lt;br /&gt;
====Retornos====&lt;br /&gt;
&lt;br /&gt;
  . Retornos posibles (ademas del los genericos) en ${MDintzRes}:&lt;br /&gt;
    .. OK Todo correcto. Se devuelven datos de reaprovisionamiento.&lt;br /&gt;
    .. movil_error_login El identificador numerico de usuario no es valido.&lt;br /&gt;
    .. movil_error_datos Falta algun dato imprescindible en la base de datos.&lt;br /&gt;
    .. movil_ya_login El usuario ya ha ejercido la movilidad en la extension ${MOVIL_EXTEN}.&lt;br /&gt;
    .. movil_usu_no_ejes No se encuentran valores para los ejes asignados al usuario.&lt;br /&gt;
    .. movil_error_clave La clave numerica no es correcta.&lt;br /&gt;
    .. movil_error_exten No existe la extension indicada.&lt;br /&gt;
    .. movil_exten_no_movil La extension indicada no esta configurada para movilidad.&lt;br /&gt;
    .. movil_exten_ya_asignada El usuario ya ha ejercido la movilidad en la extension indicada.&lt;br /&gt;
    .. movil_exten_propietario El usuario es el propietario de la extension y no tiene asignado usuario en movilidad.&lt;br /&gt;
    .. movil_exten_error_ejes El usuario no puede ejercer la movilidad en la extension por asignacion de ejes.&lt;br /&gt;
  . Retorno en ${MOVIL_EXTEN} (solo si ${MDintzRes}=movil_ya_login):&lt;br /&gt;
    .. Indica la extension en la que el usuario ya ha ejercido la movilidad.&lt;br /&gt;
  . Retorno en ${MOVIL_TIPO_RESET} (solo si ${MDintzRes}=OK):&lt;br /&gt;
    .. Devuelve el procedimiento de reaprovisionamiento. Posibles valores:&lt;br /&gt;
      ... 10: Noficacion SIP.&lt;br /&gt;
  . Retorno en ${MOVIL_CAD_RESET} (solo si ${MDintzRes}=OK):&lt;br /&gt;
    .. Devuelve una cadena que tiene un significado relacionado con el procedimiento de reaprovisionamiento.&lt;br /&gt;
&lt;br /&gt;
===extenSaleUsuarioMovil===&lt;br /&gt;
&lt;br /&gt;
  . Desde una extension, se anula la situacion de movilidad previamente establecida.&lt;br /&gt;
  . Espera resultado.&lt;br /&gt;
  . No se puede ejecutar si esta en modo supervivencia.&lt;br /&gt;
&lt;br /&gt;
====Parámetros====&lt;br /&gt;
&lt;br /&gt;
  . par1 (extension).&lt;br /&gt;
&lt;br /&gt;
====Retornos====&lt;br /&gt;
&lt;br /&gt;
  . Retornos posibles (ademas del los genericos) en ${MDintzRes}:&lt;br /&gt;
    .. OK Todo correcto. Se devuelven datos de reaprovisionamiento.&lt;br /&gt;
    .. movil_error_datos Falta algun dato imprescindible en la base de datos.&lt;br /&gt;
    .. movil_error_exten No existe la extension indicada.&lt;br /&gt;
    .. movil_exten_propietario La extension no tiene asignado usuario en movilidad.&lt;br /&gt;
  . Retorno en ${MOVIL_TIPO_RESET} (solo si ${MDintzRes}=OK):&lt;br /&gt;
    .. Devuelve el procedimiento de reaprovisionamiento. Posibles valores:&lt;br /&gt;
      ... 10: Noficacion SIP.&lt;br /&gt;
  . Retorno en ${MOVIL_CAD_RESET} (solo si ${MDintzRes}=OK):&lt;br /&gt;
    .. Devuelve una cadena que tiene un significado relacionado con el procedimiento de reaprovisionamiento.&lt;br /&gt;
&lt;br /&gt;
===enrutar=== &lt;br /&gt;
&lt;br /&gt;
(simulacion por comando y sin grabar segmentos de preenrutamiento)&lt;br /&gt;
&lt;br /&gt;
===enrutarReal===&lt;br /&gt;
&lt;br /&gt;
(se generan segmentos de preenrutamiento)&lt;br /&gt;
&lt;br /&gt;
  . El dialplan envia una solicitud de enrutamiento al iniciarse una llamada desde dispositivo (llamada entrante) o desde un grupo ACD de llamadas salientes.&lt;br /&gt;
  . Espera resultado.&lt;br /&gt;
&lt;br /&gt;
====Parámetros====&lt;br /&gt;
&lt;br /&gt;
  . par1 (TIPO_ORIGEN): Enumerado TTipoEnrutamiento.&lt;br /&gt;
    .. tipoEnrutamiento_idDispositivo = 10.&lt;br /&gt;
    .. tipoEnrutamiento_idCola = 20.&lt;br /&gt;
  . par2 (ORIGEN): En funcion del valor anterior, el origen de la llamada.&lt;br /&gt;
    .. Si TIPO_ORIGEN=tipoEnrutamiento_idDispositivo, ORIGEN=idDispositivo.&lt;br /&gt;
    .. Si TIPO_ORIGEN=tipoEnrutamiento_idCola, ORIGEN=idCola.&lt;br /&gt;
  . par3 (ID_NODO_ENT): ID del nodo de entrada de la llamada. Se simplifican consultas. Podria deducirse del dispositivo o del grupo ACD, pero seria indeterminado si:&lt;br /&gt;
    .. El origen es una extension y la llamada se efectua desde el nodo secundario.&lt;br /&gt;
  . par4 (UCID).&lt;br /&gt;
  . par5 (callerIdName).&lt;br /&gt;
  . par6 (callerIdNum).&lt;br /&gt;
  . par7 (DNIS).&lt;br /&gt;
  . par8 (desvioDialPlan). Permite solicitar datos para un  desvio cuando es requerido.&lt;br /&gt;
&lt;br /&gt;
====Retornos====&lt;br /&gt;
&lt;br /&gt;
  . Retornos posibles para ${MDintzRes}:&lt;br /&gt;
    .. enru_error_dispositivo&lt;br /&gt;
    .. enru_no_destino&lt;br /&gt;
    .. enru_no_pre_ruta&lt;br /&gt;
    .. enru_no_pre_nodo&lt;br /&gt;
    .. enru_bucle_pre_ruta&lt;br /&gt;
    .. enru_bucle_ruta&lt;br /&gt;
    .. enru_no_nodo&lt;br /&gt;
    .. enru_no_ruta&lt;br /&gt;
    .. enru_no_extension&lt;br /&gt;
    .. enru_no_usuario&lt;br /&gt;
    .. enru_no_agente&lt;br /&gt;
    .. enru_no_facilidad&lt;br /&gt;
    .. enru_no_vdn&lt;br /&gt;
    .. enru_no_cola&lt;br /&gt;
    .. enru_no_buzon&lt;br /&gt;
    .. enru_no_conferencia&lt;br /&gt;
    .. enru_no_cola_cen&lt;br /&gt;
&lt;br /&gt;
  . Variables de retorno comunes:&lt;br /&gt;
    .. R_TIP_DESTINO&lt;br /&gt;
    .. R_PARA: indica el destino solicitado cuando es distinto del alcanzado (ej.: usuario)&lt;br /&gt;
    .. R_CODCLI: codigo de cliente&lt;br /&gt;
    .. R_EJE1&lt;br /&gt;
    .. R_DESV_NC (MENSA si desvio a mensajeria) (solo si destino extension o usuario)&lt;br /&gt;
    .. R_DESV_OCUP (MENSA si desvio a mensajeria) (solo si destino extension o usuario)&lt;br /&gt;
    .. R_DESV_FSER (MENSA si desvio a mensajeria) (solo si destino extension o usuario)&lt;br /&gt;
    .. R_BUZON (solo si destino extension o usuario)&lt;br /&gt;
    .. R_RUT_NODO_BUZON (solo si destino extension o usuario)&lt;br /&gt;
&lt;br /&gt;
  . Variables de ruta nn:&lt;br /&gt;
    .. R_ABDE_nn: ancho de banda del dispositivo de entrada.&lt;br /&gt;
    .. R_ABNE_nn: ancho de banda del nodo de entrada.&lt;br /&gt;
    .. R_ABDS_nn: ancho de banda del dispositico de salida.&lt;br /&gt;
    .. R_ABNS_nn: ancho de banda del nodo de salida.&lt;br /&gt;
    .. R_CID_NAME_nn&lt;br /&gt;
    .. R_CID_NUM_nn&lt;br /&gt;
    .. R_DEST_nn&lt;br /&gt;
    .. R_RUT_NODO_nn&lt;br /&gt;
    .. R_RUT_SAL_nn&lt;br /&gt;
&lt;br /&gt;
==Servicio regExpr==&lt;br /&gt;
&lt;br /&gt;
Comandos del servicios &amp;quot;regExpr&amp;quot; soportados por intz-nimitz:&lt;br /&gt;
&lt;br /&gt;
===sinSubCad===&lt;br /&gt;
&lt;br /&gt;
  . Empareja una expresion regular extendida con una cadena sin obtener subcadenas.&lt;br /&gt;
&lt;br /&gt;
====Parámetros====&lt;br /&gt;
&lt;br /&gt;
  . par1 (noCache). 0: se almacena la expresion regular en el cache. 1: no se almacena.&lt;br /&gt;
  . par2 (exprReg). Expresion regular.&lt;br /&gt;
  . par3 (cad). Cadena a verificar emparejamiento.&lt;br /&gt;
  . Espera resultado.&lt;br /&gt;
&lt;br /&gt;
====Retornos====&lt;br /&gt;
&lt;br /&gt;
  . Retornos posibles (ademas del los genericos) en ${MDintzRes}:&lt;br /&gt;
    .. OK Todo correcto y se verifica el emparejamiento.&lt;br /&gt;
    .. rxp_no_empareja Todo correcto, pero la cadena no se empareja.&lt;br /&gt;
    .. rxp_error Se produce algun tipo de error (ej.: la expresion no compila).&lt;br /&gt;
&lt;br /&gt;
===conSubCad===&lt;br /&gt;
&lt;br /&gt;
  . Empareja una expresion regular extendida con una cadena, obteniendo un maximo de 8 subcadenas.&lt;br /&gt;
  . Espera resultado.&lt;br /&gt;
&lt;br /&gt;
====Parámetros====&lt;br /&gt;
&lt;br /&gt;
  . par1 (noCache). 0: se almacena la expresion regular en el cache. 1: no se almacena.&lt;br /&gt;
  . par2 (exprReg). Expresion regular.&lt;br /&gt;
  . par3 (cad). Cadena a verificar emparejamiento.&lt;br /&gt;
&lt;br /&gt;
====Retornos====&lt;br /&gt;
&lt;br /&gt;
  . Retornos posibles (ademas del los genericos) en ${MDintzRes}:&lt;br /&gt;
    .. OK Todo correcto y se verifica el emparejamiento. Se obtienen subcadenas en otras variables.&lt;br /&gt;
    .. rxp_no_empareja Todo correcto, pero la cadena no se empareja y no hay subcadenas.&lt;br /&gt;
    .. rxp_error Se produce algun tipo de error (ej.: la expresion no compila).&lt;br /&gt;
  . Retorno en ${RXP_SUB_nn}: valor de la subexpresion enesima. Solo se da si antes OK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Proceso de enrutamiento==&lt;br /&gt;
&lt;br /&gt;
===Descripción===&lt;br /&gt;
&lt;br /&gt;
* Globalmente, el proceso de enrutamiento se compone de dos fases:&lt;br /&gt;
&lt;br /&gt;
	. La primera es el preenrutamiento, que trata toda clase de llamadas.&lt;br /&gt;
	. La segunda es el enrutamiento externo, que tiene módulos dedicados al enrutamiento hacia:&lt;br /&gt;
		.. enlaces externos.&lt;br /&gt;
		.. extensiones.&lt;br /&gt;
		.. usuarios de telefonía corporativa.&lt;br /&gt;
		.. facilidades.&lt;br /&gt;
		.. salas de conferencia.&lt;br /&gt;
		.. agentes de grupos ACD.&lt;br /&gt;
		.. grupos ACD.&lt;br /&gt;
		.. vdn.&lt;br /&gt;
		.. buzones para dejar mensaje.&lt;br /&gt;
		.. buzones para su gestión.&lt;br /&gt;
		.. grupo de salto.&lt;br /&gt;
		.. operadora.&lt;br /&gt;
		.. cola de centralita.&lt;br /&gt;
	. Puede ser realizado por un servicio que tiene conexión con la base de datos en tiempo real o, cuando se den problemas de disponibilidad de ésta o del servicio primario, en otro servicio que trabaja en &amp;quot;modo supervivencia&amp;quot; sobre una copia no actual de la base de datos.&lt;br /&gt;
&lt;br /&gt;
* Se asume que existen rutas directas entre todos los nodos de red.&lt;br /&gt;
&lt;br /&gt;
* Se asume que estan directamente enrutadas todas las direcciones IP involucradas, tanto nodos, como terminales.&lt;br /&gt;
&lt;br /&gt;
* Se asume que todas las facilidades estan disponibles en todos los nodos, aunque es posible que la implementación sea diferente entre ellos.&lt;br /&gt;
&lt;br /&gt;
* Los datos de entrada básicos al proceso de enrutamiento (pdEntr) son:&lt;br /&gt;
&lt;br /&gt;
	. TIPO_ORIGEN (TTipoEnrutamiento)&lt;br /&gt;
		.. TIPO_ID_DISPOSITIVO&lt;br /&gt;
		.. TIPO_ID_COLA&lt;br /&gt;
	. ID_ORIGEN&lt;br /&gt;
	. ID_NODO_ENT (no sirve el del dispositivo si se trata de una extensión en nodo secundario)&lt;br /&gt;
	. UCID&lt;br /&gt;
	. CALLER_ID_NAME&lt;br /&gt;
	. CALLER_ID_NUM&lt;br /&gt;
	. DNIS&lt;br /&gt;
	. DESVIO_DIALPLAN&lt;br /&gt;
&lt;br /&gt;
* Datos deducidos a partir de los anteriores&lt;br /&gt;
	. ID_SEDE_DISP_ENT (sede del dispositivo de entrada)&lt;br /&gt;
	. ID_SEDE_NODO_ENT (sede del nodo de entrada)&lt;br /&gt;
	. ANCHO_DE_BANDA_DISP (ancho de banda disponible en la sede del dispositivo)&lt;br /&gt;
	. ANCHO_DE_BANDA_NODO (ancho de banda disponible en la sede del nodo)&lt;br /&gt;
	. ID_CATEGORIA_ENT&lt;br /&gt;
	. EJE1_MSK (valor del eje1 asignado a la llamada)&lt;br /&gt;
	. CALLER_ID_NUM_EXTERNO (uso potencial en llamadas con destino externo)&lt;br /&gt;
	. HAY_GRABAR (en base a cola, extension, nodo o usuario origen)&lt;br /&gt;
&lt;br /&gt;
* Los datos de salida globales del proceso de enrutamiento (pdSale) son (todos los nombres tienen prefijo &amp;quot;__&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
	. SPRV (Si el proceso se ha realizado en modo supervivencia)&lt;br /&gt;
	. ID_SEGM (ID del segmento generado)&lt;br /&gt;
	. ID_CATEGORIA_SAL&lt;br /&gt;
	. COD_CLIENTE (opcional)&lt;br /&gt;
	. TIPO_DESTINO_SAL ( /* TTipoDestinoEnrutamiento */)&lt;br /&gt;
		.. No existe.&lt;br /&gt;
		.. Ruta externa.&lt;br /&gt;
		.. Extensión.&lt;br /&gt;
		.. Extension o (si falla la extensión) usuario.&lt;br /&gt;
		.. Usuario de telefonía corporativa.&lt;br /&gt;
		.. Usuario o (si falla el usuario) extensión.&lt;br /&gt;
		.. Facilidad.&lt;br /&gt;
		.. Sala de conferencia.&lt;br /&gt;
		.. Agente de grupos ACD.&lt;br /&gt;
		.. Grupos ACD.&lt;br /&gt;
		.. VDN.&lt;br /&gt;
		.. Buzón para dejar mensaje.&lt;br /&gt;
		.. Buzón para dejar mensaje por ocupado.&lt;br /&gt;
		.. Buzón para dejar mensaje por no contestación.&lt;br /&gt;
		.. Buzón para su gestión.&lt;br /&gt;
		.. Grupo de salto.&lt;br /&gt;
		.. Operadora.&lt;br /&gt;
		.. Cola de centralita.&lt;br /&gt;
		.. VDN de centralita.&lt;br /&gt;
	. TIP_LLAM (tipo de llamada)&lt;br /&gt;
		.. Saliente&lt;br /&gt;
		.. Entrante&lt;br /&gt;
		.. Interior&lt;br /&gt;
		.. Transito&lt;br /&gt;
	. PARA (destinatario cuando se trata de un usuario o de un agente)&lt;br /&gt;
	. PARA_NAME&lt;br /&gt;
	. COD_CLIENTE&lt;br /&gt;
	. EJE1_MSK (valor del eje1 asignado a la llamada)&lt;br /&gt;
	. BUZON (sólo extensiones y usuarios que tengan buzón asignado)&lt;br /&gt;
	. RUTA_NODO_BUZON (si el buzón está en nodo distinto al de entrada)&lt;br /&gt;
	. DESVIO_INCONDICIONAL (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable)&lt;br /&gt;
	. DESVIO_NO_CONTESTA (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable)&lt;br /&gt;
	. DESVIO_OCUPADO (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable)&lt;br /&gt;
	. DESVIO_FUERA_SERV (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable)&lt;br /&gt;
&lt;br /&gt;
*  Los datos de salida para cada una de las posibles rutas en orden son (nn va de 01 maxRutas [nn son dos dígitos decimales]):&lt;br /&gt;
&lt;br /&gt;
	. CONTADOR_ABDE_nn (contador para control de ancho de banda en sede de dispositivo de entrada).&lt;br /&gt;
	. CONTADOR_ABNE_nn (contador para control de ancho de banda en sede de nodo de entrada).&lt;br /&gt;
	. CONTADOR_ABDS_nn (contador para control de ancho de banda en sede de dispositivo de salida).&lt;br /&gt;
	. CONTADOR_ABNS_nn (contador para control de ancho de banda en sede de nodo de salida).&lt;br /&gt;
	. GB_nn (modo de grabacion).&lt;br /&gt;
	. CALLER_NAME_SAL_nn&lt;br /&gt;
		.. Puede salir de una extensión, un usuario o de un agente.&lt;br /&gt;
	. CALLER_NUM_SAL_nn&lt;br /&gt;
		.. Puede salir de una extensión, un usuario o de un agente.&lt;br /&gt;
	. DESTINO_SAL_nn&lt;br /&gt;
		.. En general, el valor C_NOMBRE o destino de salida.&lt;br /&gt;
	. RUTA_NODO_nn&lt;br /&gt;
		.. Cadena de marcación para ir la nodo que soporta DESTINO_SAL_nn, si es distinto del nodo de entrada.&lt;br /&gt;
	. RUTA_SAL_nn (dependiendo de TIPO_DESTINO_SAL)&lt;br /&gt;
		.. Extensión: cadena marcación.&lt;br /&gt;
		.. Facilidad: E_CODIGO_FACILIDAD obtenido de la tabla CEN_FACILIDADES.&lt;br /&gt;
		.. Usuario: cadena marcación de la extensión asignada al usuario en movilidad o en propiedad.&lt;br /&gt;
		.. Agente: cadena marcación de la extensión a la que está conectado el agente.&lt;br /&gt;
		.. Ruta externa: contexto que gestiona la llamada saliente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Fase preenrutamiento:===&lt;br /&gt;
&lt;br /&gt;
* La fase de preenrutamiento (basada en la table CEN_PRE_RUTA) se usa en todas las llamadas entrantes, tanto internas, como externas. Permite desarrollar un &amp;quot;prerouting&amp;quot; estándar para ACD y para telefonía corporativa.&lt;br /&gt;
&lt;br /&gt;
* Datos de entrada al proceso de preenrutamiento (pdPreEntr): iguales que los del proceso global de enrutamiento, excepto en que este proceso no usa ID_NODO_ENT ya que es independiente de éste.&lt;br /&gt;
&lt;br /&gt;
* Datos de salida de la fase de preenrutamiento (pdPreSal): &lt;br /&gt;
	. GB (modo de grabacion)&lt;br /&gt;
	. ID_CATEGORIA_SAL&lt;br /&gt;
	. COD_CLIENTE (opcional)&lt;br /&gt;
	. TIPO_DESTINO_SAL ( /* TTipoDestinoEnrutamiento */)&lt;br /&gt;
		.. No existe.&lt;br /&gt;
		.. Volver a preenrutar.&lt;br /&gt;
		.. Ruta externa.&lt;br /&gt;
		.. Extensión.&lt;br /&gt;
		.. Usuario de telefonía corporativa.&lt;br /&gt;
		.. Facilidad.&lt;br /&gt;
		.. Sala de conferencia.&lt;br /&gt;
		.. Agente de grupos ACD.&lt;br /&gt;
		.. Grupos ACD.&lt;br /&gt;
		.. VDN.&lt;br /&gt;
		.. Buzón para dejar mensaje.&lt;br /&gt;
		.. Buzón para dejar mensaje por ocupado.&lt;br /&gt;
		.. Buzón para dejar mensaje por no contestación.&lt;br /&gt;
		.. Buzón para su gestión.&lt;br /&gt;
		.. Grupo de salto.&lt;br /&gt;
		.. Operadora.&lt;br /&gt;
		.. Cola de centralita.&lt;br /&gt;
	. COD_CLIENTE&lt;br /&gt;
	. EJE1_MSK (valor del eje1 asignado a la llamada)&lt;br /&gt;
	. CALLER_NAME&lt;br /&gt;
	. CALLER_NUM&lt;br /&gt;
	. DESTINO&lt;br /&gt;
&lt;br /&gt;
* El proceso de preenrutamiento consiste en seleccionar un único registro de la tabla CEN_PRE_RUTA y, con sus valores y con los valores de entrada al proceso, generar los datos de salida.&lt;br /&gt;
&lt;br /&gt;
* Un posible tipo de salida es &amp;quot;Volver a preenrutar&amp;quot;. Esto permite realimentar el proceso un máximo de &amp;quot;max_pre_ruta_regs&amp;quot; veces (en archivo .conf) para simplificar configuración. Sólo tiene sentido realimentar si se ha hecho alguna modificación en los datos de selección de registro, ya que en caso contrario se produciría un bucle que el proceso de preenrutamiento es capaz de detectar y evitar.&lt;br /&gt;
&lt;br /&gt;
* Para elegir el registro de CEN_PRE_RUTA, se tienen en cuenta los datos de entrada de la llamada, de modo que se cumpla con todos los puntos siguientes:&lt;br /&gt;
&lt;br /&gt;
	. ID_CATEGORIA_ENT igual a la del dispositivo de entrada.&lt;br /&gt;
	. CALLER_NUM de entrada&lt;br /&gt;
		.. debe comenzar por la cadena C_ORIGEN_ENT_PREF o C_ORIGEN_ENT_PREF=NULL, con menos prioridad. Es conveniente rellenar este dato del modo más restrictivo que sea posible, independientemente de C_ORIGEN_ENT_EXPR. Ello permite disminuir el uso innecesario de recursos de evaluación de expresiones regulares.&lt;br /&gt;
		.. debe de tener un número de dígitos igual o superior a N_ORIGEN_ENT_MIN_DIGITOS, si este valor no es NULL o cero.&lt;br /&gt;
		.. debe de tener un número de dígitos igual o inferior a N_ORIGEN_ENT_MAX_DIGITOS, si este valor no es NULL o cero.&lt;br /&gt;
		.. debe cumplir la expresión regular C_ORIGEN_ENT_EXPR, si ésta no es NULL.&lt;br /&gt;
	. DNIS empiece con C_DESTINO_ENT_PREF o C_DESTINO_ENT_PREF=NULL. Es conveniente rellenar este dato del modo más restrictivo que sea posible, independientemente de C_DESTINO_ENT_EXPR. Ello permite disminuir el uso innecesario de recursos de evaluación de expresiones regulares.&lt;br /&gt;
	. Si varias entradas cumplen la condicion anterior, se prueba primero la que el campo C_DESTINO_ENT_PREF tenga una longitud mayor y, de entre éstas, la que C_ORIGEN_ENT_PREF tenga una longitud mayor.&lt;br /&gt;
	. DNIS tenga un número de dígitos igual o superior a N_DESTINO_ENT_MIN_DIGITOS, si este valor no es NULL o cero.&lt;br /&gt;
	. DNIS tenga un número de dígitos igual o inferior a N_ORIGEN_ENT_MIN_DIGITOS, si este valor no es NULL o cero.&lt;br /&gt;
	. DNIS cumpla la expresión regular C_DESTINO_ENT_EXPR, si ésta no es NULL.&lt;br /&gt;
	. El campo N_PCT_LLAMADAS define un porcentaje de llamadas aleatorio al que se puede aplicar el registro. Obviamente, si el valor es 100, se aplica siempre y si es 0 el registro no se usa nunca (deshabilitado).&lt;br /&gt;
&lt;br /&gt;
* Si no se encuentra ninguna entrada adecuada, quiere decir que es una llamada prohibida y se devuelve el tipo de destino &amp;quot;No existe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Puede conseguirse un destino &amp;quot;por defecto&amp;quot; diferente, creando una entrada que encaje siempre para cada categoría: C_ORIGEN_ENT, C_ORIGEN_ENT_MIN_DIGITOS, C_ORIGEN_ENT_MAX_DIGITOS, C_ORIGEN_ENT_EXPR, C_DESTINO_ENT_PREF, N_DESTINO_ENT_MIN_DIGITOS, N_DESTINO_ENT_MAX_DIGITOS y C_DESTINO_ENT_EXPR a valor NULL.&lt;br /&gt;
&lt;br /&gt;
* Una vez elegida una entrada, ésta puede transformar o sustituir el valor de ID_CATEGORIA, CALLER_NAME, CALLER_NUM, DESTINO, COD_CLIENTE y/o EJE1_MSK a la salida del proceso.&lt;br /&gt;
&lt;br /&gt;
* Si ID_CATEGORIA_SAL es cero, se propaga a la salida el valor de la entrada. En caso contrario, se sustituye.&lt;br /&gt;
&lt;br /&gt;
* Si C_CALLER_NAME está vacío, se mantiene el valor hubiese a la entrada. En caso contrario, se sustituye.&lt;br /&gt;
&lt;br /&gt;
* C_CALLER_NUM puede contener una cadena que identifica el nuevo CALLER_NUM. Además, si la cadena comienza por los caracteres que se indican, el significado es especial:&lt;br /&gt;
&lt;br /&gt;
	. &amp;quot;=&amp;quot; o cadena vacía, el nuevo CALLER_NUM es igual al de entrada al proceso.&lt;br /&gt;
	. &amp;quot;+&amp;quot; el nuevo CALLER_NUM es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo.&lt;br /&gt;
	. &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;.&lt;br /&gt;
	. &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al CALLER_NUM de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo CALLER_NUM de salida. Si la expresión regular no se cumpliese, se propagará el valor de entrada al proceso.&lt;br /&gt;
	. cualquier otro valor del primer carácter determina que es una constante que sustituye el valor a la entrada.&lt;br /&gt;
&lt;br /&gt;
* Cada vez que se utilice un registro de CEN_PRE_RUTA, se incrementará el valor de N_CONTA si el valor de N_UMBRAL es mayor que cero.&lt;br /&gt;
&lt;br /&gt;
* Un valor N_UMBRAL mayor que cero permite modificar el destino de salida cuando el valor de actual de N_CONTA (antes de incrementarse) supere o sea igual el valor de N_UMBRAL. Si se cumple la condicion indicada, se usa como destino tras el preenrutamiento, los valores de los campos E_TIPO_DESTINO_SAL_2 y C_DESTINO_SAL_2.&lt;br /&gt;
&lt;br /&gt;
* Si el valor de N_UMBRAL es menor o igual a cero o si N_CONTA es inferior a N_UMBRAL, se usa como destino tras el preenrutamiento, los valores de los campos E_TIPO_DESTINO_SAL_1 y C_DESTINO_SAL_1.&lt;br /&gt;
&lt;br /&gt;
* Con este mecanismo de N_CONTA y N_UMBRAL, se pretende facilitar el discriminar a los llamantes reincidentes, cuando sea necesario.&lt;br /&gt;
&lt;br /&gt;
* Un proceso periódico externo debe encargarse de poner a cero o decrementar el valor de N_CONTA.&lt;br /&gt;
&lt;br /&gt;
* Como resultado de los procesos de filtrado y de verificación anteriores, se habrá obtenido un TIPO_DESTINO_SAL y un C_DESTINO_SAL a partir de los campos con sufijo &amp;quot;_1&amp;quot; o &amp;quot;_2&amp;quot;, con una metodología similar al caso C_CALLER_NUM.&lt;br /&gt;
&lt;br /&gt;
* C_DESTINO_SAL_x puede contener cadena que permite obtener el nuevo destino. Además, si la cadena comienza por los caracteres que se indican, el significado es especial:&lt;br /&gt;
&lt;br /&gt;
	. &amp;quot;=&amp;quot; o cadena vacía, el nuevo destino es igual al de entrada al proceso.&lt;br /&gt;
	. &amp;quot;+&amp;quot; el nuevo destino es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo.&lt;br /&gt;
	. &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;.&lt;br /&gt;
	. &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al destino de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo destino de salida. Si la expresión regular no se cumpliese, quiere decir que es una llamada prohibida y se encaminará hacia una facilidad por defecto.&lt;br /&gt;
	. cualquier otro valor del primer carácter determina que es una constante que sustituye el valor a la entrada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Información de salida del proceso de preenrutamiento: Cuando TIPO_DESTINO_SAL_x toma los valores que se indican, el proceso global de enrutamiento sólo requiere de preenrutamiento y la información a devolver se obtiene dependiendo de TIPO_DESTINO_SAL_x:&lt;br /&gt;
&lt;br /&gt;
	. No existe: Se asume que no se conoce un destino para los datos de entrada, por lo que la llamada se encamina hacia una facilidad por defecto que gestiona su tratamiento.&lt;br /&gt;
&lt;br /&gt;
	. Extensión: A partir de las tablas CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar la extensión en el nodo principal y en el secundario.&lt;br /&gt;
&lt;br /&gt;
	. Facilidad: A partir de las tablas CEN_DISPOSITIVOS, CEN_FACILIDADES y CEN_NODOS.&lt;br /&gt;
&lt;br /&gt;
	. Usuario de telefonía corporativa: A partir de las tablas CEN_USUARIOS, CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar al usuario en el nodo principal y en el secundario de la extensión que corresponde en base a movilidad, con prioridad, o en base a propiedad.  El caso de movilidad no se tiene en cuenta si el proceso de enrutamiento se realiza en &amp;quot;modo supervivencia&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
	. Sala conferencia: A partir de las tablas CEN_SALAS_CONFERENCIAS y CEN_NODOS.&lt;br /&gt;
&lt;br /&gt;
	. Agente de ACD: A partir de las tablas ACD_USUARIOS, DAT_TR_ACD_EXTENSIONES, CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar al agente en el nodo principal y en el secundario.&lt;br /&gt;
&lt;br /&gt;
	. VDN: A partir de las tablas ACD_VDN y CEN_NODOS, se devolverán los valores que permiten alcanzar al VDN en su nodo.&lt;br /&gt;
&lt;br /&gt;
	. Grupo ACD: A partir de las tablas ACD_COLAS y CEN_NODOS, se devolverán los valores que permiten alcanzar al grupo ACD en su nodo.&lt;br /&gt;
&lt;br /&gt;
	. VDN de Centralita: A partir de las tablas CEN_VDN y CEN_NODOS, se devolverán los valores que permiten alcanzar al VDN en su nodo.&lt;br /&gt;
&lt;br /&gt;
	. Cola de Centralita: A partir de las tablas CEN_COLAS y CEN_NODOS, se devolverán los valores que permiten alcanzar al grupo ACD en su nodo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* El campo B_ENRU_SEGMENTO de la tabla CEN_PRE_RUTA indica al proceso de preenrutamiento que es preciso generar un segmento en DAT_SEGMENTOS y CEN_SEGMENTOS. En el segmento generado, se rellena el campo C_ETIQUETA1 del nuevo segmento con el valor que contiene el campo homónimo del registro asociado en la tabla CEN_LISTA_PRE_RUTAS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Fase enrutamiento===&lt;br /&gt;
&lt;br /&gt;
Fase de enrutamiento en casos en que el destino no es externo:&lt;br /&gt;
&lt;br /&gt;
* Datos de entrada al proceso de enrutamiento externo: iguales a los de salida del proceso de preenrutamiento (pdPreSale), uniéndose a éstos los datos globales de entrada al proceso (pdEntr).&lt;br /&gt;
&lt;br /&gt;
* Datos de salida de la fase de enrutamiento: iguales que los del proceso global de enrutamiento (pdSale).&lt;br /&gt;
&lt;br /&gt;
* Específicamente y sólo para los casos en que el destino es una extensión (tipo de destino extensión, usuario de telefonía corporativa o agente) es cuando son válidod los datos correspondientes al buzón asociado y los datos de los posibles desvíos previstos.&lt;br /&gt;
&lt;br /&gt;
* También en este caso, se prevén dos posibles rutas, una se corresponde con el acceso a la extensión en el nodo principal de ésta y la otra en el nodo secundario.&lt;br /&gt;
&lt;br /&gt;
* En el resto de tipos de destino, sólo se prevé una ruta que puede incluir o no un enlace internodal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fase de enrutamiento en el caso de destino externo:&lt;br /&gt;
&lt;br /&gt;
* Datos de entrada al proceso de enrutamiento externo: iguales a los de salida del proceso de preenrutamiento (pdPreSale), uniéndose a éstos los datos globales de entrada al proceso (pdEntr).&lt;br /&gt;
&lt;br /&gt;
* Datos de salida de la fase de enrutamiento: iguales que los del proceso global de enrutamiento (pdSale). &lt;br /&gt;
&lt;br /&gt;
* Se elige los primeros &amp;quot;max_ruta&amp;quot; registros (configurado en archivo .conf) en CEN_DESTINOS_EXTERNOS unido con CEN_RELACION_DESTINOS_ENLACES_EXTERNOS que, teniendo en cuenta los datos de entrada al proceso de enrutamiento, cumpla con todos los puntos siguientes:&lt;br /&gt;
&lt;br /&gt;
	. ID_CATEGORIA_ENT igual a la de salida del proceso de preenrutamiento.&lt;br /&gt;
	. C_DESTINO_SAL de proceso de preenrutamiento empiece con C_DESTINO_ENT_PREF.&lt;br /&gt;
	. Si varias entradas cumplen la condicion anterior, se prueba primero la que el campo C_DESTINO_ENT_PREF tenga una longitud mayor.&lt;br /&gt;
	. C_DESTINO_SAL tenga un número de dígitos igual o superior a N_DESTINO_ENT_MIN_DIGITOS, si este valor no es NULL o cero.&lt;br /&gt;
	. C_DESTINO_SAL tenga un número de dígitos igual o inferior a N_DESTINO_ENT_MAX_DIGITOS, si este valor no es NULL o cero.&lt;br /&gt;
	. C_DESTINO_SAL cumpla la expresión regular C_DESTINO_ENT_EXPR, si ésta no es NULL.&lt;br /&gt;
&lt;br /&gt;
* Aparte de la longitud del campo C_DESTINO_ENT_PREF, se usa N_PRIORIDAD como campo para ordenar los registros y seleccionar lo &amp;quot;max_ruta&amp;quot; primeros.&lt;br /&gt;
&lt;br /&gt;
* Una vez que un registro es válido, se descartan todos los registros cuyo C_DESTINO_ENT_PREF es diferente del primero seleccionado.&lt;br /&gt;
&lt;br /&gt;
* Como resultado de los procesos de filtrado y de verificación anteriores, se habrá obtenido hasta un máximo de &amp;quot;max_rutas&amp;quot; valores para posibles rutas. Las posibles propagaciones y transformaciones en los datos de cada ruta son función de los datos de cada registro seleccionado:&lt;br /&gt;
&lt;br /&gt;
* CALLER_NAME_nn: Si C_CALLER_NAME está vacío, se propaga el valor de entrada. En caso contrario, se sustituye.&lt;br /&gt;
&lt;br /&gt;
* CALLER_NUM_nn: Sale de C_CALLER_NUM que puede contener una cadena que identifica el nuevo CALLER_NUM_n. Además, si C_CALLER_NUM comienza por los caracteres que se indican, el significado es especial:&lt;br /&gt;
&lt;br /&gt;
	. &amp;quot;=&amp;quot; o cadena vacía, el nuevo CALLER_NUM_nn es igual al de entrada al proceso.&lt;br /&gt;
	. &amp;quot;+&amp;quot; el nuevo CALLER_NUM_nn es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo.&lt;br /&gt;
	. &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;.&lt;br /&gt;
	. &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al CALLER_NUM de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo CALLER_NUM de salida. Si la expresión regular no se cumpliese, se propaga el valor de entrada al proceso.&lt;br /&gt;
	. &amp;quot;&amp;gt;&amp;quot; Si existe valor para CALLER_NUM_EXTERNO, se propagará éste a la salida. En caso contrario y si no está vacía la cadena que queda al eliminar el prefijo &amp;quot;&amp;gt;&amp;quot;, se susituye en la salida por el valor de la cadena sin prefijo. Si la cadena estuviese únicamente constituida por el valor &amp;quot;&amp;gt;&amp;quot;, se propaga el valor de entrada.&lt;br /&gt;
	. cualquier otro valor del primer carácter determina que es una constante sin ninguna modificación.&lt;br /&gt;
&lt;br /&gt;
* C_DESTINO_SAL_nn: Se obtiene a partir de C_DESTINO_SAL que puede contener una cadena que identifica el nuevo destino. Además, si la cadena comienza por los caracteres que se indican, el significado es especial:&lt;br /&gt;
&lt;br /&gt;
	. &amp;quot;=&amp;quot; o cadena vacía, el nuevo destino es igual al de entrada al proceso.&lt;br /&gt;
	. &amp;quot;+&amp;quot; el nuevo destino es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo.&lt;br /&gt;
	. &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;.&lt;br /&gt;
	. &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al destino de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo destino de salida. Si la expresión regular no se cumpliese, se propaga el valor de entrada al proceso.&lt;br /&gt;
	. cualquier otro valor del primer carácter determina que es una constante sin ninguna modificación.&lt;br /&gt;
&lt;br /&gt;
* RUTA_NODO_nn: Sólo se usa si el nodo de salida es diferente del nodo de entrada. Contiene la cadena de marcación para ir la nodo que soporta DESTINO_SAL_nn. Sale del campo C_FORMATO_DIAL (sustituyendo variables) correspondiente al tipo de dispositivo del enlace exterior.&lt;br /&gt;
&lt;br /&gt;
* RUTA_SAL_nn: Es el campo C_DATO_ASTERISK obtenido a partir del registro en la tabla CEN_ENLACE_EXTERIOR que se corresponde con ID_ENLACE_EXTERIOR de la tabla CEN_RELACION_DESTINOS_ENLACES_EXTERNOS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Variables de salida globales para el dialplan (todos los nombres tienen prefijo &amp;quot;__&amp;quot;):&lt;br /&gt;
  . SPRV: 0/1 indica si el proceso se ejecuta en modo supervivencia.&lt;br /&gt;
  . ID_SEGM: ID del segmento generado.&lt;br /&gt;
  . R_TIP_DESTINO&lt;br /&gt;
  . R_TIP_LLAM: (10: saliente, 20: entrante, 30: interior, 40: transito).&lt;br /&gt;
  . R_PARA: indica el destino solicitado cuando es distinto del alcanzado (ej.: usuario).&lt;br /&gt;
  . R_PARA_NAME: nombre del destino solicitado.&lt;br /&gt;
  . R_CODCLI: codigo de cliente.&lt;br /&gt;
  . R_EJE1&lt;br /&gt;
  . R_DESV_NC (MENSA si desvio a mensajeria) (solo si destino extension o usuario).&lt;br /&gt;
  . R_DESV_OCUP (MENSA si desvio a mensajeria) (solo si destino extension o usuario).&lt;br /&gt;
  . R_DESV_FSER (MENSA si desvio a mensajeria) (solo si destino extension o usuario).&lt;br /&gt;
  . R_BUZON (solo si destino extension o usuario).&lt;br /&gt;
  . R_RUT_ND_BZ (solo si destino extension o usuario).&lt;br /&gt;
&lt;br /&gt;
* Variables de ruta nn para el dialplan:&lt;br /&gt;
  . R_ABDE_nn: ancho de banda del dispositivo de entrada.&lt;br /&gt;
  . R_ABNE_nn: ancho de banda del nodo de entrada.&lt;br /&gt;
  . R_ABDS_nn: ancho de banda del dispositico de salida.&lt;br /&gt;
  . R_ABNS_nn: ancho de banda del nodo de salida.&lt;br /&gt;
  . R_GB_nn: 0(no) 1(sinPito) 2(conPito) 1000(descartar) modo grabacion.&lt;br /&gt;
  . R_CID_NAME_nn&lt;br /&gt;
  . R_CID_NUM_nn&lt;br /&gt;
  . R_DEST_nn&lt;br /&gt;
  . R_RUT_NODO_nn&lt;br /&gt;
  . R_RUT_SAL_nn&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_plataforma_VIVAit&amp;diff=5906</id>
		<title>Manual de operación plataforma VIVAit</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_plataforma_VIVAit&amp;diff=5906"/>
		<updated>2017-05-31T06:25:26Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* Versiones de módulos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!! '''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; ALFREDO: INSISTIR EN EXPLICAR CONCEPTOS&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
En este documento se describe la arquitectura general de la plataforma '''''VIVA'''''it, detallando aquellos procesos principales que componen cada uno de los elementos del sistema, y sus principales elementos de diagnóstico&lt;br /&gt;
Quedan fuera del ámbito de este documento:&lt;br /&gt;
* Uso de aplicación de agente ('''''VIVA'''''it Desk)&lt;br /&gt;
* Uso de aplicación de supervisor ('''''VIVA'''''it Supervisor), incluyendo sus módulos autónomos ('''''VIVA'''''it reporting, '''''VIVA'''''it Tracker)&lt;br /&gt;
* Uso de portal de administración&lt;br /&gt;
* Uso de portal de traceo de llamadas y agentes ('''''VIVA'''''it Tracker web)&lt;br /&gt;
* Uso de portal de monitorización zabbix&lt;br /&gt;
&lt;br /&gt;
== Arquitectura ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura plataforma VIVAit.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Descripción de los elementos, diagnósticos y operaciones ==&lt;br /&gt;
Las siguientes tablas definen los principales elementos software de la plataforma '''''VIVA'''''it, que son detallados en apartados siguientes:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de sistema operativo'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu Server LTS 64 bits || Uno por servidor|| ||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|| Actualmente (Oct-2015) 14.04&lt;br /&gt;
Bajo proyecto puede cambiarse&lt;br /&gt;
|-&lt;br /&gt;
| Almacenamiento de grabaciones|| Uno por sistema|| Almacenamiento de las grabaciones, ya sean de entorno corporativo o de contact center||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|| Típicamente un espacio grande de almacenamiento proporcionado por el cliente y que se monta como un sistema de archivos local en los servidores de la plataforma&lt;br /&gt;
Pueden existir sistemas secundarios de almacenamiento de grabaciones&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de conmutación de voz'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Asterisk 1.4.24 by MDtel||Uno por servidor ACD||Núcleo de conmutación de voz basado en Asterisk 1.4 y modificado por MDtel||'''''VIVA'''''it Suite||Fuertemente modificado por MDtel&lt;br /&gt;
En el futuro migrará a Asterisk 13 Certified&lt;br /&gt;
|-&lt;br /&gt;
|Dialplan ACD by MDtel||Uno por servidor ACD||Configuración de voz||'''''VIVA'''''it Suite||En el futuro se unificará con corporativa&lt;br /&gt;
|-&lt;br /&gt;
|Asterisk 13 Certified by MDtel||Uno por servidor corporativo/gateway||Núcleo de conmutación de voz basado en Asterisk 13 y modificado por MDtel||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Actualmente asterisk estándar (10/15)&lt;br /&gt;
La instalación contempla descargar de la red el más actualizado, siempre CERTIFIED&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Dialplan corporativo||Uno por servidor corporativo/gateway||Configuración de voz||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||En el futuro se unificará con ACD&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de base de datos'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|MySQL 5.5||Donde haya BBDD de cualquier tipo (incluso zabbix)||Motor de Base de Datos||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||A efectos prácticos va a ser en todos los servidores con casi total seguridad&lt;br /&gt;
|-&lt;br /&gt;
|BBDD tiempo real||Una por sistema||Base de Datos sobre la que trabaja todo el entorno de tiempo real||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|BBDD réplica||Una por sistema multinodo||Base de Datos para acceso a información de reporting…y similar||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de una&lt;br /&gt;
En el nodo en el que exista réplica existirá además copia (excepto nodo ACD)&lt;br /&gt;
|-&lt;br /&gt;
|BBDD copia||Uno por servidor corporativo/gateway||Copias de tablas de configuración para respaldo de la misma||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Local en cada nodo&lt;br /&gt;
Los nodos de ACD actualmente no trabajan con copia; en caso de fallo de BBDD TR se usa el modo emergencia&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de procesos ''VIVA''it'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Intz-Nimitz||Donde haya una BBDD de tiempo real o copia||Interfaz entre el dialplan y la base de datos||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||No donde haya BBDD de réplica&lt;br /&gt;
Sistemas grandes pueden contemplar mas de un intz-nimitz central&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|vivait-cti||Uno por servidor ACD||Interfaz entre '''''VIVA'''''it Desk, supervisor y el manager de asterisk||'''''VIVA'''''it Suite||&lt;br /&gt;
|-&lt;br /&gt;
|myAcdSuperv||Uno por servidor ACD||Recopilador de datos de asterisk y actualiza en la BBDD&lt;br /&gt;
Genera llamadas en el marcador&lt;br /&gt;
||'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|motorSal||Uno por sistema con ACD||Motor de marcador saliente automático||'''''VIVA'''''it Suite||Solo si hay marcación saliente&lt;br /&gt;
Junto a la BBDD de tiempo real&lt;br /&gt;
|-&lt;br /&gt;
|recordCentral||Uno por sistema||Servidor de grabaciones, se conectan los agentes a el||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Se arrancan varias instancias en función del número de nodos&lt;br /&gt;
Debe instalarse en un servidor que tenga el almacenamiento de grabaciones en su sistema de archivos&lt;br /&gt;
|-&lt;br /&gt;
|recordNodo||Uno por servidor corporativo/gateway||Agente de grabación||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|bdCentral||Uno, en el nodo con la BBDD de tiempo real||Genera la base de datos que se copiará para respaldo a otros nodos||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|bdNodo||En cada nodo con BBDD de copia||Recoge la base de datos del servidor central con el objeto de tener el respaldo||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|Actualizador||Uno por sistema con ACD||Se encarga de proporcionar las versiones actualizadas de las aplicaciones de puesto de trabajo||'''''VIVA'''''it Suite||En el mismo servidor que el portal de administración&lt;br /&gt;
|-&lt;br /&gt;
|phoneProv-tftp||Uno por sistema||Se encarga del aprovisionamiento masivo de terminales||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||En instalaciones grandes habrá más de uno, quizás uno por sede grande; depende de la infraestructura de DHCP&lt;br /&gt;
|-&lt;br /&gt;
|borraregistrosnimitz||||||||				&lt;br /&gt;
|-&lt;br /&gt;
|Mover grabaciones a nube||||||||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Administración'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Tomcat 7||Uno por servidor con portales||Servidor de aplicaciones JAVA||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|Portal de administración ||Uno por sistema||Portal de administración del sistema||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Portal usuario||Uno por sistema||Portal de usuario, para acceso a buzones, su configuración||'''''VIVA'''''it Call||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Tracker web||Uno por sistema||Portal de seguimiento de llamadas||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Debe instalarse en un servidor que tenga los ficheros de grabación montados en su sistema de archivos&lt;br /&gt;
Ligado a recordCentral&lt;br /&gt;
Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Monitor||Uno por sistema||Portal de monitores de pared de Call Center||'''''VIVA'''''it Suite||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Apache||Uno por servidor de calendarios||Servidor de portales WEB||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|Servidor de calendarios||Uno por sistema||Aloja calendarios para su uso en diferentes entornos de NIMITZ||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Monitorización'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Servidor zabbix||Uno por instalación||Monitorización técnica y de negocio||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de uno&lt;br /&gt;
Tipicamente irá o en BBDD replica o en nodo de gestión en instalaciones grandes&lt;br /&gt;
|-&lt;br /&gt;
|Templates zabbix||Uno por instalación||Adaptaciones específicas||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|Agente Zabbix||Uno por servidor||Agente de monitorización||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
||Scripts monitorización zabbix||Uno por servidor||Agente de monitorización||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Versiones de módulos===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Módulo  !! V.3.10 !! V.3.2.0 !! V.3.3.0 !!  V.3.4.0&lt;br /&gt;
(VSuite 3.4+VCall3.0) &lt;br /&gt;
!  V.3.5.0&lt;br /&gt;
(VSuite 3.5+VCall3.1)&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk || 1.4 || 1.4 || 1.4 || 1.4 Nodo ACD&lt;br /&gt;
13 resto nodos&lt;br /&gt;
|| 1.4 Nodo ACD&lt;br /&gt;
13 resto nodos&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk ACD  ||  ||  || || 3.3.1 || 3.4.1 &lt;br /&gt;
|-&lt;br /&gt;
| Dialplan ACD || ||  ||  || || 3.4.1&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk Corp ||  ||  ||  || 3.3.4 || 3.4.4&lt;br /&gt;
|-&lt;br /&gt;
| Dialplan Corp  || ||  ||  || 3.3.1 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| Lazarus común  || 3.1.0  || 3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| BD  || 3.2.0 || 3.4.0 || 3.5.0 || 3.6.0 || 3.8.0&lt;br /&gt;
|-&lt;br /&gt;
| Generaconf || 3.0.0  || 3.0.0  || 3.2.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Instalador || 3.1.0  || 3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Intz-nimitz || 2.6.0  || 3.0.1 || 3.0.3 ||  3.4.1 || 3.4.2&lt;br /&gt;
|-&lt;br /&gt;
| recordgwd   ||  1.3.0 ||  1.3.0 || 3.1.0 ||  ----- || -----&lt;br /&gt;
|-&lt;br /&gt;
| recordNodo  || ----- || ----- || ----- ||  4.0.0 || 4.0.0&lt;br /&gt;
|-&lt;br /&gt;
| recordprocesad || 1.2.0 ||1.2.0|| 3.0.0 || ----- || -----&lt;br /&gt;
|-&lt;br /&gt;
| recordCentral || ----- || ----- || -----||  4.0.0 || 4.0.1&lt;br /&gt;
|-&lt;br /&gt;
| MyACDSuperv || 5.2.0 || 5.3.0  ||  5.3.0  ||  5.3.2 || 5.3.2&lt;br /&gt;
|-&lt;br /&gt;
| Motorsal || 1.4.0 || 3.1.0  || 3.2.0 || 3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| Vivait-cti  || 3.0.0 ||  3.0.1  ||  3.0.1  ||  3.0.1 || 3.0.2&lt;br /&gt;
|-&lt;br /&gt;
| Multimonitorweb ||  3.0.1 ||  3.0.2  || 3.1.0  || 3.1.0 || 3.2.0&lt;br /&gt;
|-&lt;br /&gt;
| Portal de administración || 3.1.0  || 3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Tracker Web  || 3.0.2  || 3.1.0 ||  3.2.0 ||  3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
|  VIVA supervisor || 3.0.0 ||  3.1.0  ||  3.2.0  ||  3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| Tracker windows  || 3.0.0  || 3.1.0  || 3.2.0 || 3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| VIVA report  || 1.2.0  || 3.1.0  || 3.2.0  ||  3.2.2 || 3.3.0&lt;br /&gt;
|-&lt;br /&gt;
| VIVA desk || 3.0.2 ||  3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| VIVA designer || 1.0.23 || 3.0.1  || 3.1.0 ||  3.1.0 || 3.2.0&lt;br /&gt;
|-&lt;br /&gt;
|  Preview || 1.0.18 || 3.2.0  || 3.3.0 || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Phone_prov  || ------ || ------ || 3.0.1 || 3.0.3 || 3.0.3&lt;br /&gt;
|-&lt;br /&gt;
| Portal usuario || ------ || ------ || ------ || 3.0.0 || 3.1.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Sistema Operativo ===&lt;br /&gt;
Los sistemas operativos de nuestra plataforma se corresponden a las versiones de Ubuntu Server LTS , ya que son las versiones estables, con un soporte continuado y mas estables a actualizaciones desde la salida Ubuntu 14.04.1. En concreto el sistema operativo utilizado para la plataforma '''''VIVA'''''it es Ubuntu Server 14.04.4 LTS. Para más información https://help.ubuntu.com/lts/serverguide/index.html.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ubuntu Kernel Release Schedule.png|750px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Funcionamiento en cluster ====&lt;br /&gt;
&lt;br /&gt;
Un clúster es un grupo de múltiples ordenadores unidos mediante una red de alta velocidad, de tal forma que el conjunto es visto como un único ordenador.&lt;br /&gt;
&lt;br /&gt;
De un clúster se espera que presente combinaciones de los siguientes servicios:&lt;br /&gt;
&lt;br /&gt;
# Alto rendimiento &lt;br /&gt;
# Alta disponibilidad&lt;br /&gt;
# Balanceo de carga &lt;br /&gt;
# Escalabilidad &lt;br /&gt;
&lt;br /&gt;
Tal y como esta definido el cluster de MDtel, este comprueba conectividad con la otra máquina que lo forma y con un punto de confianza. Si la máquina no tiene conectividad con la otra y si con el punto de confianza es que el servidor está vivo, mientas que si no tengo conectividad ni con la otra máquina ni con el punto de confianza es que el muerto soy yo, por lo que balanceo.&lt;br /&gt;
&lt;br /&gt;
Por lo que las máquinas balancean en los casos siguientes:&lt;br /&gt;
&lt;br /&gt;
* Todo lo que tenga que ver con la red, es decir, caída de la tarjeta de red, apagado de la máquina, corte en la red..&lt;br /&gt;
&lt;br /&gt;
Y no balancea en los siguientes:&lt;br /&gt;
&lt;br /&gt;
* No balancea en los demás casos, es decir, todo lo que tenga que ver con procesos de una máquina (caída asterisk, base de datos, intz-nimitz)&lt;br /&gt;
&lt;br /&gt;
El funcionamiento en cluster se basa en:&lt;br /&gt;
&lt;br /&gt;
* Heartbeat: IP flotante entre las dos máquinas que componen el cluster; típicamente este &amp;quot;latido&amp;quot; entre máquinas se realizará mediante conexión directa con cable cruzado para asegurar que no existan problemas de comunicaciones tales como retardo, pérdida de paquetes, etc en este latido y pueda ser causa de un balanceo inadecuado.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|  '''Nota 17-11-2015:''' Se ha realizado en un cliente un cluster distribuido, con dos servidores en diferentes sedes, realizando el heartbeat mediante enlace Gigabit. Si bien la solución no está validada por desarrollo, se está observando el funcionamiento.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* DRBD que se encargar de mantener una serie de carpetas totalmente replicadas entre los dos nodos; dichas las carpetas son:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El cluster es &amp;lt;big&amp;gt;'''activo/pasivo'''&amp;lt;/big&amp;gt;; la máquina activa posee la IP flotante y tiene arrancados los servicios.&lt;br /&gt;
&lt;br /&gt;
==== Configuración del cluster ====&lt;br /&gt;
Para montar un cluster de asterisk partimos de la siguiente situación inicial:&lt;br /&gt;
* Dos maquinas con '''''VIVA'''''it Call 3.0 instalado.&lt;br /&gt;
* El driver bonding de Interfaces de Red en Ubuntu Server.&lt;br /&gt;
&lt;br /&gt;
Los pasos a seguir para la configuración en el Ubuntu Server son los siguientes:&lt;br /&gt;
* Instalar ifenslave: &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 aptitude install ifenslave.&lt;br /&gt;
|}&lt;br /&gt;
: Finalizada la instalación, comprobamos que la instalación de Bonding se ha configurado para empezar desde el arranque del sistema operativo desde el fichero '''/etc/modules''':&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| vi /etc/modules&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 # Parameters can be specified after the module name.&lt;br /&gt;
 lp&lt;br /&gt;
 rtc&lt;br /&gt;
 bonding&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Crear o editar el archivo llamado '''/etc/modprobe.d/bonding.conf''' y añadir la siguiente linea en negrita:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 echo &amp;quot;alias bond0 bonding&amp;quot;&amp;gt; /etc/modprobe.d/bonding.conf&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Editar el fichero /etc/network/interfaces y añadir lo que esta en negrita:&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
 # This file describes the network interfaces available on your system&lt;br /&gt;
 # and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 &lt;br /&gt;
 '''# Bonding'''&lt;br /&gt;
 &lt;br /&gt;
 '''#em1 ip manual y esclavo en el &amp;quot;bond0&amp;quot; NIC'''&lt;br /&gt;
 '''auto em1'''&lt;br /&gt;
 '''iface em1 inet manual'''&lt;br /&gt;
 '''bond-master bond0'''&lt;br /&gt;
 '''bond-primary em0''' &lt;br /&gt;
 &lt;br /&gt;
 '''#em2 ídem, creando así un vínculo de enlace 2.'''&lt;br /&gt;
 '''auto em2'''&lt;br /&gt;
 '''iface em2 inet manual'''&lt;br /&gt;
 '''bond-master bond0'''&lt;br /&gt;
 '''auto bond0'''&lt;br /&gt;
 '''iface bond0 inet static'''&lt;br /&gt;
         '''address 10.255.255.11'''&lt;br /&gt;
        '''netmask 255.255.255.0'''&lt;br /&gt;
        '''gateway 10.255.255.254'''&lt;br /&gt;
 '''bond-mode active-backup'''&lt;br /&gt;
 '''bond-miimon 100'''&lt;br /&gt;
 '''bond-slaves none'''&lt;br /&gt;
 &lt;br /&gt;
 '''# em3 replica entre servidores'''&lt;br /&gt;
 '''auto em3'''&lt;br /&gt;
 '''iface em3 inet static'''&lt;br /&gt;
         '''address 10.255.254.10'''&lt;br /&gt;
        '''netmask 255.255.255.0'''&lt;br /&gt;
 &lt;br /&gt;
 '''# em4 gestion'''&lt;br /&gt;
 '''auto em4'''&lt;br /&gt;
 '''iface em4 inet static'''&lt;br /&gt;
         '''address 172.17.47.255'''&lt;br /&gt;
         '''netmask 255.255.0.0'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Reiniciamos el sistema para que el kernel tome los cambios.&lt;br /&gt;
&lt;br /&gt;
* Comprobación que en las dos maquinas el archivo '''/etc/host''' contenga el los nombre de las dos maquinas a vincular. En el ejemplo el archivo en ambas maquinas es:&lt;br /&gt;
&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 127.0.0.1       localhost&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.11   vivaitcall-CL-UAH-1&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.12   vivaitcall-CL-UAH-2&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.10   vivaitcall-CL-UAH&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.10   BDTR&lt;br /&gt;
 &lt;br /&gt;
 10.255.254.10   vivaitcall-CL-UAH-1-em3&lt;br /&gt;
 &lt;br /&gt;
 10.255.254.11   vivaitcall-CL-UAH-2-em3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Creamos dos particiones iguales en ambos ordenadores , usando el comando '''parted'''.&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# '''parted /dev/sda'''&lt;br /&gt;
 GNU Parted 2.3&lt;br /&gt;
 Using /dev/sda&lt;br /&gt;
 Welcome to GNU Parted! Type 'help' to view a list of commands.&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Number  Start   End     Size    File system     Name  Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 &lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                 boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
        237GB   1000GB  763GB   Free Space&lt;br /&gt;
 &lt;br /&gt;
 (parted) mkpart primary 237GB 1000GB&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Number  Start   End     Size    File system     Name     Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                    boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
 5      237GB   1000GB  763GB                   primary  No File System como ext4&lt;br /&gt;
        1000GB  1000GB  204kB   Free Space&lt;br /&gt;
 (parted)quit&lt;br /&gt;
 mkfs.ext4 /dev/sda5&lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# '''parted /dev/sda'''&lt;br /&gt;
 GNU Parted 2.3&lt;br /&gt;
 Using /dev/sda&lt;br /&gt;
 Welcome to GNU Parted! Type 'help' to view a list of commands.&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Number  Start   End     Size    File system     Name     Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                    boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
 5      237GB   1000GB  763GB                   primary&lt;br /&gt;
        1000GB  1000GB  204kB   Free Space&lt;br /&gt;
 (parted) rm 5&lt;br /&gt;
 (parted) mkpart primary 237GB 1000GB&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 &lt;br /&gt;
 Number  Start   End     Size    File system     Name     Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                    boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
 5      237GB   1000GB  763GB   ext4            primary  Si File Sytem ext4&lt;br /&gt;
        1000GB  1000GB  204kB   Free Space&lt;br /&gt;
 (parted)quit&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Instalar los paquetes necesarios para el drbd. '''En Ubuntu server 14.04 ya está instalado.'''&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 aptitude install drbd8-utils  &lt;br /&gt;
 aptitude update (si no instala el drbd8-utils actualizar)&lt;br /&gt;
 aptitude install drbd8-utils  (volver a lanzar)&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
* Creamos el archivo '''/etc/drbd.conf''' en ambas maquinas:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 # You can find an example in  /usr/share/doc/drbd.../drbd.conf.example&lt;br /&gt;
 include &amp;quot;drbd.d/global_common.conf&amp;quot;;&lt;br /&gt;
 include &amp;quot;drbd.d/*.res&amp;quot;;&lt;br /&gt;
 resource MDcluster {&lt;br /&gt;
         protocol C;&lt;br /&gt;
         on vivaitcall-CL-UAH-1 {&lt;br /&gt;
               device /dev/drbd0;&lt;br /&gt;
               disk /dev/sda5;&lt;br /&gt;
               address 10.255.254.10:7788;&lt;br /&gt;
               meta-disk internal;&lt;br /&gt;
        }&lt;br /&gt;
        on vivaitcall-CL-UAH-2 {&lt;br /&gt;
               device /dev/drbd0;&lt;br /&gt;
               disk /dev/sda5;&lt;br /&gt;
               address 10.255.254.11:7788;&lt;br /&gt;
               meta-disk internal;&lt;br /&gt;
        }&lt;br /&gt;
        disk {&lt;br /&gt;
               on-io-error detach;&lt;br /&gt;
        }&lt;br /&gt;
        net {&lt;br /&gt;
               max-buffers 2048;&lt;br /&gt;
               ko-count 4;&lt;br /&gt;
        }&lt;br /&gt;
        syncer {&lt;br /&gt;
               rate 100M;&lt;br /&gt;
               al-extents 257;&lt;br /&gt;
        }&lt;br /&gt;
        startup {&lt;br /&gt;
                wfc-timeout 0;&lt;br /&gt;
                degr-wfc-timeout 120;&lt;br /&gt;
        }&lt;br /&gt;
 }&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Reiniciamos el sistema para que el kernel tome los cambios.&lt;br /&gt;
* Inicializamos el recurso, para ello primero deberemos crear los recursos DRBD teclearemos en ambas maquinas. Desde /etc.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
  drbdadm create-md MDcluster  (no y yes )&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Si tenemos algún problema porque ya exista sistema de ficheros.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 dd if=/dev/zero of=/dev/sda5 bs=1M count=128&lt;br /&gt;
 drbdadm create-md MDcluster  (no y yes )&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Reiniciamos ambas maquinas para que su kernel tome los cambios.&lt;br /&gt;
* Levantamos el servicio del DRBD en ambos servidores (nos preguntara que si queremos enviar los datos a los desarrolladores de drbd) tecleando no, no se envían.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 service drbd start&lt;br /&gt;
 /etc/init.d/drbd start&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Ahora &amp;lt;u&amp;gt;ambas maquinas son secundarias&amp;lt;/u&amp;gt;.&lt;br /&gt;
: Indicar cual de las dos maquinas usaremos como primaria, por tanto en la maquina elegida habra que ejecutar:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 drbdadm -- --overwrite-data-of-peer primary all (en una máquina)&lt;br /&gt;
:&amp;lt;small&amp;gt;'''Nota:''' La ip virtual que va a estar asignada a la maquina activa es  172.25.129.70.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Podemos teclear el comando '''''cat''''' para ver si esta sincronizando  y su progreso:&lt;br /&gt;
&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 cat /proc/drbd&lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' El servicio DRBD  aparecera como '''''Primary/Secondary'''''  si ejecutamos en el primario ; &lt;br /&gt;
 y aparecerá ''''Secondary/Primary'''' si lo ejecutamos en el secundario. &amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
* Instalación de los script de arranque:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 update-rc.d -f drbd remove (en las dos maquinas)&lt;br /&gt;
 update-rc.d drbd start 13 2 3 4 5 . stop 87 0 1 6 . (en las dos máquinas)&lt;br /&gt;
|}&lt;br /&gt;
* Seleccionar la fuente de sincronización.&lt;br /&gt;
:Formateamos un disco de la maquina que queramos que funcione como fuente del servicio DRBD, para evitar conflictos:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 mkfs.ext4  /dev/drbd0&lt;br /&gt;
|}&lt;br /&gt;
: Creamos el directorio sobre el que vamos a montar el disco, en ambas maquinas.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 mkdir  /HDcluster&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Creamos un archivo dentro '''''/HDcluster''''' de que se verá solo cuando el disco no está montado en ambas maquinas.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 touch sinMontar&lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' Este archivo nos puede servir para monitorizar mediante zabbix, nagios, ... que el disco no está montado.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:  En una de las maquinas montamos el disco (desde fuera del directorio HDcluster) &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 mount  /dev/drbd0 /HDcluster&lt;br /&gt;
|}&lt;br /&gt;
* Procedemos a mover todos los datos que necesitemos en este disco y a crear accesos directos, los directorios que vamos a mover son los siguientes:&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 /etc/asterisk&lt;br /&gt;
 /var/lib/asterisk&lt;br /&gt;
 /usr/lib/asterisk&lt;br /&gt;
 /usr/spool/asterisk&lt;br /&gt;
 /var/lib/mysql&lt;br /&gt;
 /var/tftp/&lt;br /&gt;
|}&lt;br /&gt;
: El procedimiento que vamos a seguir es el siguiente, en el primer ordenador:&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 '''Cd /HDcluster'''&lt;br /&gt;
 '''tar -zcvf etc-asterisk.tgz /etc/asterisk'''&lt;br /&gt;
 '''tar -zxvf  etc-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /etc/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/etc/asterisk /etc/asterisk'''&lt;br /&gt;
 '''tar -zcvf var-lib-asterisk.tgz /var/lib/asterisk'''&lt;br /&gt;
 '''tar -zxvf  var-lib-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /var/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/asterisk /var/lib/asterisk'''&lt;br /&gt;
 '''tar -zcvf usr-lib-asterisk.tgz /usr/lib/asterisk'''&lt;br /&gt;
 '''tar -zxvf  usr-lib-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /usr/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/usr/lib/asterisk /usr/lib/asterisk'''&lt;br /&gt;
 '''tar -zcvf var-spool-asterisk.tgz /var/spool/asterisk'''&lt;br /&gt;
 '''tar -zxvf  var-spool-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /var/spool/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/spool/asterisk /var/spool/asterisk'''&lt;br /&gt;
 '''tar -zcvf var-lib-mysql.tgz /var/lib/mysql'''&lt;br /&gt;
 '''tar -zxvf  var-lib-mysql.tgz'''&lt;br /&gt;
 '''rm -rf /var/lib/mysql'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/mysql /var/lib/mysql'''&lt;br /&gt;
 '''tar -zcvf var-lib-phoneprov-tftp.tgz /var/lib/phoneprov-tftp/'''&lt;br /&gt;
 '''tar -zxvf  var-lib-phoneprov-tftp.tgz'''&lt;br /&gt;
 '''rm -rf /var/lib/phoneprov-tftp/'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/phoneprov-tftp /var/lib/phoneprov-tftp'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: En la segunda maquina debemos borrar los directorios y crear los accesos directos.&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''rm -rf /etc/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/etc/asterisk /etc/asterisk'''&lt;br /&gt;
 '''rm -rf /var/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/asterisk /var/lib/asterisk'''&lt;br /&gt;
 '''rm -rf /usr/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/usr/lib/asterisk /usr/lib/asterisk'''&lt;br /&gt;
 '''rm -rf /var/spool/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/spool/asterisk /var/spool/asterisk'''&lt;br /&gt;
 '''rm -rf /var/lib/mysql'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/mysql /var/lib/mysql'''&lt;br /&gt;
 '''rm -rf /var/lib/phoneprov-tftp'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/phoneprov-tftp /var/lib/phoneprov-tftp'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Configurar heartbeat para las dos maquinas.&lt;br /&gt;
: Instalamos heartbeat en las dos maquinas. '''En UBUNTU Server 14.04 ya está instalado.'''&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 aptitude install heartbeat&lt;br /&gt;
|}&lt;br /&gt;
: Debemos modificar 3 ficheros en cada una de las maquinas, estos se encuentran en '''/etc/ha.d'''. El primer fichero a modificar es '''''ha.cf.''''':&lt;br /&gt;
:: En la maquina ''vivaitcall-CL-UAH-1'' es: &lt;br /&gt;
::{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# cat /etc/ha.d/ha.cf&lt;br /&gt;
 '''# Explicacion en /usr/share/doc/heartbeat/ha.cf.gz'''&lt;br /&gt;
 &lt;br /&gt;
 '''udpport 694'''&lt;br /&gt;
 '''baud 19200'''&lt;br /&gt;
 '''auto_failback off'''&lt;br /&gt;
 '''use_logd yes'''&lt;br /&gt;
 '''crm no'''&lt;br /&gt;
 &lt;br /&gt;
 '''# Temporizaciones en segs'''&lt;br /&gt;
 '''logfacility local0'''&lt;br /&gt;
 '''keepalive 2'''&lt;br /&gt;
 '''deadtime 8'''&lt;br /&gt;
 '''warntime 16'''&lt;br /&gt;
 '''initdead 64'''&lt;br /&gt;
 '''deadping 6'''&lt;br /&gt;
 &lt;br /&gt;
 '''#ucast bond0 vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''ucast bond0 vivaitcall-CL-UAH-2'''&lt;br /&gt;
 &lt;br /&gt;
 '''#ucast em3 vivaitcall-CL-UAH-1-em3'''&lt;br /&gt;
 '''ucast em3 vivaitcall-CL-UAH-2-em3'''&lt;br /&gt;
 &lt;br /&gt;
 '''#Ping a puerta de enlace,gw1,gw2,gw3,gw4'''&lt;br /&gt;
 '''ping_group red_local 10.255.255.12'''&lt;br /&gt;
 &lt;br /&gt;
 '''respawn hacluster /usr/lib/heartbeat/ipfail'''&lt;br /&gt;
 '''apiauth ipfail gid=haclient uid=hacluster'''&lt;br /&gt;
 &lt;br /&gt;
 '''node vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''node vivaitcall-CL-UAH-2'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:: Y en la maquina ''vivaitcall-CL-palacio-2'' es:&lt;br /&gt;
::{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# cat /etc/ha.d/ha.cf&lt;br /&gt;
 '''# Explicacion en /usr/share/doc/heartbeat/ha.cf.gz'''&lt;br /&gt;
 &lt;br /&gt;
 '''udpport 694'''&lt;br /&gt;
 '''baud 19200'''&lt;br /&gt;
 '''auto_failback off'''&lt;br /&gt;
 '''use_logd yes'''&lt;br /&gt;
 '''crm no'''&lt;br /&gt;
 &lt;br /&gt;
 '''# Temporizaciones en segs'''&lt;br /&gt;
 '''logfacility local0'''&lt;br /&gt;
 '''keepalive 2'''&lt;br /&gt;
 '''deadtime 8'''&lt;br /&gt;
 '''warntime 16'''&lt;br /&gt;
 '''initdead 64'''&lt;br /&gt;
 '''deadping 6'''&lt;br /&gt;
 &lt;br /&gt;
 '''ucast bond0 vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''#ucast bond0 vivaitcall-CL-UAH-2'''&lt;br /&gt;
 &lt;br /&gt;
 '''ucast em3 vivaitcall-CL-UAH-1-em3'''&lt;br /&gt;
 '''#ucast em3 vivaitcall-CL-UAH-2-em3'''&lt;br /&gt;
 &lt;br /&gt;
 '''#Ping a puerta de enlace gw1 gw2 gw3 gw4'''&lt;br /&gt;
 '''ping_group red_local 10.255.255.12'''&lt;br /&gt;
 &lt;br /&gt;
 '''respawn hacluster /usr/lib/heartbeat/ipfail'''&lt;br /&gt;
 '''apiauth ipfail gid=haclient uid=hacluster'''&lt;br /&gt;
 &lt;br /&gt;
 '''node vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''node vivaitcall-CL-UAH-2'''&lt;br /&gt;
|}&lt;br /&gt;
::'''Nota:''' El parámetro '''auto_failback''' se utiliza para indicar si queremos que al recuperarse una maquina adquiera los recursos sobre los que tiene prioridad.&lt;br /&gt;
:El segundo fichero es '''''authkeys''''',, este fichero es el mismo en ambas maquinas: &lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 chmod 600 authkeys '''(importante)'''&lt;br /&gt;
 auth 1&lt;br /&gt;
 1 sha1 claveSecretaATope&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:El tercer fichero '''haresources''', donde especificaremos en las dos maquinas que deben apuntar a la maquina que queremos que tenga prioridad en la adquisición de los recursos, este fichero es el mismo en las dos maquinas: &lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 MÁQUINA 1 -&amp;gt; vivaitcall-CL-palacio-1 hb_mdtel&lt;br /&gt;
 MÁQUINA 2-&amp;gt; vivaitcall-CL-palacio-1 hb_mdtel &lt;br /&gt;
|}&lt;br /&gt;
: Copiaremos en el directorio '''/etc/ha.d/resource.d/''' los scripts de arranque con permisos 755 (lo podemos hacer mediante WINSCP). Los scripts se encuentran en '''''C:\Documents and Settings\javier.gutierrez.MDTEL\Mis documentos\Centrales\Asterisk\Cluster\scripts'''''.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 chmod 755 hb_catalina&lt;br /&gt;
 chmod 755 hb_mdtel&lt;br /&gt;
 chmod 755 hb_mdtel_firewall&lt;br /&gt;
|}&lt;br /&gt;
: Deberemos editar  el archivo '''hb_mdtel'''&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 (IP flotante a.b.c.d./mask) 10.255.255.10&lt;br /&gt;
 CAD_IP_FLOTA=10.255.255.10/24/bond0&lt;br /&gt;
|}&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* Paramos el proceso '''myAcdSuperv'''.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 mv /etc/rc2.d/S02myAcdSuperv s02myAcdSuperv&lt;br /&gt;
|}&lt;br /&gt;
* Reiniciamos ambas maquinas para que su kernel tome los cambios.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de buen funcionamiento del cluster ====&lt;br /&gt;
* La maquina activa tiene que tener en HDcluster montado el disco con todos sus directorios y la maquina inactiva no (tenemos que ver el archivo que hemos creado &amp;quot;sinMontar&amp;quot;). &lt;br /&gt;
* La ip virtual tiene que estar en la maquina activa (ifconfig)  y no tiene que estar en la inactiva. &lt;br /&gt;
* El asterisk tiene que estar arrancado en la maquina activa y parado en la inactiva. &lt;br /&gt;
* Tecleando la ip de la maquina activa en un navegador debemos acceder al portal de vivait-call y en la inactiva no debe de estar activo. &lt;br /&gt;
* Para cambiar el cluster manualmente podemos utilizar los siguientes comandos:&lt;br /&gt;
:{|&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
  /usr/share/heartbeat/hb_takeover&lt;br /&gt;
|}&lt;br /&gt;
: La maquina desde la que se ejecuta se convierte en la maquina activa&lt;br /&gt;
:{|&lt;br /&gt;
 |- &lt;br /&gt;
 |&lt;br /&gt;
  /usr/share/heartbeat/hb_standby&lt;br /&gt;
 |}&lt;br /&gt;
: La maquina desde la que se ejecuta deja de ser la maquina activa&lt;br /&gt;
&lt;br /&gt;
==== Notas para MySQL ====&lt;br /&gt;
Si mysql es parte del cluster tenemos que tener en cuenta dos cosas:&lt;br /&gt;
&lt;br /&gt;
* El archivo '''/etc/mysql/debían.cnf''' contiene una clave que debe ser igual en ambas maquinas y debe ser la clave de la máquina de donde cojamos la base de datos.&amp;lt;br&amp;gt;&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 # Automatically generated for Debian scripts. DO NOT TOUCH!&lt;br /&gt;
 [client]&lt;br /&gt;
 host     = localhost&lt;br /&gt;
 user     = debian-sys-maint&lt;br /&gt;
 password = AI6AdPtnhLUrNm1S&lt;br /&gt;
 socket   = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysql_upgrade]&lt;br /&gt;
 user     = debian-sys-maint&lt;br /&gt;
 password = AI6AdPtnhLUrNm1S&lt;br /&gt;
 socket   = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 basedir  = /usr&lt;br /&gt;
|} &amp;lt;br&amp;gt;&lt;br /&gt;
* El archivo '''/etc/apparmor.d/usr.sbin.mysqld''' contiene donde pueden estar ubicados los archivos de mysql, al cambiar su ubicación y poner un enlace directo en /var/lib/mysql si no modificamos este archivo mysql no arrancara al no tener la nueva ubicación entre sus localizaciones permitidas. Este es un ejemplo de las líneas que debemos añadir. &amp;lt;br&amp;gt;&lt;br /&gt;
:{|&lt;br /&gt;
|-  &lt;br /&gt;
|&lt;br /&gt;
 /var/run/mysqld/mysqld.sock w, (copiar después de esta linea)&lt;br /&gt;
 &lt;br /&gt;
 #//!!&lt;br /&gt;
   /HDcluster/var/lib/mysql/ r,&lt;br /&gt;
   /HDcluster/var/lib/mysql/** rwk,&lt;br /&gt;
   #//!!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Notas de desincronización ====&lt;br /&gt;
EL servicio del DRBD esta iniciado pero al teclear el comando cat /proc/drbd para ver si esta sincronizando se presenta &amp;quot;'''primary/unknown&amp;quot; y/o secondary/unknown''' &amp;quot;.&lt;br /&gt;
* En el nodo primary  &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 drbdadm connect all &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* En el nodo secondary  &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 drbdadm disconnect all  &lt;br /&gt;
 drbdadm -- --discard-my-data connect all&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Adaptar red a cliente ====&lt;br /&gt;
Para adaptar la red de los equipos al entorno del cliente hay que editar los siguientes ficheros:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 /etc/network/interfaces&lt;br /&gt;
 /etc/resolv.conf&lt;br /&gt;
 /etc/hosts&lt;br /&gt;
 /etc/ha.d/resource.d/hb_mdtel&lt;br /&gt;
 /etc/ha.d/ha.cf &lt;br /&gt;
 - TFTP: &lt;br /&gt;
 /etc/inetd.conf (IP del cluster)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
Tras la modificaciones oportunas, se debe reiniciar las dos máquinas para cargar las nuevas configuraciones.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Matriz de conmutación ===&lt;br /&gt;
&lt;br /&gt;
Encontramos dos diferentes núcleos de conmutación en la plataforma VIVAit:&lt;br /&gt;
&lt;br /&gt;
* Para los nodos de procesamiento ACD el núcleo de conmutación es asterisk 1.4 RSP con fuertes modificaciones realizadas por MDtel en determinados módulos (queues, chan_spy entre otros)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Para los nodos que realizan funcionalidad de gateway y/o procesamiento de telefonía corporativa, se utiliza como núcleo de conmutación asterisk 13, versión certified&lt;br /&gt;
https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Documentation&lt;br /&gt;
&lt;br /&gt;
==== Modificaciones realizadas sobre Asterisk 13 certified 2 ====&lt;br /&gt;
&lt;br /&gt;
===== Archivos añadidos por '''MD'''tel =====&lt;br /&gt;
Los archivos añadidos son los siguientes:&lt;br /&gt;
&lt;br /&gt;
* '''apps/app_ucid.c'''&lt;br /&gt;
* '''apps/app_cli.c'''&lt;br /&gt;
* '''apps/app_crash.c'''&lt;br /&gt;
* '''apps/app_mdintz.c'''&lt;br /&gt;
* '''apps/app_mdintz.exports.in'''&lt;br /&gt;
* '''include/asterisk/mdintz.h'''&lt;br /&gt;
* '''include/asterisk/ucid.h'''&lt;br /&gt;
* '''res/res_mdcal.c'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ apps/app_mdintz.exports.in '''&lt;br /&gt;
&lt;br /&gt;
Este archivo sirve para la exportación de funciones del mdintz para el uso por aplicaciones externas&lt;br /&gt;
&lt;br /&gt;
===== Modificaciones de archivos =====&lt;br /&gt;
&lt;br /&gt;
Los archivos modificados por '''MD'''tel son los mostrados a continuación:&lt;br /&gt;
&lt;br /&gt;
* '''apps/app_mixmonitor.c''' &lt;br /&gt;
* '''res/res_calendar_caldav.c'''&lt;br /&gt;
* '''contrib/scripts/safe_asterisk'''&lt;br /&gt;
* '''contrib/init.d/rc.debian.asterisk'''&lt;br /&gt;
* '''channels/sig_pri.c'''&lt;br /&gt;
* '''channels/chan_sip.c'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ main/audiohook.c''' &amp;lt;!--style=&amp;quot;color:#0000ff&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''audiohook.c''' ha sido modificado para solucionar un crash de asterisk al utilizar en el mixmonitor las opciónes r y t &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ app_crash.c '''&lt;br /&gt;
&lt;br /&gt;
Esta nueva aplicación es sólo compatible con '''Asterisk 13'''. &lt;br /&gt;
&lt;br /&gt;
La documentación de la misma se encuentra en el comando: '''&amp;quot;core show application Crash&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
Esta nueva aplicación ''permite añadir'' al plan de pruebas:&lt;br /&gt;
&lt;br /&gt;
* Generación de una parada de asterisk.&lt;br /&gt;
* Verificación de su impacto. Por ejemplo, no deben cortarse las llamadas en curso, si así está previsto por la topología.&lt;br /&gt;
* Correcta generación de los &amp;quot;core&amp;quot;, comprobando que funciona &amp;quot;backtrace&amp;quot; (bt).&lt;br /&gt;
&lt;br /&gt;
 '''Nota.-''' Esta aplicación no debería estar presente en una instalación de '''Asterisk 13'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ app_mdintz.c y mdintz.h''' &amp;lt;!--style=&amp;quot;color:#0000ff&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esta aplicación sirve como interfaz a entornos (funcionalidades) creados por MDtel&lt;br /&gt;
&lt;br /&gt;
Para mas información consultar la página de [[MDintz|MDintz]].&lt;br /&gt;
&lt;br /&gt;
Las rutas de estos archivos son las siguientes:&lt;br /&gt;
&lt;br /&gt;
'''apps/app_mdintz.c''' &amp;lt;br/&amp;gt;&lt;br /&gt;
'''include/asterisk/mdintz.h '''&lt;br /&gt;
&lt;br /&gt;
 '''app_mdintz.c''' :&lt;br /&gt;
&lt;br /&gt;
'''app_mdintz.c''' orientada al proceso de enrutamiento a implementar en ''intz-nimitz.''&lt;br /&gt;
&lt;br /&gt;
El archivo '''.c''' es casi igual para asterisk 1.4.24 y asterisk 13. &lt;br /&gt;
 '''Nota.-''' Cuando se compila para asterisk 13, es necesario comentar la línea que pone&amp;lt;br /&amp;gt; '''&amp;quot;#define ASTERISK_OLD&amp;quot;.'''&lt;br /&gt;
&lt;br /&gt;
Los cambios implementados son:&lt;br /&gt;
&lt;br /&gt;
* Unificación de código entre las versiones de asterisk&lt;br /&gt;
* Nuevo comando &amp;quot;qry&amp;quot;&lt;br /&gt;
* Posible resolución de &amp;quot;Mal write&amp;quot; en intz-nimitz (a verificar)&lt;br /&gt;
&lt;br /&gt;
En cuanto al nuevo comando, el formato es:&lt;br /&gt;
&lt;br /&gt;
 '''mdintz qry &amp;lt;nHostFijo&amp;gt; &amp;lt;entorno&amp;gt; &amp;lt;servicio&amp;gt; &amp;lt;par1&amp;gt;...&amp;lt;parN&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Permite interrogar a un servidor de igual modo que hace el dialplan con '''fines de diagnóstico'''. La única diferencia es que se ha añadido el parámetro '''&amp;quot;nHostFijo&amp;quot;''' que puede tomar como valor '''&amp;quot;*&amp;quot;''' (lo que solicita una interrogación secuencial a todos los servidores definidos, igual a la funcionalidad del dialplan) ó '''&amp;quot;0&amp;quot;''' a '''&amp;quot;3&amp;quot;''' (que solicita un interrogación dirigida el host indicado como hostN, y sólo a él, en archivo de configuración).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para instalarlo, es necesario copiar:&lt;br /&gt;
&lt;br /&gt;
* '''asterisk/apps/app_mdintz.c'''&lt;br /&gt;
* '''asterisk/include/asterisk/mdintz.h'''&lt;br /&gt;
* En asterisk 1.4.24 conviene asegurar que se ha actualizado '''&amp;quot;asterisk/apps/app_queue.o&amp;quot;''' y '''&amp;quot;asterisk/apps/app_queue.so&amp;quot;'''&lt;br /&gt;
* Luego '''&amp;quot;make&amp;quot;, &amp;quot;make install&amp;quot;''' y module '''&amp;quot;unload/load&amp;quot;''' (mejor &amp;quot;stop now&amp;quot; y start)&lt;br /&gt;
&lt;br /&gt;
'''→ scripts y rc.debian.asterisk'''&lt;br /&gt;
&lt;br /&gt;
cambiado contrib/scripts por el modificado por MDtel&amp;lt;br /&amp;gt;&lt;br /&gt;
cambiado contrib/init.d/rc.debian.asterisk por el modificado por MDtel &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ Carpeta mp3 añadida al directorio addons'''&lt;br /&gt;
&lt;br /&gt;
La carpeta mp3 en addons permite la reproducción desde el diaplan de los mensajes en mp3. En make menuselect hay que marcar el format_mp3 y app_mp3 e instalar el paquete mpg123 de ubuntu &lt;br /&gt;
&lt;br /&gt;
'''→ sig_pri.c'''&lt;br /&gt;
&lt;br /&gt;
Modificado para enviar/recibir el ucid en un primario qsig &lt;br /&gt;
&lt;br /&gt;
Para que se envie el ucis tenemos que habilitar el envio de facilidades en el chan_dahdi.conf&lt;br /&gt;
&lt;br /&gt;
facilityenable = yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ init.d''' &amp;lt;!--style=&amp;quot;color:#0000ff&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Uno de los archivos modificados ha sido '''init.d''', se encuentra en la ruta: '''/etc/init.d/asterisk'''. La modificación realizada es la siguiente:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;background-color:#ffffcc;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| SAFE_ASTEISK=/usr/sbin/safe_asterisk &amp;lt;br/&amp;gt;&lt;br /&gt;
if [ -x $SAFE_ASTERISK ] ; then&amp;lt;br/&amp;gt;&lt;br /&gt;
:# //!! wkw&amp;lt;br/&amp;gt;&lt;br /&gt;
:DAEMON=$SAFE_ASTERISK&amp;lt;br/&amp;gt;&lt;br /&gt;
fi&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--archivo--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''→ safe-asterisk'''&lt;br /&gt;
* Se encuentra en la siguiente ruta:'''/usr/sbin/safe-asterisk''' .En este archivo se ha modificado MAXFILES=32768&lt;br /&gt;
&lt;br /&gt;
'''→ default'''&lt;br /&gt;
&lt;br /&gt;
* Este fichero podemos encontrarlo en: '''/etc/default/asterisk'''. La finalidad de la modificación de este fichero es poder correr como usuario Asterisk, grupo asterisk y generar cores (descomentar línea)&lt;br /&gt;
Las modificaciones realizadas han sido:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;background-color:#ffffcc;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| AST_USER=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
AST_GROUP=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
COREDUMP=yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Nueva función de asterisk: app_cli.so =====&lt;br /&gt;
&lt;br /&gt;
Esta función permite ejecutar desde el '''dialplan''' un comando de línea de consola de '''asterisk (CLI).''' Su primer uso (y esperamos que no último) será para lanzar los '''notify''' que los teléfonos necesitan para el ''reaprovisionamiento'' desde el portal o desde la facilidad de movilidad de usuario.&lt;br /&gt;
&lt;br /&gt;
Básicamente ejecuta un comando y devuelve su salida. Utiliza un archivo intermedio que puede ser:&lt;br /&gt;
&lt;br /&gt;
* '''/dev/null''' si el campo se deja vacío, por tanto, no se puede recuperar la salida.&lt;br /&gt;
* '''TEMP''', en cuyo caso se crea un archivo temporal que se borra antes de finalizar la ejecución de la función.&lt;br /&gt;
* Un nombre de fichero que es responsabilidad del dialplan el borrarlo cuando proceda.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para instalarlo basta copiar '''apps/app_cli.c''' en el directorio ''' &amp;quot;apps&amp;quot; ''' de los fuentes y luego  ejecutar '''&amp;quot;make&amp;quot; y &amp;quot;make install&amp;quot;.'''&lt;br /&gt;
&lt;br /&gt;
A continuación se pasa el resultado de '''&amp;quot;core show function CLI&amp;quot; '''&lt;br /&gt;
&lt;br /&gt;
'''[Synopsis]'''&lt;br /&gt;
&lt;br /&gt;
 Lanza un comando CLI desde dialplan&lt;br /&gt;
&lt;br /&gt;
'''[Description]''' &amp;lt;br /&amp;gt;&lt;br /&gt;
 - CLI(nomArchSal,cmd)&amp;lt;br /&amp;gt;&lt;br /&gt;
 - Si 'nomArchSal' está vacio, se usa '/dev/null' y no se recupera resultado&amp;lt;br /&amp;gt;&lt;br /&gt;
 - Si 'nomArchSal'=TEMP, Se crea un archivo temporal que se borra al final&amp;lt;br /&amp;gt;&lt;br /&gt;
 - En otro caso, se crea el archivo y no se borra&lt;br /&gt;
&lt;br /&gt;
'''[Syntax]'''&amp;lt;br /&amp;gt;&lt;br /&gt;
 CLI(nomArchSal,cmd)&lt;br /&gt;
&lt;br /&gt;
'''[Arguments]'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''nomArchSal'''&lt;br /&gt;
    Archivo de salida (si se omite, /dev/null)&lt;br /&gt;
'''cmd'''&lt;br /&gt;
    Comando a ejecutar via CLI&lt;br /&gt;
&lt;br /&gt;
==== Dialplan  ====&lt;br /&gt;
&lt;br /&gt;
El Dialplan podría considerarse la columna vertebral del sistema ''Asterisk''.&lt;br /&gt;
&lt;br /&gt;
Es una colección ordenada de acciones que se llevan a cabo cuando un usuario marca una serie de números. Hace la función de una tabla de enrutamiento de llamadas.&lt;br /&gt;
&lt;br /&gt;
Todas las configuraciones generales de Asterisk están accesibles en la ruta '''/etc/asterisk'''&lt;br /&gt;
&lt;br /&gt;
'''CONCEPTOS BÁSICOS'''&lt;br /&gt;
&lt;br /&gt;
♦ '''EXTENSIONES'''&lt;br /&gt;
&lt;br /&gt;
Una extensión es una marcación en el teclado de un teléfono. Dicha configuración podemos encontrarla en el archivo '''extensions.conf''' &lt;br /&gt;
&lt;br /&gt;
Por ejemplo, un usuario podría marcar “3001” en su teléfono, y eso sería una extensión. También podría marcar un número de teléfono nacional, como por ejemplo “915881000”, y también sería una extensión.&lt;br /&gt;
&lt;br /&gt;
En Asterisk pueden definirse también extensiones como texto, por tanto no debemos relacionar las extensiones únicamente con números.&lt;br /&gt;
&lt;br /&gt;
Algunas reglas que sería interesante conocer serían las siguientes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Regla''' !! '''Descripción'''&lt;br /&gt;
|-&lt;br /&gt;
| '''X''' || Cualquier cifra de 0 a 9&lt;br /&gt;
|-&lt;br /&gt;
|'''Z'''||Cualquier cifra de 1 a 9&lt;br /&gt;
|-&lt;br /&gt;
|'''N'''||Cualquier cifra de 2 a 9&lt;br /&gt;
|-&lt;br /&gt;
|'''[x-y]'''||Cualquier cifra de &amp;quot;x&amp;quot; a &amp;quot;y&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''[xyz]'''|| 	Las cifras &amp;quot;x&amp;quot;, &amp;quot;y&amp;quot; o &amp;quot;z&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''.'''||Una o más repeticiones del símbolo anterior&lt;br /&gt;
|-&lt;br /&gt;
|'''!'''||Cero o más repeticiones del símbolo anterior&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Estas reglas son necesarias a la hora de definir por ejemplo todos los números de teléfono posibles en España &lt;br /&gt;
&lt;br /&gt;
♦ '''PRIORIDADES'''&lt;br /&gt;
&lt;br /&gt;
En lenguaje scripting, las acciones se van ejecutando de arriba a abajo en orden. En cambio, en Asterisk, el orden en el que se ejecutan las acciones es el indicado mediante números.&lt;br /&gt;
Primero se ejecutará la acción 1, luego la 2...así sucesivamente.&lt;br /&gt;
&lt;br /&gt;
Es decir no basta con definir las acciones que se llevarán a cabo, también debemos indicar el orden en el que se llevarán a cabo.&lt;br /&gt;
&lt;br /&gt;
♦ '''CONTEXTOS'''&lt;br /&gt;
&lt;br /&gt;
Es mecanismo que nos permite variar el comportamiento del sistema en función del número que se marque. Su misión es aumentar la seguridad del sistema ofreciendo servicios diferenciados en función del usuario.&lt;br /&gt;
&lt;br /&gt;
La sintaxis típica es el nombre del contexto englobado entre corchetes [nombre_contexto]. Si un dispositivo no tiene un contexto definido se redirige directamente al contexto por defecto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los ficheros que conforman el Dialplan se clasifican en:&lt;br /&gt;
&lt;br /&gt;
* '''Generales'''&lt;br /&gt;
* '''Particulares'''&lt;br /&gt;
* '''Web'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Fichero''' !! '''Función'''&lt;br /&gt;
|-&lt;br /&gt;
| '''Generales''' || Se encuentran los ficheros de propios de MDtel y Asterisk. Es importante remarcar que estos ficheros NO pueden ser modificados por el usuario.&lt;br /&gt;
|-&lt;br /&gt;
|'''Particular'''||Estos ficheros son los únicos que puede modificar el usuario&lt;br /&gt;
|-&lt;br /&gt;
|'''Web'''|| Se encierran aquí los archivos generados automáticamente por la plataforma, a través del portal&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
En función del nodo en el que estemos trabajando, encontraremos dos tipos de dialplan:&lt;br /&gt;
&lt;br /&gt;
'''* Dialplan ACD''' --&amp;gt; Dialplan que aplica a nodos ACD&lt;br /&gt;
&lt;br /&gt;
'''* Dialplan corporativa''' --&amp;gt; Dialplan que aplica a nodos de corporativa o gateways (ya sean de corporativa o ACD)&lt;br /&gt;
&lt;br /&gt;
A continuación se muestran las tablas con los ficheros correspondientes a cada Dialplan.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;FloralWhite&amp;quot;&lt;br /&gt;
|+ '''Ficheros de configuración Dialplan Corporativo'''&lt;br /&gt;
| '''GENERALES'''&lt;br /&gt;
| '''PARTICULARES'''&lt;br /&gt;
| '''WEB'''&lt;br /&gt;
|-&lt;br /&gt;
| ext_Grabaciones.conf &amp;lt;br /&amp;gt;ext_InicioLlamada.conf &amp;lt;br /&amp;gt; ext_InicioLlamada_Dahdi.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP.conf &amp;lt;br/&amp;gt;ext_InicioLlamada_TrunkSIP.conf &amp;lt;br /&amp;gt;ext_MARCAR_ColaCentralita.conf &amp;lt;br /&amp;gt; ext_MARCAR_ColaCentralita_Dial.conf&amp;lt;br /&amp;gt; ext_MARCAR_Cola.conf &amp;lt;br /&amp;gt;ext_MARCAR_Cola_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR.conf  &amp;lt;br /&amp;gt; ext_MARCAR_DejarMensaje.conf &amp;lt;br /&amp;gt; ext_MARCAR_DejarMensaje_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Extension.conf&amp;lt;br /&amp;gt;ext_MARCAR_Extension_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_nimitz.conf&amp;lt;br /&amp;gt;ext_MARCAR_Interno.conf &amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje.conf &amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR_Nodo.conf&amp;lt;br /&amp;gt;ext_MARCAR_Nodo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Servicios.conf &amp;lt;br /&amp;gt;ext_MARCAR_VDN.conf &amp;lt;br /&amp;gt;MARCAR_VDN_Dial.conf&amp;lt;br /&amp;gt;ext_MDtel.conf &amp;lt;br /&amp;gt;ext_MDtel_Var.conf &amp;lt;br /&amp;gt;ext_Subrutinas_AnchoBanda.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD_Facilidad.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD_Facilidad.conf &amp;lt;br /&amp;gt; ext_Subrutinas_Colas.conf &amp;lt;br /&amp;gt;ext_Subrutinas.conf &amp;lt;br /&amp;gt;ext_Subrutinas_Enrutamiento.conf &amp;lt;br /&amp;gt;ext_Subrutinas_finLlamada.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Grabacion.conf&amp;lt;br /&amp;gt;ext_Subrutinas_nimitz.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Varias.conf&amp;lt;br /&amp;gt;ext_Subscribe.conf&amp;lt;br /&amp;gt;ext_Transfer.conf &amp;lt;br /&amp;gt;ext_Transfer_ExtSIP.conf&amp;lt;br /&amp;gt;ext_Transfer_TrunkInternos.conf &amp;lt;br /&amp;gt;ext_TrunkInternos.conf&amp;lt;br /&amp;gt;ext_TrunkInternos_Dial.conf &amp;lt;br /&amp;gt;sip_Estatico.conf&amp;lt;br /&amp;gt; sip_GENCUST.conf &amp;lt;br /&amp;gt;sip_notify.conf &amp;lt;br /&amp;gt;queues.conf &amp;lt;br /&amp;gt; queues_GENERAL.conf &amp;lt;br /&amp;gt;queues_PLANTILLACOLAS.conf&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| ext_Enrutador_Particular.conf&amp;lt;br /&amp;gt; ext_InicioLlamada_Dahdi_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_Particular.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_TrunkSIP_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_Extension_Particular.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo_Particular.conf &amp;lt;br/&amp;gt; ext_MARCAR_Facilidad_Particular.conf&amp;lt;br /&amp;gt; ext_MARCAR_VDN_Particular.conf &amp;lt;br /&amp;gt;ext_MDtel_Particular.conf &amp;lt;br/&amp;gt; ext_TrunkInternos_Particular.conf &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|asterisk_WEB.conf &amp;lt;br /&amp;gt; ext_MDtel_WEB.conf &amp;lt;br /&amp;gt; sip_trunkExt_WEB.conf &amp;lt;br /&amp;gt;sip_trunkInt_WEB.conf &amp;lt;br /&amp;gt;sip_trunk_WEB.conf &amp;lt;br /&amp;gt; sip_WEB.conf &amp;lt;br /&amp;gt; queues_WEB.conf&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;FloralWhite&amp;quot;&lt;br /&gt;
|+ '''Ficheros de configuración Dialplan ACD'''&lt;br /&gt;
| '''GENERALES'''&lt;br /&gt;
| '''PARTICULARES'''&lt;br /&gt;
| '''WEB'''&lt;br /&gt;
|-&lt;br /&gt;
| ext_Enrutador.conf&amp;lt;br /&amp;gt;ext_Grabaciones.conf &amp;lt;br /&amp;gt; ext_InicioLlamada.conf &amp;lt;br /&amp;gt; ext_InicioLlamada_CTI.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_Dahdi.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_Marcador.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_TrunkSIP.conf &amp;lt;br /&amp;gt;ext_MARCAR_ColaCentralita.conf &amp;lt;br /&amp;gt;ext_MARCAR_ColaCentralita_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR_Cola.conf &amp;lt;br /&amp;gt;ext_MARCAR_Cola_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR.conf &amp;lt;br /&amp;gt;ext_MARCAR_DejarMensaje.conf &amp;lt;br /&amp;gt;ext_MARCAR_DejarMensaje_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Extension.conf &amp;lt;br /&amp;gt;ext_MARCAR_Extension_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_nimitz.conf&amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje.conf &amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Nodo.conf &amp;lt;br /&amp;gt;ext_MARCAR_Nodo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR_Servicios.conf &amp;lt;br /&amp;gt;ext_MARCAR_VDN.conf &amp;lt;br /&amp;gt;ext_MARCAR_VDN_Dial.conf&amp;lt;br /&amp;gt;ext_MDtel.conf &amp;lt;br /&amp;gt;ext_MDtel_Var.conf &amp;lt;br /&amp;gt;ext_Subrutinas_AnchoBanda.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD_Facilidad.conf &amp;lt;br /&amp;gt; ext_Subrutinas_Colas.conf &amp;lt;br /&amp;gt;ext_Subrutinas.conf &amp;lt;br /&amp;gt;ext_Subrutinas_Enrutamiento.conf &amp;lt;br /&amp;gt; ext_Subrutinas_finLlamada.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Grabacion.conf &amp;lt;br /&amp;gt;ext_Subrutinas_nimitz.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Varias.conf &amp;lt;br /&amp;gt;ext_Subscribe.conf&amp;lt;br /&amp;gt;ext_Transfer.conf &amp;lt;br /&amp;gt;ext_Transfer_ExtSIP.conf&amp;lt;br /&amp;gt;ext_Transfer_TrunkInternos.conf &amp;lt;br /&amp;gt;ext_TrunkInternos.conf &amp;lt;br /&amp;gt;ext_TrunkInternos_Dial.conf &amp;lt;br /&amp;gt;queues_GENERAL.conf&amp;lt;br /&amp;gt;queues_PLANTILLACOLAS.conf &amp;lt;br /&amp;gt;sip_GENCUST.conf &amp;lt;br /&amp;gt;sip_GENERAL.conf &amp;lt;br /&amp;gt;sip_notify.conf &amp;lt;br /&amp;gt;sip_PLANTILLAEXT.conf&amp;lt;br /&amp;gt;sip_supervision.conf &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| ext_Enrutador_Particular.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_CTI_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_Dahdi_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_Marcador_Particular.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_Particular.conf.&amp;lt;br /&amp;gt;ext_InicioLlamada_TrunkSIP_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_Externo_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_VDN_Particular.conf&amp;lt;br /&amp;gt; ext_MDtel_Particular.conf&amp;lt;br /&amp;gt;ext_TrunkInternos_Particular.conf&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
|asterisk_WEB.conf &amp;lt;br /&amp;gt; ext_MDtel_WEB.conf &amp;lt;br /&amp;gt;queues_WEB.conf&amp;lt;br /&amp;gt; sip_trunkInt_WEB.conf &amp;lt;br /&amp;gt;sip_WEB.conf &amp;lt;br /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Servicios networking ===&lt;br /&gt;
Son muy importantes las configuraciones adecuadas de los servicios de:&lt;br /&gt;
&lt;br /&gt;
* '''NTP''': El sistema en global ha de estar sincronizado; todos los servidores y puestos de trabajo (en el caso de ''VIVA''it Suite) han de estar perfectamente sincronizados; los servidores de la plataforma se sincronizarán con el NTP del cliente; si el cliente no tiene NTP será necesario que un servidor de la plataforma se sincronice con un NTP externo y este sea el servidor para el resto de la plataforma&lt;br /&gt;
&lt;br /&gt;
* '''DNS''': La configuración de DNS de la plataforma será coherente con el resto de la plataforma IT del cliente&lt;br /&gt;
&lt;br /&gt;
* '''DHCP''': Es necesario coordinar con el cliente la asignación de direcciones para los diferentes elementos de la plataforma '''''VIVA'''''it, fundamentalmente para terminales telefónicos; en este caso además será necesario activa la opción 66 que permitirá definir el servidor TFTP del que los terminales cogerán sus ficheros de aprovisionamiento&lt;br /&gt;
&lt;br /&gt;
=== Bases de datos (BBDD)===&lt;br /&gt;
&lt;br /&gt;
La base de datos del sistema se basa en el motor de base de datos MySQL, es un elemento crítico del sistema, en el que insertan y del que obtiene mucha información múltiples procesos.&lt;br /&gt;
Muchas comunicaciones entre procesos se realizan vía Base de Datos (tabla COM_COMUNICADOS). Pueden existir distintas instancias de base de datos que explicadas en las siguientes secciones, nuestra base de datos tiene la siguiente estructura: [[Base de datos|Información completa de la BD]]. Podéis ampliar más información en https://dev.mysql.com/doc/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== BBDD Tiempo Real ====&lt;br /&gt;
En la base de datos de tiempo real insertan información todos los procesos del sistema, y se realizan los cambios en configuración utilizando como herramienta el portal de administración y '''''VIVA'''''it Supervisor&lt;br /&gt;
&lt;br /&gt;
De la base de datos de tiempo real leen los procesos que requieren información, y las aplicaciones:&lt;br /&gt;
*'''''VIVA'''''it Supervisor (para reporting de tiempo real)&lt;br /&gt;
*PanelWeb&lt;br /&gt;
*Datos de sesión de '''''VIVA'''''it Desk&lt;br /&gt;
*Monitorización Zabbix&lt;br /&gt;
* Otros&lt;br /&gt;
&lt;br /&gt;
El portal de administración se encarga de escribir las configuraciones añadidas o modificadas en la base de datos&lt;br /&gt;
&lt;br /&gt;
==== BBDD Réplica ====&lt;br /&gt;
A efectos de asegurar las prestaciones del sistema, se establece una réplica de la base de datos, sincronizada con la de tiempo real; los procesos y aplicaciones pesados, que realicen consultas a las base de datos que puedan comprometer las prestaciones del sistema atacan a la réplica y nunca a la base de datos de tiempo real&lt;br /&gt;
&lt;br /&gt;
Es posible que en instalaciones pequeñas no exista réplica, en cuyo caso se establece una base de datos unificada sobre la de tiempo real, en la que se añaden índices y procedimientos almacenados que típicamente residen en la de réplica.&lt;br /&gt;
&lt;br /&gt;
Es posible establecer tantas réplicas como sean necesarias si diferentes procesos pesados se penalizan en exceso, si bien una implantación tipo contemplará una sola&lt;br /&gt;
&lt;br /&gt;
Algunos procesos que utilizan la base de datos de réplica son:&lt;br /&gt;
*'''''VIVA'''''it Reporting&lt;br /&gt;
*'''''VIVA'''''it Tracker&lt;br /&gt;
*Histórico en tiempo real de '''''VIVA'''''it Supervisor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANTE: Ningún proceso, programa, aplicación, etc. escribe en la base de datos de réplica; tan solo se extrae información'''&lt;br /&gt;
&lt;br /&gt;
==== BBDD de copia ====&lt;br /&gt;
A efectos de asegurar el funcionamiento y como medida de contingencia ante un problema puntual de comunicación con la BD de tiempo real, en cada nodo disponemos de una BD de copia local. Posiblemente de un tamaño menor que la BD de tiempo real, dependiendo de cuanto tiempo pase hasta la próxima sincronización con la base de tiempo real.Esta base de datos llamada '''nimitzCopia'''.&lt;br /&gt;
  &lt;br /&gt;
Solo entrara en funcionamiento,cuando se produzca el problema mencionado, dejando acceder a los datos y poder dar servicio a la empresa mientras se soluciona el problema.&lt;br /&gt;
&lt;br /&gt;
===== Backup y restore =====&lt;br /&gt;
&lt;br /&gt;
Se utilizan dos script, para realizar la copia de seguridad y restaurar en la base de datos de copia local que son:&lt;br /&gt;
&lt;br /&gt;
* El proceso '''bdCentral.sh''' que es el encargado de realizar la copia de seguridad. Tiene un archivo de configuración bdCentral.conf. En este archivo hay un parámetro (IGNORE_TABLAS) que indica las tablas de las que NO se realizará copia de seguridad. Toda tabla que no se indique formará parte de la copia de seguridad. Vuelca los resultados en /var/log/bdCentral.log&lt;br /&gt;
* El proceso '''bdNodo.sh''' que es el encargado de descargar la copia de seguridad y restaurarla en local. Tiene un archivo de configuración bdNodo.conf. Vuelca los resultados en /var/log/bdNodo.log. El fichero de backup se copia mediante el usuario sincroniza, que deberá poder acceder sin contraseña al servidor donde reside la copia.&lt;br /&gt;
&lt;br /&gt;
En caso de producirse algún error en alguno de los procesos, marcarán dicho error en el log con una línea que comienza con la cadena &amp;quot;*ERROR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Diagnósticos y operaciones sobre bases de datos ====&lt;br /&gt;
&lt;br /&gt;
=====Comprobación que una base de datos está arrancada=====&lt;br /&gt;
Para comprobar si la base de datos está arrancada debemos poner en el terminal : '''ps aux | grep mysql'''&lt;br /&gt;
&lt;br /&gt;
Si la base de datos está arrancada y funcionando correctamente se nos mostrará en el terminal:&lt;br /&gt;
[[Archivo:Base_Datos_bien.png‎ |500px|center]]&lt;br /&gt;
&lt;br /&gt;
Por el contrario, si la base de datos presenta algun problema el mensaje mostrado será:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Base_datos_mal.png |center]]&lt;br /&gt;
&lt;br /&gt;
=====Comprobación que la base de datos de réplica está sincronizada con la base de datos de tiempo real.=====&lt;br /&gt;
&lt;br /&gt;
Si se necesita verificar que la base de réplica está sincronizada con la base de datos en tiempo real basta con acudir al comando : '''show slave status\G'''.&lt;br /&gt;
&lt;br /&gt;
Una vez introducido veremos:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Replica.png |980px|center]]&lt;br /&gt;
&lt;br /&gt;
Comandos importantes, desde dentro consola de Mysql:&lt;br /&gt;
&lt;br /&gt;
 '''show master status''': Realizado desde el master&lt;br /&gt;
 '''show slave status''': Realizado desde el esclavo; el valor &amp;quot;seconds behind master&amp;quot; nos indica&lt;br /&gt;
 cuanto está retrasada la réplica con respecto a la base de datos de tiempo real. Si el valor de este campo es elevado nos indicará &lt;br /&gt;
 que la base de datos real con la réplica no estará sincronizada, por tanto, nos interesa que este valor sea lo más pequeño posible.&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Procesos propios ===&lt;br /&gt;
&lt;br /&gt;
==== bdCentral ====&lt;br /&gt;
&lt;br /&gt;
El proceso ''bdCentral.sh'' es el encargado de realizar la copia de seguridad. Tiene un archivo de configuración ''bdCentral.conf'' el cual puede encontrarse en la ruta '''/etc/MDtel/bdCentral.conf'''. En este archivo hay un parámetro (IGNORE_TABLAS) que indica las tablas de las que NO se realizará copia de seguridad. Toda tabla que no se indique formará parte de la copia de seguridad. Vuelca los resultados en /var/log/bdCentral.log&lt;br /&gt;
&lt;br /&gt;
En caso de producirse algún error, se marcará dicho error en el log con una línea que comienza con la cadena &amp;quot;*ERROR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Para ejecutar bdCentral:&lt;br /&gt;
 bdCentral.sh /etc/MDtel/bdCentral.conf&lt;br /&gt;
&lt;br /&gt;
Estos procesos se ejecutan automáticamente. Para ello está copiado el fichero bdCentral a /etc/cron.d.&lt;br /&gt;
&lt;br /&gt;
Por defecto la programación vienen comentada por lo que será necesario activarlo.&lt;br /&gt;
&lt;br /&gt;
Para que se roten los logs hay que copiar el fichero bdCentral.logrotate a /etc/logrotate.d (como bdCentral)&lt;br /&gt;
La ruta donde se encuentran los logs es la siguiente: '''/var/log/myAcdSuperv.log'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
*A continuación se explica la utilidad de los campos mas relevantes del fichero de configuración bdCentral.conf. &lt;br /&gt;
ARCH_LOG : &lt;br /&gt;
BDHOST: Localización de la base de datos&lt;br /&gt;
BDUSU: Usuario para la base de datos&lt;br /&gt;
BDRUTA: Ruta donde se encuentra la base de datos&lt;br /&gt;
IGNORE_TABLAS:&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== bdNodo ====&lt;br /&gt;
El proceso bdNodo.sh es el encargado de descargar la copia de seguridad y restaurarla en local. Tiene un archivo de configuración bdNodo.conf, este archivo puede encontrarse en la ruta '''/etc/MDtel/bdNodo.conf.''' Vuelca los resultados en /var/log/bdNodo.log. El fichero de backup se copia mediante el usuario sincroniza, que deberá poder acceder sin contraseña al servidor donde reside la copia.&lt;br /&gt;
&lt;br /&gt;
En caso de producirse algún error, se marcará dicho error en el log con una línea que comienza con la cadena &amp;quot;*ERROR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Para ejecutar bdNodo:&lt;br /&gt;
&lt;br /&gt;
 bdNodo.sh /etc/MDtel/bdNodo.conf&lt;br /&gt;
&lt;br /&gt;
Estos procesos se ejecutan automáticamente. Para ello está copiado el fichero bdNodo a /etc/cron.d.&lt;br /&gt;
&lt;br /&gt;
Por defecto la programación vienen comentada por lo que será necesario activarlo.&lt;br /&gt;
&lt;br /&gt;
Para que se roten los logs hay que copiar el fichero bdNodo.logrotate a /etc/logrotate.d (como bdNodo)&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Intz-Nimitz ====&lt;br /&gt;
&lt;br /&gt;
Permite integrar procesos de asterisk (del dialplan) con la base de datos; por ejemplo es el que graba segmentos, inspecciona donde esta registrado un agente…etc. La estabilidad de este proceso es importante para el funcionamiento del sistema, si bien las llamadas entran en caso de no estar disponible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para mas información consultar la página de [[intz-nimitz|intz-nimitz]].&lt;br /&gt;
&lt;br /&gt;
Desde un SSH ejecuta el comando “nc ip_maquina 1115”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1115'''&lt;br /&gt;
 intz-nimitz sis ver='V02.6' inic='20140401 110116' alarmas=21 ultAlar='20140414 171244'&lt;br /&gt;
 intz-nimitz gmp msj=942/1024 buf=1024/1024 tarea=16/102&lt;br /&gt;
 intz-nimitz tmp uptime=1816550 (21d 0h 35m 50s)&lt;br /&gt;
 intz-nimitz vic identif='cms1' entorno='nimitz' conx=0/128 numConx=1018(0)&lt;br /&gt;
 intz-nimitz mys curro=80/0/0/0 soli=1012(0) soliErr=6(0) soliEncol=0(0/0)&lt;br /&gt;
 intz-nimitz cache colas=128/10/0/0 vdn=128/8/0/0 usuExten=10/0/0/0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parámetro!!Descripción&lt;br /&gt;
|-&lt;br /&gt;
|sis/ver||Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|sis/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|Sis/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|Sis/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/msj||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/buf||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/tarea||&lt;br /&gt;
|-&lt;br /&gt;
|Tmp/uptime||Tiempo que lleva el servicio activo&lt;br /&gt;
|-&lt;br /&gt;
|Vic/identif||Etiqueta de identificación del servicio&lt;br /&gt;
|-&lt;br /&gt;
|Vic/entorno||Entorno de base de datos&lt;br /&gt;
|-&lt;br /&gt;
|Vic/conx||Conexiones activas/conexiones máximas&lt;br /&gt;
|-&lt;br /&gt;
|Vic/numConx||Conexiones totales (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|Mys/curro||Número de hilos contra la base de datos&lt;br /&gt;
|-&lt;br /&gt;
|Mys/soli||Conexiones solicitadas (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|Mys/soliErr||Conexiones solicitadas con error (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|Mys/soliEncol||Conexiones encoladas&lt;br /&gt;
|-&lt;br /&gt;
|Cache/cola|| Colas monitorizadas/&lt;br /&gt;
|-&lt;br /&gt;
|Cache/vdn||VDN’s monitorizados&lt;br /&gt;
|-&lt;br /&gt;
|Cache/usuExten||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en  '''/etc/MDtel/intz-nimitz.conf'''&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/intz-nimitz.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
A continuación se muestran los campos mas importantes del fichero de configuración intz-nimitz.conf:&lt;br /&gt;
&lt;br /&gt;
enrutamiento &lt;br /&gt;
{ &lt;br /&gt;
        hay_enrutamiento = 1 &lt;br /&gt;
        max_pre_ruta_regs = 4 &lt;br /&gt;
        max_ruta = 4 &lt;br /&gt;
        max_ruta_desvios = 2 &lt;br /&gt;
# Filtro de informacion de ancho de banda &lt;br /&gt;
# MYSDanchoBandaPasoNinguno      0 &lt;br /&gt;
# MYSDanchoBandaPasoSoloDirectos 1 &lt;br /&gt;
# MYSDanchoBandaPasoSoloEnPaso   2 &lt;br /&gt;
# MYSDanchoBandaPasoTodos        3 &lt;br /&gt;
        filtro_ancho_banda = 1 &lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
mysql &lt;br /&gt;
{ &lt;br /&gt;
        hay_mysql = 1   Indica si hay base de datos mysql&lt;br /&gt;
        host = BDTR &lt;br /&gt;
        usuario = nimitz   Usuario base de datos&lt;br /&gt;
        clave = phikau3iwCe4O0PP5b09ng==   clave base de datos&lt;br /&gt;
        base_datos = nimitz &lt;br /&gt;
        bd_supervivencia = 0 &lt;br /&gt;
        num_curro = 10 &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== motorSal ====&lt;br /&gt;
Parte fundamental del proceso de marcación saliente, gestiona como hay que llamar a los diferentes contactos asignados a las campañas. Transforma los contactos en intentos de marcación.&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH ejecuta el comando “nc ip_maquina 1120”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1120'''&lt;br /&gt;
 motorSal sis ver='V01.4' inic='20140725 140832' alarmas=1 ultAlar='20140725 140832'&lt;br /&gt;
 motorSal gmp msj=253/256 buf=256/256 tarea=99/102&lt;br /&gt;
 motorSal tmp uptime=600165 (6d 22h 42m 45s)&lt;br /&gt;
 motorSal mtr mys=1 ocup=0% planif=28(0) intento=26(0)&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parámetro!!Descripción&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ver||Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/msj||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/buf||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/tarea||&lt;br /&gt;
|-&lt;br /&gt;
|Tmp/uptime||Tiempo que lleva corriendo&lt;br /&gt;
|-&lt;br /&gt;
|mtr/mys||Si está conectado al MySQL&lt;br /&gt;
|-&lt;br /&gt;
|mtr/ocup||Porcentaje de ocupación&lt;br /&gt;
|-&lt;br /&gt;
|mtr/planif||Contactos planificados Totales (Último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|mtr/intento||Intentos totales (Ültimo minuto)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Posee un fichero de configuración llamado ''motorSal.conf'' en la ruta '''/etc/MDtel/motorSal.conf'''.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:Las variables que normalmente son modificadas son las siguientes:&lt;br /&gt;
&lt;br /&gt;
mysql&lt;br /&gt;
{&lt;br /&gt;
hay_mysql = 1&lt;br /&gt;
Indica si hay base de datos mysql&lt;br /&gt;
host = localhost&lt;br /&gt;
usuario = nimitz&lt;br /&gt;
Usuario base de datos&lt;br /&gt;
Clave base de datos&lt;br /&gt;
base_datos = nimitz&lt;br /&gt;
}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Respecto a los logs del motorSal consultar el siguiente apartado: [[Trazas motorSal]]. Los logs pueden verse en la ruta '''/var/log/intz-nimitz.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== MyACDSuperv ====&lt;br /&gt;
Refleja el estado de las colas de asterisk en la base de datos; tiene sentido a efectos de estadísticas e informes, pero no a efectos de funcionamiento de la conmutación de voz&lt;br /&gt;
&lt;br /&gt;
Es también el proceso que genera las llamadas en el marcador automático de '''''VIVA'''''it Suite&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando “nc ip_maquina 1112”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1112'''&lt;br /&gt;
 myAcdSuperv SIS ver='04.6' inic='20140416 081613' alarmas=6 ultAlar='20140416 121652'&lt;br /&gt;
 myAcdSuperv AMI cnx=1 ocup=28% exten=2/2/511 asig=0/11/4095&lt;br /&gt;
 myAcdSuperv MYSQL cnx=1 ms=316&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parámetro!!Descripción&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ver||Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|AMI/cnx||Conectado (1) a asterisk&lt;br /&gt;
|-&lt;br /&gt;
|AMI/ocup||Porcentaje de ocupación de MyACDSuperv&lt;br /&gt;
|-&lt;br /&gt;
|AMI/exten||Extensiones/Extensiones/Extensiones monitorizadas|-&lt;br /&gt;
|-&lt;br /&gt;
|AMI/asig||&lt;br /&gt;
|-&lt;br /&gt;
|MYSQL/cnx||Conectado (1) a MySQL&lt;br /&gt;
|-&lt;br /&gt;
|MYSQL/ms||Tiempo de última operación en ejecutarse&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/myAcdSuperv.cnf'''&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/myAcdSuperv.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Proceso escoba ====&lt;br /&gt;
El proceso escoba se encarga de resolver y consolidar todos aquellos segmentos de grabación que han quedado almacenados en los gateways por falta de información o incoherencias. Existen dos tipos de procesos escobas:&lt;br /&gt;
# Proceso escoba perteneciente a nodo con agente de grabación (recordNodo) llamado '''''escobaGW.pl'''''.&lt;br /&gt;
# Proceso escoba perteneciente o no a un servidor de grabación (recordCentral) llamado '''''escobaGrabsBd.pl'''''.&lt;br /&gt;
&lt;br /&gt;
===== escobaGW.pl =====&lt;br /&gt;
Proceso que se ejecuta en los nodos busca en el disco RAM , las grabaciones de segmentos cuya antigüedad sea superior a mas de un día, es decir, si el proceso por ejemplo se ejecuta a la 01:00 a.m. del día 24/03/2016 buscara todas aquellas grabacionesn de segmentos realizadas antes de la 01:00 a.m del día 22/03/2016.&lt;br /&gt;
Una vez realizada la busqueda, obtendra el UCID a traves del nombre del fichero, y comprobara su correspondencia con la tabla DAT_LLAMADAS. Si existe una llamada con ese UCID, cambiara el estado de la llamada para que sea procesada correctamente. En caso contrario, es movida a la carpeta ''/var/lib/recordNodo/grabError''.&lt;br /&gt;
&lt;br /&gt;
===== escobaGrabsBd.pl =====&lt;br /&gt;
Se ejecuta sobre la base de datos de histórico, normalmente se ejecuta en un servidor de grabación (recordCentral). El proceso hace una búsqueda en dos tablas:&lt;br /&gt;
* En DAT_SEGMENTOS obtiene todos aquellos segmentos con grabaciones que dieron error, su estado tendrá valor 120.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
* En DAT_LLAMADAS obtendremos todos los registros correspondiente al segmentos anteriores.&lt;br /&gt;
Después hace una búsqueda en el sistema, usando como ruta el campo D_HORA_INICIO de cada llamada, que indica la ruta entera donde se encuentra el archivo. Una vez encontrado el archivo cambia el estado del segmento que tenia un error a estado de grabación disponible , que tendrá valor 100. Si no encontramos el segmento, no realizara nada.&lt;br /&gt;
&lt;br /&gt;
==== recordCentral ====&lt;br /&gt;
Se considera como un servidor de grabaciones. Todas las grabaciones de llamadas son un activo importante y una empresa con Contact Center pueda recibir millones de llamadas que necesitan estar registradas y almacenadas en discos duros con gran capacidad, dichas maquinas donde suelen alojarse estos servidores poseen discos duros limitados, lo que hace necesario en algunos casos incorporar ''dispositivos NAS''.&lt;br /&gt;
&lt;br /&gt;
Los ''dispositivos NAS'' son dispositivos de almacenamiento conectados a una red que permite el almacenamiento y la recuperación de datos desde una ubicación centralizada, flexibles y escalables, lo que significa que a medida que necesite almacenamiento adicional, puede añadirlo al que tiene. Esto no indica que sea necesario poseer de ''dispositivos NAS'' para funcionar, sino que puede tomar datos de diferentes sitios.&lt;br /&gt;
&lt;br /&gt;
En '''recordCentral''' pueden existir tres tipos de dispositivos NAS:&lt;br /&gt;
* Uno dedicado para las llamadas &lt;br /&gt;
* Uno dedicado para los segmentos &lt;br /&gt;
* Uno mixto para todas las llamadas y segmentos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El '''recordCentral''' se encarga de recoger todas las grabaciones de segmentos que tienen de estado proceso(3) en cada nodo gestionado, es decir, coger aquellos segmentos de llamadas marcados como llamadas disponibles, intenta descargar los segmentos de las llamadas y convertirlas al formato adecuado (MP3).&lt;br /&gt;
Como una característica particular cada diez minutos, siempre que no tenga ninguna otra tarea, intenta ver si puede establecer conexión con un nodo en cuarentena, para sacarlos de cuarentena y recoger todas las grabaciones de segmentos disponibles, para intentar convertir y descargar todas las grabaciones.  &lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando '''''nc ip_maquina 1114''''' en la maquina donde creamos que debe estar ejecutando el proceso recordCentral. Ejemplo:&lt;br /&gt;
 '''root@smadavacdrecord1:~# nc localhost 1114'''&lt;br /&gt;
 recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423 160112'&lt;br /&gt;
 recordCentral MYSQL cnx=1&lt;br /&gt;
 recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
 recordCentral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
 recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10'&lt;br /&gt;
La explicación de los campos se muestra en la tabla siguiente:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parámetro !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ver || Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/inic || Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/alarmas || Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ultAlar || Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
| MYSQL/cnx || Conectado (1) a MySQL&lt;br /&gt;
|-&lt;br /&gt;
| NAS/llamadas || Alojamiento en NAS de llamadas activo (grabación de llamada completa en un único archivo)&lt;br /&gt;
|-&lt;br /&gt;
| NAS/segmentos || Alojamiento en NAS de segmentos activo&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamNum || Llamadas procesadas&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamErr || Llamadas con error&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmNum || Segmentos procesados&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmErr || Segmentos con error&lt;br /&gt;
|-&lt;br /&gt;
| NODO/fase  || Número de proceso de recordCentral&lt;br /&gt;
|-&lt;br /&gt;
| NODO/cuarentena  || Lista de nodos en cuarentena, separada por comas&lt;br /&gt;
|-&lt;br /&gt;
| NODO/descarga || Lista de nodos en descarga, separada por comas&lt;br /&gt;
|-&lt;br /&gt;
| NODO/gestion || Lista de nodos gestionados, separada por comas (cuarentena + descarga = gestión)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/recordCentral.pconf'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:Se explican a continuación las variables más importantes del proceso RecordCentral:&lt;br /&gt;
&lt;br /&gt;
# Conexion de base de datos&lt;br /&gt;
$db='nimitz';&lt;br /&gt;
$dbHost = 'BDTR';&lt;br /&gt;
$dbPort = '3306';&lt;br /&gt;
$dbUsuario = 'nimitz';&lt;br /&gt;
$dbClave = 'ivivanimitz';&lt;br /&gt;
&lt;br /&gt;
# Configuracion de archivos con grabaciones (Orig en nodo)&lt;br /&gt;
$grabHay = 0;&lt;br /&gt;
$grabAudioCalidad = 32;&lt;br /&gt;
$grabAudioFormato = 'ogg';&lt;br /&gt;
$grabAudioExten = 'ogg';&lt;br /&gt;
$grabAudioCifrado = 0;&lt;br /&gt;
$grabRutaUsaTimestamp = 1;&lt;br /&gt;
$grabRutaOrig = '/var/lib/recordNodo/grabaciones';&lt;br /&gt;
$grabRutaTmp = '/var/lib/recordProcesad/grabTmp';&lt;br /&gt;
$grabRutaDest = '/var/lib/recordProcesad/grabRecord';&lt;br /&gt;
$grabRutaError = '/var/lib/recordProcesad/grabError';&lt;br /&gt;
$segmHay = 1;&lt;br /&gt;
$segmUmbralTiempo = 10;&lt;br /&gt;
$segmMargenTiempo = 5;&lt;br /&gt;
$segmAudioCalidad = 32;&lt;br /&gt;
$segmAudioFormato = 'ogg';&lt;br /&gt;
$segmAudioExten = 'ogg';&lt;br /&gt;
$segmAudioCifrado = 0;&lt;br /&gt;
$segmRutaUsaTimestamp = 1;&lt;br /&gt;
$segmRutaTmp = '/var/lib/recordProcesad/segmTmp';&lt;br /&gt;
$segmRutaDest = '/var/lib/recordProcesad/segmRecord';&lt;br /&gt;
$segmRutaError = '/var/lib/recordProcesad/segmError';&lt;br /&gt;
&lt;br /&gt;
# Seleccion de tipos de segmento a grabar separados por comas ('' = todos)&lt;br /&gt;
$tiposSegmentoGrabar = '';&lt;br /&gt;
&lt;br /&gt;
# Indica si se graba ring&lt;br /&gt;
$grabarRing = 0;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/recordCentral.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== recordNodo ====&lt;br /&gt;
Se considera como proceso con función de agente de grabación para un nodo. Solo debe existir uno por maquina o por nodo (configurado como grabador) en el '''portal de administración de ''VIVA''it'''.&lt;br /&gt;
&lt;br /&gt;
Para su funcionamiento utiliza un ''disco RAM''  por que su tiempo de acceso mejora drásticamente, debido a que la memoria RAM es varios órdenes de magnitud más rápida que las unidades de disco reales, haciendo que la velocidad de procesamiento de las grabaciones sea mucho mas rápida.&lt;br /&gt;
&lt;br /&gt;
Este ''disco RAM'' normalmente ocupa la mitad de la memoria RAM de una maquina pero no es obligatorio pues dependerá de la memoria disponible en cada maquina, y además, se configura con un tamaño no superior a 2GB de memoria RAM. Hay que tener especial cuidado en que no se llene en espacio  ni tampoco los i-nodos. Se puede  monitorizar a través de la aplicación '''zabbix'''.&lt;br /&gt;
&lt;br /&gt;
El '''''recordNodo''''' se encarga de recoger todas las grabaciones de segmentos que tienen de estado  ''proceso(2)'', es decir, aquellos segmentos de llamadas que han sido grabadas pero no están siendo procesadas, moviéndolas del ''disco RAM'' a su carpeta correspondiente.&lt;br /&gt;
&lt;br /&gt;
La forma de obtener la carpeta correspondiente es obteniendo el dato del campo D_HORA_INICIO en la tabla DAT_LLAMADAS para cada segmento,tras un tratamiento del campo creara la subruta correspondientes: /año/mes/dia/hora/min. Entonces, la ruta correcta seria /var/lib/recordNodo/grabaciones/año/mes/dia/hora/min, donde año, mes, dia , hora y min son los valores numéricos obtenidos del campo D_HORA_INICIO.&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando '''''nc ip_maquina 1113''''' en la maquina donde creamos que debe estar ejecutando el proceso recordNodo:&lt;br /&gt;
&lt;br /&gt;
 root@smadavgw5:~#nc localhost 1113&lt;br /&gt;
 recordNodo SIS ver='04.00.00' inic='20160326 105137' alarmas=2 ultAlar='20160326 105542'&lt;br /&gt;
 recordNodo MYSQL cnx=1&lt;br /&gt;
 recordNodo REC grabNum=0 grabErr=0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La explicación de los campos se muestra en la tabla siguiente:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parámetro  !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ver || Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/inic  || Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/amarmas || Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ultAlar || Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
| MYSQL/cnx || Conectado (1) a MySQL&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamNum || Llamadas procesadas&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamErr || Llamadas con error&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmNum || Segmentos procesados&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmErr || Segmentos con error&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/recordNodo.pconf'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:Se muestran a continuación las variables que son modificadas con mayor frecuencia:&lt;br /&gt;
# Conexion de base de datos&lt;br /&gt;
$db='nimitz';&lt;br /&gt;
$dbHost = 'BDTR';&lt;br /&gt;
$dbPort = '3306';&lt;br /&gt;
$dbUsuario = 'nimitz';&lt;br /&gt;
$dbClave = 'ivivanimitz';&lt;br /&gt;
&lt;br /&gt;
# Quien es mi nodo para filtrar grabaciones&lt;br /&gt;
$miNodo = 1;&lt;br /&gt;
&lt;br /&gt;
# Indica si se procesan segmentos de tipo tipoSegmEliminarGrabacion y patron eliminación&lt;br /&gt;
$segmEliminarGrabacionTrato = 1;&lt;br /&gt;
$patronEliminarGrabacion = '/etc/MDtel/null.bin';&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/recordNodo.log'''&lt;br /&gt;
&lt;br /&gt;
==== Vivait-CTI ====&lt;br /&gt;
Permite la comunicación entre la aplicación '''''VIVA'''''it Desk de agente y el asterisk, sincronizando; convierte el protocolo “asterisk manager” a CSTA ('''''VIVA'''''it Desk “habla” CSTA).&lt;br /&gt;
&lt;br /&gt;
Es un proceso importante para que el uso de '''''VIVA'''''it Desk, y que los agentes puedan realizar su operativa normal con la entrada y salida de llamadas… si bien el cursado telefónico de llamadas es factible, no disponer de las facilidades de '''''VIVA'''''it Desk y formularios hace el sistema difícilmente manejable&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando “nc ip_maquina 1111”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1111'''&lt;br /&gt;
 vivait-cti sis ver='V01.5' inic='20140414 104312' alarmas=13 ultAlar='20140415 173152'&lt;br /&gt;
 vivait-cti gmp msj=1018/1024 buf=1023/1024 tarea=97/102&lt;br /&gt;
 vivait-cti tmp uptime=694748 (8d 0h 59m 8s)&lt;br /&gt;
 vivait-cti cti numConx=(0/511) numPend=(0/127) numMakeCallPend=0 numCall=(0/2047)&lt;br /&gt;
 numChan=(0/4095) numAuxStr=(0/511) numMoniColas=(0/511) numMoniDevice=0&lt;br /&gt;
 numMoniCall=0 numMoniCallAuto=0 numMoniCallByDevice=0 numMoni=(0/511)&lt;br /&gt;
 auditCallErr=0 auditAuxStrErr=0 auditMsjReqErr=0 araChanID=0 araUniqueID=0 araMoni=0&lt;br /&gt;
 vivait-cti ami esta=conx resp=652(0) evs=1397(0) descar=556(0) err=16 errConx=16&lt;br /&gt;
 numAct(0/0/127) auditErrAct=0&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!ver!!Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|sis/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|Sis/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|Sis/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/msj||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/buf||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/tarea||&lt;br /&gt;
|-&lt;br /&gt;
|Tmp/uptime||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numConx||Número de conexiones actuales / Número de conexiones máximo&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numPend||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMakeCallPend||Llamadas pendientes de realizar&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numcall||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numChan||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numAuxStr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniColas||Número de colas monitorizadas&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniDevice||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniCall||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniCallAuto||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniCallByDevice||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoni||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/auditCallErr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/auditAuxStrErr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ auditMsjReqErr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ araChanID||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ araUniqueID||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ araMoni||&lt;br /&gt;
|-&lt;br /&gt;
|Ami/esta||Estado de conexión contra manarger de asterisk&lt;br /&gt;
|-&lt;br /&gt;
|Ami/resp||&lt;br /&gt;
|-&lt;br /&gt;
|Ami/evs||Número de eventos (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
||Ami/descar&lt;br /&gt;
|-&lt;br /&gt;
|Ami/err||Errores&lt;br /&gt;
|-&lt;br /&gt;
|Ami/errConx||Errores de conexión&lt;br /&gt;
|-&lt;br /&gt;
|Ami/numAct||&lt;br /&gt;
|-&lt;br /&gt;
|Ami/auditErrAct||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/vivait-cti.conf'''&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/vivait-cti.conf'''&lt;br /&gt;
&lt;br /&gt;
==== Phoneprov-TFTP ====&lt;br /&gt;
&lt;br /&gt;
==== Introducción al aprovisionamiento ====&lt;br /&gt;
&lt;br /&gt;
En cada Centralita Telefónica existente, se puede configurar sus teléfonos IP y asignarles extensiones a cada teléfono. Para hacer un ''aprovisionamiento'' de los teléfonos es necesario que el técnico configure uno a uno manualmente utilizando su interfaz web, esto no es práctico, ya que genera muchos errores y el tiempo de implementación se incrementa drásticamente. Además, es casi imposible la administración cotidiana de los teléfonos IP. Desde '''MD'''tel se utiliza una herramienta que permite que los teléfonos IP soportados y homologados por '''MD'''tel ([[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_3.0#Terminales_telef.C3.B3nicos ver Terminales telefónicos]]) se puedan aprovisionar automáticamente, brindando una fácil implementación y administración cotidiana. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== ¿Qué es aprovisionar? =====&lt;br /&gt;
&lt;br /&gt;
Aprovisionar un teléfono es el proceso de configuración automático de teléfonos IP para su uso con una Centralita Telefónica de forma remota. Una vez que aprovisione un teléfono, el teléfono automáticamente se configurará correctamente y podrá administrar los teléfonos de forma centralizada y remota,  sin tener que iniciar sesión en la interfaz web de cada uno de los teléfonos. &lt;br /&gt;
&lt;br /&gt;
El aprovisionamiento de teléfono facilita enormemente la administración cotidiana de los teléfonos IP. Esto hace que sea fácil de cambiar las contraseñas de extensión,realizar desvíos de llamadas, nombre a mostrar, mensajería y demás configuraciones, ya que puede hacerlo de forma centralizada para todos los teléfonos desde el portal de administración y luego transferir los cambios al teléfono. &lt;br /&gt;
&lt;br /&gt;
===== TFTP =====&lt;br /&gt;
&lt;br /&gt;
'''TFTP''' son las siglas de '''T'''rivial '''F'''ile '''T'''ransfer '''P'''rotocol ''(Protocolo de transferencia de archivos trivial)''. &lt;br /&gt;
&lt;br /&gt;
Es un protocolo de transferencia muy simple semejante a una versión básica de FTP. TFTP a menudo se utiliza para transferir pequeños archivos entre terminales en una red. &lt;br /&gt;
&lt;br /&gt;
Algunos detalles del TFTP: &lt;br /&gt;
&lt;br /&gt;
* Utiliza UDP (puerto 69) como protocolo de transporte (a diferencia de FTP que utiliza los &lt;br /&gt;
puertos 20 y 21 TCP). &lt;br /&gt;
* No puede listar el contenido de los directorios. &lt;br /&gt;
* No existen mecanismos de autenticación o cifrado. &lt;br /&gt;
* Se utiliza para leer o escribir archivos de un servidor remoto. &lt;br /&gt;
* Soporta tres modos diferentes de transferencia, &amp;quot;netascii&amp;quot;, &amp;quot;octet&amp;quot; y &amp;quot;mail”.&lt;br /&gt;
&lt;br /&gt;
===== Funcionamiento del servidor phoneprove-TFTP =====&lt;br /&gt;
&lt;br /&gt;
A continuación se muestra un esquema que facilita el entendimiento del funcionamiento del servidor phoneprove-TFTP:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Funcionamiento_Servidor.png‎ |center]]&lt;br /&gt;
&lt;br /&gt;
El servidor Phoneprove-TFTP se ''encarga del aprovisionamiento masivo de terminales'', es de gran utilidad porque cualquier cambio en los teléfonos pueden ser realizados a nivel DHCP y todos los teléfonos tomarán la nueva configuración luego de reiniciarlos. &lt;br /&gt;
&lt;br /&gt;
Desde phoneprove-TFTP se generara los archivos necesarios para cada teléfono y que sirven para ser aprovisionados automáticamente. &lt;br /&gt;
El servidor phoneprove-TFTP  tiene alojados los ficheros de configuración están ordenados según las direcciones MAC de los teléfonos. El teléfono “preguntará” al servidor cual es su fichero de configuración utilizando su dirección MAC. Este a través de su MAC , consulta en la base de datos para ofrecer al terminal los datos de configuración según su plantilla, cual sera su extensión , cual sera el usuario propietario, entre otras cosas.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
  '''Nota:''' En instalaciones grandes habrá más de uno, quizás uno por sede grande; depende de la infraestructura de DHCP.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Parámetros necesarios de Aprovisionamiento de Teléfonos =====&lt;br /&gt;
&lt;br /&gt;
 '''Notas:''' el aprovisionamiento desarrollador por '''MD'''tel, no emplea un fichero por cada &lt;br /&gt;
 teléfono, sino que emplea una plantilla por cada modelo de teléfono.&lt;br /&gt;
 Debe haber una '''configuración previa del servidor DHCP''' es necesario coordinar con el cliente la asignación de direcciones para &lt;br /&gt;
 los diferentes elementos de la plataforma '''''VIVA'''''it, fundamentalmente para terminales telefónicos; en este caso además será necesario &lt;br /&gt;
 activar la opción 66 que permitirá definir el servidor TFTP del que los terminales cogerán sus ficheros de aprovisionamiento.&lt;br /&gt;
 El aprovisionamiento desde el portal de administración solo es posible para aquellos teléfonos IP homologados y probados desde '''MD'''tel   &lt;br /&gt;
 [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_3.0#Terminales_telef.C3.B3nicos ver Terminales  telefónicos]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como existen parámetros comunes de todos los teléfonos de la misma marca de fabricante, muchos de los parámetros necesarios para el aprovisionamiento  como comentamos se han generado desde MDtel en forma de plantillas, que estarán disponibles en el portal de administración VIVAit [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Plantillas | ver plantilla del portal de administración VIVAit]]. &lt;br /&gt;
&lt;br /&gt;
La configuración de un teléfono SIP es muy sencilla y en no es necesario tener conocimientos avanzados de informática o de telefonía. Cada una de estas plantillas que sirven para aprovisionar un teléfono IP homologado, algunos de los parámetros predeterminados se explicarán a continuación .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== Parámetros de Aprovisionamiento globales ======&lt;br /&gt;
&lt;br /&gt;
* Configuración de la red y MAC. &lt;br /&gt;
* Zona horaria. &lt;br /&gt;
&lt;br /&gt;
====== Parámetros de Aprovisionamiento Personales ======&lt;br /&gt;
&lt;br /&gt;
Además de los parámetros de aprovisionamiento globales, el teléfono también obtendrá información de configuración individual, tales como: &lt;br /&gt;
&lt;br /&gt;
*Número de Extensión.&lt;br /&gt;
*Nombre y Contraseña de usuario SIP. &lt;br /&gt;
*Configuración de Teclas BLF.&lt;br /&gt;
*Contraseña de la Interfaz Web del Teléfono IP.&lt;br /&gt;
*Idioma de la Pantalla.&lt;br /&gt;
*Orden de Preferencia de los Codecs.&lt;br /&gt;
&lt;br /&gt;
===== Aprovisionamiento de teléfonos nivel usuario =====&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
  '''Notas:''' La dirección MAC debe estar especificada en letras mayúsculas.&lt;br /&gt;
  La dirección MAC del teléfono se puede encontrar en la etiqueta adhesiva en la parte inferior del teléfono, o de lo contrario se deberá acceder desde&lt;br /&gt;
  el menú del propio terminal.   &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Los pasos a seguir son los siguientes: &lt;br /&gt;
&lt;br /&gt;
'''1)''' Dar de alta el teléfono en el portal de administración, se debe seleccionar el modelo del teléfono, e indicar la dirección MAC del teléfono a aprovisionar, todo ello desde el portal de administración VIVAit. &lt;br /&gt;
Para mas información ver [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Aprovisionamiento del portal de administracion| aprovisionamiento del portal de administración VIVAit]]. &lt;br /&gt;
&lt;br /&gt;
'''2)''' En el mismo portal de administración se deberá crear una extensión , asignar a la extensión el teléfono que se quiera aprovisionar, elegir la plantilla adecuada del teléfono y el usuario propietario (solo si sera un puesto fijo) desde [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Extensiones | extensiones del portal de administración]]. &lt;br /&gt;
&lt;br /&gt;
'''3)''' Conectar el teléfono a la red LAN informática (conectarlo al router o switch) para que tenga acceso a Internet:&lt;br /&gt;
&lt;br /&gt;
:*El teléfono enviará un mensaje de multidifusión a través de la LAN. &lt;br /&gt;
:*Este será captado por la Central Telefónica siempre que esté en la misma LAN. &lt;br /&gt;
:*Al teléfono se le enviará una URL de aprovisionamiento. &lt;br /&gt;
&lt;br /&gt;
'''4)''' Como la mayoría de teléfonos IP del mercado al arrancar una vez sabiendo la URL de aprovisionamiento piden una serie de archivos de configuración para aprovisionarse vía TFTP. EL servidor phoneprove-TFTP, detectara la petición y a través de la MAC y datos del usuario, consultará en la base de datos los datos necesarios para aprovisionar al teléfono y si todo funciona correctamente mandara al teléfono IP los datos de configuración necesarios para funcionar. &lt;br /&gt;
&lt;br /&gt;
'''5)''' Asegúrese de que el teléfono encuentren el servidor TFTP, para ello esperar un tiempo adecuado para que termine el aprovisionamiento. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''6)''' Finalmente aparecerá  como registrado en la centralita, obtendrá una dirección IP y podra funcionar según la configuración establecida.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
  '''Nota''': Si no se reaprovisiona tras un periodo largo de tiempo, desenchufe el cable de alimentación eléctrica &amp;lt;br /&amp;gt; o el cable Ethernet (si se utiliza la alimentación en línea PoE) para reiniciar los teléfonos. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Aprovisionamiento de teléfonos nivel técnico =====&lt;br /&gt;
&lt;br /&gt;
====== Plantilla de configuración ======&lt;br /&gt;
&lt;br /&gt;
La plantilla de configuración empleadas en el apartado  [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Plantillas | plantilla del portal de administración VIVAit]] de cada modelo está formada por una serie de variables. &lt;br /&gt;
&lt;br /&gt;
Los valores se obtienen de la tabla de la base de datos CEN_TELEFONOS, CEN_USUARIOS, ACD_EXTENSIONES, ACD_NODOS, COM_NODOS... correspondientes a la extensión del teléfono, usuario, nodo, etc. &lt;br /&gt;
&lt;br /&gt;
 variable ${NODO1_C_NOMBRE}='corp-ast13'&lt;br /&gt;
 variable ${EXTEN_C_CLAVE_REGISTRO}='Tel21002'&lt;br /&gt;
 variable ${USU_C_CODIGO_POSTAL}=''28034'&lt;br /&gt;
 variable ${SEDE_C_CODIGO_POSTAL}='28034' &lt;br /&gt;
 variable ${USU_C_NOMBRE}='Juan Antonio'&lt;br /&gt;
 variable ${USU_C_APELLIDO2}='Ramirez'&lt;br /&gt;
 variable ${SEDE_C_NOMBRE}='RED_LAB'&lt;br /&gt;
 variable ${NODO2_C_NOMBRE}= NULL&lt;br /&gt;
 variable ${EXTEN_C_NOMBRE}='' 21002&lt;br /&gt;
 variable ${USU_C_LOCALIDAD}='' &lt;br /&gt;
 variable ${USU_C_NOMBRE_MOSTRAR}='Juan' &lt;br /&gt;
 variable ${NODO1_C_IP}='175.25.129.70' &lt;br /&gt;
 variable ${MODEL_C_PREFIJO_PLANTILLA_MAC}='T28P' &lt;br /&gt;
 variable ${SEDE_C_LOCALIDAD}='Madrid' &lt;br /&gt;
 variable ${USU_C_APELLIDO1}='Casas' &lt;br /&gt;
 variable ${NODO2_C_IP}= NULL&lt;br /&gt;
 variable ${TF_ID_EXTENSION}='5' &lt;br /&gt;
 cargando campos idExten=5&lt;br /&gt;
&lt;br /&gt;
====== Ficheros y paquetes necesarios ======&lt;br /&gt;
&lt;br /&gt;
'''Paquetes previos:''' libnet-tftpd-perl, tftp-hpa, libnet-address-ip-local-perl &lt;br /&gt;
'''Usuario de funcionamiento:''' root &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
   '''Nota:'''  los archivos y directorios que generemos podrian necesitar que se permitiera el acceso al archivo de lectura &amp;lt;br/&amp;gt; y escritura en el servidor TFTP.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Archivos necesarios:''' &lt;br /&gt;
&lt;br /&gt;
 /usr/local/sbin/phoneprov-tftp.pl &lt;br /&gt;
 /usr/local/sbin/phoneprov-tftp.pm&lt;br /&gt;
 /etc/MDtel/phoneprov-tftp.pconf &lt;br /&gt;
 /etc/init/phoneprov-tftp.conf &lt;br /&gt;
 /etc/logrotate.d/phoneprov-tftp &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Directorios a crear:''' &lt;br /&gt;
&lt;br /&gt;
 /var/lib/phoneprov-tftp/plt &lt;br /&gt;
 /var/lib/phoneprov-tftp/bin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Watchdog ====&lt;br /&gt;
&lt;br /&gt;
Se trata de una aplicación del astrisk que monitoriza el SIP y en caso de fallo, pasado un cierto tiempo, reinicia el asterisk y genera un core.&lt;br /&gt;
Si escribimos en CLI de asterisk perro tenemos los siguientes comandos:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Activar||Activar el Watchdog&lt;br /&gt;
|-&lt;br /&gt;
|Desactivar||Desactiva el Watchdog&lt;br /&gt;
|-&lt;br /&gt;
|Parada||Reinicia el asterisk y genera un core para pruebas&lt;br /&gt;
|-&lt;br /&gt;
|Reload||Realiza una recarga del Watchdog y aplica cambios en su configuración&lt;br /&gt;
|-&lt;br /&gt;
|Show||Ver el estado del Watchdog&lt;br /&gt;
&lt;br /&gt;
perro avisado=0 activo=1 segsDormir=1 segsInic=60 segsGuarda=30 maxErr=3&lt;br /&gt;
perro        nombre=sip_monitor_udp lwp=[15437] segsInic=60 segsGuarda=30 hace=11 err=0/5&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El dato &amp;quot;hace&amp;quot; informa de cuanto tiempo ha transcurrido desde el último tick. Facilita la calibración del parámetro de configuración &amp;quot;segs_guarda&amp;quot;, normalmente es 30&lt;br /&gt;
&lt;br /&gt;
Tiene un fichero de configuración ubicado en /etc/asterisk/MDcrash.conf&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Sección [perro]&lt;br /&gt;
||activo=yes (Si esta o no activo)&lt;br /&gt;
segs_dormir=1 (Un tick por segundo)&lt;br /&gt;
&lt;br /&gt;
segs_inic=60&lt;br /&gt;
&lt;br /&gt;
segs_guarda=30 &lt;br /&gt;
&lt;br /&gt;
max_errores=3  &lt;br /&gt;
|-&lt;br /&gt;
|Sección [sip_monitor_udp]&lt;br /&gt;
||segs_inic=60&lt;br /&gt;
&lt;br /&gt;
segs_guarda=30 (Cada 30 segundos si no reciba trafico SIP genera core)&lt;br /&gt;
&lt;br /&gt;
max_errores=5 (Número máximo de errores)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Proceso de Backup ====&lt;br /&gt;
Las plataformas '''''VIVA'''''it Call y '''''VIVA'''''it Suite incluyen un script para realizar un proceso de backup.&lt;br /&gt;
&lt;br /&gt;
Se utilizará el script '''backup.sh''', que se encuentra en el directorio '''etc/MDTel'''.&lt;br /&gt;
&lt;br /&gt;
Se ejecuta automaticamente mediante el uso de un cron&lt;br /&gt;
&lt;br /&gt;
'''texto del cron:'''&lt;br /&gt;
&lt;br /&gt;
 SHELL=/bin/sh&lt;br /&gt;
 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin&lt;br /&gt;
 # m h dom mon dow user command&lt;br /&gt;
 0 2 * * * root  /etc/MDtel/backup.sh /etc/MDtel/backup.cfg&lt;br /&gt;
&lt;br /&gt;
Para activar el script hay que descomentar la línea&lt;br /&gt;
 # m h dom mon dow user command&lt;br /&gt;
&lt;br /&gt;
Los directorios de los que se hace copia son:&lt;br /&gt;
* DIR=var/lib/asterisk/sounds/Particular&lt;br /&gt;
* DIR=var/lib/asterisk/moh&lt;br /&gt;
* DIR=etc&lt;br /&gt;
* DIR=etc/asterisk&lt;br /&gt;
* DIR=etc/cron.d&lt;br /&gt;
* DIR=etc/dahdi&lt;br /&gt;
* DIR=etc/exim4&lt;br /&gt;
* DIR=etc/ha.d&lt;br /&gt;
* DIR=etc/logrotate.d&lt;br /&gt;
* DIR=etc/MDtel&lt;br /&gt;
* DIR=etc/mysql&lt;br /&gt;
* DIR=etc/network&lt;br /&gt;
* DIR=etc/zabbix&lt;br /&gt;
* DIR=usr/local/sbin&lt;br /&gt;
&lt;br /&gt;
Por defecto se realiza un backup cada dos horas en la carpeta '''/usr/local/sbin'''.&lt;br /&gt;
&lt;br /&gt;
El fichero ''' backup.cfg''' que se genera incluye copia de la siguiente información:&lt;br /&gt;
* Ficheros de configuración de la aplicación.&lt;br /&gt;
* Base de Datos.&lt;br /&gt;
* Dialplan.&lt;br /&gt;
&lt;br /&gt;
Se guardarán 10 copias del fichero ''' backup.cfg '''&lt;br /&gt;
&lt;br /&gt;
Para recuperar una plataforma utilizando el backup, habrá que instalar una máquina nueva y cargar los ficheros de configuración, Base de Datos y Dialplan guardados en el proceso de backup.&lt;br /&gt;
&lt;br /&gt;
=== Requerimientos de conectividad ===&lt;br /&gt;
&lt;br /&gt;
El esquema siguiente muestra como ejemplo todos los flujos de información existentes en un entorno típico de &amp;lt;big&amp;gt;'''telefonía corporativa (sin presencia)'''&amp;lt;/big&amp;gt; ('''''VIVA'''''it Call)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Flujos corporativa.png|cebter]]&lt;br /&gt;
&lt;br /&gt;
En el entorno de &amp;lt;big&amp;gt;'''Contact Center'''&amp;lt;/big&amp;gt;, encontramos los siguientes flujos &amp;lt;big&amp;gt;'''entre servicios'''&amp;lt;/big&amp;gt; (comunicaciones entre servidores, ('''''VIVA'''''it Suite)) &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Flujos Contact servicios.png|650px|center]]&lt;br /&gt;
&lt;br /&gt;
y &amp;lt;big&amp;gt;'''entre usuarios y servicios'''&amp;lt;/big&amp;gt; los reflejados a continuación:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Flujos Contact puestos.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Lado A!!Lado B!!Puertos!!Sentido!!Observ.&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor||TCP 5060||A -&amp;gt; B||Señalización SIP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor||UDP 5060||A -&amp;gt; B||Señalización SIP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor||10000 a 20000||A -&amp;gt; B&lt;br /&gt;
B -&amp;gt; A&lt;br /&gt;
||RTP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor TFTP||UDP 69||A -&amp;gt; B&lt;br /&gt;
B -&amp;gt; A&lt;br /&gt;
||Para actualización de terminales por TFTP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor NTP||UDP 123||A -&amp;gt; B||&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Desk||Servidor||TCP 4500||A -&amp;gt; B||Comunicación CTI&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Desk||Servidor||TCP 3306||A -&amp;gt; B||Acceso a Mysql Base de datos&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Desk||Servidor Syslog||UDP 514||A -&amp;gt; B||Para envio de logs de agente&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Supervisor||Servidor||TCP 3306||A -&amp;gt; B||Acceso a Mysql Base de datos&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker||Servidor||TCP 3306||A -&amp;gt; B||Acceso a Mysql Base de datos&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker||Servidor||TCP 8180||A -&amp;gt; B||&lt;br /&gt;
|-&lt;br /&gt;
|Actualizador||Servidor||TCP 80||A -&amp;gt; B||Necesario para actualizaciones de versiones de aplicaciones de agente y supervisores&lt;br /&gt;
|-&lt;br /&gt;
|Portal de administración||Servidor||TCP 8180||A -&amp;gt; B||Acceso al portal de administración '''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker Web||Servidor||TCP 8180||A -&amp;gt; B||&lt;br /&gt;
|-&lt;br /&gt;
|Monitor||Servidor||TCP 8180||A -&amp;gt; B||Wallboard&lt;br /&gt;
|-&lt;br /&gt;
|Monitorización||Servidor||TCP 80||A -&amp;gt; B||Acceso a portal monitorización (Zabbix)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Gateways ===&lt;br /&gt;
El concepto de gateway como tal no existe en la plataforma '''''VIVA'''''it; existen nodos de ACD y nodos de corporativa.&lt;br /&gt;
&lt;br /&gt;
A efectos de operación un nodo de corporativa es el que en cualquier caso asumirá las funcionalidades de gateway, y recibirá las conexiones (analógicas, digitales o IP) a sistemas externos o a la RTC&lt;br /&gt;
&lt;br /&gt;
El concepto gateway queda pues suscrito a entornos meramente comerciales&lt;br /&gt;
&lt;br /&gt;
Incluimos no obstante en este apartado los diagnósticos y operaciones básicos de conexiones a sistemas externos o RTC&lt;br /&gt;
&lt;br /&gt;
Para verificar los enlaces establecidos ejecutamos el siguiente comando en el terminal: '''sip show peers''' &lt;br /&gt;
&lt;br /&gt;
Al ejecutar este comando obtenemos la salida:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Enlace_Exterior.png |center]]&lt;br /&gt;
&lt;br /&gt;
Las columnas ''Host'' y ''Port'' nos muestran las conexiones establecidas y nos informa de un posible problema de conexión. &lt;br /&gt;
&lt;br /&gt;
Sabremos que ''no existe conexión'' cuando la columna Host tiene el valor '''Unspecified''' y en la columna Port aparece un '''0''' , a continuación se muestra un ejemplo:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ejemplo_no_conexion.png |center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#00FF00&amp;quot;&amp;gt;FALTA AQUI DIAGNOSTICOS Y OPERACIONES DE ENLACES EXTERNOS&amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Servidor de grabación === &lt;br /&gt;
==== Almacenamiento en la nube ====&lt;br /&gt;
Almacenamiento en la nube.&lt;br /&gt;
Existe la posibilidad de que tras un determinado periodo de tiempo las grabaciones sean movidas a un almacenamiento externo. De esta operativa se encarga el proceso /usr/local/sbin/mueveGrabaciones.pl que recibe como parámetro la ruta al archivo de configuración. Dicho archivo tiene los siguientes elementos:&lt;br /&gt;
&lt;br /&gt;
*$db: Nombre de la base de datos.&lt;br /&gt;
*$dbHost: servidor de MySQL&lt;br /&gt;
*$dbPort: Puerto del MySQL.&lt;br /&gt;
*$dbUsuario: Usuario de conexión a MySQL.&lt;br /&gt;
*$dbClave: Clave del usuario anterior.&lt;br /&gt;
*$dirBase: Directorio donde residen las grabaciones&lt;br /&gt;
*$diasCaducidad: Dias de antigüedad para mover las grabaciones&lt;br /&gt;
*$sftpHost: Servidor SFTP de destino&lt;br /&gt;
*$sftpPort: Puerto SFTP.&lt;br /&gt;
*$sftpUsuario: Usuario SFTP.&lt;br /&gt;
*$sftpClave: Clave del usuario SFTP.&lt;br /&gt;
*$simula: Si este campo vale 1, las grabaciones se copian, pero no se borran del directorio original, ni se actualiza su ubicación en la base de datos.&lt;br /&gt;
&lt;br /&gt;
La grabación indica donde se encuentra mediante el campo E_UBICACION_GRABACION, que puede tener los siguientes valores:&lt;br /&gt;
*Sin definir (0)&lt;br /&gt;
*En línea (10): Las grabaciones se encuentran en el servidor de grabaciones.&lt;br /&gt;
*Fuera de línea (20): las grabaciones se encuentran en una ubicación externa.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Reporting ===&lt;br /&gt;
La aplicación de reporting en general no tiene procesos habituales de operación y mantenimiento.&lt;br /&gt;
Los informes son obtenidos desde la interfaz gráfica o mediante un procedimiento de scripting, descritos en “Formato de fichero de intercambio para '''''VIVA'''''it Reporting”.&lt;br /&gt;
&lt;br /&gt;
==== Formato de fichero de intercambio para '''''VIVA'''''it Reporting ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Nombre !! Descripción !! Ejemplo&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;| Selección de registros&lt;br /&gt;
|-&lt;br /&gt;
| SQL_selec || Expresión SQL que se añadirá al where a la SQL principal. || C_ORIGEN like '6%' and C_COD_CLIENTE= '023'&lt;br /&gt;
|-&lt;br /&gt;
| SQL_select_leido || Filtro de selección legible&lt;br /&gt;
 || Skill igual a 60310&lt;br /&gt;
|-&lt;br /&gt;
| SQL_orden || Lista de campos por los que se ordenará, después de los que estén ya definidos en la plantilla. || C_ORIGEN, C_COD_CLIENTE&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Salida&lt;br /&gt;
|-&lt;br /&gt;
| FIC_extension || Extensión de fichero de salida: PDF, XLSX, CSV || PDF&lt;br /&gt;
|-&lt;br /&gt;
| FIC_tipo_entrega || 'P': Pantalla, 'D': Directorio, 'C': Correo || D&lt;br /&gt;
|-&lt;br /&gt;
| FIC_destino || Si 'C', dirección de correo, si 'D', ruta del directorio || D:\informes\&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Plantilla&lt;br /&gt;
|-&lt;br /&gt;
| INF_modelo || Ruta del fichero de plantilla || C:\Modelos\llamadas.rep&lt;br /&gt;
|-&lt;br /&gt;
| INF_descripción || Descripción del informe || Informe detallado de llamadas&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Base de datos&lt;br /&gt;
|-&lt;br /&gt;
| BD_ip || IP o nombre de máquina || &lt;br /&gt;
|-&lt;br /&gt;
| BD_puerto || Puerto de MySQL || &lt;br /&gt;
|-&lt;br /&gt;
| BD_base_datos || Nombre de base de datos || &lt;br /&gt;
|-&lt;br /&gt;
| BD_usuario || Usuario de base de datos || &lt;br /&gt;
|-&lt;br /&gt;
| BD_clave || Clave de acceso cifrada || &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Parámetros&lt;br /&gt;
|-&lt;br /&gt;
| PAR_desde_vis || Fecha inicial de selección en formato legible (o '-' si no hay) || 01/01/2016&lt;br /&gt;
|-&lt;br /&gt;
| PAR_hasta_vis || Fecha final de selección en formato legible (o '-' si no hay) || 31/01/2016&lt;br /&gt;
|-&lt;br /&gt;
| PAR_01 || Parámetro opcional || &lt;br /&gt;
|-&lt;br /&gt;
| .. || .. || &lt;br /&gt;
|-&lt;br /&gt;
| PAR_20 || Parámetro opcional || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El fichero tendrá un nombre único para permitir la generación simultánea de informes.&lt;br /&gt;
El fichero es borrado por la aplicación de forma automática.&lt;br /&gt;
Se pasa a la aplicación de generación de informes como parámetro. Por ejemplo:&lt;br /&gt;
 “C:\Archivos de Programa\MDtel\Nimitz\LanzaInformes\LanzaInformes.exe”&lt;br /&gt;
 “C:\Archivos de Programa\MDtel\Nimitz\LanzaInformes\NIM00001.tmp”&lt;br /&gt;
&lt;br /&gt;
Ejemplo de fichero:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| SQL_selec=(DAT_ACUMULADOS_COLAS.ID_COLA in (11))&lt;br /&gt;
&lt;br /&gt;
SQL_select_leido=Skill igual a 60310&lt;br /&gt;
&lt;br /&gt;
SQL_orden=&lt;br /&gt;
FIC_extension=pdf&lt;br /&gt;
&lt;br /&gt;
FIC_tipo_entrega=P&lt;br /&gt;
&lt;br /&gt;
FIC_destino=C:\&lt;br /&gt;
&lt;br /&gt;
INF_modelo=skill_setsi.rep&lt;br /&gt;
&lt;br /&gt;
INF_descripcion=Skill. SETSI&lt;br /&gt;
&lt;br /&gt;
BD_ip=172.25.1.2&lt;br /&gt;
&lt;br /&gt;
BD_puerto=3306&lt;br /&gt;
&lt;br /&gt;
BD_base_datos=nimitz&lt;br /&gt;
&lt;br /&gt;
BD_usuario=nimitz&lt;br /&gt;
&lt;br /&gt;
BD_clave=UIk5jNY9PVX5ogg=&lt;br /&gt;
&lt;br /&gt;
PAR_desde_vis=-&lt;br /&gt;
&lt;br /&gt;
PAR_hasta_vis=-&lt;br /&gt;
&lt;br /&gt;
PAR_01=&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Resumen de significado de columnas en reporting histórico ====&lt;br /&gt;
Esta información se puede consultar en el siguiente enlace:&lt;br /&gt;
&lt;br /&gt;
http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Documentacion_de_usuario_VIVAit_Suite_3.3#Resumen_del_valor_de_las_columnas_que_aparecen_en_los_informes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===== Agente,asistencia diaria y agente. Asistencia diaria del grupo =====&lt;br /&gt;
&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo de llamado:''' Tiempo de ring en llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo disponible:''' Tiempo que el agente estuvo conectado y no está&lt;br /&gt;
incluido en ninguno de los anteriores.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas transferidas:''' Número de llamadas ACD que fueron&lt;br /&gt;
transferidas por el agente.&lt;br /&gt;
&lt;br /&gt;
===== Agente. Aux y Grupo Aux =====&lt;br /&gt;
&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Desglose de tiempos AUX:''' Tiempo que el agente estuvo en cada uno&lt;br /&gt;
de los motivos de pausa.&lt;br /&gt;
&lt;br /&gt;
===== Agente. Resumen diario =====&lt;br /&gt;
&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo de llamado:''' Tiempo de ring en llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo disponible:''' Tiempo que el agente estuvo conectado y no está&lt;br /&gt;
incluido en ninguno de los anteriores.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas entrada Ext:''' Número de llamadas entrantes NO ACD a la&lt;br /&gt;
extensión.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas salida Ext:''' Número de llamadas salientes NO ACD desde la&lt;br /&gt;
extensión.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas transferidas:''' Número de llamadas ACD que fueron&lt;br /&gt;
transferidas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas retenidas:''' Número de retenciones que sufrieron las&lt;br /&gt;
llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACD:''' Tiempo ACD/ Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACW:''' TiempoACW/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio de entrada a la Ext:''' Tiempo entrada Ext/&lt;br /&gt;
Llamadas entrada Ext.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio de salida a la Ext:''' Tiempo salida Ext/ Llamadas&lt;br /&gt;
salida Ext.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio retención:''' Tiempo retención/Llamadas retenidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % Ocupación con ACW:''' ((Tiempo ACD+ Tiempo retención+ Tiempo&lt;br /&gt;
ACW)/Tiempo con personal)* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % Ocupación sin ACW:''' ((Tiempo ACD+ Tiempo retención)/Tiempo&lt;br /&gt;
con personal)* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % disp.:''' (Tiempo disponible/Tiempo conectado)* 100.&lt;br /&gt;
&lt;br /&gt;
===== Agente. Grupo ACD diario =====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención de un grupo&lt;br /&gt;
ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Ayuda:''' Número de llamadas contestadas por el agente que necesitaron&lt;br /&gt;
de consulta de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas retenidas:''' Número de retenciones que el agente realizó&lt;br /&gt;
sobre las llamadas de ese grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas por&lt;br /&gt;
el agente en ese grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Trans. salida:''' Llamadas que finalizan con una transferencia.&lt;br /&gt;
&lt;br /&gt;
===== Grupo ACD. Reporte diario con AHT =====&lt;br /&gt;
&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACD:''' Tiempo ACD/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACW:''' Tiempo ACW/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención de un grupo&lt;br /&gt;
ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente de un grupo ACD.&lt;br /&gt;
'''• Tiempo de llamado:''' Tiempo de ring en llamadas ACD de un grupo&lt;br /&gt;
ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo disponible:''' Tiempo que el agente estuvo conectado y no está&lt;br /&gt;
incluido en ninguno de los anteriores.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Ayuda:''' Número de llamadas ACD contestadas por el agente en las que&lt;br /&gt;
necesito hacer uso de la consulta.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas retenidas:''' Número de retenciones que el agente realizó&lt;br /&gt;
sobre las llamadas ACD contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas contestadas ACD&lt;br /&gt;
estuvieron retenidas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Trans. salida:''' Número de llamadas ACD que fueron transferidas por el&lt;br /&gt;
agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• AHT:''' (Tiempo ACD+ Tiempo ACW+ Tiempo retención)/Llamadas&lt;br /&gt;
ACD.(Average Handle Time)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Grupo ACD. QOS  =====&lt;br /&gt;
&lt;br /&gt;
'''• Vel. prom. de resp.:''' Tiempo total de espera de llamadas antes de ser&lt;br /&gt;
atendidas/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo prom. de aban.:''' Tiempo abandonadas(tiempo que las&lt;br /&gt;
llamadas abandonadas estuvieron en el grupo ACD)/Llamadas&lt;br /&gt;
abandonadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ofrecidas:''' Número de llamadas entrantes al grupo&lt;br /&gt;
ACD(Llamadas ACD+ Abandonadas+ Desbordadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas contestadas por los agentes.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas abandonadas:''' Número de llamadas colgadas por el cliente&lt;br /&gt;
en el grupo ACD antes de ser contestadas o desbordadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Desconectadas por ACD:''' Número de llamadas desbordadas que al&lt;br /&gt;
salir del grupo ACD se cuelgan.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Desbordadas por ACD:''' Número total de llamadas desbordadas(incluye&lt;br /&gt;
las desconectadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas atendidas en &amp;lt; 20s:'''Número de llamadas contestadas con&lt;br /&gt;
tiempo de respuesta menor a 20 segundos.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo total de espera:''' Tiempo total que las llamadas estuvieron&lt;br /&gt;
esperando antes de ser atendidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % N.A.:''' Llamadas ACD/(Llamadas ACD+ Llamadas abandonadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % N.D.S.:''' (Llamadas atendidas en &amp;lt; 20s/Llamadas ofrecidas)* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• T.M.O:''' (Tiempo ACD+ Tiempo ACW+ Tiempo retención)/Llamadas&lt;br /&gt;
ACD.(Tiempo Medio Operación)&lt;br /&gt;
&lt;br /&gt;
===== Informe conducción (VDN Conducción) =====&lt;br /&gt;
&lt;br /&gt;
'''•Entrantes al grupo ACD:''' Número de llamadas ofrecidas al grupo&lt;br /&gt;
ACD(Contestadas+ Abandonadas+ Desbordadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Llamadas contestadas:''' Número de llamadas contestadas por un agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Contestadas NDS:''' Número de llamadas contestadas en nivel de servicio,&lt;br /&gt;
tiempo de respuesta&amp;lt; 20 segundos.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Abandonadas:''' Número de llamadas abandonadas, colgadas por el cliente&lt;br /&gt;
antes de ser contestadas por un agente o desbordadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Desconectadas:''' Número de llamadas desbordadas que fueron colgadas al&lt;br /&gt;
salir del grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Desbordadas:''' Número total de llamadas desbordadas (incluye desconectadas)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Llamadas retenidas:''' Número de retenciones que el agente realizó sobre las&lt;br /&gt;
llamadas ACD contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•% N.A.:''' (Llamadas contestadas/(Llamadas contestadas+ Abandonadas+&lt;br /&gt;
Desbordadas))* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•% N.D.S.:''' (Contestadas NDS/(Llamadas contestadas+ Abandonadas + Desbordadas))*100&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•% Abandonadas:''' (Abandonadas/(Llamadas contestadas+ Abandonadas+ Desbordadas))* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. RING:''' Tiempo de ring en llamadas ACD(entrantes).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•ACDTIME:''' Tiempo de conversación ACD de las llamadas contestadas o&lt;br /&gt;
realizadas por el agente excluido el tiempo de retención de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. ACW:''' Tiempo dedicado por el agente a tareas administrativas tras&lt;br /&gt;
finalizar las llamadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum HOLD:''' Tiempo que las llamadas contestadas ACD estuvieron retenidas&lt;br /&gt;
por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. OTHER:''' Tiempo total que las llamadas estuvieron esperando en el&lt;br /&gt;
grupo ACD antes de ser atendidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. AVAIL:''' Acum. STAFF- (ACDTIME+ Acum. ACW+ Acum. RING+ Acum.&lt;br /&gt;
HOLD+ Acum. AUX).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. Staff:''' Suma del Tiempo conectado de todos los agentes al grupo&lt;br /&gt;
ACD(Este tiempo se repercute en todos los grupos ACD a los que esta&lt;br /&gt;
conectado el agente).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. AUX:''' Suma del Tiempo en pausa de todos los agentes que estén&lt;br /&gt;
conectados al grupo ACD(Este tiempo se repercute en todos los grupos ACD a&lt;br /&gt;
los que esta conectado el agente).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Prom. ACD:''' ACDTIME/Llamadas contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Prom. ACW:''' Acum. ACW/Llamadas contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Prom. HOLD:''' Acum. HOLD/Llamadas retenidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•AHT:''' (ACDTIME+ Acum. ACW+ Acum. HOLD)/Llamadas contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Vel. prom. de resp.:''' Tiempo total de espera de llamadas antes de ser&lt;br /&gt;
atendidas/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Tiempo máx. de espera:''' Tiempo de la llamada que estuvo mas tiempo en el&lt;br /&gt;
grupo ACD hasta que fue atendida.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Agentes en PH:''' (Acum. Staff- Acum. AUX)/1800(Agentes conectados que no&lt;br /&gt;
están en pausa en el intervalo).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Agentes Staff:''' Acum. Staff/1800(Agentes conectados en el intervalo)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Desglose de tiempos AUX:''' Tiempo que el agente estuvo en cada uno de los&lt;br /&gt;
motivos de pausa.&lt;br /&gt;
&lt;br /&gt;
===== Informe de producción =====&lt;br /&gt;
&lt;br /&gt;
'''• LL. ACD:'''Número de llamadas contestadas por ese agente para ese&lt;br /&gt;
grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. HOLD:''' Número de retenciones efectuadas para las llamadas&lt;br /&gt;
contestadas en ese grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Redir.:''' Número de llamadas no contestadas por un agente que&lt;br /&gt;
fueron redirigidas de nuevo a la cola.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. No colgadas cliente:''' Número de llamadas que terminaron sin el&lt;br /&gt;
colgado del cliente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Aband.:''' Número de llamadas abandonadas en ese grupo ACD, este&lt;br /&gt;
valor es independiente del agente por tanto se repite el valor para todos&lt;br /&gt;
los agentes en un mismo grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Transfer.:''' Número de llamadas ACD que fueron transferidas por el&lt;br /&gt;
agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Conf:''' Número de llamadas ACD en las que el agente estableció&lt;br /&gt;
conferencia.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• S. Extensión:''' Número de llamadas salientes de extensión, este valor es&lt;br /&gt;
independiente del grupo ACD se repite el valor para todos los grupos&lt;br /&gt;
ACD en los que está conectado el agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. Staff:''' Tiempo que el agente estuvo conectado al grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. RING:''' Tiempo de ring en las llamadas ACD(entrantes) que&lt;br /&gt;
fueron contestadas por el agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. ACD:''' Tiempo de conversación de las llamadas ACD(entrantes)&lt;br /&gt;
que fueron contestadas por el agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas que fueron contestadas por él.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum HOLD:''' Tiempo que las llamadas ACD(entrantes) para ese grupo&lt;br /&gt;
ACD que fueron contestadas por el agente estuvieron retenidas.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. AVAIL:''' Acum. STAFF- (Acum. ACD+ Acum. ACW+ Acum. RING+&lt;br /&gt;
Acum. HOLD+ Acum. AUX)..&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. AUX:''' Tiempo que el agente estuvo en pausa este valor es&lt;br /&gt;
independiente del grupo ACD se repite el valor para todos los grupos&lt;br /&gt;
ACD en los que está conectado el agente..&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Desgloses de tiempos AUX, tiempo AUX por cada uno de los&lt;br /&gt;
motivos.''' este valor es independiente del grupo ACD se repite el valor&lt;br /&gt;
para todos los grupos ACD en los que está conectado el agente.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Consideraciones adicionales =====&lt;br /&gt;
&lt;br /&gt;
Los tiempos se insertan en el intervalo en el que se deja ese &amp;quot;estado&amp;quot;, esto provoca que en un intervalo pueda ser mayor el tiempo ACD que el tiempo conectado.&lt;br /&gt;
&lt;br /&gt;
''* Ejemplo:''&lt;br /&gt;
&lt;br /&gt;
 -Llamada: Duración 15 minutos Hora fin de la llamada 13:01&lt;br /&gt;
 -Llamada: Duración 20 minutos Hora fin de la llamada 13:24&lt;br /&gt;
 Suma de las duraciones de las llamadas para el intervalo ''35 minutos'' tiempo&lt;br /&gt;
 conectado del agente en el intervalo ''30 minutos.''&lt;br /&gt;
 Cuando los periodos consultados sean mas amplios (diario, mensual) los&lt;br /&gt;
 desfases tenderán a desaparecer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Otros Diagnósticos y operaciones básicas ==&lt;br /&gt;
=== Arranque y apagado de la plataforma ===&lt;br /&gt;
&lt;br /&gt;
En general el arranque y apagado de cada nodo de una plataforma '''''VIVA'''''it es el estándar de un procedimiento ordenado de apagado en una máquina linux: '''&amp;quot;Shutdown -h now&amp;quot;''' o comando de apagado inmediato o programado equivalente&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El orden de arranque de la plataforma deberá ser:&lt;br /&gt;
# En primer lugar arrancar el nodo con la base de datos de tiempo real&lt;br /&gt;
# Una vez finalizado el arranque del punto 1, arrancar el nodo con la base de datos de réplica&lt;br /&gt;
# Una vez finalizado el arranque del punto 2, arrancar el resto de nodos en cualquier orden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Al respecto del orden de apagado de nodos, es el siguiente:&lt;br /&gt;
# En primer lugar se apagarán, en cualquier orden, los nodos que NO CONTENGAN bases de datos de tiempo real ni bases de datos de réplica&lt;br /&gt;
# Una vez apagados totalmente todos los nodos del punto 1, apagaremos el nodo (o nodos) con bases de datos de réplica&lt;br /&gt;
# Una vez apagados totalmente todos los nodos del punto 2, se apagará el nodo con la base de datos de tiempo real&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== Nivel matriz de conmutación ===&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Grabación ===&lt;br /&gt;
&lt;br /&gt;
==== Configuración de la grabación en la plataforma corporativa ====&lt;br /&gt;
Para que una llamada se grabe, lo primero de todo es que  alguien tenga la capacidad de grabar. Esto se consigue diciendo al nodo que sea grabador. Esto provoca que el nodo llame al mixmonitor para grabar y se inserte un registro en el DAT_GRABACIONES. Esto no significa que ya las llamadas se vayan a grabar, ya que para eso tiene que ser procesadas por un nodo que sea grabador. Hay tres, llamémosle elementos, que se pueden grabar:&lt;br /&gt;
&lt;br /&gt;
* El nodo, es decir todo lo que el nodo enrute&lt;br /&gt;
* Prerutas&lt;br /&gt;
* Objetos: que son las extensiones, usuarios, grupos corporativos, etc.&lt;br /&gt;
&lt;br /&gt;
Tenemos tres formas de grabar:&lt;br /&gt;
&lt;br /&gt;
* Grabar con beep periódico&lt;br /&gt;
* Grabar sin beep periódico&lt;br /&gt;
* Descartar grabación&lt;br /&gt;
&lt;br /&gt;
Si de los tres elementos tenemos que uno grabe, ya sea con o sin beep periódico, esa llamada se va a grabar ya que son OR, en cuanto haya un elemento que diga que grabe se va a grabar.&lt;br /&gt;
&lt;br /&gt;
Al igual pasa si tenemos que un elemento tenga descartar la grabación. La grabación no se inicia.&lt;br /&gt;
&lt;br /&gt;
Referente al campo de Modo de grabación en infraestructura, este no se emplea para la grabación de corporativo, sino que solo tiene validez en ACD. Para grabación en el ACD hay que, como se ha dicho anteriormente poner un nodo que sea grabador y especificar un elemento de los tres que hay cual es el que se va a grabar.&lt;br /&gt;
&lt;br /&gt;
Para que exista una grabación a de existir un segmento asociado a esta. Los segmentos se tratan en las prerutas. Hay un campo es las prerutas que es Generar segmento al enrutar. Si está se generará el segmento del tipo de la preruta y su correspondiente grabación si esta está configurada. Si le decimos que no genere segmentos al enrutar y el sistema está configurado para que grabe, el recordCentral creará un tipo de segmento llamado externo para esa grabación. Podemos configurar si queremos que se cree o no ese segmento, para eso hay que modificar el fichero de configuración del recordCentral y poner un tiempo muy alto al campo $segmExternoMinSegs. También podemos configurar que segmentos queremos que se graben. Por defecto el recordCentral va configurado para que se graben todos los segmentos. Para decirle que solo grabe cierto tipo de segmentos hay que ponerlos los que queramos que si se graben en la variable $tiposSegmentoGrabar del fichero de configuración del recordCentral.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que el servidor de grabación esta activo ====&lt;br /&gt;
&lt;br /&gt;
Si al ejecutar el comando '''''nc ip_maquina 1114''''',si no se recibe ninguna respuesta, significa el servidor de grabación no estaría activo. &lt;br /&gt;
También usando el comando ''''' ps aux | grep recordCentral ''''', donde si no escribe ningún resultado implica que tampoco esta activo.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que los nodos están conectados al servidor de grabación ====&lt;br /&gt;
&lt;br /&gt;
Debemos fijarnos en la linea de respuesta del comando '''''nc ip_maquina 1114''''', que seria:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| root@smadavacdrecord1:~# nc localhost 1114&lt;br /&gt;
recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423&lt;br /&gt;
160112'&lt;br /&gt;
&lt;br /&gt;
recordCentral MYSQL cnx=1&lt;br /&gt;
&lt;br /&gt;
recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
&lt;br /&gt;
recordCenral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
&lt;br /&gt;
'''recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10''''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el parámetro &amp;quot;fase=0&amp;quot; es el numero que identifica el recordCentral, los demás parámetros nos indicaran los nodos disponibles , que funcionan o no en el servidor. Entonces &amp;quot;gestión=4,6,7,8,9,10&amp;quot; indica el id de los nodos que maneja el proceso.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que un nodo tiene activo el agente de grabación ====&lt;br /&gt;
Si al ejecutar el comando '''''nc ip_maquina 1113''''', no se recibe ninguna respuesta, significa que el nodo no tiene activo el agente de grabación.&lt;br /&gt;
También usando el comando ''''' ps aux | grep recordNodo''''', donde si no escribe ningun resultado implica que tampoco esta activo.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que un nodo está subiendo archivos de grabación al servidor ====&lt;br /&gt;
Debemos fijarnos en la linea de respuesta del comando '''''nc ip_maquina 1114''''', que seria:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| root@smadavacdrecord1:~# nc localhost 1114&lt;br /&gt;
recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423&lt;br /&gt;
160112'&lt;br /&gt;
&lt;br /&gt;
recordCentral MYSQL cnx=1&lt;br /&gt;
&lt;br /&gt;
recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
&lt;br /&gt;
recordCenral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
&lt;br /&gt;
'''recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10''''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Fijándonos en &amp;quot;descarga=8,6,4,7,10,9&amp;quot; nos confirma que todos los nodos que maneja el proceso funcionan perfectamente y el servidor puede manejar las grabaciones.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de grabaciones que se hayan quedado enganchadas en un nodo ====&lt;br /&gt;
Podemos fijarnos en los dos comandos, para '''''nc ip_maquina 1114''''':&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| root@smadavacdrecord1:~# nc localhost 1114&lt;br /&gt;
recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423&lt;br /&gt;
160112'&lt;br /&gt;
&lt;br /&gt;
recordCentral MYSQL cnx=1&lt;br /&gt;
&lt;br /&gt;
recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
&lt;br /&gt;
recordCenral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
&lt;br /&gt;
'''recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10''''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Fijándonos en el campo &amp;quot;cuarentena=''&amp;quot; indica que ninguno de los nodos tiene problemas.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación del estado de ocupación del almacenamiento temporal de grabaciones en un nodo. ====&lt;br /&gt;
&lt;br /&gt;
Desde un SSH ejecuta el comando '''''df - h''''' en la maquina donde creamos que debe estar ejecutando el proceso recordNod:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Filesystem !! Size !! Used !! Avail !! Use% !! Mounted on&lt;br /&gt;
|-&lt;br /&gt;
| udev || 486M || 4,0K || 486M || 1,00% || /dev&lt;br /&gt;
|-&lt;br /&gt;
| tmpfs || 100M || 416K || 99M || 1,00% || /run&lt;br /&gt;
|-&lt;br /&gt;
| '''/dev/vda1''' ||''' 236M''' ||''' 68M''' ||''' 156M''' ||''' 31,00% '''||''' /boot'''&lt;br /&gt;
|-&lt;br /&gt;
| tmpfs || 100M || 48K || 100M || 1,00% || /var/spool/asterisk/monitor&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Nos fijaríamos en la línea marcada en negrita, el campo &amp;quot;Use%&amp;quot; indicara el porcentaje de almacenamiento temporal de grabaciones en un nodo.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Escuchas e intrusiones en asterisk===&lt;br /&gt;
'''CallSpy''' es una aplicación elaborada para asterisk que permite a un usuario realizar escuchas e &lt;br /&gt;
intrusiones en llamadas. &lt;br /&gt;
En realidad tenemos dos aplicaciones en asterisk, CallSpy y CallSpyee. &lt;br /&gt;
====CallSpy ====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 '''Nota:''' Como mucho se pueden tener a dieciséis personas al mismo tiempo usando esta aplicación. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como hemos mencionado anteriormente, esta aplicación permite la escucha de llamadas y, &lt;br /&gt;
opcionalmente, realiza la función de intrusión. Tiene tres opciones de configuración obligatorios &lt;br /&gt;
que mostramos a continuación: &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 CallSpy(&amp;lt;tipoEspiado&amp;gt;,&amp;lt;expRegEspiado&amp;gt;,&amp;lt;parametrosConf&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
La opción '''&amp;lt;tipoEspiado&amp;gt;''' se refiere a que tipo de objeto que podemos espiar correspondiente, solo debe elegirse un único tipo: &lt;br /&gt;
*'''c:''' escuchar una cola&lt;br /&gt;
*'''v:''' escuchar un vdn &lt;br /&gt;
*'''a:''' escuchar a un agente &lt;br /&gt;
*'''e:''' escuchar extensión &lt;br /&gt;
La opción '''&amp;lt;expRegEspiado&amp;gt;''' representa el número de la cola, VDN, agente o extensión que queremos escuchar. Tiene que ser una expresión regular. &lt;br /&gt;
La opción '''&amp;lt;parametrosConf&amp;gt;''' se refiera a los parámetros de configuración para la llamada que podemos espiar, se pueden combinar o juntar : &lt;br /&gt;
*'''q:''' Desactiva el 'beep' al comienzo de cada nueva llamada. &lt;br /&gt;
*'''v([value]):''' Ajusta el volumen en el rango -4 a 4 (más alto, mas volumen). &lt;br /&gt;
*'''e:''' Habilita el que se pueda cambiar a otra llamada de la misma extensión. &lt;br /&gt;
*'''w:''' Habilita el que se pueda activar la intrusión (whisper).&lt;br /&gt;
Una vez iniciada la escucha, solo falta que entre una llamada al objetivo que estemos espiando. Al &lt;br /&gt;
iniciar la escucha, se puede hacer lo siguiente: &lt;br /&gt;
*Pulsando '''#''' modifica el volumen de escucha. &lt;br /&gt;
*Pulsando '''*''' cambia a una nueva llamada. &lt;br /&gt;
*Pulsando '''1''' si esta habilitado, cambia a otra llamada de la misma extensión. &lt;br /&gt;
*Pulsando '''2''' si esta habilitado, inicia la función de intrusión. &lt;br /&gt;
*Pulsando '''3''' desactiva la función de intrusión. &lt;br /&gt;
====CallSpyee (espiado)====&lt;br /&gt;
Mediante esta aplicación indicamos los parámetros que permite a una llamada ser seleccionada para &lt;br /&gt;
escuchar. Las opciones de configuración son: &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 CallSpyee([CID_NUM],[cola],[vdn],[agen],[exten]) &lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:'''No son parámetros obligatorios, por lo que no hace falta rellenar todos los campos pero si respetar sus posiciones separadas por comas.&amp;lt;small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
La explicación de los parámetros es la siguiente:&lt;br /&gt;
*'''CID_NUM:''' representa el call ID de la llamadas &lt;br /&gt;
*'''cola:'''representa el número de la cola que se quiere espiar (${QUEUE} ).&lt;br /&gt;
*'''vdn:'''   representa el número del VDN que se quiere espiar (${VDN} ).&lt;br /&gt;
*'''agen:''' representa el número del agente que se quiere espiar.&lt;br /&gt;
*'''exten:''' representa el número de la extensión que se quiere espiar (${EXTENSION}) .&lt;br /&gt;
&lt;br /&gt;
Por ejemplo si queremos escuchar todas las llamadas en las que participa una extensión determinada pondremos en la macro de extensiones: &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,,,${EXTENSION}) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Cambios para el dialplan de asterisk==== &lt;br /&gt;
El funcionamiento de este tipo de servicio conlleva un cambio en el dialplan de asterisk. En cada macro correspondiente se pondrá los diferentes CallSpyee para VDN, colas  , extensiones y agentes. &lt;br /&gt;
Pasos a seguir: &lt;br /&gt;
*Paso 1. Creación de un código de intrusión para cada tipo según necesidad (cola, VDN, agente y &lt;br /&gt;
extensión). &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Ejemplo '''MD'''tel:  declaramos como código de intrusión a Agente *44*NUMERO &lt;br /&gt;
 ;========================================== &lt;br /&gt;
 ;======== Intrusion a Agente &lt;br /&gt;
 ;========================================== &lt;br /&gt;
 exten =&amp;gt; _*44*X.,1,set(CadMarcar=intrusionEspiado) &lt;br /&gt;
 exten =&amp;gt; _*44*X.,n,set(DesL=SERVICIO) &lt;br /&gt;
 exten =&amp;gt; _*44*X.,n,set(datoServicio=^${EXTEN:4}) &lt;br /&gt;
 exten =&amp;gt; _*44*X.,n,Goto(finMacro,1) &lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' En la tercera línea podemos observar la expresión regular que se le pasara al CallSpy correspondiente con el número marcado por el espia. &amp;lt;small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*Paso 2.Llamar a CallSpy con la configuración deseada.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Ejemplo '''MD'''tel:  llamada a CallSpy especificando que vamos a espiar una cola (la c del primer parámetro, con la&lt;br /&gt;
 extensión introducida en el código de intrusión y con whisper, es decir, función de intrusión habilitada. &lt;br /&gt;
 ;------------------------------------------------------------------------ &lt;br /&gt;
 ; Intrusion a Espiado &lt;br /&gt;
 ;------------------------------------------------------------------------ &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,1,NoOp &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,n,GotoIf($[&amp;quot;${datoServicio}&amp;quot;=&amp;quot;&amp;quot;]?colgar) &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,n,CallSpy(c,${datoServicio},w) &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,n(colgar),Hangup &lt;br /&gt;
|}&lt;br /&gt;
* Paso 3. Llamar a CallSpyee con la configuración de las llamadas candidatas a ser escuchadas.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Ejemplo '''MD'''tel: &lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,,,,${EXTENSION}) → Para extensiones &lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,${QUEUE},,,) → Llamadas espiadas por cola &lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,,${VDN},,) → Llamadas espiadas por VDN &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Calendarios ===&lt;br /&gt;
&lt;br /&gt;
Para la configuración de los Calendarios se hace uso de '''CalDAV''', estándar de Internet que permite a un cliente acceder a información de planificación en un servidor remoto. Permite que varios clientes accedan a la misma información, facilitando la cooperación. Muchas aplicaciones, tanto clientes como servidores, son compatibles con este protocolo.&lt;br /&gt;
&lt;br /&gt;
Si deseamos crear un calendario en la plataforma '''VIVAit''' podemos hacerlo siguiendo el  siguiente enlace:  &lt;br /&gt;
Para comprobar que el servidor de calendarios funciona correctamente bastaría con cargar en la barra de direcciones la siguiente url: [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Calendarios |Calendarios]]&lt;br /&gt;
&lt;br /&gt;
http://${NODO.HOST}/dav/html/cal.php/calendars/${DAV.CUENTA}/${DAV.CALENDARIO}&lt;br /&gt;
&lt;br /&gt;
donde,&lt;br /&gt;
&lt;br /&gt;
* '''NODO.HOST:''' es la ip del servidor calendar&lt;br /&gt;
* '''DAV.CUENTA:''' hace referencia a la cuenta de usuario&lt;br /&gt;
* '''DAV.CALENDARIO:''' hace referencia el nombre de la cuenta&lt;br /&gt;
&lt;br /&gt;
Una vez que se carga la url sabremos que el servidor funciona correctamente si visualizamos lo siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla de 2016-07-21 12_43_58.png || 1020px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si el sistema nos pide usuario y clave querrá decir que el servidor de calendarios está operativo en esa maquina&lt;br /&gt;
&lt;br /&gt;
Para comprobar que funciona en la consola de asterisk usaremos los comandos &lt;br /&gt;
 calendar show calendars&lt;br /&gt;
 calendar show calendar [nombreCalendario]&lt;br /&gt;
&lt;br /&gt;
 '''Nota:''' Debido bugs detectados, el proceso requerirá:&lt;br /&gt;
       - La realización de una sincronización manual de la sección &amp;quot;mdcal&amp;quot; desde el portal de administración&lt;br /&gt;
       - Añadir la línea '''''#include &amp;quot;/etc/asterisk/mdcal.conf&amp;quot;''''' en el fichero calendars.conf y hacer &amp;quot;reload&amp;quot; de asterisk&lt;br /&gt;
       - En la máquina donde esté instalado el servidor de calendarios apuntar a la IP de la BDTR (/var/www/dav/config.php)&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Syslog de agentes ===&lt;br /&gt;
'''''Syslog''''' es un estándar para el envío de mensajes de registro en una red informática IP. Por '''''Syslog''''' se conoce tanto al protocolo de red como a la aplicación o biblioteca que envía los mensajes de registro. Se lanza automáticamente al arrancar un sistema Unix, y es el encargado de guardar informes sobre el funcionamiento de la máquina (eventos, seguridad del sistema, etc) pero puede contener también cualquier información como mensajes de las diferentes partes del sistema (núcleo, programas...) y los envía y/o almacena en diferentes localizaciones transmitiéndose mediante un puerto UDP. Esto permite concentrar los registros de múltiples máquinas en un único punto simplificando la labor de gestión al administrador siendo habitual que múltiples dispositivos lo soporten.&lt;br /&gt;
&lt;br /&gt;
El formato del mensaje se compone de tres campos :&lt;br /&gt;
&lt;br /&gt;
* La cabecera contiene la prioridad, fecha y hora del mensaje, máquina, proceso (nombre e identificador) que lo ha generado y la versión del protocolo utilizado.&lt;br /&gt;
* Una serie de pares clave-valor con metadatos.&lt;br /&gt;
* El texto del mensaje.&lt;br /&gt;
&lt;br /&gt;
Si es necesario podemos activar el registro de todos los eventos telefónicos que realiza un agente ACD llamado '''Syslog de agentes'''. Su activación se realiza mediante el '''portal de administración ''VIVA''it'''  configurando unos parámetros para un usuario llamado ''Rastreo BBDD&amp;quot; y ''Rastreo Syslog''. Para más información[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Pesta.C3.B1a_ACD | ver sección  Portal de administración - General - Usuarios - Pestaña ACD  ]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot;  align=&amp;quot;top&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot; |&amp;lt;big&amp;gt;'''Elemento'''&amp;lt;/big&amp;gt; &lt;br /&gt;
|align=&amp;quot;center&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot; | &amp;lt;big&amp;gt;'''Procedimiento'''&amp;lt;/big&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Operacion&lt;br /&gt;
|-&lt;br /&gt;
|Ubicación del proceso||Script arranque: /etc/init/ rsyslog.conf&lt;br /&gt;
Configuración :&lt;br /&gt;
/etc/rsyslog.d/30-vivait-&lt;br /&gt;
desk.conf&lt;br /&gt;
|-&lt;br /&gt;
|Arranque||service rsyslog start&lt;br /&gt;
|-&lt;br /&gt;
|Parada||service rsyslog stop&lt;br /&gt;
|-&lt;br /&gt;
|Reinicio||service rsyslog reload&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Diagnostico&lt;br /&gt;
|-&lt;br /&gt;
|Registro de logs||/var/log/MDtel/vivait-desk.log&lt;br /&gt;
Fichero del día actual. se guardan los 30&lt;br /&gt;
anteriores comprimidos en tar.g&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==Funcionalidades específicas ==&lt;br /&gt;
=== Mecanismo de prioridad adaptativa ===&lt;br /&gt;
&lt;br /&gt;
El mecanismo de prioridad adaptativa permite en una plataforma '''''VIVA'''''it Suite establecer prioridades en las que se tenga en cuenta el tiempo de espera de las llamadas en cola, proporcionando una alternativa al mecanismo de prioridad absoluta que existe por defecto&lt;br /&gt;
&lt;br /&gt;
==== Introducción ====&lt;br /&gt;
&lt;br /&gt;
Este documento presenta una propuesta de mecanismo de asignación de llamadas en colas a agentes basado no solo en las prioridades de agente a cola,&lt;br /&gt;
sino en un factor de corrección de prioridad derivado del tiempo de espera de una llamada&lt;br /&gt;
&lt;br /&gt;
==== Terminología ====&lt;br /&gt;
&lt;br /&gt;
* '''Prioridad de llamada:''' A cada llamada susceptible de ser atendida en el ''Call Center'' se le asignará una prioridad de llamada; dicha prioridad será asignada cada vez que un agente quede disponible.&lt;br /&gt;
* '''Prioridad de grupo ACD:''' Los agentes del ''Call Center'' tendrán configurada una prioridad para cada grupo ACD al que pertenecen&lt;br /&gt;
* '''Tiempo de espera:''' Tiempo que una llamada lleva en espera en un determinado grupo ACD; si la llamada cambia de un grupo ACD a otro el tiempo de espera pasa a cero&lt;br /&gt;
* '''Objetivo de servicio:''' Tiempo objetivo máximo de espera por cada grupo ACD&lt;br /&gt;
&lt;br /&gt;
 '''Nota.-''' ''En terminología Asterisk el aumento de prioridad corresponde con números descendentes, es decir,&amp;lt;br /&amp;gt;&lt;br /&gt;
 prioridad 50 es mejor que prioridad 70''&lt;br /&gt;
&lt;br /&gt;
==== Mecanismo de asignación de llamadas ====&lt;br /&gt;
&lt;br /&gt;
En el momento en que exista un agente disponible para recibir llamada, el agente recepcionará la llamada con mejor prioridad de llamada (menor número). La prioridad de llamada para cada llamada se establecerá de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
- Agentes con prioridad de grupo ACD de 1 a 99 utilizarán el mecanismo convencional de asterisk de prioridad absoluta; será útil para grupos ACD críticos o en Call Centers muy convencionales&lt;br /&gt;
&lt;br /&gt;
'''Si un agente tiene prioridad menor de 100 en grupos ACD y hay llamadas en dichos grupos, estas llamadas serán atendidas por el agente con prioridad absoluta.'''&lt;br /&gt;
&lt;br /&gt;
- Agentes con prioridad de colas de 100 en adelante; se utilizará el siguiente mecanismo de prioridad ponderada:&lt;br /&gt;
&lt;br /&gt;
:*Si el grupo ACD de la llamada está dentro del objetivo de servicio, la prioridad de llamada será la prioridad de grupo ACD (a efectos prácticos se aplicará el mecanismo convencional de asignación de llamada a agente, equitativo entre grupos ACD con misma prioridad)&lt;br /&gt;
&lt;br /&gt;
:*Si el grupo ACD de la llamada está fuera del objetivo de servicio, se aplicará una ponderación que mejorará la prioridad de la llamada a medida que aumente el tiempo de espera:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Formula.png |center]]&lt;br /&gt;
&lt;br /&gt;
En una configuración de igualdad de prioridad de agente y objetivo de servicio, el tiempo de espera influiría de manera determinante (más o menos en&lt;br /&gt;
función del peso) en la asignación de la siguiente llamada&lt;br /&gt;
El peso podrá adquirir tres posibles valores: 0, 1 y 10&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Esquema.png |center]]&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;span style=&amp;quot;color:#000080&amp;quot;&amp;gt;- Calculo prioridad de llamada: se calcula por llamada cada vez que un agente queda libre&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span style=&amp;quot;color:#000080&amp;quot;&amp;gt;- Agente atiende llamada con mejor prioridad de llamada&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Medio:Asignación de llamadas por prioridad adaptativa.pdf|Asignación de llamadas por prioridad adaptativa]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Marcación saliente ===&lt;br /&gt;
Dentro del ACD hay un comportamiento especial que es la marcación saliente. Esta puede ser de tres tipos:&lt;br /&gt;
* '''Vista previa''': El agente demanda la siguiente llamada a realizar.&lt;br /&gt;
* '''Progresivo''': Se llama al agente y se lanza la llamada al contacto.&lt;br /&gt;
* '''Predictivo''': El sistema calcula cuando va a estar libre el agente y se adelanta lanzando varias llamadas (configurables por parámetros). La llamada que es contestada primero, se pasa a una cola (el resto se cuelgan) a la espera que el agente se quede libre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Esquema de funcionamiento====&lt;br /&gt;
[[Archivo:esquema funcionamiento marcador.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
Los contactos se agrupan en listas para su facilidad de asignación a campañas, aunque finalmente lo que se asigna a una campaña es un contacto.&lt;br /&gt;
&lt;br /&gt;
Las campañas tienen estrategias. Las estrategias definen como se ha de llamar (del primero al último, sólo los pares, etc.). Tienen una serie de parámetros que  dependiendo de la estrategia pueden tener distinta utilidad. Desde el punto de vista de la base de datos, las estrategias se definirían en la tabla ACD_CLASES_ESTRATEGIAS y se les da valor en la tabla ACD_ESTRATEGIAS_MARCADOR.&lt;br /&gt;
Una vez establecida la campaña y asignados sus contactos y dependiendo del modo de marcación (que se define en las colas) el proceso motorSal crea los intentos de marcación (siempre y cuando no estén en las listas Robinson), que serán leídos por el proceso myAcdSuperv que los convierte en llamadas para el Asterisk.&lt;br /&gt;
&lt;br /&gt;
====Flujo de estados====&lt;br /&gt;
&lt;br /&gt;
El flujo de estados es el reflejado en la figura siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:diagrama de flujo motorsal.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
Los diferentes estados de un contacto son:&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Estado !! ID_Estado!! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| Planificable || 0|| El contacto está preparado para que lo gestione motorSal y según la estrategia definida se establece el campo ACD_CONTACTOS_CAMPANNAS.D_HORA_PROXIMA&lt;br /&gt;
|-&lt;br /&gt;
|Planificado||10||Cuando ha llegado el tiempo marcado en HORA PROXIMA, motorSal ejecuta la 2ª fase de la estrategia, generando el intento de marcación.&lt;br /&gt;
|-&lt;br /&gt;
|Intento||20||El control pasa a myAcdSuperv, que a su vez genera la llamada en Asterisk. Cuando termina, se pasa a Planificable o Finalizado.&lt;br /&gt;
|-&lt;br /&gt;
|Finalizado||100||Las gestiones con este contacto han terminado.&lt;br /&gt;
|-&lt;br /&gt;
|Abortado||110||&lt;br /&gt;
|-&lt;br /&gt;
|Obsoleto||200||Se ha agotado el tiempo para contactar sin agotar todos los intentos. No se le vuelve a llamar nunca.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Carga de contactos====&lt;br /&gt;
&lt;br /&gt;
===== Descripción =====&lt;br /&gt;
&lt;br /&gt;
A continuación se explica la configuración y funcionamiento de la utilidad encargada de asignar contactos a campañas.&lt;br /&gt;
&lt;br /&gt;
===== Configuración =====&lt;br /&gt;
&lt;br /&gt;
El archivo de configuración recibe el nombre de '''cargaContactos.pconf.''' Este archivo reside en '''/etc/MDtel.''' El formato se describe en la tabla siguiente. Hay que tener en cuenta que las columnas empiezan a numerarse en 0.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Parámetro !! Valor !! Obligatorio !! Defecto&lt;br /&gt;
|- &lt;br /&gt;
| db|| Nombre de la base de datos|| SI || nimitz&lt;br /&gt;
|- &lt;br /&gt;
| dbHost|| Host MySQL || SI || localhost&lt;br /&gt;
|- &lt;br /&gt;
| dbPort|| Puerto MySQL || NO || 3306&lt;br /&gt;
|- &lt;br /&gt;
| dbUsuario || Usuario de acceso a la base de datos|| SI ||&lt;br /&gt;
|- &lt;br /&gt;
| dbClave || Clave del usuario || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| rutaContactos || Ruta hasta el archivo de contactos || NO || /var/spool/MDtel/contactos&lt;br /&gt;
|- &lt;br /&gt;
| obsoletos || Si vale 1, marcar como obsoletos los contactos anteriores || NO || 0&lt;br /&gt;
|- &lt;br /&gt;
| diasCaducidad || Número de dias a partir de los cuales caducarán los contactos || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| idCampanna || Número de columna que contiene el ID de la campaña || SI||&lt;br /&gt;
|- &lt;br /&gt;
| idLista || Numero de columna que contiene el ID de la lista || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| prioridad || Número de columna que contiene la prioridad || NO || Nota: El valor es de 0 a 99. A mayor número menor prioridad (se le llamará más tarde)&lt;br /&gt;
|- &lt;br /&gt;
| tipoTarea|| Número de columna que contiene el tipo de tarea || NO || Nota: los posibles valores de la columna son : &amp;lt;br /&amp;gt; *A: Alta &amp;lt;br /&amp;gt; *M: Modificación &amp;lt;br /&amp;gt; *B: Baja&amp;lt;br /&amp;gt; Por defecto el valor es A&lt;br /&gt;
|- &lt;br /&gt;
| codCli || Número de columna del CSV que contiene el código de cliente || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| nombreCon || Número de columna del CSV que contiene el nombre || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| apellido1 || Número de columna del CSV que contiene el primer apellido|| NO ||&lt;br /&gt;
|- &lt;br /&gt;
| apellido2 || Número de columna del CSV que contiene el segundo apellido || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| empresa || Número de columna del CSV que contiene la empresa || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| direccion1 || Número de columna del CSV que contiene la dirección || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| direccion2 || Número de columna del CSV que contiene la dirección 2 || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| codPostal || Número de columna del CSV que contiene el código postal || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| localidad || Número de columna del CSV que contiene la localidad || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| provin || Número de columna del CSV que contiene la provincia || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| email || Número de columna del CSV que contiene el email || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_1 || Número de columna del CSV que contiene el primer número fijo del contacto || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_2 || Número de columna del CSV que contiene el segundo número fijo del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_3 || Número de columna del CSV que contiene el tercer número fijo del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_4 || Número de columna del CSV que contiene el cuarto número fijo del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_1 || Número de columna del CSV que contiene el primer número móvil del contacto || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_2 || Número de columna del CSV que contiene el segundo número móvil del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_3 || Número de columna del CSV que contiene el tercer número móvil del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_4 || Número de columna del CSV que contiene el CUARTO número móvil del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| edad || Número de columna del CSV que contiene la edad || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc1|| Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc2 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc3 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc4 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc5 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc6 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc7 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc8 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc1 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc2 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc3 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc4 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc5 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc6 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc7 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc8 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Funcionamiento =====&lt;br /&gt;
&lt;br /&gt;
Para ejecutar la utilidad se debe teclear la siguiente orden en la línea de comandos:&lt;br /&gt;
&lt;br /&gt;
'''cmd# cargaContactos.pl /&amp;lt;ruta hasta el conf&amp;gt;/cargaContactos.pconf &amp;lt;archivo CSV&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
El archivo con los contactos deberá ser un CSV con los campos separados por ';'. La utilidad parsea el archivo conforme a la distribución indicada en la configuración y crea las correspondientes entradas en las tablas '''ACD_CONTACTOS''' y '''ACD_CONTACTOS_CAMPANNAS.'''&lt;br /&gt;
&lt;br /&gt;
La utilidad crea un log en '''/var/log/cargaContactos.log''' en el que vuelca toda la operativa.&lt;br /&gt;
Por pantalla se va mostrando un lista con el ID asignado al contacto y el ID de campaña al que se le ha asignado.&lt;br /&gt;
&lt;br /&gt;
Un ejemplo de fichero de carga de contactos sería el siguiente: &lt;br /&gt;
&lt;br /&gt;
 #&lt;br /&gt;
 # Configuracion de recordGwd.pl&lt;br /&gt;
 #&lt;br /&gt;
 # Conexion de base de datos&lt;br /&gt;
 $db='nimitz';&lt;br /&gt;
 $dbHost = 'localhost';&lt;br /&gt;
 $dbPort = '3306';&lt;br /&gt;
 $dbUsuario = 'nimitz';&lt;br /&gt;
 $dbClave = 'LA QUE SEA';&lt;br /&gt;
 $diasCaducidad='300';&lt;br /&gt;
 $rutaGrab = '/var/spool/MDtel/contactos';&lt;br /&gt;
 $idCampanna = '31';&lt;br /&gt;
 $idLista = '32';&lt;br /&gt;
 $obsoletos = 0;&lt;br /&gt;
 $codCli = '1';&lt;br /&gt;
 $nombreCon = '2';&lt;br /&gt;
 $apellido1 = '3';&lt;br /&gt;
 $apellido2 = '4';&lt;br /&gt;
 $empresa = '5';&lt;br /&gt;
 $direccion1 = '6';&lt;br /&gt;
 $direccion2 = '7';&lt;br /&gt;
 $codPostal = '8';&lt;br /&gt;
 $localidad = '9';&lt;br /&gt;
 $provin = '10';&lt;br /&gt;
 $email = '11';&lt;br /&gt;
 $valFijo_1 = '12';&lt;br /&gt;
 $valFijo_2 = '13';&lt;br /&gt;
 $valFijo_3 = '14';&lt;br /&gt;
 $valFijo_4 = '15';&lt;br /&gt;
 $valMovil_1 = '16';&lt;br /&gt;
 $valMovil_2 = '17';&lt;br /&gt;
 $valMovil_3 = '18';&lt;br /&gt;
 $valMovil_4 = '19';&lt;br /&gt;
 $edad = '20';&lt;br /&gt;
 $nOpc1 = '21';&lt;br /&gt;
 $nOpc2 = '22';&lt;br /&gt;
 $nOpc3 = '23';&lt;br /&gt;
 $nOpc4 = '24';&lt;br /&gt;
 $cOpc1 = '25';&lt;br /&gt;
 $cOpc2 = '26';&lt;br /&gt;
 $cOpc3 = '27';&lt;br /&gt;
 $cOpc4 = '28';&lt;br /&gt;
 $prioridad = '29';&lt;br /&gt;
 $tipoTarea = '30';&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ENLACES QUE HABIA&lt;br /&gt;
[[Medio:CargaContactos300.pdf|Instrucciones para carga automatizada de contactos]]&lt;br /&gt;
&lt;br /&gt;
[[Medio:EjemplocargaContactos.pconf.pdf|Ejemplo de fichero de carga de contactos]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Movilidad ===&lt;br /&gt;
La movilidad es una función integral de las comunicaciones en la empresa. Cualquier empleado (usuario) es móvil en cierto grado, sea dentro o fuera de la organización.La solución óptima debe proporcionar continuidad de servicios y acceso a nuestros servicios, sin importar donde se esté.&lt;br /&gt;
&lt;br /&gt;
==== Ofrecer movilidad a un usuario ====&lt;br /&gt;
&amp;lt;!--parte daniel--&amp;gt;&lt;br /&gt;
Para permitir la movilidad a un usuario, puede ser en el momento de crear o editar un usuario en el apartado ''Administración de usuario'' en ''General'' del '''portal de administración ''VIVA''it'''.  Asignándole un '''''numero login''''' (numero personal corporativo para el usuario) y una '''''clave login''''' ( se debe asignar una clave por defecto, pero puede cambiarla en el [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_3.0#Portal_de_usuario |portal de usuario]]). &amp;lt;br/&amp;gt;Para más información[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Pesta.C3.B1a_Centralita | ver sección Portal de administración - General - Usuarios - administración de usuarios - Pestaña Centralita]].&lt;br /&gt;
&lt;br /&gt;
Además, de crear un permiso de la '''aplicación ''Centralita''''' a cualquier nivel, desde el apartado ''Permisos de usuarios'' en ''General'' del '''portal de administración ''VIVA''it'''.&amp;lt;br/&amp;gt;Para más información[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Asignaci.C3.B3n_de_Permisos_de_Usuario_por_Administrador | ver sección  Portal de administración - General - Usuarios - Permisos a usuarios]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''La movilidad permite''' disponer de las extensiones telefónicas empresariales en cualquier lugar. Por&lt;br /&gt;
ejemplo, con un ordenador portátil o smartphone en una ubicación remota con conexión a Internet,&lt;br /&gt;
podríamos tener registrada nuestra extensión remotamente, y así las llamadas hacia/desde nuestra&lt;br /&gt;
oficina serían enrutadas por Internet hasta el equipo en cuestión sin coste alguno.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--parte daniel--&amp;gt;&lt;br /&gt;
Todo terminal tiene asociado una extensión y deberá permitir la movilidad de usuarios. La extensión se configura cambiando a '''''SI''''' el campo '''''Hay Movilidad''''' desde el apartado ''Extensiones'' de ''Dispositivos'' en ''VIVAit Call'' del '''portal de administración ''VIVA''it'''. Para más información [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Extensiones | ver sección Portal de administración - VIVAit Call - Dispositivos - Extensiones]]&lt;br /&gt;
&lt;br /&gt;
==== ¿Cómo funcionan las extensiones? ====&lt;br /&gt;
&lt;br /&gt;
Primeramente el usuario debe tener los ejes apropiados en la tabla '''COM_USUARIOS_APLICACION''' (aplicación centralita).&lt;br /&gt;
&lt;br /&gt;
La extensión debe de tener ''un teléfono'' y por tanto ''un modelo de teléfono asociado.''&lt;br /&gt;
&lt;br /&gt;
Es tan simple como especificar '''la extensión, el usuario y la clave de este.'''&lt;br /&gt;
&lt;br /&gt;
Para corroborar el funcionamiento de esta hay ''dos métodos'':&lt;br /&gt;
&lt;br /&gt;
'''* CLI asterisk:'''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenEntraUsuarioMovil 25001 20001 1234'''&lt;br /&gt;
&lt;br /&gt;
Y como resultado obtenemos lo siguiente:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br /&amp;gt;&lt;br /&gt;
 MOVIL_TIPO_RESET='10'&amp;lt;br /&amp;gt;&lt;br /&gt;
 MOVIL_CAD_RESET='notify_yealink'&amp;lt;br /&amp;gt;&lt;br /&gt;
 MdintzRes='OK'&lt;br /&gt;
&lt;br /&gt;
El usuario con el login numérico 20001 se ha &amp;quot;movido&amp;quot; a la extensión 25001&lt;br /&gt;
&lt;br /&gt;
Ahora ''nos quitamos de esa extensión mediante el siguiente comando:''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenSaleUsuarioMovil 25001'''&lt;br /&gt;
&lt;br /&gt;
Resultado del comando:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MOVIL_TIPO_RESET='10'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MOVIL_CAD_RESET='notify_yealink'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzRes='OK'&lt;br /&gt;
&lt;br /&gt;
Las pruebas anteriores han sido '''con extensiones con movilidad y con usuario con/sin&lt;br /&gt;
propietario.'''&lt;br /&gt;
&lt;br /&gt;
Ahora las realizamos '''con extensiones sin movilidad'''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenEntraUsuarioMovil 25002 20001 1234'''&lt;br /&gt;
&lt;br /&gt;
Obteniendo:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzRes='movil_error_datos'&lt;br /&gt;
&lt;br /&gt;
Como era lo previsible no nos deja &amp;quot;movernos&amp;quot; a esa extensión ya que no tiene movilidad.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;Si un usuario ya se ha movido a una extensión no se puede mover a otra si no es deslogandose de esta antes.&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenEntraUsuarioMovil 21000 20001 1234'''&lt;br /&gt;
&lt;br /&gt;
Con salida:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MOVIL_EXTEN='25001'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MDintzRes='movil_ya_login'&lt;br /&gt;
&lt;br /&gt;
'''* Dialplan'''&lt;br /&gt;
&lt;br /&gt;
Para llamar a la función de movilidad hay que marcar el '''9992.'''&lt;br /&gt;
&lt;br /&gt;
 Nota.- Para comprobar que se realiza todo correctamente habría que mirar las trazas de Asterisk&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Grabación ===&lt;br /&gt;
&lt;br /&gt;
La grabación en '''''VIVA'''''it Call está diseñada para ser lo mas flexible posible.&lt;br /&gt;
&lt;br /&gt;
====Configuración====&lt;br /&gt;
&lt;br /&gt;
Si deseamos grabar, debemos activar que alguno de los dispositivos/elementos que intervienen en la llamada se grabe.&lt;br /&gt;
&lt;br /&gt;
Estos dispositivos/elementos son:&lt;br /&gt;
&lt;br /&gt;
* Nodo.&lt;br /&gt;
* Usuario con Centralita.&lt;br /&gt;
* Agente.&lt;br /&gt;
* Grupo ACD corporativo y de Contact Center.&lt;br /&gt;
* Enlace exterior.&lt;br /&gt;
* Extensión.&lt;br /&gt;
* Facilidades.&lt;br /&gt;
* Grupo: grupo de salto o grupo de operadoras.&lt;br /&gt;
* Sala de conferencia.&lt;br /&gt;
* VDN corporativo y de Contact Center.&lt;br /&gt;
* Pre-rutas.&lt;br /&gt;
&lt;br /&gt;
Por otro lado necesitaremos que la llamada pase por un nodo que sea grabador, es decir, que si la llamada esta configurada para que se grabe pero no pasa por ningún nodo grabador, la llamada no se grabará.&lt;br /&gt;
&lt;br /&gt;
Al configurar un nodo existen cuatro campos que intervienen en la grabación.&lt;br /&gt;
&lt;br /&gt;
''''Grabador''''&lt;br /&gt;
&lt;br /&gt;
Se configura en el portal en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Este campo corresponde con el campo [[BD.COM_NODOS#B_ES_GRABADOR|B_ES_GRABADOR]] de la tabla [[BD.COM_NODOS|COM_NODOS]] , este campo define si el nodo va a grabar las llamas que pasen por el que necesiten ser grabadas y no se estén grabando ya.&lt;br /&gt;
&lt;br /&gt;
Es un campo booleano los posibles valores en el portal son si/no y en la base de datos 1/0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''''Modo grabación infraestructura''''&lt;br /&gt;
&lt;br /&gt;
Su configuración se realiza en el portal, en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Este campo define como está configurada la infraestructura, este campo existe por compatibilidad con '''''VIVA'''''it suite y para poder configurar la grabación bajo demanda.&lt;br /&gt;
&lt;br /&gt;
Este campo corresponde con el campo [[BD.COM_NODOS#E_MODO_GRABACION_INFRAESTRUCTURA|E_MODO_GRABACION_INFRAESTRUCTURA]] de la tabla [[BD.COM_NODOS|COM_NODOS]], Este campo usa los valores del enumerado BD.ENUM.TModoGrabacionInfraestructura|TModoGrabacionInfraestructura]].&lt;br /&gt;
&lt;br /&gt;
La formula que se seguiría para ver si una llamada se graba en ese nodo es:&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 (NODO.E_MODO_GRABACION_INFRAESTRUCTURA) AND (NODO.B_ENRU_GRABAR OR CEN_PRE_RUTA.B_ENRU_GRABAR OR &amp;quot;OBJETO&amp;quot;.B_ENRU_GRABAR)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Que sería que si la infraestructura esta en NoGraba no se graba nada de lo que se rute en ese nodo y en cualquiera de los 2 otros caso (GrabaTodo o GrabaPorPeticion) se grabaría dependiendo de la configuración del Nodo, la ruta o el objeto en cuestión (preruta, grupo ACD, extension,...).&lt;br /&gt;
&lt;br /&gt;
''''Grabar enrutamiento''''&lt;br /&gt;
&lt;br /&gt;
Se configura en el portal en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Este campo define si van a grabar las llamadas que se enruten en este nodo.&lt;br /&gt;
&lt;br /&gt;
Campo [[BD.COM_NODOS#E_ENRU_GRABAR|E_ENRU_GRABAR]] de la tabla [[BD.COM_NODOS|COM_NODOS]] que usa los valores del enumerado [[BD.ENUM.TTipoEnruGrabar|TTipoEnruGrabar]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''''RecordCentral''''&lt;br /&gt;
&lt;br /&gt;
Se configura en el portal en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Define que instancia del recordCentral es la encargada de tratar las grabaciones de este nodo.&lt;br /&gt;
&lt;br /&gt;
Para aumentar el rendimiento a la hora de traerse las grabaciones, se pueden definir varias instancias de proceso recordCentral, este campo define cual de estas instancias se encargara de este nodo.&lt;br /&gt;
&lt;br /&gt;
====Vivait Tracker====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL LA ÚNICA REFERENCIA A VIVAIT TRACKER EN LA DOCUMENTACIÓN &amp;quot;Vivait supervisor&amp;quot; QUE TENGO DICE LO SIGUIENTE. &amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Desde '''''VIVA'''''it Supervisor,  que es la aplicación dirigida a Supervisores, ofrece la posibilidad de supervisar y gestionar grupos ACD, agentes, asignaciones, prioridades,etc. Se puede obtener acceso directo a las aplicaciones de grabación ('''''VIVA'''''it tracker) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL FIN EXPLICACIÓN. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL De la documentacion creada por ivan. &amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Esquematico actual del proyecto tracker &lt;br /&gt;
[[Archivo:Esquematico_tracker_1.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1º El tracker web llama al web service Remote login para iniciar sesión y determinar si tiene permisos para la escucha y descarga de grabaciones.&lt;br /&gt;
&lt;br /&gt;
2º Si la ubicación de la grabación es local, mira la ruta de esta y se procede a la escucha o descarga de esta.&lt;br /&gt;
&lt;br /&gt;
3º Si la ubicación de la grabación es remota, entra en escena el proxy. Es el que realiza la petición.&lt;br /&gt;
&lt;br /&gt;
4º Si utilizamos el tracker windows, este, como el tracker web, llama primero al web service remote login para la autenticación y tema de Permisos.&lt;br /&gt;
&lt;br /&gt;
5º Para descargar o escuchar una grabación desde el tracker windows, se llama al web service servidor de grabaciones pasándole simplemente el ID de segmento.mp3. Este web service, con el ID de segmento, se encarga de determinar la ubicación de la grabación.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL De la documentación creada por ivan. &amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Esquematico actual del proyecto tracker &lt;br /&gt;
[[Archivo:Esquematico_tracker_2_https.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1º El tracker web llama al web service Remote login para iniciar sesión (comunicación https) y determinar si tiene permisos para la escucha y descarga de grabaciones. Se elimina el proxy&lt;br /&gt;
&lt;br /&gt;
2º Si la ubicación de la grabación es local, mira la ruta de esta y se procede a la escucha o descarga de esta.&lt;br /&gt;
&lt;br /&gt;
3º Si la ubicación de la grabación es remota, se realiza una petición al host remoto. El tipo de petición vendrá fijada por base de datos (http, https, ftp,ftps)&lt;br /&gt;
&lt;br /&gt;
4º Si utilizamos el tracker windows, este, como el tracker web, llama primero al web service remote login para la autenticación y tema de permisos (comunicación https extremo a extremo).&lt;br /&gt;
&lt;br /&gt;
5º Para descargar o escuchar una grabación desde el tracker windows, se llama al web service servidor de grabaciones pasándole simplemente el ID de segmento.mp3. Este web service, con el ID de segmento, se encarga de determinar la ubicación de la grabación.&lt;br /&gt;
&lt;br /&gt;
[[#Grabación_(Vivait_Tracker)| Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operación_plataforma_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
=== Enrutamiento ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Enrutamiento.png|885px |center]]&lt;br /&gt;
&lt;br /&gt;
==== Funcionamiento ====&lt;br /&gt;
El proceso de enrutamiento, como vemos en el esquemático, se compone de dos fases:&lt;br /&gt;
&lt;br /&gt;
# Preenrutameinto, que se encarga de tratar todas las llamadas&lt;br /&gt;
# Enrutamiento externo, que tiene módulos dedicados al enrutamiento hacia:&lt;br /&gt;
:*Enlaces externos. &lt;br /&gt;
:*Extensiones. &lt;br /&gt;
:*Usuarios de telefonía corporativa. &lt;br /&gt;
:*Facilidades. &lt;br /&gt;
:*Salas de conferencia. &lt;br /&gt;
:*Agentes de grupos ACD. &lt;br /&gt;
:*Grupos ACD. &lt;br /&gt;
:*Vdn. &lt;br /&gt;
:*Buzones para dejar mensaje. &lt;br /&gt;
:*Buzones para su gestión.&lt;br /&gt;
&lt;br /&gt;
Se asume que existen rutas directas entre todos los nodos de la red.&lt;br /&gt;
&lt;br /&gt;
Se asume que están directamente enrutadas todas las direcciones IP involucradas, tanto nodos, como terminales.&lt;br /&gt;
&lt;br /&gt;
Se asume que todas las facilidades están disponibles en todos los nodos, aunque es posible que la implementación sea diferente entre ellos.&lt;br /&gt;
&lt;br /&gt;
Los datos de entrada básicos al proceso de enrutamiento (pdEntr) son:&lt;br /&gt;
* Dispositivo&lt;br /&gt;
* Cola&lt;br /&gt;
* Origen&lt;br /&gt;
* Nodo entrada&lt;br /&gt;
* UCID&lt;br /&gt;
* CALLER_ID_NAME&lt;br /&gt;
* CALLER_ID_NUM&lt;br /&gt;
* DNIS&lt;br /&gt;
* Desvío por dialplan&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A partir de los datos de entrada básicos anteriores se pueden deducir los siguientes valores:&lt;br /&gt;
* Sede del dispositivo de entrada&lt;br /&gt;
* Sede del nodo de entrada&lt;br /&gt;
* Ancho de banda disponible en la sede del dispositivo&lt;br /&gt;
* Ancho de banda disponible en la sede del nodo&lt;br /&gt;
* Categoría entrante&lt;br /&gt;
* Valor del eje1 asignado a la llamadas&lt;br /&gt;
* CALLER_ID_NUM_EXTERNO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los datos de salida globales del proceso de enrutamiento (pdSale) son:&lt;br /&gt;
* Categoría saliente&lt;br /&gt;
* Código de cliente (opcional)&lt;br /&gt;
* Tipo de destino:	&lt;br /&gt;
:* No existe&lt;br /&gt;
:* Ruta externa&lt;br /&gt;
:* Extensión&lt;br /&gt;
:* Usuario de telefonía corporativa&lt;br /&gt;
:* Facilidad&lt;br /&gt;
:* Salas de conferencia&lt;br /&gt;
:* Agentes de grupos ACD&lt;br /&gt;
:* Grupos ACD&lt;br /&gt;
:* VDN&lt;br /&gt;
:* Buzón para dejar mensaje. &lt;br /&gt;
:* Buzón para dejar mensaje por ocupado. &lt;br /&gt;
:* Buzón para dejar mensaje por no contestación. &lt;br /&gt;
:* Buzón para su gestión.&lt;br /&gt;
* Destinatario (cuando se trata de un usuario o de un agente)&lt;br /&gt;
* Valor del eje1 asignado a la llamada&lt;br /&gt;
* Buzón de las extensiones y usuarios que los tengan asignados&lt;br /&gt;
* Si el buzón está en nodo distinto al de entrada&lt;br /&gt;
* DESVIO_INCONDICIONAL (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable) &lt;br /&gt;
* DESVIO_NO_CONTESTA (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable) &lt;br /&gt;
* DESVIO_OCUPADO (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable) &lt;br /&gt;
* DESVIO_FUERA_SERV (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los datos de salida para cada una de las posibles rutas en orden son (nn va de 01 maxRutas [nn son dos dígitos decimales]):&lt;br /&gt;
* CONTADOR_ABDE_nn (contador para control de ancho de banda en sede de dispositivo de entrada).  &lt;br /&gt;
* CONTADOR_ABNE_nn (contador para control de ancho de banda en sede de nodo de entrada).  &lt;br /&gt;
* CONTADOR_ABDS_nn (contador para control de ancho de banda en sede de dispositivo de salida).  &lt;br /&gt;
* CONTADOR_ABNS_nn (contador para control de ancho de banda en sede de nodo de salida).  &lt;br /&gt;
* CALLER_NAME_SAL_nn , puede salir de una extensión, un usuario o de un agente. &lt;br /&gt;
* CALLER_NUM_SAL_nn, puede salir de una extensión, un usuario o de un agente.  &lt;br /&gt;
* DESTINO_SAL_nn , en general, el valor C_NOMBRE o destino de salida.  &lt;br /&gt;
* RUTA_NODO_nn , Cadena de marcación para ir la nodo que soporta DESTINO_SAL_nn, si es distinto del nodo de entrada.  &lt;br /&gt;
* RUTA_SAL_nn &lt;br /&gt;
:* Extensión: cadena marcación. &lt;br /&gt;
:* Facilidad: E_CODIGO_FACILIDAD obtenido de la tabla CEN_FACILIDADES. &lt;br /&gt;
:* Usuario: cadena marcación de la extensión asignada al usuario en movilidad o en propiedad. &lt;br /&gt;
:* Agente: cadena marcación de la extensión a la que está conectado el agente. &lt;br /&gt;
:* Ruta externa: contexto que gestiona la llamada saliente.&lt;br /&gt;
&lt;br /&gt;
=====Fase preenrutamiento =====&lt;br /&gt;
&lt;br /&gt;
La fase de preenrutamiento (basada en la tabla CEN_PRE_RUTA) se usa en todas las llamadas entrantes, tanto internas, como externas. Permite desarrollar un “prerouting” estándar para ACD y para telefonía corporativa.&lt;br /&gt;
&lt;br /&gt;
Los datos de entrada al proceso de enrutamiento son iguales a los del proceso global de enrutamiento, excepto en que este proceso no usa el nodo de entrada ya que es independiente de éste.&lt;br /&gt;
&lt;br /&gt;
Los datos de salida de la fase de preenrutamiento:&lt;br /&gt;
* D_CATEGORIA_SAL &lt;br /&gt;
* COD_CLIENTE (opcional) &lt;br /&gt;
* TIPO_DESTINO_SAL&lt;br /&gt;
:* No existe.   &lt;br /&gt;
:* Volver a preenrutar.   &lt;br /&gt;
:* Ruta externa.   &lt;br /&gt;
:* Extensión.   &lt;br /&gt;
:* Usuario de telefonía corporativa.   &lt;br /&gt;
:* Facilidad.   &lt;br /&gt;
:* Sala de conferencia.   &lt;br /&gt;
:* Agente de grupos ACD.   &lt;br /&gt;
:* Grupos ACD.   &lt;br /&gt;
:* VDN.   &lt;br /&gt;
:* Buzón para dejar mensaje.   &lt;br /&gt;
:* Buzón para dejar mensaje por ocupado.   &lt;br /&gt;
:* Buzón para dejar mensaje por no contestación.   &lt;br /&gt;
:* Buzón para su gestión. &lt;br /&gt;
* COD_CLIENTE &lt;br /&gt;
* Valor del eje1 asignado a la llamada &lt;br /&gt;
* CALLER_NAME &lt;br /&gt;
* CALLER_NUM &lt;br /&gt;
* DESTINO&lt;br /&gt;
&lt;br /&gt;
El proceso de preenrutamiento consiste en seleccionar un único registro de la tabla CEN_PRE_RUTA y, con sus valores y con los valores de entrada al proceso, generar los datos de salida.&lt;br /&gt;
&lt;br /&gt;
Un posible tipo de salida es &amp;quot;Volver a preenrutar&amp;quot;. Esto permite realimentar el proceso un máximo de &amp;quot;max_pre_ruta_regs&amp;quot; veces (en archivo .conf) para simplificar configuración. Sólo tiene sentido realimentar si se ha hecho alguna modificación en los datos de selección de registro, ya que en caso contrario se produciría un bucle que el proceso de preenrutamiento es capaz de detectar y evitar.&lt;br /&gt;
&lt;br /&gt;
Para elegir el registro de CEN_PRE_RUTA, se tienen en cuenta los datos de entrada de la llamada, de modo que se cumpla con todos los puntos siguientes: &lt;br /&gt;
* ID_CATEGORIA_ENT igual a la del dispositivo de entrada.  &lt;br /&gt;
* CALLER_NUM de entrada  &lt;br /&gt;
:* Debe comenzar por la cadena C_ORIGEN_ENT_PREF o C_ORIGEN_ENT_PREF=NULL, con menos prioridad. Es conveniente rellenar este dato del modo más restrictivo que sea posible, independientemente de C_ORIGEN_ENT_EXPR. Ello permite disminuir el uso innecesario de recursos de evaluación de expresiones regulares.    &lt;br /&gt;
:* Debe de tener un número de dígitos igual o superior a N_ORIGEN_ENT_MIN_DIGITOS, si este valor no es NULL o cero.    &lt;br /&gt;
:* Debe de tener un número de dígitos igual o inferior a N_ORIGEN_ENT_MAX_DIGITOS, si este valor no es NULL o cero.    &lt;br /&gt;
:* Debe cumplir la expresión regular C_ORIGEN_ENT_EXPR, si ésta no es NULL.  &lt;br /&gt;
* DNIS empiece con C_DESTINO_ENT_PREF o C_DESTINO_ENT_PREF=NULL. Es conveniente rellenar este dato del modo más restrictivo que sea posible, independientemente de C_DESTINO_ENT_EXPR. Ello permite disminuir el uso innecesario de recursos de evaluación de expresiones regulares.  &lt;br /&gt;
* Si varias entradas cumplen la condición anterior, se prueba primero la que el campo C_DESTINO_ENT_PREF tenga una longitud mayor y, de entre éstas, la que C_ORIGEN_ENT_PREF tenga una longitud mayor.  &lt;br /&gt;
* DNIS tenga un número de dígitos igual o superior a N_DESTINO_ENT_MIN_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* DNIS tenga un número de dígitos igual o inferior a N_ORIGEN_ENT_MIN_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* DNIS cumpla la expresión regular C_DESTINO_ENT_EXPR, si ésta no es NULL. &lt;br /&gt;
&lt;br /&gt;
Si no se encuentra ninguna entrada adecuada, quiere decir que es una llamada prohibida y se devuelve el tipo de destino &amp;quot;No existe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Puede conseguirse un destino &amp;quot;por defecto&amp;quot; diferente, creando una entrada que encaje siempre para cada categoría: C_ORIGEN_ENT, C_ORIGEN_ENT_MIN_DIGITOS, C_ORIGEN_ENT_MAX_DIGITOS, C_ORIGEN_ENT_EXPR, C_DESTINO_ENT_PREF, N_DESTINO_ENT_MIN_DIGITOS, N_DESTINO_ENT_MAX_DIGITOS y C_DESTINO_ENT_EXPR a valor NULL.&lt;br /&gt;
&lt;br /&gt;
Una vez elegida una entrada, ésta puede transformar o sustituir el valor de ID_CATEGORIA, CALLER_NAME, CALLER_NUM, DESTINO, COD_CLIENTE y/o EJE1_MSK a la salida del proceso. &lt;br /&gt;
&lt;br /&gt;
Si ID_CATEGORIA_SAL es cero, se propaga a la salida el valor de la entrada. En caso contrario, se sustituye. &lt;br /&gt;
&lt;br /&gt;
Si C_CALLER_NAME está vacío, se mantiene el valor hubiese a la entrada. En caso contrario, se sustituye. &lt;br /&gt;
&lt;br /&gt;
C_CALLER_NUM puede contener una cadena que identifica el nuevo CALLER_NUM. Además, si la cadena comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo CALLER_NUM es igual al de entrada al proceso. &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo CALLER_NUM es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo. &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;. &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al CALLER_NUM de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo CALLER_NUM de salida. Si la expresión regular no se cumpliese, se propagará el valor de entrada al proceso. &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante que sustituye el valor a la entrada.&lt;br /&gt;
&lt;br /&gt;
Cada vez que se utilice una preruta, se incrementará el valor de N_CONTA si el valor de N_UMBRAL es mayor que cero.&lt;br /&gt;
&lt;br /&gt;
Un valor N_UMBRAL mayor que cero permite modificar el destino de salida cuando el valor de actual de N_CONTA (antes de incrementarse) supere o sea igual el valor de N_UMBRAL. Si se cumple la condición indicada, se usa como destino tras el preenrutamiento, los valores de los campos E_TIPO_DESTINO_SAL_2 y C_DESTINO_SAL_2.&lt;br /&gt;
&lt;br /&gt;
Si el valor de N_UMBRAL es menor o igual a cero o si N_CONTA es inferior a N_UMBRAL, se usa como destino tras el preenrutamiento, los valores de los campos E_TIPO_DESTINO_SAL_1 y C_DESTINO_SAL_1.&lt;br /&gt;
Con este mecanismo de N_CONTA y N_UMBRAL, se pretende facilitar el discriminar a los llamantes reincidentes, cuando sea necesario. &lt;br /&gt;
&lt;br /&gt;
Un proceso periódico externo debe encargarse de poner a cero o decrementar el valor de N_CONTA.&lt;br /&gt;
Como resultado de los procesos de filtrado y de verificación anteriores, se habrá obtenido un TIPO_DESTINO_SAL y un C_DESTINO_SAL a partir de los campos con sufijo &amp;quot;_1&amp;quot; o &amp;quot;_2&amp;quot;, con una metodología similar al caso C_CALLER_NUM.&lt;br /&gt;
&lt;br /&gt;
C_DESTINO_SAL_x puede contener cadena que permite obtener el nuevo destino. Además, si la cadena comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo destino es igual al de entrada al proceso.  &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo destino es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo.  &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;.  &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al destino de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo destino de salida. Si la expresión regular no se cumpliese, quiere decir que es una llamada prohibida y se encaminará hacia una facilidad por defecto.  &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante que sustituye el valor a la entrada. &lt;br /&gt;
Información de salida del proceso de preenrutamiento: Cuando TIPO_DESTINO_SAL_x toma los valores que se indican, el proceso global de enrutamiento sólo requiere de preenrutamiento y la información a devolver se obtiene dependiendo de TIPO_DESTINO_SAL_x: &lt;br /&gt;
* No existe: Se asume que no se conoce un destino para los datos de entrada, por lo que la llamada se encamina hacia una facilidad por defecto que gestiona su tratamiento.  &lt;br /&gt;
* Extensión: A partir de las tablas CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar la extensión en el nodo principal y en el secundario.  &lt;br /&gt;
* Facilidad: A partir de las tablas CEN_DISPOSITIVOS, CEN_FACILIDADES y CEN_NODOS.  &lt;br /&gt;
* Usuario de telefonía corporativa: A partir de las tablas CEN_USUARIOS, CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar al usuario en el nodo principal y en el secundario de la extensión que corresponde en base a movilidad, con prioridad, o en base a propiedad.  El caso de movilidad no se tiene en cuenta si el proceso de enrutamiento se realiza en &amp;quot;modo supervivencia&amp;quot;.  &lt;br /&gt;
* Sala conferencia: A partir de las tablas CEN_SALAS_CONFERENCIAS y CEN_NODOS.  &lt;br /&gt;
* Agente de ACD: A partir de las tablas ACD_USUARIOS, DAT_TR_ACD_EXTENSIONES, CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar al agente en el nodo principal y en el secundario.  &lt;br /&gt;
* VDN: A partir de las tablas ACD_VDN y CEN_NODOS, se devolverán los valores que permiten alcanzar al VDN en su nodo.  &lt;br /&gt;
* Grupo ACD: A partir de las tablas ACD_COLAS y CEN_NODOS, se devolverán los valores que permiten alcanzar al grupo ACD en su nodo. &lt;br /&gt;
&lt;br /&gt;
El campo B_GENERAR_SEGMENTO de la tabla CEN_PRE_RUTA indica al proceso de preenrutamiento que es preciso generar un segmento de tipo &amp;quot;preenrutamiento&amp;quot;. En el segmento generado, se rellena el campo C_ETIQUETA1 del nuevo segmento con el valor que contiene el campo homónimo del registro asociado en la tabla CEN_LISTA_PRE_RUTAS.&lt;br /&gt;
&lt;br /&gt;
===== Fase de enrutamiento en casos en que el destino no es externo =====&lt;br /&gt;
Datos de entrada al proceso de enrutamiento externo: iguales a los de salida del proceso de preenrutamiento (pdPreSale), uniéndose a éstos los datos globales de entrada al proceso (pdEntr). &lt;br /&gt;
&lt;br /&gt;
Datos de salida de la fase de enrutamiento: iguales que los del proceso global de enrutamiento (pdSale). &lt;br /&gt;
&lt;br /&gt;
Específicamente y sólo para los casos en que el destino es una extensión (tipo de destino extensión, usuario de telefonía corporativa o agente) es cuando son válidos los datos correspondientes al buzón asociado y los datos de los posibles desvíos previstos. &lt;br /&gt;
&lt;br /&gt;
También en este caso, se prevén dos posibles rutas, una se corresponde con el acceso a la extensión en el nodo principal de ésta y la otra en el nodo secundario. &lt;br /&gt;
&lt;br /&gt;
En el resto de tipos de destino, sólo se prevé una ruta que puede incluir o no un enlace internodal. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Fase de enrutamiento en el caso de destino externo =====&lt;br /&gt;
Datos de entrada al proceso de enrutamiento externo: iguales a los de salida del proceso de preenrutamiento (pdPreSale), uniéndose a éstos los datos globales de entrada al proceso (pdEntr). &lt;br /&gt;
Datos de salida de la fase de enrutamiento: iguales que los del proceso global de enrutamiento (pdSale). &lt;br /&gt;
&lt;br /&gt;
Se elige los primeros &amp;quot;max_ruta&amp;quot; registros (configurado en archivo .conf) en CEN_DESTINOS_EXTERNOS unido con CEN_RELACION_DESTINOS_ENLACES_EXTERNOS que, teniendo en cuenta los datos de entrada al proceso de enrutamiento, cumpla con todos los puntos siguientes: &lt;br /&gt;
* ID_CATEGORIA_ENT igual a la de salida del proceso de preenrutamiento.  &lt;br /&gt;
* C_DESTINO_SAL de proceso de preenrutamiento empiece con C_DESTINO_ENT_PREF. &lt;br /&gt;
* Si varias entradas cumplen la condicion anterior, se prueba primero la que el campo C_DESTINO_ENT_PREF tenga una longitud mayor.  &lt;br /&gt;
* C_DESTINO_SAL tenga un número de dígitos igual o superior a N_DESTINO_ENT_MIN_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* C_DESTINO_SAL tenga un número de dígitos igual o inferior a N_DESTINO_ENT_MAX_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* C_DESTINO_SAL cumpla la expresión regular C_DESTINO_ENT_EXPR, si ésta no es NULL. &lt;br /&gt;
&lt;br /&gt;
Aparte de la longitud del campo C_DESTINO_ENT_PREF, se usa N_PRIORIDAD como campo para ordenar los registros y seleccionar lo &amp;quot;max_ruta&amp;quot; primeros. &lt;br /&gt;
&lt;br /&gt;
Una vez que un registro es válido, se descartan todos los registros cuyo C_DESTINO_ENT_PREF es diferente del primero seleccionado. &lt;br /&gt;
&lt;br /&gt;
Como resultado de los procesos de filtrado y de verificación anteriores, se habrá obtenido hasta un máximo de &amp;quot;max_rutas&amp;quot; valores para posibles rutas. Las posibles propagaciones y transformaciones en los datos de cada ruta son función de los datos de cada registro seleccionado: &lt;br /&gt;
&lt;br /&gt;
CALLER_NAME_nn: Si C_CALLER_NAME está vacío, se propaga el valor de entrada. En caso contrario, se sustituye. &lt;br /&gt;
&lt;br /&gt;
CALLER_NUM_nn: Sale de C_CALLER_NUM que puede contener una cadena que identifica el nuevo CALLER_NUM_n. Además, si C_CALLER_NUM comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo CALLER_NUM_nn es igual al de entrada al proceso.  &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo CALLER_NUM_nn es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo.  &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;.  &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al CALLER_NUM de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo CALLER_NUM de salida. Si la expresión regular no se cumpliese, se propaga el valor de entrada al proceso.  &lt;br /&gt;
* &amp;quot;&amp;gt;&amp;quot; Si existe valor para CALLER_NUM_EXTERNO, se propagará éste a la salida. En caso contrario y si no está vacía la cadena que queda al eliminar el prefijo &amp;quot;&amp;gt;&amp;quot;, se susituye en la salida por el valor de la cadena sin prefijo. Si la cadena estuviese únicamente constituida por el valor &amp;quot;&amp;gt;&amp;quot;, se propaga el valor de entrada.  &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante sin ninguna modificación. &lt;br /&gt;
&lt;br /&gt;
C_DESTINO_SAL_nn: Se obtiene a partir de C_DESTINO_SAL que puede contener una cadena que identifica el nuevo destino. Además, si la cadena comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo destino es igual al de entrada al proceso. &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo destino es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo. &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;. &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al destino de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo destino de salida. Si la expresión regular no se cumpliese, se propaga el valor de entrada al proceso. &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante sin ninguna modificación. &lt;br /&gt;
&lt;br /&gt;
RUTA_NODO_nn: Sólo se usa si el nodo de salida es diferente del nodo de entrada. Contiene la cadena de marcación para ir la nodo que soporta DESTINO_SAL_nn. Sale del campo C_FORMATO_DIAL (sustituyendo variables) correspondiente al tipo de dispositivo del enlace exterior. &lt;br /&gt;
&lt;br /&gt;
RUTA_SAL_nn: Es el campo C_DATO_ASTERISK obtenido a partir del registro en la tabla CEN_ENLACE_EXTERIOR que se corresponde con ID_ENLACE_EXTERIOR de la tabla CEN_RELACION_DESTINOS_ENLACES_EXTERNOS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Control de ancho de banda ===&lt;br /&gt;
&lt;br /&gt;
Para el control de ancho de banda, primero hemos de tener en consideración que una llamada puede tener asociadas hasta cuatro sedes&lt;br /&gt;
:* Sede del terminal origen (terminal A)&lt;br /&gt;
:* Sede del nodo de registro del terminal origen (nodo A)&lt;br /&gt;
:* Sede del terminal destino (terminal B)&lt;br /&gt;
:* Sede del nodo de registro del terminal destino (nodo B)&lt;br /&gt;
&lt;br /&gt;
Además hemos de tener en cuenta que el audio de la conversación podrá ir:&lt;br /&gt;
:* De manera directa entre terminal A y terminal B&lt;br /&gt;
:* De manera indirecta, a través de los nodos A y B&lt;br /&gt;
&lt;br /&gt;
[[Archivo:ancho de banda.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Cuando se va a cursar una llamada de terminal A a terminal B, el proceso de enrutamiento del nodo A devuelve 4 variables de canal al dialplan:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! Variable!!Campos &lt;br /&gt;
|- &lt;br /&gt;
|R_ABDE_xx||R = Variable de rutas --- AB = ancho de banda --- D = dispositivo --- E = Entrante --- xx = de 0 a 3&lt;br /&gt;
|-&lt;br /&gt;
|R_ABNE_xx||R = Variable de rutas --- AB = ancho de banda --- N = nodo --- E = Entrante --- xx = de 0 a 3&lt;br /&gt;
|-&lt;br /&gt;
|R_ABDS_xx||R = Variable de rutas --- AB = ancho de banda --- D = dispositivo --- S = Saliente --- xx = de 0 a 3&lt;br /&gt;
|- &lt;br /&gt;
|R_ABNS_xx||R = Variable de rutas --- AB = ancho de banda --- N = nodo --- S = Saliente --- xx = de 0 a 3&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El valor de cada variable es una cadena del tipo '''AB.wwww.xxxx.y.z''' donde cada valor es:&lt;br /&gt;
:* '''wwww''' --&amp;gt; id de sede&lt;br /&gt;
:* '''xxxx''' --&amp;gt; ancho de banda total de la sede&lt;br /&gt;
:* '''y''' --&amp;gt; número de llamadas a sumar si conversación directa&lt;br /&gt;
:* '''z''' --&amp;gt; número de llamadas a sumar si conversación indirecta&lt;br /&gt;
&lt;br /&gt;
Por otro lado tenemos que tener en cuenta que el dialplan tiene control de las llamadas que cada sede puede cursar&lt;br /&gt;
&lt;br /&gt;
De esta forma, cuando existe una nueva llamada el dialplan aplica la fórmula, suma el resultado al número de llamadas en curso y lo compara con el máximo...si el resultado es mayor que le máximo la llamada no se cursará por congestión&lt;br /&gt;
&lt;br /&gt;
Configuraremos el ancho de banda por sede en el portal de administración y el consumo que hace cada llamada en la variable '''AB_CONSUMO_LLAMADA''' del fichero '''ext_MDtel_particular.conf''' de cada nodo de conmutación; el valor por defecto es 32&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Puesto de trabajo ==&lt;br /&gt;
El puesto de trabajo del agente en la plataforma '''''VIVA'''''it  (para el producto '''''VIVA'''''it Suite) estará compuesto por:&lt;br /&gt;
* PC (típicamente windows) en el que reside la aplicación '''''VIVA'''''it Desk&lt;br /&gt;
* Terminal telefónico con extensión física asociada.&lt;br /&gt;
&lt;br /&gt;
Para más información [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Puestos | ver sección Portal de administración-VIVAit Suite ACD+ - Puestos]].&lt;br /&gt;
&lt;br /&gt;
=== Relación PC/teléfono en puesto de trabajo ===&lt;br /&gt;
&lt;br /&gt;
Existirá una relación única entre nombre PC y extensión física asociada, si bien los agentes se identificarán por su login que les acompaña al puesto de trabajo en el que se loguen&lt;br /&gt;
Existe un procedimiento documentado para la operativa de cambio de puesto de trabajo, en caso de ser necesario el cambio de PC o de teléfono de un puesto de trabajo.&lt;br /&gt;
==== Procedimiento para un cambio de puesto de trabajo ====&lt;br /&gt;
Se basa en una asignación de PC a teléfono relaccionando la extensión telefónica del terminal físico con el nombre del puesto de trabajo. La configuración de dicha asociación se realiza en el portal de administración de la plataforma. &lt;br /&gt;
&lt;br /&gt;
Cualquier cambio que se realice en terminal telefónico o PC de agente ha de mantener la asociación en el portal a efectos de permitir el funcionamiento del sistema.&lt;br /&gt;
&lt;br /&gt;
A continuación se reflejan los cambios más habituales:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cambio !! Procedimiento !! Punto de acción&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| Cambio de ubicación de un PC || Opción 1.- Renombrar el PC para que conserve el nombre que tenía el anterior en esa ubicación || PC de agente&lt;br /&gt;
|-&lt;br /&gt;
|  Opción 2.- Rehacer la asignación extensión/puesto || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot;| Instalación de PC nuevo en puesto existente || Opción 1.- Renombrar el PC para que conserve el nombre que tenía el anterior en esa ubicación || PC de agente&lt;br /&gt;
|-&lt;br /&gt;
| Opción 2.- Rehacer la asignación extensión/puesto || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| Cambio de nombre en un PC || Rehacer asignación extensión/puesto || Rehacer asignación extensión/puesto&lt;br /&gt;
|-&lt;br /&gt;
|Cambio de ubicación de un teléfono  || Rehacer la asignación extensión/puesto&lt;br /&gt;
 || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| Instalación de un teléfono nuevo en puesto existente || Rehacer la asignación extensión/puesto || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| Instalación de un nuevo puesto de agente|| Hacer asignación extensión/puesto || Portal de administración&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:relacion_puesto_agente.png|center|500px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Estructura de aplicaciones en puesto de trabajo ===&lt;br /&gt;
Las aplicaciones del puesto de trabajo pueden estar ubicadas en cualquier carpeta del sistema. Es importante tener en cuenta que los procesos de actualización, logs… escriben en dichas carpetas, por lo que el usuario de windows deberá tener permisos de lectura/escritura y borrado sobre dichas carpetas&lt;br /&gt;
La instalación del puesto de trabajo es muy liviana para el sistema; las aplicaciones ocupan poco espacio y no se modifican ficheros del sistema operativo (registry o similares)&lt;br /&gt;
Los ficheros importantes son&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Fichero !! Descrición&lt;br /&gt;
|-&lt;br /&gt;
| Vivait-desk.exe || Contiene la aplicación '''''VIVA'''''it Desk de agente&lt;br /&gt;
|-&lt;br /&gt;
| vivait_desk_dll.dll||Este fichero contiene controles sobre los formularios (controles de&lt;br /&gt;
texto, algunas reglas de obligatoriedad…)&lt;br /&gt;
|-&lt;br /&gt;
| nimitz.ini || Configuración del puesto de agente&lt;br /&gt;
|-&lt;br /&gt;
| lanzador.exe || Aplicación de actualización de versiones&lt;br /&gt;
|-&lt;br /&gt;
| lanzador.ini || Configuración del actualizador de aplicaciones&lt;br /&gt;
|-&lt;br /&gt;
| Carpeta forms || En esta carpeta están ubicados los formularios que se abren ante llamada entrante o saliente&lt;br /&gt;
|-&lt;br /&gt;
| Carpeta imágenes || Contiene las imágenes izquierda y derecha de la barra de '''''VIVA'''''it Desk&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Secciones de utilidad en nimitz.ini ===&lt;br /&gt;
&lt;br /&gt;
==== Configuración del puesto de agente ====&lt;br /&gt;
&lt;br /&gt;
El fichero nimitz.ini contiene la configuración del puesto de agente; sus principales parámetros son:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| |''' Fichero'''&lt;br /&gt;
|| '''Descripción'''&lt;br /&gt;
|-&lt;br /&gt;
|Sección [bd1]&lt;br /&gt;
||host=&amp;quot;ip_BBDD_tiempo_real&amp;quot;&lt;br /&gt;
puerto=&amp;quot;Nº puerto&amp;quot;&lt;br /&gt;
basedatos=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
usuario=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
clave=&amp;quot;UIk5jMY9PVX6ogg=&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Contiene información para la conexión a BBDD de tiempo real, en la que '''''VIVA'''''it Desk fundamentalmente inserta información&lt;br /&gt;
|-&lt;br /&gt;
|Sección [bd2]&lt;br /&gt;
||host=&amp;quot; ip_BBDD_replica &amp;quot;&lt;br /&gt;
puerto=&amp;quot;Nº puerto&amp;quot;&lt;br /&gt;
basedatos=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
usuario=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
clave=&amp;quot;UIk5jMY9PVX6ogg=&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Contiene información para la conexión a BBDD de réplica, en la que '''''VIVA'''''it Desk solo leerá información&lt;br /&gt;
|-&lt;br /&gt;
|Sección [telefono]&lt;br /&gt;
||pruebas=1 (Valores válidos 0 ó 1)&lt;br /&gt;
Activación de funcionalidad &amp;quot;servicio técnico&amp;quot; en '''''VIVA'''''it Desk.&lt;br /&gt;
&lt;br /&gt;
puesto=&amp;quot;Nombre puesto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Sección [trazas]&lt;br /&gt;
|| nivel=3&lt;br /&gt;
&lt;br /&gt;
archivo=1&lt;br /&gt;
&lt;br /&gt;
consola=0&lt;br /&gt;
&lt;br /&gt;
sobreescribir=1&lt;br /&gt;
&lt;br /&gt;
Activación de generación de ficheros de trazas &amp;quot;viva-desk.log&amp;quot; en carpeta de aplicaciones &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Parámetros en invocación a '''''VIVA'''''it Desk ===&lt;br /&gt;
&lt;br /&gt;
La aplicación '''''VIVA'''''it Desk puede ser invocada con una serie de parámetros que condicionan su funcionamiento; los parámetros son:&lt;br /&gt;
* Primer parámetro: Nombre del archivo .ini; usado como alternativa al fichero por defecto &amp;quot;nimitz.ini&amp;quot;&lt;br /&gt;
* Segundo parámetro: Nombre de puesto; usado como alternativa al nombre de puesto del ordenador&lt;br /&gt;
* Tercer parámetro: Nombre de login; para forzar un usuario; es de utilidad si el sistema está configurado como &amp;quot;confiar en sistema operativo&amp;quot;, en cuyo caso no permite seleccionar un login de agente para acceder a la aplicación&lt;br /&gt;
&lt;br /&gt;
=== Instalación y actualización de aplicaciones de puestos de trabajo ===&lt;br /&gt;
La instalación y actualización de las aplicaciones en el puesto de trabajo pasan por disponer de los ficheros “lanzador.exe” y “lanzador.ini” (debidamente configurado) dentro de la carpeta en la que se desee instalar.&lt;br /&gt;
Lanzando la aplicación “lanzador.exe” se instalará o actualizará el sistema. &lt;br /&gt;
&lt;br /&gt;
El fichero “lanzador.ini” tiene el siguiente aspecto:&lt;br /&gt;
 URL=&amp;quot;http://IP_Servidor:8180/WSActualizaXML/actualizar.xml&amp;quot;&lt;br /&gt;
 BASE_URL_DESCARGAS=&amp;quot;http://IP_servidor:8180/XMLFILES/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Servicio técnico en '''''VIVA'''''it Desk ===&lt;br /&gt;
La activación de la funcionalidad de servicio técnico en '''''VIVA'''''it Desk nos permite realizar sincronizaciones manuales de la aplicación y activar trazas a nivel de Base de Datos o a nivel de log sobre el propio '''''VIVA'''''it Desk. Pulsando el botón derecho del ratón sobre la barra '''''VIVA'''''it Desk accederemos a las capacidades de soporte técnico&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Funcionamiento de la plataforma en modo emergencia ==&lt;br /&gt;
== Accesos Web ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Aplicación !! Enlace&lt;br /&gt;
|-&lt;br /&gt;
|Portal de administración '''''VIVA'''''it Suite || http://ip_admin:8180/Vivait-Call&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker||http://ip_tracker:8180/Vivait-Tracker&lt;br /&gt;
|-&lt;br /&gt;
|Monitor Web||http://ip_monitor:8180/MonitorWeb&lt;br /&gt;
|-&lt;br /&gt;
|Monitorización Zabbix||http://ip_zabbix:80/zabbix&lt;br /&gt;
|-&lt;br /&gt;
|Base de datos tiempo real||http://ip_bbdd_tr:80/phpmyadmin/&lt;br /&gt;
|-&lt;br /&gt;
|Base de datos réplica||http://ip_bbdd_replica:80/phpmyadmin&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Permisos de aplicaciones ===&lt;br /&gt;
Se crean a través del '''portal de administración ''VIVA''it''' . Debe conocerse como funcionan los ejes [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Ejes| ver sección Portal de administracion - General - Ejes]] y que existen cuatro aplicaciones creadas en la plataforma:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:17_2 Pestaña Genera - Usuarios - Explicacion permisos.png|center]]&lt;br /&gt;
&lt;br /&gt;
La forma como dar permisos de aplicaciones a un usuario esta explicada en la [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Asignaci.C3.B3n_de_Permisos_de_Usuario_por_Administrador | sección  Portal de administracion - General - Usuarios ]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elementos monitorizados del sistema ==&lt;br /&gt;
===Generalidades de Zabbix===&lt;br /&gt;
====Zabbix ====&lt;br /&gt;
Zabbix es una solución de código abierto que ofrece características de monitorización avanzada de forma tecnica y para el negocio, para todo tipo de servidores, aplicaciones y equipos que forman parte de una red. La versión que utilizamos en '''md'''tel es Zabbix 2.2.2.&lt;br /&gt;
&lt;br /&gt;
Zabbix  monitoriza los  recursos  de un equipo en forma remota, permite centralizar la información en un servidor que permite visualizar el monitoreo, cuenta con una interfaz de administración vía web y utiliza un mecanismo flexible de la notificación que permita que los usuarios configuren las alarmas basadas email para informar virtualmente cualquier acontecimiento. Esto permite una reacción rápida a los problemas del servidor. &lt;br /&gt;
&lt;br /&gt;
Para acceder al servidor Zabbix abrimos el navegador y ponemos la dirección de red (IP) de la maquina donde se encuentra instalado el servidor de Zabbix seguido de &amp;quot;/Zabbix.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Direccion.IP.Zabbix.Server/zabbix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Zabbix posee documentación tanto en wiki, foros y comunidades.Para ampliar la información se puede visitar:&lt;br /&gt;
[[http://www.zabbix.com Sitio oficial de Zabbix]]&lt;br /&gt;
===== Glosario Zabbix =====&lt;br /&gt;
Se trata de una lista de conceptos básicos de Zabbix, pero para ampliar la información sobre otros términos, visite el [[http://www.zabbix.com Sitio oficial de Zabbix]].&lt;br /&gt;
* '''host''' &lt;br /&gt;
:En Zabbix, un host es una entidad que define el elemento en red que se desea monitorizar/supervisar activamente sus recursos locales y aplicaciones. Este puede ser una impresa, router, switch, sensores de temperatura, un servidor, un ordenador,etc, o también una aplicación. La característica de un host es que debe poseer una dirección de red (IP).&lt;br /&gt;
&lt;br /&gt;
* '''host group'''&lt;br /&gt;
:En Zabbix, un host group (grupo host) es una agrupación lógica de los host, como una forma de organizar los dispositivos &amp;quot;Host&amp;quot; registrados en Zabbix para su monitorización. Puede contener hosts y templates.  Los grupos host se utilizan en la asignación de derechos de acceso a los hosts para diferentes grupos de usuarios.&lt;br /&gt;
&lt;br /&gt;
* '''item'''&lt;br /&gt;
:En Zabbix, un item (medida) es el parámetro que deseamos obtener del host, básicamente es una medida especifica que el servidor Zabbix recogerá de los agentes de Zabbix instalados en los host.&lt;br /&gt;
&lt;br /&gt;
* '''trigger'''&lt;br /&gt;
:En Zabbix, un trigger(disparador) es una entidad que define un umbral para detectar la existencia de un problema en un dispositivo.  Son valores recolectados por los &amp;quot;items&amp;quot;, se usa para &amp;quot;evaluar&amp;quot; los datos recibidos con condiciones definidas. Las condiciones son de tipo aritmético y lógico.&lt;br /&gt;
* '''event'''&lt;br /&gt;
:En Zabbix, un event (evento) es la aparición de un suceso en Zabbix que necesita atención. Por ejemplo, el cambio de estado a raíz de un trigger, el descubrimiento de un nuevo agente (autoregistro),etc.&lt;br /&gt;
* '''action'''&lt;br /&gt;
:En Zabbix, una action(acción) son reglas predefinidas para reaccionar a un evento disparado por los triggers, es decir, define qué hacer ante un evento. Consta de operaciones (por ejemplo, una notificacion, comandos remotos) y condiciones (cuando  la operación se lleva a cabo).&lt;br /&gt;
* '''notification'''&lt;br /&gt;
:En Zabbix, una notification (notificacion) es la entidad con que Zabbix nos puede notificar (Correo Electrónico,mensajes vía &amp;quot;SMS&amp;quot; o Jabber).&lt;br /&gt;
* '''template'''&lt;br /&gt;
:En Zabbix, un témplate (plantilla) viene predefinida en la instalación de Zabbix Server, con el fin de ser aplicada en base al tipo de sistema operativo(Linux, Mac, Window, etc) o en elementos que comparten los mismos parámetros de medición, por ejemplo la carga del procesador, uso de memoria y  uso de recursos de red. Las plantillas son un conjunto de módulos &amp;quot;ITEM, TRIGGERS y GRÁFICAS&amp;quot;, que están preconfigurados y listas para ser aplicadas a uno o varios hosts.&lt;br /&gt;
* '''application'''&lt;br /&gt;
:En Zabbix, una application (aplicación) es una agrupación lógica de los items.&lt;br /&gt;
* '''Zabbix server'''&lt;br /&gt;
:El Zabbix server (servidor de Zabbix) es el proceso central donde están definidas las configuraciones y donde se almacenan todos los datos y estadísticas recogidas de los agentes Zabbix.Consta de una base de datos, una interfaz web y el propio server. Como servidor, se encarga de recoger los datos de los agentes, calcular los triggers, enviar notificaciones, etc. &lt;br /&gt;
* '''Zabbix agent'''&lt;br /&gt;
:El zabbix agent (agente de Zabbix)  es un proceso desplegado en los host que son supervisados, que funciona como un servicio y puede funcionar de forma activa y pasiva simultáneamente.&lt;br /&gt;
&lt;br /&gt;
=====Discovery=====&lt;br /&gt;
La funcionalidad discovery(detección) lista los dispositivos que se integran en nuestra red y el tipo de servicios que proporciona. Por ejemplo, si la empresa tuviera cien colas ACDs, y veinticinco VDNS, y en cada cola como veinte medidas, seria muy laborioso registrar una por uno cada uno.  &lt;br /&gt;
Gracias a esta funcionalidad, se descubre todas las interfaces de red que se tiene, automáticamente y tanto para colas nodos o IVR. Para utilizar esta funcionalidad , se hace el uso de dos script, que se instalan en el momento de instalación de Zabbix en el directorio &amp;quot;/usr/local/sbin&amp;quot;, que son:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
'''zabbixDiscoveryQueues.pl''' : script utilizado para buscar colas ACD.&lt;br /&gt;
&lt;br /&gt;
'''zabbixDiscoveryVDN.pl''' : script utilizado para buscar VDNS.&lt;br /&gt;
|}&lt;br /&gt;
La explicación de como configurarla se encuentra en el manual oficial [[https://www.zabbix.com/documentation/2.2/manual/discovery/network_discovery/rule | Zabbix detección de redes]].&lt;br /&gt;
&lt;br /&gt;
=====Notificaciones=====&lt;br /&gt;
&lt;br /&gt;
Necesariamente, debe darse de alta al usuario y darse de alta el servidor de correo electrónico para poder ser capaz de enviar correos.&lt;br /&gt;
&lt;br /&gt;
Por otro lado, el formato del correo electrónico y las condiciones de envío de correo al usuario se configura en las acciones. Véase  el [[https://www.zabbix.com/documentation/2.2/manual/quickstart/notification  | manual oficial de Zabbix 2.2]]&lt;br /&gt;
&lt;br /&gt;
=====Usuarios=====&lt;br /&gt;
Zabbix permite la organización de usuarios en grupos para establecer los permisos adecuados de acuerdo al tipo de perfil que deseemos crear. Necesariamente un usuario debe permanecer a un grupo o varios grupos.Todos los usuarios acceden a la aplicación de Zabbix a través de la interfaz Web. &lt;br /&gt;
&lt;br /&gt;
Cada usuario Zabbix se le asigna un nombre de usuario único , una contraseña y podemos indicarle que tipo de comunicación que posee, normalmente es vía email, pero puede ser vía a otro tipo de medios. Para mas información ver el [[https://www.zabbix.com/documentation/2.2/manual/web_interface/user_profile || manual oficial ]].&lt;br /&gt;
 &lt;br /&gt;
=====Visualización=====&lt;br /&gt;
Con Zabbix es posible visualizar los datos como  gráficos, pantallas, mapas y hasta presentaciones cambiantes, entre otros. En este apartado solo nombraremos características esenciales que se tendra que completar con el [[https://www.zabbix.com/documentation/2.2/manual/config/visualisation | manual oficial]]&lt;br /&gt;
======Graphs======&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''Nota:''' Debe crearse algun item dentro del host para poder utilizar una gráfica.&lt;br /&gt;
|}&lt;br /&gt;
En Zabbix una gráfica sirve para representar gráficamente los resultados obtenidos de uno item o varios items.&lt;br /&gt;
[[File:EjemploGrafica.png|center|750px]]&lt;br /&gt;
Los valores min / avg / max que Zabbix obtiene y representa son de un registro de datos de la tabla tendencias.&lt;br /&gt;
&lt;br /&gt;
======Screens======&lt;br /&gt;
La pantalla refiere a otra característica adaptable de ZABBIX cuál permite que los usuarios creen las pantallas personalizadas dentro de ZABBIX para exhibir la información. Se considera como una colección de gráficas y no depende del host. Una pantalla puede consistir en gráficos simples, gráficos personalizados, integrar mapas, Alertas, gráficos estadísticos o texto llano tal como los 5 valores pasados de un item particular entre otros; y mostrar la información de forma dinámica.&lt;br /&gt;
&lt;br /&gt;
[[File:EjemploScreen.png|center|750px]]&lt;br /&gt;
&lt;br /&gt;
======Maps======&lt;br /&gt;
En Zabbix, un map (mapa) es una representación gráfica de la situacion de nuestros dispositivos en red. Es un escenario que muestra nuestra red, aplicaciones y servicios a través de figuras o iconos.  Dichas figuras toman vida en respuesta a los eventos que se dan en nuestro entorno.&lt;br /&gt;
[[File:EjemploMaps.png|center|750px]]&lt;br /&gt;
[[File:EstadosMaps.png|center|750px]]&lt;br /&gt;
===Zabbix en '''MD'''tel===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Configuraciones de Zabbix ====&lt;br /&gt;
&lt;br /&gt;
===== Agentes Zabbix =====&lt;br /&gt;
{|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 '''Nota:''' Hay que instalar un agente Zabbix en cada maquina que se quiera monitorizar.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El agente de Zabbix puede recoger datos: &lt;br /&gt;
*'''De forma pasiva:''' el server contacta al agente pidiéndole un dato (por ejemplo el consumo de CPU en ese instante) y el agente responde al server con ese dato. A esta acción del agente le llamaremos '''Agente activo'''.&lt;br /&gt;
*'''De forma activa:''' en un primer momento, el server le enviará al agente el listado de items a monitorizar. A partir de ese momento, será el agente que de forma periódica recogerá datos sobre esos ítems y se los hará llegar al server. A esta acción del agente le llamaremos ''''''Agente pasivo''''''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== Configurar agente de forma pasiva======&lt;br /&gt;
Para configurar el agente de Zabbix necesitamos acceder a la maquina que actuará como agente, y en el directorio /etc/zabbix modificar el fichero '''zabbix_agentd.conf''' e indicar cual es la dirección de red (IP) del servidor Zabbix.&lt;br /&gt;
&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 ##### Passive checks related&lt;br /&gt;
 ### Option: Server&lt;br /&gt;
 #       List of comma delimited IP addresses (or hostnames) of Zabbix servers.&lt;br /&gt;
 #       Incoming connections will be accepted only from the hosts listed here.&lt;br /&gt;
 #       If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1'  &lt;br /&gt;
 #       are treated equall$&lt;br /&gt;
 #&lt;br /&gt;
 # Mandatory: no&lt;br /&gt;
 # Default:&lt;br /&gt;
 Server= IP.Server Zabbix.&lt;br /&gt;
|}&lt;br /&gt;
Tras la configuración del fichero, debemos reiniciar el servicio de los agentes.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 sudo service zabbix-agent restart&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====== Configurar agente de forma activa ======&lt;br /&gt;
&lt;br /&gt;
Para configurar el agente de Zabbix necesitamos acceder a la máquina que actuará como agente, y en el directorio /etc/zabbix modificar el fichero '''zabbix_agentd.conf''' e indicar cual es la dirección de red (IP) del servidor Zabbix.&lt;br /&gt;
&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 ##### Active checks related&lt;br /&gt;
 ### Option: ServerActive&lt;br /&gt;
 #       List of comma delimited IP:port (or hostname:port) pairs of Zabbix serv$&lt;br /&gt;
 #       If port is not specified, default port is used.&lt;br /&gt;
 #       IPv6 addresses must be enclosed in square brackets if port for that hos$&lt;br /&gt;
 #       If port is not specified, square brackets for IPv6 addresses are option$&lt;br /&gt;
 #       If this parameter is not specified, active checks are disabled.&lt;br /&gt;
 #       Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12$&lt;br /&gt;
 #&lt;br /&gt;
 # Mandatory: no&lt;br /&gt;
 # Default:&lt;br /&gt;
 ServerActive=127.0.0.1&lt;br /&gt;
 --------------------------sección separada----------------------------&lt;br /&gt;
 ### Option: UserParameter&lt;br /&gt;
 #       User-defined parameter to monitor. There can be several user-defined pa$&lt;br /&gt;
 #       Format: UserParameter=&amp;lt;key&amp;gt;,&amp;lt;shell command&amp;gt;&lt;br /&gt;
 #       See 'zabbix_agentd' directory for examples.&lt;br /&gt;
 #&lt;br /&gt;
 # Mandatory: no&lt;br /&gt;
 # Default:&lt;br /&gt;
 # UserParameter=&lt;br /&gt;
 User_parameters:asterisk.pid, /usr/bin/asterisk -rx 'core show chanels'|grep 'active calls'| cat -d -f 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El parámetro '''User_parameters''' tiene un formato de este estilo:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 User_parameters: NombreMedida, comando.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El nombre de la medida se refiere al nombre que demos a la aplicación , no hace falta que exista una aplicación con ese nombre en Zabbix, y el comando , es el comando remoto que tiene que ejecutar el servidor Zabbix. Posiblemente necesita darse permisos para ejecutar el comando y siempre debe devolver un valor (un numero o un tiempo) que el servidor Zabbix puede manejar.&lt;br /&gt;
Tras la configuración del fichero, debemos reiniciar el servicio de los agentes.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 sudo service zabbix-agent restart&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Scripts del Servidor Zabbix =====&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''': &amp;lt;small&amp;gt;No olvidar que en la misma maquina del server Zabbix, debe configurarse como agente de Zabbix.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Después de realizar la [[# Instalación de Zabbix | Instalación de Zabbix ]] correctamente. Se han creado otros ficheros scripts (''scripts propios de '''md'''tel'') que facilitarán la petición del servidor a los agentes activos, para poder parametrizar todos los elementos del negocio que suelen monitorizarse. &lt;br /&gt;
Dependiendo de lo que vaya a monitorizarse necesitaremos algún script o todos. Algunos nos informan sobre elementos de negocio, saber si asterisk funciona , monitorizar el CTI (lanzara nc localhost 1111) , controlar el Intz-Nimitz, comprobar si funciona motalsal, ect.&lt;br /&gt;
&lt;br /&gt;
Cada script se exportara a los host, para que pueda facilitar los datos que pide el servidor Zabbix y configurarse.&lt;br /&gt;
Por ejemplo,para monitorizar las llamadas en curso del ACD, agentes conectados, agentes desconectados, etc.&lt;br /&gt;
Todos los scripts se deben colocar en el directorio /usr/local/sbin con permisos 755, su nombre es parecido a &amp;quot;zabbixSenderXXXXX.pl&amp;quot;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 ls /usr/local/sbin/ |grep zabbixSender&lt;br /&gt;
 '''zabbixSenderACDBD.pl'''&lt;br /&gt;
 '''zabbixSenderACD.pl'''&lt;br /&gt;
 '''zabbixSenderCTI.pl'''&lt;br /&gt;
 '''zabbixSender-intz-nimitz.pl'''&lt;br /&gt;
 '''zabbixSenderMotorSal.pl'''&lt;br /&gt;
 '''zabbixSenderMyACDSuperv.pl'''&lt;br /&gt;
 '''zabbixSenderRecordNodo.pl'''&lt;br /&gt;
 '''zabbixSenderRecordCentral.pl'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Se crea una tarea programada en linux para poder ejecutarse los scripts, programando el tiempo en que debe ejecutarse.&lt;br /&gt;
&lt;br /&gt;
Si visualizo que &amp;quot;............&amp;quot; aparece:&lt;br /&gt;
&lt;br /&gt;
*****  root zabbix&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderACDBD.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtiene diversos valores por cada cola, estados de agente por cola y estados de agente generales.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor BDTR.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:''' Ruta al archivo de configuración (Por ejemplo: ''/etc/MDtel/zabbixSenderACDBD.pconf'')&lt;br /&gt;
&lt;br /&gt;
'''Archivo de configuración:''' zabbixSenderACDBD.pconf&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''$db:''' Nombre de la BBDD (normalmente nimitz)&lt;br /&gt;
 '''$dbHost:''' Dirección IP del servidor de BBDD de TR (normalmente BDTR)&lt;br /&gt;
 '''$dbPort:''' Puerto MySQL (normalmente 3306)&lt;br /&gt;
 '''$dbUsuario:''' Usuario MySQL (normalmente nimitz)&lt;br /&gt;
 '''$dbClave:''' Clave del usuario&lt;br /&gt;
 '''$sZab:''' Dirección IP del servidor Zabbix&lt;br /&gt;
 '''$hZab:''' Nombre del host Zabbix (normalmente el nombre de máquina, tal y como se configura en &lt;br /&gt;
 zabbix_agentd.conf o en el host en la web de Zabbix)&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderACD.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener el PID de Asterisk para revisar si se ha reiniciado en caso de que cambie.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor ACD.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:''' Ruta al archivo de configuración (Por ejemplo: ''/etc/MDtel/zabbixSenderACD.pconf'').&lt;br /&gt;
&lt;br /&gt;
'''Archivo de configuración:''' zabbixSenderACDBD.pconf.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''$db:''' Nombre de la BBDD (normalmente nimitz)&lt;br /&gt;
 '''$dbHost:''' Dirección IP del servidor de BBDD de TR (normalmente BDTR)&lt;br /&gt;
 '''$dbPort:''' Puerto MySQL (normalmente 3306)&lt;br /&gt;
 '''$dbUsuario:''' Usuario MySQL (normalmente nimitz)&lt;br /&gt;
 '''$dbClave:''' Clave del usuario&lt;br /&gt;
 '''$sZab:''' Dirección IP del servidor Zabbix&lt;br /&gt;
 '''$hZab:''' Nombre del host Zabbix (normalmente el nombre de máquina, tal y como se configura en&lt;br /&gt;
 zabbix_agentd.conf o en el host en la web de Zabbix)&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
======zabbixSenderCTI.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de vivait-cti.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute vivait-cti. Normalmente el servidor ACD.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======zabbixSender-intz-nimitz.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de intz-nimitz.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute intz-nimitz.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
======zabbixSenderMotorSal.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de motorSal.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute motorSal.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderMyACDSuperv.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de myAcdSuperv.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute myAcdSuperv.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderRecordNodo.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de recordNodo.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute recordNodo.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderRecordCentral.pl======&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de recordCentral.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute recordCentral.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A continuación se muestra una tabla resumen de los distintos scripts y sus funcionalidades: &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Zabbix_scripts.png |960px]]&lt;br /&gt;
&lt;br /&gt;
====== Dimensionamiento del servidor (Startpollers) ======&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''': &amp;lt;small&amp;gt;EL parámetro StartPollers es un &amp;lt;u&amp;gt;parámetro numérico&amp;lt;/u&amp;gt; que forma parte del fichero de configuración &lt;br /&gt;
 del servidor Zabbix(zabbix_server.conf). Por defecto el servidor Zabbix esta configurado para&lt;br /&gt;
 iniciar con cinco startpollers.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El servidor Zabbix puede hace peticiones a los agentes de las medidas que necesita o quiere. O en caso contrario los agentes envian en un tiempo determinado la información al servidor. Para recibir todas estas peticiones necesitamos los pollers.  &lt;br /&gt;
&lt;br /&gt;
Los poller son los procesos encargados de recibir todas las peticiones de medidas. Aumentaremos su cantidad dependiendo de la necesitad que tengamos. Para ello podemos observar la queue , que es la encargada de almacenar un listado de todas las cosas que están pedidas para medirse y recibirse.  SI por ejemplo esta cola (queue) muestra mas de mil medidas seguramente estos pollers sean un cuello de botella y habrá que aumentar su numero.&lt;br /&gt;
&lt;br /&gt;
=====Templates=====&lt;br /&gt;
&lt;br /&gt;
Zabbix cuenta con templates (plantillas) que facilitan la tarea de &amp;quot;Registrar Equipos y Dispositivos&amp;quot; y agregarles métricas; acelerar el despliegue de las tareas de supervisión en un host; aplicar cambios masivos a tareas de supervisión. En '''md'''tel hemos creado plantillas propias que facilitan estos procesos, los cuales necesitaremos [[#Importar templates |importar templates]].&lt;br /&gt;
&lt;br /&gt;
Las plantillas están vinculados directamente a los hosts individuales, por tanto se necesitaran utilizar en cada host.&lt;br /&gt;
&lt;br /&gt;
Automáticamente, cada template rellena por item las aplicaciones, trigers, alarmas,gráficos,... etc. &lt;br /&gt;
&lt;br /&gt;
A continuación, se muestran los distintos bloques de funciones de la instalación en función de cada template:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! Se instalan en general &lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| SI (si clúster)&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| si&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| -&lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| si(si no posee ip virtuales de clúster)&lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| si&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ '''Dependiendo del tipo de nodo:'''&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! ACD !! Corporativo/GW&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| Si || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - || Si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - || Si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ '''Dependiendo del tipo de Base de dato'''s:&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! BBDD &amp;lt;br /&amp;gt;Tiempo Real !! BBDD&amp;lt;br /&amp;gt; Réplica !! BBDD Copia&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| Si(si ACD) || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| si || si || si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| si || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! Administración&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - &lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - &lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal||SI (si posee servidor calendarios)&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! Servidor de grabaciones&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - &lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| Si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - &lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal||-&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ '''Monitorización'''&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! General !! Contact Center&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - || - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - || - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| si || - &lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - || - &lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 * El template OS Linux tiene asociado el Template App Zabbix Agent.&lt;br /&gt;
 Una '''base de datos unificada''' es una base de datos de tiempo real junto a  una base de datos de replica&lt;br /&gt;
&lt;br /&gt;
====== Importar templates======&lt;br /&gt;
&lt;br /&gt;
Las plantillas propias de '''md'''tel se encuentran en la ruta &amp;quot;'''/usr/src/nimitz/archivos'''&amp;quot; y empiezan con el nombre de &amp;quot;TemplateXXX.xml&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 ls /usr/src/nimitz/archivos | grep Template&lt;br /&gt;
 '''Template DRBD.xml'''&lt;br /&gt;
 '''Template motorSal.xml'''&lt;br /&gt;
 '''Templates Vivait-Suite_GW.xml'''&lt;br /&gt;
 '''Templates Vivait-Suite.xml'''&lt;br /&gt;
 '''Template Vivait-Call Asterisk.xml'''&lt;br /&gt;
 '''Template Vivait-Call bdCentral.xml'''&lt;br /&gt;
 '''Template Vivait-Call bdNodo.xml'''&lt;br /&gt;
 '''Template Vivait-Call cambiarPerfil_Cal.xml'''&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La importación se realizara una vez a través de la web, no hace falta desde el servidor Zabbix, puede ser en cualquier  computadora con acceso a la interfaz web de Zabbix.&lt;br /&gt;
&lt;br /&gt;
[[File:ImportarTemplates.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
Hay opciones varias opciones a elegir para importación de templates, pero podemos dejar por defecto las señaladas y pulsar el botón &amp;quot;import&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Configuración para un primer funcionamiento de Zabbix===&lt;br /&gt;
Se describe una básica configuracion de Zabbix para cualquier equipo que utilice Windows o linux. Pues  mediante la definición de hosts, items, triggers y acciones, Zabbix permite efectuar un monitoreo efectivo de plataformas IT heterogéneas. &lt;br /&gt;
&lt;br /&gt;
====Configuración de los equipost (host) para la monitorización====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''': Tenga en cuenta que debe de estar previamente configurado el agente Zabbix del &lt;br /&gt;
 dispositivo a ser monitorizado apuntando a la IP del &amp;quot;Servidor Zabbix&amp;quot;.&lt;br /&gt;
|}&lt;br /&gt;
Existen dos tipos de host:&lt;br /&gt;
* '''Host físico''': donde la dirección de red que registramos en Zabbix, corresponde al dispositivo que deseamos monitorizar.&lt;br /&gt;
* '''Host virtual''': es una dirección IP virtual, que puede relacionarse con un servidor Web, clusters, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:CreacionHost.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
﻿Las opciones basicas para configurar un host son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center ;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Host Name'''&lt;br /&gt;
|  | Definir un nombre para el host.&lt;br /&gt;
||Se puede utilizar números, letras, espacios y guiones bajos están permitidos.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Visible Name'''&lt;br /&gt;
|  | Identificar con un nombre, la maquina a la que se refiere el host.&lt;br /&gt;
||Si no tiene valor, se mostrara como nombre &amp;quot;Host Name&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Groups'''&lt;br /&gt;
|  | Seleccionar al grupo de host que pertence.Seleccione uno o varios grupos de la caja derecha.&lt;br /&gt;
|| Los valores que puede seleccionar por defecto:&lt;br /&gt;
Discoverd hosts.&lt;br /&gt;
&lt;br /&gt;
Switches.&lt;br /&gt;
&lt;br /&gt;
Templates.&lt;br /&gt;
&lt;br /&gt;
Templates MDtel.&lt;br /&gt;
&lt;br /&gt;
Zabbix servers.&lt;br /&gt;
&lt;br /&gt;
Linux Servers.&lt;br /&gt;
&lt;br /&gt;
Hypervisors.&lt;br /&gt;
&lt;br /&gt;
Virtual machines.&lt;br /&gt;
&lt;br /&gt;
O crear uno nuevo en '''New group'''.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Agent interfaces'''&lt;br /&gt;
|  |Se recomienda usar una dirección IP, en vez de un nombre de la maquina para resolver por un servidor de DNS que puede fallar.&lt;br /&gt;
|  | 10050 por defecto&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cuando termine, haga clic en nel boton &amp;quot;Save&amp;quot;.  Su nuevo &amp;quot;Host&amp;quot; debe ser visible en la lista de &amp;quot;Host registrados&amp;quot;.Despues el zabbix, intentara configurarse el zabbix para conectarse a la IP.... cada x tiempo hace un barrido. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Comprobación de disponibilidad del host=====&lt;br /&gt;
Para saber si todo esta bien debemos ver la Z de disponibilidad.   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:EstadosZHost.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Indicacion de los colores del icono Z:&lt;br /&gt;
&lt;br /&gt;
* Si el icono Z en la columna de disponibilidad es de color rojo, indica que hay un error en la comunicación - mueva el cursor del ratón sobre él para ver el mensaje de error. &lt;br /&gt;
&lt;br /&gt;
* Si el icono es gris, significa que esta en proceso de comunicación con el &amp;quot;Agente Zabbix&amp;quot;. Compruebe que el servidor Zabbix está en marcha, y pruebe a actualizar la página más tarde.  El tiempo estimado para revisar si existe problemas es de 5 minutos.&lt;br /&gt;
&lt;br /&gt;
* Si el icono es verde, esta funcionando correctamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Indicar que plantilla(template) tendra el host [opcional]====&lt;br /&gt;
Tras [[#Importar templates |importar templates]] nos dirigimos al host ya configurado, y en su pestaña de templates pulsamos &amp;quot;add&amp;quot; y añadimos la plantilla/s adecuadas.&lt;br /&gt;
&lt;br /&gt;
====Asignar items al host ====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''':Un host puede tener un ITEM sin necesitad de tener template.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Todos lo ITEMS se agrupan por HOST, esto significa que cada HOST tiene sus propios &amp;quot;Módulos que recogen datos del Host&amp;quot;.   Para agregar un nuevo módulo vamos a &amp;quot;Configuration → Hosts&amp;quot; y localizamos el &amp;quot;Host&amp;quot; al cual queremos agregarle un nuevo &amp;quot;Item&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:CrearItemEjemplo.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
Parametros o campos a rellenar para una configuración básica :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center ;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Name'''&lt;br /&gt;
|  | Definir un nombre para el item.  Este nombre va a ser nuestro identificador para todas la gestiones en donde lo involucremos como el caso de Triggers.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Type'''&lt;br /&gt;
|| Indicar de que entidad queremos recibir informacion.&lt;br /&gt;
||Puede ser al &amp;quot;Agente Zabbix&amp;quot; o a el Hardware como impresoras, switch o routers.   &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Key'''&lt;br /&gt;
|  | los &amp;quot;Items&amp;quot; utilizan &amp;quot;Key&amp;quot; que son parámetros de Zabbix.  Los &amp;quot;Key&amp;quot; nos permiten indicar específicamente que tipo de información vamos a solicitara a la entidad. Se puede considerar también como el nombre de alguna aplicación.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''host interface'''&lt;br /&gt;
|  |Es la direccion de red del servidor zabbix (puede ser uno o mas)&lt;br /&gt;
|  | &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Units'''&lt;br /&gt;
|  |Es la dirección de red del servidor zabbix (puede ser uno o mas)&lt;br /&gt;
|  | &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Type of information'''&lt;br /&gt;
|  |Tipo de unidades con el que mostrar Zabbix el valor segundos, minutos, euros,....&lt;br /&gt;
|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cuando termine, haga clic en Guardar.   El nuevo elemento debe aparecer en la ITEMLIST. &lt;br /&gt;
Para mas informacion [[http://entation/1.8/manual/config/items#zabbix_agent. ver documentación Zabbix]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Ver la información recolectada por el item =====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' Normalmente para ver la información lo encontraremos en &amp;quot;Monitoring → Latest data&amp;quot;,luego &lt;br /&gt;
 clic en el signo &amp;quot;+&amp;quot; en &amp;quot;other&amp;quot; siempre que no pertenezca a una aplicación. &lt;br /&gt;
 En caso contrario, estará bajo el nombre de la aplicación.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Después de definir el &amp;quot;Item&amp;quot; vamos a revisar la información que esta recolectando.  .  La información comenzará a ser recolectada según el tiempo que le indicamos en el &amp;quot;Item&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:VerInfoITEM.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
La espera para recibir la información varía dependiendo del tiempo de recolección del item, la mayoría suele ser aproximadamente al minuto de generar el &amp;quot;Item&amp;quot;. Zabbix le ofrece la opción de visualizar la información en forma gráfica (sencilla).  En el &amp;quot;Item&amp;quot; en lista haga clic en la columna &amp;quot;History - Graph&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:VIsualGraficaValorItem.png|center|750px]]&lt;br /&gt;
Si en un caso usted no observa información le recomendamos:&lt;br /&gt;
  &lt;br /&gt;
* Ingrese al &amp;quot;Item&amp;quot; y revise que la información del &amp;quot;Key&amp;quot; este igual al ejemplo &amp;quot;system.cpu.load&amp;quot; &lt;br /&gt;
* Verifique que el agente este funcionando en el &amp;quot;Servidor a ser monitoreado&amp;quot; y que &amp;quot;El Servidor recolector Zabbix&amp;quot; este funcionando. &lt;br /&gt;
* El icono &amp;quot;Z&amp;quot; en el host debe estar en color verde. &lt;br /&gt;
* Asegure que esta monitoreando el servidor que le agregó este &amp;quot;Item&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Configurar los Triggers para los host====&lt;br /&gt;
A partir de la información que captura los agentes , el servidor de Zabbix comienza a efectuar la recolección de estos items en la base de datos. Con esto se tiene un registro histórico de tales mediciones, que pueden ser tan simples como un simple ping hasta datos de uso de disco, memoria, cpu, etc.&lt;br /&gt;
A partir de los datos que se reciben de los agentes lo que sigue es definir y configurar Triggers, que son evaluaciones que hace Zabix de estos datos para determinar la existencia de un Problema en un dispositivo.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Nota: Un trigger necesita una accion, que indica que hacer cuando se activa el trigger.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un trigger(disparador) es un tipo de reacción ante unas medidas, como un disparador en el que si pasa algo se activa. Los Trigger en Zabbix son módulos que creamos a uno o múltiples &amp;quot;Items&amp;quot; para evaluar o comparar los valores recolectados por los &amp;quot;Items&amp;quot; con condiciones que nosotros definamos.  Las condiciones son de tipo aritmético y lógico.&lt;br /&gt;
&lt;br /&gt;
Para configurar un &amp;quot;Trigger o Disparador&amp;quot; seleccionamos &amp;quot;Configuration → Hosts&amp;quot; localizamos el &amp;quot;Host&amp;quot; de ejemplo que creamos y luego hacemos clic en &amp;quot;Trigger&amp;quot;, después haga clic en &amp;quot;Create Trigger&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Parametros o campos a rellenar para una configuración básica :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center ;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Name'''&lt;br /&gt;
|  | Definir un nombre para el trigger.  Este nombre va a ser nuestro identificador para todas la gestiones en donde lo involucremos como el caso de los eventos.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Expression'''&lt;br /&gt;
||  Hay que indicar para que medida se crea (item) y sus funciones con los parametros adecuados. '''''Recomendación usar expression constructor que pedirá siempre al crearlo, para que item es y sus funciones...'''''&lt;br /&gt;
||Ejemplo: {New host:system.cpu.load.avg(180)}&amp;gt;2 &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Key'''&lt;br /&gt;
|  | los &amp;quot;Items&amp;quot; utilizan &amp;quot;Key&amp;quot; que son parámetros de Zabbix.  Los &amp;quot;Key&amp;quot; nos permiten indicar específicamente que tipo de información vamos a solicitara a la entidad. Se puede considerar tambien como el nombre de alguna aplicacion.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Una descripción breve sobre el trigger.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Severity'''&lt;br /&gt;
|  | everidad distinguida por colores,&lt;br /&gt;
|| No classified&lt;br /&gt;
 Information&lt;br /&gt;
 Warning&lt;br /&gt;
 Average&lt;br /&gt;
 High&lt;br /&gt;
 Disaster&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Comprobar el estado del trigger =====&lt;br /&gt;
Podemos ver el estado del &amp;quot;Trigger&amp;quot; en &amp;quot;Monitoring → Triggers&amp;quot;.El  color en caso de que se active depende de la severidad definida. Por ejemplo,  si el &amp;quot;Trigger&amp;quot; esta en color verde indica que el resultado de la métrica se mantiene por debajo de la condición que indicamos.  Por el contrario si el resultado esta &amp;quot;sobre lo indicado&amp;quot; su color sera rojo.&lt;br /&gt;
&lt;br /&gt;
[[File:EstadoTrigger.png|center|750px]]&lt;br /&gt;
&lt;br /&gt;
====Asociar un Action al trigger====&lt;br /&gt;
&lt;br /&gt;
Una action(acción) sirve para configurar un mensaje de alerta o una accion para Zabbix, ante un problema. Hay varias formas de gestionar un problema a través de una acción:&lt;br /&gt;
&lt;br /&gt;
# A través de mensajes simples, alertando al instante.&lt;br /&gt;
# Escalar los mensajes hacia el jefe y/o otros grupos.&lt;br /&gt;
# Ejecución de commandos remotos.&lt;br /&gt;
# Notificaciones repetidas hasta que se resuelve el problema.&lt;br /&gt;
# Notificaciones y comandos retardados.&lt;br /&gt;
# Escenario complejo, la combinación de todo lo anterior.&lt;br /&gt;
&lt;br /&gt;
Para crear una configuración en &amp;quot;Configuration-Actions&amp;quot;. La explicación esta en la [[ https://www.zabbix.com/documentation/2.0/manual/config/notifications/action documentación de Zabbix]].&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integraciones con servicios externos ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Presencia con Openfire ===&lt;br /&gt;
'''''VIVA'''''it se integra con servidor XMPP Openfire en su versión 3.10.2 (última probada)&lt;br /&gt;
&lt;br /&gt;
Además del servidor, es necesario instalar un plugin de integración con asterisk 13, denominado &amp;quot;asterisk IM&amp;quot;, versión 1.4.1&lt;br /&gt;
&lt;br /&gt;
La instalación del servidor Openfire es una instalación estándar, realizada de paquete&lt;br /&gt;
&lt;br /&gt;
La instalación del plugin es un &amp;quot;jar&amp;quot; que se carga desde la pagina de plugins de openfire&lt;br /&gt;
&lt;br /&gt;
Con esto conseguiremos comunicar asterisk y OPenfire de manera que:&lt;br /&gt;
*Los estados telefónicos de una extensión '''''VIVA'''''it  se reflejen en Openfire&lt;br /&gt;
*Poder marcar desde los clientes de IM instalados en los puestos&lt;br /&gt;
*Ver en el cliente llamadas entrantes al teléfono&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;Enlaces de interes:&amp;lt;/big&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
[http://www.igniterealtime.org/projects/openfire/ Página proyecto openfire]&lt;br /&gt;
&lt;br /&gt;
[https://community.igniterealtime.org/thread/56076 Página proyecto &amp;quot;asterisk IM&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reuniones virtuales con Openmeetings ===&lt;br /&gt;
'''OpenMeetings''' es un sistema de vídeo web-conferencia en tiempo real. Usando recursos como audio (micrófono), vídeo (cámara web), posibilidad de subir y convertir presentaciones (en PDF , PPT o ODP que se convierten a Flash), compartición de la pantalla de tu ordenador, o pizarra digital compartida, panel de administración, posibilidad de grabar las sesiones… y completo soporte multiplataforma, es decir, que aparte de poder grabar las sesiones, se puede compartir un escritorio también desde una máquina Linux.&lt;br /&gt;
&lt;br /&gt;
Para instalar '''OpenMettings''' debe seguir el [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manuales_de_instalaci%C3%B3n#Instalaci.C3.B3n_de_Openmeetings | manual de Instalación de Openmeetings]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]] &lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:VIVAit Suite]]&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_plataforma_VIVAit&amp;diff=5905</id>
		<title>Manual de operación plataforma VIVAit</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_plataforma_VIVAit&amp;diff=5905"/>
		<updated>2017-05-31T06:25:12Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* Versiones de módulos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!! '''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; ALFREDO: INSISTIR EN EXPLICAR CONCEPTOS&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
En este documento se describe la arquitectura general de la plataforma '''''VIVA'''''it, detallando aquellos procesos principales que componen cada uno de los elementos del sistema, y sus principales elementos de diagnóstico&lt;br /&gt;
Quedan fuera del ámbito de este documento:&lt;br /&gt;
* Uso de aplicación de agente ('''''VIVA'''''it Desk)&lt;br /&gt;
* Uso de aplicación de supervisor ('''''VIVA'''''it Supervisor), incluyendo sus módulos autónomos ('''''VIVA'''''it reporting, '''''VIVA'''''it Tracker)&lt;br /&gt;
* Uso de portal de administración&lt;br /&gt;
* Uso de portal de traceo de llamadas y agentes ('''''VIVA'''''it Tracker web)&lt;br /&gt;
* Uso de portal de monitorización zabbix&lt;br /&gt;
&lt;br /&gt;
== Arquitectura ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura plataforma VIVAit.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Descripción de los elementos, diagnósticos y operaciones ==&lt;br /&gt;
Las siguientes tablas definen los principales elementos software de la plataforma '''''VIVA'''''it, que son detallados en apartados siguientes:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de sistema operativo'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu Server LTS 64 bits || Uno por servidor|| ||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|| Actualmente (Oct-2015) 14.04&lt;br /&gt;
Bajo proyecto puede cambiarse&lt;br /&gt;
|-&lt;br /&gt;
| Almacenamiento de grabaciones|| Uno por sistema|| Almacenamiento de las grabaciones, ya sean de entorno corporativo o de contact center||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|| Típicamente un espacio grande de almacenamiento proporcionado por el cliente y que se monta como un sistema de archivos local en los servidores de la plataforma&lt;br /&gt;
Pueden existir sistemas secundarios de almacenamiento de grabaciones&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de conmutación de voz'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Asterisk 1.4.24 by MDtel||Uno por servidor ACD||Núcleo de conmutación de voz basado en Asterisk 1.4 y modificado por MDtel||'''''VIVA'''''it Suite||Fuertemente modificado por MDtel&lt;br /&gt;
En el futuro migrará a Asterisk 13 Certified&lt;br /&gt;
|-&lt;br /&gt;
|Dialplan ACD by MDtel||Uno por servidor ACD||Configuración de voz||'''''VIVA'''''it Suite||En el futuro se unificará con corporativa&lt;br /&gt;
|-&lt;br /&gt;
|Asterisk 13 Certified by MDtel||Uno por servidor corporativo/gateway||Núcleo de conmutación de voz basado en Asterisk 13 y modificado por MDtel||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Actualmente asterisk estándar (10/15)&lt;br /&gt;
La instalación contempla descargar de la red el más actualizado, siempre CERTIFIED&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Dialplan corporativo||Uno por servidor corporativo/gateway||Configuración de voz||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||En el futuro se unificará con ACD&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de base de datos'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|MySQL 5.5||Donde haya BBDD de cualquier tipo (incluso zabbix)||Motor de Base de Datos||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||A efectos prácticos va a ser en todos los servidores con casi total seguridad&lt;br /&gt;
|-&lt;br /&gt;
|BBDD tiempo real||Una por sistema||Base de Datos sobre la que trabaja todo el entorno de tiempo real||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|BBDD réplica||Una por sistema multinodo||Base de Datos para acceso a información de reporting…y similar||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de una&lt;br /&gt;
En el nodo en el que exista réplica existirá además copia (excepto nodo ACD)&lt;br /&gt;
|-&lt;br /&gt;
|BBDD copia||Uno por servidor corporativo/gateway||Copias de tablas de configuración para respaldo de la misma||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Local en cada nodo&lt;br /&gt;
Los nodos de ACD actualmente no trabajan con copia; en caso de fallo de BBDD TR se usa el modo emergencia&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de procesos ''VIVA''it'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Intz-Nimitz||Donde haya una BBDD de tiempo real o copia||Interfaz entre el dialplan y la base de datos||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||No donde haya BBDD de réplica&lt;br /&gt;
Sistemas grandes pueden contemplar mas de un intz-nimitz central&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|vivait-cti||Uno por servidor ACD||Interfaz entre '''''VIVA'''''it Desk, supervisor y el manager de asterisk||'''''VIVA'''''it Suite||&lt;br /&gt;
|-&lt;br /&gt;
|myAcdSuperv||Uno por servidor ACD||Recopilador de datos de asterisk y actualiza en la BBDD&lt;br /&gt;
Genera llamadas en el marcador&lt;br /&gt;
||'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|motorSal||Uno por sistema con ACD||Motor de marcador saliente automático||'''''VIVA'''''it Suite||Solo si hay marcación saliente&lt;br /&gt;
Junto a la BBDD de tiempo real&lt;br /&gt;
|-&lt;br /&gt;
|recordCentral||Uno por sistema||Servidor de grabaciones, se conectan los agentes a el||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Se arrancan varias instancias en función del número de nodos&lt;br /&gt;
Debe instalarse en un servidor que tenga el almacenamiento de grabaciones en su sistema de archivos&lt;br /&gt;
|-&lt;br /&gt;
|recordNodo||Uno por servidor corporativo/gateway||Agente de grabación||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|bdCentral||Uno, en el nodo con la BBDD de tiempo real||Genera la base de datos que se copiará para respaldo a otros nodos||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|bdNodo||En cada nodo con BBDD de copia||Recoge la base de datos del servidor central con el objeto de tener el respaldo||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|Actualizador||Uno por sistema con ACD||Se encarga de proporcionar las versiones actualizadas de las aplicaciones de puesto de trabajo||'''''VIVA'''''it Suite||En el mismo servidor que el portal de administración&lt;br /&gt;
|-&lt;br /&gt;
|phoneProv-tftp||Uno por sistema||Se encarga del aprovisionamiento masivo de terminales||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||En instalaciones grandes habrá más de uno, quizás uno por sede grande; depende de la infraestructura de DHCP&lt;br /&gt;
|-&lt;br /&gt;
|borraregistrosnimitz||||||||				&lt;br /&gt;
|-&lt;br /&gt;
|Mover grabaciones a nube||||||||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Administración'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Tomcat 7||Uno por servidor con portales||Servidor de aplicaciones JAVA||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|Portal de administración ||Uno por sistema||Portal de administración del sistema||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Portal usuario||Uno por sistema||Portal de usuario, para acceso a buzones, su configuración||'''''VIVA'''''it Call||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Tracker web||Uno por sistema||Portal de seguimiento de llamadas||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Debe instalarse en un servidor que tenga los ficheros de grabación montados en su sistema de archivos&lt;br /&gt;
Ligado a recordCentral&lt;br /&gt;
Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Monitor||Uno por sistema||Portal de monitores de pared de Call Center||'''''VIVA'''''it Suite||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Apache||Uno por servidor de calendarios||Servidor de portales WEB||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|Servidor de calendarios||Uno por sistema||Aloja calendarios para su uso en diferentes entornos de NIMITZ||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Monitorización'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Servidor zabbix||Uno por instalación||Monitorización técnica y de negocio||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de uno&lt;br /&gt;
Tipicamente irá o en BBDD replica o en nodo de gestión en instalaciones grandes&lt;br /&gt;
|-&lt;br /&gt;
|Templates zabbix||Uno por instalación||Adaptaciones específicas||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|Agente Zabbix||Uno por servidor||Agente de monitorización||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
||Scripts monitorización zabbix||Uno por servidor||Agente de monitorización||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Versiones de módulos===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Módulo  !! V.3.10 !! V.3.2.0 !! V.3.3.0 !!  V.3.4.0&lt;br /&gt;
(VSuite 3.4+VCall3.0) &lt;br /&gt;
!!  V.3.5.0&lt;br /&gt;
(VSuite 3.5+VCall3.1)&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk || 1.4 || 1.4 || 1.4 || 1.4 Nodo ACD&lt;br /&gt;
13 resto nodos&lt;br /&gt;
|| 1.4 Nodo ACD&lt;br /&gt;
13 resto nodos&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk ACD  ||  ||  || || 3.3.1 || 3.4.1 &lt;br /&gt;
|-&lt;br /&gt;
| Dialplan ACD || ||  ||  || || 3.4.1&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk Corp ||  ||  ||  || 3.3.4 || 3.4.4&lt;br /&gt;
|-&lt;br /&gt;
| Dialplan Corp  || ||  ||  || 3.3.1 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| Lazarus común  || 3.1.0  || 3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| BD  || 3.2.0 || 3.4.0 || 3.5.0 || 3.6.0 || 3.8.0&lt;br /&gt;
|-&lt;br /&gt;
| Generaconf || 3.0.0  || 3.0.0  || 3.2.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Instalador || 3.1.0  || 3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Intz-nimitz || 2.6.0  || 3.0.1 || 3.0.3 ||  3.4.1 || 3.4.2&lt;br /&gt;
|-&lt;br /&gt;
| recordgwd   ||  1.3.0 ||  1.3.0 || 3.1.0 ||  ----- || -----&lt;br /&gt;
|-&lt;br /&gt;
| recordNodo  || ----- || ----- || ----- ||  4.0.0 || 4.0.0&lt;br /&gt;
|-&lt;br /&gt;
| recordprocesad || 1.2.0 ||1.2.0|| 3.0.0 || ----- || -----&lt;br /&gt;
|-&lt;br /&gt;
| recordCentral || ----- || ----- || -----||  4.0.0 || 4.0.1&lt;br /&gt;
|-&lt;br /&gt;
| MyACDSuperv || 5.2.0 || 5.3.0  ||  5.3.0  ||  5.3.2 || 5.3.2&lt;br /&gt;
|-&lt;br /&gt;
| Motorsal || 1.4.0 || 3.1.0  || 3.2.0 || 3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| Vivait-cti  || 3.0.0 ||  3.0.1  ||  3.0.1  ||  3.0.1 || 3.0.2&lt;br /&gt;
|-&lt;br /&gt;
| Multimonitorweb ||  3.0.1 ||  3.0.2  || 3.1.0  || 3.1.0 || 3.2.0&lt;br /&gt;
|-&lt;br /&gt;
| Portal de administración || 3.1.0  || 3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Tracker Web  || 3.0.2  || 3.1.0 ||  3.2.0 ||  3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
|  VIVA supervisor || 3.0.0 ||  3.1.0  ||  3.2.0  ||  3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| Tracker windows  || 3.0.0  || 3.1.0  || 3.2.0 || 3.3.0 || 3.4.0&lt;br /&gt;
|-&lt;br /&gt;
| VIVA report  || 1.2.0  || 3.1.0  || 3.2.0  ||  3.2.2 || 3.3.0&lt;br /&gt;
|-&lt;br /&gt;
| VIVA desk || 3.0.2 ||  3.2.0  || 3.3.0  || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| VIVA designer || 1.0.23 || 3.0.1  || 3.1.0 ||  3.1.0 || 3.2.0&lt;br /&gt;
|-&lt;br /&gt;
|  Preview || 1.0.18 || 3.2.0  || 3.3.0 || 3.4.0 || 3.5.0&lt;br /&gt;
|-&lt;br /&gt;
| Phone_prov  || ------ || ------ || 3.0.1 || 3.0.3 || 3.0.3&lt;br /&gt;
|-&lt;br /&gt;
| Portal usuario || ------ || ------ || ------ || 3.0.0 || 3.1.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Sistema Operativo ===&lt;br /&gt;
Los sistemas operativos de nuestra plataforma se corresponden a las versiones de Ubuntu Server LTS , ya que son las versiones estables, con un soporte continuado y mas estables a actualizaciones desde la salida Ubuntu 14.04.1. En concreto el sistema operativo utilizado para la plataforma '''''VIVA'''''it es Ubuntu Server 14.04.4 LTS. Para más información https://help.ubuntu.com/lts/serverguide/index.html.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ubuntu Kernel Release Schedule.png|750px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Funcionamiento en cluster ====&lt;br /&gt;
&lt;br /&gt;
Un clúster es un grupo de múltiples ordenadores unidos mediante una red de alta velocidad, de tal forma que el conjunto es visto como un único ordenador.&lt;br /&gt;
&lt;br /&gt;
De un clúster se espera que presente combinaciones de los siguientes servicios:&lt;br /&gt;
&lt;br /&gt;
# Alto rendimiento &lt;br /&gt;
# Alta disponibilidad&lt;br /&gt;
# Balanceo de carga &lt;br /&gt;
# Escalabilidad &lt;br /&gt;
&lt;br /&gt;
Tal y como esta definido el cluster de MDtel, este comprueba conectividad con la otra máquina que lo forma y con un punto de confianza. Si la máquina no tiene conectividad con la otra y si con el punto de confianza es que el servidor está vivo, mientas que si no tengo conectividad ni con la otra máquina ni con el punto de confianza es que el muerto soy yo, por lo que balanceo.&lt;br /&gt;
&lt;br /&gt;
Por lo que las máquinas balancean en los casos siguientes:&lt;br /&gt;
&lt;br /&gt;
* Todo lo que tenga que ver con la red, es decir, caída de la tarjeta de red, apagado de la máquina, corte en la red..&lt;br /&gt;
&lt;br /&gt;
Y no balancea en los siguientes:&lt;br /&gt;
&lt;br /&gt;
* No balancea en los demás casos, es decir, todo lo que tenga que ver con procesos de una máquina (caída asterisk, base de datos, intz-nimitz)&lt;br /&gt;
&lt;br /&gt;
El funcionamiento en cluster se basa en:&lt;br /&gt;
&lt;br /&gt;
* Heartbeat: IP flotante entre las dos máquinas que componen el cluster; típicamente este &amp;quot;latido&amp;quot; entre máquinas se realizará mediante conexión directa con cable cruzado para asegurar que no existan problemas de comunicaciones tales como retardo, pérdida de paquetes, etc en este latido y pueda ser causa de un balanceo inadecuado.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|  '''Nota 17-11-2015:''' Se ha realizado en un cliente un cluster distribuido, con dos servidores en diferentes sedes, realizando el heartbeat mediante enlace Gigabit. Si bien la solución no está validada por desarrollo, se está observando el funcionamiento.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* DRBD que se encargar de mantener una serie de carpetas totalmente replicadas entre los dos nodos; dichas las carpetas son:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El cluster es &amp;lt;big&amp;gt;'''activo/pasivo'''&amp;lt;/big&amp;gt;; la máquina activa posee la IP flotante y tiene arrancados los servicios.&lt;br /&gt;
&lt;br /&gt;
==== Configuración del cluster ====&lt;br /&gt;
Para montar un cluster de asterisk partimos de la siguiente situación inicial:&lt;br /&gt;
* Dos maquinas con '''''VIVA'''''it Call 3.0 instalado.&lt;br /&gt;
* El driver bonding de Interfaces de Red en Ubuntu Server.&lt;br /&gt;
&lt;br /&gt;
Los pasos a seguir para la configuración en el Ubuntu Server son los siguientes:&lt;br /&gt;
* Instalar ifenslave: &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 aptitude install ifenslave.&lt;br /&gt;
|}&lt;br /&gt;
: Finalizada la instalación, comprobamos que la instalación de Bonding se ha configurado para empezar desde el arranque del sistema operativo desde el fichero '''/etc/modules''':&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| vi /etc/modules&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 # Parameters can be specified after the module name.&lt;br /&gt;
 lp&lt;br /&gt;
 rtc&lt;br /&gt;
 bonding&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Crear o editar el archivo llamado '''/etc/modprobe.d/bonding.conf''' y añadir la siguiente linea en negrita:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 echo &amp;quot;alias bond0 bonding&amp;quot;&amp;gt; /etc/modprobe.d/bonding.conf&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Editar el fichero /etc/network/interfaces y añadir lo que esta en negrita:&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
 # This file describes the network interfaces available on your system&lt;br /&gt;
 # and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 &lt;br /&gt;
 '''# Bonding'''&lt;br /&gt;
 &lt;br /&gt;
 '''#em1 ip manual y esclavo en el &amp;quot;bond0&amp;quot; NIC'''&lt;br /&gt;
 '''auto em1'''&lt;br /&gt;
 '''iface em1 inet manual'''&lt;br /&gt;
 '''bond-master bond0'''&lt;br /&gt;
 '''bond-primary em0''' &lt;br /&gt;
 &lt;br /&gt;
 '''#em2 ídem, creando así un vínculo de enlace 2.'''&lt;br /&gt;
 '''auto em2'''&lt;br /&gt;
 '''iface em2 inet manual'''&lt;br /&gt;
 '''bond-master bond0'''&lt;br /&gt;
 '''auto bond0'''&lt;br /&gt;
 '''iface bond0 inet static'''&lt;br /&gt;
         '''address 10.255.255.11'''&lt;br /&gt;
        '''netmask 255.255.255.0'''&lt;br /&gt;
        '''gateway 10.255.255.254'''&lt;br /&gt;
 '''bond-mode active-backup'''&lt;br /&gt;
 '''bond-miimon 100'''&lt;br /&gt;
 '''bond-slaves none'''&lt;br /&gt;
 &lt;br /&gt;
 '''# em3 replica entre servidores'''&lt;br /&gt;
 '''auto em3'''&lt;br /&gt;
 '''iface em3 inet static'''&lt;br /&gt;
         '''address 10.255.254.10'''&lt;br /&gt;
        '''netmask 255.255.255.0'''&lt;br /&gt;
 &lt;br /&gt;
 '''# em4 gestion'''&lt;br /&gt;
 '''auto em4'''&lt;br /&gt;
 '''iface em4 inet static'''&lt;br /&gt;
         '''address 172.17.47.255'''&lt;br /&gt;
         '''netmask 255.255.0.0'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Reiniciamos el sistema para que el kernel tome los cambios.&lt;br /&gt;
&lt;br /&gt;
* Comprobación que en las dos maquinas el archivo '''/etc/host''' contenga el los nombre de las dos maquinas a vincular. En el ejemplo el archivo en ambas maquinas es:&lt;br /&gt;
&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 127.0.0.1       localhost&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.11   vivaitcall-CL-UAH-1&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.12   vivaitcall-CL-UAH-2&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.10   vivaitcall-CL-UAH&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.10   BDTR&lt;br /&gt;
 &lt;br /&gt;
 10.255.254.10   vivaitcall-CL-UAH-1-em3&lt;br /&gt;
 &lt;br /&gt;
 10.255.254.11   vivaitcall-CL-UAH-2-em3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Creamos dos particiones iguales en ambos ordenadores , usando el comando '''parted'''.&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# '''parted /dev/sda'''&lt;br /&gt;
 GNU Parted 2.3&lt;br /&gt;
 Using /dev/sda&lt;br /&gt;
 Welcome to GNU Parted! Type 'help' to view a list of commands.&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Number  Start   End     Size    File system     Name  Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 &lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                 boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
        237GB   1000GB  763GB   Free Space&lt;br /&gt;
 &lt;br /&gt;
 (parted) mkpart primary 237GB 1000GB&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Number  Start   End     Size    File system     Name     Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                    boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
 5      237GB   1000GB  763GB                   primary  No File System como ext4&lt;br /&gt;
        1000GB  1000GB  204kB   Free Space&lt;br /&gt;
 (parted)quit&lt;br /&gt;
 mkfs.ext4 /dev/sda5&lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# '''parted /dev/sda'''&lt;br /&gt;
 GNU Parted 2.3&lt;br /&gt;
 Using /dev/sda&lt;br /&gt;
 Welcome to GNU Parted! Type 'help' to view a list of commands.&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Number  Start   End     Size    File system     Name     Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                    boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
 5      237GB   1000GB  763GB                   primary&lt;br /&gt;
        1000GB  1000GB  204kB   Free Space&lt;br /&gt;
 (parted) rm 5&lt;br /&gt;
 (parted) mkpart primary 237GB 1000GB&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 &lt;br /&gt;
 Number  Start   End     Size    File system     Name     Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                    boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
 5      237GB   1000GB  763GB   ext4            primary  Si File Sytem ext4&lt;br /&gt;
        1000GB  1000GB  204kB   Free Space&lt;br /&gt;
 (parted)quit&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Instalar los paquetes necesarios para el drbd. '''En Ubuntu server 14.04 ya está instalado.'''&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 aptitude install drbd8-utils  &lt;br /&gt;
 aptitude update (si no instala el drbd8-utils actualizar)&lt;br /&gt;
 aptitude install drbd8-utils  (volver a lanzar)&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
* Creamos el archivo '''/etc/drbd.conf''' en ambas maquinas:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 # You can find an example in  /usr/share/doc/drbd.../drbd.conf.example&lt;br /&gt;
 include &amp;quot;drbd.d/global_common.conf&amp;quot;;&lt;br /&gt;
 include &amp;quot;drbd.d/*.res&amp;quot;;&lt;br /&gt;
 resource MDcluster {&lt;br /&gt;
         protocol C;&lt;br /&gt;
         on vivaitcall-CL-UAH-1 {&lt;br /&gt;
               device /dev/drbd0;&lt;br /&gt;
               disk /dev/sda5;&lt;br /&gt;
               address 10.255.254.10:7788;&lt;br /&gt;
               meta-disk internal;&lt;br /&gt;
        }&lt;br /&gt;
        on vivaitcall-CL-UAH-2 {&lt;br /&gt;
               device /dev/drbd0;&lt;br /&gt;
               disk /dev/sda5;&lt;br /&gt;
               address 10.255.254.11:7788;&lt;br /&gt;
               meta-disk internal;&lt;br /&gt;
        }&lt;br /&gt;
        disk {&lt;br /&gt;
               on-io-error detach;&lt;br /&gt;
        }&lt;br /&gt;
        net {&lt;br /&gt;
               max-buffers 2048;&lt;br /&gt;
               ko-count 4;&lt;br /&gt;
        }&lt;br /&gt;
        syncer {&lt;br /&gt;
               rate 100M;&lt;br /&gt;
               al-extents 257;&lt;br /&gt;
        }&lt;br /&gt;
        startup {&lt;br /&gt;
                wfc-timeout 0;&lt;br /&gt;
                degr-wfc-timeout 120;&lt;br /&gt;
        }&lt;br /&gt;
 }&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Reiniciamos el sistema para que el kernel tome los cambios.&lt;br /&gt;
* Inicializamos el recurso, para ello primero deberemos crear los recursos DRBD teclearemos en ambas maquinas. Desde /etc.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
  drbdadm create-md MDcluster  (no y yes )&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Si tenemos algún problema porque ya exista sistema de ficheros.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 dd if=/dev/zero of=/dev/sda5 bs=1M count=128&lt;br /&gt;
 drbdadm create-md MDcluster  (no y yes )&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Reiniciamos ambas maquinas para que su kernel tome los cambios.&lt;br /&gt;
* Levantamos el servicio del DRBD en ambos servidores (nos preguntara que si queremos enviar los datos a los desarrolladores de drbd) tecleando no, no se envían.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 service drbd start&lt;br /&gt;
 /etc/init.d/drbd start&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Ahora &amp;lt;u&amp;gt;ambas maquinas son secundarias&amp;lt;/u&amp;gt;.&lt;br /&gt;
: Indicar cual de las dos maquinas usaremos como primaria, por tanto en la maquina elegida habra que ejecutar:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 drbdadm -- --overwrite-data-of-peer primary all (en una máquina)&lt;br /&gt;
:&amp;lt;small&amp;gt;'''Nota:''' La ip virtual que va a estar asignada a la maquina activa es  172.25.129.70.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Podemos teclear el comando '''''cat''''' para ver si esta sincronizando  y su progreso:&lt;br /&gt;
&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 cat /proc/drbd&lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' El servicio DRBD  aparecera como '''''Primary/Secondary'''''  si ejecutamos en el primario ; &lt;br /&gt;
 y aparecerá ''''Secondary/Primary'''' si lo ejecutamos en el secundario. &amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
* Instalación de los script de arranque:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 update-rc.d -f drbd remove (en las dos maquinas)&lt;br /&gt;
 update-rc.d drbd start 13 2 3 4 5 . stop 87 0 1 6 . (en las dos máquinas)&lt;br /&gt;
|}&lt;br /&gt;
* Seleccionar la fuente de sincronización.&lt;br /&gt;
:Formateamos un disco de la maquina que queramos que funcione como fuente del servicio DRBD, para evitar conflictos:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 mkfs.ext4  /dev/drbd0&lt;br /&gt;
|}&lt;br /&gt;
: Creamos el directorio sobre el que vamos a montar el disco, en ambas maquinas.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 mkdir  /HDcluster&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Creamos un archivo dentro '''''/HDcluster''''' de que se verá solo cuando el disco no está montado en ambas maquinas.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 touch sinMontar&lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' Este archivo nos puede servir para monitorizar mediante zabbix, nagios, ... que el disco no está montado.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:  En una de las maquinas montamos el disco (desde fuera del directorio HDcluster) &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 mount  /dev/drbd0 /HDcluster&lt;br /&gt;
|}&lt;br /&gt;
* Procedemos a mover todos los datos que necesitemos en este disco y a crear accesos directos, los directorios que vamos a mover son los siguientes:&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 /etc/asterisk&lt;br /&gt;
 /var/lib/asterisk&lt;br /&gt;
 /usr/lib/asterisk&lt;br /&gt;
 /usr/spool/asterisk&lt;br /&gt;
 /var/lib/mysql&lt;br /&gt;
 /var/tftp/&lt;br /&gt;
|}&lt;br /&gt;
: El procedimiento que vamos a seguir es el siguiente, en el primer ordenador:&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 '''Cd /HDcluster'''&lt;br /&gt;
 '''tar -zcvf etc-asterisk.tgz /etc/asterisk'''&lt;br /&gt;
 '''tar -zxvf  etc-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /etc/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/etc/asterisk /etc/asterisk'''&lt;br /&gt;
 '''tar -zcvf var-lib-asterisk.tgz /var/lib/asterisk'''&lt;br /&gt;
 '''tar -zxvf  var-lib-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /var/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/asterisk /var/lib/asterisk'''&lt;br /&gt;
 '''tar -zcvf usr-lib-asterisk.tgz /usr/lib/asterisk'''&lt;br /&gt;
 '''tar -zxvf  usr-lib-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /usr/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/usr/lib/asterisk /usr/lib/asterisk'''&lt;br /&gt;
 '''tar -zcvf var-spool-asterisk.tgz /var/spool/asterisk'''&lt;br /&gt;
 '''tar -zxvf  var-spool-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /var/spool/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/spool/asterisk /var/spool/asterisk'''&lt;br /&gt;
 '''tar -zcvf var-lib-mysql.tgz /var/lib/mysql'''&lt;br /&gt;
 '''tar -zxvf  var-lib-mysql.tgz'''&lt;br /&gt;
 '''rm -rf /var/lib/mysql'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/mysql /var/lib/mysql'''&lt;br /&gt;
 '''tar -zcvf var-lib-phoneprov-tftp.tgz /var/lib/phoneprov-tftp/'''&lt;br /&gt;
 '''tar -zxvf  var-lib-phoneprov-tftp.tgz'''&lt;br /&gt;
 '''rm -rf /var/lib/phoneprov-tftp/'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/phoneprov-tftp /var/lib/phoneprov-tftp'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: En la segunda maquina debemos borrar los directorios y crear los accesos directos.&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''rm -rf /etc/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/etc/asterisk /etc/asterisk'''&lt;br /&gt;
 '''rm -rf /var/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/asterisk /var/lib/asterisk'''&lt;br /&gt;
 '''rm -rf /usr/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/usr/lib/asterisk /usr/lib/asterisk'''&lt;br /&gt;
 '''rm -rf /var/spool/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/spool/asterisk /var/spool/asterisk'''&lt;br /&gt;
 '''rm -rf /var/lib/mysql'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/mysql /var/lib/mysql'''&lt;br /&gt;
 '''rm -rf /var/lib/phoneprov-tftp'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/phoneprov-tftp /var/lib/phoneprov-tftp'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Configurar heartbeat para las dos maquinas.&lt;br /&gt;
: Instalamos heartbeat en las dos maquinas. '''En UBUNTU Server 14.04 ya está instalado.'''&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 aptitude install heartbeat&lt;br /&gt;
|}&lt;br /&gt;
: Debemos modificar 3 ficheros en cada una de las maquinas, estos se encuentran en '''/etc/ha.d'''. El primer fichero a modificar es '''''ha.cf.''''':&lt;br /&gt;
:: En la maquina ''vivaitcall-CL-UAH-1'' es: &lt;br /&gt;
::{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# cat /etc/ha.d/ha.cf&lt;br /&gt;
 '''# Explicacion en /usr/share/doc/heartbeat/ha.cf.gz'''&lt;br /&gt;
 &lt;br /&gt;
 '''udpport 694'''&lt;br /&gt;
 '''baud 19200'''&lt;br /&gt;
 '''auto_failback off'''&lt;br /&gt;
 '''use_logd yes'''&lt;br /&gt;
 '''crm no'''&lt;br /&gt;
 &lt;br /&gt;
 '''# Temporizaciones en segs'''&lt;br /&gt;
 '''logfacility local0'''&lt;br /&gt;
 '''keepalive 2'''&lt;br /&gt;
 '''deadtime 8'''&lt;br /&gt;
 '''warntime 16'''&lt;br /&gt;
 '''initdead 64'''&lt;br /&gt;
 '''deadping 6'''&lt;br /&gt;
 &lt;br /&gt;
 '''#ucast bond0 vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''ucast bond0 vivaitcall-CL-UAH-2'''&lt;br /&gt;
 &lt;br /&gt;
 '''#ucast em3 vivaitcall-CL-UAH-1-em3'''&lt;br /&gt;
 '''ucast em3 vivaitcall-CL-UAH-2-em3'''&lt;br /&gt;
 &lt;br /&gt;
 '''#Ping a puerta de enlace,gw1,gw2,gw3,gw4'''&lt;br /&gt;
 '''ping_group red_local 10.255.255.12'''&lt;br /&gt;
 &lt;br /&gt;
 '''respawn hacluster /usr/lib/heartbeat/ipfail'''&lt;br /&gt;
 '''apiauth ipfail gid=haclient uid=hacluster'''&lt;br /&gt;
 &lt;br /&gt;
 '''node vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''node vivaitcall-CL-UAH-2'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:: Y en la maquina ''vivaitcall-CL-palacio-2'' es:&lt;br /&gt;
::{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# cat /etc/ha.d/ha.cf&lt;br /&gt;
 '''# Explicacion en /usr/share/doc/heartbeat/ha.cf.gz'''&lt;br /&gt;
 &lt;br /&gt;
 '''udpport 694'''&lt;br /&gt;
 '''baud 19200'''&lt;br /&gt;
 '''auto_failback off'''&lt;br /&gt;
 '''use_logd yes'''&lt;br /&gt;
 '''crm no'''&lt;br /&gt;
 &lt;br /&gt;
 '''# Temporizaciones en segs'''&lt;br /&gt;
 '''logfacility local0'''&lt;br /&gt;
 '''keepalive 2'''&lt;br /&gt;
 '''deadtime 8'''&lt;br /&gt;
 '''warntime 16'''&lt;br /&gt;
 '''initdead 64'''&lt;br /&gt;
 '''deadping 6'''&lt;br /&gt;
 &lt;br /&gt;
 '''ucast bond0 vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''#ucast bond0 vivaitcall-CL-UAH-2'''&lt;br /&gt;
 &lt;br /&gt;
 '''ucast em3 vivaitcall-CL-UAH-1-em3'''&lt;br /&gt;
 '''#ucast em3 vivaitcall-CL-UAH-2-em3'''&lt;br /&gt;
 &lt;br /&gt;
 '''#Ping a puerta de enlace gw1 gw2 gw3 gw4'''&lt;br /&gt;
 '''ping_group red_local 10.255.255.12'''&lt;br /&gt;
 &lt;br /&gt;
 '''respawn hacluster /usr/lib/heartbeat/ipfail'''&lt;br /&gt;
 '''apiauth ipfail gid=haclient uid=hacluster'''&lt;br /&gt;
 &lt;br /&gt;
 '''node vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''node vivaitcall-CL-UAH-2'''&lt;br /&gt;
|}&lt;br /&gt;
::'''Nota:''' El parámetro '''auto_failback''' se utiliza para indicar si queremos que al recuperarse una maquina adquiera los recursos sobre los que tiene prioridad.&lt;br /&gt;
:El segundo fichero es '''''authkeys''''',, este fichero es el mismo en ambas maquinas: &lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 chmod 600 authkeys '''(importante)'''&lt;br /&gt;
 auth 1&lt;br /&gt;
 1 sha1 claveSecretaATope&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:El tercer fichero '''haresources''', donde especificaremos en las dos maquinas que deben apuntar a la maquina que queremos que tenga prioridad en la adquisición de los recursos, este fichero es el mismo en las dos maquinas: &lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 MÁQUINA 1 -&amp;gt; vivaitcall-CL-palacio-1 hb_mdtel&lt;br /&gt;
 MÁQUINA 2-&amp;gt; vivaitcall-CL-palacio-1 hb_mdtel &lt;br /&gt;
|}&lt;br /&gt;
: Copiaremos en el directorio '''/etc/ha.d/resource.d/''' los scripts de arranque con permisos 755 (lo podemos hacer mediante WINSCP). Los scripts se encuentran en '''''C:\Documents and Settings\javier.gutierrez.MDTEL\Mis documentos\Centrales\Asterisk\Cluster\scripts'''''.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 chmod 755 hb_catalina&lt;br /&gt;
 chmod 755 hb_mdtel&lt;br /&gt;
 chmod 755 hb_mdtel_firewall&lt;br /&gt;
|}&lt;br /&gt;
: Deberemos editar  el archivo '''hb_mdtel'''&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 (IP flotante a.b.c.d./mask) 10.255.255.10&lt;br /&gt;
 CAD_IP_FLOTA=10.255.255.10/24/bond0&lt;br /&gt;
|}&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* Paramos el proceso '''myAcdSuperv'''.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 mv /etc/rc2.d/S02myAcdSuperv s02myAcdSuperv&lt;br /&gt;
|}&lt;br /&gt;
* Reiniciamos ambas maquinas para que su kernel tome los cambios.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de buen funcionamiento del cluster ====&lt;br /&gt;
* La maquina activa tiene que tener en HDcluster montado el disco con todos sus directorios y la maquina inactiva no (tenemos que ver el archivo que hemos creado &amp;quot;sinMontar&amp;quot;). &lt;br /&gt;
* La ip virtual tiene que estar en la maquina activa (ifconfig)  y no tiene que estar en la inactiva. &lt;br /&gt;
* El asterisk tiene que estar arrancado en la maquina activa y parado en la inactiva. &lt;br /&gt;
* Tecleando la ip de la maquina activa en un navegador debemos acceder al portal de vivait-call y en la inactiva no debe de estar activo. &lt;br /&gt;
* Para cambiar el cluster manualmente podemos utilizar los siguientes comandos:&lt;br /&gt;
:{|&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
  /usr/share/heartbeat/hb_takeover&lt;br /&gt;
|}&lt;br /&gt;
: La maquina desde la que se ejecuta se convierte en la maquina activa&lt;br /&gt;
:{|&lt;br /&gt;
 |- &lt;br /&gt;
 |&lt;br /&gt;
  /usr/share/heartbeat/hb_standby&lt;br /&gt;
 |}&lt;br /&gt;
: La maquina desde la que se ejecuta deja de ser la maquina activa&lt;br /&gt;
&lt;br /&gt;
==== Notas para MySQL ====&lt;br /&gt;
Si mysql es parte del cluster tenemos que tener en cuenta dos cosas:&lt;br /&gt;
&lt;br /&gt;
* El archivo '''/etc/mysql/debían.cnf''' contiene una clave que debe ser igual en ambas maquinas y debe ser la clave de la máquina de donde cojamos la base de datos.&amp;lt;br&amp;gt;&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 # Automatically generated for Debian scripts. DO NOT TOUCH!&lt;br /&gt;
 [client]&lt;br /&gt;
 host     = localhost&lt;br /&gt;
 user     = debian-sys-maint&lt;br /&gt;
 password = AI6AdPtnhLUrNm1S&lt;br /&gt;
 socket   = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysql_upgrade]&lt;br /&gt;
 user     = debian-sys-maint&lt;br /&gt;
 password = AI6AdPtnhLUrNm1S&lt;br /&gt;
 socket   = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 basedir  = /usr&lt;br /&gt;
|} &amp;lt;br&amp;gt;&lt;br /&gt;
* El archivo '''/etc/apparmor.d/usr.sbin.mysqld''' contiene donde pueden estar ubicados los archivos de mysql, al cambiar su ubicación y poner un enlace directo en /var/lib/mysql si no modificamos este archivo mysql no arrancara al no tener la nueva ubicación entre sus localizaciones permitidas. Este es un ejemplo de las líneas que debemos añadir. &amp;lt;br&amp;gt;&lt;br /&gt;
:{|&lt;br /&gt;
|-  &lt;br /&gt;
|&lt;br /&gt;
 /var/run/mysqld/mysqld.sock w, (copiar después de esta linea)&lt;br /&gt;
 &lt;br /&gt;
 #//!!&lt;br /&gt;
   /HDcluster/var/lib/mysql/ r,&lt;br /&gt;
   /HDcluster/var/lib/mysql/** rwk,&lt;br /&gt;
   #//!!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Notas de desincronización ====&lt;br /&gt;
EL servicio del DRBD esta iniciado pero al teclear el comando cat /proc/drbd para ver si esta sincronizando se presenta &amp;quot;'''primary/unknown&amp;quot; y/o secondary/unknown''' &amp;quot;.&lt;br /&gt;
* En el nodo primary  &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 drbdadm connect all &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* En el nodo secondary  &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 drbdadm disconnect all  &lt;br /&gt;
 drbdadm -- --discard-my-data connect all&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Adaptar red a cliente ====&lt;br /&gt;
Para adaptar la red de los equipos al entorno del cliente hay que editar los siguientes ficheros:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 /etc/network/interfaces&lt;br /&gt;
 /etc/resolv.conf&lt;br /&gt;
 /etc/hosts&lt;br /&gt;
 /etc/ha.d/resource.d/hb_mdtel&lt;br /&gt;
 /etc/ha.d/ha.cf &lt;br /&gt;
 - TFTP: &lt;br /&gt;
 /etc/inetd.conf (IP del cluster)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
Tras la modificaciones oportunas, se debe reiniciar las dos máquinas para cargar las nuevas configuraciones.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Matriz de conmutación ===&lt;br /&gt;
&lt;br /&gt;
Encontramos dos diferentes núcleos de conmutación en la plataforma VIVAit:&lt;br /&gt;
&lt;br /&gt;
* Para los nodos de procesamiento ACD el núcleo de conmutación es asterisk 1.4 RSP con fuertes modificaciones realizadas por MDtel en determinados módulos (queues, chan_spy entre otros)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Para los nodos que realizan funcionalidad de gateway y/o procesamiento de telefonía corporativa, se utiliza como núcleo de conmutación asterisk 13, versión certified&lt;br /&gt;
https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Documentation&lt;br /&gt;
&lt;br /&gt;
==== Modificaciones realizadas sobre Asterisk 13 certified 2 ====&lt;br /&gt;
&lt;br /&gt;
===== Archivos añadidos por '''MD'''tel =====&lt;br /&gt;
Los archivos añadidos son los siguientes:&lt;br /&gt;
&lt;br /&gt;
* '''apps/app_ucid.c'''&lt;br /&gt;
* '''apps/app_cli.c'''&lt;br /&gt;
* '''apps/app_crash.c'''&lt;br /&gt;
* '''apps/app_mdintz.c'''&lt;br /&gt;
* '''apps/app_mdintz.exports.in'''&lt;br /&gt;
* '''include/asterisk/mdintz.h'''&lt;br /&gt;
* '''include/asterisk/ucid.h'''&lt;br /&gt;
* '''res/res_mdcal.c'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ apps/app_mdintz.exports.in '''&lt;br /&gt;
&lt;br /&gt;
Este archivo sirve para la exportación de funciones del mdintz para el uso por aplicaciones externas&lt;br /&gt;
&lt;br /&gt;
===== Modificaciones de archivos =====&lt;br /&gt;
&lt;br /&gt;
Los archivos modificados por '''MD'''tel son los mostrados a continuación:&lt;br /&gt;
&lt;br /&gt;
* '''apps/app_mixmonitor.c''' &lt;br /&gt;
* '''res/res_calendar_caldav.c'''&lt;br /&gt;
* '''contrib/scripts/safe_asterisk'''&lt;br /&gt;
* '''contrib/init.d/rc.debian.asterisk'''&lt;br /&gt;
* '''channels/sig_pri.c'''&lt;br /&gt;
* '''channels/chan_sip.c'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ main/audiohook.c''' &amp;lt;!--style=&amp;quot;color:#0000ff&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''audiohook.c''' ha sido modificado para solucionar un crash de asterisk al utilizar en el mixmonitor las opciónes r y t &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ app_crash.c '''&lt;br /&gt;
&lt;br /&gt;
Esta nueva aplicación es sólo compatible con '''Asterisk 13'''. &lt;br /&gt;
&lt;br /&gt;
La documentación de la misma se encuentra en el comando: '''&amp;quot;core show application Crash&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
Esta nueva aplicación ''permite añadir'' al plan de pruebas:&lt;br /&gt;
&lt;br /&gt;
* Generación de una parada de asterisk.&lt;br /&gt;
* Verificación de su impacto. Por ejemplo, no deben cortarse las llamadas en curso, si así está previsto por la topología.&lt;br /&gt;
* Correcta generación de los &amp;quot;core&amp;quot;, comprobando que funciona &amp;quot;backtrace&amp;quot; (bt).&lt;br /&gt;
&lt;br /&gt;
 '''Nota.-''' Esta aplicación no debería estar presente en una instalación de '''Asterisk 13'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ app_mdintz.c y mdintz.h''' &amp;lt;!--style=&amp;quot;color:#0000ff&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esta aplicación sirve como interfaz a entornos (funcionalidades) creados por MDtel&lt;br /&gt;
&lt;br /&gt;
Para mas información consultar la página de [[MDintz|MDintz]].&lt;br /&gt;
&lt;br /&gt;
Las rutas de estos archivos son las siguientes:&lt;br /&gt;
&lt;br /&gt;
'''apps/app_mdintz.c''' &amp;lt;br/&amp;gt;&lt;br /&gt;
'''include/asterisk/mdintz.h '''&lt;br /&gt;
&lt;br /&gt;
 '''app_mdintz.c''' :&lt;br /&gt;
&lt;br /&gt;
'''app_mdintz.c''' orientada al proceso de enrutamiento a implementar en ''intz-nimitz.''&lt;br /&gt;
&lt;br /&gt;
El archivo '''.c''' es casi igual para asterisk 1.4.24 y asterisk 13. &lt;br /&gt;
 '''Nota.-''' Cuando se compila para asterisk 13, es necesario comentar la línea que pone&amp;lt;br /&amp;gt; '''&amp;quot;#define ASTERISK_OLD&amp;quot;.'''&lt;br /&gt;
&lt;br /&gt;
Los cambios implementados son:&lt;br /&gt;
&lt;br /&gt;
* Unificación de código entre las versiones de asterisk&lt;br /&gt;
* Nuevo comando &amp;quot;qry&amp;quot;&lt;br /&gt;
* Posible resolución de &amp;quot;Mal write&amp;quot; en intz-nimitz (a verificar)&lt;br /&gt;
&lt;br /&gt;
En cuanto al nuevo comando, el formato es:&lt;br /&gt;
&lt;br /&gt;
 '''mdintz qry &amp;lt;nHostFijo&amp;gt; &amp;lt;entorno&amp;gt; &amp;lt;servicio&amp;gt; &amp;lt;par1&amp;gt;...&amp;lt;parN&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Permite interrogar a un servidor de igual modo que hace el dialplan con '''fines de diagnóstico'''. La única diferencia es que se ha añadido el parámetro '''&amp;quot;nHostFijo&amp;quot;''' que puede tomar como valor '''&amp;quot;*&amp;quot;''' (lo que solicita una interrogación secuencial a todos los servidores definidos, igual a la funcionalidad del dialplan) ó '''&amp;quot;0&amp;quot;''' a '''&amp;quot;3&amp;quot;''' (que solicita un interrogación dirigida el host indicado como hostN, y sólo a él, en archivo de configuración).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para instalarlo, es necesario copiar:&lt;br /&gt;
&lt;br /&gt;
* '''asterisk/apps/app_mdintz.c'''&lt;br /&gt;
* '''asterisk/include/asterisk/mdintz.h'''&lt;br /&gt;
* En asterisk 1.4.24 conviene asegurar que se ha actualizado '''&amp;quot;asterisk/apps/app_queue.o&amp;quot;''' y '''&amp;quot;asterisk/apps/app_queue.so&amp;quot;'''&lt;br /&gt;
* Luego '''&amp;quot;make&amp;quot;, &amp;quot;make install&amp;quot;''' y module '''&amp;quot;unload/load&amp;quot;''' (mejor &amp;quot;stop now&amp;quot; y start)&lt;br /&gt;
&lt;br /&gt;
'''→ scripts y rc.debian.asterisk'''&lt;br /&gt;
&lt;br /&gt;
cambiado contrib/scripts por el modificado por MDtel&amp;lt;br /&amp;gt;&lt;br /&gt;
cambiado contrib/init.d/rc.debian.asterisk por el modificado por MDtel &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ Carpeta mp3 añadida al directorio addons'''&lt;br /&gt;
&lt;br /&gt;
La carpeta mp3 en addons permite la reproducción desde el diaplan de los mensajes en mp3. En make menuselect hay que marcar el format_mp3 y app_mp3 e instalar el paquete mpg123 de ubuntu &lt;br /&gt;
&lt;br /&gt;
'''→ sig_pri.c'''&lt;br /&gt;
&lt;br /&gt;
Modificado para enviar/recibir el ucid en un primario qsig &lt;br /&gt;
&lt;br /&gt;
Para que se envie el ucis tenemos que habilitar el envio de facilidades en el chan_dahdi.conf&lt;br /&gt;
&lt;br /&gt;
facilityenable = yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ init.d''' &amp;lt;!--style=&amp;quot;color:#0000ff&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Uno de los archivos modificados ha sido '''init.d''', se encuentra en la ruta: '''/etc/init.d/asterisk'''. La modificación realizada es la siguiente:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;background-color:#ffffcc;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| SAFE_ASTEISK=/usr/sbin/safe_asterisk &amp;lt;br/&amp;gt;&lt;br /&gt;
if [ -x $SAFE_ASTERISK ] ; then&amp;lt;br/&amp;gt;&lt;br /&gt;
:# //!! wkw&amp;lt;br/&amp;gt;&lt;br /&gt;
:DAEMON=$SAFE_ASTERISK&amp;lt;br/&amp;gt;&lt;br /&gt;
fi&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--archivo--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''→ safe-asterisk'''&lt;br /&gt;
* Se encuentra en la siguiente ruta:'''/usr/sbin/safe-asterisk''' .En este archivo se ha modificado MAXFILES=32768&lt;br /&gt;
&lt;br /&gt;
'''→ default'''&lt;br /&gt;
&lt;br /&gt;
* Este fichero podemos encontrarlo en: '''/etc/default/asterisk'''. La finalidad de la modificación de este fichero es poder correr como usuario Asterisk, grupo asterisk y generar cores (descomentar línea)&lt;br /&gt;
Las modificaciones realizadas han sido:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;background-color:#ffffcc;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| AST_USER=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
AST_GROUP=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
COREDUMP=yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Nueva función de asterisk: app_cli.so =====&lt;br /&gt;
&lt;br /&gt;
Esta función permite ejecutar desde el '''dialplan''' un comando de línea de consola de '''asterisk (CLI).''' Su primer uso (y esperamos que no último) será para lanzar los '''notify''' que los teléfonos necesitan para el ''reaprovisionamiento'' desde el portal o desde la facilidad de movilidad de usuario.&lt;br /&gt;
&lt;br /&gt;
Básicamente ejecuta un comando y devuelve su salida. Utiliza un archivo intermedio que puede ser:&lt;br /&gt;
&lt;br /&gt;
* '''/dev/null''' si el campo se deja vacío, por tanto, no se puede recuperar la salida.&lt;br /&gt;
* '''TEMP''', en cuyo caso se crea un archivo temporal que se borra antes de finalizar la ejecución de la función.&lt;br /&gt;
* Un nombre de fichero que es responsabilidad del dialplan el borrarlo cuando proceda.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para instalarlo basta copiar '''apps/app_cli.c''' en el directorio ''' &amp;quot;apps&amp;quot; ''' de los fuentes y luego  ejecutar '''&amp;quot;make&amp;quot; y &amp;quot;make install&amp;quot;.'''&lt;br /&gt;
&lt;br /&gt;
A continuación se pasa el resultado de '''&amp;quot;core show function CLI&amp;quot; '''&lt;br /&gt;
&lt;br /&gt;
'''[Synopsis]'''&lt;br /&gt;
&lt;br /&gt;
 Lanza un comando CLI desde dialplan&lt;br /&gt;
&lt;br /&gt;
'''[Description]''' &amp;lt;br /&amp;gt;&lt;br /&gt;
 - CLI(nomArchSal,cmd)&amp;lt;br /&amp;gt;&lt;br /&gt;
 - Si 'nomArchSal' está vacio, se usa '/dev/null' y no se recupera resultado&amp;lt;br /&amp;gt;&lt;br /&gt;
 - Si 'nomArchSal'=TEMP, Se crea un archivo temporal que se borra al final&amp;lt;br /&amp;gt;&lt;br /&gt;
 - En otro caso, se crea el archivo y no se borra&lt;br /&gt;
&lt;br /&gt;
'''[Syntax]'''&amp;lt;br /&amp;gt;&lt;br /&gt;
 CLI(nomArchSal,cmd)&lt;br /&gt;
&lt;br /&gt;
'''[Arguments]'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''nomArchSal'''&lt;br /&gt;
    Archivo de salida (si se omite, /dev/null)&lt;br /&gt;
'''cmd'''&lt;br /&gt;
    Comando a ejecutar via CLI&lt;br /&gt;
&lt;br /&gt;
==== Dialplan  ====&lt;br /&gt;
&lt;br /&gt;
El Dialplan podría considerarse la columna vertebral del sistema ''Asterisk''.&lt;br /&gt;
&lt;br /&gt;
Es una colección ordenada de acciones que se llevan a cabo cuando un usuario marca una serie de números. Hace la función de una tabla de enrutamiento de llamadas.&lt;br /&gt;
&lt;br /&gt;
Todas las configuraciones generales de Asterisk están accesibles en la ruta '''/etc/asterisk'''&lt;br /&gt;
&lt;br /&gt;
'''CONCEPTOS BÁSICOS'''&lt;br /&gt;
&lt;br /&gt;
♦ '''EXTENSIONES'''&lt;br /&gt;
&lt;br /&gt;
Una extensión es una marcación en el teclado de un teléfono. Dicha configuración podemos encontrarla en el archivo '''extensions.conf''' &lt;br /&gt;
&lt;br /&gt;
Por ejemplo, un usuario podría marcar “3001” en su teléfono, y eso sería una extensión. También podría marcar un número de teléfono nacional, como por ejemplo “915881000”, y también sería una extensión.&lt;br /&gt;
&lt;br /&gt;
En Asterisk pueden definirse también extensiones como texto, por tanto no debemos relacionar las extensiones únicamente con números.&lt;br /&gt;
&lt;br /&gt;
Algunas reglas que sería interesante conocer serían las siguientes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Regla''' !! '''Descripción'''&lt;br /&gt;
|-&lt;br /&gt;
| '''X''' || Cualquier cifra de 0 a 9&lt;br /&gt;
|-&lt;br /&gt;
|'''Z'''||Cualquier cifra de 1 a 9&lt;br /&gt;
|-&lt;br /&gt;
|'''N'''||Cualquier cifra de 2 a 9&lt;br /&gt;
|-&lt;br /&gt;
|'''[x-y]'''||Cualquier cifra de &amp;quot;x&amp;quot; a &amp;quot;y&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''[xyz]'''|| 	Las cifras &amp;quot;x&amp;quot;, &amp;quot;y&amp;quot; o &amp;quot;z&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''.'''||Una o más repeticiones del símbolo anterior&lt;br /&gt;
|-&lt;br /&gt;
|'''!'''||Cero o más repeticiones del símbolo anterior&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Estas reglas son necesarias a la hora de definir por ejemplo todos los números de teléfono posibles en España &lt;br /&gt;
&lt;br /&gt;
♦ '''PRIORIDADES'''&lt;br /&gt;
&lt;br /&gt;
En lenguaje scripting, las acciones se van ejecutando de arriba a abajo en orden. En cambio, en Asterisk, el orden en el que se ejecutan las acciones es el indicado mediante números.&lt;br /&gt;
Primero se ejecutará la acción 1, luego la 2...así sucesivamente.&lt;br /&gt;
&lt;br /&gt;
Es decir no basta con definir las acciones que se llevarán a cabo, también debemos indicar el orden en el que se llevarán a cabo.&lt;br /&gt;
&lt;br /&gt;
♦ '''CONTEXTOS'''&lt;br /&gt;
&lt;br /&gt;
Es mecanismo que nos permite variar el comportamiento del sistema en función del número que se marque. Su misión es aumentar la seguridad del sistema ofreciendo servicios diferenciados en función del usuario.&lt;br /&gt;
&lt;br /&gt;
La sintaxis típica es el nombre del contexto englobado entre corchetes [nombre_contexto]. Si un dispositivo no tiene un contexto definido se redirige directamente al contexto por defecto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los ficheros que conforman el Dialplan se clasifican en:&lt;br /&gt;
&lt;br /&gt;
* '''Generales'''&lt;br /&gt;
* '''Particulares'''&lt;br /&gt;
* '''Web'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Fichero''' !! '''Función'''&lt;br /&gt;
|-&lt;br /&gt;
| '''Generales''' || Se encuentran los ficheros de propios de MDtel y Asterisk. Es importante remarcar que estos ficheros NO pueden ser modificados por el usuario.&lt;br /&gt;
|-&lt;br /&gt;
|'''Particular'''||Estos ficheros son los únicos que puede modificar el usuario&lt;br /&gt;
|-&lt;br /&gt;
|'''Web'''|| Se encierran aquí los archivos generados automáticamente por la plataforma, a través del portal&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
En función del nodo en el que estemos trabajando, encontraremos dos tipos de dialplan:&lt;br /&gt;
&lt;br /&gt;
'''* Dialplan ACD''' --&amp;gt; Dialplan que aplica a nodos ACD&lt;br /&gt;
&lt;br /&gt;
'''* Dialplan corporativa''' --&amp;gt; Dialplan que aplica a nodos de corporativa o gateways (ya sean de corporativa o ACD)&lt;br /&gt;
&lt;br /&gt;
A continuación se muestran las tablas con los ficheros correspondientes a cada Dialplan.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;FloralWhite&amp;quot;&lt;br /&gt;
|+ '''Ficheros de configuración Dialplan Corporativo'''&lt;br /&gt;
| '''GENERALES'''&lt;br /&gt;
| '''PARTICULARES'''&lt;br /&gt;
| '''WEB'''&lt;br /&gt;
|-&lt;br /&gt;
| ext_Grabaciones.conf &amp;lt;br /&amp;gt;ext_InicioLlamada.conf &amp;lt;br /&amp;gt; ext_InicioLlamada_Dahdi.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP.conf &amp;lt;br/&amp;gt;ext_InicioLlamada_TrunkSIP.conf &amp;lt;br /&amp;gt;ext_MARCAR_ColaCentralita.conf &amp;lt;br /&amp;gt; ext_MARCAR_ColaCentralita_Dial.conf&amp;lt;br /&amp;gt; ext_MARCAR_Cola.conf &amp;lt;br /&amp;gt;ext_MARCAR_Cola_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR.conf  &amp;lt;br /&amp;gt; ext_MARCAR_DejarMensaje.conf &amp;lt;br /&amp;gt; ext_MARCAR_DejarMensaje_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Extension.conf&amp;lt;br /&amp;gt;ext_MARCAR_Extension_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_nimitz.conf&amp;lt;br /&amp;gt;ext_MARCAR_Interno.conf &amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje.conf &amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR_Nodo.conf&amp;lt;br /&amp;gt;ext_MARCAR_Nodo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Servicios.conf &amp;lt;br /&amp;gt;ext_MARCAR_VDN.conf &amp;lt;br /&amp;gt;MARCAR_VDN_Dial.conf&amp;lt;br /&amp;gt;ext_MDtel.conf &amp;lt;br /&amp;gt;ext_MDtel_Var.conf &amp;lt;br /&amp;gt;ext_Subrutinas_AnchoBanda.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD_Facilidad.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD_Facilidad.conf &amp;lt;br /&amp;gt; ext_Subrutinas_Colas.conf &amp;lt;br /&amp;gt;ext_Subrutinas.conf &amp;lt;br /&amp;gt;ext_Subrutinas_Enrutamiento.conf &amp;lt;br /&amp;gt;ext_Subrutinas_finLlamada.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Grabacion.conf&amp;lt;br /&amp;gt;ext_Subrutinas_nimitz.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Varias.conf&amp;lt;br /&amp;gt;ext_Subscribe.conf&amp;lt;br /&amp;gt;ext_Transfer.conf &amp;lt;br /&amp;gt;ext_Transfer_ExtSIP.conf&amp;lt;br /&amp;gt;ext_Transfer_TrunkInternos.conf &amp;lt;br /&amp;gt;ext_TrunkInternos.conf&amp;lt;br /&amp;gt;ext_TrunkInternos_Dial.conf &amp;lt;br /&amp;gt;sip_Estatico.conf&amp;lt;br /&amp;gt; sip_GENCUST.conf &amp;lt;br /&amp;gt;sip_notify.conf &amp;lt;br /&amp;gt;queues.conf &amp;lt;br /&amp;gt; queues_GENERAL.conf &amp;lt;br /&amp;gt;queues_PLANTILLACOLAS.conf&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| ext_Enrutador_Particular.conf&amp;lt;br /&amp;gt; ext_InicioLlamada_Dahdi_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_Particular.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_TrunkSIP_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_Extension_Particular.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo_Particular.conf &amp;lt;br/&amp;gt; ext_MARCAR_Facilidad_Particular.conf&amp;lt;br /&amp;gt; ext_MARCAR_VDN_Particular.conf &amp;lt;br /&amp;gt;ext_MDtel_Particular.conf &amp;lt;br/&amp;gt; ext_TrunkInternos_Particular.conf &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|asterisk_WEB.conf &amp;lt;br /&amp;gt; ext_MDtel_WEB.conf &amp;lt;br /&amp;gt; sip_trunkExt_WEB.conf &amp;lt;br /&amp;gt;sip_trunkInt_WEB.conf &amp;lt;br /&amp;gt;sip_trunk_WEB.conf &amp;lt;br /&amp;gt; sip_WEB.conf &amp;lt;br /&amp;gt; queues_WEB.conf&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;FloralWhite&amp;quot;&lt;br /&gt;
|+ '''Ficheros de configuración Dialplan ACD'''&lt;br /&gt;
| '''GENERALES'''&lt;br /&gt;
| '''PARTICULARES'''&lt;br /&gt;
| '''WEB'''&lt;br /&gt;
|-&lt;br /&gt;
| ext_Enrutador.conf&amp;lt;br /&amp;gt;ext_Grabaciones.conf &amp;lt;br /&amp;gt; ext_InicioLlamada.conf &amp;lt;br /&amp;gt; ext_InicioLlamada_CTI.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_Dahdi.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_Marcador.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_TrunkSIP.conf &amp;lt;br /&amp;gt;ext_MARCAR_ColaCentralita.conf &amp;lt;br /&amp;gt;ext_MARCAR_ColaCentralita_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR_Cola.conf &amp;lt;br /&amp;gt;ext_MARCAR_Cola_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR.conf &amp;lt;br /&amp;gt;ext_MARCAR_DejarMensaje.conf &amp;lt;br /&amp;gt;ext_MARCAR_DejarMensaje_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Extension.conf &amp;lt;br /&amp;gt;ext_MARCAR_Extension_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_nimitz.conf&amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje.conf &amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Nodo.conf &amp;lt;br /&amp;gt;ext_MARCAR_Nodo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR_Servicios.conf &amp;lt;br /&amp;gt;ext_MARCAR_VDN.conf &amp;lt;br /&amp;gt;ext_MARCAR_VDN_Dial.conf&amp;lt;br /&amp;gt;ext_MDtel.conf &amp;lt;br /&amp;gt;ext_MDtel_Var.conf &amp;lt;br /&amp;gt;ext_Subrutinas_AnchoBanda.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD_Facilidad.conf &amp;lt;br /&amp;gt; ext_Subrutinas_Colas.conf &amp;lt;br /&amp;gt;ext_Subrutinas.conf &amp;lt;br /&amp;gt;ext_Subrutinas_Enrutamiento.conf &amp;lt;br /&amp;gt; ext_Subrutinas_finLlamada.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Grabacion.conf &amp;lt;br /&amp;gt;ext_Subrutinas_nimitz.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Varias.conf &amp;lt;br /&amp;gt;ext_Subscribe.conf&amp;lt;br /&amp;gt;ext_Transfer.conf &amp;lt;br /&amp;gt;ext_Transfer_ExtSIP.conf&amp;lt;br /&amp;gt;ext_Transfer_TrunkInternos.conf &amp;lt;br /&amp;gt;ext_TrunkInternos.conf &amp;lt;br /&amp;gt;ext_TrunkInternos_Dial.conf &amp;lt;br /&amp;gt;queues_GENERAL.conf&amp;lt;br /&amp;gt;queues_PLANTILLACOLAS.conf &amp;lt;br /&amp;gt;sip_GENCUST.conf &amp;lt;br /&amp;gt;sip_GENERAL.conf &amp;lt;br /&amp;gt;sip_notify.conf &amp;lt;br /&amp;gt;sip_PLANTILLAEXT.conf&amp;lt;br /&amp;gt;sip_supervision.conf &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| ext_Enrutador_Particular.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_CTI_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_Dahdi_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_Marcador_Particular.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_Particular.conf.&amp;lt;br /&amp;gt;ext_InicioLlamada_TrunkSIP_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_Externo_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_VDN_Particular.conf&amp;lt;br /&amp;gt; ext_MDtel_Particular.conf&amp;lt;br /&amp;gt;ext_TrunkInternos_Particular.conf&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
|asterisk_WEB.conf &amp;lt;br /&amp;gt; ext_MDtel_WEB.conf &amp;lt;br /&amp;gt;queues_WEB.conf&amp;lt;br /&amp;gt; sip_trunkInt_WEB.conf &amp;lt;br /&amp;gt;sip_WEB.conf &amp;lt;br /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Servicios networking ===&lt;br /&gt;
Son muy importantes las configuraciones adecuadas de los servicios de:&lt;br /&gt;
&lt;br /&gt;
* '''NTP''': El sistema en global ha de estar sincronizado; todos los servidores y puestos de trabajo (en el caso de ''VIVA''it Suite) han de estar perfectamente sincronizados; los servidores de la plataforma se sincronizarán con el NTP del cliente; si el cliente no tiene NTP será necesario que un servidor de la plataforma se sincronice con un NTP externo y este sea el servidor para el resto de la plataforma&lt;br /&gt;
&lt;br /&gt;
* '''DNS''': La configuración de DNS de la plataforma será coherente con el resto de la plataforma IT del cliente&lt;br /&gt;
&lt;br /&gt;
* '''DHCP''': Es necesario coordinar con el cliente la asignación de direcciones para los diferentes elementos de la plataforma '''''VIVA'''''it, fundamentalmente para terminales telefónicos; en este caso además será necesario activa la opción 66 que permitirá definir el servidor TFTP del que los terminales cogerán sus ficheros de aprovisionamiento&lt;br /&gt;
&lt;br /&gt;
=== Bases de datos (BBDD)===&lt;br /&gt;
&lt;br /&gt;
La base de datos del sistema se basa en el motor de base de datos MySQL, es un elemento crítico del sistema, en el que insertan y del que obtiene mucha información múltiples procesos.&lt;br /&gt;
Muchas comunicaciones entre procesos se realizan vía Base de Datos (tabla COM_COMUNICADOS). Pueden existir distintas instancias de base de datos que explicadas en las siguientes secciones, nuestra base de datos tiene la siguiente estructura: [[Base de datos|Información completa de la BD]]. Podéis ampliar más información en https://dev.mysql.com/doc/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== BBDD Tiempo Real ====&lt;br /&gt;
En la base de datos de tiempo real insertan información todos los procesos del sistema, y se realizan los cambios en configuración utilizando como herramienta el portal de administración y '''''VIVA'''''it Supervisor&lt;br /&gt;
&lt;br /&gt;
De la base de datos de tiempo real leen los procesos que requieren información, y las aplicaciones:&lt;br /&gt;
*'''''VIVA'''''it Supervisor (para reporting de tiempo real)&lt;br /&gt;
*PanelWeb&lt;br /&gt;
*Datos de sesión de '''''VIVA'''''it Desk&lt;br /&gt;
*Monitorización Zabbix&lt;br /&gt;
* Otros&lt;br /&gt;
&lt;br /&gt;
El portal de administración se encarga de escribir las configuraciones añadidas o modificadas en la base de datos&lt;br /&gt;
&lt;br /&gt;
==== BBDD Réplica ====&lt;br /&gt;
A efectos de asegurar las prestaciones del sistema, se establece una réplica de la base de datos, sincronizada con la de tiempo real; los procesos y aplicaciones pesados, que realicen consultas a las base de datos que puedan comprometer las prestaciones del sistema atacan a la réplica y nunca a la base de datos de tiempo real&lt;br /&gt;
&lt;br /&gt;
Es posible que en instalaciones pequeñas no exista réplica, en cuyo caso se establece una base de datos unificada sobre la de tiempo real, en la que se añaden índices y procedimientos almacenados que típicamente residen en la de réplica.&lt;br /&gt;
&lt;br /&gt;
Es posible establecer tantas réplicas como sean necesarias si diferentes procesos pesados se penalizan en exceso, si bien una implantación tipo contemplará una sola&lt;br /&gt;
&lt;br /&gt;
Algunos procesos que utilizan la base de datos de réplica son:&lt;br /&gt;
*'''''VIVA'''''it Reporting&lt;br /&gt;
*'''''VIVA'''''it Tracker&lt;br /&gt;
*Histórico en tiempo real de '''''VIVA'''''it Supervisor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANTE: Ningún proceso, programa, aplicación, etc. escribe en la base de datos de réplica; tan solo se extrae información'''&lt;br /&gt;
&lt;br /&gt;
==== BBDD de copia ====&lt;br /&gt;
A efectos de asegurar el funcionamiento y como medida de contingencia ante un problema puntual de comunicación con la BD de tiempo real, en cada nodo disponemos de una BD de copia local. Posiblemente de un tamaño menor que la BD de tiempo real, dependiendo de cuanto tiempo pase hasta la próxima sincronización con la base de tiempo real.Esta base de datos llamada '''nimitzCopia'''.&lt;br /&gt;
  &lt;br /&gt;
Solo entrara en funcionamiento,cuando se produzca el problema mencionado, dejando acceder a los datos y poder dar servicio a la empresa mientras se soluciona el problema.&lt;br /&gt;
&lt;br /&gt;
===== Backup y restore =====&lt;br /&gt;
&lt;br /&gt;
Se utilizan dos script, para realizar la copia de seguridad y restaurar en la base de datos de copia local que son:&lt;br /&gt;
&lt;br /&gt;
* El proceso '''bdCentral.sh''' que es el encargado de realizar la copia de seguridad. Tiene un archivo de configuración bdCentral.conf. En este archivo hay un parámetro (IGNORE_TABLAS) que indica las tablas de las que NO se realizará copia de seguridad. Toda tabla que no se indique formará parte de la copia de seguridad. Vuelca los resultados en /var/log/bdCentral.log&lt;br /&gt;
* El proceso '''bdNodo.sh''' que es el encargado de descargar la copia de seguridad y restaurarla en local. Tiene un archivo de configuración bdNodo.conf. Vuelca los resultados en /var/log/bdNodo.log. El fichero de backup se copia mediante el usuario sincroniza, que deberá poder acceder sin contraseña al servidor donde reside la copia.&lt;br /&gt;
&lt;br /&gt;
En caso de producirse algún error en alguno de los procesos, marcarán dicho error en el log con una línea que comienza con la cadena &amp;quot;*ERROR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Diagnósticos y operaciones sobre bases de datos ====&lt;br /&gt;
&lt;br /&gt;
=====Comprobación que una base de datos está arrancada=====&lt;br /&gt;
Para comprobar si la base de datos está arrancada debemos poner en el terminal : '''ps aux | grep mysql'''&lt;br /&gt;
&lt;br /&gt;
Si la base de datos está arrancada y funcionando correctamente se nos mostrará en el terminal:&lt;br /&gt;
[[Archivo:Base_Datos_bien.png‎ |500px|center]]&lt;br /&gt;
&lt;br /&gt;
Por el contrario, si la base de datos presenta algun problema el mensaje mostrado será:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Base_datos_mal.png |center]]&lt;br /&gt;
&lt;br /&gt;
=====Comprobación que la base de datos de réplica está sincronizada con la base de datos de tiempo real.=====&lt;br /&gt;
&lt;br /&gt;
Si se necesita verificar que la base de réplica está sincronizada con la base de datos en tiempo real basta con acudir al comando : '''show slave status\G'''.&lt;br /&gt;
&lt;br /&gt;
Una vez introducido veremos:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Replica.png |980px|center]]&lt;br /&gt;
&lt;br /&gt;
Comandos importantes, desde dentro consola de Mysql:&lt;br /&gt;
&lt;br /&gt;
 '''show master status''': Realizado desde el master&lt;br /&gt;
 '''show slave status''': Realizado desde el esclavo; el valor &amp;quot;seconds behind master&amp;quot; nos indica&lt;br /&gt;
 cuanto está retrasada la réplica con respecto a la base de datos de tiempo real. Si el valor de este campo es elevado nos indicará &lt;br /&gt;
 que la base de datos real con la réplica no estará sincronizada, por tanto, nos interesa que este valor sea lo más pequeño posible.&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Procesos propios ===&lt;br /&gt;
&lt;br /&gt;
==== bdCentral ====&lt;br /&gt;
&lt;br /&gt;
El proceso ''bdCentral.sh'' es el encargado de realizar la copia de seguridad. Tiene un archivo de configuración ''bdCentral.conf'' el cual puede encontrarse en la ruta '''/etc/MDtel/bdCentral.conf'''. En este archivo hay un parámetro (IGNORE_TABLAS) que indica las tablas de las que NO se realizará copia de seguridad. Toda tabla que no se indique formará parte de la copia de seguridad. Vuelca los resultados en /var/log/bdCentral.log&lt;br /&gt;
&lt;br /&gt;
En caso de producirse algún error, se marcará dicho error en el log con una línea que comienza con la cadena &amp;quot;*ERROR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Para ejecutar bdCentral:&lt;br /&gt;
 bdCentral.sh /etc/MDtel/bdCentral.conf&lt;br /&gt;
&lt;br /&gt;
Estos procesos se ejecutan automáticamente. Para ello está copiado el fichero bdCentral a /etc/cron.d.&lt;br /&gt;
&lt;br /&gt;
Por defecto la programación vienen comentada por lo que será necesario activarlo.&lt;br /&gt;
&lt;br /&gt;
Para que se roten los logs hay que copiar el fichero bdCentral.logrotate a /etc/logrotate.d (como bdCentral)&lt;br /&gt;
La ruta donde se encuentran los logs es la siguiente: '''/var/log/myAcdSuperv.log'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
*A continuación se explica la utilidad de los campos mas relevantes del fichero de configuración bdCentral.conf. &lt;br /&gt;
ARCH_LOG : &lt;br /&gt;
BDHOST: Localización de la base de datos&lt;br /&gt;
BDUSU: Usuario para la base de datos&lt;br /&gt;
BDRUTA: Ruta donde se encuentra la base de datos&lt;br /&gt;
IGNORE_TABLAS:&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== bdNodo ====&lt;br /&gt;
El proceso bdNodo.sh es el encargado de descargar la copia de seguridad y restaurarla en local. Tiene un archivo de configuración bdNodo.conf, este archivo puede encontrarse en la ruta '''/etc/MDtel/bdNodo.conf.''' Vuelca los resultados en /var/log/bdNodo.log. El fichero de backup se copia mediante el usuario sincroniza, que deberá poder acceder sin contraseña al servidor donde reside la copia.&lt;br /&gt;
&lt;br /&gt;
En caso de producirse algún error, se marcará dicho error en el log con una línea que comienza con la cadena &amp;quot;*ERROR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Para ejecutar bdNodo:&lt;br /&gt;
&lt;br /&gt;
 bdNodo.sh /etc/MDtel/bdNodo.conf&lt;br /&gt;
&lt;br /&gt;
Estos procesos se ejecutan automáticamente. Para ello está copiado el fichero bdNodo a /etc/cron.d.&lt;br /&gt;
&lt;br /&gt;
Por defecto la programación vienen comentada por lo que será necesario activarlo.&lt;br /&gt;
&lt;br /&gt;
Para que se roten los logs hay que copiar el fichero bdNodo.logrotate a /etc/logrotate.d (como bdNodo)&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Intz-Nimitz ====&lt;br /&gt;
&lt;br /&gt;
Permite integrar procesos de asterisk (del dialplan) con la base de datos; por ejemplo es el que graba segmentos, inspecciona donde esta registrado un agente…etc. La estabilidad de este proceso es importante para el funcionamiento del sistema, si bien las llamadas entran en caso de no estar disponible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para mas información consultar la página de [[intz-nimitz|intz-nimitz]].&lt;br /&gt;
&lt;br /&gt;
Desde un SSH ejecuta el comando “nc ip_maquina 1115”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1115'''&lt;br /&gt;
 intz-nimitz sis ver='V02.6' inic='20140401 110116' alarmas=21 ultAlar='20140414 171244'&lt;br /&gt;
 intz-nimitz gmp msj=942/1024 buf=1024/1024 tarea=16/102&lt;br /&gt;
 intz-nimitz tmp uptime=1816550 (21d 0h 35m 50s)&lt;br /&gt;
 intz-nimitz vic identif='cms1' entorno='nimitz' conx=0/128 numConx=1018(0)&lt;br /&gt;
 intz-nimitz mys curro=80/0/0/0 soli=1012(0) soliErr=6(0) soliEncol=0(0/0)&lt;br /&gt;
 intz-nimitz cache colas=128/10/0/0 vdn=128/8/0/0 usuExten=10/0/0/0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parámetro!!Descripción&lt;br /&gt;
|-&lt;br /&gt;
|sis/ver||Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|sis/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|Sis/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|Sis/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/msj||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/buf||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/tarea||&lt;br /&gt;
|-&lt;br /&gt;
|Tmp/uptime||Tiempo que lleva el servicio activo&lt;br /&gt;
|-&lt;br /&gt;
|Vic/identif||Etiqueta de identificación del servicio&lt;br /&gt;
|-&lt;br /&gt;
|Vic/entorno||Entorno de base de datos&lt;br /&gt;
|-&lt;br /&gt;
|Vic/conx||Conexiones activas/conexiones máximas&lt;br /&gt;
|-&lt;br /&gt;
|Vic/numConx||Conexiones totales (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|Mys/curro||Número de hilos contra la base de datos&lt;br /&gt;
|-&lt;br /&gt;
|Mys/soli||Conexiones solicitadas (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|Mys/soliErr||Conexiones solicitadas con error (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|Mys/soliEncol||Conexiones encoladas&lt;br /&gt;
|-&lt;br /&gt;
|Cache/cola|| Colas monitorizadas/&lt;br /&gt;
|-&lt;br /&gt;
|Cache/vdn||VDN’s monitorizados&lt;br /&gt;
|-&lt;br /&gt;
|Cache/usuExten||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en  '''/etc/MDtel/intz-nimitz.conf'''&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/intz-nimitz.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
A continuación se muestran los campos mas importantes del fichero de configuración intz-nimitz.conf:&lt;br /&gt;
&lt;br /&gt;
enrutamiento &lt;br /&gt;
{ &lt;br /&gt;
        hay_enrutamiento = 1 &lt;br /&gt;
        max_pre_ruta_regs = 4 &lt;br /&gt;
        max_ruta = 4 &lt;br /&gt;
        max_ruta_desvios = 2 &lt;br /&gt;
# Filtro de informacion de ancho de banda &lt;br /&gt;
# MYSDanchoBandaPasoNinguno      0 &lt;br /&gt;
# MYSDanchoBandaPasoSoloDirectos 1 &lt;br /&gt;
# MYSDanchoBandaPasoSoloEnPaso   2 &lt;br /&gt;
# MYSDanchoBandaPasoTodos        3 &lt;br /&gt;
        filtro_ancho_banda = 1 &lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
mysql &lt;br /&gt;
{ &lt;br /&gt;
        hay_mysql = 1   Indica si hay base de datos mysql&lt;br /&gt;
        host = BDTR &lt;br /&gt;
        usuario = nimitz   Usuario base de datos&lt;br /&gt;
        clave = phikau3iwCe4O0PP5b09ng==   clave base de datos&lt;br /&gt;
        base_datos = nimitz &lt;br /&gt;
        bd_supervivencia = 0 &lt;br /&gt;
        num_curro = 10 &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== motorSal ====&lt;br /&gt;
Parte fundamental del proceso de marcación saliente, gestiona como hay que llamar a los diferentes contactos asignados a las campañas. Transforma los contactos en intentos de marcación.&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH ejecuta el comando “nc ip_maquina 1120”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1120'''&lt;br /&gt;
 motorSal sis ver='V01.4' inic='20140725 140832' alarmas=1 ultAlar='20140725 140832'&lt;br /&gt;
 motorSal gmp msj=253/256 buf=256/256 tarea=99/102&lt;br /&gt;
 motorSal tmp uptime=600165 (6d 22h 42m 45s)&lt;br /&gt;
 motorSal mtr mys=1 ocup=0% planif=28(0) intento=26(0)&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parámetro!!Descripción&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ver||Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/msj||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/buf||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/tarea||&lt;br /&gt;
|-&lt;br /&gt;
|Tmp/uptime||Tiempo que lleva corriendo&lt;br /&gt;
|-&lt;br /&gt;
|mtr/mys||Si está conectado al MySQL&lt;br /&gt;
|-&lt;br /&gt;
|mtr/ocup||Porcentaje de ocupación&lt;br /&gt;
|-&lt;br /&gt;
|mtr/planif||Contactos planificados Totales (Último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|mtr/intento||Intentos totales (Ültimo minuto)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Posee un fichero de configuración llamado ''motorSal.conf'' en la ruta '''/etc/MDtel/motorSal.conf'''.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:Las variables que normalmente son modificadas son las siguientes:&lt;br /&gt;
&lt;br /&gt;
mysql&lt;br /&gt;
{&lt;br /&gt;
hay_mysql = 1&lt;br /&gt;
Indica si hay base de datos mysql&lt;br /&gt;
host = localhost&lt;br /&gt;
usuario = nimitz&lt;br /&gt;
Usuario base de datos&lt;br /&gt;
Clave base de datos&lt;br /&gt;
base_datos = nimitz&lt;br /&gt;
}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Respecto a los logs del motorSal consultar el siguiente apartado: [[Trazas motorSal]]. Los logs pueden verse en la ruta '''/var/log/intz-nimitz.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== MyACDSuperv ====&lt;br /&gt;
Refleja el estado de las colas de asterisk en la base de datos; tiene sentido a efectos de estadísticas e informes, pero no a efectos de funcionamiento de la conmutación de voz&lt;br /&gt;
&lt;br /&gt;
Es también el proceso que genera las llamadas en el marcador automático de '''''VIVA'''''it Suite&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando “nc ip_maquina 1112”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1112'''&lt;br /&gt;
 myAcdSuperv SIS ver='04.6' inic='20140416 081613' alarmas=6 ultAlar='20140416 121652'&lt;br /&gt;
 myAcdSuperv AMI cnx=1 ocup=28% exten=2/2/511 asig=0/11/4095&lt;br /&gt;
 myAcdSuperv MYSQL cnx=1 ms=316&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parámetro!!Descripción&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ver||Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|AMI/cnx||Conectado (1) a asterisk&lt;br /&gt;
|-&lt;br /&gt;
|AMI/ocup||Porcentaje de ocupación de MyACDSuperv&lt;br /&gt;
|-&lt;br /&gt;
|AMI/exten||Extensiones/Extensiones/Extensiones monitorizadas|-&lt;br /&gt;
|-&lt;br /&gt;
|AMI/asig||&lt;br /&gt;
|-&lt;br /&gt;
|MYSQL/cnx||Conectado (1) a MySQL&lt;br /&gt;
|-&lt;br /&gt;
|MYSQL/ms||Tiempo de última operación en ejecutarse&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/myAcdSuperv.cnf'''&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/myAcdSuperv.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Proceso escoba ====&lt;br /&gt;
El proceso escoba se encarga de resolver y consolidar todos aquellos segmentos de grabación que han quedado almacenados en los gateways por falta de información o incoherencias. Existen dos tipos de procesos escobas:&lt;br /&gt;
# Proceso escoba perteneciente a nodo con agente de grabación (recordNodo) llamado '''''escobaGW.pl'''''.&lt;br /&gt;
# Proceso escoba perteneciente o no a un servidor de grabación (recordCentral) llamado '''''escobaGrabsBd.pl'''''.&lt;br /&gt;
&lt;br /&gt;
===== escobaGW.pl =====&lt;br /&gt;
Proceso que se ejecuta en los nodos busca en el disco RAM , las grabaciones de segmentos cuya antigüedad sea superior a mas de un día, es decir, si el proceso por ejemplo se ejecuta a la 01:00 a.m. del día 24/03/2016 buscara todas aquellas grabacionesn de segmentos realizadas antes de la 01:00 a.m del día 22/03/2016.&lt;br /&gt;
Una vez realizada la busqueda, obtendra el UCID a traves del nombre del fichero, y comprobara su correspondencia con la tabla DAT_LLAMADAS. Si existe una llamada con ese UCID, cambiara el estado de la llamada para que sea procesada correctamente. En caso contrario, es movida a la carpeta ''/var/lib/recordNodo/grabError''.&lt;br /&gt;
&lt;br /&gt;
===== escobaGrabsBd.pl =====&lt;br /&gt;
Se ejecuta sobre la base de datos de histórico, normalmente se ejecuta en un servidor de grabación (recordCentral). El proceso hace una búsqueda en dos tablas:&lt;br /&gt;
* En DAT_SEGMENTOS obtiene todos aquellos segmentos con grabaciones que dieron error, su estado tendrá valor 120.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
* En DAT_LLAMADAS obtendremos todos los registros correspondiente al segmentos anteriores.&lt;br /&gt;
Después hace una búsqueda en el sistema, usando como ruta el campo D_HORA_INICIO de cada llamada, que indica la ruta entera donde se encuentra el archivo. Una vez encontrado el archivo cambia el estado del segmento que tenia un error a estado de grabación disponible , que tendrá valor 100. Si no encontramos el segmento, no realizara nada.&lt;br /&gt;
&lt;br /&gt;
==== recordCentral ====&lt;br /&gt;
Se considera como un servidor de grabaciones. Todas las grabaciones de llamadas son un activo importante y una empresa con Contact Center pueda recibir millones de llamadas que necesitan estar registradas y almacenadas en discos duros con gran capacidad, dichas maquinas donde suelen alojarse estos servidores poseen discos duros limitados, lo que hace necesario en algunos casos incorporar ''dispositivos NAS''.&lt;br /&gt;
&lt;br /&gt;
Los ''dispositivos NAS'' son dispositivos de almacenamiento conectados a una red que permite el almacenamiento y la recuperación de datos desde una ubicación centralizada, flexibles y escalables, lo que significa que a medida que necesite almacenamiento adicional, puede añadirlo al que tiene. Esto no indica que sea necesario poseer de ''dispositivos NAS'' para funcionar, sino que puede tomar datos de diferentes sitios.&lt;br /&gt;
&lt;br /&gt;
En '''recordCentral''' pueden existir tres tipos de dispositivos NAS:&lt;br /&gt;
* Uno dedicado para las llamadas &lt;br /&gt;
* Uno dedicado para los segmentos &lt;br /&gt;
* Uno mixto para todas las llamadas y segmentos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El '''recordCentral''' se encarga de recoger todas las grabaciones de segmentos que tienen de estado proceso(3) en cada nodo gestionado, es decir, coger aquellos segmentos de llamadas marcados como llamadas disponibles, intenta descargar los segmentos de las llamadas y convertirlas al formato adecuado (MP3).&lt;br /&gt;
Como una característica particular cada diez minutos, siempre que no tenga ninguna otra tarea, intenta ver si puede establecer conexión con un nodo en cuarentena, para sacarlos de cuarentena y recoger todas las grabaciones de segmentos disponibles, para intentar convertir y descargar todas las grabaciones.  &lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando '''''nc ip_maquina 1114''''' en la maquina donde creamos que debe estar ejecutando el proceso recordCentral. Ejemplo:&lt;br /&gt;
 '''root@smadavacdrecord1:~# nc localhost 1114'''&lt;br /&gt;
 recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423 160112'&lt;br /&gt;
 recordCentral MYSQL cnx=1&lt;br /&gt;
 recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
 recordCentral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
 recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10'&lt;br /&gt;
La explicación de los campos se muestra en la tabla siguiente:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parámetro !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ver || Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/inic || Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/alarmas || Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ultAlar || Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
| MYSQL/cnx || Conectado (1) a MySQL&lt;br /&gt;
|-&lt;br /&gt;
| NAS/llamadas || Alojamiento en NAS de llamadas activo (grabación de llamada completa en un único archivo)&lt;br /&gt;
|-&lt;br /&gt;
| NAS/segmentos || Alojamiento en NAS de segmentos activo&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamNum || Llamadas procesadas&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamErr || Llamadas con error&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmNum || Segmentos procesados&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmErr || Segmentos con error&lt;br /&gt;
|-&lt;br /&gt;
| NODO/fase  || Número de proceso de recordCentral&lt;br /&gt;
|-&lt;br /&gt;
| NODO/cuarentena  || Lista de nodos en cuarentena, separada por comas&lt;br /&gt;
|-&lt;br /&gt;
| NODO/descarga || Lista de nodos en descarga, separada por comas&lt;br /&gt;
|-&lt;br /&gt;
| NODO/gestion || Lista de nodos gestionados, separada por comas (cuarentena + descarga = gestión)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/recordCentral.pconf'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:Se explican a continuación las variables más importantes del proceso RecordCentral:&lt;br /&gt;
&lt;br /&gt;
# Conexion de base de datos&lt;br /&gt;
$db='nimitz';&lt;br /&gt;
$dbHost = 'BDTR';&lt;br /&gt;
$dbPort = '3306';&lt;br /&gt;
$dbUsuario = 'nimitz';&lt;br /&gt;
$dbClave = 'ivivanimitz';&lt;br /&gt;
&lt;br /&gt;
# Configuracion de archivos con grabaciones (Orig en nodo)&lt;br /&gt;
$grabHay = 0;&lt;br /&gt;
$grabAudioCalidad = 32;&lt;br /&gt;
$grabAudioFormato = 'ogg';&lt;br /&gt;
$grabAudioExten = 'ogg';&lt;br /&gt;
$grabAudioCifrado = 0;&lt;br /&gt;
$grabRutaUsaTimestamp = 1;&lt;br /&gt;
$grabRutaOrig = '/var/lib/recordNodo/grabaciones';&lt;br /&gt;
$grabRutaTmp = '/var/lib/recordProcesad/grabTmp';&lt;br /&gt;
$grabRutaDest = '/var/lib/recordProcesad/grabRecord';&lt;br /&gt;
$grabRutaError = '/var/lib/recordProcesad/grabError';&lt;br /&gt;
$segmHay = 1;&lt;br /&gt;
$segmUmbralTiempo = 10;&lt;br /&gt;
$segmMargenTiempo = 5;&lt;br /&gt;
$segmAudioCalidad = 32;&lt;br /&gt;
$segmAudioFormato = 'ogg';&lt;br /&gt;
$segmAudioExten = 'ogg';&lt;br /&gt;
$segmAudioCifrado = 0;&lt;br /&gt;
$segmRutaUsaTimestamp = 1;&lt;br /&gt;
$segmRutaTmp = '/var/lib/recordProcesad/segmTmp';&lt;br /&gt;
$segmRutaDest = '/var/lib/recordProcesad/segmRecord';&lt;br /&gt;
$segmRutaError = '/var/lib/recordProcesad/segmError';&lt;br /&gt;
&lt;br /&gt;
# Seleccion de tipos de segmento a grabar separados por comas ('' = todos)&lt;br /&gt;
$tiposSegmentoGrabar = '';&lt;br /&gt;
&lt;br /&gt;
# Indica si se graba ring&lt;br /&gt;
$grabarRing = 0;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/recordCentral.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== recordNodo ====&lt;br /&gt;
Se considera como proceso con función de agente de grabación para un nodo. Solo debe existir uno por maquina o por nodo (configurado como grabador) en el '''portal de administración de ''VIVA''it'''.&lt;br /&gt;
&lt;br /&gt;
Para su funcionamiento utiliza un ''disco RAM''  por que su tiempo de acceso mejora drásticamente, debido a que la memoria RAM es varios órdenes de magnitud más rápida que las unidades de disco reales, haciendo que la velocidad de procesamiento de las grabaciones sea mucho mas rápida.&lt;br /&gt;
&lt;br /&gt;
Este ''disco RAM'' normalmente ocupa la mitad de la memoria RAM de una maquina pero no es obligatorio pues dependerá de la memoria disponible en cada maquina, y además, se configura con un tamaño no superior a 2GB de memoria RAM. Hay que tener especial cuidado en que no se llene en espacio  ni tampoco los i-nodos. Se puede  monitorizar a través de la aplicación '''zabbix'''.&lt;br /&gt;
&lt;br /&gt;
El '''''recordNodo''''' se encarga de recoger todas las grabaciones de segmentos que tienen de estado  ''proceso(2)'', es decir, aquellos segmentos de llamadas que han sido grabadas pero no están siendo procesadas, moviéndolas del ''disco RAM'' a su carpeta correspondiente.&lt;br /&gt;
&lt;br /&gt;
La forma de obtener la carpeta correspondiente es obteniendo el dato del campo D_HORA_INICIO en la tabla DAT_LLAMADAS para cada segmento,tras un tratamiento del campo creara la subruta correspondientes: /año/mes/dia/hora/min. Entonces, la ruta correcta seria /var/lib/recordNodo/grabaciones/año/mes/dia/hora/min, donde año, mes, dia , hora y min son los valores numéricos obtenidos del campo D_HORA_INICIO.&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando '''''nc ip_maquina 1113''''' en la maquina donde creamos que debe estar ejecutando el proceso recordNodo:&lt;br /&gt;
&lt;br /&gt;
 root@smadavgw5:~#nc localhost 1113&lt;br /&gt;
 recordNodo SIS ver='04.00.00' inic='20160326 105137' alarmas=2 ultAlar='20160326 105542'&lt;br /&gt;
 recordNodo MYSQL cnx=1&lt;br /&gt;
 recordNodo REC grabNum=0 grabErr=0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La explicación de los campos se muestra en la tabla siguiente:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parámetro  !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ver || Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/inic  || Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/amarmas || Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ultAlar || Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
| MYSQL/cnx || Conectado (1) a MySQL&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamNum || Llamadas procesadas&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamErr || Llamadas con error&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmNum || Segmentos procesados&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmErr || Segmentos con error&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/recordNodo.pconf'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:Se muestran a continuación las variables que son modificadas con mayor frecuencia:&lt;br /&gt;
# Conexion de base de datos&lt;br /&gt;
$db='nimitz';&lt;br /&gt;
$dbHost = 'BDTR';&lt;br /&gt;
$dbPort = '3306';&lt;br /&gt;
$dbUsuario = 'nimitz';&lt;br /&gt;
$dbClave = 'ivivanimitz';&lt;br /&gt;
&lt;br /&gt;
# Quien es mi nodo para filtrar grabaciones&lt;br /&gt;
$miNodo = 1;&lt;br /&gt;
&lt;br /&gt;
# Indica si se procesan segmentos de tipo tipoSegmEliminarGrabacion y patron eliminación&lt;br /&gt;
$segmEliminarGrabacionTrato = 1;&lt;br /&gt;
$patronEliminarGrabacion = '/etc/MDtel/null.bin';&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/recordNodo.log'''&lt;br /&gt;
&lt;br /&gt;
==== Vivait-CTI ====&lt;br /&gt;
Permite la comunicación entre la aplicación '''''VIVA'''''it Desk de agente y el asterisk, sincronizando; convierte el protocolo “asterisk manager” a CSTA ('''''VIVA'''''it Desk “habla” CSTA).&lt;br /&gt;
&lt;br /&gt;
Es un proceso importante para que el uso de '''''VIVA'''''it Desk, y que los agentes puedan realizar su operativa normal con la entrada y salida de llamadas… si bien el cursado telefónico de llamadas es factible, no disponer de las facilidades de '''''VIVA'''''it Desk y formularios hace el sistema difícilmente manejable&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando “nc ip_maquina 1111”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1111'''&lt;br /&gt;
 vivait-cti sis ver='V01.5' inic='20140414 104312' alarmas=13 ultAlar='20140415 173152'&lt;br /&gt;
 vivait-cti gmp msj=1018/1024 buf=1023/1024 tarea=97/102&lt;br /&gt;
 vivait-cti tmp uptime=694748 (8d 0h 59m 8s)&lt;br /&gt;
 vivait-cti cti numConx=(0/511) numPend=(0/127) numMakeCallPend=0 numCall=(0/2047)&lt;br /&gt;
 numChan=(0/4095) numAuxStr=(0/511) numMoniColas=(0/511) numMoniDevice=0&lt;br /&gt;
 numMoniCall=0 numMoniCallAuto=0 numMoniCallByDevice=0 numMoni=(0/511)&lt;br /&gt;
 auditCallErr=0 auditAuxStrErr=0 auditMsjReqErr=0 araChanID=0 araUniqueID=0 araMoni=0&lt;br /&gt;
 vivait-cti ami esta=conx resp=652(0) evs=1397(0) descar=556(0) err=16 errConx=16&lt;br /&gt;
 numAct(0/0/127) auditErrAct=0&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!ver!!Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|sis/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|Sis/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|Sis/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/msj||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/buf||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/tarea||&lt;br /&gt;
|-&lt;br /&gt;
|Tmp/uptime||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numConx||Número de conexiones actuales / Número de conexiones máximo&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numPend||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMakeCallPend||Llamadas pendientes de realizar&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numcall||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numChan||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numAuxStr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniColas||Número de colas monitorizadas&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniDevice||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniCall||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniCallAuto||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniCallByDevice||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoni||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/auditCallErr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/auditAuxStrErr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ auditMsjReqErr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ araChanID||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ araUniqueID||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ araMoni||&lt;br /&gt;
|-&lt;br /&gt;
|Ami/esta||Estado de conexión contra manarger de asterisk&lt;br /&gt;
|-&lt;br /&gt;
|Ami/resp||&lt;br /&gt;
|-&lt;br /&gt;
|Ami/evs||Número de eventos (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
||Ami/descar&lt;br /&gt;
|-&lt;br /&gt;
|Ami/err||Errores&lt;br /&gt;
|-&lt;br /&gt;
|Ami/errConx||Errores de conexión&lt;br /&gt;
|-&lt;br /&gt;
|Ami/numAct||&lt;br /&gt;
|-&lt;br /&gt;
|Ami/auditErrAct||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/vivait-cti.conf'''&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/vivait-cti.conf'''&lt;br /&gt;
&lt;br /&gt;
==== Phoneprov-TFTP ====&lt;br /&gt;
&lt;br /&gt;
==== Introducción al aprovisionamiento ====&lt;br /&gt;
&lt;br /&gt;
En cada Centralita Telefónica existente, se puede configurar sus teléfonos IP y asignarles extensiones a cada teléfono. Para hacer un ''aprovisionamiento'' de los teléfonos es necesario que el técnico configure uno a uno manualmente utilizando su interfaz web, esto no es práctico, ya que genera muchos errores y el tiempo de implementación se incrementa drásticamente. Además, es casi imposible la administración cotidiana de los teléfonos IP. Desde '''MD'''tel se utiliza una herramienta que permite que los teléfonos IP soportados y homologados por '''MD'''tel ([[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_3.0#Terminales_telef.C3.B3nicos ver Terminales telefónicos]]) se puedan aprovisionar automáticamente, brindando una fácil implementación y administración cotidiana. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== ¿Qué es aprovisionar? =====&lt;br /&gt;
&lt;br /&gt;
Aprovisionar un teléfono es el proceso de configuración automático de teléfonos IP para su uso con una Centralita Telefónica de forma remota. Una vez que aprovisione un teléfono, el teléfono automáticamente se configurará correctamente y podrá administrar los teléfonos de forma centralizada y remota,  sin tener que iniciar sesión en la interfaz web de cada uno de los teléfonos. &lt;br /&gt;
&lt;br /&gt;
El aprovisionamiento de teléfono facilita enormemente la administración cotidiana de los teléfonos IP. Esto hace que sea fácil de cambiar las contraseñas de extensión,realizar desvíos de llamadas, nombre a mostrar, mensajería y demás configuraciones, ya que puede hacerlo de forma centralizada para todos los teléfonos desde el portal de administración y luego transferir los cambios al teléfono. &lt;br /&gt;
&lt;br /&gt;
===== TFTP =====&lt;br /&gt;
&lt;br /&gt;
'''TFTP''' son las siglas de '''T'''rivial '''F'''ile '''T'''ransfer '''P'''rotocol ''(Protocolo de transferencia de archivos trivial)''. &lt;br /&gt;
&lt;br /&gt;
Es un protocolo de transferencia muy simple semejante a una versión básica de FTP. TFTP a menudo se utiliza para transferir pequeños archivos entre terminales en una red. &lt;br /&gt;
&lt;br /&gt;
Algunos detalles del TFTP: &lt;br /&gt;
&lt;br /&gt;
* Utiliza UDP (puerto 69) como protocolo de transporte (a diferencia de FTP que utiliza los &lt;br /&gt;
puertos 20 y 21 TCP). &lt;br /&gt;
* No puede listar el contenido de los directorios. &lt;br /&gt;
* No existen mecanismos de autenticación o cifrado. &lt;br /&gt;
* Se utiliza para leer o escribir archivos de un servidor remoto. &lt;br /&gt;
* Soporta tres modos diferentes de transferencia, &amp;quot;netascii&amp;quot;, &amp;quot;octet&amp;quot; y &amp;quot;mail”.&lt;br /&gt;
&lt;br /&gt;
===== Funcionamiento del servidor phoneprove-TFTP =====&lt;br /&gt;
&lt;br /&gt;
A continuación se muestra un esquema que facilita el entendimiento del funcionamiento del servidor phoneprove-TFTP:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Funcionamiento_Servidor.png‎ |center]]&lt;br /&gt;
&lt;br /&gt;
El servidor Phoneprove-TFTP se ''encarga del aprovisionamiento masivo de terminales'', es de gran utilidad porque cualquier cambio en los teléfonos pueden ser realizados a nivel DHCP y todos los teléfonos tomarán la nueva configuración luego de reiniciarlos. &lt;br /&gt;
&lt;br /&gt;
Desde phoneprove-TFTP se generara los archivos necesarios para cada teléfono y que sirven para ser aprovisionados automáticamente. &lt;br /&gt;
El servidor phoneprove-TFTP  tiene alojados los ficheros de configuración están ordenados según las direcciones MAC de los teléfonos. El teléfono “preguntará” al servidor cual es su fichero de configuración utilizando su dirección MAC. Este a través de su MAC , consulta en la base de datos para ofrecer al terminal los datos de configuración según su plantilla, cual sera su extensión , cual sera el usuario propietario, entre otras cosas.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
  '''Nota:''' En instalaciones grandes habrá más de uno, quizás uno por sede grande; depende de la infraestructura de DHCP.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Parámetros necesarios de Aprovisionamiento de Teléfonos =====&lt;br /&gt;
&lt;br /&gt;
 '''Notas:''' el aprovisionamiento desarrollador por '''MD'''tel, no emplea un fichero por cada &lt;br /&gt;
 teléfono, sino que emplea una plantilla por cada modelo de teléfono.&lt;br /&gt;
 Debe haber una '''configuración previa del servidor DHCP''' es necesario coordinar con el cliente la asignación de direcciones para &lt;br /&gt;
 los diferentes elementos de la plataforma '''''VIVA'''''it, fundamentalmente para terminales telefónicos; en este caso además será necesario &lt;br /&gt;
 activar la opción 66 que permitirá definir el servidor TFTP del que los terminales cogerán sus ficheros de aprovisionamiento.&lt;br /&gt;
 El aprovisionamiento desde el portal de administración solo es posible para aquellos teléfonos IP homologados y probados desde '''MD'''tel   &lt;br /&gt;
 [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_3.0#Terminales_telef.C3.B3nicos ver Terminales  telefónicos]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como existen parámetros comunes de todos los teléfonos de la misma marca de fabricante, muchos de los parámetros necesarios para el aprovisionamiento  como comentamos se han generado desde MDtel en forma de plantillas, que estarán disponibles en el portal de administración VIVAit [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Plantillas | ver plantilla del portal de administración VIVAit]]. &lt;br /&gt;
&lt;br /&gt;
La configuración de un teléfono SIP es muy sencilla y en no es necesario tener conocimientos avanzados de informática o de telefonía. Cada una de estas plantillas que sirven para aprovisionar un teléfono IP homologado, algunos de los parámetros predeterminados se explicarán a continuación .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== Parámetros de Aprovisionamiento globales ======&lt;br /&gt;
&lt;br /&gt;
* Configuración de la red y MAC. &lt;br /&gt;
* Zona horaria. &lt;br /&gt;
&lt;br /&gt;
====== Parámetros de Aprovisionamiento Personales ======&lt;br /&gt;
&lt;br /&gt;
Además de los parámetros de aprovisionamiento globales, el teléfono también obtendrá información de configuración individual, tales como: &lt;br /&gt;
&lt;br /&gt;
*Número de Extensión.&lt;br /&gt;
*Nombre y Contraseña de usuario SIP. &lt;br /&gt;
*Configuración de Teclas BLF.&lt;br /&gt;
*Contraseña de la Interfaz Web del Teléfono IP.&lt;br /&gt;
*Idioma de la Pantalla.&lt;br /&gt;
*Orden de Preferencia de los Codecs.&lt;br /&gt;
&lt;br /&gt;
===== Aprovisionamiento de teléfonos nivel usuario =====&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
  '''Notas:''' La dirección MAC debe estar especificada en letras mayúsculas.&lt;br /&gt;
  La dirección MAC del teléfono se puede encontrar en la etiqueta adhesiva en la parte inferior del teléfono, o de lo contrario se deberá acceder desde&lt;br /&gt;
  el menú del propio terminal.   &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Los pasos a seguir son los siguientes: &lt;br /&gt;
&lt;br /&gt;
'''1)''' Dar de alta el teléfono en el portal de administración, se debe seleccionar el modelo del teléfono, e indicar la dirección MAC del teléfono a aprovisionar, todo ello desde el portal de administración VIVAit. &lt;br /&gt;
Para mas información ver [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Aprovisionamiento del portal de administracion| aprovisionamiento del portal de administración VIVAit]]. &lt;br /&gt;
&lt;br /&gt;
'''2)''' En el mismo portal de administración se deberá crear una extensión , asignar a la extensión el teléfono que se quiera aprovisionar, elegir la plantilla adecuada del teléfono y el usuario propietario (solo si sera un puesto fijo) desde [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Extensiones | extensiones del portal de administración]]. &lt;br /&gt;
&lt;br /&gt;
'''3)''' Conectar el teléfono a la red LAN informática (conectarlo al router o switch) para que tenga acceso a Internet:&lt;br /&gt;
&lt;br /&gt;
:*El teléfono enviará un mensaje de multidifusión a través de la LAN. &lt;br /&gt;
:*Este será captado por la Central Telefónica siempre que esté en la misma LAN. &lt;br /&gt;
:*Al teléfono se le enviará una URL de aprovisionamiento. &lt;br /&gt;
&lt;br /&gt;
'''4)''' Como la mayoría de teléfonos IP del mercado al arrancar una vez sabiendo la URL de aprovisionamiento piden una serie de archivos de configuración para aprovisionarse vía TFTP. EL servidor phoneprove-TFTP, detectara la petición y a través de la MAC y datos del usuario, consultará en la base de datos los datos necesarios para aprovisionar al teléfono y si todo funciona correctamente mandara al teléfono IP los datos de configuración necesarios para funcionar. &lt;br /&gt;
&lt;br /&gt;
'''5)''' Asegúrese de que el teléfono encuentren el servidor TFTP, para ello esperar un tiempo adecuado para que termine el aprovisionamiento. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''6)''' Finalmente aparecerá  como registrado en la centralita, obtendrá una dirección IP y podra funcionar según la configuración establecida.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
  '''Nota''': Si no se reaprovisiona tras un periodo largo de tiempo, desenchufe el cable de alimentación eléctrica &amp;lt;br /&amp;gt; o el cable Ethernet (si se utiliza la alimentación en línea PoE) para reiniciar los teléfonos. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Aprovisionamiento de teléfonos nivel técnico =====&lt;br /&gt;
&lt;br /&gt;
====== Plantilla de configuración ======&lt;br /&gt;
&lt;br /&gt;
La plantilla de configuración empleadas en el apartado  [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Plantillas | plantilla del portal de administración VIVAit]] de cada modelo está formada por una serie de variables. &lt;br /&gt;
&lt;br /&gt;
Los valores se obtienen de la tabla de la base de datos CEN_TELEFONOS, CEN_USUARIOS, ACD_EXTENSIONES, ACD_NODOS, COM_NODOS... correspondientes a la extensión del teléfono, usuario, nodo, etc. &lt;br /&gt;
&lt;br /&gt;
 variable ${NODO1_C_NOMBRE}='corp-ast13'&lt;br /&gt;
 variable ${EXTEN_C_CLAVE_REGISTRO}='Tel21002'&lt;br /&gt;
 variable ${USU_C_CODIGO_POSTAL}=''28034'&lt;br /&gt;
 variable ${SEDE_C_CODIGO_POSTAL}='28034' &lt;br /&gt;
 variable ${USU_C_NOMBRE}='Juan Antonio'&lt;br /&gt;
 variable ${USU_C_APELLIDO2}='Ramirez'&lt;br /&gt;
 variable ${SEDE_C_NOMBRE}='RED_LAB'&lt;br /&gt;
 variable ${NODO2_C_NOMBRE}= NULL&lt;br /&gt;
 variable ${EXTEN_C_NOMBRE}='' 21002&lt;br /&gt;
 variable ${USU_C_LOCALIDAD}='' &lt;br /&gt;
 variable ${USU_C_NOMBRE_MOSTRAR}='Juan' &lt;br /&gt;
 variable ${NODO1_C_IP}='175.25.129.70' &lt;br /&gt;
 variable ${MODEL_C_PREFIJO_PLANTILLA_MAC}='T28P' &lt;br /&gt;
 variable ${SEDE_C_LOCALIDAD}='Madrid' &lt;br /&gt;
 variable ${USU_C_APELLIDO1}='Casas' &lt;br /&gt;
 variable ${NODO2_C_IP}= NULL&lt;br /&gt;
 variable ${TF_ID_EXTENSION}='5' &lt;br /&gt;
 cargando campos idExten=5&lt;br /&gt;
&lt;br /&gt;
====== Ficheros y paquetes necesarios ======&lt;br /&gt;
&lt;br /&gt;
'''Paquetes previos:''' libnet-tftpd-perl, tftp-hpa, libnet-address-ip-local-perl &lt;br /&gt;
'''Usuario de funcionamiento:''' root &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
   '''Nota:'''  los archivos y directorios que generemos podrian necesitar que se permitiera el acceso al archivo de lectura &amp;lt;br/&amp;gt; y escritura en el servidor TFTP.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Archivos necesarios:''' &lt;br /&gt;
&lt;br /&gt;
 /usr/local/sbin/phoneprov-tftp.pl &lt;br /&gt;
 /usr/local/sbin/phoneprov-tftp.pm&lt;br /&gt;
 /etc/MDtel/phoneprov-tftp.pconf &lt;br /&gt;
 /etc/init/phoneprov-tftp.conf &lt;br /&gt;
 /etc/logrotate.d/phoneprov-tftp &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Directorios a crear:''' &lt;br /&gt;
&lt;br /&gt;
 /var/lib/phoneprov-tftp/plt &lt;br /&gt;
 /var/lib/phoneprov-tftp/bin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Watchdog ====&lt;br /&gt;
&lt;br /&gt;
Se trata de una aplicación del astrisk que monitoriza el SIP y en caso de fallo, pasado un cierto tiempo, reinicia el asterisk y genera un core.&lt;br /&gt;
Si escribimos en CLI de asterisk perro tenemos los siguientes comandos:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Activar||Activar el Watchdog&lt;br /&gt;
|-&lt;br /&gt;
|Desactivar||Desactiva el Watchdog&lt;br /&gt;
|-&lt;br /&gt;
|Parada||Reinicia el asterisk y genera un core para pruebas&lt;br /&gt;
|-&lt;br /&gt;
|Reload||Realiza una recarga del Watchdog y aplica cambios en su configuración&lt;br /&gt;
|-&lt;br /&gt;
|Show||Ver el estado del Watchdog&lt;br /&gt;
&lt;br /&gt;
perro avisado=0 activo=1 segsDormir=1 segsInic=60 segsGuarda=30 maxErr=3&lt;br /&gt;
perro        nombre=sip_monitor_udp lwp=[15437] segsInic=60 segsGuarda=30 hace=11 err=0/5&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El dato &amp;quot;hace&amp;quot; informa de cuanto tiempo ha transcurrido desde el último tick. Facilita la calibración del parámetro de configuración &amp;quot;segs_guarda&amp;quot;, normalmente es 30&lt;br /&gt;
&lt;br /&gt;
Tiene un fichero de configuración ubicado en /etc/asterisk/MDcrash.conf&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Sección [perro]&lt;br /&gt;
||activo=yes (Si esta o no activo)&lt;br /&gt;
segs_dormir=1 (Un tick por segundo)&lt;br /&gt;
&lt;br /&gt;
segs_inic=60&lt;br /&gt;
&lt;br /&gt;
segs_guarda=30 &lt;br /&gt;
&lt;br /&gt;
max_errores=3  &lt;br /&gt;
|-&lt;br /&gt;
|Sección [sip_monitor_udp]&lt;br /&gt;
||segs_inic=60&lt;br /&gt;
&lt;br /&gt;
segs_guarda=30 (Cada 30 segundos si no reciba trafico SIP genera core)&lt;br /&gt;
&lt;br /&gt;
max_errores=5 (Número máximo de errores)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Proceso de Backup ====&lt;br /&gt;
Las plataformas '''''VIVA'''''it Call y '''''VIVA'''''it Suite incluyen un script para realizar un proceso de backup.&lt;br /&gt;
&lt;br /&gt;
Se utilizará el script '''backup.sh''', que se encuentra en el directorio '''etc/MDTel'''.&lt;br /&gt;
&lt;br /&gt;
Se ejecuta automaticamente mediante el uso de un cron&lt;br /&gt;
&lt;br /&gt;
'''texto del cron:'''&lt;br /&gt;
&lt;br /&gt;
 SHELL=/bin/sh&lt;br /&gt;
 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin&lt;br /&gt;
 # m h dom mon dow user command&lt;br /&gt;
 0 2 * * * root  /etc/MDtel/backup.sh /etc/MDtel/backup.cfg&lt;br /&gt;
&lt;br /&gt;
Para activar el script hay que descomentar la línea&lt;br /&gt;
 # m h dom mon dow user command&lt;br /&gt;
&lt;br /&gt;
Los directorios de los que se hace copia son:&lt;br /&gt;
* DIR=var/lib/asterisk/sounds/Particular&lt;br /&gt;
* DIR=var/lib/asterisk/moh&lt;br /&gt;
* DIR=etc&lt;br /&gt;
* DIR=etc/asterisk&lt;br /&gt;
* DIR=etc/cron.d&lt;br /&gt;
* DIR=etc/dahdi&lt;br /&gt;
* DIR=etc/exim4&lt;br /&gt;
* DIR=etc/ha.d&lt;br /&gt;
* DIR=etc/logrotate.d&lt;br /&gt;
* DIR=etc/MDtel&lt;br /&gt;
* DIR=etc/mysql&lt;br /&gt;
* DIR=etc/network&lt;br /&gt;
* DIR=etc/zabbix&lt;br /&gt;
* DIR=usr/local/sbin&lt;br /&gt;
&lt;br /&gt;
Por defecto se realiza un backup cada dos horas en la carpeta '''/usr/local/sbin'''.&lt;br /&gt;
&lt;br /&gt;
El fichero ''' backup.cfg''' que se genera incluye copia de la siguiente información:&lt;br /&gt;
* Ficheros de configuración de la aplicación.&lt;br /&gt;
* Base de Datos.&lt;br /&gt;
* Dialplan.&lt;br /&gt;
&lt;br /&gt;
Se guardarán 10 copias del fichero ''' backup.cfg '''&lt;br /&gt;
&lt;br /&gt;
Para recuperar una plataforma utilizando el backup, habrá que instalar una máquina nueva y cargar los ficheros de configuración, Base de Datos y Dialplan guardados en el proceso de backup.&lt;br /&gt;
&lt;br /&gt;
=== Requerimientos de conectividad ===&lt;br /&gt;
&lt;br /&gt;
El esquema siguiente muestra como ejemplo todos los flujos de información existentes en un entorno típico de &amp;lt;big&amp;gt;'''telefonía corporativa (sin presencia)'''&amp;lt;/big&amp;gt; ('''''VIVA'''''it Call)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Flujos corporativa.png|cebter]]&lt;br /&gt;
&lt;br /&gt;
En el entorno de &amp;lt;big&amp;gt;'''Contact Center'''&amp;lt;/big&amp;gt;, encontramos los siguientes flujos &amp;lt;big&amp;gt;'''entre servicios'''&amp;lt;/big&amp;gt; (comunicaciones entre servidores, ('''''VIVA'''''it Suite)) &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Flujos Contact servicios.png|650px|center]]&lt;br /&gt;
&lt;br /&gt;
y &amp;lt;big&amp;gt;'''entre usuarios y servicios'''&amp;lt;/big&amp;gt; los reflejados a continuación:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Flujos Contact puestos.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Lado A!!Lado B!!Puertos!!Sentido!!Observ.&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor||TCP 5060||A -&amp;gt; B||Señalización SIP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor||UDP 5060||A -&amp;gt; B||Señalización SIP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor||10000 a 20000||A -&amp;gt; B&lt;br /&gt;
B -&amp;gt; A&lt;br /&gt;
||RTP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor TFTP||UDP 69||A -&amp;gt; B&lt;br /&gt;
B -&amp;gt; A&lt;br /&gt;
||Para actualización de terminales por TFTP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor NTP||UDP 123||A -&amp;gt; B||&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Desk||Servidor||TCP 4500||A -&amp;gt; B||Comunicación CTI&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Desk||Servidor||TCP 3306||A -&amp;gt; B||Acceso a Mysql Base de datos&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Desk||Servidor Syslog||UDP 514||A -&amp;gt; B||Para envio de logs de agente&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Supervisor||Servidor||TCP 3306||A -&amp;gt; B||Acceso a Mysql Base de datos&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker||Servidor||TCP 3306||A -&amp;gt; B||Acceso a Mysql Base de datos&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker||Servidor||TCP 8180||A -&amp;gt; B||&lt;br /&gt;
|-&lt;br /&gt;
|Actualizador||Servidor||TCP 80||A -&amp;gt; B||Necesario para actualizaciones de versiones de aplicaciones de agente y supervisores&lt;br /&gt;
|-&lt;br /&gt;
|Portal de administración||Servidor||TCP 8180||A -&amp;gt; B||Acceso al portal de administración '''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker Web||Servidor||TCP 8180||A -&amp;gt; B||&lt;br /&gt;
|-&lt;br /&gt;
|Monitor||Servidor||TCP 8180||A -&amp;gt; B||Wallboard&lt;br /&gt;
|-&lt;br /&gt;
|Monitorización||Servidor||TCP 80||A -&amp;gt; B||Acceso a portal monitorización (Zabbix)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Gateways ===&lt;br /&gt;
El concepto de gateway como tal no existe en la plataforma '''''VIVA'''''it; existen nodos de ACD y nodos de corporativa.&lt;br /&gt;
&lt;br /&gt;
A efectos de operación un nodo de corporativa es el que en cualquier caso asumirá las funcionalidades de gateway, y recibirá las conexiones (analógicas, digitales o IP) a sistemas externos o a la RTC&lt;br /&gt;
&lt;br /&gt;
El concepto gateway queda pues suscrito a entornos meramente comerciales&lt;br /&gt;
&lt;br /&gt;
Incluimos no obstante en este apartado los diagnósticos y operaciones básicos de conexiones a sistemas externos o RTC&lt;br /&gt;
&lt;br /&gt;
Para verificar los enlaces establecidos ejecutamos el siguiente comando en el terminal: '''sip show peers''' &lt;br /&gt;
&lt;br /&gt;
Al ejecutar este comando obtenemos la salida:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Enlace_Exterior.png |center]]&lt;br /&gt;
&lt;br /&gt;
Las columnas ''Host'' y ''Port'' nos muestran las conexiones establecidas y nos informa de un posible problema de conexión. &lt;br /&gt;
&lt;br /&gt;
Sabremos que ''no existe conexión'' cuando la columna Host tiene el valor '''Unspecified''' y en la columna Port aparece un '''0''' , a continuación se muestra un ejemplo:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ejemplo_no_conexion.png |center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#00FF00&amp;quot;&amp;gt;FALTA AQUI DIAGNOSTICOS Y OPERACIONES DE ENLACES EXTERNOS&amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Servidor de grabación === &lt;br /&gt;
==== Almacenamiento en la nube ====&lt;br /&gt;
Almacenamiento en la nube.&lt;br /&gt;
Existe la posibilidad de que tras un determinado periodo de tiempo las grabaciones sean movidas a un almacenamiento externo. De esta operativa se encarga el proceso /usr/local/sbin/mueveGrabaciones.pl que recibe como parámetro la ruta al archivo de configuración. Dicho archivo tiene los siguientes elementos:&lt;br /&gt;
&lt;br /&gt;
*$db: Nombre de la base de datos.&lt;br /&gt;
*$dbHost: servidor de MySQL&lt;br /&gt;
*$dbPort: Puerto del MySQL.&lt;br /&gt;
*$dbUsuario: Usuario de conexión a MySQL.&lt;br /&gt;
*$dbClave: Clave del usuario anterior.&lt;br /&gt;
*$dirBase: Directorio donde residen las grabaciones&lt;br /&gt;
*$diasCaducidad: Dias de antigüedad para mover las grabaciones&lt;br /&gt;
*$sftpHost: Servidor SFTP de destino&lt;br /&gt;
*$sftpPort: Puerto SFTP.&lt;br /&gt;
*$sftpUsuario: Usuario SFTP.&lt;br /&gt;
*$sftpClave: Clave del usuario SFTP.&lt;br /&gt;
*$simula: Si este campo vale 1, las grabaciones se copian, pero no se borran del directorio original, ni se actualiza su ubicación en la base de datos.&lt;br /&gt;
&lt;br /&gt;
La grabación indica donde se encuentra mediante el campo E_UBICACION_GRABACION, que puede tener los siguientes valores:&lt;br /&gt;
*Sin definir (0)&lt;br /&gt;
*En línea (10): Las grabaciones se encuentran en el servidor de grabaciones.&lt;br /&gt;
*Fuera de línea (20): las grabaciones se encuentran en una ubicación externa.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Reporting ===&lt;br /&gt;
La aplicación de reporting en general no tiene procesos habituales de operación y mantenimiento.&lt;br /&gt;
Los informes son obtenidos desde la interfaz gráfica o mediante un procedimiento de scripting, descritos en “Formato de fichero de intercambio para '''''VIVA'''''it Reporting”.&lt;br /&gt;
&lt;br /&gt;
==== Formato de fichero de intercambio para '''''VIVA'''''it Reporting ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Nombre !! Descripción !! Ejemplo&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;| Selección de registros&lt;br /&gt;
|-&lt;br /&gt;
| SQL_selec || Expresión SQL que se añadirá al where a la SQL principal. || C_ORIGEN like '6%' and C_COD_CLIENTE= '023'&lt;br /&gt;
|-&lt;br /&gt;
| SQL_select_leido || Filtro de selección legible&lt;br /&gt;
 || Skill igual a 60310&lt;br /&gt;
|-&lt;br /&gt;
| SQL_orden || Lista de campos por los que se ordenará, después de los que estén ya definidos en la plantilla. || C_ORIGEN, C_COD_CLIENTE&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Salida&lt;br /&gt;
|-&lt;br /&gt;
| FIC_extension || Extensión de fichero de salida: PDF, XLSX, CSV || PDF&lt;br /&gt;
|-&lt;br /&gt;
| FIC_tipo_entrega || 'P': Pantalla, 'D': Directorio, 'C': Correo || D&lt;br /&gt;
|-&lt;br /&gt;
| FIC_destino || Si 'C', dirección de correo, si 'D', ruta del directorio || D:\informes\&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Plantilla&lt;br /&gt;
|-&lt;br /&gt;
| INF_modelo || Ruta del fichero de plantilla || C:\Modelos\llamadas.rep&lt;br /&gt;
|-&lt;br /&gt;
| INF_descripción || Descripción del informe || Informe detallado de llamadas&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Base de datos&lt;br /&gt;
|-&lt;br /&gt;
| BD_ip || IP o nombre de máquina || &lt;br /&gt;
|-&lt;br /&gt;
| BD_puerto || Puerto de MySQL || &lt;br /&gt;
|-&lt;br /&gt;
| BD_base_datos || Nombre de base de datos || &lt;br /&gt;
|-&lt;br /&gt;
| BD_usuario || Usuario de base de datos || &lt;br /&gt;
|-&lt;br /&gt;
| BD_clave || Clave de acceso cifrada || &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Parámetros&lt;br /&gt;
|-&lt;br /&gt;
| PAR_desde_vis || Fecha inicial de selección en formato legible (o '-' si no hay) || 01/01/2016&lt;br /&gt;
|-&lt;br /&gt;
| PAR_hasta_vis || Fecha final de selección en formato legible (o '-' si no hay) || 31/01/2016&lt;br /&gt;
|-&lt;br /&gt;
| PAR_01 || Parámetro opcional || &lt;br /&gt;
|-&lt;br /&gt;
| .. || .. || &lt;br /&gt;
|-&lt;br /&gt;
| PAR_20 || Parámetro opcional || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El fichero tendrá un nombre único para permitir la generación simultánea de informes.&lt;br /&gt;
El fichero es borrado por la aplicación de forma automática.&lt;br /&gt;
Se pasa a la aplicación de generación de informes como parámetro. Por ejemplo:&lt;br /&gt;
 “C:\Archivos de Programa\MDtel\Nimitz\LanzaInformes\LanzaInformes.exe”&lt;br /&gt;
 “C:\Archivos de Programa\MDtel\Nimitz\LanzaInformes\NIM00001.tmp”&lt;br /&gt;
&lt;br /&gt;
Ejemplo de fichero:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| SQL_selec=(DAT_ACUMULADOS_COLAS.ID_COLA in (11))&lt;br /&gt;
&lt;br /&gt;
SQL_select_leido=Skill igual a 60310&lt;br /&gt;
&lt;br /&gt;
SQL_orden=&lt;br /&gt;
FIC_extension=pdf&lt;br /&gt;
&lt;br /&gt;
FIC_tipo_entrega=P&lt;br /&gt;
&lt;br /&gt;
FIC_destino=C:\&lt;br /&gt;
&lt;br /&gt;
INF_modelo=skill_setsi.rep&lt;br /&gt;
&lt;br /&gt;
INF_descripcion=Skill. SETSI&lt;br /&gt;
&lt;br /&gt;
BD_ip=172.25.1.2&lt;br /&gt;
&lt;br /&gt;
BD_puerto=3306&lt;br /&gt;
&lt;br /&gt;
BD_base_datos=nimitz&lt;br /&gt;
&lt;br /&gt;
BD_usuario=nimitz&lt;br /&gt;
&lt;br /&gt;
BD_clave=UIk5jNY9PVX5ogg=&lt;br /&gt;
&lt;br /&gt;
PAR_desde_vis=-&lt;br /&gt;
&lt;br /&gt;
PAR_hasta_vis=-&lt;br /&gt;
&lt;br /&gt;
PAR_01=&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Resumen de significado de columnas en reporting histórico ====&lt;br /&gt;
Esta información se puede consultar en el siguiente enlace:&lt;br /&gt;
&lt;br /&gt;
http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Documentacion_de_usuario_VIVAit_Suite_3.3#Resumen_del_valor_de_las_columnas_que_aparecen_en_los_informes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===== Agente,asistencia diaria y agente. Asistencia diaria del grupo =====&lt;br /&gt;
&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo de llamado:''' Tiempo de ring en llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo disponible:''' Tiempo que el agente estuvo conectado y no está&lt;br /&gt;
incluido en ninguno de los anteriores.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas transferidas:''' Número de llamadas ACD que fueron&lt;br /&gt;
transferidas por el agente.&lt;br /&gt;
&lt;br /&gt;
===== Agente. Aux y Grupo Aux =====&lt;br /&gt;
&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Desglose de tiempos AUX:''' Tiempo que el agente estuvo en cada uno&lt;br /&gt;
de los motivos de pausa.&lt;br /&gt;
&lt;br /&gt;
===== Agente. Resumen diario =====&lt;br /&gt;
&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo de llamado:''' Tiempo de ring en llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo disponible:''' Tiempo que el agente estuvo conectado y no está&lt;br /&gt;
incluido en ninguno de los anteriores.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas entrada Ext:''' Número de llamadas entrantes NO ACD a la&lt;br /&gt;
extensión.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas salida Ext:''' Número de llamadas salientes NO ACD desde la&lt;br /&gt;
extensión.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas transferidas:''' Número de llamadas ACD que fueron&lt;br /&gt;
transferidas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas retenidas:''' Número de retenciones que sufrieron las&lt;br /&gt;
llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACD:''' Tiempo ACD/ Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACW:''' TiempoACW/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio de entrada a la Ext:''' Tiempo entrada Ext/&lt;br /&gt;
Llamadas entrada Ext.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio de salida a la Ext:''' Tiempo salida Ext/ Llamadas&lt;br /&gt;
salida Ext.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio retención:''' Tiempo retención/Llamadas retenidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % Ocupación con ACW:''' ((Tiempo ACD+ Tiempo retención+ Tiempo&lt;br /&gt;
ACW)/Tiempo con personal)* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % Ocupación sin ACW:''' ((Tiempo ACD+ Tiempo retención)/Tiempo&lt;br /&gt;
con personal)* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % disp.:''' (Tiempo disponible/Tiempo conectado)* 100.&lt;br /&gt;
&lt;br /&gt;
===== Agente. Grupo ACD diario =====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención de un grupo&lt;br /&gt;
ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Ayuda:''' Número de llamadas contestadas por el agente que necesitaron&lt;br /&gt;
de consulta de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas retenidas:''' Número de retenciones que el agente realizó&lt;br /&gt;
sobre las llamadas de ese grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas por&lt;br /&gt;
el agente en ese grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Trans. salida:''' Llamadas que finalizan con una transferencia.&lt;br /&gt;
&lt;br /&gt;
===== Grupo ACD. Reporte diario con AHT =====&lt;br /&gt;
&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACD:''' Tiempo ACD/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACW:''' Tiempo ACW/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención de un grupo&lt;br /&gt;
ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente de un grupo ACD.&lt;br /&gt;
'''• Tiempo de llamado:''' Tiempo de ring en llamadas ACD de un grupo&lt;br /&gt;
ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo disponible:''' Tiempo que el agente estuvo conectado y no está&lt;br /&gt;
incluido en ninguno de los anteriores.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Ayuda:''' Número de llamadas ACD contestadas por el agente en las que&lt;br /&gt;
necesito hacer uso de la consulta.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas retenidas:''' Número de retenciones que el agente realizó&lt;br /&gt;
sobre las llamadas ACD contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas contestadas ACD&lt;br /&gt;
estuvieron retenidas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Trans. salida:''' Número de llamadas ACD que fueron transferidas por el&lt;br /&gt;
agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• AHT:''' (Tiempo ACD+ Tiempo ACW+ Tiempo retención)/Llamadas&lt;br /&gt;
ACD.(Average Handle Time)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Grupo ACD. QOS  =====&lt;br /&gt;
&lt;br /&gt;
'''• Vel. prom. de resp.:''' Tiempo total de espera de llamadas antes de ser&lt;br /&gt;
atendidas/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo prom. de aban.:''' Tiempo abandonadas(tiempo que las&lt;br /&gt;
llamadas abandonadas estuvieron en el grupo ACD)/Llamadas&lt;br /&gt;
abandonadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ofrecidas:''' Número de llamadas entrantes al grupo&lt;br /&gt;
ACD(Llamadas ACD+ Abandonadas+ Desbordadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas contestadas por los agentes.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas abandonadas:''' Número de llamadas colgadas por el cliente&lt;br /&gt;
en el grupo ACD antes de ser contestadas o desbordadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Desconectadas por ACD:''' Número de llamadas desbordadas que al&lt;br /&gt;
salir del grupo ACD se cuelgan.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Desbordadas por ACD:''' Número total de llamadas desbordadas(incluye&lt;br /&gt;
las desconectadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas atendidas en &amp;lt; 20s:'''Número de llamadas contestadas con&lt;br /&gt;
tiempo de respuesta menor a 20 segundos.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo total de espera:''' Tiempo total que las llamadas estuvieron&lt;br /&gt;
esperando antes de ser atendidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % N.A.:''' Llamadas ACD/(Llamadas ACD+ Llamadas abandonadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % N.D.S.:''' (Llamadas atendidas en &amp;lt; 20s/Llamadas ofrecidas)* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• T.M.O:''' (Tiempo ACD+ Tiempo ACW+ Tiempo retención)/Llamadas&lt;br /&gt;
ACD.(Tiempo Medio Operación)&lt;br /&gt;
&lt;br /&gt;
===== Informe conducción (VDN Conducción) =====&lt;br /&gt;
&lt;br /&gt;
'''•Entrantes al grupo ACD:''' Número de llamadas ofrecidas al grupo&lt;br /&gt;
ACD(Contestadas+ Abandonadas+ Desbordadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Llamadas contestadas:''' Número de llamadas contestadas por un agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Contestadas NDS:''' Número de llamadas contestadas en nivel de servicio,&lt;br /&gt;
tiempo de respuesta&amp;lt; 20 segundos.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Abandonadas:''' Número de llamadas abandonadas, colgadas por el cliente&lt;br /&gt;
antes de ser contestadas por un agente o desbordadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Desconectadas:''' Número de llamadas desbordadas que fueron colgadas al&lt;br /&gt;
salir del grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Desbordadas:''' Número total de llamadas desbordadas (incluye desconectadas)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Llamadas retenidas:''' Número de retenciones que el agente realizó sobre las&lt;br /&gt;
llamadas ACD contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•% N.A.:''' (Llamadas contestadas/(Llamadas contestadas+ Abandonadas+&lt;br /&gt;
Desbordadas))* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•% N.D.S.:''' (Contestadas NDS/(Llamadas contestadas+ Abandonadas + Desbordadas))*100&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•% Abandonadas:''' (Abandonadas/(Llamadas contestadas+ Abandonadas+ Desbordadas))* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. RING:''' Tiempo de ring en llamadas ACD(entrantes).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•ACDTIME:''' Tiempo de conversación ACD de las llamadas contestadas o&lt;br /&gt;
realizadas por el agente excluido el tiempo de retención de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. ACW:''' Tiempo dedicado por el agente a tareas administrativas tras&lt;br /&gt;
finalizar las llamadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum HOLD:''' Tiempo que las llamadas contestadas ACD estuvieron retenidas&lt;br /&gt;
por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. OTHER:''' Tiempo total que las llamadas estuvieron esperando en el&lt;br /&gt;
grupo ACD antes de ser atendidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. AVAIL:''' Acum. STAFF- (ACDTIME+ Acum. ACW+ Acum. RING+ Acum.&lt;br /&gt;
HOLD+ Acum. AUX).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. Staff:''' Suma del Tiempo conectado de todos los agentes al grupo&lt;br /&gt;
ACD(Este tiempo se repercute en todos los grupos ACD a los que esta&lt;br /&gt;
conectado el agente).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. AUX:''' Suma del Tiempo en pausa de todos los agentes que estén&lt;br /&gt;
conectados al grupo ACD(Este tiempo se repercute en todos los grupos ACD a&lt;br /&gt;
los que esta conectado el agente).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Prom. ACD:''' ACDTIME/Llamadas contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Prom. ACW:''' Acum. ACW/Llamadas contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Prom. HOLD:''' Acum. HOLD/Llamadas retenidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•AHT:''' (ACDTIME+ Acum. ACW+ Acum. HOLD)/Llamadas contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Vel. prom. de resp.:''' Tiempo total de espera de llamadas antes de ser&lt;br /&gt;
atendidas/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Tiempo máx. de espera:''' Tiempo de la llamada que estuvo mas tiempo en el&lt;br /&gt;
grupo ACD hasta que fue atendida.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Agentes en PH:''' (Acum. Staff- Acum. AUX)/1800(Agentes conectados que no&lt;br /&gt;
están en pausa en el intervalo).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Agentes Staff:''' Acum. Staff/1800(Agentes conectados en el intervalo)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Desglose de tiempos AUX:''' Tiempo que el agente estuvo en cada uno de los&lt;br /&gt;
motivos de pausa.&lt;br /&gt;
&lt;br /&gt;
===== Informe de producción =====&lt;br /&gt;
&lt;br /&gt;
'''• LL. ACD:'''Número de llamadas contestadas por ese agente para ese&lt;br /&gt;
grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. HOLD:''' Número de retenciones efectuadas para las llamadas&lt;br /&gt;
contestadas en ese grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Redir.:''' Número de llamadas no contestadas por un agente que&lt;br /&gt;
fueron redirigidas de nuevo a la cola.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. No colgadas cliente:''' Número de llamadas que terminaron sin el&lt;br /&gt;
colgado del cliente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Aband.:''' Número de llamadas abandonadas en ese grupo ACD, este&lt;br /&gt;
valor es independiente del agente por tanto se repite el valor para todos&lt;br /&gt;
los agentes en un mismo grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Transfer.:''' Número de llamadas ACD que fueron transferidas por el&lt;br /&gt;
agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Conf:''' Número de llamadas ACD en las que el agente estableció&lt;br /&gt;
conferencia.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• S. Extensión:''' Número de llamadas salientes de extensión, este valor es&lt;br /&gt;
independiente del grupo ACD se repite el valor para todos los grupos&lt;br /&gt;
ACD en los que está conectado el agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. Staff:''' Tiempo que el agente estuvo conectado al grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. RING:''' Tiempo de ring en las llamadas ACD(entrantes) que&lt;br /&gt;
fueron contestadas por el agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. ACD:''' Tiempo de conversación de las llamadas ACD(entrantes)&lt;br /&gt;
que fueron contestadas por el agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas que fueron contestadas por él.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum HOLD:''' Tiempo que las llamadas ACD(entrantes) para ese grupo&lt;br /&gt;
ACD que fueron contestadas por el agente estuvieron retenidas.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. AVAIL:''' Acum. STAFF- (Acum. ACD+ Acum. ACW+ Acum. RING+&lt;br /&gt;
Acum. HOLD+ Acum. AUX)..&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. AUX:''' Tiempo que el agente estuvo en pausa este valor es&lt;br /&gt;
independiente del grupo ACD se repite el valor para todos los grupos&lt;br /&gt;
ACD en los que está conectado el agente..&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Desgloses de tiempos AUX, tiempo AUX por cada uno de los&lt;br /&gt;
motivos.''' este valor es independiente del grupo ACD se repite el valor&lt;br /&gt;
para todos los grupos ACD en los que está conectado el agente.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Consideraciones adicionales =====&lt;br /&gt;
&lt;br /&gt;
Los tiempos se insertan en el intervalo en el que se deja ese &amp;quot;estado&amp;quot;, esto provoca que en un intervalo pueda ser mayor el tiempo ACD que el tiempo conectado.&lt;br /&gt;
&lt;br /&gt;
''* Ejemplo:''&lt;br /&gt;
&lt;br /&gt;
 -Llamada: Duración 15 minutos Hora fin de la llamada 13:01&lt;br /&gt;
 -Llamada: Duración 20 minutos Hora fin de la llamada 13:24&lt;br /&gt;
 Suma de las duraciones de las llamadas para el intervalo ''35 minutos'' tiempo&lt;br /&gt;
 conectado del agente en el intervalo ''30 minutos.''&lt;br /&gt;
 Cuando los periodos consultados sean mas amplios (diario, mensual) los&lt;br /&gt;
 desfases tenderán a desaparecer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Otros Diagnósticos y operaciones básicas ==&lt;br /&gt;
=== Arranque y apagado de la plataforma ===&lt;br /&gt;
&lt;br /&gt;
En general el arranque y apagado de cada nodo de una plataforma '''''VIVA'''''it es el estándar de un procedimiento ordenado de apagado en una máquina linux: '''&amp;quot;Shutdown -h now&amp;quot;''' o comando de apagado inmediato o programado equivalente&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El orden de arranque de la plataforma deberá ser:&lt;br /&gt;
# En primer lugar arrancar el nodo con la base de datos de tiempo real&lt;br /&gt;
# Una vez finalizado el arranque del punto 1, arrancar el nodo con la base de datos de réplica&lt;br /&gt;
# Una vez finalizado el arranque del punto 2, arrancar el resto de nodos en cualquier orden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Al respecto del orden de apagado de nodos, es el siguiente:&lt;br /&gt;
# En primer lugar se apagarán, en cualquier orden, los nodos que NO CONTENGAN bases de datos de tiempo real ni bases de datos de réplica&lt;br /&gt;
# Una vez apagados totalmente todos los nodos del punto 1, apagaremos el nodo (o nodos) con bases de datos de réplica&lt;br /&gt;
# Una vez apagados totalmente todos los nodos del punto 2, se apagará el nodo con la base de datos de tiempo real&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== Nivel matriz de conmutación ===&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Grabación ===&lt;br /&gt;
&lt;br /&gt;
==== Configuración de la grabación en la plataforma corporativa ====&lt;br /&gt;
Para que una llamada se grabe, lo primero de todo es que  alguien tenga la capacidad de grabar. Esto se consigue diciendo al nodo que sea grabador. Esto provoca que el nodo llame al mixmonitor para grabar y se inserte un registro en el DAT_GRABACIONES. Esto no significa que ya las llamadas se vayan a grabar, ya que para eso tiene que ser procesadas por un nodo que sea grabador. Hay tres, llamémosle elementos, que se pueden grabar:&lt;br /&gt;
&lt;br /&gt;
* El nodo, es decir todo lo que el nodo enrute&lt;br /&gt;
* Prerutas&lt;br /&gt;
* Objetos: que son las extensiones, usuarios, grupos corporativos, etc.&lt;br /&gt;
&lt;br /&gt;
Tenemos tres formas de grabar:&lt;br /&gt;
&lt;br /&gt;
* Grabar con beep periódico&lt;br /&gt;
* Grabar sin beep periódico&lt;br /&gt;
* Descartar grabación&lt;br /&gt;
&lt;br /&gt;
Si de los tres elementos tenemos que uno grabe, ya sea con o sin beep periódico, esa llamada se va a grabar ya que son OR, en cuanto haya un elemento que diga que grabe se va a grabar.&lt;br /&gt;
&lt;br /&gt;
Al igual pasa si tenemos que un elemento tenga descartar la grabación. La grabación no se inicia.&lt;br /&gt;
&lt;br /&gt;
Referente al campo de Modo de grabación en infraestructura, este no se emplea para la grabación de corporativo, sino que solo tiene validez en ACD. Para grabación en el ACD hay que, como se ha dicho anteriormente poner un nodo que sea grabador y especificar un elemento de los tres que hay cual es el que se va a grabar.&lt;br /&gt;
&lt;br /&gt;
Para que exista una grabación a de existir un segmento asociado a esta. Los segmentos se tratan en las prerutas. Hay un campo es las prerutas que es Generar segmento al enrutar. Si está se generará el segmento del tipo de la preruta y su correspondiente grabación si esta está configurada. Si le decimos que no genere segmentos al enrutar y el sistema está configurado para que grabe, el recordCentral creará un tipo de segmento llamado externo para esa grabación. Podemos configurar si queremos que se cree o no ese segmento, para eso hay que modificar el fichero de configuración del recordCentral y poner un tiempo muy alto al campo $segmExternoMinSegs. También podemos configurar que segmentos queremos que se graben. Por defecto el recordCentral va configurado para que se graben todos los segmentos. Para decirle que solo grabe cierto tipo de segmentos hay que ponerlos los que queramos que si se graben en la variable $tiposSegmentoGrabar del fichero de configuración del recordCentral.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que el servidor de grabación esta activo ====&lt;br /&gt;
&lt;br /&gt;
Si al ejecutar el comando '''''nc ip_maquina 1114''''',si no se recibe ninguna respuesta, significa el servidor de grabación no estaría activo. &lt;br /&gt;
También usando el comando ''''' ps aux | grep recordCentral ''''', donde si no escribe ningún resultado implica que tampoco esta activo.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que los nodos están conectados al servidor de grabación ====&lt;br /&gt;
&lt;br /&gt;
Debemos fijarnos en la linea de respuesta del comando '''''nc ip_maquina 1114''''', que seria:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| root@smadavacdrecord1:~# nc localhost 1114&lt;br /&gt;
recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423&lt;br /&gt;
160112'&lt;br /&gt;
&lt;br /&gt;
recordCentral MYSQL cnx=1&lt;br /&gt;
&lt;br /&gt;
recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
&lt;br /&gt;
recordCenral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
&lt;br /&gt;
'''recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10''''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el parámetro &amp;quot;fase=0&amp;quot; es el numero que identifica el recordCentral, los demás parámetros nos indicaran los nodos disponibles , que funcionan o no en el servidor. Entonces &amp;quot;gestión=4,6,7,8,9,10&amp;quot; indica el id de los nodos que maneja el proceso.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que un nodo tiene activo el agente de grabación ====&lt;br /&gt;
Si al ejecutar el comando '''''nc ip_maquina 1113''''', no se recibe ninguna respuesta, significa que el nodo no tiene activo el agente de grabación.&lt;br /&gt;
También usando el comando ''''' ps aux | grep recordNodo''''', donde si no escribe ningun resultado implica que tampoco esta activo.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que un nodo está subiendo archivos de grabación al servidor ====&lt;br /&gt;
Debemos fijarnos en la linea de respuesta del comando '''''nc ip_maquina 1114''''', que seria:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| root@smadavacdrecord1:~# nc localhost 1114&lt;br /&gt;
recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423&lt;br /&gt;
160112'&lt;br /&gt;
&lt;br /&gt;
recordCentral MYSQL cnx=1&lt;br /&gt;
&lt;br /&gt;
recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
&lt;br /&gt;
recordCenral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
&lt;br /&gt;
'''recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10''''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Fijándonos en &amp;quot;descarga=8,6,4,7,10,9&amp;quot; nos confirma que todos los nodos que maneja el proceso funcionan perfectamente y el servidor puede manejar las grabaciones.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de grabaciones que se hayan quedado enganchadas en un nodo ====&lt;br /&gt;
Podemos fijarnos en los dos comandos, para '''''nc ip_maquina 1114''''':&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| root@smadavacdrecord1:~# nc localhost 1114&lt;br /&gt;
recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423&lt;br /&gt;
160112'&lt;br /&gt;
&lt;br /&gt;
recordCentral MYSQL cnx=1&lt;br /&gt;
&lt;br /&gt;
recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
&lt;br /&gt;
recordCenral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
&lt;br /&gt;
'''recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10''''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Fijándonos en el campo &amp;quot;cuarentena=''&amp;quot; indica que ninguno de los nodos tiene problemas.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación del estado de ocupación del almacenamiento temporal de grabaciones en un nodo. ====&lt;br /&gt;
&lt;br /&gt;
Desde un SSH ejecuta el comando '''''df - h''''' en la maquina donde creamos que debe estar ejecutando el proceso recordNod:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Filesystem !! Size !! Used !! Avail !! Use% !! Mounted on&lt;br /&gt;
|-&lt;br /&gt;
| udev || 486M || 4,0K || 486M || 1,00% || /dev&lt;br /&gt;
|-&lt;br /&gt;
| tmpfs || 100M || 416K || 99M || 1,00% || /run&lt;br /&gt;
|-&lt;br /&gt;
| '''/dev/vda1''' ||''' 236M''' ||''' 68M''' ||''' 156M''' ||''' 31,00% '''||''' /boot'''&lt;br /&gt;
|-&lt;br /&gt;
| tmpfs || 100M || 48K || 100M || 1,00% || /var/spool/asterisk/monitor&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Nos fijaríamos en la línea marcada en negrita, el campo &amp;quot;Use%&amp;quot; indicara el porcentaje de almacenamiento temporal de grabaciones en un nodo.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Escuchas e intrusiones en asterisk===&lt;br /&gt;
'''CallSpy''' es una aplicación elaborada para asterisk que permite a un usuario realizar escuchas e &lt;br /&gt;
intrusiones en llamadas. &lt;br /&gt;
En realidad tenemos dos aplicaciones en asterisk, CallSpy y CallSpyee. &lt;br /&gt;
====CallSpy ====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 '''Nota:''' Como mucho se pueden tener a dieciséis personas al mismo tiempo usando esta aplicación. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como hemos mencionado anteriormente, esta aplicación permite la escucha de llamadas y, &lt;br /&gt;
opcionalmente, realiza la función de intrusión. Tiene tres opciones de configuración obligatorios &lt;br /&gt;
que mostramos a continuación: &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 CallSpy(&amp;lt;tipoEspiado&amp;gt;,&amp;lt;expRegEspiado&amp;gt;,&amp;lt;parametrosConf&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
La opción '''&amp;lt;tipoEspiado&amp;gt;''' se refiere a que tipo de objeto que podemos espiar correspondiente, solo debe elegirse un único tipo: &lt;br /&gt;
*'''c:''' escuchar una cola&lt;br /&gt;
*'''v:''' escuchar un vdn &lt;br /&gt;
*'''a:''' escuchar a un agente &lt;br /&gt;
*'''e:''' escuchar extensión &lt;br /&gt;
La opción '''&amp;lt;expRegEspiado&amp;gt;''' representa el número de la cola, VDN, agente o extensión que queremos escuchar. Tiene que ser una expresión regular. &lt;br /&gt;
La opción '''&amp;lt;parametrosConf&amp;gt;''' se refiera a los parámetros de configuración para la llamada que podemos espiar, se pueden combinar o juntar : &lt;br /&gt;
*'''q:''' Desactiva el 'beep' al comienzo de cada nueva llamada. &lt;br /&gt;
*'''v([value]):''' Ajusta el volumen en el rango -4 a 4 (más alto, mas volumen). &lt;br /&gt;
*'''e:''' Habilita el que se pueda cambiar a otra llamada de la misma extensión. &lt;br /&gt;
*'''w:''' Habilita el que se pueda activar la intrusión (whisper).&lt;br /&gt;
Una vez iniciada la escucha, solo falta que entre una llamada al objetivo que estemos espiando. Al &lt;br /&gt;
iniciar la escucha, se puede hacer lo siguiente: &lt;br /&gt;
*Pulsando '''#''' modifica el volumen de escucha. &lt;br /&gt;
*Pulsando '''*''' cambia a una nueva llamada. &lt;br /&gt;
*Pulsando '''1''' si esta habilitado, cambia a otra llamada de la misma extensión. &lt;br /&gt;
*Pulsando '''2''' si esta habilitado, inicia la función de intrusión. &lt;br /&gt;
*Pulsando '''3''' desactiva la función de intrusión. &lt;br /&gt;
====CallSpyee (espiado)====&lt;br /&gt;
Mediante esta aplicación indicamos los parámetros que permite a una llamada ser seleccionada para &lt;br /&gt;
escuchar. Las opciones de configuración son: &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 CallSpyee([CID_NUM],[cola],[vdn],[agen],[exten]) &lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:'''No son parámetros obligatorios, por lo que no hace falta rellenar todos los campos pero si respetar sus posiciones separadas por comas.&amp;lt;small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
La explicación de los parámetros es la siguiente:&lt;br /&gt;
*'''CID_NUM:''' representa el call ID de la llamadas &lt;br /&gt;
*'''cola:'''representa el número de la cola que se quiere espiar (${QUEUE} ).&lt;br /&gt;
*'''vdn:'''   representa el número del VDN que se quiere espiar (${VDN} ).&lt;br /&gt;
*'''agen:''' representa el número del agente que se quiere espiar.&lt;br /&gt;
*'''exten:''' representa el número de la extensión que se quiere espiar (${EXTENSION}) .&lt;br /&gt;
&lt;br /&gt;
Por ejemplo si queremos escuchar todas las llamadas en las que participa una extensión determinada pondremos en la macro de extensiones: &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,,,${EXTENSION}) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Cambios para el dialplan de asterisk==== &lt;br /&gt;
El funcionamiento de este tipo de servicio conlleva un cambio en el dialplan de asterisk. En cada macro correspondiente se pondrá los diferentes CallSpyee para VDN, colas  , extensiones y agentes. &lt;br /&gt;
Pasos a seguir: &lt;br /&gt;
*Paso 1. Creación de un código de intrusión para cada tipo según necesidad (cola, VDN, agente y &lt;br /&gt;
extensión). &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Ejemplo '''MD'''tel:  declaramos como código de intrusión a Agente *44*NUMERO &lt;br /&gt;
 ;========================================== &lt;br /&gt;
 ;======== Intrusion a Agente &lt;br /&gt;
 ;========================================== &lt;br /&gt;
 exten =&amp;gt; _*44*X.,1,set(CadMarcar=intrusionEspiado) &lt;br /&gt;
 exten =&amp;gt; _*44*X.,n,set(DesL=SERVICIO) &lt;br /&gt;
 exten =&amp;gt; _*44*X.,n,set(datoServicio=^${EXTEN:4}) &lt;br /&gt;
 exten =&amp;gt; _*44*X.,n,Goto(finMacro,1) &lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' En la tercera línea podemos observar la expresión regular que se le pasara al CallSpy correspondiente con el número marcado por el espia. &amp;lt;small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*Paso 2.Llamar a CallSpy con la configuración deseada.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Ejemplo '''MD'''tel:  llamada a CallSpy especificando que vamos a espiar una cola (la c del primer parámetro, con la&lt;br /&gt;
 extensión introducida en el código de intrusión y con whisper, es decir, función de intrusión habilitada. &lt;br /&gt;
 ;------------------------------------------------------------------------ &lt;br /&gt;
 ; Intrusion a Espiado &lt;br /&gt;
 ;------------------------------------------------------------------------ &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,1,NoOp &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,n,GotoIf($[&amp;quot;${datoServicio}&amp;quot;=&amp;quot;&amp;quot;]?colgar) &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,n,CallSpy(c,${datoServicio},w) &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,n(colgar),Hangup &lt;br /&gt;
|}&lt;br /&gt;
* Paso 3. Llamar a CallSpyee con la configuración de las llamadas candidatas a ser escuchadas.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Ejemplo '''MD'''tel: &lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,,,,${EXTENSION}) → Para extensiones &lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,${QUEUE},,,) → Llamadas espiadas por cola &lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,,${VDN},,) → Llamadas espiadas por VDN &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Calendarios ===&lt;br /&gt;
&lt;br /&gt;
Para la configuración de los Calendarios se hace uso de '''CalDAV''', estándar de Internet que permite a un cliente acceder a información de planificación en un servidor remoto. Permite que varios clientes accedan a la misma información, facilitando la cooperación. Muchas aplicaciones, tanto clientes como servidores, son compatibles con este protocolo.&lt;br /&gt;
&lt;br /&gt;
Si deseamos crear un calendario en la plataforma '''VIVAit''' podemos hacerlo siguiendo el  siguiente enlace:  &lt;br /&gt;
Para comprobar que el servidor de calendarios funciona correctamente bastaría con cargar en la barra de direcciones la siguiente url: [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Calendarios |Calendarios]]&lt;br /&gt;
&lt;br /&gt;
http://${NODO.HOST}/dav/html/cal.php/calendars/${DAV.CUENTA}/${DAV.CALENDARIO}&lt;br /&gt;
&lt;br /&gt;
donde,&lt;br /&gt;
&lt;br /&gt;
* '''NODO.HOST:''' es la ip del servidor calendar&lt;br /&gt;
* '''DAV.CUENTA:''' hace referencia a la cuenta de usuario&lt;br /&gt;
* '''DAV.CALENDARIO:''' hace referencia el nombre de la cuenta&lt;br /&gt;
&lt;br /&gt;
Una vez que se carga la url sabremos que el servidor funciona correctamente si visualizamos lo siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla de 2016-07-21 12_43_58.png || 1020px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si el sistema nos pide usuario y clave querrá decir que el servidor de calendarios está operativo en esa maquina&lt;br /&gt;
&lt;br /&gt;
Para comprobar que funciona en la consola de asterisk usaremos los comandos &lt;br /&gt;
 calendar show calendars&lt;br /&gt;
 calendar show calendar [nombreCalendario]&lt;br /&gt;
&lt;br /&gt;
 '''Nota:''' Debido bugs detectados, el proceso requerirá:&lt;br /&gt;
       - La realización de una sincronización manual de la sección &amp;quot;mdcal&amp;quot; desde el portal de administración&lt;br /&gt;
       - Añadir la línea '''''#include &amp;quot;/etc/asterisk/mdcal.conf&amp;quot;''''' en el fichero calendars.conf y hacer &amp;quot;reload&amp;quot; de asterisk&lt;br /&gt;
       - En la máquina donde esté instalado el servidor de calendarios apuntar a la IP de la BDTR (/var/www/dav/config.php)&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Syslog de agentes ===&lt;br /&gt;
'''''Syslog''''' es un estándar para el envío de mensajes de registro en una red informática IP. Por '''''Syslog''''' se conoce tanto al protocolo de red como a la aplicación o biblioteca que envía los mensajes de registro. Se lanza automáticamente al arrancar un sistema Unix, y es el encargado de guardar informes sobre el funcionamiento de la máquina (eventos, seguridad del sistema, etc) pero puede contener también cualquier información como mensajes de las diferentes partes del sistema (núcleo, programas...) y los envía y/o almacena en diferentes localizaciones transmitiéndose mediante un puerto UDP. Esto permite concentrar los registros de múltiples máquinas en un único punto simplificando la labor de gestión al administrador siendo habitual que múltiples dispositivos lo soporten.&lt;br /&gt;
&lt;br /&gt;
El formato del mensaje se compone de tres campos :&lt;br /&gt;
&lt;br /&gt;
* La cabecera contiene la prioridad, fecha y hora del mensaje, máquina, proceso (nombre e identificador) que lo ha generado y la versión del protocolo utilizado.&lt;br /&gt;
* Una serie de pares clave-valor con metadatos.&lt;br /&gt;
* El texto del mensaje.&lt;br /&gt;
&lt;br /&gt;
Si es necesario podemos activar el registro de todos los eventos telefónicos que realiza un agente ACD llamado '''Syslog de agentes'''. Su activación se realiza mediante el '''portal de administración ''VIVA''it'''  configurando unos parámetros para un usuario llamado ''Rastreo BBDD&amp;quot; y ''Rastreo Syslog''. Para más información[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Pesta.C3.B1a_ACD | ver sección  Portal de administración - General - Usuarios - Pestaña ACD  ]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot;  align=&amp;quot;top&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot; |&amp;lt;big&amp;gt;'''Elemento'''&amp;lt;/big&amp;gt; &lt;br /&gt;
|align=&amp;quot;center&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot; | &amp;lt;big&amp;gt;'''Procedimiento'''&amp;lt;/big&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Operacion&lt;br /&gt;
|-&lt;br /&gt;
|Ubicación del proceso||Script arranque: /etc/init/ rsyslog.conf&lt;br /&gt;
Configuración :&lt;br /&gt;
/etc/rsyslog.d/30-vivait-&lt;br /&gt;
desk.conf&lt;br /&gt;
|-&lt;br /&gt;
|Arranque||service rsyslog start&lt;br /&gt;
|-&lt;br /&gt;
|Parada||service rsyslog stop&lt;br /&gt;
|-&lt;br /&gt;
|Reinicio||service rsyslog reload&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Diagnostico&lt;br /&gt;
|-&lt;br /&gt;
|Registro de logs||/var/log/MDtel/vivait-desk.log&lt;br /&gt;
Fichero del día actual. se guardan los 30&lt;br /&gt;
anteriores comprimidos en tar.g&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==Funcionalidades específicas ==&lt;br /&gt;
=== Mecanismo de prioridad adaptativa ===&lt;br /&gt;
&lt;br /&gt;
El mecanismo de prioridad adaptativa permite en una plataforma '''''VIVA'''''it Suite establecer prioridades en las que se tenga en cuenta el tiempo de espera de las llamadas en cola, proporcionando una alternativa al mecanismo de prioridad absoluta que existe por defecto&lt;br /&gt;
&lt;br /&gt;
==== Introducción ====&lt;br /&gt;
&lt;br /&gt;
Este documento presenta una propuesta de mecanismo de asignación de llamadas en colas a agentes basado no solo en las prioridades de agente a cola,&lt;br /&gt;
sino en un factor de corrección de prioridad derivado del tiempo de espera de una llamada&lt;br /&gt;
&lt;br /&gt;
==== Terminología ====&lt;br /&gt;
&lt;br /&gt;
* '''Prioridad de llamada:''' A cada llamada susceptible de ser atendida en el ''Call Center'' se le asignará una prioridad de llamada; dicha prioridad será asignada cada vez que un agente quede disponible.&lt;br /&gt;
* '''Prioridad de grupo ACD:''' Los agentes del ''Call Center'' tendrán configurada una prioridad para cada grupo ACD al que pertenecen&lt;br /&gt;
* '''Tiempo de espera:''' Tiempo que una llamada lleva en espera en un determinado grupo ACD; si la llamada cambia de un grupo ACD a otro el tiempo de espera pasa a cero&lt;br /&gt;
* '''Objetivo de servicio:''' Tiempo objetivo máximo de espera por cada grupo ACD&lt;br /&gt;
&lt;br /&gt;
 '''Nota.-''' ''En terminología Asterisk el aumento de prioridad corresponde con números descendentes, es decir,&amp;lt;br /&amp;gt;&lt;br /&gt;
 prioridad 50 es mejor que prioridad 70''&lt;br /&gt;
&lt;br /&gt;
==== Mecanismo de asignación de llamadas ====&lt;br /&gt;
&lt;br /&gt;
En el momento en que exista un agente disponible para recibir llamada, el agente recepcionará la llamada con mejor prioridad de llamada (menor número). La prioridad de llamada para cada llamada se establecerá de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
- Agentes con prioridad de grupo ACD de 1 a 99 utilizarán el mecanismo convencional de asterisk de prioridad absoluta; será útil para grupos ACD críticos o en Call Centers muy convencionales&lt;br /&gt;
&lt;br /&gt;
'''Si un agente tiene prioridad menor de 100 en grupos ACD y hay llamadas en dichos grupos, estas llamadas serán atendidas por el agente con prioridad absoluta.'''&lt;br /&gt;
&lt;br /&gt;
- Agentes con prioridad de colas de 100 en adelante; se utilizará el siguiente mecanismo de prioridad ponderada:&lt;br /&gt;
&lt;br /&gt;
:*Si el grupo ACD de la llamada está dentro del objetivo de servicio, la prioridad de llamada será la prioridad de grupo ACD (a efectos prácticos se aplicará el mecanismo convencional de asignación de llamada a agente, equitativo entre grupos ACD con misma prioridad)&lt;br /&gt;
&lt;br /&gt;
:*Si el grupo ACD de la llamada está fuera del objetivo de servicio, se aplicará una ponderación que mejorará la prioridad de la llamada a medida que aumente el tiempo de espera:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Formula.png |center]]&lt;br /&gt;
&lt;br /&gt;
En una configuración de igualdad de prioridad de agente y objetivo de servicio, el tiempo de espera influiría de manera determinante (más o menos en&lt;br /&gt;
función del peso) en la asignación de la siguiente llamada&lt;br /&gt;
El peso podrá adquirir tres posibles valores: 0, 1 y 10&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Esquema.png |center]]&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;span style=&amp;quot;color:#000080&amp;quot;&amp;gt;- Calculo prioridad de llamada: se calcula por llamada cada vez que un agente queda libre&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span style=&amp;quot;color:#000080&amp;quot;&amp;gt;- Agente atiende llamada con mejor prioridad de llamada&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Medio:Asignación de llamadas por prioridad adaptativa.pdf|Asignación de llamadas por prioridad adaptativa]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Marcación saliente ===&lt;br /&gt;
Dentro del ACD hay un comportamiento especial que es la marcación saliente. Esta puede ser de tres tipos:&lt;br /&gt;
* '''Vista previa''': El agente demanda la siguiente llamada a realizar.&lt;br /&gt;
* '''Progresivo''': Se llama al agente y se lanza la llamada al contacto.&lt;br /&gt;
* '''Predictivo''': El sistema calcula cuando va a estar libre el agente y se adelanta lanzando varias llamadas (configurables por parámetros). La llamada que es contestada primero, se pasa a una cola (el resto se cuelgan) a la espera que el agente se quede libre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Esquema de funcionamiento====&lt;br /&gt;
[[Archivo:esquema funcionamiento marcador.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
Los contactos se agrupan en listas para su facilidad de asignación a campañas, aunque finalmente lo que se asigna a una campaña es un contacto.&lt;br /&gt;
&lt;br /&gt;
Las campañas tienen estrategias. Las estrategias definen como se ha de llamar (del primero al último, sólo los pares, etc.). Tienen una serie de parámetros que  dependiendo de la estrategia pueden tener distinta utilidad. Desde el punto de vista de la base de datos, las estrategias se definirían en la tabla ACD_CLASES_ESTRATEGIAS y se les da valor en la tabla ACD_ESTRATEGIAS_MARCADOR.&lt;br /&gt;
Una vez establecida la campaña y asignados sus contactos y dependiendo del modo de marcación (que se define en las colas) el proceso motorSal crea los intentos de marcación (siempre y cuando no estén en las listas Robinson), que serán leídos por el proceso myAcdSuperv que los convierte en llamadas para el Asterisk.&lt;br /&gt;
&lt;br /&gt;
====Flujo de estados====&lt;br /&gt;
&lt;br /&gt;
El flujo de estados es el reflejado en la figura siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:diagrama de flujo motorsal.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
Los diferentes estados de un contacto son:&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Estado !! ID_Estado!! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| Planificable || 0|| El contacto está preparado para que lo gestione motorSal y según la estrategia definida se establece el campo ACD_CONTACTOS_CAMPANNAS.D_HORA_PROXIMA&lt;br /&gt;
|-&lt;br /&gt;
|Planificado||10||Cuando ha llegado el tiempo marcado en HORA PROXIMA, motorSal ejecuta la 2ª fase de la estrategia, generando el intento de marcación.&lt;br /&gt;
|-&lt;br /&gt;
|Intento||20||El control pasa a myAcdSuperv, que a su vez genera la llamada en Asterisk. Cuando termina, se pasa a Planificable o Finalizado.&lt;br /&gt;
|-&lt;br /&gt;
|Finalizado||100||Las gestiones con este contacto han terminado.&lt;br /&gt;
|-&lt;br /&gt;
|Abortado||110||&lt;br /&gt;
|-&lt;br /&gt;
|Obsoleto||200||Se ha agotado el tiempo para contactar sin agotar todos los intentos. No se le vuelve a llamar nunca.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Carga de contactos====&lt;br /&gt;
&lt;br /&gt;
===== Descripción =====&lt;br /&gt;
&lt;br /&gt;
A continuación se explica la configuración y funcionamiento de la utilidad encargada de asignar contactos a campañas.&lt;br /&gt;
&lt;br /&gt;
===== Configuración =====&lt;br /&gt;
&lt;br /&gt;
El archivo de configuración recibe el nombre de '''cargaContactos.pconf.''' Este archivo reside en '''/etc/MDtel.''' El formato se describe en la tabla siguiente. Hay que tener en cuenta que las columnas empiezan a numerarse en 0.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Parámetro !! Valor !! Obligatorio !! Defecto&lt;br /&gt;
|- &lt;br /&gt;
| db|| Nombre de la base de datos|| SI || nimitz&lt;br /&gt;
|- &lt;br /&gt;
| dbHost|| Host MySQL || SI || localhost&lt;br /&gt;
|- &lt;br /&gt;
| dbPort|| Puerto MySQL || NO || 3306&lt;br /&gt;
|- &lt;br /&gt;
| dbUsuario || Usuario de acceso a la base de datos|| SI ||&lt;br /&gt;
|- &lt;br /&gt;
| dbClave || Clave del usuario || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| rutaContactos || Ruta hasta el archivo de contactos || NO || /var/spool/MDtel/contactos&lt;br /&gt;
|- &lt;br /&gt;
| obsoletos || Si vale 1, marcar como obsoletos los contactos anteriores || NO || 0&lt;br /&gt;
|- &lt;br /&gt;
| diasCaducidad || Número de dias a partir de los cuales caducarán los contactos || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| idCampanna || Número de columna que contiene el ID de la campaña || SI||&lt;br /&gt;
|- &lt;br /&gt;
| idLista || Numero de columna que contiene el ID de la lista || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| prioridad || Número de columna que contiene la prioridad || NO || Nota: El valor es de 0 a 99. A mayor número menor prioridad (se le llamará más tarde)&lt;br /&gt;
|- &lt;br /&gt;
| tipoTarea|| Número de columna que contiene el tipo de tarea || NO || Nota: los posibles valores de la columna son : &amp;lt;br /&amp;gt; *A: Alta &amp;lt;br /&amp;gt; *M: Modificación &amp;lt;br /&amp;gt; *B: Baja&amp;lt;br /&amp;gt; Por defecto el valor es A&lt;br /&gt;
|- &lt;br /&gt;
| codCli || Número de columna del CSV que contiene el código de cliente || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| nombreCon || Número de columna del CSV que contiene el nombre || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| apellido1 || Número de columna del CSV que contiene el primer apellido|| NO ||&lt;br /&gt;
|- &lt;br /&gt;
| apellido2 || Número de columna del CSV que contiene el segundo apellido || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| empresa || Número de columna del CSV que contiene la empresa || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| direccion1 || Número de columna del CSV que contiene la dirección || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| direccion2 || Número de columna del CSV que contiene la dirección 2 || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| codPostal || Número de columna del CSV que contiene el código postal || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| localidad || Número de columna del CSV que contiene la localidad || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| provin || Número de columna del CSV que contiene la provincia || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| email || Número de columna del CSV que contiene el email || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_1 || Número de columna del CSV que contiene el primer número fijo del contacto || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_2 || Número de columna del CSV que contiene el segundo número fijo del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_3 || Número de columna del CSV que contiene el tercer número fijo del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_4 || Número de columna del CSV que contiene el cuarto número fijo del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_1 || Número de columna del CSV que contiene el primer número móvil del contacto || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_2 || Número de columna del CSV que contiene el segundo número móvil del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_3 || Número de columna del CSV que contiene el tercer número móvil del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_4 || Número de columna del CSV que contiene el CUARTO número móvil del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| edad || Número de columna del CSV que contiene la edad || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc1|| Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc2 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc3 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc4 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc5 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc6 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc7 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc8 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc1 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc2 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc3 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc4 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc5 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc6 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc7 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc8 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Funcionamiento =====&lt;br /&gt;
&lt;br /&gt;
Para ejecutar la utilidad se debe teclear la siguiente orden en la línea de comandos:&lt;br /&gt;
&lt;br /&gt;
'''cmd# cargaContactos.pl /&amp;lt;ruta hasta el conf&amp;gt;/cargaContactos.pconf &amp;lt;archivo CSV&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
El archivo con los contactos deberá ser un CSV con los campos separados por ';'. La utilidad parsea el archivo conforme a la distribución indicada en la configuración y crea las correspondientes entradas en las tablas '''ACD_CONTACTOS''' y '''ACD_CONTACTOS_CAMPANNAS.'''&lt;br /&gt;
&lt;br /&gt;
La utilidad crea un log en '''/var/log/cargaContactos.log''' en el que vuelca toda la operativa.&lt;br /&gt;
Por pantalla se va mostrando un lista con el ID asignado al contacto y el ID de campaña al que se le ha asignado.&lt;br /&gt;
&lt;br /&gt;
Un ejemplo de fichero de carga de contactos sería el siguiente: &lt;br /&gt;
&lt;br /&gt;
 #&lt;br /&gt;
 # Configuracion de recordGwd.pl&lt;br /&gt;
 #&lt;br /&gt;
 # Conexion de base de datos&lt;br /&gt;
 $db='nimitz';&lt;br /&gt;
 $dbHost = 'localhost';&lt;br /&gt;
 $dbPort = '3306';&lt;br /&gt;
 $dbUsuario = 'nimitz';&lt;br /&gt;
 $dbClave = 'LA QUE SEA';&lt;br /&gt;
 $diasCaducidad='300';&lt;br /&gt;
 $rutaGrab = '/var/spool/MDtel/contactos';&lt;br /&gt;
 $idCampanna = '31';&lt;br /&gt;
 $idLista = '32';&lt;br /&gt;
 $obsoletos = 0;&lt;br /&gt;
 $codCli = '1';&lt;br /&gt;
 $nombreCon = '2';&lt;br /&gt;
 $apellido1 = '3';&lt;br /&gt;
 $apellido2 = '4';&lt;br /&gt;
 $empresa = '5';&lt;br /&gt;
 $direccion1 = '6';&lt;br /&gt;
 $direccion2 = '7';&lt;br /&gt;
 $codPostal = '8';&lt;br /&gt;
 $localidad = '9';&lt;br /&gt;
 $provin = '10';&lt;br /&gt;
 $email = '11';&lt;br /&gt;
 $valFijo_1 = '12';&lt;br /&gt;
 $valFijo_2 = '13';&lt;br /&gt;
 $valFijo_3 = '14';&lt;br /&gt;
 $valFijo_4 = '15';&lt;br /&gt;
 $valMovil_1 = '16';&lt;br /&gt;
 $valMovil_2 = '17';&lt;br /&gt;
 $valMovil_3 = '18';&lt;br /&gt;
 $valMovil_4 = '19';&lt;br /&gt;
 $edad = '20';&lt;br /&gt;
 $nOpc1 = '21';&lt;br /&gt;
 $nOpc2 = '22';&lt;br /&gt;
 $nOpc3 = '23';&lt;br /&gt;
 $nOpc4 = '24';&lt;br /&gt;
 $cOpc1 = '25';&lt;br /&gt;
 $cOpc2 = '26';&lt;br /&gt;
 $cOpc3 = '27';&lt;br /&gt;
 $cOpc4 = '28';&lt;br /&gt;
 $prioridad = '29';&lt;br /&gt;
 $tipoTarea = '30';&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ENLACES QUE HABIA&lt;br /&gt;
[[Medio:CargaContactos300.pdf|Instrucciones para carga automatizada de contactos]]&lt;br /&gt;
&lt;br /&gt;
[[Medio:EjemplocargaContactos.pconf.pdf|Ejemplo de fichero de carga de contactos]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Movilidad ===&lt;br /&gt;
La movilidad es una función integral de las comunicaciones en la empresa. Cualquier empleado (usuario) es móvil en cierto grado, sea dentro o fuera de la organización.La solución óptima debe proporcionar continuidad de servicios y acceso a nuestros servicios, sin importar donde se esté.&lt;br /&gt;
&lt;br /&gt;
==== Ofrecer movilidad a un usuario ====&lt;br /&gt;
&amp;lt;!--parte daniel--&amp;gt;&lt;br /&gt;
Para permitir la movilidad a un usuario, puede ser en el momento de crear o editar un usuario en el apartado ''Administración de usuario'' en ''General'' del '''portal de administración ''VIVA''it'''.  Asignándole un '''''numero login''''' (numero personal corporativo para el usuario) y una '''''clave login''''' ( se debe asignar una clave por defecto, pero puede cambiarla en el [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_3.0#Portal_de_usuario |portal de usuario]]). &amp;lt;br/&amp;gt;Para más información[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Pesta.C3.B1a_Centralita | ver sección Portal de administración - General - Usuarios - administración de usuarios - Pestaña Centralita]].&lt;br /&gt;
&lt;br /&gt;
Además, de crear un permiso de la '''aplicación ''Centralita''''' a cualquier nivel, desde el apartado ''Permisos de usuarios'' en ''General'' del '''portal de administración ''VIVA''it'''.&amp;lt;br/&amp;gt;Para más información[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Asignaci.C3.B3n_de_Permisos_de_Usuario_por_Administrador | ver sección  Portal de administración - General - Usuarios - Permisos a usuarios]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''La movilidad permite''' disponer de las extensiones telefónicas empresariales en cualquier lugar. Por&lt;br /&gt;
ejemplo, con un ordenador portátil o smartphone en una ubicación remota con conexión a Internet,&lt;br /&gt;
podríamos tener registrada nuestra extensión remotamente, y así las llamadas hacia/desde nuestra&lt;br /&gt;
oficina serían enrutadas por Internet hasta el equipo en cuestión sin coste alguno.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--parte daniel--&amp;gt;&lt;br /&gt;
Todo terminal tiene asociado una extensión y deberá permitir la movilidad de usuarios. La extensión se configura cambiando a '''''SI''''' el campo '''''Hay Movilidad''''' desde el apartado ''Extensiones'' de ''Dispositivos'' en ''VIVAit Call'' del '''portal de administración ''VIVA''it'''. Para más información [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Extensiones | ver sección Portal de administración - VIVAit Call - Dispositivos - Extensiones]]&lt;br /&gt;
&lt;br /&gt;
==== ¿Cómo funcionan las extensiones? ====&lt;br /&gt;
&lt;br /&gt;
Primeramente el usuario debe tener los ejes apropiados en la tabla '''COM_USUARIOS_APLICACION''' (aplicación centralita).&lt;br /&gt;
&lt;br /&gt;
La extensión debe de tener ''un teléfono'' y por tanto ''un modelo de teléfono asociado.''&lt;br /&gt;
&lt;br /&gt;
Es tan simple como especificar '''la extensión, el usuario y la clave de este.'''&lt;br /&gt;
&lt;br /&gt;
Para corroborar el funcionamiento de esta hay ''dos métodos'':&lt;br /&gt;
&lt;br /&gt;
'''* CLI asterisk:'''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenEntraUsuarioMovil 25001 20001 1234'''&lt;br /&gt;
&lt;br /&gt;
Y como resultado obtenemos lo siguiente:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br /&amp;gt;&lt;br /&gt;
 MOVIL_TIPO_RESET='10'&amp;lt;br /&amp;gt;&lt;br /&gt;
 MOVIL_CAD_RESET='notify_yealink'&amp;lt;br /&amp;gt;&lt;br /&gt;
 MdintzRes='OK'&lt;br /&gt;
&lt;br /&gt;
El usuario con el login numérico 20001 se ha &amp;quot;movido&amp;quot; a la extensión 25001&lt;br /&gt;
&lt;br /&gt;
Ahora ''nos quitamos de esa extensión mediante el siguiente comando:''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenSaleUsuarioMovil 25001'''&lt;br /&gt;
&lt;br /&gt;
Resultado del comando:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MOVIL_TIPO_RESET='10'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MOVIL_CAD_RESET='notify_yealink'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzRes='OK'&lt;br /&gt;
&lt;br /&gt;
Las pruebas anteriores han sido '''con extensiones con movilidad y con usuario con/sin&lt;br /&gt;
propietario.'''&lt;br /&gt;
&lt;br /&gt;
Ahora las realizamos '''con extensiones sin movilidad'''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenEntraUsuarioMovil 25002 20001 1234'''&lt;br /&gt;
&lt;br /&gt;
Obteniendo:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzRes='movil_error_datos'&lt;br /&gt;
&lt;br /&gt;
Como era lo previsible no nos deja &amp;quot;movernos&amp;quot; a esa extensión ya que no tiene movilidad.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;Si un usuario ya se ha movido a una extensión no se puede mover a otra si no es deslogandose de esta antes.&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenEntraUsuarioMovil 21000 20001 1234'''&lt;br /&gt;
&lt;br /&gt;
Con salida:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MOVIL_EXTEN='25001'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MDintzRes='movil_ya_login'&lt;br /&gt;
&lt;br /&gt;
'''* Dialplan'''&lt;br /&gt;
&lt;br /&gt;
Para llamar a la función de movilidad hay que marcar el '''9992.'''&lt;br /&gt;
&lt;br /&gt;
 Nota.- Para comprobar que se realiza todo correctamente habría que mirar las trazas de Asterisk&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Grabación ===&lt;br /&gt;
&lt;br /&gt;
La grabación en '''''VIVA'''''it Call está diseñada para ser lo mas flexible posible.&lt;br /&gt;
&lt;br /&gt;
====Configuración====&lt;br /&gt;
&lt;br /&gt;
Si deseamos grabar, debemos activar que alguno de los dispositivos/elementos que intervienen en la llamada se grabe.&lt;br /&gt;
&lt;br /&gt;
Estos dispositivos/elementos son:&lt;br /&gt;
&lt;br /&gt;
* Nodo.&lt;br /&gt;
* Usuario con Centralita.&lt;br /&gt;
* Agente.&lt;br /&gt;
* Grupo ACD corporativo y de Contact Center.&lt;br /&gt;
* Enlace exterior.&lt;br /&gt;
* Extensión.&lt;br /&gt;
* Facilidades.&lt;br /&gt;
* Grupo: grupo de salto o grupo de operadoras.&lt;br /&gt;
* Sala de conferencia.&lt;br /&gt;
* VDN corporativo y de Contact Center.&lt;br /&gt;
* Pre-rutas.&lt;br /&gt;
&lt;br /&gt;
Por otro lado necesitaremos que la llamada pase por un nodo que sea grabador, es decir, que si la llamada esta configurada para que se grabe pero no pasa por ningún nodo grabador, la llamada no se grabará.&lt;br /&gt;
&lt;br /&gt;
Al configurar un nodo existen cuatro campos que intervienen en la grabación.&lt;br /&gt;
&lt;br /&gt;
''''Grabador''''&lt;br /&gt;
&lt;br /&gt;
Se configura en el portal en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Este campo corresponde con el campo [[BD.COM_NODOS#B_ES_GRABADOR|B_ES_GRABADOR]] de la tabla [[BD.COM_NODOS|COM_NODOS]] , este campo define si el nodo va a grabar las llamas que pasen por el que necesiten ser grabadas y no se estén grabando ya.&lt;br /&gt;
&lt;br /&gt;
Es un campo booleano los posibles valores en el portal son si/no y en la base de datos 1/0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''''Modo grabación infraestructura''''&lt;br /&gt;
&lt;br /&gt;
Su configuración se realiza en el portal, en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Este campo define como está configurada la infraestructura, este campo existe por compatibilidad con '''''VIVA'''''it suite y para poder configurar la grabación bajo demanda.&lt;br /&gt;
&lt;br /&gt;
Este campo corresponde con el campo [[BD.COM_NODOS#E_MODO_GRABACION_INFRAESTRUCTURA|E_MODO_GRABACION_INFRAESTRUCTURA]] de la tabla [[BD.COM_NODOS|COM_NODOS]], Este campo usa los valores del enumerado BD.ENUM.TModoGrabacionInfraestructura|TModoGrabacionInfraestructura]].&lt;br /&gt;
&lt;br /&gt;
La formula que se seguiría para ver si una llamada se graba en ese nodo es:&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 (NODO.E_MODO_GRABACION_INFRAESTRUCTURA) AND (NODO.B_ENRU_GRABAR OR CEN_PRE_RUTA.B_ENRU_GRABAR OR &amp;quot;OBJETO&amp;quot;.B_ENRU_GRABAR)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Que sería que si la infraestructura esta en NoGraba no se graba nada de lo que se rute en ese nodo y en cualquiera de los 2 otros caso (GrabaTodo o GrabaPorPeticion) se grabaría dependiendo de la configuración del Nodo, la ruta o el objeto en cuestión (preruta, grupo ACD, extension,...).&lt;br /&gt;
&lt;br /&gt;
''''Grabar enrutamiento''''&lt;br /&gt;
&lt;br /&gt;
Se configura en el portal en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Este campo define si van a grabar las llamadas que se enruten en este nodo.&lt;br /&gt;
&lt;br /&gt;
Campo [[BD.COM_NODOS#E_ENRU_GRABAR|E_ENRU_GRABAR]] de la tabla [[BD.COM_NODOS|COM_NODOS]] que usa los valores del enumerado [[BD.ENUM.TTipoEnruGrabar|TTipoEnruGrabar]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''''RecordCentral''''&lt;br /&gt;
&lt;br /&gt;
Se configura en el portal en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Define que instancia del recordCentral es la encargada de tratar las grabaciones de este nodo.&lt;br /&gt;
&lt;br /&gt;
Para aumentar el rendimiento a la hora de traerse las grabaciones, se pueden definir varias instancias de proceso recordCentral, este campo define cual de estas instancias se encargara de este nodo.&lt;br /&gt;
&lt;br /&gt;
====Vivait Tracker====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL LA ÚNICA REFERENCIA A VIVAIT TRACKER EN LA DOCUMENTACIÓN &amp;quot;Vivait supervisor&amp;quot; QUE TENGO DICE LO SIGUIENTE. &amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Desde '''''VIVA'''''it Supervisor,  que es la aplicación dirigida a Supervisores, ofrece la posibilidad de supervisar y gestionar grupos ACD, agentes, asignaciones, prioridades,etc. Se puede obtener acceso directo a las aplicaciones de grabación ('''''VIVA'''''it tracker) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL FIN EXPLICACIÓN. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL De la documentacion creada por ivan. &amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Esquematico actual del proyecto tracker &lt;br /&gt;
[[Archivo:Esquematico_tracker_1.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1º El tracker web llama al web service Remote login para iniciar sesión y determinar si tiene permisos para la escucha y descarga de grabaciones.&lt;br /&gt;
&lt;br /&gt;
2º Si la ubicación de la grabación es local, mira la ruta de esta y se procede a la escucha o descarga de esta.&lt;br /&gt;
&lt;br /&gt;
3º Si la ubicación de la grabación es remota, entra en escena el proxy. Es el que realiza la petición.&lt;br /&gt;
&lt;br /&gt;
4º Si utilizamos el tracker windows, este, como el tracker web, llama primero al web service remote login para la autenticación y tema de Permisos.&lt;br /&gt;
&lt;br /&gt;
5º Para descargar o escuchar una grabación desde el tracker windows, se llama al web service servidor de grabaciones pasándole simplemente el ID de segmento.mp3. Este web service, con el ID de segmento, se encarga de determinar la ubicación de la grabación.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL De la documentación creada por ivan. &amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Esquematico actual del proyecto tracker &lt;br /&gt;
[[Archivo:Esquematico_tracker_2_https.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1º El tracker web llama al web service Remote login para iniciar sesión (comunicación https) y determinar si tiene permisos para la escucha y descarga de grabaciones. Se elimina el proxy&lt;br /&gt;
&lt;br /&gt;
2º Si la ubicación de la grabación es local, mira la ruta de esta y se procede a la escucha o descarga de esta.&lt;br /&gt;
&lt;br /&gt;
3º Si la ubicación de la grabación es remota, se realiza una petición al host remoto. El tipo de petición vendrá fijada por base de datos (http, https, ftp,ftps)&lt;br /&gt;
&lt;br /&gt;
4º Si utilizamos el tracker windows, este, como el tracker web, llama primero al web service remote login para la autenticación y tema de permisos (comunicación https extremo a extremo).&lt;br /&gt;
&lt;br /&gt;
5º Para descargar o escuchar una grabación desde el tracker windows, se llama al web service servidor de grabaciones pasándole simplemente el ID de segmento.mp3. Este web service, con el ID de segmento, se encarga de determinar la ubicación de la grabación.&lt;br /&gt;
&lt;br /&gt;
[[#Grabación_(Vivait_Tracker)| Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operación_plataforma_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
=== Enrutamiento ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Enrutamiento.png|885px |center]]&lt;br /&gt;
&lt;br /&gt;
==== Funcionamiento ====&lt;br /&gt;
El proceso de enrutamiento, como vemos en el esquemático, se compone de dos fases:&lt;br /&gt;
&lt;br /&gt;
# Preenrutameinto, que se encarga de tratar todas las llamadas&lt;br /&gt;
# Enrutamiento externo, que tiene módulos dedicados al enrutamiento hacia:&lt;br /&gt;
:*Enlaces externos. &lt;br /&gt;
:*Extensiones. &lt;br /&gt;
:*Usuarios de telefonía corporativa. &lt;br /&gt;
:*Facilidades. &lt;br /&gt;
:*Salas de conferencia. &lt;br /&gt;
:*Agentes de grupos ACD. &lt;br /&gt;
:*Grupos ACD. &lt;br /&gt;
:*Vdn. &lt;br /&gt;
:*Buzones para dejar mensaje. &lt;br /&gt;
:*Buzones para su gestión.&lt;br /&gt;
&lt;br /&gt;
Se asume que existen rutas directas entre todos los nodos de la red.&lt;br /&gt;
&lt;br /&gt;
Se asume que están directamente enrutadas todas las direcciones IP involucradas, tanto nodos, como terminales.&lt;br /&gt;
&lt;br /&gt;
Se asume que todas las facilidades están disponibles en todos los nodos, aunque es posible que la implementación sea diferente entre ellos.&lt;br /&gt;
&lt;br /&gt;
Los datos de entrada básicos al proceso de enrutamiento (pdEntr) son:&lt;br /&gt;
* Dispositivo&lt;br /&gt;
* Cola&lt;br /&gt;
* Origen&lt;br /&gt;
* Nodo entrada&lt;br /&gt;
* UCID&lt;br /&gt;
* CALLER_ID_NAME&lt;br /&gt;
* CALLER_ID_NUM&lt;br /&gt;
* DNIS&lt;br /&gt;
* Desvío por dialplan&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A partir de los datos de entrada básicos anteriores se pueden deducir los siguientes valores:&lt;br /&gt;
* Sede del dispositivo de entrada&lt;br /&gt;
* Sede del nodo de entrada&lt;br /&gt;
* Ancho de banda disponible en la sede del dispositivo&lt;br /&gt;
* Ancho de banda disponible en la sede del nodo&lt;br /&gt;
* Categoría entrante&lt;br /&gt;
* Valor del eje1 asignado a la llamadas&lt;br /&gt;
* CALLER_ID_NUM_EXTERNO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los datos de salida globales del proceso de enrutamiento (pdSale) son:&lt;br /&gt;
* Categoría saliente&lt;br /&gt;
* Código de cliente (opcional)&lt;br /&gt;
* Tipo de destino:	&lt;br /&gt;
:* No existe&lt;br /&gt;
:* Ruta externa&lt;br /&gt;
:* Extensión&lt;br /&gt;
:* Usuario de telefonía corporativa&lt;br /&gt;
:* Facilidad&lt;br /&gt;
:* Salas de conferencia&lt;br /&gt;
:* Agentes de grupos ACD&lt;br /&gt;
:* Grupos ACD&lt;br /&gt;
:* VDN&lt;br /&gt;
:* Buzón para dejar mensaje. &lt;br /&gt;
:* Buzón para dejar mensaje por ocupado. &lt;br /&gt;
:* Buzón para dejar mensaje por no contestación. &lt;br /&gt;
:* Buzón para su gestión.&lt;br /&gt;
* Destinatario (cuando se trata de un usuario o de un agente)&lt;br /&gt;
* Valor del eje1 asignado a la llamada&lt;br /&gt;
* Buzón de las extensiones y usuarios que los tengan asignados&lt;br /&gt;
* Si el buzón está en nodo distinto al de entrada&lt;br /&gt;
* DESVIO_INCONDICIONAL (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable) &lt;br /&gt;
* DESVIO_NO_CONTESTA (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable) &lt;br /&gt;
* DESVIO_OCUPADO (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable) &lt;br /&gt;
* DESVIO_FUERA_SERV (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los datos de salida para cada una de las posibles rutas en orden son (nn va de 01 maxRutas [nn son dos dígitos decimales]):&lt;br /&gt;
* CONTADOR_ABDE_nn (contador para control de ancho de banda en sede de dispositivo de entrada).  &lt;br /&gt;
* CONTADOR_ABNE_nn (contador para control de ancho de banda en sede de nodo de entrada).  &lt;br /&gt;
* CONTADOR_ABDS_nn (contador para control de ancho de banda en sede de dispositivo de salida).  &lt;br /&gt;
* CONTADOR_ABNS_nn (contador para control de ancho de banda en sede de nodo de salida).  &lt;br /&gt;
* CALLER_NAME_SAL_nn , puede salir de una extensión, un usuario o de un agente. &lt;br /&gt;
* CALLER_NUM_SAL_nn, puede salir de una extensión, un usuario o de un agente.  &lt;br /&gt;
* DESTINO_SAL_nn , en general, el valor C_NOMBRE o destino de salida.  &lt;br /&gt;
* RUTA_NODO_nn , Cadena de marcación para ir la nodo que soporta DESTINO_SAL_nn, si es distinto del nodo de entrada.  &lt;br /&gt;
* RUTA_SAL_nn &lt;br /&gt;
:* Extensión: cadena marcación. &lt;br /&gt;
:* Facilidad: E_CODIGO_FACILIDAD obtenido de la tabla CEN_FACILIDADES. &lt;br /&gt;
:* Usuario: cadena marcación de la extensión asignada al usuario en movilidad o en propiedad. &lt;br /&gt;
:* Agente: cadena marcación de la extensión a la que está conectado el agente. &lt;br /&gt;
:* Ruta externa: contexto que gestiona la llamada saliente.&lt;br /&gt;
&lt;br /&gt;
=====Fase preenrutamiento =====&lt;br /&gt;
&lt;br /&gt;
La fase de preenrutamiento (basada en la tabla CEN_PRE_RUTA) se usa en todas las llamadas entrantes, tanto internas, como externas. Permite desarrollar un “prerouting” estándar para ACD y para telefonía corporativa.&lt;br /&gt;
&lt;br /&gt;
Los datos de entrada al proceso de enrutamiento son iguales a los del proceso global de enrutamiento, excepto en que este proceso no usa el nodo de entrada ya que es independiente de éste.&lt;br /&gt;
&lt;br /&gt;
Los datos de salida de la fase de preenrutamiento:&lt;br /&gt;
* D_CATEGORIA_SAL &lt;br /&gt;
* COD_CLIENTE (opcional) &lt;br /&gt;
* TIPO_DESTINO_SAL&lt;br /&gt;
:* No existe.   &lt;br /&gt;
:* Volver a preenrutar.   &lt;br /&gt;
:* Ruta externa.   &lt;br /&gt;
:* Extensión.   &lt;br /&gt;
:* Usuario de telefonía corporativa.   &lt;br /&gt;
:* Facilidad.   &lt;br /&gt;
:* Sala de conferencia.   &lt;br /&gt;
:* Agente de grupos ACD.   &lt;br /&gt;
:* Grupos ACD.   &lt;br /&gt;
:* VDN.   &lt;br /&gt;
:* Buzón para dejar mensaje.   &lt;br /&gt;
:* Buzón para dejar mensaje por ocupado.   &lt;br /&gt;
:* Buzón para dejar mensaje por no contestación.   &lt;br /&gt;
:* Buzón para su gestión. &lt;br /&gt;
* COD_CLIENTE &lt;br /&gt;
* Valor del eje1 asignado a la llamada &lt;br /&gt;
* CALLER_NAME &lt;br /&gt;
* CALLER_NUM &lt;br /&gt;
* DESTINO&lt;br /&gt;
&lt;br /&gt;
El proceso de preenrutamiento consiste en seleccionar un único registro de la tabla CEN_PRE_RUTA y, con sus valores y con los valores de entrada al proceso, generar los datos de salida.&lt;br /&gt;
&lt;br /&gt;
Un posible tipo de salida es &amp;quot;Volver a preenrutar&amp;quot;. Esto permite realimentar el proceso un máximo de &amp;quot;max_pre_ruta_regs&amp;quot; veces (en archivo .conf) para simplificar configuración. Sólo tiene sentido realimentar si se ha hecho alguna modificación en los datos de selección de registro, ya que en caso contrario se produciría un bucle que el proceso de preenrutamiento es capaz de detectar y evitar.&lt;br /&gt;
&lt;br /&gt;
Para elegir el registro de CEN_PRE_RUTA, se tienen en cuenta los datos de entrada de la llamada, de modo que se cumpla con todos los puntos siguientes: &lt;br /&gt;
* ID_CATEGORIA_ENT igual a la del dispositivo de entrada.  &lt;br /&gt;
* CALLER_NUM de entrada  &lt;br /&gt;
:* Debe comenzar por la cadena C_ORIGEN_ENT_PREF o C_ORIGEN_ENT_PREF=NULL, con menos prioridad. Es conveniente rellenar este dato del modo más restrictivo que sea posible, independientemente de C_ORIGEN_ENT_EXPR. Ello permite disminuir el uso innecesario de recursos de evaluación de expresiones regulares.    &lt;br /&gt;
:* Debe de tener un número de dígitos igual o superior a N_ORIGEN_ENT_MIN_DIGITOS, si este valor no es NULL o cero.    &lt;br /&gt;
:* Debe de tener un número de dígitos igual o inferior a N_ORIGEN_ENT_MAX_DIGITOS, si este valor no es NULL o cero.    &lt;br /&gt;
:* Debe cumplir la expresión regular C_ORIGEN_ENT_EXPR, si ésta no es NULL.  &lt;br /&gt;
* DNIS empiece con C_DESTINO_ENT_PREF o C_DESTINO_ENT_PREF=NULL. Es conveniente rellenar este dato del modo más restrictivo que sea posible, independientemente de C_DESTINO_ENT_EXPR. Ello permite disminuir el uso innecesario de recursos de evaluación de expresiones regulares.  &lt;br /&gt;
* Si varias entradas cumplen la condición anterior, se prueba primero la que el campo C_DESTINO_ENT_PREF tenga una longitud mayor y, de entre éstas, la que C_ORIGEN_ENT_PREF tenga una longitud mayor.  &lt;br /&gt;
* DNIS tenga un número de dígitos igual o superior a N_DESTINO_ENT_MIN_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* DNIS tenga un número de dígitos igual o inferior a N_ORIGEN_ENT_MIN_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* DNIS cumpla la expresión regular C_DESTINO_ENT_EXPR, si ésta no es NULL. &lt;br /&gt;
&lt;br /&gt;
Si no se encuentra ninguna entrada adecuada, quiere decir que es una llamada prohibida y se devuelve el tipo de destino &amp;quot;No existe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Puede conseguirse un destino &amp;quot;por defecto&amp;quot; diferente, creando una entrada que encaje siempre para cada categoría: C_ORIGEN_ENT, C_ORIGEN_ENT_MIN_DIGITOS, C_ORIGEN_ENT_MAX_DIGITOS, C_ORIGEN_ENT_EXPR, C_DESTINO_ENT_PREF, N_DESTINO_ENT_MIN_DIGITOS, N_DESTINO_ENT_MAX_DIGITOS y C_DESTINO_ENT_EXPR a valor NULL.&lt;br /&gt;
&lt;br /&gt;
Una vez elegida una entrada, ésta puede transformar o sustituir el valor de ID_CATEGORIA, CALLER_NAME, CALLER_NUM, DESTINO, COD_CLIENTE y/o EJE1_MSK a la salida del proceso. &lt;br /&gt;
&lt;br /&gt;
Si ID_CATEGORIA_SAL es cero, se propaga a la salida el valor de la entrada. En caso contrario, se sustituye. &lt;br /&gt;
&lt;br /&gt;
Si C_CALLER_NAME está vacío, se mantiene el valor hubiese a la entrada. En caso contrario, se sustituye. &lt;br /&gt;
&lt;br /&gt;
C_CALLER_NUM puede contener una cadena que identifica el nuevo CALLER_NUM. Además, si la cadena comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo CALLER_NUM es igual al de entrada al proceso. &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo CALLER_NUM es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo. &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;. &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al CALLER_NUM de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo CALLER_NUM de salida. Si la expresión regular no se cumpliese, se propagará el valor de entrada al proceso. &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante que sustituye el valor a la entrada.&lt;br /&gt;
&lt;br /&gt;
Cada vez que se utilice una preruta, se incrementará el valor de N_CONTA si el valor de N_UMBRAL es mayor que cero.&lt;br /&gt;
&lt;br /&gt;
Un valor N_UMBRAL mayor que cero permite modificar el destino de salida cuando el valor de actual de N_CONTA (antes de incrementarse) supere o sea igual el valor de N_UMBRAL. Si se cumple la condición indicada, se usa como destino tras el preenrutamiento, los valores de los campos E_TIPO_DESTINO_SAL_2 y C_DESTINO_SAL_2.&lt;br /&gt;
&lt;br /&gt;
Si el valor de N_UMBRAL es menor o igual a cero o si N_CONTA es inferior a N_UMBRAL, se usa como destino tras el preenrutamiento, los valores de los campos E_TIPO_DESTINO_SAL_1 y C_DESTINO_SAL_1.&lt;br /&gt;
Con este mecanismo de N_CONTA y N_UMBRAL, se pretende facilitar el discriminar a los llamantes reincidentes, cuando sea necesario. &lt;br /&gt;
&lt;br /&gt;
Un proceso periódico externo debe encargarse de poner a cero o decrementar el valor de N_CONTA.&lt;br /&gt;
Como resultado de los procesos de filtrado y de verificación anteriores, se habrá obtenido un TIPO_DESTINO_SAL y un C_DESTINO_SAL a partir de los campos con sufijo &amp;quot;_1&amp;quot; o &amp;quot;_2&amp;quot;, con una metodología similar al caso C_CALLER_NUM.&lt;br /&gt;
&lt;br /&gt;
C_DESTINO_SAL_x puede contener cadena que permite obtener el nuevo destino. Además, si la cadena comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo destino es igual al de entrada al proceso.  &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo destino es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo.  &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;.  &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al destino de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo destino de salida. Si la expresión regular no se cumpliese, quiere decir que es una llamada prohibida y se encaminará hacia una facilidad por defecto.  &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante que sustituye el valor a la entrada. &lt;br /&gt;
Información de salida del proceso de preenrutamiento: Cuando TIPO_DESTINO_SAL_x toma los valores que se indican, el proceso global de enrutamiento sólo requiere de preenrutamiento y la información a devolver se obtiene dependiendo de TIPO_DESTINO_SAL_x: &lt;br /&gt;
* No existe: Se asume que no se conoce un destino para los datos de entrada, por lo que la llamada se encamina hacia una facilidad por defecto que gestiona su tratamiento.  &lt;br /&gt;
* Extensión: A partir de las tablas CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar la extensión en el nodo principal y en el secundario.  &lt;br /&gt;
* Facilidad: A partir de las tablas CEN_DISPOSITIVOS, CEN_FACILIDADES y CEN_NODOS.  &lt;br /&gt;
* Usuario de telefonía corporativa: A partir de las tablas CEN_USUARIOS, CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar al usuario en el nodo principal y en el secundario de la extensión que corresponde en base a movilidad, con prioridad, o en base a propiedad.  El caso de movilidad no se tiene en cuenta si el proceso de enrutamiento se realiza en &amp;quot;modo supervivencia&amp;quot;.  &lt;br /&gt;
* Sala conferencia: A partir de las tablas CEN_SALAS_CONFERENCIAS y CEN_NODOS.  &lt;br /&gt;
* Agente de ACD: A partir de las tablas ACD_USUARIOS, DAT_TR_ACD_EXTENSIONES, CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar al agente en el nodo principal y en el secundario.  &lt;br /&gt;
* VDN: A partir de las tablas ACD_VDN y CEN_NODOS, se devolverán los valores que permiten alcanzar al VDN en su nodo.  &lt;br /&gt;
* Grupo ACD: A partir de las tablas ACD_COLAS y CEN_NODOS, se devolverán los valores que permiten alcanzar al grupo ACD en su nodo. &lt;br /&gt;
&lt;br /&gt;
El campo B_GENERAR_SEGMENTO de la tabla CEN_PRE_RUTA indica al proceso de preenrutamiento que es preciso generar un segmento de tipo &amp;quot;preenrutamiento&amp;quot;. En el segmento generado, se rellena el campo C_ETIQUETA1 del nuevo segmento con el valor que contiene el campo homónimo del registro asociado en la tabla CEN_LISTA_PRE_RUTAS.&lt;br /&gt;
&lt;br /&gt;
===== Fase de enrutamiento en casos en que el destino no es externo =====&lt;br /&gt;
Datos de entrada al proceso de enrutamiento externo: iguales a los de salida del proceso de preenrutamiento (pdPreSale), uniéndose a éstos los datos globales de entrada al proceso (pdEntr). &lt;br /&gt;
&lt;br /&gt;
Datos de salida de la fase de enrutamiento: iguales que los del proceso global de enrutamiento (pdSale). &lt;br /&gt;
&lt;br /&gt;
Específicamente y sólo para los casos en que el destino es una extensión (tipo de destino extensión, usuario de telefonía corporativa o agente) es cuando son válidos los datos correspondientes al buzón asociado y los datos de los posibles desvíos previstos. &lt;br /&gt;
&lt;br /&gt;
También en este caso, se prevén dos posibles rutas, una se corresponde con el acceso a la extensión en el nodo principal de ésta y la otra en el nodo secundario. &lt;br /&gt;
&lt;br /&gt;
En el resto de tipos de destino, sólo se prevé una ruta que puede incluir o no un enlace internodal. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Fase de enrutamiento en el caso de destino externo =====&lt;br /&gt;
Datos de entrada al proceso de enrutamiento externo: iguales a los de salida del proceso de preenrutamiento (pdPreSale), uniéndose a éstos los datos globales de entrada al proceso (pdEntr). &lt;br /&gt;
Datos de salida de la fase de enrutamiento: iguales que los del proceso global de enrutamiento (pdSale). &lt;br /&gt;
&lt;br /&gt;
Se elige los primeros &amp;quot;max_ruta&amp;quot; registros (configurado en archivo .conf) en CEN_DESTINOS_EXTERNOS unido con CEN_RELACION_DESTINOS_ENLACES_EXTERNOS que, teniendo en cuenta los datos de entrada al proceso de enrutamiento, cumpla con todos los puntos siguientes: &lt;br /&gt;
* ID_CATEGORIA_ENT igual a la de salida del proceso de preenrutamiento.  &lt;br /&gt;
* C_DESTINO_SAL de proceso de preenrutamiento empiece con C_DESTINO_ENT_PREF. &lt;br /&gt;
* Si varias entradas cumplen la condicion anterior, se prueba primero la que el campo C_DESTINO_ENT_PREF tenga una longitud mayor.  &lt;br /&gt;
* C_DESTINO_SAL tenga un número de dígitos igual o superior a N_DESTINO_ENT_MIN_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* C_DESTINO_SAL tenga un número de dígitos igual o inferior a N_DESTINO_ENT_MAX_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* C_DESTINO_SAL cumpla la expresión regular C_DESTINO_ENT_EXPR, si ésta no es NULL. &lt;br /&gt;
&lt;br /&gt;
Aparte de la longitud del campo C_DESTINO_ENT_PREF, se usa N_PRIORIDAD como campo para ordenar los registros y seleccionar lo &amp;quot;max_ruta&amp;quot; primeros. &lt;br /&gt;
&lt;br /&gt;
Una vez que un registro es válido, se descartan todos los registros cuyo C_DESTINO_ENT_PREF es diferente del primero seleccionado. &lt;br /&gt;
&lt;br /&gt;
Como resultado de los procesos de filtrado y de verificación anteriores, se habrá obtenido hasta un máximo de &amp;quot;max_rutas&amp;quot; valores para posibles rutas. Las posibles propagaciones y transformaciones en los datos de cada ruta son función de los datos de cada registro seleccionado: &lt;br /&gt;
&lt;br /&gt;
CALLER_NAME_nn: Si C_CALLER_NAME está vacío, se propaga el valor de entrada. En caso contrario, se sustituye. &lt;br /&gt;
&lt;br /&gt;
CALLER_NUM_nn: Sale de C_CALLER_NUM que puede contener una cadena que identifica el nuevo CALLER_NUM_n. Además, si C_CALLER_NUM comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo CALLER_NUM_nn es igual al de entrada al proceso.  &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo CALLER_NUM_nn es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo.  &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;.  &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al CALLER_NUM de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo CALLER_NUM de salida. Si la expresión regular no se cumpliese, se propaga el valor de entrada al proceso.  &lt;br /&gt;
* &amp;quot;&amp;gt;&amp;quot; Si existe valor para CALLER_NUM_EXTERNO, se propagará éste a la salida. En caso contrario y si no está vacía la cadena que queda al eliminar el prefijo &amp;quot;&amp;gt;&amp;quot;, se susituye en la salida por el valor de la cadena sin prefijo. Si la cadena estuviese únicamente constituida por el valor &amp;quot;&amp;gt;&amp;quot;, se propaga el valor de entrada.  &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante sin ninguna modificación. &lt;br /&gt;
&lt;br /&gt;
C_DESTINO_SAL_nn: Se obtiene a partir de C_DESTINO_SAL que puede contener una cadena que identifica el nuevo destino. Además, si la cadena comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo destino es igual al de entrada al proceso. &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo destino es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo. &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;. &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al destino de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo destino de salida. Si la expresión regular no se cumpliese, se propaga el valor de entrada al proceso. &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante sin ninguna modificación. &lt;br /&gt;
&lt;br /&gt;
RUTA_NODO_nn: Sólo se usa si el nodo de salida es diferente del nodo de entrada. Contiene la cadena de marcación para ir la nodo que soporta DESTINO_SAL_nn. Sale del campo C_FORMATO_DIAL (sustituyendo variables) correspondiente al tipo de dispositivo del enlace exterior. &lt;br /&gt;
&lt;br /&gt;
RUTA_SAL_nn: Es el campo C_DATO_ASTERISK obtenido a partir del registro en la tabla CEN_ENLACE_EXTERIOR que se corresponde con ID_ENLACE_EXTERIOR de la tabla CEN_RELACION_DESTINOS_ENLACES_EXTERNOS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Control de ancho de banda ===&lt;br /&gt;
&lt;br /&gt;
Para el control de ancho de banda, primero hemos de tener en consideración que una llamada puede tener asociadas hasta cuatro sedes&lt;br /&gt;
:* Sede del terminal origen (terminal A)&lt;br /&gt;
:* Sede del nodo de registro del terminal origen (nodo A)&lt;br /&gt;
:* Sede del terminal destino (terminal B)&lt;br /&gt;
:* Sede del nodo de registro del terminal destino (nodo B)&lt;br /&gt;
&lt;br /&gt;
Además hemos de tener en cuenta que el audio de la conversación podrá ir:&lt;br /&gt;
:* De manera directa entre terminal A y terminal B&lt;br /&gt;
:* De manera indirecta, a través de los nodos A y B&lt;br /&gt;
&lt;br /&gt;
[[Archivo:ancho de banda.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Cuando se va a cursar una llamada de terminal A a terminal B, el proceso de enrutamiento del nodo A devuelve 4 variables de canal al dialplan:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! Variable!!Campos &lt;br /&gt;
|- &lt;br /&gt;
|R_ABDE_xx||R = Variable de rutas --- AB = ancho de banda --- D = dispositivo --- E = Entrante --- xx = de 0 a 3&lt;br /&gt;
|-&lt;br /&gt;
|R_ABNE_xx||R = Variable de rutas --- AB = ancho de banda --- N = nodo --- E = Entrante --- xx = de 0 a 3&lt;br /&gt;
|-&lt;br /&gt;
|R_ABDS_xx||R = Variable de rutas --- AB = ancho de banda --- D = dispositivo --- S = Saliente --- xx = de 0 a 3&lt;br /&gt;
|- &lt;br /&gt;
|R_ABNS_xx||R = Variable de rutas --- AB = ancho de banda --- N = nodo --- S = Saliente --- xx = de 0 a 3&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El valor de cada variable es una cadena del tipo '''AB.wwww.xxxx.y.z''' donde cada valor es:&lt;br /&gt;
:* '''wwww''' --&amp;gt; id de sede&lt;br /&gt;
:* '''xxxx''' --&amp;gt; ancho de banda total de la sede&lt;br /&gt;
:* '''y''' --&amp;gt; número de llamadas a sumar si conversación directa&lt;br /&gt;
:* '''z''' --&amp;gt; número de llamadas a sumar si conversación indirecta&lt;br /&gt;
&lt;br /&gt;
Por otro lado tenemos que tener en cuenta que el dialplan tiene control de las llamadas que cada sede puede cursar&lt;br /&gt;
&lt;br /&gt;
De esta forma, cuando existe una nueva llamada el dialplan aplica la fórmula, suma el resultado al número de llamadas en curso y lo compara con el máximo...si el resultado es mayor que le máximo la llamada no se cursará por congestión&lt;br /&gt;
&lt;br /&gt;
Configuraremos el ancho de banda por sede en el portal de administración y el consumo que hace cada llamada en la variable '''AB_CONSUMO_LLAMADA''' del fichero '''ext_MDtel_particular.conf''' de cada nodo de conmutación; el valor por defecto es 32&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Puesto de trabajo ==&lt;br /&gt;
El puesto de trabajo del agente en la plataforma '''''VIVA'''''it  (para el producto '''''VIVA'''''it Suite) estará compuesto por:&lt;br /&gt;
* PC (típicamente windows) en el que reside la aplicación '''''VIVA'''''it Desk&lt;br /&gt;
* Terminal telefónico con extensión física asociada.&lt;br /&gt;
&lt;br /&gt;
Para más información [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Puestos | ver sección Portal de administración-VIVAit Suite ACD+ - Puestos]].&lt;br /&gt;
&lt;br /&gt;
=== Relación PC/teléfono en puesto de trabajo ===&lt;br /&gt;
&lt;br /&gt;
Existirá una relación única entre nombre PC y extensión física asociada, si bien los agentes se identificarán por su login que les acompaña al puesto de trabajo en el que se loguen&lt;br /&gt;
Existe un procedimiento documentado para la operativa de cambio de puesto de trabajo, en caso de ser necesario el cambio de PC o de teléfono de un puesto de trabajo.&lt;br /&gt;
==== Procedimiento para un cambio de puesto de trabajo ====&lt;br /&gt;
Se basa en una asignación de PC a teléfono relaccionando la extensión telefónica del terminal físico con el nombre del puesto de trabajo. La configuración de dicha asociación se realiza en el portal de administración de la plataforma. &lt;br /&gt;
&lt;br /&gt;
Cualquier cambio que se realice en terminal telefónico o PC de agente ha de mantener la asociación en el portal a efectos de permitir el funcionamiento del sistema.&lt;br /&gt;
&lt;br /&gt;
A continuación se reflejan los cambios más habituales:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cambio !! Procedimiento !! Punto de acción&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| Cambio de ubicación de un PC || Opción 1.- Renombrar el PC para que conserve el nombre que tenía el anterior en esa ubicación || PC de agente&lt;br /&gt;
|-&lt;br /&gt;
|  Opción 2.- Rehacer la asignación extensión/puesto || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot;| Instalación de PC nuevo en puesto existente || Opción 1.- Renombrar el PC para que conserve el nombre que tenía el anterior en esa ubicación || PC de agente&lt;br /&gt;
|-&lt;br /&gt;
| Opción 2.- Rehacer la asignación extensión/puesto || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| Cambio de nombre en un PC || Rehacer asignación extensión/puesto || Rehacer asignación extensión/puesto&lt;br /&gt;
|-&lt;br /&gt;
|Cambio de ubicación de un teléfono  || Rehacer la asignación extensión/puesto&lt;br /&gt;
 || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| Instalación de un teléfono nuevo en puesto existente || Rehacer la asignación extensión/puesto || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| Instalación de un nuevo puesto de agente|| Hacer asignación extensión/puesto || Portal de administración&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:relacion_puesto_agente.png|center|500px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Estructura de aplicaciones en puesto de trabajo ===&lt;br /&gt;
Las aplicaciones del puesto de trabajo pueden estar ubicadas en cualquier carpeta del sistema. Es importante tener en cuenta que los procesos de actualización, logs… escriben en dichas carpetas, por lo que el usuario de windows deberá tener permisos de lectura/escritura y borrado sobre dichas carpetas&lt;br /&gt;
La instalación del puesto de trabajo es muy liviana para el sistema; las aplicaciones ocupan poco espacio y no se modifican ficheros del sistema operativo (registry o similares)&lt;br /&gt;
Los ficheros importantes son&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Fichero !! Descrición&lt;br /&gt;
|-&lt;br /&gt;
| Vivait-desk.exe || Contiene la aplicación '''''VIVA'''''it Desk de agente&lt;br /&gt;
|-&lt;br /&gt;
| vivait_desk_dll.dll||Este fichero contiene controles sobre los formularios (controles de&lt;br /&gt;
texto, algunas reglas de obligatoriedad…)&lt;br /&gt;
|-&lt;br /&gt;
| nimitz.ini || Configuración del puesto de agente&lt;br /&gt;
|-&lt;br /&gt;
| lanzador.exe || Aplicación de actualización de versiones&lt;br /&gt;
|-&lt;br /&gt;
| lanzador.ini || Configuración del actualizador de aplicaciones&lt;br /&gt;
|-&lt;br /&gt;
| Carpeta forms || En esta carpeta están ubicados los formularios que se abren ante llamada entrante o saliente&lt;br /&gt;
|-&lt;br /&gt;
| Carpeta imágenes || Contiene las imágenes izquierda y derecha de la barra de '''''VIVA'''''it Desk&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Secciones de utilidad en nimitz.ini ===&lt;br /&gt;
&lt;br /&gt;
==== Configuración del puesto de agente ====&lt;br /&gt;
&lt;br /&gt;
El fichero nimitz.ini contiene la configuración del puesto de agente; sus principales parámetros son:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| |''' Fichero'''&lt;br /&gt;
|| '''Descripción'''&lt;br /&gt;
|-&lt;br /&gt;
|Sección [bd1]&lt;br /&gt;
||host=&amp;quot;ip_BBDD_tiempo_real&amp;quot;&lt;br /&gt;
puerto=&amp;quot;Nº puerto&amp;quot;&lt;br /&gt;
basedatos=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
usuario=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
clave=&amp;quot;UIk5jMY9PVX6ogg=&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Contiene información para la conexión a BBDD de tiempo real, en la que '''''VIVA'''''it Desk fundamentalmente inserta información&lt;br /&gt;
|-&lt;br /&gt;
|Sección [bd2]&lt;br /&gt;
||host=&amp;quot; ip_BBDD_replica &amp;quot;&lt;br /&gt;
puerto=&amp;quot;Nº puerto&amp;quot;&lt;br /&gt;
basedatos=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
usuario=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
clave=&amp;quot;UIk5jMY9PVX6ogg=&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Contiene información para la conexión a BBDD de réplica, en la que '''''VIVA'''''it Desk solo leerá información&lt;br /&gt;
|-&lt;br /&gt;
|Sección [telefono]&lt;br /&gt;
||pruebas=1 (Valores válidos 0 ó 1)&lt;br /&gt;
Activación de funcionalidad &amp;quot;servicio técnico&amp;quot; en '''''VIVA'''''it Desk.&lt;br /&gt;
&lt;br /&gt;
puesto=&amp;quot;Nombre puesto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Sección [trazas]&lt;br /&gt;
|| nivel=3&lt;br /&gt;
&lt;br /&gt;
archivo=1&lt;br /&gt;
&lt;br /&gt;
consola=0&lt;br /&gt;
&lt;br /&gt;
sobreescribir=1&lt;br /&gt;
&lt;br /&gt;
Activación de generación de ficheros de trazas &amp;quot;viva-desk.log&amp;quot; en carpeta de aplicaciones &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Parámetros en invocación a '''''VIVA'''''it Desk ===&lt;br /&gt;
&lt;br /&gt;
La aplicación '''''VIVA'''''it Desk puede ser invocada con una serie de parámetros que condicionan su funcionamiento; los parámetros son:&lt;br /&gt;
* Primer parámetro: Nombre del archivo .ini; usado como alternativa al fichero por defecto &amp;quot;nimitz.ini&amp;quot;&lt;br /&gt;
* Segundo parámetro: Nombre de puesto; usado como alternativa al nombre de puesto del ordenador&lt;br /&gt;
* Tercer parámetro: Nombre de login; para forzar un usuario; es de utilidad si el sistema está configurado como &amp;quot;confiar en sistema operativo&amp;quot;, en cuyo caso no permite seleccionar un login de agente para acceder a la aplicación&lt;br /&gt;
&lt;br /&gt;
=== Instalación y actualización de aplicaciones de puestos de trabajo ===&lt;br /&gt;
La instalación y actualización de las aplicaciones en el puesto de trabajo pasan por disponer de los ficheros “lanzador.exe” y “lanzador.ini” (debidamente configurado) dentro de la carpeta en la que se desee instalar.&lt;br /&gt;
Lanzando la aplicación “lanzador.exe” se instalará o actualizará el sistema. &lt;br /&gt;
&lt;br /&gt;
El fichero “lanzador.ini” tiene el siguiente aspecto:&lt;br /&gt;
 URL=&amp;quot;http://IP_Servidor:8180/WSActualizaXML/actualizar.xml&amp;quot;&lt;br /&gt;
 BASE_URL_DESCARGAS=&amp;quot;http://IP_servidor:8180/XMLFILES/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Servicio técnico en '''''VIVA'''''it Desk ===&lt;br /&gt;
La activación de la funcionalidad de servicio técnico en '''''VIVA'''''it Desk nos permite realizar sincronizaciones manuales de la aplicación y activar trazas a nivel de Base de Datos o a nivel de log sobre el propio '''''VIVA'''''it Desk. Pulsando el botón derecho del ratón sobre la barra '''''VIVA'''''it Desk accederemos a las capacidades de soporte técnico&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Funcionamiento de la plataforma en modo emergencia ==&lt;br /&gt;
== Accesos Web ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Aplicación !! Enlace&lt;br /&gt;
|-&lt;br /&gt;
|Portal de administración '''''VIVA'''''it Suite || http://ip_admin:8180/Vivait-Call&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker||http://ip_tracker:8180/Vivait-Tracker&lt;br /&gt;
|-&lt;br /&gt;
|Monitor Web||http://ip_monitor:8180/MonitorWeb&lt;br /&gt;
|-&lt;br /&gt;
|Monitorización Zabbix||http://ip_zabbix:80/zabbix&lt;br /&gt;
|-&lt;br /&gt;
|Base de datos tiempo real||http://ip_bbdd_tr:80/phpmyadmin/&lt;br /&gt;
|-&lt;br /&gt;
|Base de datos réplica||http://ip_bbdd_replica:80/phpmyadmin&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Permisos de aplicaciones ===&lt;br /&gt;
Se crean a través del '''portal de administración ''VIVA''it''' . Debe conocerse como funcionan los ejes [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Ejes| ver sección Portal de administracion - General - Ejes]] y que existen cuatro aplicaciones creadas en la plataforma:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:17_2 Pestaña Genera - Usuarios - Explicacion permisos.png|center]]&lt;br /&gt;
&lt;br /&gt;
La forma como dar permisos de aplicaciones a un usuario esta explicada en la [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Asignaci.C3.B3n_de_Permisos_de_Usuario_por_Administrador | sección  Portal de administracion - General - Usuarios ]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elementos monitorizados del sistema ==&lt;br /&gt;
===Generalidades de Zabbix===&lt;br /&gt;
====Zabbix ====&lt;br /&gt;
Zabbix es una solución de código abierto que ofrece características de monitorización avanzada de forma tecnica y para el negocio, para todo tipo de servidores, aplicaciones y equipos que forman parte de una red. La versión que utilizamos en '''md'''tel es Zabbix 2.2.2.&lt;br /&gt;
&lt;br /&gt;
Zabbix  monitoriza los  recursos  de un equipo en forma remota, permite centralizar la información en un servidor que permite visualizar el monitoreo, cuenta con una interfaz de administración vía web y utiliza un mecanismo flexible de la notificación que permita que los usuarios configuren las alarmas basadas email para informar virtualmente cualquier acontecimiento. Esto permite una reacción rápida a los problemas del servidor. &lt;br /&gt;
&lt;br /&gt;
Para acceder al servidor Zabbix abrimos el navegador y ponemos la dirección de red (IP) de la maquina donde se encuentra instalado el servidor de Zabbix seguido de &amp;quot;/Zabbix.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Direccion.IP.Zabbix.Server/zabbix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Zabbix posee documentación tanto en wiki, foros y comunidades.Para ampliar la información se puede visitar:&lt;br /&gt;
[[http://www.zabbix.com Sitio oficial de Zabbix]]&lt;br /&gt;
===== Glosario Zabbix =====&lt;br /&gt;
Se trata de una lista de conceptos básicos de Zabbix, pero para ampliar la información sobre otros términos, visite el [[http://www.zabbix.com Sitio oficial de Zabbix]].&lt;br /&gt;
* '''host''' &lt;br /&gt;
:En Zabbix, un host es una entidad que define el elemento en red que se desea monitorizar/supervisar activamente sus recursos locales y aplicaciones. Este puede ser una impresa, router, switch, sensores de temperatura, un servidor, un ordenador,etc, o también una aplicación. La característica de un host es que debe poseer una dirección de red (IP).&lt;br /&gt;
&lt;br /&gt;
* '''host group'''&lt;br /&gt;
:En Zabbix, un host group (grupo host) es una agrupación lógica de los host, como una forma de organizar los dispositivos &amp;quot;Host&amp;quot; registrados en Zabbix para su monitorización. Puede contener hosts y templates.  Los grupos host se utilizan en la asignación de derechos de acceso a los hosts para diferentes grupos de usuarios.&lt;br /&gt;
&lt;br /&gt;
* '''item'''&lt;br /&gt;
:En Zabbix, un item (medida) es el parámetro que deseamos obtener del host, básicamente es una medida especifica que el servidor Zabbix recogerá de los agentes de Zabbix instalados en los host.&lt;br /&gt;
&lt;br /&gt;
* '''trigger'''&lt;br /&gt;
:En Zabbix, un trigger(disparador) es una entidad que define un umbral para detectar la existencia de un problema en un dispositivo.  Son valores recolectados por los &amp;quot;items&amp;quot;, se usa para &amp;quot;evaluar&amp;quot; los datos recibidos con condiciones definidas. Las condiciones son de tipo aritmético y lógico.&lt;br /&gt;
* '''event'''&lt;br /&gt;
:En Zabbix, un event (evento) es la aparición de un suceso en Zabbix que necesita atención. Por ejemplo, el cambio de estado a raíz de un trigger, el descubrimiento de un nuevo agente (autoregistro),etc.&lt;br /&gt;
* '''action'''&lt;br /&gt;
:En Zabbix, una action(acción) son reglas predefinidas para reaccionar a un evento disparado por los triggers, es decir, define qué hacer ante un evento. Consta de operaciones (por ejemplo, una notificacion, comandos remotos) y condiciones (cuando  la operación se lleva a cabo).&lt;br /&gt;
* '''notification'''&lt;br /&gt;
:En Zabbix, una notification (notificacion) es la entidad con que Zabbix nos puede notificar (Correo Electrónico,mensajes vía &amp;quot;SMS&amp;quot; o Jabber).&lt;br /&gt;
* '''template'''&lt;br /&gt;
:En Zabbix, un témplate (plantilla) viene predefinida en la instalación de Zabbix Server, con el fin de ser aplicada en base al tipo de sistema operativo(Linux, Mac, Window, etc) o en elementos que comparten los mismos parámetros de medición, por ejemplo la carga del procesador, uso de memoria y  uso de recursos de red. Las plantillas son un conjunto de módulos &amp;quot;ITEM, TRIGGERS y GRÁFICAS&amp;quot;, que están preconfigurados y listas para ser aplicadas a uno o varios hosts.&lt;br /&gt;
* '''application'''&lt;br /&gt;
:En Zabbix, una application (aplicación) es una agrupación lógica de los items.&lt;br /&gt;
* '''Zabbix server'''&lt;br /&gt;
:El Zabbix server (servidor de Zabbix) es el proceso central donde están definidas las configuraciones y donde se almacenan todos los datos y estadísticas recogidas de los agentes Zabbix.Consta de una base de datos, una interfaz web y el propio server. Como servidor, se encarga de recoger los datos de los agentes, calcular los triggers, enviar notificaciones, etc. &lt;br /&gt;
* '''Zabbix agent'''&lt;br /&gt;
:El zabbix agent (agente de Zabbix)  es un proceso desplegado en los host que son supervisados, que funciona como un servicio y puede funcionar de forma activa y pasiva simultáneamente.&lt;br /&gt;
&lt;br /&gt;
=====Discovery=====&lt;br /&gt;
La funcionalidad discovery(detección) lista los dispositivos que se integran en nuestra red y el tipo de servicios que proporciona. Por ejemplo, si la empresa tuviera cien colas ACDs, y veinticinco VDNS, y en cada cola como veinte medidas, seria muy laborioso registrar una por uno cada uno.  &lt;br /&gt;
Gracias a esta funcionalidad, se descubre todas las interfaces de red que se tiene, automáticamente y tanto para colas nodos o IVR. Para utilizar esta funcionalidad , se hace el uso de dos script, que se instalan en el momento de instalación de Zabbix en el directorio &amp;quot;/usr/local/sbin&amp;quot;, que son:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
'''zabbixDiscoveryQueues.pl''' : script utilizado para buscar colas ACD.&lt;br /&gt;
&lt;br /&gt;
'''zabbixDiscoveryVDN.pl''' : script utilizado para buscar VDNS.&lt;br /&gt;
|}&lt;br /&gt;
La explicación de como configurarla se encuentra en el manual oficial [[https://www.zabbix.com/documentation/2.2/manual/discovery/network_discovery/rule | Zabbix detección de redes]].&lt;br /&gt;
&lt;br /&gt;
=====Notificaciones=====&lt;br /&gt;
&lt;br /&gt;
Necesariamente, debe darse de alta al usuario y darse de alta el servidor de correo electrónico para poder ser capaz de enviar correos.&lt;br /&gt;
&lt;br /&gt;
Por otro lado, el formato del correo electrónico y las condiciones de envío de correo al usuario se configura en las acciones. Véase  el [[https://www.zabbix.com/documentation/2.2/manual/quickstart/notification  | manual oficial de Zabbix 2.2]]&lt;br /&gt;
&lt;br /&gt;
=====Usuarios=====&lt;br /&gt;
Zabbix permite la organización de usuarios en grupos para establecer los permisos adecuados de acuerdo al tipo de perfil que deseemos crear. Necesariamente un usuario debe permanecer a un grupo o varios grupos.Todos los usuarios acceden a la aplicación de Zabbix a través de la interfaz Web. &lt;br /&gt;
&lt;br /&gt;
Cada usuario Zabbix se le asigna un nombre de usuario único , una contraseña y podemos indicarle que tipo de comunicación que posee, normalmente es vía email, pero puede ser vía a otro tipo de medios. Para mas información ver el [[https://www.zabbix.com/documentation/2.2/manual/web_interface/user_profile || manual oficial ]].&lt;br /&gt;
 &lt;br /&gt;
=====Visualización=====&lt;br /&gt;
Con Zabbix es posible visualizar los datos como  gráficos, pantallas, mapas y hasta presentaciones cambiantes, entre otros. En este apartado solo nombraremos características esenciales que se tendra que completar con el [[https://www.zabbix.com/documentation/2.2/manual/config/visualisation | manual oficial]]&lt;br /&gt;
======Graphs======&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''Nota:''' Debe crearse algun item dentro del host para poder utilizar una gráfica.&lt;br /&gt;
|}&lt;br /&gt;
En Zabbix una gráfica sirve para representar gráficamente los resultados obtenidos de uno item o varios items.&lt;br /&gt;
[[File:EjemploGrafica.png|center|750px]]&lt;br /&gt;
Los valores min / avg / max que Zabbix obtiene y representa son de un registro de datos de la tabla tendencias.&lt;br /&gt;
&lt;br /&gt;
======Screens======&lt;br /&gt;
La pantalla refiere a otra característica adaptable de ZABBIX cuál permite que los usuarios creen las pantallas personalizadas dentro de ZABBIX para exhibir la información. Se considera como una colección de gráficas y no depende del host. Una pantalla puede consistir en gráficos simples, gráficos personalizados, integrar mapas, Alertas, gráficos estadísticos o texto llano tal como los 5 valores pasados de un item particular entre otros; y mostrar la información de forma dinámica.&lt;br /&gt;
&lt;br /&gt;
[[File:EjemploScreen.png|center|750px]]&lt;br /&gt;
&lt;br /&gt;
======Maps======&lt;br /&gt;
En Zabbix, un map (mapa) es una representación gráfica de la situacion de nuestros dispositivos en red. Es un escenario que muestra nuestra red, aplicaciones y servicios a través de figuras o iconos.  Dichas figuras toman vida en respuesta a los eventos que se dan en nuestro entorno.&lt;br /&gt;
[[File:EjemploMaps.png|center|750px]]&lt;br /&gt;
[[File:EstadosMaps.png|center|750px]]&lt;br /&gt;
===Zabbix en '''MD'''tel===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Configuraciones de Zabbix ====&lt;br /&gt;
&lt;br /&gt;
===== Agentes Zabbix =====&lt;br /&gt;
{|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 '''Nota:''' Hay que instalar un agente Zabbix en cada maquina que se quiera monitorizar.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El agente de Zabbix puede recoger datos: &lt;br /&gt;
*'''De forma pasiva:''' el server contacta al agente pidiéndole un dato (por ejemplo el consumo de CPU en ese instante) y el agente responde al server con ese dato. A esta acción del agente le llamaremos '''Agente activo'''.&lt;br /&gt;
*'''De forma activa:''' en un primer momento, el server le enviará al agente el listado de items a monitorizar. A partir de ese momento, será el agente que de forma periódica recogerá datos sobre esos ítems y se los hará llegar al server. A esta acción del agente le llamaremos ''''''Agente pasivo''''''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== Configurar agente de forma pasiva======&lt;br /&gt;
Para configurar el agente de Zabbix necesitamos acceder a la maquina que actuará como agente, y en el directorio /etc/zabbix modificar el fichero '''zabbix_agentd.conf''' e indicar cual es la dirección de red (IP) del servidor Zabbix.&lt;br /&gt;
&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 ##### Passive checks related&lt;br /&gt;
 ### Option: Server&lt;br /&gt;
 #       List of comma delimited IP addresses (or hostnames) of Zabbix servers.&lt;br /&gt;
 #       Incoming connections will be accepted only from the hosts listed here.&lt;br /&gt;
 #       If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1'  &lt;br /&gt;
 #       are treated equall$&lt;br /&gt;
 #&lt;br /&gt;
 # Mandatory: no&lt;br /&gt;
 # Default:&lt;br /&gt;
 Server= IP.Server Zabbix.&lt;br /&gt;
|}&lt;br /&gt;
Tras la configuración del fichero, debemos reiniciar el servicio de los agentes.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 sudo service zabbix-agent restart&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====== Configurar agente de forma activa ======&lt;br /&gt;
&lt;br /&gt;
Para configurar el agente de Zabbix necesitamos acceder a la máquina que actuará como agente, y en el directorio /etc/zabbix modificar el fichero '''zabbix_agentd.conf''' e indicar cual es la dirección de red (IP) del servidor Zabbix.&lt;br /&gt;
&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 ##### Active checks related&lt;br /&gt;
 ### Option: ServerActive&lt;br /&gt;
 #       List of comma delimited IP:port (or hostname:port) pairs of Zabbix serv$&lt;br /&gt;
 #       If port is not specified, default port is used.&lt;br /&gt;
 #       IPv6 addresses must be enclosed in square brackets if port for that hos$&lt;br /&gt;
 #       If port is not specified, square brackets for IPv6 addresses are option$&lt;br /&gt;
 #       If this parameter is not specified, active checks are disabled.&lt;br /&gt;
 #       Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12$&lt;br /&gt;
 #&lt;br /&gt;
 # Mandatory: no&lt;br /&gt;
 # Default:&lt;br /&gt;
 ServerActive=127.0.0.1&lt;br /&gt;
 --------------------------sección separada----------------------------&lt;br /&gt;
 ### Option: UserParameter&lt;br /&gt;
 #       User-defined parameter to monitor. There can be several user-defined pa$&lt;br /&gt;
 #       Format: UserParameter=&amp;lt;key&amp;gt;,&amp;lt;shell command&amp;gt;&lt;br /&gt;
 #       See 'zabbix_agentd' directory for examples.&lt;br /&gt;
 #&lt;br /&gt;
 # Mandatory: no&lt;br /&gt;
 # Default:&lt;br /&gt;
 # UserParameter=&lt;br /&gt;
 User_parameters:asterisk.pid, /usr/bin/asterisk -rx 'core show chanels'|grep 'active calls'| cat -d -f 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El parámetro '''User_parameters''' tiene un formato de este estilo:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 User_parameters: NombreMedida, comando.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El nombre de la medida se refiere al nombre que demos a la aplicación , no hace falta que exista una aplicación con ese nombre en Zabbix, y el comando , es el comando remoto que tiene que ejecutar el servidor Zabbix. Posiblemente necesita darse permisos para ejecutar el comando y siempre debe devolver un valor (un numero o un tiempo) que el servidor Zabbix puede manejar.&lt;br /&gt;
Tras la configuración del fichero, debemos reiniciar el servicio de los agentes.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 sudo service zabbix-agent restart&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Scripts del Servidor Zabbix =====&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''': &amp;lt;small&amp;gt;No olvidar que en la misma maquina del server Zabbix, debe configurarse como agente de Zabbix.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Después de realizar la [[# Instalación de Zabbix | Instalación de Zabbix ]] correctamente. Se han creado otros ficheros scripts (''scripts propios de '''md'''tel'') que facilitarán la petición del servidor a los agentes activos, para poder parametrizar todos los elementos del negocio que suelen monitorizarse. &lt;br /&gt;
Dependiendo de lo que vaya a monitorizarse necesitaremos algún script o todos. Algunos nos informan sobre elementos de negocio, saber si asterisk funciona , monitorizar el CTI (lanzara nc localhost 1111) , controlar el Intz-Nimitz, comprobar si funciona motalsal, ect.&lt;br /&gt;
&lt;br /&gt;
Cada script se exportara a los host, para que pueda facilitar los datos que pide el servidor Zabbix y configurarse.&lt;br /&gt;
Por ejemplo,para monitorizar las llamadas en curso del ACD, agentes conectados, agentes desconectados, etc.&lt;br /&gt;
Todos los scripts se deben colocar en el directorio /usr/local/sbin con permisos 755, su nombre es parecido a &amp;quot;zabbixSenderXXXXX.pl&amp;quot;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 ls /usr/local/sbin/ |grep zabbixSender&lt;br /&gt;
 '''zabbixSenderACDBD.pl'''&lt;br /&gt;
 '''zabbixSenderACD.pl'''&lt;br /&gt;
 '''zabbixSenderCTI.pl'''&lt;br /&gt;
 '''zabbixSender-intz-nimitz.pl'''&lt;br /&gt;
 '''zabbixSenderMotorSal.pl'''&lt;br /&gt;
 '''zabbixSenderMyACDSuperv.pl'''&lt;br /&gt;
 '''zabbixSenderRecordNodo.pl'''&lt;br /&gt;
 '''zabbixSenderRecordCentral.pl'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Se crea una tarea programada en linux para poder ejecutarse los scripts, programando el tiempo en que debe ejecutarse.&lt;br /&gt;
&lt;br /&gt;
Si visualizo que &amp;quot;............&amp;quot; aparece:&lt;br /&gt;
&lt;br /&gt;
*****  root zabbix&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderACDBD.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtiene diversos valores por cada cola, estados de agente por cola y estados de agente generales.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor BDTR.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:''' Ruta al archivo de configuración (Por ejemplo: ''/etc/MDtel/zabbixSenderACDBD.pconf'')&lt;br /&gt;
&lt;br /&gt;
'''Archivo de configuración:''' zabbixSenderACDBD.pconf&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''$db:''' Nombre de la BBDD (normalmente nimitz)&lt;br /&gt;
 '''$dbHost:''' Dirección IP del servidor de BBDD de TR (normalmente BDTR)&lt;br /&gt;
 '''$dbPort:''' Puerto MySQL (normalmente 3306)&lt;br /&gt;
 '''$dbUsuario:''' Usuario MySQL (normalmente nimitz)&lt;br /&gt;
 '''$dbClave:''' Clave del usuario&lt;br /&gt;
 '''$sZab:''' Dirección IP del servidor Zabbix&lt;br /&gt;
 '''$hZab:''' Nombre del host Zabbix (normalmente el nombre de máquina, tal y como se configura en &lt;br /&gt;
 zabbix_agentd.conf o en el host en la web de Zabbix)&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderACD.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener el PID de Asterisk para revisar si se ha reiniciado en caso de que cambie.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor ACD.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:''' Ruta al archivo de configuración (Por ejemplo: ''/etc/MDtel/zabbixSenderACD.pconf'').&lt;br /&gt;
&lt;br /&gt;
'''Archivo de configuración:''' zabbixSenderACDBD.pconf.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''$db:''' Nombre de la BBDD (normalmente nimitz)&lt;br /&gt;
 '''$dbHost:''' Dirección IP del servidor de BBDD de TR (normalmente BDTR)&lt;br /&gt;
 '''$dbPort:''' Puerto MySQL (normalmente 3306)&lt;br /&gt;
 '''$dbUsuario:''' Usuario MySQL (normalmente nimitz)&lt;br /&gt;
 '''$dbClave:''' Clave del usuario&lt;br /&gt;
 '''$sZab:''' Dirección IP del servidor Zabbix&lt;br /&gt;
 '''$hZab:''' Nombre del host Zabbix (normalmente el nombre de máquina, tal y como se configura en&lt;br /&gt;
 zabbix_agentd.conf o en el host en la web de Zabbix)&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
======zabbixSenderCTI.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de vivait-cti.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute vivait-cti. Normalmente el servidor ACD.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======zabbixSender-intz-nimitz.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de intz-nimitz.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute intz-nimitz.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
======zabbixSenderMotorSal.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de motorSal.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute motorSal.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderMyACDSuperv.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de myAcdSuperv.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute myAcdSuperv.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderRecordNodo.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de recordNodo.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute recordNodo.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderRecordCentral.pl======&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de recordCentral.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute recordCentral.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A continuación se muestra una tabla resumen de los distintos scripts y sus funcionalidades: &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Zabbix_scripts.png |960px]]&lt;br /&gt;
&lt;br /&gt;
====== Dimensionamiento del servidor (Startpollers) ======&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''': &amp;lt;small&amp;gt;EL parámetro StartPollers es un &amp;lt;u&amp;gt;parámetro numérico&amp;lt;/u&amp;gt; que forma parte del fichero de configuración &lt;br /&gt;
 del servidor Zabbix(zabbix_server.conf). Por defecto el servidor Zabbix esta configurado para&lt;br /&gt;
 iniciar con cinco startpollers.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El servidor Zabbix puede hace peticiones a los agentes de las medidas que necesita o quiere. O en caso contrario los agentes envian en un tiempo determinado la información al servidor. Para recibir todas estas peticiones necesitamos los pollers.  &lt;br /&gt;
&lt;br /&gt;
Los poller son los procesos encargados de recibir todas las peticiones de medidas. Aumentaremos su cantidad dependiendo de la necesitad que tengamos. Para ello podemos observar la queue , que es la encargada de almacenar un listado de todas las cosas que están pedidas para medirse y recibirse.  SI por ejemplo esta cola (queue) muestra mas de mil medidas seguramente estos pollers sean un cuello de botella y habrá que aumentar su numero.&lt;br /&gt;
&lt;br /&gt;
=====Templates=====&lt;br /&gt;
&lt;br /&gt;
Zabbix cuenta con templates (plantillas) que facilitan la tarea de &amp;quot;Registrar Equipos y Dispositivos&amp;quot; y agregarles métricas; acelerar el despliegue de las tareas de supervisión en un host; aplicar cambios masivos a tareas de supervisión. En '''md'''tel hemos creado plantillas propias que facilitan estos procesos, los cuales necesitaremos [[#Importar templates |importar templates]].&lt;br /&gt;
&lt;br /&gt;
Las plantillas están vinculados directamente a los hosts individuales, por tanto se necesitaran utilizar en cada host.&lt;br /&gt;
&lt;br /&gt;
Automáticamente, cada template rellena por item las aplicaciones, trigers, alarmas,gráficos,... etc. &lt;br /&gt;
&lt;br /&gt;
A continuación, se muestran los distintos bloques de funciones de la instalación en función de cada template:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! Se instalan en general &lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| SI (si clúster)&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| si&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| -&lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| si(si no posee ip virtuales de clúster)&lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| si&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ '''Dependiendo del tipo de nodo:'''&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! ACD !! Corporativo/GW&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| Si || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - || Si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - || Si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ '''Dependiendo del tipo de Base de dato'''s:&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! BBDD &amp;lt;br /&amp;gt;Tiempo Real !! BBDD&amp;lt;br /&amp;gt; Réplica !! BBDD Copia&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| Si(si ACD) || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| si || si || si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| si || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! Administración&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - &lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - &lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal||SI (si posee servidor calendarios)&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! Servidor de grabaciones&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - &lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| Si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - &lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal||-&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ '''Monitorización'''&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! General !! Contact Center&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - || - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - || - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| si || - &lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - || - &lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 * El template OS Linux tiene asociado el Template App Zabbix Agent.&lt;br /&gt;
 Una '''base de datos unificada''' es una base de datos de tiempo real junto a  una base de datos de replica&lt;br /&gt;
&lt;br /&gt;
====== Importar templates======&lt;br /&gt;
&lt;br /&gt;
Las plantillas propias de '''md'''tel se encuentran en la ruta &amp;quot;'''/usr/src/nimitz/archivos'''&amp;quot; y empiezan con el nombre de &amp;quot;TemplateXXX.xml&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 ls /usr/src/nimitz/archivos | grep Template&lt;br /&gt;
 '''Template DRBD.xml'''&lt;br /&gt;
 '''Template motorSal.xml'''&lt;br /&gt;
 '''Templates Vivait-Suite_GW.xml'''&lt;br /&gt;
 '''Templates Vivait-Suite.xml'''&lt;br /&gt;
 '''Template Vivait-Call Asterisk.xml'''&lt;br /&gt;
 '''Template Vivait-Call bdCentral.xml'''&lt;br /&gt;
 '''Template Vivait-Call bdNodo.xml'''&lt;br /&gt;
 '''Template Vivait-Call cambiarPerfil_Cal.xml'''&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La importación se realizara una vez a través de la web, no hace falta desde el servidor Zabbix, puede ser en cualquier  computadora con acceso a la interfaz web de Zabbix.&lt;br /&gt;
&lt;br /&gt;
[[File:ImportarTemplates.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
Hay opciones varias opciones a elegir para importación de templates, pero podemos dejar por defecto las señaladas y pulsar el botón &amp;quot;import&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Configuración para un primer funcionamiento de Zabbix===&lt;br /&gt;
Se describe una básica configuracion de Zabbix para cualquier equipo que utilice Windows o linux. Pues  mediante la definición de hosts, items, triggers y acciones, Zabbix permite efectuar un monitoreo efectivo de plataformas IT heterogéneas. &lt;br /&gt;
&lt;br /&gt;
====Configuración de los equipost (host) para la monitorización====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''': Tenga en cuenta que debe de estar previamente configurado el agente Zabbix del &lt;br /&gt;
 dispositivo a ser monitorizado apuntando a la IP del &amp;quot;Servidor Zabbix&amp;quot;.&lt;br /&gt;
|}&lt;br /&gt;
Existen dos tipos de host:&lt;br /&gt;
* '''Host físico''': donde la dirección de red que registramos en Zabbix, corresponde al dispositivo que deseamos monitorizar.&lt;br /&gt;
* '''Host virtual''': es una dirección IP virtual, que puede relacionarse con un servidor Web, clusters, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:CreacionHost.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
﻿Las opciones basicas para configurar un host son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center ;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Host Name'''&lt;br /&gt;
|  | Definir un nombre para el host.&lt;br /&gt;
||Se puede utilizar números, letras, espacios y guiones bajos están permitidos.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Visible Name'''&lt;br /&gt;
|  | Identificar con un nombre, la maquina a la que se refiere el host.&lt;br /&gt;
||Si no tiene valor, se mostrara como nombre &amp;quot;Host Name&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Groups'''&lt;br /&gt;
|  | Seleccionar al grupo de host que pertence.Seleccione uno o varios grupos de la caja derecha.&lt;br /&gt;
|| Los valores que puede seleccionar por defecto:&lt;br /&gt;
Discoverd hosts.&lt;br /&gt;
&lt;br /&gt;
Switches.&lt;br /&gt;
&lt;br /&gt;
Templates.&lt;br /&gt;
&lt;br /&gt;
Templates MDtel.&lt;br /&gt;
&lt;br /&gt;
Zabbix servers.&lt;br /&gt;
&lt;br /&gt;
Linux Servers.&lt;br /&gt;
&lt;br /&gt;
Hypervisors.&lt;br /&gt;
&lt;br /&gt;
Virtual machines.&lt;br /&gt;
&lt;br /&gt;
O crear uno nuevo en '''New group'''.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Agent interfaces'''&lt;br /&gt;
|  |Se recomienda usar una dirección IP, en vez de un nombre de la maquina para resolver por un servidor de DNS que puede fallar.&lt;br /&gt;
|  | 10050 por defecto&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cuando termine, haga clic en nel boton &amp;quot;Save&amp;quot;.  Su nuevo &amp;quot;Host&amp;quot; debe ser visible en la lista de &amp;quot;Host registrados&amp;quot;.Despues el zabbix, intentara configurarse el zabbix para conectarse a la IP.... cada x tiempo hace un barrido. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Comprobación de disponibilidad del host=====&lt;br /&gt;
Para saber si todo esta bien debemos ver la Z de disponibilidad.   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:EstadosZHost.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Indicacion de los colores del icono Z:&lt;br /&gt;
&lt;br /&gt;
* Si el icono Z en la columna de disponibilidad es de color rojo, indica que hay un error en la comunicación - mueva el cursor del ratón sobre él para ver el mensaje de error. &lt;br /&gt;
&lt;br /&gt;
* Si el icono es gris, significa que esta en proceso de comunicación con el &amp;quot;Agente Zabbix&amp;quot;. Compruebe que el servidor Zabbix está en marcha, y pruebe a actualizar la página más tarde.  El tiempo estimado para revisar si existe problemas es de 5 minutos.&lt;br /&gt;
&lt;br /&gt;
* Si el icono es verde, esta funcionando correctamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Indicar que plantilla(template) tendra el host [opcional]====&lt;br /&gt;
Tras [[#Importar templates |importar templates]] nos dirigimos al host ya configurado, y en su pestaña de templates pulsamos &amp;quot;add&amp;quot; y añadimos la plantilla/s adecuadas.&lt;br /&gt;
&lt;br /&gt;
====Asignar items al host ====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''':Un host puede tener un ITEM sin necesitad de tener template.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Todos lo ITEMS se agrupan por HOST, esto significa que cada HOST tiene sus propios &amp;quot;Módulos que recogen datos del Host&amp;quot;.   Para agregar un nuevo módulo vamos a &amp;quot;Configuration → Hosts&amp;quot; y localizamos el &amp;quot;Host&amp;quot; al cual queremos agregarle un nuevo &amp;quot;Item&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:CrearItemEjemplo.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
Parametros o campos a rellenar para una configuración básica :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center ;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Name'''&lt;br /&gt;
|  | Definir un nombre para el item.  Este nombre va a ser nuestro identificador para todas la gestiones en donde lo involucremos como el caso de Triggers.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Type'''&lt;br /&gt;
|| Indicar de que entidad queremos recibir informacion.&lt;br /&gt;
||Puede ser al &amp;quot;Agente Zabbix&amp;quot; o a el Hardware como impresoras, switch o routers.   &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Key'''&lt;br /&gt;
|  | los &amp;quot;Items&amp;quot; utilizan &amp;quot;Key&amp;quot; que son parámetros de Zabbix.  Los &amp;quot;Key&amp;quot; nos permiten indicar específicamente que tipo de información vamos a solicitara a la entidad. Se puede considerar también como el nombre de alguna aplicación.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''host interface'''&lt;br /&gt;
|  |Es la direccion de red del servidor zabbix (puede ser uno o mas)&lt;br /&gt;
|  | &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Units'''&lt;br /&gt;
|  |Es la dirección de red del servidor zabbix (puede ser uno o mas)&lt;br /&gt;
|  | &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Type of information'''&lt;br /&gt;
|  |Tipo de unidades con el que mostrar Zabbix el valor segundos, minutos, euros,....&lt;br /&gt;
|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cuando termine, haga clic en Guardar.   El nuevo elemento debe aparecer en la ITEMLIST. &lt;br /&gt;
Para mas informacion [[http://entation/1.8/manual/config/items#zabbix_agent. ver documentación Zabbix]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Ver la información recolectada por el item =====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' Normalmente para ver la información lo encontraremos en &amp;quot;Monitoring → Latest data&amp;quot;,luego &lt;br /&gt;
 clic en el signo &amp;quot;+&amp;quot; en &amp;quot;other&amp;quot; siempre que no pertenezca a una aplicación. &lt;br /&gt;
 En caso contrario, estará bajo el nombre de la aplicación.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Después de definir el &amp;quot;Item&amp;quot; vamos a revisar la información que esta recolectando.  .  La información comenzará a ser recolectada según el tiempo que le indicamos en el &amp;quot;Item&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:VerInfoITEM.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
La espera para recibir la información varía dependiendo del tiempo de recolección del item, la mayoría suele ser aproximadamente al minuto de generar el &amp;quot;Item&amp;quot;. Zabbix le ofrece la opción de visualizar la información en forma gráfica (sencilla).  En el &amp;quot;Item&amp;quot; en lista haga clic en la columna &amp;quot;History - Graph&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:VIsualGraficaValorItem.png|center|750px]]&lt;br /&gt;
Si en un caso usted no observa información le recomendamos:&lt;br /&gt;
  &lt;br /&gt;
* Ingrese al &amp;quot;Item&amp;quot; y revise que la información del &amp;quot;Key&amp;quot; este igual al ejemplo &amp;quot;system.cpu.load&amp;quot; &lt;br /&gt;
* Verifique que el agente este funcionando en el &amp;quot;Servidor a ser monitoreado&amp;quot; y que &amp;quot;El Servidor recolector Zabbix&amp;quot; este funcionando. &lt;br /&gt;
* El icono &amp;quot;Z&amp;quot; en el host debe estar en color verde. &lt;br /&gt;
* Asegure que esta monitoreando el servidor que le agregó este &amp;quot;Item&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Configurar los Triggers para los host====&lt;br /&gt;
A partir de la información que captura los agentes , el servidor de Zabbix comienza a efectuar la recolección de estos items en la base de datos. Con esto se tiene un registro histórico de tales mediciones, que pueden ser tan simples como un simple ping hasta datos de uso de disco, memoria, cpu, etc.&lt;br /&gt;
A partir de los datos que se reciben de los agentes lo que sigue es definir y configurar Triggers, que son evaluaciones que hace Zabix de estos datos para determinar la existencia de un Problema en un dispositivo.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Nota: Un trigger necesita una accion, que indica que hacer cuando se activa el trigger.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un trigger(disparador) es un tipo de reacción ante unas medidas, como un disparador en el que si pasa algo se activa. Los Trigger en Zabbix son módulos que creamos a uno o múltiples &amp;quot;Items&amp;quot; para evaluar o comparar los valores recolectados por los &amp;quot;Items&amp;quot; con condiciones que nosotros definamos.  Las condiciones son de tipo aritmético y lógico.&lt;br /&gt;
&lt;br /&gt;
Para configurar un &amp;quot;Trigger o Disparador&amp;quot; seleccionamos &amp;quot;Configuration → Hosts&amp;quot; localizamos el &amp;quot;Host&amp;quot; de ejemplo que creamos y luego hacemos clic en &amp;quot;Trigger&amp;quot;, después haga clic en &amp;quot;Create Trigger&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Parametros o campos a rellenar para una configuración básica :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center ;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Name'''&lt;br /&gt;
|  | Definir un nombre para el trigger.  Este nombre va a ser nuestro identificador para todas la gestiones en donde lo involucremos como el caso de los eventos.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Expression'''&lt;br /&gt;
||  Hay que indicar para que medida se crea (item) y sus funciones con los parametros adecuados. '''''Recomendación usar expression constructor que pedirá siempre al crearlo, para que item es y sus funciones...'''''&lt;br /&gt;
||Ejemplo: {New host:system.cpu.load.avg(180)}&amp;gt;2 &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Key'''&lt;br /&gt;
|  | los &amp;quot;Items&amp;quot; utilizan &amp;quot;Key&amp;quot; que son parámetros de Zabbix.  Los &amp;quot;Key&amp;quot; nos permiten indicar específicamente que tipo de información vamos a solicitara a la entidad. Se puede considerar tambien como el nombre de alguna aplicacion.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Una descripción breve sobre el trigger.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Severity'''&lt;br /&gt;
|  | everidad distinguida por colores,&lt;br /&gt;
|| No classified&lt;br /&gt;
 Information&lt;br /&gt;
 Warning&lt;br /&gt;
 Average&lt;br /&gt;
 High&lt;br /&gt;
 Disaster&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Comprobar el estado del trigger =====&lt;br /&gt;
Podemos ver el estado del &amp;quot;Trigger&amp;quot; en &amp;quot;Monitoring → Triggers&amp;quot;.El  color en caso de que se active depende de la severidad definida. Por ejemplo,  si el &amp;quot;Trigger&amp;quot; esta en color verde indica que el resultado de la métrica se mantiene por debajo de la condición que indicamos.  Por el contrario si el resultado esta &amp;quot;sobre lo indicado&amp;quot; su color sera rojo.&lt;br /&gt;
&lt;br /&gt;
[[File:EstadoTrigger.png|center|750px]]&lt;br /&gt;
&lt;br /&gt;
====Asociar un Action al trigger====&lt;br /&gt;
&lt;br /&gt;
Una action(acción) sirve para configurar un mensaje de alerta o una accion para Zabbix, ante un problema. Hay varias formas de gestionar un problema a través de una acción:&lt;br /&gt;
&lt;br /&gt;
# A través de mensajes simples, alertando al instante.&lt;br /&gt;
# Escalar los mensajes hacia el jefe y/o otros grupos.&lt;br /&gt;
# Ejecución de commandos remotos.&lt;br /&gt;
# Notificaciones repetidas hasta que se resuelve el problema.&lt;br /&gt;
# Notificaciones y comandos retardados.&lt;br /&gt;
# Escenario complejo, la combinación de todo lo anterior.&lt;br /&gt;
&lt;br /&gt;
Para crear una configuración en &amp;quot;Configuration-Actions&amp;quot;. La explicación esta en la [[ https://www.zabbix.com/documentation/2.0/manual/config/notifications/action documentación de Zabbix]].&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integraciones con servicios externos ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Presencia con Openfire ===&lt;br /&gt;
'''''VIVA'''''it se integra con servidor XMPP Openfire en su versión 3.10.2 (última probada)&lt;br /&gt;
&lt;br /&gt;
Además del servidor, es necesario instalar un plugin de integración con asterisk 13, denominado &amp;quot;asterisk IM&amp;quot;, versión 1.4.1&lt;br /&gt;
&lt;br /&gt;
La instalación del servidor Openfire es una instalación estándar, realizada de paquete&lt;br /&gt;
&lt;br /&gt;
La instalación del plugin es un &amp;quot;jar&amp;quot; que se carga desde la pagina de plugins de openfire&lt;br /&gt;
&lt;br /&gt;
Con esto conseguiremos comunicar asterisk y OPenfire de manera que:&lt;br /&gt;
*Los estados telefónicos de una extensión '''''VIVA'''''it  se reflejen en Openfire&lt;br /&gt;
*Poder marcar desde los clientes de IM instalados en los puestos&lt;br /&gt;
*Ver en el cliente llamadas entrantes al teléfono&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;Enlaces de interes:&amp;lt;/big&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
[http://www.igniterealtime.org/projects/openfire/ Página proyecto openfire]&lt;br /&gt;
&lt;br /&gt;
[https://community.igniterealtime.org/thread/56076 Página proyecto &amp;quot;asterisk IM&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reuniones virtuales con Openmeetings ===&lt;br /&gt;
'''OpenMeetings''' es un sistema de vídeo web-conferencia en tiempo real. Usando recursos como audio (micrófono), vídeo (cámara web), posibilidad de subir y convertir presentaciones (en PDF , PPT o ODP que se convierten a Flash), compartición de la pantalla de tu ordenador, o pizarra digital compartida, panel de administración, posibilidad de grabar las sesiones… y completo soporte multiplataforma, es decir, que aparte de poder grabar las sesiones, se puede compartir un escritorio también desde una máquina Linux.&lt;br /&gt;
&lt;br /&gt;
Para instalar '''OpenMettings''' debe seguir el [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manuales_de_instalaci%C3%B3n#Instalaci.C3.B3n_de_Openmeetings | manual de Instalación de Openmeetings]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]] &lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:VIVAit Suite]]&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Release_Notes_Plataforma_VIVAit_3.1&amp;diff=5901</id>
		<title>Release Notes Plataforma VIVAit 3.1</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Release_Notes_Plataforma_VIVAit_3.1&amp;diff=5901"/>
		<updated>2017-05-25T15:38:39Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!!Plataforma''VIVA''it&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Aplica a los productos:&lt;br /&gt;
* '''''VIVA'''''it Call 3.1&lt;br /&gt;
* '''''VIVA'''''it Suite 3.5&lt;br /&gt;
&lt;br /&gt;
==Lázarus común (3.4.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3646: Nuevas clases de dispositivo TClaseDispositivo&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3694: Modificaciones en nimitz.pas&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3805: Nueva opción en el enumerado TComponente&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4472: Nuevos valores enumerados en TTipoContenido&lt;br /&gt;
&lt;br /&gt;
==BBDD (3.6.0 → 3.8.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3653: CEN_ENLACE_EXTERIOR ID_PLANTILLA es VARCHAR&lt;br /&gt;
&lt;br /&gt;
Bugs #3832: Modificacion de los Datos básicos para que los registros particulares se inserten con ID muy superior para que asi podamos eliminar los Datos particulares y volver a insertarlos&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3487: Campos nuevos en supervisor&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3553: Campo que indique que un nodo tiene el servicio recordCentral&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3582: Nueva entrada enumerado TTipoInforme&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3606: Añadir a los datos básicos los campos que se emplean en las plantillas en forma de texto&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3643: Nuevas clases de dispositivo TClaseDispositivo&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3644: Nuevas clases de dispositivo TClaseDispositivo&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3660: Nuevos valores en enumerado TClasePlantilla&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3667: Campo E_TIPO_CANAL en CEN_DISPOSITIVOS&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3693: Nuevos valores enumerado TSegTipoSeg&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3804: Añadir opción al enumerado TComponente&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4473: Modificación de la tabla DAT_MENSAJES&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4474: Modificación enumerado TTipoContenido&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4478: Creación de la tabla ACD CHAT USUARIOS&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4488: Añadir campo ID_PLANTILLA_SIP_GENERAL en COM_NODOS&lt;br /&gt;
&lt;br /&gt;
Bugs #3348: Quitar TElementosSincronizar&lt;br /&gt;
&lt;br /&gt;
Bugs #4526: Cambio enumerados&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3253: Crear un campo en base de datos para generar el recordCentral&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3651: Tablas para chat CEN_MULTICANAL_TEXTO_XXX&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4626: Campo LDAP para sincronizar Agendas&lt;br /&gt;
&lt;br /&gt;
==Generaconf (3.4.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3169: Generar ficheros recordNodo y recordCentral&lt;br /&gt;
&lt;br /&gt;
Bugs #3251: Cambiar select de DAT_SINCRONIZA por incompatibiliadad con MySQL 5.7 (Full group by)&lt;br /&gt;
&lt;br /&gt;
Bugs #3345: Los campos de objeto tienen proridad sobre los de plantilla&lt;br /&gt;
&lt;br /&gt;
Bugs #3347: Generar archivos correctamente desde sincronización manual&lt;br /&gt;
&lt;br /&gt;
Bugs #3406: Fallos varios en Generaconf para calendarios&lt;br /&gt;
&lt;br /&gt;
Bugs #3766: Error en Generaconf debido a timeout de libreria java&lt;br /&gt;
&lt;br /&gt;
Bugs #4884: No llama a la funcion dialplan reliad al generar el fichero ext_MDtel_Web.conf&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3337: Generar chan_dahdi.conf&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3532: Generar campo Qualify de los Nodos&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4144: Modificacion al generar grupos de captura&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4490: Se ha creado un campo en COM_NODOS ID_PLANTILLA_SIP_GENERAL&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4512: Los nodos ACD tienen que ser trunkinternos&lt;br /&gt;
&lt;br /&gt;
==Intz-nimitz ( 3.4.1 → 3.4.2)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4142: Cambio en prioridades en destinos externos&lt;br /&gt;
&lt;br /&gt;
==recordCentral (4.0.0 → 4.0.1)==&lt;br /&gt;
&lt;br /&gt;
Bugs #4747: No codifica en ogg&lt;br /&gt;
&lt;br /&gt;
==recordNodo (4.0.0 → 4.0.0)==&lt;br /&gt;
&lt;br /&gt;
==myACDSuperV (5.3.2 → 5.3.2)==&lt;br /&gt;
&lt;br /&gt;
==motorSal (3.3.0 → 3.4.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3611: Contactos en campaña saliente bajo de manda&lt;br /&gt;
&lt;br /&gt;
Bugs #3780: Parada del motorsal cuando en la descripción de la cola ocupa mas de 64 caracteres&lt;br /&gt;
&lt;br /&gt;
Bugs #3841: Mejoras en modulo empleado por Antonio Sanchez&lt;br /&gt;
&lt;br /&gt;
==VIVAit-cti (3.0.1 → 3.0.2)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3136: Problema abrir formulario en llamadas salientes&lt;br /&gt;
&lt;br /&gt;
==MultiMonitorWeb (3.1.0 → 3.2.0)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3289: Cabeceras en monitor&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4206: Acceder a la web del multimonitor directamente con un usuario y contraseña desde la propia url&lt;br /&gt;
&lt;br /&gt;
==Portal (3.4.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #2840: Error en campo Eje 1 de la vista permisos de usuarios&lt;br /&gt;
&lt;br /&gt;
Bugs #2841: Error en campo Eje 1 de la vista permisos de usuarios&lt;br /&gt;
&lt;br /&gt;
Bugs #2846: Fallo de seguridad en Login&lt;br /&gt;
&lt;br /&gt;
Bugs #2847: Literales en Contactos Click2Call&lt;br /&gt;
&lt;br /&gt;
Bugs #2852: Error al recuperar la información del campo &amp;quot;tipo formulario&amp;quot; en Grupos ACD&lt;br /&gt;
&lt;br /&gt;
Bugs #2866: Gestionar posible error en Extensiones en el campo Puesto&lt;br /&gt;
&lt;br /&gt;
Bugs #2930: Cambiar a valor por defecto no&lt;br /&gt;
&lt;br /&gt;
Bugs #2971: Menu desplegable por detras del formulario&lt;br /&gt;
&lt;br /&gt;
Bugs #3014: Duplica extensiones ya asignadas a un grupo en ViVAit Call.&lt;br /&gt;
&lt;br /&gt;
Bugs #3059: No puedo usar ningún filtro de búsqueda para buscar por usuario asignado a una extensión o al revés.&lt;br /&gt;
&lt;br /&gt;
Bugs #3171: Al borrar no vuelve a la pagina inicial de filtro, queremos que mantenga el filtro utilizado al volver de un borrado Y de un recuperado&lt;br /&gt;
&lt;br /&gt;
Bugs #3199: Rellenar valores de los umbrales de alarma del monitor web no ha de ser obligatorio&lt;br /&gt;
&lt;br /&gt;
Bugs #3261: literal sincronizado manual&lt;br /&gt;
&lt;br /&gt;
Bugs #3344: al borrar una extensión en grupos acd de centralita me va a otra pantalla&lt;br /&gt;
&lt;br /&gt;
Bugs #3391: usuario perteneciente a un subeje, puede ver objetos creados en un eje superior del usuario.&lt;br /&gt;
&lt;br /&gt;
Bugs #3402: Al guardar un calendario no llama sale enlace para sincronizar&lt;br /&gt;
&lt;br /&gt;
Bugs #3408: 25Campo Servicio en ventana General/Cuentas&lt;br /&gt;
&lt;br /&gt;
Bugs #3413: error literal&lt;br /&gt;
&lt;br /&gt;
Bugs #3415: Problemas con el portal&lt;br /&gt;
&lt;br /&gt;
Bugs #3427: el nombre del campo &amp;quot;grabar enrutamiento&amp;quot; del objeto Nodo, en el portal de administracion lleva a dudas.&lt;br /&gt;
&lt;br /&gt;
Bugs #3428: duda si el campo &amp;quot;prefijo entidad destino&amp;quot; debería ser obligatorio&lt;br /&gt;
&lt;br /&gt;
Bugs #3429: Menu por detras de la ventana de datos de una agenda&lt;br /&gt;
&lt;br /&gt;
Bugs #3430: problema el campo &amp;quot;MAC&amp;quot; de Aprosionamiento en Telefonos del portal de administracion&lt;br /&gt;
&lt;br /&gt;
Bugs #3444: 5ruta mostrada para acceder a Puestos en Vivait SUIT ACD+ del portal de administración.&lt;br /&gt;
&lt;br /&gt;
Bugs #3459: Al cambiar el telefono en la extensión no lo hace en la ventana telefonos&lt;br /&gt;
&lt;br /&gt;
Bugs #3488: Salas de conferencia, el numero no puede ser repetido&lt;br /&gt;
&lt;br /&gt;
Bugs #3490: Buzones -&amp;gt; el numero debe ser unico no puede repetirse.&lt;br /&gt;
&lt;br /&gt;
Bugs #3494: Finales -&amp;gt; el numero de Final debe ser unico no puede repetirse. y validar numero maximo a introducir.&lt;br /&gt;
&lt;br /&gt;
Bugs #3495: No valida tamaño del motivo y falla al insertar o actualizar y nombre es obligatorio y no esta validando&lt;br /&gt;
&lt;br /&gt;
Bugs #3502: Falta Idioma en tab usuario de opción usuario&lt;br /&gt;
&lt;br /&gt;
Bugs #3525: Si en extensiones &amp;quot;Hay movilidad&amp;quot; es NO el usuario movilidad se inserta/actualiza a null&lt;br /&gt;
&lt;br /&gt;
Bugs #3567: Literales no asignados en el portal&lt;br /&gt;
&lt;br /&gt;
Bugs #3609: Redimensión portal&lt;br /&gt;
&lt;br /&gt;
Bugs #3626: Los motivos de conexión creados desde el portalñ deben ser mayores de 100.&lt;br /&gt;
&lt;br /&gt;
Bugs #3677: Cambio de literal&lt;br /&gt;
&lt;br /&gt;
Bugs #3691: Revisión de literales en Ingles para internacionalización&lt;br /&gt;
&lt;br /&gt;
Bugs #3774: Bugs en Enlace exterior&lt;br /&gt;
&lt;br /&gt;
Bugs #3801: Si la validación del usuario es mediante LDAP la clave deja de ser un campo obligatorio&lt;br /&gt;
&lt;br /&gt;
Bugs #3824: Al descargar una locucion de Vivait-Response -&amp;gt; Locuciones FALLA&lt;br /&gt;
&lt;br /&gt;
Bugs #3872: Cajas de texto demasiado grandes en el portal&lt;br /&gt;
&lt;br /&gt;
Bugs #3886: Campo &amp;quot;La PBX está pendiente de sincronización&amp;quot; descuadra el resto de campos de la cabecera&lt;br /&gt;
&lt;br /&gt;
Bugs #3903: No validad el campo idioma en usuarios -&amp;gt; administrar usuarios ya que no es obligatorio rellenarlo&lt;br /&gt;
&lt;br /&gt;
Bugs #4080: Error al actualizar un usuario&lt;br /&gt;
&lt;br /&gt;
Bugs #4301: Error en argendas Vivait-Call&lt;br /&gt;
&lt;br /&gt;
Bugs #4403: Error al cambiar categoria en destinos externos&lt;br /&gt;
&lt;br /&gt;
Bugs #4415: Pequeños errores&lt;br /&gt;
&lt;br /&gt;
Bugs #4520: Error al crear Grupos ACD&lt;br /&gt;
&lt;br /&gt;
Bugs #4621: No despliega plantilla SIP en nodos&lt;br /&gt;
&lt;br /&gt;
Bugs #4648: No funciona login por LDAP&lt;br /&gt;
&lt;br /&gt;
Bugs #4668: corregir literal en Nodos&lt;br /&gt;
&lt;br /&gt;
Bugs #4669: No aparecen grupos ACD en el despegable de la ventana de Cinfig. monitores&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2524: Mejoras en las panallas de Filtros de busquedas&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2802: Selección y borrado masivo en portal VIVAit&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2845: Nueva imagen del Portal en Versión V.3.5.0&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2882: Modificaciones en ventana &amp;quot;Editar contactos&amp;quot; filtrado y cambio de estado&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2883: Modificaciones en ventana &amp;quot;Editar contactos&amp;quot; para visualización de prioridades&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2891: Acceso por https al Portal de administración&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2916: Operaciones sobre movilidad&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2985: Cabeceras en .java y en .jsp&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3086: Cambios en gestión de permisos de acceso a portal administración&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3087: Cambios en gestión de permisos de acceso a portal de usuario&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3148: Visualizar dos telefonos en la tabla de agenda para tener acceso directo sin tener que entrar al formulario.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3166: Cambios en portal de administración para gestión de chat&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3238: Nuevo campo en VIVAIT SUITE ACD+/PERFILES&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3311: campo de busqueda en la tabla , al rellenar con algo, se mantiene el estado en el portal de administracion.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3349: Mergeo sobre los últimos desarrollos&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3433: Gestión de calendario en la ventana de perfiles&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3552: Gestión de proyectos, analisis de incidencias, bugs encontrados y solucionados, y nuevas funcionalidades.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3566: Desarrollo de vulnerabilidad de seguridad&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3568: Diseño de cajas&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3658: Campos en COM_NODOS para definir el ws de multicanalidad&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3669: Nuevas tablas CEN_MULTICANAL_TEXTO_XXXX&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3676: Nuevo campo enpre-rutas&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3731: Vistas específicas de los datos que se muestran.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3744: Crear campo en COM_NODOS&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3753: Exportación de resultados de ventanas de listado&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3826: Estudio Graficas para mostrar informacion del portald e administración de forma amigable.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4489: La tabla COM_NODOS tiene un nuevo campo&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4597: Campo &amp;quot;Host multicanalidad y Puerto multicanalidad&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Tracker Web (3.3.0 → 3.4.0)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #137: Poder filtrar por campaña&lt;br /&gt;
&lt;br /&gt;
==Tracker Windows (3.2.0 → 3.4.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3730: problema de valoracion de segmento en el VIVait Tracker de Escritorio.&lt;br /&gt;
&lt;br /&gt;
==VIVA supervisor (3.2.0 → 3.4.0)==&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4431: Soporte chat&lt;br /&gt;
&lt;br /&gt;
==VIVA report (3.2.2 → 3.3.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3439: INFORME DE LLAMADAS POR GRUPO ACD&lt;br /&gt;
&lt;br /&gt;
Bugs #3548: Datos totales llamadas en Informe Tipológico unificado&lt;br /&gt;
&lt;br /&gt;
Bugs #4699: Error al mostrar informe por pantalla&lt;br /&gt;
&lt;br /&gt;
Bugs #4783: Error al generear informe de produccion&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3559: Filtros de agente con nombre&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4176: Creación de librerías dinámicas en Lazarus &lt;br /&gt;
&lt;br /&gt;
Vulnerabilidad #4333: Modificación o eliminación de la limitación de usuario desde scripting&lt;br /&gt;
&lt;br /&gt;
==VIVA desk (3.3.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3782: No cierra formulario en progresivo y predictivo cuando no se descuelga la llamada el agente&lt;br /&gt;
&lt;br /&gt;
Bugs #4461: Fallo boton de copiar código de cliente en formulario mdesigner.exe&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4292: Vivait-desk pruebas con soporte chat&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4401: Versión 3.5.0&lt;br /&gt;
&lt;br /&gt;
==VIVA designer ( 3.1.0 → 3.2.0)==&lt;br /&gt;
&lt;br /&gt;
Designer - Nuevas funcionalidades #4400: Añadir por designer los 16 campos de los contactos&lt;br /&gt;
&lt;br /&gt;
==Preview (3.4.0 → 3.5.0)==&lt;br /&gt;
&lt;br /&gt;
==Phoneprov-tftp ( 3.0.3→ 3.0.3)==&lt;br /&gt;
&lt;br /&gt;
==Portal de Usuario (3.0.0 → 3.1.0)==&lt;br /&gt;
&lt;br /&gt;
Bugs #3310: Cambio de logo &lt;br /&gt;
&lt;br /&gt;
Bugs #4002: No se loga por LDAP&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #2915: Operaciones sobre movilidad&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3130: Visualizar dos teléfonos en la tabla de agenda para tener acceso directo sin tener que entrar al formulario.&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #3165: Desarrollo de interfaz CHAT en portal de usuario&lt;br /&gt;
&lt;br /&gt;
Nuevas funcionalidades #4847: Añadir el campo C_CUENTA_LDAP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:administrador]]&lt;br /&gt;
[[Category:Plataforma VIVAit]]&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_plataforma_VIVAit&amp;diff=5890</id>
		<title>Manual de operación plataforma VIVAit</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Manual_de_operaci%C3%B3n_plataforma_VIVAit&amp;diff=5890"/>
		<updated>2017-05-11T15:55:50Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* Proceso de Backup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!! '''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; ALFREDO: INSISTIR EN EXPLICAR CONCEPTOS&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
En este documento se describe la arquitectura general de la plataforma '''''VIVA'''''it, detallando aquellos procesos principales que componen cada uno de los elementos del sistema, y sus principales elementos de diagnóstico&lt;br /&gt;
Quedan fuera del ámbito de este documento:&lt;br /&gt;
* Uso de aplicación de agente ('''''VIVA'''''it Desk)&lt;br /&gt;
* Uso de aplicación de supervisor ('''''VIVA'''''it Supervisor), incluyendo sus módulos autónomos ('''''VIVA'''''it reporting, '''''VIVA'''''it Tracker)&lt;br /&gt;
* Uso de portal de administración&lt;br /&gt;
* Uso de portal de traceo de llamadas y agentes ('''''VIVA'''''it Tracker web)&lt;br /&gt;
* Uso de portal de monitorización zabbix&lt;br /&gt;
&lt;br /&gt;
== Arquitectura ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arquitectura plataforma VIVAit.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Descripción de los elementos, diagnósticos y operaciones ==&lt;br /&gt;
Las siguientes tablas definen los principales elementos software de la plataforma '''''VIVA'''''it, que son detallados en apartados siguientes:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de sistema operativo'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu Server LTS 64 bits || Uno por servidor|| ||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|| Actualmente (Oct-2015) 14.04&lt;br /&gt;
Bajo proyecto puede cambiarse&lt;br /&gt;
|-&lt;br /&gt;
| Almacenamiento de grabaciones|| Uno por sistema|| Almacenamiento de las grabaciones, ya sean de entorno corporativo o de contact center||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|| Típicamente un espacio grande de almacenamiento proporcionado por el cliente y que se monta como un sistema de archivos local en los servidores de la plataforma&lt;br /&gt;
Pueden existir sistemas secundarios de almacenamiento de grabaciones&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de conmutación de voz'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Asterisk 1.4.24 by MDtel||Uno por servidor ACD||Núcleo de conmutación de voz basado en Asterisk 1.4 y modificado por MDtel||'''''VIVA'''''it Suite||Fuertemente modificado por MDtel&lt;br /&gt;
En el futuro migrará a Asterisk 13 Certified&lt;br /&gt;
|-&lt;br /&gt;
|Dialplan ACD by MDtel||Uno por servidor ACD||Configuración de voz||'''''VIVA'''''it Suite||En el futuro se unificará con corporativa&lt;br /&gt;
|-&lt;br /&gt;
|Asterisk 13 Certified by MDtel||Uno por servidor corporativo/gateway||Núcleo de conmutación de voz basado en Asterisk 13 y modificado por MDtel||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Actualmente asterisk estándar (10/15)&lt;br /&gt;
La instalación contempla descargar de la red el más actualizado, siempre CERTIFIED&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Dialplan corporativo||Uno por servidor corporativo/gateway||Configuración de voz||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||En el futuro se unificará con ACD&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de base de datos'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|MySQL 5.5||Donde haya BBDD de cualquier tipo (incluso zabbix)||Motor de Base de Datos||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||A efectos prácticos va a ser en todos los servidores con casi total seguridad&lt;br /&gt;
|-&lt;br /&gt;
|BBDD tiempo real||Una por sistema||Base de Datos sobre la que trabaja todo el entorno de tiempo real||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|BBDD réplica||Una por sistema multinodo||Base de Datos para acceso a información de reporting…y similar||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de una&lt;br /&gt;
En el nodo en el que exista réplica existirá además copia (excepto nodo ACD)&lt;br /&gt;
|-&lt;br /&gt;
|BBDD copia||Uno por servidor corporativo/gateway||Copias de tablas de configuración para respaldo de la misma||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Local en cada nodo&lt;br /&gt;
Los nodos de ACD actualmente no trabajan con copia; en caso de fallo de BBDD TR se usa el modo emergencia&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Nivel de procesos ''VIVA''it'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Intz-Nimitz||Donde haya una BBDD de tiempo real o copia||Interfaz entre el dialplan y la base de datos||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||No donde haya BBDD de réplica&lt;br /&gt;
Sistemas grandes pueden contemplar mas de un intz-nimitz central&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|vivait-cti||Uno por servidor ACD||Interfaz entre '''''VIVA'''''it Desk, supervisor y el manager de asterisk||'''''VIVA'''''it Suite||&lt;br /&gt;
|-&lt;br /&gt;
|myAcdSuperv||Uno por servidor ACD||Recopilador de datos de asterisk y actualiza en la BBDD&lt;br /&gt;
Genera llamadas en el marcador&lt;br /&gt;
||'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|motorSal||Uno por sistema con ACD||Motor de marcador saliente automático||'''''VIVA'''''it Suite||Solo si hay marcación saliente&lt;br /&gt;
Junto a la BBDD de tiempo real&lt;br /&gt;
|-&lt;br /&gt;
|recordCentral||Uno por sistema||Servidor de grabaciones, se conectan los agentes a el||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Se arrancan varias instancias en función del número de nodos&lt;br /&gt;
Debe instalarse en un servidor que tenga el almacenamiento de grabaciones en su sistema de archivos&lt;br /&gt;
|-&lt;br /&gt;
|recordNodo||Uno por servidor corporativo/gateway||Agente de grabación||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|bdCentral||Uno, en el nodo con la BBDD de tiempo real||Genera la base de datos que se copiará para respaldo a otros nodos||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|bdNodo||En cada nodo con BBDD de copia||Recoge la base de datos del servidor central con el objeto de tener el respaldo||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|Actualizador||Uno por sistema con ACD||Se encarga de proporcionar las versiones actualizadas de las aplicaciones de puesto de trabajo||'''''VIVA'''''it Suite||En el mismo servidor que el portal de administración&lt;br /&gt;
|-&lt;br /&gt;
|phoneProv-tftp||Uno por sistema||Se encarga del aprovisionamiento masivo de terminales||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||En instalaciones grandes habrá más de uno, quizás uno por sede grande; depende de la infraestructura de DHCP&lt;br /&gt;
|-&lt;br /&gt;
|borraregistrosnimitz||||||||				&lt;br /&gt;
|-&lt;br /&gt;
|Mover grabaciones a nube||||||||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Administración'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Tomcat 7||Uno por servidor con portales||Servidor de aplicaciones JAVA||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|Portal de administración ||Uno por sistema||Portal de administración del sistema||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Portal usuario||Uno por sistema||Portal de usuario, para acceso a buzones, su configuración||'''''VIVA'''''it Call||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Tracker web||Uno por sistema||Portal de seguimiento de llamadas||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Debe instalarse en un servidor que tenga los ficheros de grabación montados en su sistema de archivos&lt;br /&gt;
Ligado a recordCentral&lt;br /&gt;
Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Monitor||Uno por sistema||Portal de monitores de pared de Call Center||'''''VIVA'''''it Suite||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|Apache||Uno por servidor de calendarios||Servidor de portales WEB||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|Servidor de calendarios||Uno por sistema||Aloja calendarios para su uso en diferentes entornos de NIMITZ||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de uno&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|+ &amp;lt;big&amp;gt;'''Monitorización'''&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Elemento!! Instancias!! Propósito!! Producto!! Observaciones&lt;br /&gt;
|-&lt;br /&gt;
|Servidor zabbix||Uno por instalación||Monitorización técnica y de negocio||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||Bajo proyecto puede existir más de uno&lt;br /&gt;
Tipicamente irá o en BBDD replica o en nodo de gestión en instalaciones grandes&lt;br /&gt;
|-&lt;br /&gt;
|Templates zabbix||Uno por instalación||Adaptaciones específicas||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|Agente Zabbix||Uno por servidor||Agente de monitorización||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
||Scripts monitorización zabbix||Uno por servidor||Agente de monitorización||'''''VIVA'''''it Call&lt;br /&gt;
'''''VIVA'''''it Suite&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Versiones de módulos===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Módulo  !! V.3.10 !! V.3.2.0 !! V.3.3.0 !!  V.3.4.0&lt;br /&gt;
(VSuite 3.4+VCall3.3)&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk || 1.4 || 1.4 || 1.4 || 1.4 Nodo ACD&lt;br /&gt;
13 resto nodos&lt;br /&gt;
|-&lt;br /&gt;
| Asterisk ACD  ||  ||  || || 3.3.1&lt;br /&gt;
|-&lt;br /&gt;
| Dialplan ACD || ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
| Asterisk Corp ||  ||  ||  || 3.3.4&lt;br /&gt;
|-&lt;br /&gt;
| Dialplan Corp  || ||  ||  || 3.3.1 &lt;br /&gt;
|-&lt;br /&gt;
| Lazarus común  || 3.1.0  || 3.2.0  || 3.3.0  || 3.4.0 &lt;br /&gt;
|-&lt;br /&gt;
| BD  || 3.2.0 || 3.4.0 || 3.5.0 || 3.6.0&lt;br /&gt;
|-&lt;br /&gt;
| Generaconf || 3.0.0  || 3.0.0  || 3.2.0  || 3.4.0 &lt;br /&gt;
|-&lt;br /&gt;
| Instalador || 3.1.0  || 3.2.0  || 3.3.0  || 3.4.0 &lt;br /&gt;
|-&lt;br /&gt;
| Intz-nimitz || 2.6.0  || 3.0.1 || 3.0.3 ||  3.4.1 &lt;br /&gt;
|-&lt;br /&gt;
| recordgwd   ||  1.3.0 ||  1.3.0 || 3.1.0 ||  -----&lt;br /&gt;
|-&lt;br /&gt;
| recordNodo  || ----- || ----- || ----- ||  4.0.0 &lt;br /&gt;
|-&lt;br /&gt;
| recordprocesad || 1.2.0 ||1.2.0|| 3.0.0 || -----&lt;br /&gt;
|-&lt;br /&gt;
| recordCentral || ----- || ----- || -----||  4.0.0&lt;br /&gt;
|-&lt;br /&gt;
| MyACDSuperv || 5.2.0 || 5.3.0  ||  5.3.0  ||  5.3.2 &lt;br /&gt;
|-&lt;br /&gt;
| Motorsal || 1.4.0 || 3.1.0  || 3.2.0 || 3.3.0&lt;br /&gt;
|-&lt;br /&gt;
| F  || 3.0.0 ||  3.0.1  ||  3.0.1  ||  3.0.1 &lt;br /&gt;
|-&lt;br /&gt;
| Multimonitorweb ||  3.0.1 ||  3.0.2  || 3.1.0  || 3.1.0 &lt;br /&gt;
|-&lt;br /&gt;
| Portal de administración || 3.1.0  || 3.2.0  || 3.3.0  || 3.4.0 &lt;br /&gt;
|-&lt;br /&gt;
| Tracker Web  || 3.0.2  || 3.1.0 ||  3.2.0 ||  3.3.0 &lt;br /&gt;
|-&lt;br /&gt;
|  VIVA supervisor || 3.0.0 ||  3.1.0  ||  3.2.0  ||  3.3.0&lt;br /&gt;
|-&lt;br /&gt;
| Tracker windows  || 3.0.0  || 3.1.0  || 3.2.0 || 3.3.0&lt;br /&gt;
|-&lt;br /&gt;
| VIVA report  || 1.2.0  || 3.1.0  || 3.2.0  ||  3.2.2 &lt;br /&gt;
|-&lt;br /&gt;
| VIVA desk || 3.0.2 ||  3.2.0  || 3.3.0  || 3.4.0 &lt;br /&gt;
|-&lt;br /&gt;
| VIVA designer || 1.0.23 || 3.0.1  || 3.1.0 ||  3.1.0 &lt;br /&gt;
|-&lt;br /&gt;
|  Preview || 1.0.18 || 3.2.0  || 3.3.0 || 3.4.0 &lt;br /&gt;
|-&lt;br /&gt;
| Phone_prov  || ------ || ------ || 3.0.1 || 3.0.3 &lt;br /&gt;
|-&lt;br /&gt;
| Portal usuario || ------ || ------ || ------ || 3.0.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Sistema Operativo ===&lt;br /&gt;
Los sistemas operativos de nuestra plataforma se corresponden a las versiones de Ubuntu Server LTS , ya que son las versiones estables, con un soporte continuado y mas estables a actualizaciones desde la salida Ubuntu 14.04.1. En concreto el sistema operativo utilizado para la plataforma '''''VIVA'''''it es Ubuntu Server 14.04.4 LTS. Para más información https://help.ubuntu.com/lts/serverguide/index.html.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ubuntu Kernel Release Schedule.png|750px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Funcionamiento en cluster ====&lt;br /&gt;
&lt;br /&gt;
Un clúster es un grupo de múltiples ordenadores unidos mediante una red de alta velocidad, de tal forma que el conjunto es visto como un único ordenador.&lt;br /&gt;
&lt;br /&gt;
De un clúster se espera que presente combinaciones de los siguientes servicios:&lt;br /&gt;
&lt;br /&gt;
# Alto rendimiento &lt;br /&gt;
# Alta disponibilidad&lt;br /&gt;
# Balanceo de carga &lt;br /&gt;
# Escalabilidad &lt;br /&gt;
&lt;br /&gt;
Tal y como esta definido el cluster de MDtel, este comprueba conectividad con la otra máquina que lo forma y con un punto de confianza. Si la máquina no tiene conectividad con la otra y si con el punto de confianza es que el servidor está vivo, mientas que si no tengo conectividad ni con la otra máquina ni con el punto de confianza es que el muerto soy yo, por lo que balanceo.&lt;br /&gt;
&lt;br /&gt;
Por lo que las máquinas balancean en los casos siguientes:&lt;br /&gt;
&lt;br /&gt;
* Todo lo que tenga que ver con la red, es decir, caída de la tarjeta de red, apagado de la máquina, corte en la red..&lt;br /&gt;
&lt;br /&gt;
Y no balancea en los siguientes:&lt;br /&gt;
&lt;br /&gt;
* No balancea en los demás casos, es decir, todo lo que tenga que ver con procesos de una máquina (caída asterisk, base de datos, intz-nimitz)&lt;br /&gt;
&lt;br /&gt;
El funcionamiento en cluster se basa en:&lt;br /&gt;
&lt;br /&gt;
* Heartbeat: IP flotante entre las dos máquinas que componen el cluster; típicamente este &amp;quot;latido&amp;quot; entre máquinas se realizará mediante conexión directa con cable cruzado para asegurar que no existan problemas de comunicaciones tales como retardo, pérdida de paquetes, etc en este latido y pueda ser causa de un balanceo inadecuado.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|  '''Nota 17-11-2015:''' Se ha realizado en un cliente un cluster distribuido, con dos servidores en diferentes sedes, realizando el heartbeat mediante enlace Gigabit. Si bien la solución no está validada por desarrollo, se está observando el funcionamiento.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* DRBD que se encargar de mantener una serie de carpetas totalmente replicadas entre los dos nodos; dichas las carpetas son:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El cluster es &amp;lt;big&amp;gt;'''activo/pasivo'''&amp;lt;/big&amp;gt;; la máquina activa posee la IP flotante y tiene arrancados los servicios.&lt;br /&gt;
&lt;br /&gt;
==== Configuración del cluster ====&lt;br /&gt;
Para montar un cluster de asterisk partimos de la siguiente situación inicial:&lt;br /&gt;
* Dos maquinas con '''''VIVA'''''it Call 3.0 instalado.&lt;br /&gt;
* El driver bonding de Interfaces de Red en Ubuntu Server.&lt;br /&gt;
&lt;br /&gt;
Los pasos a seguir para la configuración en el Ubuntu Server son los siguientes:&lt;br /&gt;
* Instalar ifenslave: &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 aptitude install ifenslave.&lt;br /&gt;
|}&lt;br /&gt;
: Finalizada la instalación, comprobamos que la instalación de Bonding se ha configurado para empezar desde el arranque del sistema operativo desde el fichero '''/etc/modules''':&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| vi /etc/modules&lt;br /&gt;
 # /etc/modules: kernel modules to load at boot time.&lt;br /&gt;
 #&lt;br /&gt;
 # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
 # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
 # Parameters can be specified after the module name.&lt;br /&gt;
 lp&lt;br /&gt;
 rtc&lt;br /&gt;
 bonding&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Crear o editar el archivo llamado '''/etc/modprobe.d/bonding.conf''' y añadir la siguiente linea en negrita:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 echo &amp;quot;alias bond0 bonding&amp;quot;&amp;gt; /etc/modprobe.d/bonding.conf&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Editar el fichero /etc/network/interfaces y añadir lo que esta en negrita:&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
 # This file describes the network interfaces available on your system&lt;br /&gt;
 # and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 &lt;br /&gt;
 '''# Bonding'''&lt;br /&gt;
 &lt;br /&gt;
 '''#em1 ip manual y esclavo en el &amp;quot;bond0&amp;quot; NIC'''&lt;br /&gt;
 '''auto em1'''&lt;br /&gt;
 '''iface em1 inet manual'''&lt;br /&gt;
 '''bond-master bond0'''&lt;br /&gt;
 '''bond-primary em0''' &lt;br /&gt;
 &lt;br /&gt;
 '''#em2 ídem, creando así un vínculo de enlace 2.'''&lt;br /&gt;
 '''auto em2'''&lt;br /&gt;
 '''iface em2 inet manual'''&lt;br /&gt;
 '''bond-master bond0'''&lt;br /&gt;
 '''auto bond0'''&lt;br /&gt;
 '''iface bond0 inet static'''&lt;br /&gt;
         '''address 10.255.255.11'''&lt;br /&gt;
        '''netmask 255.255.255.0'''&lt;br /&gt;
        '''gateway 10.255.255.254'''&lt;br /&gt;
 '''bond-mode active-backup'''&lt;br /&gt;
 '''bond-miimon 100'''&lt;br /&gt;
 '''bond-slaves none'''&lt;br /&gt;
 &lt;br /&gt;
 '''# em3 replica entre servidores'''&lt;br /&gt;
 '''auto em3'''&lt;br /&gt;
 '''iface em3 inet static'''&lt;br /&gt;
         '''address 10.255.254.10'''&lt;br /&gt;
        '''netmask 255.255.255.0'''&lt;br /&gt;
 &lt;br /&gt;
 '''# em4 gestion'''&lt;br /&gt;
 '''auto em4'''&lt;br /&gt;
 '''iface em4 inet static'''&lt;br /&gt;
         '''address 172.17.47.255'''&lt;br /&gt;
         '''netmask 255.255.0.0'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Reiniciamos el sistema para que el kernel tome los cambios.&lt;br /&gt;
&lt;br /&gt;
* Comprobación que en las dos maquinas el archivo '''/etc/host''' contenga el los nombre de las dos maquinas a vincular. En el ejemplo el archivo en ambas maquinas es:&lt;br /&gt;
&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 127.0.0.1       localhost&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.11   vivaitcall-CL-UAH-1&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.12   vivaitcall-CL-UAH-2&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.10   vivaitcall-CL-UAH&lt;br /&gt;
 &lt;br /&gt;
 10.255.255.10   BDTR&lt;br /&gt;
 &lt;br /&gt;
 10.255.254.10   vivaitcall-CL-UAH-1-em3&lt;br /&gt;
 &lt;br /&gt;
 10.255.254.11   vivaitcall-CL-UAH-2-em3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Creamos dos particiones iguales en ambos ordenadores , usando el comando '''parted'''.&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# '''parted /dev/sda'''&lt;br /&gt;
 GNU Parted 2.3&lt;br /&gt;
 Using /dev/sda&lt;br /&gt;
 Welcome to GNU Parted! Type 'help' to view a list of commands.&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Number  Start   End     Size    File system     Name  Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 &lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                 boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
        237GB   1000GB  763GB   Free Space&lt;br /&gt;
 &lt;br /&gt;
 (parted) mkpart primary 237GB 1000GB&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Number  Start   End     Size    File system     Name     Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                    boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
 5      237GB   1000GB  763GB                   primary  No File System como ext4&lt;br /&gt;
        1000GB  1000GB  204kB   Free Space&lt;br /&gt;
 (parted)quit&lt;br /&gt;
 mkfs.ext4 /dev/sda5&lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# '''parted /dev/sda'''&lt;br /&gt;
 GNU Parted 2.3&lt;br /&gt;
 Using /dev/sda&lt;br /&gt;
 Welcome to GNU Parted! Type 'help' to view a list of commands.&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 Number  Start   End     Size    File system     Name     Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                    boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
 5      237GB   1000GB  763GB                   primary&lt;br /&gt;
        1000GB  1000GB  204kB   Free Space&lt;br /&gt;
 (parted) rm 5&lt;br /&gt;
 (parted) mkpart primary 237GB 1000GB&lt;br /&gt;
 (parted) p free&lt;br /&gt;
 Model: HP LOGICAL VOLUME (scsi)&lt;br /&gt;
 Disk /dev/sda: 1000GB&lt;br /&gt;
 Sector size (logical/physical): 512B/512B&lt;br /&gt;
 Partition Table: gpt&lt;br /&gt;
 &lt;br /&gt;
 Number  Start   End     Size    File system     Name     Flags&lt;br /&gt;
        17,4kB  262kB   245kB   Free Space&lt;br /&gt;
 1      262kB   1000MB  1000MB  fat32                    boot&lt;br /&gt;
 2      1000MB  201GB   200GB   ext4&lt;br /&gt;
 3      201GB   217GB   16,0GB  linux-swap(v1)&lt;br /&gt;
 4      217GB   237GB   20,0GB  ext4&lt;br /&gt;
 5      237GB   1000GB  763GB   ext4            primary  Si File Sytem ext4&lt;br /&gt;
        1000GB  1000GB  204kB   Free Space&lt;br /&gt;
 (parted)quit&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Instalar los paquetes necesarios para el drbd. '''En Ubuntu server 14.04 ya está instalado.'''&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 aptitude install drbd8-utils  &lt;br /&gt;
 aptitude update (si no instala el drbd8-utils actualizar)&lt;br /&gt;
 aptitude install drbd8-utils  (volver a lanzar)&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
* Creamos el archivo '''/etc/drbd.conf''' en ambas maquinas:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 # You can find an example in  /usr/share/doc/drbd.../drbd.conf.example&lt;br /&gt;
 include &amp;quot;drbd.d/global_common.conf&amp;quot;;&lt;br /&gt;
 include &amp;quot;drbd.d/*.res&amp;quot;;&lt;br /&gt;
 resource MDcluster {&lt;br /&gt;
         protocol C;&lt;br /&gt;
         on vivaitcall-CL-UAH-1 {&lt;br /&gt;
               device /dev/drbd0;&lt;br /&gt;
               disk /dev/sda5;&lt;br /&gt;
               address 10.255.254.10:7788;&lt;br /&gt;
               meta-disk internal;&lt;br /&gt;
        }&lt;br /&gt;
        on vivaitcall-CL-UAH-2 {&lt;br /&gt;
               device /dev/drbd0;&lt;br /&gt;
               disk /dev/sda5;&lt;br /&gt;
               address 10.255.254.11:7788;&lt;br /&gt;
               meta-disk internal;&lt;br /&gt;
        }&lt;br /&gt;
        disk {&lt;br /&gt;
               on-io-error detach;&lt;br /&gt;
        }&lt;br /&gt;
        net {&lt;br /&gt;
               max-buffers 2048;&lt;br /&gt;
               ko-count 4;&lt;br /&gt;
        }&lt;br /&gt;
        syncer {&lt;br /&gt;
               rate 100M;&lt;br /&gt;
               al-extents 257;&lt;br /&gt;
        }&lt;br /&gt;
        startup {&lt;br /&gt;
                wfc-timeout 0;&lt;br /&gt;
                degr-wfc-timeout 120;&lt;br /&gt;
        }&lt;br /&gt;
 }&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Reiniciamos el sistema para que el kernel tome los cambios.&lt;br /&gt;
* Inicializamos el recurso, para ello primero deberemos crear los recursos DRBD teclearemos en ambas maquinas. Desde /etc.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
  drbdadm create-md MDcluster  (no y yes )&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Si tenemos algún problema porque ya exista sistema de ficheros.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 dd if=/dev/zero of=/dev/sda5 bs=1M count=128&lt;br /&gt;
 drbdadm create-md MDcluster  (no y yes )&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Reiniciamos ambas maquinas para que su kernel tome los cambios.&lt;br /&gt;
* Levantamos el servicio del DRBD en ambos servidores (nos preguntara que si queremos enviar los datos a los desarrolladores de drbd) tecleando no, no se envían.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 service drbd start&lt;br /&gt;
 /etc/init.d/drbd start&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Ahora &amp;lt;u&amp;gt;ambas maquinas son secundarias&amp;lt;/u&amp;gt;.&lt;br /&gt;
: Indicar cual de las dos maquinas usaremos como primaria, por tanto en la maquina elegida habra que ejecutar:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 drbdadm -- --overwrite-data-of-peer primary all (en una máquina)&lt;br /&gt;
:&amp;lt;small&amp;gt;'''Nota:''' La ip virtual que va a estar asignada a la maquina activa es  172.25.129.70.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Podemos teclear el comando '''''cat''''' para ver si esta sincronizando  y su progreso:&lt;br /&gt;
&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 cat /proc/drbd&lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' El servicio DRBD  aparecera como '''''Primary/Secondary'''''  si ejecutamos en el primario ; &lt;br /&gt;
 y aparecerá ''''Secondary/Primary'''' si lo ejecutamos en el secundario. &amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
* Instalación de los script de arranque:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 update-rc.d -f drbd remove (en las dos maquinas)&lt;br /&gt;
 update-rc.d drbd start 13 2 3 4 5 . stop 87 0 1 6 . (en las dos máquinas)&lt;br /&gt;
|}&lt;br /&gt;
* Seleccionar la fuente de sincronización.&lt;br /&gt;
:Formateamos un disco de la maquina que queramos que funcione como fuente del servicio DRBD, para evitar conflictos:&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 mkfs.ext4  /dev/drbd0&lt;br /&gt;
|}&lt;br /&gt;
: Creamos el directorio sobre el que vamos a montar el disco, en ambas maquinas.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 mkdir  /HDcluster&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: Creamos un archivo dentro '''''/HDcluster''''' de que se verá solo cuando el disco no está montado en ambas maquinas.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 touch sinMontar&lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' Este archivo nos puede servir para monitorizar mediante zabbix, nagios, ... que el disco no está montado.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:  En una de las maquinas montamos el disco (desde fuera del directorio HDcluster) &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 mount  /dev/drbd0 /HDcluster&lt;br /&gt;
|}&lt;br /&gt;
* Procedemos a mover todos los datos que necesitemos en este disco y a crear accesos directos, los directorios que vamos a mover son los siguientes:&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 /etc/asterisk&lt;br /&gt;
 /var/lib/asterisk&lt;br /&gt;
 /usr/lib/asterisk&lt;br /&gt;
 /usr/spool/asterisk&lt;br /&gt;
 /var/lib/mysql&lt;br /&gt;
 /var/tftp/&lt;br /&gt;
|}&lt;br /&gt;
: El procedimiento que vamos a seguir es el siguiente, en el primer ordenador:&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 '''Cd /HDcluster'''&lt;br /&gt;
 '''tar -zcvf etc-asterisk.tgz /etc/asterisk'''&lt;br /&gt;
 '''tar -zxvf  etc-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /etc/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/etc/asterisk /etc/asterisk'''&lt;br /&gt;
 '''tar -zcvf var-lib-asterisk.tgz /var/lib/asterisk'''&lt;br /&gt;
 '''tar -zxvf  var-lib-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /var/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/asterisk /var/lib/asterisk'''&lt;br /&gt;
 '''tar -zcvf usr-lib-asterisk.tgz /usr/lib/asterisk'''&lt;br /&gt;
 '''tar -zxvf  usr-lib-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /usr/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/usr/lib/asterisk /usr/lib/asterisk'''&lt;br /&gt;
 '''tar -zcvf var-spool-asterisk.tgz /var/spool/asterisk'''&lt;br /&gt;
 '''tar -zxvf  var-spool-asterisk.tgz'''&lt;br /&gt;
 '''rm -rf /var/spool/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/spool/asterisk /var/spool/asterisk'''&lt;br /&gt;
 '''tar -zcvf var-lib-mysql.tgz /var/lib/mysql'''&lt;br /&gt;
 '''tar -zxvf  var-lib-mysql.tgz'''&lt;br /&gt;
 '''rm -rf /var/lib/mysql'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/mysql /var/lib/mysql'''&lt;br /&gt;
 '''tar -zcvf var-lib-phoneprov-tftp.tgz /var/lib/phoneprov-tftp/'''&lt;br /&gt;
 '''tar -zxvf  var-lib-phoneprov-tftp.tgz'''&lt;br /&gt;
 '''rm -rf /var/lib/phoneprov-tftp/'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/phoneprov-tftp /var/lib/phoneprov-tftp'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: En la segunda maquina debemos borrar los directorios y crear los accesos directos.&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''rm -rf /etc/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/etc/asterisk /etc/asterisk'''&lt;br /&gt;
 '''rm -rf /var/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/asterisk /var/lib/asterisk'''&lt;br /&gt;
 '''rm -rf /usr/lib/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/usr/lib/asterisk /usr/lib/asterisk'''&lt;br /&gt;
 '''rm -rf /var/spool/asterisk'''&lt;br /&gt;
 '''ln -s /HDcluster/var/spool/asterisk /var/spool/asterisk'''&lt;br /&gt;
 '''rm -rf /var/lib/mysql'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/mysql /var/lib/mysql'''&lt;br /&gt;
 '''rm -rf /var/lib/phoneprov-tftp'''&lt;br /&gt;
 '''ln -s /HDcluster/var/lib/phoneprov-tftp /var/lib/phoneprov-tftp'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Configurar heartbeat para las dos maquinas.&lt;br /&gt;
: Instalamos heartbeat en las dos maquinas. '''En UBUNTU Server 14.04 ya está instalado.'''&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 aptitude install heartbeat&lt;br /&gt;
|}&lt;br /&gt;
: Debemos modificar 3 ficheros en cada una de las maquinas, estos se encuentran en '''/etc/ha.d'''. El primer fichero a modificar es '''''ha.cf.''''':&lt;br /&gt;
:: En la maquina ''vivaitcall-CL-UAH-1'' es: &lt;br /&gt;
::{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# cat /etc/ha.d/ha.cf&lt;br /&gt;
 '''# Explicacion en /usr/share/doc/heartbeat/ha.cf.gz'''&lt;br /&gt;
 &lt;br /&gt;
 '''udpport 694'''&lt;br /&gt;
 '''baud 19200'''&lt;br /&gt;
 '''auto_failback off'''&lt;br /&gt;
 '''use_logd yes'''&lt;br /&gt;
 '''crm no'''&lt;br /&gt;
 &lt;br /&gt;
 '''# Temporizaciones en segs'''&lt;br /&gt;
 '''logfacility local0'''&lt;br /&gt;
 '''keepalive 2'''&lt;br /&gt;
 '''deadtime 8'''&lt;br /&gt;
 '''warntime 16'''&lt;br /&gt;
 '''initdead 64'''&lt;br /&gt;
 '''deadping 6'''&lt;br /&gt;
 &lt;br /&gt;
 '''#ucast bond0 vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''ucast bond0 vivaitcall-CL-UAH-2'''&lt;br /&gt;
 &lt;br /&gt;
 '''#ucast em3 vivaitcall-CL-UAH-1-em3'''&lt;br /&gt;
 '''ucast em3 vivaitcall-CL-UAH-2-em3'''&lt;br /&gt;
 &lt;br /&gt;
 '''#Ping a puerta de enlace,gw1,gw2,gw3,gw4'''&lt;br /&gt;
 '''ping_group red_local 10.255.255.12'''&lt;br /&gt;
 &lt;br /&gt;
 '''respawn hacluster /usr/lib/heartbeat/ipfail'''&lt;br /&gt;
 '''apiauth ipfail gid=haclient uid=hacluster'''&lt;br /&gt;
 &lt;br /&gt;
 '''node vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''node vivaitcall-CL-UAH-2'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:: Y en la maquina ''vivaitcall-CL-palacio-2'' es:&lt;br /&gt;
::{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 root@vivaitcall-CL-UAH-1:~# cat /etc/ha.d/ha.cf&lt;br /&gt;
 '''# Explicacion en /usr/share/doc/heartbeat/ha.cf.gz'''&lt;br /&gt;
 &lt;br /&gt;
 '''udpport 694'''&lt;br /&gt;
 '''baud 19200'''&lt;br /&gt;
 '''auto_failback off'''&lt;br /&gt;
 '''use_logd yes'''&lt;br /&gt;
 '''crm no'''&lt;br /&gt;
 &lt;br /&gt;
 '''# Temporizaciones en segs'''&lt;br /&gt;
 '''logfacility local0'''&lt;br /&gt;
 '''keepalive 2'''&lt;br /&gt;
 '''deadtime 8'''&lt;br /&gt;
 '''warntime 16'''&lt;br /&gt;
 '''initdead 64'''&lt;br /&gt;
 '''deadping 6'''&lt;br /&gt;
 &lt;br /&gt;
 '''ucast bond0 vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''#ucast bond0 vivaitcall-CL-UAH-2'''&lt;br /&gt;
 &lt;br /&gt;
 '''ucast em3 vivaitcall-CL-UAH-1-em3'''&lt;br /&gt;
 '''#ucast em3 vivaitcall-CL-UAH-2-em3'''&lt;br /&gt;
 &lt;br /&gt;
 '''#Ping a puerta de enlace gw1 gw2 gw3 gw4'''&lt;br /&gt;
 '''ping_group red_local 10.255.255.12'''&lt;br /&gt;
 &lt;br /&gt;
 '''respawn hacluster /usr/lib/heartbeat/ipfail'''&lt;br /&gt;
 '''apiauth ipfail gid=haclient uid=hacluster'''&lt;br /&gt;
 &lt;br /&gt;
 '''node vivaitcall-CL-UAH-1'''&lt;br /&gt;
 '''node vivaitcall-CL-UAH-2'''&lt;br /&gt;
|}&lt;br /&gt;
::'''Nota:''' El parámetro '''auto_failback''' se utiliza para indicar si queremos que al recuperarse una maquina adquiera los recursos sobre los que tiene prioridad.&lt;br /&gt;
:El segundo fichero es '''''authkeys''''',, este fichero es el mismo en ambas maquinas: &lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 chmod 600 authkeys '''(importante)'''&lt;br /&gt;
 auth 1&lt;br /&gt;
 1 sha1 claveSecretaATope&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:El tercer fichero '''haresources''', donde especificaremos en las dos maquinas que deben apuntar a la maquina que queremos que tenga prioridad en la adquisición de los recursos, este fichero es el mismo en las dos maquinas: &lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 MÁQUINA 1 -&amp;gt; vivaitcall-CL-palacio-1 hb_mdtel&lt;br /&gt;
 MÁQUINA 2-&amp;gt; vivaitcall-CL-palacio-1 hb_mdtel &lt;br /&gt;
|}&lt;br /&gt;
: Copiaremos en el directorio '''/etc/ha.d/resource.d/''' los scripts de arranque con permisos 755 (lo podemos hacer mediante WINSCP). Los scripts se encuentran en '''''C:\Documents and Settings\javier.gutierrez.MDTEL\Mis documentos\Centrales\Asterisk\Cluster\scripts'''''.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 chmod 755 hb_catalina&lt;br /&gt;
 chmod 755 hb_mdtel&lt;br /&gt;
 chmod 755 hb_mdtel_firewall&lt;br /&gt;
|}&lt;br /&gt;
: Deberemos editar  el archivo '''hb_mdtel'''&lt;br /&gt;
:{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 (IP flotante a.b.c.d./mask) 10.255.255.10&lt;br /&gt;
 CAD_IP_FLOTA=10.255.255.10/24/bond0&lt;br /&gt;
|}&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* Paramos el proceso '''myAcdSuperv'''.&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 mv /etc/rc2.d/S02myAcdSuperv s02myAcdSuperv&lt;br /&gt;
|}&lt;br /&gt;
* Reiniciamos ambas maquinas para que su kernel tome los cambios.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de buen funcionamiento del cluster ====&lt;br /&gt;
* La maquina activa tiene que tener en HDcluster montado el disco con todos sus directorios y la maquina inactiva no (tenemos que ver el archivo que hemos creado &amp;quot;sinMontar&amp;quot;). &lt;br /&gt;
* La ip virtual tiene que estar en la maquina activa (ifconfig)  y no tiene que estar en la inactiva. &lt;br /&gt;
* El asterisk tiene que estar arrancado en la maquina activa y parado en la inactiva. &lt;br /&gt;
* Tecleando la ip de la maquina activa en un navegador debemos acceder al portal de vivait-call y en la inactiva no debe de estar activo. &lt;br /&gt;
* Para cambiar el cluster manualmente podemos utilizar los siguientes comandos:&lt;br /&gt;
:{|&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
  /usr/share/heartbeat/hb_takeover&lt;br /&gt;
|}&lt;br /&gt;
: La maquina desde la que se ejecuta se convierte en la maquina activa&lt;br /&gt;
:{|&lt;br /&gt;
 |- &lt;br /&gt;
 |&lt;br /&gt;
  /usr/share/heartbeat/hb_standby&lt;br /&gt;
 |}&lt;br /&gt;
: La maquina desde la que se ejecuta deja de ser la maquina activa&lt;br /&gt;
&lt;br /&gt;
==== Notas para MySQL ====&lt;br /&gt;
Si mysql es parte del cluster tenemos que tener en cuenta dos cosas:&lt;br /&gt;
&lt;br /&gt;
* El archivo '''/etc/mysql/debían.cnf''' contiene una clave que debe ser igual en ambas maquinas y debe ser la clave de la máquina de donde cojamos la base de datos.&amp;lt;br&amp;gt;&lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 # Automatically generated for Debian scripts. DO NOT TOUCH!&lt;br /&gt;
 [client]&lt;br /&gt;
 host     = localhost&lt;br /&gt;
 user     = debian-sys-maint&lt;br /&gt;
 password = AI6AdPtnhLUrNm1S&lt;br /&gt;
 socket   = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 [mysql_upgrade]&lt;br /&gt;
 user     = debian-sys-maint&lt;br /&gt;
 password = AI6AdPtnhLUrNm1S&lt;br /&gt;
 socket   = /var/run/mysqld/mysqld.sock&lt;br /&gt;
 basedir  = /usr&lt;br /&gt;
|} &amp;lt;br&amp;gt;&lt;br /&gt;
* El archivo '''/etc/apparmor.d/usr.sbin.mysqld''' contiene donde pueden estar ubicados los archivos de mysql, al cambiar su ubicación y poner un enlace directo en /var/lib/mysql si no modificamos este archivo mysql no arrancara al no tener la nueva ubicación entre sus localizaciones permitidas. Este es un ejemplo de las líneas que debemos añadir. &amp;lt;br&amp;gt;&lt;br /&gt;
:{|&lt;br /&gt;
|-  &lt;br /&gt;
|&lt;br /&gt;
 /var/run/mysqld/mysqld.sock w, (copiar después de esta linea)&lt;br /&gt;
 &lt;br /&gt;
 #//!!&lt;br /&gt;
   /HDcluster/var/lib/mysql/ r,&lt;br /&gt;
   /HDcluster/var/lib/mysql/** rwk,&lt;br /&gt;
   #//!!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Notas de desincronización ====&lt;br /&gt;
EL servicio del DRBD esta iniciado pero al teclear el comando cat /proc/drbd para ver si esta sincronizando se presenta &amp;quot;'''primary/unknown&amp;quot; y/o secondary/unknown''' &amp;quot;.&lt;br /&gt;
* En el nodo primary  &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 drbdadm connect all &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* En el nodo secondary  &lt;br /&gt;
:{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 drbdadm disconnect all  &lt;br /&gt;
 drbdadm -- --discard-my-data connect all&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Adaptar red a cliente ====&lt;br /&gt;
Para adaptar la red de los equipos al entorno del cliente hay que editar los siguientes ficheros:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 /etc/network/interfaces&lt;br /&gt;
 /etc/resolv.conf&lt;br /&gt;
 /etc/hosts&lt;br /&gt;
 /etc/ha.d/resource.d/hb_mdtel&lt;br /&gt;
 /etc/ha.d/ha.cf &lt;br /&gt;
 - TFTP: &lt;br /&gt;
 /etc/inetd.conf (IP del cluster)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
Tras la modificaciones oportunas, se debe reiniciar las dos máquinas para cargar las nuevas configuraciones.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Matriz de conmutación ===&lt;br /&gt;
&lt;br /&gt;
Encontramos dos diferentes núcleos de conmutación en la plataforma VIVAit:&lt;br /&gt;
&lt;br /&gt;
* Para los nodos de procesamiento ACD el núcleo de conmutación es asterisk 1.4 RSP con fuertes modificaciones realizadas por MDtel en determinados módulos (queues, chan_spy entre otros)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Para los nodos que realizan funcionalidad de gateway y/o procesamiento de telefonía corporativa, se utiliza como núcleo de conmutación asterisk 13, versión certified&lt;br /&gt;
https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Documentation&lt;br /&gt;
&lt;br /&gt;
==== Modificaciones realizadas sobre Asterisk 13 certified 2 ====&lt;br /&gt;
&lt;br /&gt;
===== Archivos añadidos por '''MD'''tel =====&lt;br /&gt;
Los archivos añadidos son los siguientes:&lt;br /&gt;
&lt;br /&gt;
* '''apps/app_ucid.c'''&lt;br /&gt;
* '''apps/app_cli.c'''&lt;br /&gt;
* '''apps/app_crash.c'''&lt;br /&gt;
* '''apps/app_mdintz.c'''&lt;br /&gt;
* '''apps/app_mdintz.exports.in'''&lt;br /&gt;
* '''include/asterisk/mdintz.h'''&lt;br /&gt;
* '''include/asterisk/ucid.h'''&lt;br /&gt;
* '''res/res_mdcal.c'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ apps/app_mdintz.exports.in '''&lt;br /&gt;
&lt;br /&gt;
Este archivo sirve para la exportación de funciones del mdintz para el uso por aplicaciones externas&lt;br /&gt;
&lt;br /&gt;
===== Modificaciones de archivos =====&lt;br /&gt;
&lt;br /&gt;
Los archivos modificados por '''MD'''tel son los mostrados a continuación:&lt;br /&gt;
&lt;br /&gt;
* '''apps/app_mixmonitor.c''' &lt;br /&gt;
* '''res/res_calendar_caldav.c'''&lt;br /&gt;
* '''contrib/scripts/safe_asterisk'''&lt;br /&gt;
* '''contrib/init.d/rc.debian.asterisk'''&lt;br /&gt;
* '''channels/sig_pri.c'''&lt;br /&gt;
* '''channels/chan_sip.c'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ main/audiohook.c''' &amp;lt;!--style=&amp;quot;color:#0000ff&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''audiohook.c''' ha sido modificado para solucionar un crash de asterisk al utilizar en el mixmonitor las opciónes r y t &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ app_crash.c '''&lt;br /&gt;
&lt;br /&gt;
Esta nueva aplicación es sólo compatible con '''Asterisk 13'''. &lt;br /&gt;
&lt;br /&gt;
La documentación de la misma se encuentra en el comando: '''&amp;quot;core show application Crash&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
Esta nueva aplicación ''permite añadir'' al plan de pruebas:&lt;br /&gt;
&lt;br /&gt;
* Generación de una parada de asterisk.&lt;br /&gt;
* Verificación de su impacto. Por ejemplo, no deben cortarse las llamadas en curso, si así está previsto por la topología.&lt;br /&gt;
* Correcta generación de los &amp;quot;core&amp;quot;, comprobando que funciona &amp;quot;backtrace&amp;quot; (bt).&lt;br /&gt;
&lt;br /&gt;
 '''Nota.-''' Esta aplicación no debería estar presente en una instalación de '''Asterisk 13'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ app_mdintz.c y mdintz.h''' &amp;lt;!--style=&amp;quot;color:#0000ff&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esta aplicación sirve como interfaz a entornos (funcionalidades) creados por MDtel&lt;br /&gt;
&lt;br /&gt;
Para mas información consultar la página de [[MDintz|MDintz]].&lt;br /&gt;
&lt;br /&gt;
Las rutas de estos archivos son las siguientes:&lt;br /&gt;
&lt;br /&gt;
'''apps/app_mdintz.c''' &amp;lt;br/&amp;gt;&lt;br /&gt;
'''include/asterisk/mdintz.h '''&lt;br /&gt;
&lt;br /&gt;
 '''app_mdintz.c''' :&lt;br /&gt;
&lt;br /&gt;
'''app_mdintz.c''' orientada al proceso de enrutamiento a implementar en ''intz-nimitz.''&lt;br /&gt;
&lt;br /&gt;
El archivo '''.c''' es casi igual para asterisk 1.4.24 y asterisk 13. &lt;br /&gt;
 '''Nota.-''' Cuando se compila para asterisk 13, es necesario comentar la línea que pone&amp;lt;br /&amp;gt; '''&amp;quot;#define ASTERISK_OLD&amp;quot;.'''&lt;br /&gt;
&lt;br /&gt;
Los cambios implementados son:&lt;br /&gt;
&lt;br /&gt;
* Unificación de código entre las versiones de asterisk&lt;br /&gt;
* Nuevo comando &amp;quot;qry&amp;quot;&lt;br /&gt;
* Posible resolución de &amp;quot;Mal write&amp;quot; en intz-nimitz (a verificar)&lt;br /&gt;
&lt;br /&gt;
En cuanto al nuevo comando, el formato es:&lt;br /&gt;
&lt;br /&gt;
 '''mdintz qry &amp;lt;nHostFijo&amp;gt; &amp;lt;entorno&amp;gt; &amp;lt;servicio&amp;gt; &amp;lt;par1&amp;gt;...&amp;lt;parN&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Permite interrogar a un servidor de igual modo que hace el dialplan con '''fines de diagnóstico'''. La única diferencia es que se ha añadido el parámetro '''&amp;quot;nHostFijo&amp;quot;''' que puede tomar como valor '''&amp;quot;*&amp;quot;''' (lo que solicita una interrogación secuencial a todos los servidores definidos, igual a la funcionalidad del dialplan) ó '''&amp;quot;0&amp;quot;''' a '''&amp;quot;3&amp;quot;''' (que solicita un interrogación dirigida el host indicado como hostN, y sólo a él, en archivo de configuración).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para instalarlo, es necesario copiar:&lt;br /&gt;
&lt;br /&gt;
* '''asterisk/apps/app_mdintz.c'''&lt;br /&gt;
* '''asterisk/include/asterisk/mdintz.h'''&lt;br /&gt;
* En asterisk 1.4.24 conviene asegurar que se ha actualizado '''&amp;quot;asterisk/apps/app_queue.o&amp;quot;''' y '''&amp;quot;asterisk/apps/app_queue.so&amp;quot;'''&lt;br /&gt;
* Luego '''&amp;quot;make&amp;quot;, &amp;quot;make install&amp;quot;''' y module '''&amp;quot;unload/load&amp;quot;''' (mejor &amp;quot;stop now&amp;quot; y start)&lt;br /&gt;
&lt;br /&gt;
'''→ scripts y rc.debian.asterisk'''&lt;br /&gt;
&lt;br /&gt;
cambiado contrib/scripts por el modificado por MDtel&amp;lt;br /&amp;gt;&lt;br /&gt;
cambiado contrib/init.d/rc.debian.asterisk por el modificado por MDtel &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ Carpeta mp3 añadida al directorio addons'''&lt;br /&gt;
&lt;br /&gt;
La carpeta mp3 en addons permite la reproducción desde el diaplan de los mensajes en mp3. En make menuselect hay que marcar el format_mp3 y app_mp3 e instalar el paquete mpg123 de ubuntu &lt;br /&gt;
&lt;br /&gt;
'''→ sig_pri.c'''&lt;br /&gt;
&lt;br /&gt;
Modificado para enviar/recibir el ucid en un primario qsig &lt;br /&gt;
&lt;br /&gt;
Para que se envie el ucis tenemos que habilitar el envio de facilidades en el chan_dahdi.conf&lt;br /&gt;
&lt;br /&gt;
facilityenable = yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''→ init.d''' &amp;lt;!--style=&amp;quot;color:#0000ff&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Uno de los archivos modificados ha sido '''init.d''', se encuentra en la ruta: '''/etc/init.d/asterisk'''. La modificación realizada es la siguiente:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;background-color:#ffffcc;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| SAFE_ASTEISK=/usr/sbin/safe_asterisk &amp;lt;br/&amp;gt;&lt;br /&gt;
if [ -x $SAFE_ASTERISK ] ; then&amp;lt;br/&amp;gt;&lt;br /&gt;
:# //!! wkw&amp;lt;br/&amp;gt;&lt;br /&gt;
:DAEMON=$SAFE_ASTERISK&amp;lt;br/&amp;gt;&lt;br /&gt;
fi&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--archivo--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''→ safe-asterisk'''&lt;br /&gt;
* Se encuentra en la siguiente ruta:'''/usr/sbin/safe-asterisk''' .En este archivo se ha modificado MAXFILES=32768&lt;br /&gt;
&lt;br /&gt;
'''→ default'''&lt;br /&gt;
&lt;br /&gt;
* Este fichero podemos encontrarlo en: '''/etc/default/asterisk'''. La finalidad de la modificación de este fichero es poder correr como usuario Asterisk, grupo asterisk y generar cores (descomentar línea)&lt;br /&gt;
Las modificaciones realizadas han sido:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;background-color:#ffffcc;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| AST_USER=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
AST_GROUP=&amp;quot;asterisk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
COREDUMP=yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Nueva función de asterisk: app_cli.so =====&lt;br /&gt;
&lt;br /&gt;
Esta función permite ejecutar desde el '''dialplan''' un comando de línea de consola de '''asterisk (CLI).''' Su primer uso (y esperamos que no último) será para lanzar los '''notify''' que los teléfonos necesitan para el ''reaprovisionamiento'' desde el portal o desde la facilidad de movilidad de usuario.&lt;br /&gt;
&lt;br /&gt;
Básicamente ejecuta un comando y devuelve su salida. Utiliza un archivo intermedio que puede ser:&lt;br /&gt;
&lt;br /&gt;
* '''/dev/null''' si el campo se deja vacío, por tanto, no se puede recuperar la salida.&lt;br /&gt;
* '''TEMP''', en cuyo caso se crea un archivo temporal que se borra antes de finalizar la ejecución de la función.&lt;br /&gt;
* Un nombre de fichero que es responsabilidad del dialplan el borrarlo cuando proceda.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para instalarlo basta copiar '''apps/app_cli.c''' en el directorio ''' &amp;quot;apps&amp;quot; ''' de los fuentes y luego  ejecutar '''&amp;quot;make&amp;quot; y &amp;quot;make install&amp;quot;.'''&lt;br /&gt;
&lt;br /&gt;
A continuación se pasa el resultado de '''&amp;quot;core show function CLI&amp;quot; '''&lt;br /&gt;
&lt;br /&gt;
'''[Synopsis]'''&lt;br /&gt;
&lt;br /&gt;
 Lanza un comando CLI desde dialplan&lt;br /&gt;
&lt;br /&gt;
'''[Description]''' &amp;lt;br /&amp;gt;&lt;br /&gt;
 - CLI(nomArchSal,cmd)&amp;lt;br /&amp;gt;&lt;br /&gt;
 - Si 'nomArchSal' está vacio, se usa '/dev/null' y no se recupera resultado&amp;lt;br /&amp;gt;&lt;br /&gt;
 - Si 'nomArchSal'=TEMP, Se crea un archivo temporal que se borra al final&amp;lt;br /&amp;gt;&lt;br /&gt;
 - En otro caso, se crea el archivo y no se borra&lt;br /&gt;
&lt;br /&gt;
'''[Syntax]'''&amp;lt;br /&amp;gt;&lt;br /&gt;
 CLI(nomArchSal,cmd)&lt;br /&gt;
&lt;br /&gt;
'''[Arguments]'''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''nomArchSal'''&lt;br /&gt;
    Archivo de salida (si se omite, /dev/null)&lt;br /&gt;
'''cmd'''&lt;br /&gt;
    Comando a ejecutar via CLI&lt;br /&gt;
&lt;br /&gt;
==== Dialplan  ====&lt;br /&gt;
&lt;br /&gt;
El Dialplan podría considerarse la columna vertebral del sistema ''Asterisk''.&lt;br /&gt;
&lt;br /&gt;
Es una colección ordenada de acciones que se llevan a cabo cuando un usuario marca una serie de números. Hace la función de una tabla de enrutamiento de llamadas.&lt;br /&gt;
&lt;br /&gt;
Todas las configuraciones generales de Asterisk están accesibles en la ruta '''/etc/asterisk'''&lt;br /&gt;
&lt;br /&gt;
'''CONCEPTOS BÁSICOS'''&lt;br /&gt;
&lt;br /&gt;
♦ '''EXTENSIONES'''&lt;br /&gt;
&lt;br /&gt;
Una extensión es una marcación en el teclado de un teléfono. Dicha configuración podemos encontrarla en el archivo '''extensions.conf''' &lt;br /&gt;
&lt;br /&gt;
Por ejemplo, un usuario podría marcar “3001” en su teléfono, y eso sería una extensión. También podría marcar un número de teléfono nacional, como por ejemplo “915881000”, y también sería una extensión.&lt;br /&gt;
&lt;br /&gt;
En Asterisk pueden definirse también extensiones como texto, por tanto no debemos relacionar las extensiones únicamente con números.&lt;br /&gt;
&lt;br /&gt;
Algunas reglas que sería interesante conocer serían las siguientes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Regla''' !! '''Descripción'''&lt;br /&gt;
|-&lt;br /&gt;
| '''X''' || Cualquier cifra de 0 a 9&lt;br /&gt;
|-&lt;br /&gt;
|'''Z'''||Cualquier cifra de 1 a 9&lt;br /&gt;
|-&lt;br /&gt;
|'''N'''||Cualquier cifra de 2 a 9&lt;br /&gt;
|-&lt;br /&gt;
|'''[x-y]'''||Cualquier cifra de &amp;quot;x&amp;quot; a &amp;quot;y&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''[xyz]'''|| 	Las cifras &amp;quot;x&amp;quot;, &amp;quot;y&amp;quot; o &amp;quot;z&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''.'''||Una o más repeticiones del símbolo anterior&lt;br /&gt;
|-&lt;br /&gt;
|'''!'''||Cero o más repeticiones del símbolo anterior&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Estas reglas son necesarias a la hora de definir por ejemplo todos los números de teléfono posibles en España &lt;br /&gt;
&lt;br /&gt;
♦ '''PRIORIDADES'''&lt;br /&gt;
&lt;br /&gt;
En lenguaje scripting, las acciones se van ejecutando de arriba a abajo en orden. En cambio, en Asterisk, el orden en el que se ejecutan las acciones es el indicado mediante números.&lt;br /&gt;
Primero se ejecutará la acción 1, luego la 2...así sucesivamente.&lt;br /&gt;
&lt;br /&gt;
Es decir no basta con definir las acciones que se llevarán a cabo, también debemos indicar el orden en el que se llevarán a cabo.&lt;br /&gt;
&lt;br /&gt;
♦ '''CONTEXTOS'''&lt;br /&gt;
&lt;br /&gt;
Es mecanismo que nos permite variar el comportamiento del sistema en función del número que se marque. Su misión es aumentar la seguridad del sistema ofreciendo servicios diferenciados en función del usuario.&lt;br /&gt;
&lt;br /&gt;
La sintaxis típica es el nombre del contexto englobado entre corchetes [nombre_contexto]. Si un dispositivo no tiene un contexto definido se redirige directamente al contexto por defecto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los ficheros que conforman el Dialplan se clasifican en:&lt;br /&gt;
&lt;br /&gt;
* '''Generales'''&lt;br /&gt;
* '''Particulares'''&lt;br /&gt;
* '''Web'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Fichero''' !! '''Función'''&lt;br /&gt;
|-&lt;br /&gt;
| '''Generales''' || Se encuentran los ficheros de propios de MDtel y Asterisk. Es importante remarcar que estos ficheros NO pueden ser modificados por el usuario.&lt;br /&gt;
|-&lt;br /&gt;
|'''Particular'''||Estos ficheros son los únicos que puede modificar el usuario&lt;br /&gt;
|-&lt;br /&gt;
|'''Web'''|| Se encierran aquí los archivos generados automáticamente por la plataforma, a través del portal&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
En función del nodo en el que estemos trabajando, encontraremos dos tipos de dialplan:&lt;br /&gt;
&lt;br /&gt;
'''* Dialplan ACD''' --&amp;gt; Dialplan que aplica a nodos ACD&lt;br /&gt;
&lt;br /&gt;
'''* Dialplan corporativa''' --&amp;gt; Dialplan que aplica a nodos de corporativa o gateways (ya sean de corporativa o ACD)&lt;br /&gt;
&lt;br /&gt;
A continuación se muestran las tablas con los ficheros correspondientes a cada Dialplan.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;FloralWhite&amp;quot;&lt;br /&gt;
|+ '''Ficheros de configuración Dialplan Corporativo'''&lt;br /&gt;
| '''GENERALES'''&lt;br /&gt;
| '''PARTICULARES'''&lt;br /&gt;
| '''WEB'''&lt;br /&gt;
|-&lt;br /&gt;
| ext_Grabaciones.conf &amp;lt;br /&amp;gt;ext_InicioLlamada.conf &amp;lt;br /&amp;gt; ext_InicioLlamada_Dahdi.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP.conf &amp;lt;br/&amp;gt;ext_InicioLlamada_TrunkSIP.conf &amp;lt;br /&amp;gt;ext_MARCAR_ColaCentralita.conf &amp;lt;br /&amp;gt; ext_MARCAR_ColaCentralita_Dial.conf&amp;lt;br /&amp;gt; ext_MARCAR_Cola.conf &amp;lt;br /&amp;gt;ext_MARCAR_Cola_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR.conf  &amp;lt;br /&amp;gt; ext_MARCAR_DejarMensaje.conf &amp;lt;br /&amp;gt; ext_MARCAR_DejarMensaje_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Extension.conf&amp;lt;br /&amp;gt;ext_MARCAR_Extension_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_nimitz.conf&amp;lt;br /&amp;gt;ext_MARCAR_Interno.conf &amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje.conf &amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR_Nodo.conf&amp;lt;br /&amp;gt;ext_MARCAR_Nodo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Servicios.conf &amp;lt;br /&amp;gt;ext_MARCAR_VDN.conf &amp;lt;br /&amp;gt;MARCAR_VDN_Dial.conf&amp;lt;br /&amp;gt;ext_MDtel.conf &amp;lt;br /&amp;gt;ext_MDtel_Var.conf &amp;lt;br /&amp;gt;ext_Subrutinas_AnchoBanda.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD_Facilidad.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD_Facilidad.conf &amp;lt;br /&amp;gt; ext_Subrutinas_Colas.conf &amp;lt;br /&amp;gt;ext_Subrutinas.conf &amp;lt;br /&amp;gt;ext_Subrutinas_Enrutamiento.conf &amp;lt;br /&amp;gt;ext_Subrutinas_finLlamada.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Grabacion.conf&amp;lt;br /&amp;gt;ext_Subrutinas_nimitz.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Varias.conf&amp;lt;br /&amp;gt;ext_Subscribe.conf&amp;lt;br /&amp;gt;ext_Transfer.conf &amp;lt;br /&amp;gt;ext_Transfer_ExtSIP.conf&amp;lt;br /&amp;gt;ext_Transfer_TrunkInternos.conf &amp;lt;br /&amp;gt;ext_TrunkInternos.conf&amp;lt;br /&amp;gt;ext_TrunkInternos_Dial.conf &amp;lt;br /&amp;gt;sip_Estatico.conf&amp;lt;br /&amp;gt; sip_GENCUST.conf &amp;lt;br /&amp;gt;sip_notify.conf &amp;lt;br /&amp;gt;queues.conf &amp;lt;br /&amp;gt; queues_GENERAL.conf &amp;lt;br /&amp;gt;queues_PLANTILLACOLAS.conf&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| ext_Enrutador_Particular.conf&amp;lt;br /&amp;gt; ext_InicioLlamada_Dahdi_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_Particular.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_TrunkSIP_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_Extension_Particular.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo_Particular.conf &amp;lt;br/&amp;gt; ext_MARCAR_Facilidad_Particular.conf&amp;lt;br /&amp;gt; ext_MARCAR_VDN_Particular.conf &amp;lt;br /&amp;gt;ext_MDtel_Particular.conf &amp;lt;br/&amp;gt; ext_TrunkInternos_Particular.conf &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|asterisk_WEB.conf &amp;lt;br /&amp;gt; ext_MDtel_WEB.conf &amp;lt;br /&amp;gt; sip_trunkExt_WEB.conf &amp;lt;br /&amp;gt;sip_trunkInt_WEB.conf &amp;lt;br /&amp;gt;sip_trunk_WEB.conf &amp;lt;br /&amp;gt; sip_WEB.conf &amp;lt;br /&amp;gt; queues_WEB.conf&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; align=&amp;quot;center&amp;quot; bgcolor=&amp;quot;FloralWhite&amp;quot;&lt;br /&gt;
|+ '''Ficheros de configuración Dialplan ACD'''&lt;br /&gt;
| '''GENERALES'''&lt;br /&gt;
| '''PARTICULARES'''&lt;br /&gt;
| '''WEB'''&lt;br /&gt;
|-&lt;br /&gt;
| ext_Enrutador.conf&amp;lt;br /&amp;gt;ext_Grabaciones.conf &amp;lt;br /&amp;gt; ext_InicioLlamada.conf &amp;lt;br /&amp;gt; ext_InicioLlamada_CTI.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_Dahdi.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_Marcador.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_TrunkSIP.conf &amp;lt;br /&amp;gt;ext_MARCAR_ColaCentralita.conf &amp;lt;br /&amp;gt;ext_MARCAR_ColaCentralita_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR_Cola.conf &amp;lt;br /&amp;gt;ext_MARCAR_Cola_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR.conf &amp;lt;br /&amp;gt;ext_MARCAR_DejarMensaje.conf &amp;lt;br /&amp;gt;ext_MARCAR_DejarMensaje_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Extension.conf &amp;lt;br /&amp;gt;ext_MARCAR_Extension_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo.conf &amp;lt;br /&amp;gt;ext_MARCAR_Externo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_nimitz.conf&amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje.conf &amp;lt;br /&amp;gt;ext_MARCAR_LeerMensaje_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_Nodo.conf &amp;lt;br /&amp;gt;ext_MARCAR_Nodo_Dial.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf.conf &amp;lt;br /&amp;gt;ext_MARCAR_SalasConf_Dial.conf&amp;lt;br /&amp;gt;ext_MARCAR_Servicios.conf &amp;lt;br /&amp;gt;ext_MARCAR_VDN.conf &amp;lt;br /&amp;gt;ext_MARCAR_VDN_Dial.conf&amp;lt;br /&amp;gt;ext_MDtel.conf &amp;lt;br /&amp;gt;ext_MDtel_Var.conf &amp;lt;br /&amp;gt;ext_Subrutinas_AnchoBanda.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD.conf &amp;lt;br /&amp;gt;ext_Subrutinas_BD_Facilidad.conf &amp;lt;br /&amp;gt; ext_Subrutinas_Colas.conf &amp;lt;br /&amp;gt;ext_Subrutinas.conf &amp;lt;br /&amp;gt;ext_Subrutinas_Enrutamiento.conf &amp;lt;br /&amp;gt; ext_Subrutinas_finLlamada.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Grabacion.conf &amp;lt;br /&amp;gt;ext_Subrutinas_nimitz.conf&amp;lt;br /&amp;gt;ext_Subrutinas_Varias.conf &amp;lt;br /&amp;gt;ext_Subscribe.conf&amp;lt;br /&amp;gt;ext_Transfer.conf &amp;lt;br /&amp;gt;ext_Transfer_ExtSIP.conf&amp;lt;br /&amp;gt;ext_Transfer_TrunkInternos.conf &amp;lt;br /&amp;gt;ext_TrunkInternos.conf &amp;lt;br /&amp;gt;ext_TrunkInternos_Dial.conf &amp;lt;br /&amp;gt;queues_GENERAL.conf&amp;lt;br /&amp;gt;queues_PLANTILLACOLAS.conf &amp;lt;br /&amp;gt;sip_GENCUST.conf &amp;lt;br /&amp;gt;sip_GENERAL.conf &amp;lt;br /&amp;gt;sip_notify.conf &amp;lt;br /&amp;gt;sip_PLANTILLAEXT.conf&amp;lt;br /&amp;gt;sip_supervision.conf &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| ext_Enrutador_Particular.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_CTI_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_Dahdi_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_ExtSIP_Particular.conf&amp;lt;br /&amp;gt;ext_InicioLlamada_Marcador_Particular.conf &amp;lt;br /&amp;gt;ext_InicioLlamada_Particular.conf.&amp;lt;br /&amp;gt;ext_InicioLlamada_TrunkSIP_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_Externo_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_Facilidad_Particular.conf&amp;lt;br /&amp;gt;ext_MARCAR_VDN_Particular.conf&amp;lt;br /&amp;gt; ext_MDtel_Particular.conf&amp;lt;br /&amp;gt;ext_TrunkInternos_Particular.conf&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
|asterisk_WEB.conf &amp;lt;br /&amp;gt; ext_MDtel_WEB.conf &amp;lt;br /&amp;gt;queues_WEB.conf&amp;lt;br /&amp;gt; sip_trunkInt_WEB.conf &amp;lt;br /&amp;gt;sip_WEB.conf &amp;lt;br /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Servicios networking ===&lt;br /&gt;
Son muy importantes las configuraciones adecuadas de los servicios de:&lt;br /&gt;
&lt;br /&gt;
* '''NTP''': El sistema en global ha de estar sincronizado; todos los servidores y puestos de trabajo (en el caso de ''VIVA''it Suite) han de estar perfectamente sincronizados; los servidores de la plataforma se sincronizarán con el NTP del cliente; si el cliente no tiene NTP será necesario que un servidor de la plataforma se sincronice con un NTP externo y este sea el servidor para el resto de la plataforma&lt;br /&gt;
&lt;br /&gt;
* '''DNS''': La configuración de DNS de la plataforma será coherente con el resto de la plataforma IT del cliente&lt;br /&gt;
&lt;br /&gt;
* '''DHCP''': Es necesario coordinar con el cliente la asignación de direcciones para los diferentes elementos de la plataforma '''''VIVA'''''it, fundamentalmente para terminales telefónicos; en este caso además será necesario activa la opción 66 que permitirá definir el servidor TFTP del que los terminales cogerán sus ficheros de aprovisionamiento&lt;br /&gt;
&lt;br /&gt;
=== Bases de datos (BBDD)===&lt;br /&gt;
&lt;br /&gt;
La base de datos del sistema se basa en el motor de base de datos MySQL, es un elemento crítico del sistema, en el que insertan y del que obtiene mucha información múltiples procesos.&lt;br /&gt;
Muchas comunicaciones entre procesos se realizan vía Base de Datos (tabla COM_COMUNICADOS). Pueden existir distintas instancias de base de datos que explicadas en las siguientes secciones, nuestra base de datos tiene la siguiente estructura: [[Base de datos|Información completa de la BD]]. Podéis ampliar más información en https://dev.mysql.com/doc/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== BBDD Tiempo Real ====&lt;br /&gt;
En la base de datos de tiempo real insertan información todos los procesos del sistema, y se realizan los cambios en configuración utilizando como herramienta el portal de administración y '''''VIVA'''''it Supervisor&lt;br /&gt;
&lt;br /&gt;
De la base de datos de tiempo real leen los procesos que requieren información, y las aplicaciones:&lt;br /&gt;
*'''''VIVA'''''it Supervisor (para reporting de tiempo real)&lt;br /&gt;
*PanelWeb&lt;br /&gt;
*Datos de sesión de '''''VIVA'''''it Desk&lt;br /&gt;
*Monitorización Zabbix&lt;br /&gt;
* Otros&lt;br /&gt;
&lt;br /&gt;
El portal de administración se encarga de escribir las configuraciones añadidas o modificadas en la base de datos&lt;br /&gt;
&lt;br /&gt;
==== BBDD Réplica ====&lt;br /&gt;
A efectos de asegurar las prestaciones del sistema, se establece una réplica de la base de datos, sincronizada con la de tiempo real; los procesos y aplicaciones pesados, que realicen consultas a las base de datos que puedan comprometer las prestaciones del sistema atacan a la réplica y nunca a la base de datos de tiempo real&lt;br /&gt;
&lt;br /&gt;
Es posible que en instalaciones pequeñas no exista réplica, en cuyo caso se establece una base de datos unificada sobre la de tiempo real, en la que se añaden índices y procedimientos almacenados que típicamente residen en la de réplica.&lt;br /&gt;
&lt;br /&gt;
Es posible establecer tantas réplicas como sean necesarias si diferentes procesos pesados se penalizan en exceso, si bien una implantación tipo contemplará una sola&lt;br /&gt;
&lt;br /&gt;
Algunos procesos que utilizan la base de datos de réplica son:&lt;br /&gt;
*'''''VIVA'''''it Reporting&lt;br /&gt;
*'''''VIVA'''''it Tracker&lt;br /&gt;
*Histórico en tiempo real de '''''VIVA'''''it Supervisor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANTE: Ningún proceso, programa, aplicación, etc. escribe en la base de datos de réplica; tan solo se extrae información'''&lt;br /&gt;
&lt;br /&gt;
==== BBDD de copia ====&lt;br /&gt;
A efectos de asegurar el funcionamiento y como medida de contingencia ante un problema puntual de comunicación con la BD de tiempo real, en cada nodo disponemos de una BD de copia local. Posiblemente de un tamaño menor que la BD de tiempo real, dependiendo de cuanto tiempo pase hasta la próxima sincronización con la base de tiempo real.Esta base de datos llamada '''nimitzCopia'''.&lt;br /&gt;
  &lt;br /&gt;
Solo entrara en funcionamiento,cuando se produzca el problema mencionado, dejando acceder a los datos y poder dar servicio a la empresa mientras se soluciona el problema.&lt;br /&gt;
&lt;br /&gt;
===== Backup y restore =====&lt;br /&gt;
&lt;br /&gt;
Se utilizan dos script, para realizar la copia de seguridad y restaurar en la base de datos de copia local que son:&lt;br /&gt;
&lt;br /&gt;
* El proceso '''bdCentral.sh''' que es el encargado de realizar la copia de seguridad. Tiene un archivo de configuración bdCentral.conf. En este archivo hay un parámetro (IGNORE_TABLAS) que indica las tablas de las que NO se realizará copia de seguridad. Toda tabla que no se indique formará parte de la copia de seguridad. Vuelca los resultados en /var/log/bdCentral.log&lt;br /&gt;
* El proceso '''bdNodo.sh''' que es el encargado de descargar la copia de seguridad y restaurarla en local. Tiene un archivo de configuración bdNodo.conf. Vuelca los resultados en /var/log/bdNodo.log. El fichero de backup se copia mediante el usuario sincroniza, que deberá poder acceder sin contraseña al servidor donde reside la copia.&lt;br /&gt;
&lt;br /&gt;
En caso de producirse algún error en alguno de los procesos, marcarán dicho error en el log con una línea que comienza con la cadena &amp;quot;*ERROR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Diagnósticos y operaciones sobre bases de datos ====&lt;br /&gt;
&lt;br /&gt;
=====Comprobación que una base de datos está arrancada=====&lt;br /&gt;
Para comprobar si la base de datos está arrancada debemos poner en el terminal : '''ps aux | grep mysql'''&lt;br /&gt;
&lt;br /&gt;
Si la base de datos está arrancada y funcionando correctamente se nos mostrará en el terminal:&lt;br /&gt;
[[Archivo:Base_Datos_bien.png‎ |500px|center]]&lt;br /&gt;
&lt;br /&gt;
Por el contrario, si la base de datos presenta algun problema el mensaje mostrado será:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Base_datos_mal.png |center]]&lt;br /&gt;
&lt;br /&gt;
=====Comprobación que la base de datos de réplica está sincronizada con la base de datos de tiempo real.=====&lt;br /&gt;
&lt;br /&gt;
Si se necesita verificar que la base de réplica está sincronizada con la base de datos en tiempo real basta con acudir al comando : '''show slave status\G'''.&lt;br /&gt;
&lt;br /&gt;
Una vez introducido veremos:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Replica.png |980px|center]]&lt;br /&gt;
&lt;br /&gt;
Comandos importantes, desde dentro consola de Mysql:&lt;br /&gt;
&lt;br /&gt;
 '''show master status''': Realizado desde el master&lt;br /&gt;
 '''show slave status''': Realizado desde el esclavo; el valor &amp;quot;seconds behind master&amp;quot; nos indica&lt;br /&gt;
 cuanto está retrasada la réplica con respecto a la base de datos de tiempo real. Si el valor de este campo es elevado nos indicará &lt;br /&gt;
 que la base de datos real con la réplica no estará sincronizada, por tanto, nos interesa que este valor sea lo más pequeño posible.&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Procesos propios ===&lt;br /&gt;
&lt;br /&gt;
==== bdCentral ====&lt;br /&gt;
&lt;br /&gt;
El proceso ''bdCentral.sh'' es el encargado de realizar la copia de seguridad. Tiene un archivo de configuración ''bdCentral.conf'' el cual puede encontrarse en la ruta '''/etc/MDtel/bdCentral.conf'''. En este archivo hay un parámetro (IGNORE_TABLAS) que indica las tablas de las que NO se realizará copia de seguridad. Toda tabla que no se indique formará parte de la copia de seguridad. Vuelca los resultados en /var/log/bdCentral.log&lt;br /&gt;
&lt;br /&gt;
En caso de producirse algún error, se marcará dicho error en el log con una línea que comienza con la cadena &amp;quot;*ERROR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Para ejecutar bdCentral:&lt;br /&gt;
 bdCentral.sh /etc/MDtel/bdCentral.conf&lt;br /&gt;
&lt;br /&gt;
Estos procesos se ejecutan automáticamente. Para ello está copiado el fichero bdCentral a /etc/cron.d.&lt;br /&gt;
&lt;br /&gt;
Por defecto la programación vienen comentada por lo que será necesario activarlo.&lt;br /&gt;
&lt;br /&gt;
Para que se roten los logs hay que copiar el fichero bdCentral.logrotate a /etc/logrotate.d (como bdCentral)&lt;br /&gt;
La ruta donde se encuentran los logs es la siguiente: '''/var/log/myAcdSuperv.log'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
*A continuación se explica la utilidad de los campos mas relevantes del fichero de configuración bdCentral.conf. &lt;br /&gt;
ARCH_LOG : &lt;br /&gt;
BDHOST: Localización de la base de datos&lt;br /&gt;
BDUSU: Usuario para la base de datos&lt;br /&gt;
BDRUTA: Ruta donde se encuentra la base de datos&lt;br /&gt;
IGNORE_TABLAS:&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== bdNodo ====&lt;br /&gt;
El proceso bdNodo.sh es el encargado de descargar la copia de seguridad y restaurarla en local. Tiene un archivo de configuración bdNodo.conf, este archivo puede encontrarse en la ruta '''/etc/MDtel/bdNodo.conf.''' Vuelca los resultados en /var/log/bdNodo.log. El fichero de backup se copia mediante el usuario sincroniza, que deberá poder acceder sin contraseña al servidor donde reside la copia.&lt;br /&gt;
&lt;br /&gt;
En caso de producirse algún error, se marcará dicho error en el log con una línea que comienza con la cadena &amp;quot;*ERROR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Para ejecutar bdNodo:&lt;br /&gt;
&lt;br /&gt;
 bdNodo.sh /etc/MDtel/bdNodo.conf&lt;br /&gt;
&lt;br /&gt;
Estos procesos se ejecutan automáticamente. Para ello está copiado el fichero bdNodo a /etc/cron.d.&lt;br /&gt;
&lt;br /&gt;
Por defecto la programación vienen comentada por lo que será necesario activarlo.&lt;br /&gt;
&lt;br /&gt;
Para que se roten los logs hay que copiar el fichero bdNodo.logrotate a /etc/logrotate.d (como bdNodo)&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Intz-Nimitz ====&lt;br /&gt;
&lt;br /&gt;
Permite integrar procesos de asterisk (del dialplan) con la base de datos; por ejemplo es el que graba segmentos, inspecciona donde esta registrado un agente…etc. La estabilidad de este proceso es importante para el funcionamiento del sistema, si bien las llamadas entran en caso de no estar disponible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para mas información consultar la página de [[intz-nimitz|intz-nimitz]].&lt;br /&gt;
&lt;br /&gt;
Desde un SSH ejecuta el comando “nc ip_maquina 1115”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1115'''&lt;br /&gt;
 intz-nimitz sis ver='V02.6' inic='20140401 110116' alarmas=21 ultAlar='20140414 171244'&lt;br /&gt;
 intz-nimitz gmp msj=942/1024 buf=1024/1024 tarea=16/102&lt;br /&gt;
 intz-nimitz tmp uptime=1816550 (21d 0h 35m 50s)&lt;br /&gt;
 intz-nimitz vic identif='cms1' entorno='nimitz' conx=0/128 numConx=1018(0)&lt;br /&gt;
 intz-nimitz mys curro=80/0/0/0 soli=1012(0) soliErr=6(0) soliEncol=0(0/0)&lt;br /&gt;
 intz-nimitz cache colas=128/10/0/0 vdn=128/8/0/0 usuExten=10/0/0/0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parámetro!!Descripción&lt;br /&gt;
|-&lt;br /&gt;
|sis/ver||Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|sis/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|Sis/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|Sis/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/msj||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/buf||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/tarea||&lt;br /&gt;
|-&lt;br /&gt;
|Tmp/uptime||Tiempo que lleva el servicio activo&lt;br /&gt;
|-&lt;br /&gt;
|Vic/identif||Etiqueta de identificación del servicio&lt;br /&gt;
|-&lt;br /&gt;
|Vic/entorno||Entorno de base de datos&lt;br /&gt;
|-&lt;br /&gt;
|Vic/conx||Conexiones activas/conexiones máximas&lt;br /&gt;
|-&lt;br /&gt;
|Vic/numConx||Conexiones totales (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|Mys/curro||Número de hilos contra la base de datos&lt;br /&gt;
|-&lt;br /&gt;
|Mys/soli||Conexiones solicitadas (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|Mys/soliErr||Conexiones solicitadas con error (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|Mys/soliEncol||Conexiones encoladas&lt;br /&gt;
|-&lt;br /&gt;
|Cache/cola|| Colas monitorizadas/&lt;br /&gt;
|-&lt;br /&gt;
|Cache/vdn||VDN’s monitorizados&lt;br /&gt;
|-&lt;br /&gt;
|Cache/usuExten||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en  '''/etc/MDtel/intz-nimitz.conf'''&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/intz-nimitz.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
A continuación se muestran los campos mas importantes del fichero de configuración intz-nimitz.conf:&lt;br /&gt;
&lt;br /&gt;
enrutamiento &lt;br /&gt;
{ &lt;br /&gt;
        hay_enrutamiento = 1 &lt;br /&gt;
        max_pre_ruta_regs = 4 &lt;br /&gt;
        max_ruta = 4 &lt;br /&gt;
        max_ruta_desvios = 2 &lt;br /&gt;
# Filtro de informacion de ancho de banda &lt;br /&gt;
# MYSDanchoBandaPasoNinguno      0 &lt;br /&gt;
# MYSDanchoBandaPasoSoloDirectos 1 &lt;br /&gt;
# MYSDanchoBandaPasoSoloEnPaso   2 &lt;br /&gt;
# MYSDanchoBandaPasoTodos        3 &lt;br /&gt;
        filtro_ancho_banda = 1 &lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
mysql &lt;br /&gt;
{ &lt;br /&gt;
        hay_mysql = 1   Indica si hay base de datos mysql&lt;br /&gt;
        host = BDTR &lt;br /&gt;
        usuario = nimitz   Usuario base de datos&lt;br /&gt;
        clave = phikau3iwCe4O0PP5b09ng==   clave base de datos&lt;br /&gt;
        base_datos = nimitz &lt;br /&gt;
        bd_supervivencia = 0 &lt;br /&gt;
        num_curro = 10 &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== motorSal ====&lt;br /&gt;
Parte fundamental del proceso de marcación saliente, gestiona como hay que llamar a los diferentes contactos asignados a las campañas. Transforma los contactos en intentos de marcación.&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH ejecuta el comando “nc ip_maquina 1120”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1120'''&lt;br /&gt;
 motorSal sis ver='V01.4' inic='20140725 140832' alarmas=1 ultAlar='20140725 140832'&lt;br /&gt;
 motorSal gmp msj=253/256 buf=256/256 tarea=99/102&lt;br /&gt;
 motorSal tmp uptime=600165 (6d 22h 42m 45s)&lt;br /&gt;
 motorSal mtr mys=1 ocup=0% planif=28(0) intento=26(0)&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parámetro!!Descripción&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ver||Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/msj||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/buf||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/tarea||&lt;br /&gt;
|-&lt;br /&gt;
|Tmp/uptime||Tiempo que lleva corriendo&lt;br /&gt;
|-&lt;br /&gt;
|mtr/mys||Si está conectado al MySQL&lt;br /&gt;
|-&lt;br /&gt;
|mtr/ocup||Porcentaje de ocupación&lt;br /&gt;
|-&lt;br /&gt;
|mtr/planif||Contactos planificados Totales (Último minuto)&lt;br /&gt;
|-&lt;br /&gt;
|mtr/intento||Intentos totales (Ültimo minuto)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Posee un fichero de configuración llamado ''motorSal.conf'' en la ruta '''/etc/MDtel/motorSal.conf'''.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:Las variables que normalmente son modificadas son las siguientes:&lt;br /&gt;
&lt;br /&gt;
mysql&lt;br /&gt;
{&lt;br /&gt;
hay_mysql = 1&lt;br /&gt;
Indica si hay base de datos mysql&lt;br /&gt;
host = localhost&lt;br /&gt;
usuario = nimitz&lt;br /&gt;
Usuario base de datos&lt;br /&gt;
Clave base de datos&lt;br /&gt;
base_datos = nimitz&lt;br /&gt;
}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Respecto a los logs del motorSal consultar el siguiente apartado: [[Trazas motorSal]]. Los logs pueden verse en la ruta '''/var/log/intz-nimitz.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== MyACDSuperv ====&lt;br /&gt;
Refleja el estado de las colas de asterisk en la base de datos; tiene sentido a efectos de estadísticas e informes, pero no a efectos de funcionamiento de la conmutación de voz&lt;br /&gt;
&lt;br /&gt;
Es también el proceso que genera las llamadas en el marcador automático de '''''VIVA'''''it Suite&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando “nc ip_maquina 1112”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1112'''&lt;br /&gt;
 myAcdSuperv SIS ver='04.6' inic='20140416 081613' alarmas=6 ultAlar='20140416 121652'&lt;br /&gt;
 myAcdSuperv AMI cnx=1 ocup=28% exten=2/2/511 asig=0/11/4095&lt;br /&gt;
 myAcdSuperv MYSQL cnx=1 ms=316&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parámetro!!Descripción&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ver||Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|SIS/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|SIS/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|AMI/cnx||Conectado (1) a asterisk&lt;br /&gt;
|-&lt;br /&gt;
|AMI/ocup||Porcentaje de ocupación de MyACDSuperv&lt;br /&gt;
|-&lt;br /&gt;
|AMI/exten||Extensiones/Extensiones/Extensiones monitorizadas|-&lt;br /&gt;
|-&lt;br /&gt;
|AMI/asig||&lt;br /&gt;
|-&lt;br /&gt;
|MYSQL/cnx||Conectado (1) a MySQL&lt;br /&gt;
|-&lt;br /&gt;
|MYSQL/ms||Tiempo de última operación en ejecutarse&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/myAcdSuperv.cnf'''&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/myAcdSuperv.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== Proceso escoba ====&lt;br /&gt;
El proceso escoba se encarga de resolver y consolidar todos aquellos segmentos de grabación que han quedado almacenados en los gateways por falta de información o incoherencias. Existen dos tipos de procesos escobas:&lt;br /&gt;
# Proceso escoba perteneciente a nodo con agente de grabación (recordNodo) llamado '''''escobaGW.pl'''''.&lt;br /&gt;
# Proceso escoba perteneciente o no a un servidor de grabación (recordCentral) llamado '''''escobaGrabsBd.pl'''''.&lt;br /&gt;
&lt;br /&gt;
===== escobaGW.pl =====&lt;br /&gt;
Proceso que se ejecuta en los nodos busca en el disco RAM , las grabaciones de segmentos cuya antigüedad sea superior a mas de un día, es decir, si el proceso por ejemplo se ejecuta a la 01:00 a.m. del día 24/03/2016 buscara todas aquellas grabacionesn de segmentos realizadas antes de la 01:00 a.m del día 22/03/2016.&lt;br /&gt;
Una vez realizada la busqueda, obtendra el UCID a traves del nombre del fichero, y comprobara su correspondencia con la tabla DAT_LLAMADAS. Si existe una llamada con ese UCID, cambiara el estado de la llamada para que sea procesada correctamente. En caso contrario, es movida a la carpeta ''/var/lib/recordNodo/grabError''.&lt;br /&gt;
&lt;br /&gt;
===== escobaGrabsBd.pl =====&lt;br /&gt;
Se ejecuta sobre la base de datos de histórico, normalmente se ejecuta en un servidor de grabación (recordCentral). El proceso hace una búsqueda en dos tablas:&lt;br /&gt;
* En DAT_SEGMENTOS obtiene todos aquellos segmentos con grabaciones que dieron error, su estado tendrá valor 120.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
* En DAT_LLAMADAS obtendremos todos los registros correspondiente al segmentos anteriores.&lt;br /&gt;
Después hace una búsqueda en el sistema, usando como ruta el campo D_HORA_INICIO de cada llamada, que indica la ruta entera donde se encuentra el archivo. Una vez encontrado el archivo cambia el estado del segmento que tenia un error a estado de grabación disponible , que tendrá valor 100. Si no encontramos el segmento, no realizara nada.&lt;br /&gt;
&lt;br /&gt;
==== recordCentral ====&lt;br /&gt;
Se considera como un servidor de grabaciones. Todas las grabaciones de llamadas son un activo importante y una empresa con Contact Center pueda recibir millones de llamadas que necesitan estar registradas y almacenadas en discos duros con gran capacidad, dichas maquinas donde suelen alojarse estos servidores poseen discos duros limitados, lo que hace necesario en algunos casos incorporar ''dispositivos NAS''.&lt;br /&gt;
&lt;br /&gt;
Los ''dispositivos NAS'' son dispositivos de almacenamiento conectados a una red que permite el almacenamiento y la recuperación de datos desde una ubicación centralizada, flexibles y escalables, lo que significa que a medida que necesite almacenamiento adicional, puede añadirlo al que tiene. Esto no indica que sea necesario poseer de ''dispositivos NAS'' para funcionar, sino que puede tomar datos de diferentes sitios.&lt;br /&gt;
&lt;br /&gt;
En '''recordCentral''' pueden existir tres tipos de dispositivos NAS:&lt;br /&gt;
* Uno dedicado para las llamadas &lt;br /&gt;
* Uno dedicado para los segmentos &lt;br /&gt;
* Uno mixto para todas las llamadas y segmentos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El '''recordCentral''' se encarga de recoger todas las grabaciones de segmentos que tienen de estado proceso(3) en cada nodo gestionado, es decir, coger aquellos segmentos de llamadas marcados como llamadas disponibles, intenta descargar los segmentos de las llamadas y convertirlas al formato adecuado (MP3).&lt;br /&gt;
Como una característica particular cada diez minutos, siempre que no tenga ninguna otra tarea, intenta ver si puede establecer conexión con un nodo en cuarentena, para sacarlos de cuarentena y recoger todas las grabaciones de segmentos disponibles, para intentar convertir y descargar todas las grabaciones.  &lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando '''''nc ip_maquina 1114''''' en la maquina donde creamos que debe estar ejecutando el proceso recordCentral. Ejemplo:&lt;br /&gt;
 '''root@smadavacdrecord1:~# nc localhost 1114'''&lt;br /&gt;
 recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423 160112'&lt;br /&gt;
 recordCentral MYSQL cnx=1&lt;br /&gt;
 recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
 recordCentral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
 recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10'&lt;br /&gt;
La explicación de los campos se muestra en la tabla siguiente:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parámetro !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ver || Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/inic || Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/alarmas || Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ultAlar || Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
| MYSQL/cnx || Conectado (1) a MySQL&lt;br /&gt;
|-&lt;br /&gt;
| NAS/llamadas || Alojamiento en NAS de llamadas activo (grabación de llamada completa en un único archivo)&lt;br /&gt;
|-&lt;br /&gt;
| NAS/segmentos || Alojamiento en NAS de segmentos activo&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamNum || Llamadas procesadas&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamErr || Llamadas con error&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmNum || Segmentos procesados&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmErr || Segmentos con error&lt;br /&gt;
|-&lt;br /&gt;
| NODO/fase  || Número de proceso de recordCentral&lt;br /&gt;
|-&lt;br /&gt;
| NODO/cuarentena  || Lista de nodos en cuarentena, separada por comas&lt;br /&gt;
|-&lt;br /&gt;
| NODO/descarga || Lista de nodos en descarga, separada por comas&lt;br /&gt;
|-&lt;br /&gt;
| NODO/gestion || Lista de nodos gestionados, separada por comas (cuarentena + descarga = gestión)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/recordCentral.pconf'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:Se explican a continuación las variables más importantes del proceso RecordCentral:&lt;br /&gt;
&lt;br /&gt;
# Conexion de base de datos&lt;br /&gt;
$db='nimitz';&lt;br /&gt;
$dbHost = 'BDTR';&lt;br /&gt;
$dbPort = '3306';&lt;br /&gt;
$dbUsuario = 'nimitz';&lt;br /&gt;
$dbClave = 'ivivanimitz';&lt;br /&gt;
&lt;br /&gt;
# Configuracion de archivos con grabaciones (Orig en nodo)&lt;br /&gt;
$grabHay = 0;&lt;br /&gt;
$grabAudioCalidad = 32;&lt;br /&gt;
$grabAudioFormato = 'ogg';&lt;br /&gt;
$grabAudioExten = 'ogg';&lt;br /&gt;
$grabAudioCifrado = 0;&lt;br /&gt;
$grabRutaUsaTimestamp = 1;&lt;br /&gt;
$grabRutaOrig = '/var/lib/recordNodo/grabaciones';&lt;br /&gt;
$grabRutaTmp = '/var/lib/recordProcesad/grabTmp';&lt;br /&gt;
$grabRutaDest = '/var/lib/recordProcesad/grabRecord';&lt;br /&gt;
$grabRutaError = '/var/lib/recordProcesad/grabError';&lt;br /&gt;
$segmHay = 1;&lt;br /&gt;
$segmUmbralTiempo = 10;&lt;br /&gt;
$segmMargenTiempo = 5;&lt;br /&gt;
$segmAudioCalidad = 32;&lt;br /&gt;
$segmAudioFormato = 'ogg';&lt;br /&gt;
$segmAudioExten = 'ogg';&lt;br /&gt;
$segmAudioCifrado = 0;&lt;br /&gt;
$segmRutaUsaTimestamp = 1;&lt;br /&gt;
$segmRutaTmp = '/var/lib/recordProcesad/segmTmp';&lt;br /&gt;
$segmRutaDest = '/var/lib/recordProcesad/segmRecord';&lt;br /&gt;
$segmRutaError = '/var/lib/recordProcesad/segmError';&lt;br /&gt;
&lt;br /&gt;
# Seleccion de tipos de segmento a grabar separados por comas ('' = todos)&lt;br /&gt;
$tiposSegmentoGrabar = '';&lt;br /&gt;
&lt;br /&gt;
# Indica si se graba ring&lt;br /&gt;
$grabarRing = 0;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/recordCentral.log'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==== recordNodo ====&lt;br /&gt;
Se considera como proceso con función de agente de grabación para un nodo. Solo debe existir uno por maquina o por nodo (configurado como grabador) en el '''portal de administración de ''VIVA''it'''.&lt;br /&gt;
&lt;br /&gt;
Para su funcionamiento utiliza un ''disco RAM''  por que su tiempo de acceso mejora drásticamente, debido a que la memoria RAM es varios órdenes de magnitud más rápida que las unidades de disco reales, haciendo que la velocidad de procesamiento de las grabaciones sea mucho mas rápida.&lt;br /&gt;
&lt;br /&gt;
Este ''disco RAM'' normalmente ocupa la mitad de la memoria RAM de una maquina pero no es obligatorio pues dependerá de la memoria disponible en cada maquina, y además, se configura con un tamaño no superior a 2GB de memoria RAM. Hay que tener especial cuidado en que no se llene en espacio  ni tampoco los i-nodos. Se puede  monitorizar a través de la aplicación '''zabbix'''.&lt;br /&gt;
&lt;br /&gt;
El '''''recordNodo''''' se encarga de recoger todas las grabaciones de segmentos que tienen de estado  ''proceso(2)'', es decir, aquellos segmentos de llamadas que han sido grabadas pero no están siendo procesadas, moviéndolas del ''disco RAM'' a su carpeta correspondiente.&lt;br /&gt;
&lt;br /&gt;
La forma de obtener la carpeta correspondiente es obteniendo el dato del campo D_HORA_INICIO en la tabla DAT_LLAMADAS para cada segmento,tras un tratamiento del campo creara la subruta correspondientes: /año/mes/dia/hora/min. Entonces, la ruta correcta seria /var/lib/recordNodo/grabaciones/año/mes/dia/hora/min, donde año, mes, dia , hora y min son los valores numéricos obtenidos del campo D_HORA_INICIO.&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando '''''nc ip_maquina 1113''''' en la maquina donde creamos que debe estar ejecutando el proceso recordNodo:&lt;br /&gt;
&lt;br /&gt;
 root@smadavgw5:~#nc localhost 1113&lt;br /&gt;
 recordNodo SIS ver='04.00.00' inic='20160326 105137' alarmas=2 ultAlar='20160326 105542'&lt;br /&gt;
 recordNodo MYSQL cnx=1&lt;br /&gt;
 recordNodo REC grabNum=0 grabErr=0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La explicación de los campos se muestra en la tabla siguiente:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parámetro  !! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ver || Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/inic  || Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
| SIS/amarmas || Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
| SIS/ultAlar || Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
| MYSQL/cnx || Conectado (1) a MySQL&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamNum || Llamadas procesadas&lt;br /&gt;
|-&lt;br /&gt;
| REC/llamErr || Llamadas con error&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmNum || Segmentos procesados&lt;br /&gt;
|-&lt;br /&gt;
| REC/segmErr || Segmentos con error&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/recordNodo.pconf'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:Se muestran a continuación las variables que son modificadas con mayor frecuencia:&lt;br /&gt;
# Conexion de base de datos&lt;br /&gt;
$db='nimitz';&lt;br /&gt;
$dbHost = 'BDTR';&lt;br /&gt;
$dbPort = '3306';&lt;br /&gt;
$dbUsuario = 'nimitz';&lt;br /&gt;
$dbClave = 'ivivanimitz';&lt;br /&gt;
&lt;br /&gt;
# Quien es mi nodo para filtrar grabaciones&lt;br /&gt;
$miNodo = 1;&lt;br /&gt;
&lt;br /&gt;
# Indica si se procesan segmentos de tipo tipoSegmEliminarGrabacion y patron eliminación&lt;br /&gt;
$segmEliminarGrabacionTrato = 1;&lt;br /&gt;
$patronEliminarGrabacion = '/etc/MDtel/null.bin';&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/recordNodo.log'''&lt;br /&gt;
&lt;br /&gt;
==== Vivait-CTI ====&lt;br /&gt;
Permite la comunicación entre la aplicación '''''VIVA'''''it Desk de agente y el asterisk, sincronizando; convierte el protocolo “asterisk manager” a CSTA ('''''VIVA'''''it Desk “habla” CSTA).&lt;br /&gt;
&lt;br /&gt;
Es un proceso importante para que el uso de '''''VIVA'''''it Desk, y que los agentes puedan realizar su operativa normal con la entrada y salida de llamadas… si bien el cursado telefónico de llamadas es factible, no disponer de las facilidades de '''''VIVA'''''it Desk y formularios hace el sistema difícilmente manejable&lt;br /&gt;
&lt;br /&gt;
A efectos de diagnósticos, desde un SSH se ejecuta el comando “nc ip_maquina 1111”&lt;br /&gt;
&lt;br /&gt;
 '''root@vivait-acd:~# nc localhost 1111'''&lt;br /&gt;
 vivait-cti sis ver='V01.5' inic='20140414 104312' alarmas=13 ultAlar='20140415 173152'&lt;br /&gt;
 vivait-cti gmp msj=1018/1024 buf=1023/1024 tarea=97/102&lt;br /&gt;
 vivait-cti tmp uptime=694748 (8d 0h 59m 8s)&lt;br /&gt;
 vivait-cti cti numConx=(0/511) numPend=(0/127) numMakeCallPend=0 numCall=(0/2047)&lt;br /&gt;
 numChan=(0/4095) numAuxStr=(0/511) numMoniColas=(0/511) numMoniDevice=0&lt;br /&gt;
 numMoniCall=0 numMoniCallAuto=0 numMoniCallByDevice=0 numMoni=(0/511)&lt;br /&gt;
 auditCallErr=0 auditAuxStrErr=0 auditMsjReqErr=0 araChanID=0 araUniqueID=0 araMoni=0&lt;br /&gt;
 vivait-cti ami esta=conx resp=652(0) evs=1397(0) descar=556(0) err=16 errConx=16&lt;br /&gt;
 numAct(0/0/127) auditErrAct=0&lt;br /&gt;
&lt;br /&gt;
Donde cada parámetro monitorizado indica:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!ver!!Versión del proceso&lt;br /&gt;
|-&lt;br /&gt;
|sis/inic||Fecha de de arranque del proceso&lt;br /&gt;
|-&lt;br /&gt;
|Sis/alarmas||Alarmas desde arranque&lt;br /&gt;
|-&lt;br /&gt;
|Sis/ultAlar||Fecha de última alarma&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/msj||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/buf||&lt;br /&gt;
|-&lt;br /&gt;
|Gmp/tarea||&lt;br /&gt;
|-&lt;br /&gt;
|Tmp/uptime||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numConx||Número de conexiones actuales / Número de conexiones máximo&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numPend||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMakeCallPend||Llamadas pendientes de realizar&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numcall||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numChan||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numAuxStr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniColas||Número de colas monitorizadas&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniDevice||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniCall||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniCallAuto||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoniCallByDevice||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/numMoni||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/auditCallErr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/auditAuxStrErr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ auditMsjReqErr||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ araChanID||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ araUniqueID||&lt;br /&gt;
|-&lt;br /&gt;
|Cti/ araMoni||&lt;br /&gt;
|-&lt;br /&gt;
|Ami/esta||Estado de conexión contra manarger de asterisk&lt;br /&gt;
|-&lt;br /&gt;
|Ami/resp||&lt;br /&gt;
|-&lt;br /&gt;
|Ami/evs||Número de eventos (último minuto)&lt;br /&gt;
|-&lt;br /&gt;
||Ami/descar&lt;br /&gt;
|-&lt;br /&gt;
|Ami/err||Errores&lt;br /&gt;
|-&lt;br /&gt;
|Ami/errConx||Errores de conexión&lt;br /&gt;
|-&lt;br /&gt;
|Ami/numAct||&lt;br /&gt;
|-&lt;br /&gt;
|Ami/auditErrAct||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como complemento a los diagnósticos:&lt;br /&gt;
&lt;br /&gt;
* Podremos examinar el fichero de configuración del proceso en '''/etc/MDtel/vivait-cti.conf'''&lt;br /&gt;
* Podremos examinar los logs del proceso en '''/var/log/vivait-cti.conf'''&lt;br /&gt;
&lt;br /&gt;
==== Phoneprov-TFTP ====&lt;br /&gt;
&lt;br /&gt;
==== Introducción al aprovisionamiento ====&lt;br /&gt;
&lt;br /&gt;
En cada Centralita Telefónica existente, se puede configurar sus teléfonos IP y asignarles extensiones a cada teléfono. Para hacer un ''aprovisionamiento'' de los teléfonos es necesario que el técnico configure uno a uno manualmente utilizando su interfaz web, esto no es práctico, ya que genera muchos errores y el tiempo de implementación se incrementa drásticamente. Además, es casi imposible la administración cotidiana de los teléfonos IP. Desde '''MD'''tel se utiliza una herramienta que permite que los teléfonos IP soportados y homologados por '''MD'''tel ([[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_3.0#Terminales_telef.C3.B3nicos ver Terminales telefónicos]]) se puedan aprovisionar automáticamente, brindando una fácil implementación y administración cotidiana. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== ¿Qué es aprovisionar? =====&lt;br /&gt;
&lt;br /&gt;
Aprovisionar un teléfono es el proceso de configuración automático de teléfonos IP para su uso con una Centralita Telefónica de forma remota. Una vez que aprovisione un teléfono, el teléfono automáticamente se configurará correctamente y podrá administrar los teléfonos de forma centralizada y remota,  sin tener que iniciar sesión en la interfaz web de cada uno de los teléfonos. &lt;br /&gt;
&lt;br /&gt;
El aprovisionamiento de teléfono facilita enormemente la administración cotidiana de los teléfonos IP. Esto hace que sea fácil de cambiar las contraseñas de extensión,realizar desvíos de llamadas, nombre a mostrar, mensajería y demás configuraciones, ya que puede hacerlo de forma centralizada para todos los teléfonos desde el portal de administración y luego transferir los cambios al teléfono. &lt;br /&gt;
&lt;br /&gt;
===== TFTP =====&lt;br /&gt;
&lt;br /&gt;
'''TFTP''' son las siglas de '''T'''rivial '''F'''ile '''T'''ransfer '''P'''rotocol ''(Protocolo de transferencia de archivos trivial)''. &lt;br /&gt;
&lt;br /&gt;
Es un protocolo de transferencia muy simple semejante a una versión básica de FTP. TFTP a menudo se utiliza para transferir pequeños archivos entre terminales en una red. &lt;br /&gt;
&lt;br /&gt;
Algunos detalles del TFTP: &lt;br /&gt;
&lt;br /&gt;
* Utiliza UDP (puerto 69) como protocolo de transporte (a diferencia de FTP que utiliza los &lt;br /&gt;
puertos 20 y 21 TCP). &lt;br /&gt;
* No puede listar el contenido de los directorios. &lt;br /&gt;
* No existen mecanismos de autenticación o cifrado. &lt;br /&gt;
* Se utiliza para leer o escribir archivos de un servidor remoto. &lt;br /&gt;
* Soporta tres modos diferentes de transferencia, &amp;quot;netascii&amp;quot;, &amp;quot;octet&amp;quot; y &amp;quot;mail”.&lt;br /&gt;
&lt;br /&gt;
===== Funcionamiento del servidor phoneprove-TFTP =====&lt;br /&gt;
&lt;br /&gt;
A continuación se muestra un esquema que facilita el entendimiento del funcionamiento del servidor phoneprove-TFTP:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Funcionamiento_Servidor.png‎ |center]]&lt;br /&gt;
&lt;br /&gt;
El servidor Phoneprove-TFTP se ''encarga del aprovisionamiento masivo de terminales'', es de gran utilidad porque cualquier cambio en los teléfonos pueden ser realizados a nivel DHCP y todos los teléfonos tomarán la nueva configuración luego de reiniciarlos. &lt;br /&gt;
&lt;br /&gt;
Desde phoneprove-TFTP se generara los archivos necesarios para cada teléfono y que sirven para ser aprovisionados automáticamente. &lt;br /&gt;
El servidor phoneprove-TFTP  tiene alojados los ficheros de configuración están ordenados según las direcciones MAC de los teléfonos. El teléfono “preguntará” al servidor cual es su fichero de configuración utilizando su dirección MAC. Este a través de su MAC , consulta en la base de datos para ofrecer al terminal los datos de configuración según su plantilla, cual sera su extensión , cual sera el usuario propietario, entre otras cosas.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
  '''Nota:''' En instalaciones grandes habrá más de uno, quizás uno por sede grande; depende de la infraestructura de DHCP.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Parámetros necesarios de Aprovisionamiento de Teléfonos =====&lt;br /&gt;
&lt;br /&gt;
 '''Notas:''' el aprovisionamiento desarrollador por '''MD'''tel, no emplea un fichero por cada &lt;br /&gt;
 teléfono, sino que emplea una plantilla por cada modelo de teléfono.&lt;br /&gt;
 Debe haber una '''configuración previa del servidor DHCP''' es necesario coordinar con el cliente la asignación de direcciones para &lt;br /&gt;
 los diferentes elementos de la plataforma '''''VIVA'''''it, fundamentalmente para terminales telefónicos; en este caso además será necesario &lt;br /&gt;
 activar la opción 66 que permitirá definir el servidor TFTP del que los terminales cogerán sus ficheros de aprovisionamiento.&lt;br /&gt;
 El aprovisionamiento desde el portal de administración solo es posible para aquellos teléfonos IP homologados y probados desde '''MD'''tel   &lt;br /&gt;
 [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_3.0#Terminales_telef.C3.B3nicos ver Terminales  telefónicos]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como existen parámetros comunes de todos los teléfonos de la misma marca de fabricante, muchos de los parámetros necesarios para el aprovisionamiento  como comentamos se han generado desde MDtel en forma de plantillas, que estarán disponibles en el portal de administración VIVAit [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Plantillas | ver plantilla del portal de administración VIVAit]]. &lt;br /&gt;
&lt;br /&gt;
La configuración de un teléfono SIP es muy sencilla y en no es necesario tener conocimientos avanzados de informática o de telefonía. Cada una de estas plantillas que sirven para aprovisionar un teléfono IP homologado, algunos de los parámetros predeterminados se explicarán a continuación .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== Parámetros de Aprovisionamiento globales ======&lt;br /&gt;
&lt;br /&gt;
* Configuración de la red y MAC. &lt;br /&gt;
* Zona horaria. &lt;br /&gt;
&lt;br /&gt;
====== Parámetros de Aprovisionamiento Personales ======&lt;br /&gt;
&lt;br /&gt;
Además de los parámetros de aprovisionamiento globales, el teléfono también obtendrá información de configuración individual, tales como: &lt;br /&gt;
&lt;br /&gt;
*Número de Extensión.&lt;br /&gt;
*Nombre y Contraseña de usuario SIP. &lt;br /&gt;
*Configuración de Teclas BLF.&lt;br /&gt;
*Contraseña de la Interfaz Web del Teléfono IP.&lt;br /&gt;
*Idioma de la Pantalla.&lt;br /&gt;
*Orden de Preferencia de los Codecs.&lt;br /&gt;
&lt;br /&gt;
===== Aprovisionamiento de teléfonos nivel usuario =====&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
  '''Notas:''' La dirección MAC debe estar especificada en letras mayúsculas.&lt;br /&gt;
  La dirección MAC del teléfono se puede encontrar en la etiqueta adhesiva en la parte inferior del teléfono, o de lo contrario se deberá acceder desde&lt;br /&gt;
  el menú del propio terminal.   &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Los pasos a seguir son los siguientes: &lt;br /&gt;
&lt;br /&gt;
'''1)''' Dar de alta el teléfono en el portal de administración, se debe seleccionar el modelo del teléfono, e indicar la dirección MAC del teléfono a aprovisionar, todo ello desde el portal de administración VIVAit. &lt;br /&gt;
Para mas información ver [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Aprovisionamiento del portal de administracion| aprovisionamiento del portal de administración VIVAit]]. &lt;br /&gt;
&lt;br /&gt;
'''2)''' En el mismo portal de administración se deberá crear una extensión , asignar a la extensión el teléfono que se quiera aprovisionar, elegir la plantilla adecuada del teléfono y el usuario propietario (solo si sera un puesto fijo) desde [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Extensiones | extensiones del portal de administración]]. &lt;br /&gt;
&lt;br /&gt;
'''3)''' Conectar el teléfono a la red LAN informática (conectarlo al router o switch) para que tenga acceso a Internet:&lt;br /&gt;
&lt;br /&gt;
:*El teléfono enviará un mensaje de multidifusión a través de la LAN. &lt;br /&gt;
:*Este será captado por la Central Telefónica siempre que esté en la misma LAN. &lt;br /&gt;
:*Al teléfono se le enviará una URL de aprovisionamiento. &lt;br /&gt;
&lt;br /&gt;
'''4)''' Como la mayoría de teléfonos IP del mercado al arrancar una vez sabiendo la URL de aprovisionamiento piden una serie de archivos de configuración para aprovisionarse vía TFTP. EL servidor phoneprove-TFTP, detectara la petición y a través de la MAC y datos del usuario, consultará en la base de datos los datos necesarios para aprovisionar al teléfono y si todo funciona correctamente mandara al teléfono IP los datos de configuración necesarios para funcionar. &lt;br /&gt;
&lt;br /&gt;
'''5)''' Asegúrese de que el teléfono encuentren el servidor TFTP, para ello esperar un tiempo adecuado para que termine el aprovisionamiento. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''6)''' Finalmente aparecerá  como registrado en la centralita, obtendrá una dirección IP y podra funcionar según la configuración establecida.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
  '''Nota''': Si no se reaprovisiona tras un periodo largo de tiempo, desenchufe el cable de alimentación eléctrica &amp;lt;br /&amp;gt; o el cable Ethernet (si se utiliza la alimentación en línea PoE) para reiniciar los teléfonos. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Aprovisionamiento de teléfonos nivel técnico =====&lt;br /&gt;
&lt;br /&gt;
====== Plantilla de configuración ======&lt;br /&gt;
&lt;br /&gt;
La plantilla de configuración empleadas en el apartado  [[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Plantillas | plantilla del portal de administración VIVAit]] de cada modelo está formada por una serie de variables. &lt;br /&gt;
&lt;br /&gt;
Los valores se obtienen de la tabla de la base de datos CEN_TELEFONOS, CEN_USUARIOS, ACD_EXTENSIONES, ACD_NODOS, COM_NODOS... correspondientes a la extensión del teléfono, usuario, nodo, etc. &lt;br /&gt;
&lt;br /&gt;
 variable ${NODO1_C_NOMBRE}='corp-ast13'&lt;br /&gt;
 variable ${EXTEN_C_CLAVE_REGISTRO}='Tel21002'&lt;br /&gt;
 variable ${USU_C_CODIGO_POSTAL}=''28034'&lt;br /&gt;
 variable ${SEDE_C_CODIGO_POSTAL}='28034' &lt;br /&gt;
 variable ${USU_C_NOMBRE}='Juan Antonio'&lt;br /&gt;
 variable ${USU_C_APELLIDO2}='Ramirez'&lt;br /&gt;
 variable ${SEDE_C_NOMBRE}='RED_LAB'&lt;br /&gt;
 variable ${NODO2_C_NOMBRE}= NULL&lt;br /&gt;
 variable ${EXTEN_C_NOMBRE}='' 21002&lt;br /&gt;
 variable ${USU_C_LOCALIDAD}='' &lt;br /&gt;
 variable ${USU_C_NOMBRE_MOSTRAR}='Juan' &lt;br /&gt;
 variable ${NODO1_C_IP}='175.25.129.70' &lt;br /&gt;
 variable ${MODEL_C_PREFIJO_PLANTILLA_MAC}='T28P' &lt;br /&gt;
 variable ${SEDE_C_LOCALIDAD}='Madrid' &lt;br /&gt;
 variable ${USU_C_APELLIDO1}='Casas' &lt;br /&gt;
 variable ${NODO2_C_IP}= NULL&lt;br /&gt;
 variable ${TF_ID_EXTENSION}='5' &lt;br /&gt;
 cargando campos idExten=5&lt;br /&gt;
&lt;br /&gt;
====== Ficheros y paquetes necesarios ======&lt;br /&gt;
&lt;br /&gt;
'''Paquetes previos:''' libnet-tftpd-perl, tftp-hpa, libnet-address-ip-local-perl &lt;br /&gt;
'''Usuario de funcionamiento:''' root &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
   '''Nota:'''  los archivos y directorios que generemos podrian necesitar que se permitiera el acceso al archivo de lectura &amp;lt;br/&amp;gt; y escritura en el servidor TFTP.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Archivos necesarios:''' &lt;br /&gt;
&lt;br /&gt;
 /usr/local/sbin/phoneprov-tftp.pl &lt;br /&gt;
 /usr/local/sbin/phoneprov-tftp.pm&lt;br /&gt;
 /etc/MDtel/phoneprov-tftp.pconf &lt;br /&gt;
 /etc/init/phoneprov-tftp.conf &lt;br /&gt;
 /etc/logrotate.d/phoneprov-tftp &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Directorios a crear:''' &lt;br /&gt;
&lt;br /&gt;
 /var/lib/phoneprov-tftp/plt &lt;br /&gt;
 /var/lib/phoneprov-tftp/bin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Watchdog ====&lt;br /&gt;
&lt;br /&gt;
Se trata de una aplicación del astrisk que monitoriza el SIP y en caso de fallo, pasado un cierto tiempo, reinicia el asterisk y genera un core.&lt;br /&gt;
Si escribimos en CLI de asterisk perro tenemos los siguientes comandos:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Activar||Activar el Watchdog&lt;br /&gt;
|-&lt;br /&gt;
|Desactivar||Desactiva el Watchdog&lt;br /&gt;
|-&lt;br /&gt;
|Parada||Reinicia el asterisk y genera un core para pruebas&lt;br /&gt;
|-&lt;br /&gt;
|Reload||Realiza una recarga del Watchdog y aplica cambios en su configuración&lt;br /&gt;
|-&lt;br /&gt;
|Show||Ver el estado del Watchdog&lt;br /&gt;
&lt;br /&gt;
perro avisado=0 activo=1 segsDormir=1 segsInic=60 segsGuarda=30 maxErr=3&lt;br /&gt;
perro        nombre=sip_monitor_udp lwp=[15437] segsInic=60 segsGuarda=30 hace=11 err=0/5&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El dato &amp;quot;hace&amp;quot; informa de cuanto tiempo ha transcurrido desde el último tick. Facilita la calibración del parámetro de configuración &amp;quot;segs_guarda&amp;quot;, normalmente es 30&lt;br /&gt;
&lt;br /&gt;
Tiene un fichero de configuración ubicado en /etc/asterisk/MDcrash.conf&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Sección [perro]&lt;br /&gt;
||activo=yes (Si esta o no activo)&lt;br /&gt;
segs_dormir=1 (Un tick por segundo)&lt;br /&gt;
&lt;br /&gt;
segs_inic=60&lt;br /&gt;
&lt;br /&gt;
segs_guarda=30 &lt;br /&gt;
&lt;br /&gt;
max_errores=3  &lt;br /&gt;
|-&lt;br /&gt;
|Sección [sip_monitor_udp]&lt;br /&gt;
||segs_inic=60&lt;br /&gt;
&lt;br /&gt;
segs_guarda=30 (Cada 30 segundos si no reciba trafico SIP genera core)&lt;br /&gt;
&lt;br /&gt;
max_errores=5 (Número máximo de errores)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Proceso de Backup ====&lt;br /&gt;
Las plataformas '''''VIVA'''''it Call y '''''VIVA'''''it Suite incluyen un script para realizar un proceso de backup.&lt;br /&gt;
&lt;br /&gt;
Se utilizará el script '''backup.sh''', que se encuentra en el directorio '''etc/MDTel'''.&lt;br /&gt;
&lt;br /&gt;
Se ejecuta automaticamente mediante el uso de un cron&lt;br /&gt;
&lt;br /&gt;
'''texto del cron:'''&lt;br /&gt;
&lt;br /&gt;
 SHELL=/bin/sh&lt;br /&gt;
 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin&lt;br /&gt;
 # m h dom mon dow user command&lt;br /&gt;
 0 2 * * * root  /etc/MDtel/backup.sh /etc/MDtel/backup.cfg&lt;br /&gt;
&lt;br /&gt;
Para activar el script hay que descomentar la línea&lt;br /&gt;
 # m h dom mon dow user command&lt;br /&gt;
&lt;br /&gt;
Los directorios de los que se hace copia son:&lt;br /&gt;
* DIR=var/lib/asterisk/sounds/Particular&lt;br /&gt;
* DIR=var/lib/asterisk/moh&lt;br /&gt;
* DIR=etc&lt;br /&gt;
* DIR=etc/asterisk&lt;br /&gt;
* DIR=etc/cron.d&lt;br /&gt;
* DIR=etc/dahdi&lt;br /&gt;
* DIR=etc/exim4&lt;br /&gt;
* DIR=etc/ha.d&lt;br /&gt;
* DIR=etc/logrotate.d&lt;br /&gt;
* DIR=etc/MDtel&lt;br /&gt;
* DIR=etc/mysql&lt;br /&gt;
* DIR=etc/network&lt;br /&gt;
* DIR=etc/zabbix&lt;br /&gt;
* DIR=usr/local/sbin&lt;br /&gt;
&lt;br /&gt;
Por defecto se realiza un backup cada dos horas en la carpeta '''/usr/local/sbin'''.&lt;br /&gt;
&lt;br /&gt;
El fichero ''' backup.cfg''' que se genera incluye copia de la siguiente información:&lt;br /&gt;
* Ficheros de configuración de la aplicación.&lt;br /&gt;
* Base de Datos.&lt;br /&gt;
* Dialplan.&lt;br /&gt;
&lt;br /&gt;
Se guardarán 10 copias del fichero ''' backup.cfg '''&lt;br /&gt;
&lt;br /&gt;
Para recuperar una plataforma utilizando el backup, habrá que instalar una máquina nueva y cargar los ficheros de configuración, Base de Datos y Dialplan guardados en el proceso de backup.&lt;br /&gt;
&lt;br /&gt;
=== Requerimientos de conectividad ===&lt;br /&gt;
&lt;br /&gt;
El esquema siguiente muestra como ejemplo todos los flujos de información existentes en un entorno típico de &amp;lt;big&amp;gt;'''telefonía corporativa (sin presencia)'''&amp;lt;/big&amp;gt; ('''''VIVA'''''it Call)&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Flujos corporativa.png|cebter]]&lt;br /&gt;
&lt;br /&gt;
En el entorno de &amp;lt;big&amp;gt;'''Contact Center'''&amp;lt;/big&amp;gt;, encontramos los siguientes flujos &amp;lt;big&amp;gt;'''entre servicios'''&amp;lt;/big&amp;gt; (comunicaciones entre servidores, ('''''VIVA'''''it Suite)) &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Flujos Contact servicios.png|650px|center]]&lt;br /&gt;
&lt;br /&gt;
y &amp;lt;big&amp;gt;'''entre usuarios y servicios'''&amp;lt;/big&amp;gt; los reflejados a continuación:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Flujos Contact puestos.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Lado A!!Lado B!!Puertos!!Sentido!!Observ.&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor||TCP 5060||A -&amp;gt; B||Señalización SIP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor||UDP 5060||A -&amp;gt; B||Señalización SIP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor||10000 a 20000||A -&amp;gt; B&lt;br /&gt;
B -&amp;gt; A&lt;br /&gt;
||RTP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor TFTP||UDP 69||A -&amp;gt; B&lt;br /&gt;
B -&amp;gt; A&lt;br /&gt;
||Para actualización de terminales por TFTP&lt;br /&gt;
|-&lt;br /&gt;
|Terminal telefónico||Servidor NTP||UDP 123||A -&amp;gt; B||&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Desk||Servidor||TCP 4500||A -&amp;gt; B||Comunicación CTI&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Desk||Servidor||TCP 3306||A -&amp;gt; B||Acceso a Mysql Base de datos&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Desk||Servidor Syslog||UDP 514||A -&amp;gt; B||Para envio de logs de agente&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Supervisor||Servidor||TCP 3306||A -&amp;gt; B||Acceso a Mysql Base de datos&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker||Servidor||TCP 3306||A -&amp;gt; B||Acceso a Mysql Base de datos&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker||Servidor||TCP 8180||A -&amp;gt; B||&lt;br /&gt;
|-&lt;br /&gt;
|Actualizador||Servidor||TCP 80||A -&amp;gt; B||Necesario para actualizaciones de versiones de aplicaciones de agente y supervisores&lt;br /&gt;
|-&lt;br /&gt;
|Portal de administración||Servidor||TCP 8180||A -&amp;gt; B||Acceso al portal de administración '''''VIVA'''''it Suite&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker Web||Servidor||TCP 8180||A -&amp;gt; B||&lt;br /&gt;
|-&lt;br /&gt;
|Monitor||Servidor||TCP 8180||A -&amp;gt; B||Wallboard&lt;br /&gt;
|-&lt;br /&gt;
|Monitorización||Servidor||TCP 80||A -&amp;gt; B||Acceso a portal monitorización (Zabbix)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Gateways ===&lt;br /&gt;
El concepto de gateway como tal no existe en la plataforma '''''VIVA'''''it; existen nodos de ACD y nodos de corporativa.&lt;br /&gt;
&lt;br /&gt;
A efectos de operación un nodo de corporativa es el que en cualquier caso asumirá las funcionalidades de gateway, y recibirá las conexiones (analógicas, digitales o IP) a sistemas externos o a la RTC&lt;br /&gt;
&lt;br /&gt;
El concepto gateway queda pues suscrito a entornos meramente comerciales&lt;br /&gt;
&lt;br /&gt;
Incluimos no obstante en este apartado los diagnósticos y operaciones básicos de conexiones a sistemas externos o RTC&lt;br /&gt;
&lt;br /&gt;
Para verificar los enlaces establecidos ejecutamos el siguiente comando en el terminal: '''sip show peers''' &lt;br /&gt;
&lt;br /&gt;
Al ejecutar este comando obtenemos la salida:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Enlace_Exterior.png |center]]&lt;br /&gt;
&lt;br /&gt;
Las columnas ''Host'' y ''Port'' nos muestran las conexiones establecidas y nos informa de un posible problema de conexión. &lt;br /&gt;
&lt;br /&gt;
Sabremos que ''no existe conexión'' cuando la columna Host tiene el valor '''Unspecified''' y en la columna Port aparece un '''0''' , a continuación se muestra un ejemplo:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ejemplo_no_conexion.png |center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:#00FF00&amp;quot;&amp;gt;FALTA AQUI DIAGNOSTICOS Y OPERACIONES DE ENLACES EXTERNOS&amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Servidor de grabación === &lt;br /&gt;
==== Almacenamiento en la nube ====&lt;br /&gt;
Almacenamiento en la nube.&lt;br /&gt;
Existe la posibilidad de que tras un determinado periodo de tiempo las grabaciones sean movidas a un almacenamiento externo. De esta operativa se encarga el proceso /usr/local/sbin/mueveGrabaciones.pl que recibe como parámetro la ruta al archivo de configuración. Dicho archivo tiene los siguientes elementos:&lt;br /&gt;
&lt;br /&gt;
*$db: Nombre de la base de datos.&lt;br /&gt;
*$dbHost: servidor de MySQL&lt;br /&gt;
*$dbPort: Puerto del MySQL.&lt;br /&gt;
*$dbUsuario: Usuario de conexión a MySQL.&lt;br /&gt;
*$dbClave: Clave del usuario anterior.&lt;br /&gt;
*$dirBase: Directorio donde residen las grabaciones&lt;br /&gt;
*$diasCaducidad: Dias de antigüedad para mover las grabaciones&lt;br /&gt;
*$sftpHost: Servidor SFTP de destino&lt;br /&gt;
*$sftpPort: Puerto SFTP.&lt;br /&gt;
*$sftpUsuario: Usuario SFTP.&lt;br /&gt;
*$sftpClave: Clave del usuario SFTP.&lt;br /&gt;
*$simula: Si este campo vale 1, las grabaciones se copian, pero no se borran del directorio original, ni se actualiza su ubicación en la base de datos.&lt;br /&gt;
&lt;br /&gt;
La grabación indica donde se encuentra mediante el campo E_UBICACION_GRABACION, que puede tener los siguientes valores:&lt;br /&gt;
*Sin definir (0)&lt;br /&gt;
*En línea (10): Las grabaciones se encuentran en el servidor de grabaciones.&lt;br /&gt;
*Fuera de línea (20): las grabaciones se encuentran en una ubicación externa.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Reporting ===&lt;br /&gt;
La aplicación de reporting en general no tiene procesos habituales de operación y mantenimiento.&lt;br /&gt;
Los informes son obtenidos desde la interfaz gráfica o mediante un procedimiento de scripting, descritos en “Formato de fichero de intercambio para '''''VIVA'''''it Reporting”.&lt;br /&gt;
&lt;br /&gt;
==== Formato de fichero de intercambio para '''''VIVA'''''it Reporting ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Nombre !! Descripción !! Ejemplo&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;| Selección de registros&lt;br /&gt;
|-&lt;br /&gt;
| SQL_selec || Expresión SQL que se añadirá al where a la SQL principal. || C_ORIGEN like '6%' and C_COD_CLIENTE= '023'&lt;br /&gt;
|-&lt;br /&gt;
| SQL_select_leido || Filtro de selección legible&lt;br /&gt;
 || Skill igual a 60310&lt;br /&gt;
|-&lt;br /&gt;
| SQL_orden || Lista de campos por los que se ordenará, después de los que estén ya definidos en la plantilla. || C_ORIGEN, C_COD_CLIENTE&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Salida&lt;br /&gt;
|-&lt;br /&gt;
| FIC_extension || Extensión de fichero de salida: PDF, XLSX, CSV || PDF&lt;br /&gt;
|-&lt;br /&gt;
| FIC_tipo_entrega || 'P': Pantalla, 'D': Directorio, 'C': Correo || D&lt;br /&gt;
|-&lt;br /&gt;
| FIC_destino || Si 'C', dirección de correo, si 'D', ruta del directorio || D:\informes\&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Plantilla&lt;br /&gt;
|-&lt;br /&gt;
| INF_modelo || Ruta del fichero de plantilla || C:\Modelos\llamadas.rep&lt;br /&gt;
|-&lt;br /&gt;
| INF_descripción || Descripción del informe || Informe detallado de llamadas&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Base de datos&lt;br /&gt;
|-&lt;br /&gt;
| BD_ip || IP o nombre de máquina || &lt;br /&gt;
|-&lt;br /&gt;
| BD_puerto || Puerto de MySQL || &lt;br /&gt;
|-&lt;br /&gt;
| BD_base_datos || Nombre de base de datos || &lt;br /&gt;
|-&lt;br /&gt;
| BD_usuario || Usuario de base de datos || &lt;br /&gt;
|-&lt;br /&gt;
| BD_clave || Clave de acceso cifrada || &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|  Parámetros&lt;br /&gt;
|-&lt;br /&gt;
| PAR_desde_vis || Fecha inicial de selección en formato legible (o '-' si no hay) || 01/01/2016&lt;br /&gt;
|-&lt;br /&gt;
| PAR_hasta_vis || Fecha final de selección en formato legible (o '-' si no hay) || 31/01/2016&lt;br /&gt;
|-&lt;br /&gt;
| PAR_01 || Parámetro opcional || &lt;br /&gt;
|-&lt;br /&gt;
| .. || .. || &lt;br /&gt;
|-&lt;br /&gt;
| PAR_20 || Parámetro opcional || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El fichero tendrá un nombre único para permitir la generación simultánea de informes.&lt;br /&gt;
El fichero es borrado por la aplicación de forma automática.&lt;br /&gt;
Se pasa a la aplicación de generación de informes como parámetro. Por ejemplo:&lt;br /&gt;
 “C:\Archivos de Programa\MDtel\Nimitz\LanzaInformes\LanzaInformes.exe”&lt;br /&gt;
 “C:\Archivos de Programa\MDtel\Nimitz\LanzaInformes\NIM00001.tmp”&lt;br /&gt;
&lt;br /&gt;
Ejemplo de fichero:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| SQL_selec=(DAT_ACUMULADOS_COLAS.ID_COLA in (11))&lt;br /&gt;
&lt;br /&gt;
SQL_select_leido=Skill igual a 60310&lt;br /&gt;
&lt;br /&gt;
SQL_orden=&lt;br /&gt;
FIC_extension=pdf&lt;br /&gt;
&lt;br /&gt;
FIC_tipo_entrega=P&lt;br /&gt;
&lt;br /&gt;
FIC_destino=C:\&lt;br /&gt;
&lt;br /&gt;
INF_modelo=skill_setsi.rep&lt;br /&gt;
&lt;br /&gt;
INF_descripcion=Skill. SETSI&lt;br /&gt;
&lt;br /&gt;
BD_ip=172.25.1.2&lt;br /&gt;
&lt;br /&gt;
BD_puerto=3306&lt;br /&gt;
&lt;br /&gt;
BD_base_datos=nimitz&lt;br /&gt;
&lt;br /&gt;
BD_usuario=nimitz&lt;br /&gt;
&lt;br /&gt;
BD_clave=UIk5jNY9PVX5ogg=&lt;br /&gt;
&lt;br /&gt;
PAR_desde_vis=-&lt;br /&gt;
&lt;br /&gt;
PAR_hasta_vis=-&lt;br /&gt;
&lt;br /&gt;
PAR_01=&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Resumen de significado de columnas en reporting histórico ====&lt;br /&gt;
&lt;br /&gt;
===== Agente,asistencia diaria y agente. Asistencia diaria del grupo =====&lt;br /&gt;
&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo de llamado:''' Tiempo de ring en llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo disponible:''' Tiempo que el agente estuvo conectado y no está&lt;br /&gt;
incluido en ninguno de los anteriores.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas transferidas:''' Número de llamadas ACD que fueron&lt;br /&gt;
transferidas por el agente.&lt;br /&gt;
&lt;br /&gt;
===== Agente. Aux y Grupo Aux =====&lt;br /&gt;
&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Desglose de tiempos AUX:''' Tiempo que el agente estuvo en cada uno&lt;br /&gt;
de los motivos de pausa.&lt;br /&gt;
&lt;br /&gt;
===== Agente. Resumen diario =====&lt;br /&gt;
&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo de llamado:''' Tiempo de ring en llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo disponible:''' Tiempo que el agente estuvo conectado y no está&lt;br /&gt;
incluido en ninguno de los anteriores.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas entrada Ext:''' Número de llamadas entrantes NO ACD a la&lt;br /&gt;
extensión.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas salida Ext:''' Número de llamadas salientes NO ACD desde la&lt;br /&gt;
extensión.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas transferidas:''' Número de llamadas ACD que fueron&lt;br /&gt;
transferidas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas retenidas:''' Número de retenciones que sufrieron las&lt;br /&gt;
llamadas contestadas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACD:''' Tiempo ACD/ Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACW:''' TiempoACW/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio de entrada a la Ext:''' Tiempo entrada Ext/&lt;br /&gt;
Llamadas entrada Ext.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio de salida a la Ext:''' Tiempo salida Ext/ Llamadas&lt;br /&gt;
salida Ext.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio retención:''' Tiempo retención/Llamadas retenidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % Ocupación con ACW:''' ((Tiempo ACD+ Tiempo retención+ Tiempo&lt;br /&gt;
ACW)/Tiempo con personal)* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % Ocupación sin ACW:''' ((Tiempo ACD+ Tiempo retención)/Tiempo&lt;br /&gt;
con personal)* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % disp.:''' (Tiempo disponible/Tiempo conectado)* 100.&lt;br /&gt;
&lt;br /&gt;
===== Agente. Grupo ACD diario =====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención de un grupo&lt;br /&gt;
ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Ayuda:''' Número de llamadas contestadas por el agente que necesitaron&lt;br /&gt;
de consulta de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas retenidas:''' Número de retenciones que el agente realizó&lt;br /&gt;
sobre las llamadas de ese grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas estuvieron retenidas por&lt;br /&gt;
el agente en ese grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Trans. salida:''' Llamadas que finalizan con una transferencia.&lt;br /&gt;
&lt;br /&gt;
===== Grupo ACD. Reporte diario con AHT =====&lt;br /&gt;
&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas ACD contestadas o realizadas por&lt;br /&gt;
el agente de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACD:''' Tiempo ACD/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo promedio ACW:''' Tiempo ACW/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACD:''' Tiempo de conversación ACD de las llamadas contestadas&lt;br /&gt;
o realizadas por el agente excluido el tiempo de retención de un grupo&lt;br /&gt;
ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas contestadas por el agente de un grupo ACD.&lt;br /&gt;
'''• Tiempo de llamado:''' Tiempo de ring en llamadas ACD de un grupo&lt;br /&gt;
ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo AUX:''' Tiempo que el agente estuvo en pausa.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo disponible:''' Tiempo que el agente estuvo conectado y no está&lt;br /&gt;
incluido en ninguno de los anteriores.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo con personal:''' Tiempo que ha estado conectado el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Ayuda:''' Número de llamadas ACD contestadas por el agente en las que&lt;br /&gt;
necesito hacer uso de la consulta.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas retenidas:''' Número de retenciones que el agente realizó&lt;br /&gt;
sobre las llamadas ACD contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo retención:''' Tiempo que las llamadas contestadas ACD&lt;br /&gt;
estuvieron retenidas por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Trans. salida:''' Número de llamadas ACD que fueron transferidas por el&lt;br /&gt;
agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• AHT:''' (Tiempo ACD+ Tiempo ACW+ Tiempo retención)/Llamadas&lt;br /&gt;
ACD.(Average Handle Time)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Grupo ACD. QOS  =====&lt;br /&gt;
&lt;br /&gt;
'''• Vel. prom. de resp.:''' Tiempo total de espera de llamadas antes de ser&lt;br /&gt;
atendidas/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo prom. de aban.:''' Tiempo abandonadas(tiempo que las&lt;br /&gt;
llamadas abandonadas estuvieron en el grupo ACD)/Llamadas&lt;br /&gt;
abandonadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ofrecidas:''' Número de llamadas entrantes al grupo&lt;br /&gt;
ACD(Llamadas ACD+ Abandonadas+ Desbordadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas ACD:''' Número de llamadas contestadas por los agentes.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas abandonadas:''' Número de llamadas colgadas por el cliente&lt;br /&gt;
en el grupo ACD antes de ser contestadas o desbordadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Desconectadas por ACD:''' Número de llamadas desbordadas que al&lt;br /&gt;
salir del grupo ACD se cuelgan.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Desbordadas por ACD:''' Número total de llamadas desbordadas(incluye&lt;br /&gt;
las desconectadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Llamadas atendidas en &amp;lt; 20s:'''Número de llamadas contestadas con&lt;br /&gt;
tiempo de respuesta menor a 20 segundos.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• Tiempo total de espera:''' Tiempo total que las llamadas estuvieron&lt;br /&gt;
esperando antes de ser atendidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % N.A.:''' Llamadas ACD/(Llamadas ACD+ Llamadas abandonadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• % N.D.S.:''' (Llamadas atendidas en &amp;lt; 20s/Llamadas ofrecidas)* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''• T.M.O:''' (Tiempo ACD+ Tiempo ACW+ Tiempo retención)/Llamadas&lt;br /&gt;
ACD.(Tiempo Medio Operación)&lt;br /&gt;
&lt;br /&gt;
===== Informe conducción (VDN Conducción) =====&lt;br /&gt;
&lt;br /&gt;
'''•Entrantes al grupo ACD:''' Número de llamadas ofrecidas al grupo&lt;br /&gt;
ACD(Contestadas+ Abandonadas+ Desbordadas).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Llamadas contestadas:''' Número de llamadas contestadas por un agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Contestadas NDS:''' Número de llamadas contestadas en nivel de servicio,&lt;br /&gt;
tiempo de respuesta&amp;lt; 20 segundos.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Abandonadas:''' Número de llamadas abandonadas, colgadas por el cliente&lt;br /&gt;
antes de ser contestadas por un agente o desbordadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Desconectadas:''' Número de llamadas desbordadas que fueron colgadas al&lt;br /&gt;
salir del grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Desbordadas:''' Número total de llamadas desbordadas (incluye desconectadas)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Llamadas retenidas:''' Número de retenciones que el agente realizó sobre las&lt;br /&gt;
llamadas ACD contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•% N.A.:''' (Llamadas contestadas/(Llamadas contestadas+ Abandonadas+&lt;br /&gt;
Desbordadas))* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•% N.D.S.:''' (Contestadas NDS/(Llamadas contestadas+ Abandonadas + Desbordadas))*100&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•% Abandonadas:''' (Abandonadas/(Llamadas contestadas+ Abandonadas+ Desbordadas))* 100.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. RING:''' Tiempo de ring en llamadas ACD(entrantes).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•ACDTIME:''' Tiempo de conversación ACD de las llamadas contestadas o&lt;br /&gt;
realizadas por el agente excluido el tiempo de retención de un grupo ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. ACW:''' Tiempo dedicado por el agente a tareas administrativas tras&lt;br /&gt;
finalizar las llamadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum HOLD:''' Tiempo que las llamadas contestadas ACD estuvieron retenidas&lt;br /&gt;
por el agente.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. OTHER:''' Tiempo total que las llamadas estuvieron esperando en el&lt;br /&gt;
grupo ACD antes de ser atendidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. AVAIL:''' Acum. STAFF- (ACDTIME+ Acum. ACW+ Acum. RING+ Acum.&lt;br /&gt;
HOLD+ Acum. AUX).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. Staff:''' Suma del Tiempo conectado de todos los agentes al grupo&lt;br /&gt;
ACD(Este tiempo se repercute en todos los grupos ACD a los que esta&lt;br /&gt;
conectado el agente).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Acum. AUX:''' Suma del Tiempo en pausa de todos los agentes que estén&lt;br /&gt;
conectados al grupo ACD(Este tiempo se repercute en todos los grupos ACD a&lt;br /&gt;
los que esta conectado el agente).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Prom. ACD:''' ACDTIME/Llamadas contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Prom. ACW:''' Acum. ACW/Llamadas contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Prom. HOLD:''' Acum. HOLD/Llamadas retenidas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•AHT:''' (ACDTIME+ Acum. ACW+ Acum. HOLD)/Llamadas contestadas.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Vel. prom. de resp.:''' Tiempo total de espera de llamadas antes de ser&lt;br /&gt;
atendidas/Llamadas ACD.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Tiempo máx. de espera:''' Tiempo de la llamada que estuvo mas tiempo en el&lt;br /&gt;
grupo ACD hasta que fue atendida.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Agentes en PH:''' (Acum. Staff- Acum. AUX)/1800(Agentes conectados que no&lt;br /&gt;
están en pausa en el intervalo).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Agentes Staff:''' Acum. Staff/1800(Agentes conectados en el intervalo)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''•Desglose de tiempos AUX:''' Tiempo que el agente estuvo en cada uno de los&lt;br /&gt;
motivos de pausa.&lt;br /&gt;
&lt;br /&gt;
===== Informe de producción =====&lt;br /&gt;
&lt;br /&gt;
'''• LL. ACD:'''Número de llamadas contestadas por ese agente para ese&lt;br /&gt;
grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. HOLD:''' Número de retenciones efectuadas para las llamadas&lt;br /&gt;
contestadas en ese grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Redir.:''' Número de llamadas no contestadas por un agente que&lt;br /&gt;
fueron redirigidas de nuevo a la cola.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. No colgadas cliente:''' Número de llamadas que terminaron sin el&lt;br /&gt;
colgado del cliente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Aband.:''' Número de llamadas abandonadas en ese grupo ACD, este&lt;br /&gt;
valor es independiente del agente por tanto se repite el valor para todos&lt;br /&gt;
los agentes en un mismo grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Transfer.:''' Número de llamadas ACD que fueron transferidas por el&lt;br /&gt;
agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• LL. Conf:''' Número de llamadas ACD en las que el agente estableció&lt;br /&gt;
conferencia.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• S. Extensión:''' Número de llamadas salientes de extensión, este valor es&lt;br /&gt;
independiente del grupo ACD se repite el valor para todos los grupos&lt;br /&gt;
ACD en los que está conectado el agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. Staff:''' Tiempo que el agente estuvo conectado al grupo ACD.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. RING:''' Tiempo de ring en las llamadas ACD(entrantes) que&lt;br /&gt;
fueron contestadas por el agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. ACD:''' Tiempo de conversación de las llamadas ACD(entrantes)&lt;br /&gt;
que fueron contestadas por el agente.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. ACW:''' Tiempo dedicado por el agente a tareas administrativas&lt;br /&gt;
tras finalizar las llamadas que fueron contestadas por él.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum HOLD:''' Tiempo que las llamadas ACD(entrantes) para ese grupo&lt;br /&gt;
ACD que fueron contestadas por el agente estuvieron retenidas.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. AVAIL:''' Acum. STAFF- (Acum. ACD+ Acum. ACW+ Acum. RING+&lt;br /&gt;
Acum. HOLD+ Acum. AUX)..&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Acum. AUX:''' Tiempo que el agente estuvo en pausa este valor es&lt;br /&gt;
independiente del grupo ACD se repite el valor para todos los grupos&lt;br /&gt;
ACD en los que está conectado el agente..&amp;lt;br /&amp;gt;&lt;br /&gt;
'''• Desgloses de tiempos AUX, tiempo AUX por cada uno de los&lt;br /&gt;
motivos.''' este valor es independiente del grupo ACD se repite el valor&lt;br /&gt;
para todos los grupos ACD en los que está conectado el agente.&lt;br /&gt;
&lt;br /&gt;
===== Consideraciones adicionales =====&lt;br /&gt;
&lt;br /&gt;
Los tiempos se insertan en el intervalo en el que se deja ese &amp;quot;estado&amp;quot;, esto provoca que en un intervalo pueda ser mayor el tiempo ACD que el tiempo conectado.&lt;br /&gt;
&lt;br /&gt;
''* Ejemplo:''&lt;br /&gt;
&lt;br /&gt;
 -Llamada: Duración 15 minutos Hora fin de la llamada 13:01&lt;br /&gt;
 -Llamada: Duración 20 minutos Hora fin de la llamada 13:24&lt;br /&gt;
 Suma de las duraciones de las llamadas para el intervalo ''35 minutos'' tiempo&lt;br /&gt;
 conectado del agente en el intervalo ''30 minutos.''&lt;br /&gt;
 Cuando los periodos consultados sean mas amplios (diario, mensual) los&lt;br /&gt;
 desfases tenderán a desaparecer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Otros Diagnósticos y operaciones básicas ==&lt;br /&gt;
=== Arranque y apagado de la plataforma ===&lt;br /&gt;
&lt;br /&gt;
En general el arranque y apagado de cada nodo de una plataforma '''''VIVA'''''it es el estándar de un procedimiento ordenado de apagado en una máquina linux: '''&amp;quot;Shutdown -h now&amp;quot;''' o comando de apagado inmediato o programado equivalente&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El orden de arranque de la plataforma deberá ser:&lt;br /&gt;
# En primer lugar arrancar el nodo con la base de datos de tiempo real&lt;br /&gt;
# Una vez finalizado el arranque del punto 1, arrancar el nodo con la base de datos de réplica&lt;br /&gt;
# Una vez finalizado el arranque del punto 2, arrancar el resto de nodos en cualquier orden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Al respecto del orden de apagado de nodos, es el siguiente:&lt;br /&gt;
# En primer lugar se apagarán, en cualquier orden, los nodos que NO CONTENGAN bases de datos de tiempo real ni bases de datos de réplica&lt;br /&gt;
# Una vez apagados totalmente todos los nodos del punto 1, apagaremos el nodo (o nodos) con bases de datos de réplica&lt;br /&gt;
# Una vez apagados totalmente todos los nodos del punto 2, se apagará el nodo con la base de datos de tiempo real&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== Nivel matriz de conmutación ===&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Grabación ===&lt;br /&gt;
&lt;br /&gt;
==== Configuración de la grabación en la plataforma corporativa ====&lt;br /&gt;
Para que una llamada se grabe, lo primero de todo es que  alguien tenga la capacidad de grabar. Esto se consigue diciendo al nodo que sea grabador. Esto provoca que el nodo llame al mixmonitor para grabar y se inserte un registro en el DAT_GRABACIONES. Esto no significa que ya las llamadas se vayan a grabar, ya que para eso tiene que ser procesadas por un nodo que sea grabador. Hay tres, llamémosle elementos, que se pueden grabar:&lt;br /&gt;
&lt;br /&gt;
* El nodo, es decir todo lo que el nodo enrute&lt;br /&gt;
* Prerutas&lt;br /&gt;
* Objetos: que son las extensiones, usuarios, grupos corporativos, etc.&lt;br /&gt;
&lt;br /&gt;
Tenemos tres formas de grabar:&lt;br /&gt;
&lt;br /&gt;
* Grabar con beep periódico&lt;br /&gt;
* Grabar sin beep periódico&lt;br /&gt;
* Descartar grabación&lt;br /&gt;
&lt;br /&gt;
Si de los tres elementos tenemos que uno grabe, ya sea con o sin beep periódico, esa llamada se va a grabar ya que son OR, en cuanto haya un elemento que diga que grabe se va a grabar.&lt;br /&gt;
&lt;br /&gt;
Al igual pasa si tenemos que un elemento tenga descartar la grabación. La grabación no se inicia.&lt;br /&gt;
&lt;br /&gt;
Referente al campo de Modo de grabación en infraestructura, este no se emplea para la grabación de corporativo, sino que solo tiene validez en ACD. Para grabación en el ACD hay que, como se ha dicho anteriormente poner un nodo que sea grabador y especificar un elemento de los tres que hay cual es el que se va a grabar.&lt;br /&gt;
&lt;br /&gt;
Para que exista una grabación a de existir un segmento asociado a esta. Los segmentos se tratan en las prerutas. Hay un campo es las prerutas que es Generar segmento al enrutar. Si está se generará el segmento del tipo de la preruta y su correspondiente grabación si esta está configurada. Si le decimos que no genere segmentos al enrutar y el sistema está configurado para que grabe, el recordCentral creará un tipo de segmento llamado externo para esa grabación. Podemos configurar si queremos que se cree o no ese segmento, para eso hay que modificar el fichero de configuración del recordCentral y poner un tiempo muy alto al campo $segmExternoMinSegs. También podemos configurar que segmentos queremos que se graben. Por defecto el recordCentral va configurado para que se graben todos los segmentos. Para decirle que solo grabe cierto tipo de segmentos hay que ponerlos los que queramos que si se graben en la variable $tiposSegmentoGrabar del fichero de configuración del recordCentral.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que el servidor de grabación esta activo ====&lt;br /&gt;
&lt;br /&gt;
Si al ejecutar el comando '''''nc ip_maquina 1114''''',si no se recibe ninguna respuesta, significa el servidor de grabación no estaría activo. &lt;br /&gt;
También usando el comando ''''' ps aux | grep recordCentral ''''', donde si no escribe ningún resultado implica que tampoco esta activo.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que los nodos están conectados al servidor de grabación ====&lt;br /&gt;
&lt;br /&gt;
Debemos fijarnos en la linea de respuesta del comando '''''nc ip_maquina 1114''''', que seria:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| root@smadavacdrecord1:~# nc localhost 1114&lt;br /&gt;
recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423&lt;br /&gt;
160112'&lt;br /&gt;
&lt;br /&gt;
recordCentral MYSQL cnx=1&lt;br /&gt;
&lt;br /&gt;
recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
&lt;br /&gt;
recordCenral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
&lt;br /&gt;
'''recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10''''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el parámetro &amp;quot;fase=0&amp;quot; es el numero que identifica el recordCentral, los demás parámetros nos indicaran los nodos disponibles , que funcionan o no en el servidor. Entonces &amp;quot;gestión=4,6,7,8,9,10&amp;quot; indica el id de los nodos que maneja el proceso.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que un nodo tiene activo el agente de grabación ====&lt;br /&gt;
Si al ejecutar el comando '''''nc ip_maquina 1113''''', no se recibe ninguna respuesta, significa que el nodo no tiene activo el agente de grabación.&lt;br /&gt;
También usando el comando ''''' ps aux | grep recordNodo''''', donde si no escribe ningun resultado implica que tampoco esta activo.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de que un nodo está subiendo archivos de grabación al servidor ====&lt;br /&gt;
Debemos fijarnos en la linea de respuesta del comando '''''nc ip_maquina 1114''''', que seria:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| root@smadavacdrecord1:~# nc localhost 1114&lt;br /&gt;
recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423&lt;br /&gt;
160112'&lt;br /&gt;
&lt;br /&gt;
recordCentral MYSQL cnx=1&lt;br /&gt;
&lt;br /&gt;
recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
&lt;br /&gt;
recordCenral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
&lt;br /&gt;
'''recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10''''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Fijándonos en &amp;quot;descarga=8,6,4,7,10,9&amp;quot; nos confirma que todos los nodos que maneja el proceso funcionan perfectamente y el servidor puede manejar las grabaciones.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Comprobación de grabaciones que se hayan quedado enganchadas en un nodo ====&lt;br /&gt;
Podemos fijarnos en los dos comandos, para '''''nc ip_maquina 1114''''':&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| root@smadavacdrecord1:~# nc localhost 1114&lt;br /&gt;
recordCentral SIS ver='01.2' inic='20140423 094058' alarmas=11041 ultAlar='20140423&lt;br /&gt;
160112'&lt;br /&gt;
&lt;br /&gt;
recordCentral MYSQL cnx=1&lt;br /&gt;
&lt;br /&gt;
recordCentral NAS llamadas=1 segmentos=1&lt;br /&gt;
&lt;br /&gt;
recordCenral REC llamNum=24901 llamErr=0 segmNum=38906 segmErr=0 retraso=305&lt;br /&gt;
&lt;br /&gt;
'''recordCentral NODO fase=0 cuarentena='' descarga='8,6,4,7,10,9' gestion='4,6,7,8,9,10''''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Fijándonos en el campo &amp;quot;cuarentena=''&amp;quot; indica que ninguno de los nodos tiene problemas.&lt;br /&gt;
&lt;br /&gt;
==== Comprobación del estado de ocupación del almacenamiento temporal de grabaciones en un nodo. ====&lt;br /&gt;
&lt;br /&gt;
Desde un SSH ejecuta el comando '''''df - h''''' en la maquina donde creamos que debe estar ejecutando el proceso recordNod:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Filesystem !! Size !! Used !! Avail !! Use% !! Mounted on&lt;br /&gt;
|-&lt;br /&gt;
| udev || 486M || 4,0K || 486M || 1,00% || /dev&lt;br /&gt;
|-&lt;br /&gt;
| tmpfs || 100M || 416K || 99M || 1,00% || /run&lt;br /&gt;
|-&lt;br /&gt;
| '''/dev/vda1''' ||''' 236M''' ||''' 68M''' ||''' 156M''' ||''' 31,00% '''||''' /boot'''&lt;br /&gt;
|-&lt;br /&gt;
| tmpfs || 100M || 48K || 100M || 1,00% || /var/spool/asterisk/monitor&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Nos fijaríamos en la línea marcada en negrita, el campo &amp;quot;Use%&amp;quot; indicara el porcentaje de almacenamiento temporal de grabaciones en un nodo.&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Escuchas e intrusiones en asterisk===&lt;br /&gt;
'''CallSpy''' es una aplicación elaborada para asterisk que permite a un usuario realizar escuchas e &lt;br /&gt;
intrusiones en llamadas. &lt;br /&gt;
En realidad tenemos dos aplicaciones en asterisk, CallSpy y CallSpyee. &lt;br /&gt;
====CallSpy ====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 '''Nota:''' Como mucho se pueden tener a dieciséis personas al mismo tiempo usando esta aplicación. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Como hemos mencionado anteriormente, esta aplicación permite la escucha de llamadas y, &lt;br /&gt;
opcionalmente, realiza la función de intrusión. Tiene tres opciones de configuración obligatorios &lt;br /&gt;
que mostramos a continuación: &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 CallSpy(&amp;lt;tipoEspiado&amp;gt;,&amp;lt;expRegEspiado&amp;gt;,&amp;lt;parametrosConf&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
La opción '''&amp;lt;tipoEspiado&amp;gt;''' se refiere a que tipo de objeto que podemos espiar correspondiente, solo debe elegirse un único tipo: &lt;br /&gt;
*'''c:''' escuchar una cola&lt;br /&gt;
*'''v:''' escuchar un vdn &lt;br /&gt;
*'''a:''' escuchar a un agente &lt;br /&gt;
*'''e:''' escuchar extensión &lt;br /&gt;
La opción '''&amp;lt;expRegEspiado&amp;gt;''' representa el número de la cola, VDN, agente o extensión que queremos escuchar. Tiene que ser una expresión regular. &lt;br /&gt;
La opción '''&amp;lt;parametrosConf&amp;gt;''' se refiera a los parámetros de configuración para la llamada que podemos espiar, se pueden combinar o juntar : &lt;br /&gt;
*'''q:''' Desactiva el 'beep' al comienzo de cada nueva llamada. &lt;br /&gt;
*'''v([value]):''' Ajusta el volumen en el rango -4 a 4 (más alto, mas volumen). &lt;br /&gt;
*'''e:''' Habilita el que se pueda cambiar a otra llamada de la misma extensión. &lt;br /&gt;
*'''w:''' Habilita el que se pueda activar la intrusión (whisper).&lt;br /&gt;
Una vez iniciada la escucha, solo falta que entre una llamada al objetivo que estemos espiando. Al &lt;br /&gt;
iniciar la escucha, se puede hacer lo siguiente: &lt;br /&gt;
*Pulsando '''#''' modifica el volumen de escucha. &lt;br /&gt;
*Pulsando '''*''' cambia a una nueva llamada. &lt;br /&gt;
*Pulsando '''1''' si esta habilitado, cambia a otra llamada de la misma extensión. &lt;br /&gt;
*Pulsando '''2''' si esta habilitado, inicia la función de intrusión. &lt;br /&gt;
*Pulsando '''3''' desactiva la función de intrusión. &lt;br /&gt;
====CallSpyee (espiado)====&lt;br /&gt;
Mediante esta aplicación indicamos los parámetros que permite a una llamada ser seleccionada para &lt;br /&gt;
escuchar. Las opciones de configuración son: &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 CallSpyee([CID_NUM],[cola],[vdn],[agen],[exten]) &lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:'''No son parámetros obligatorios, por lo que no hace falta rellenar todos los campos pero si respetar sus posiciones separadas por comas.&amp;lt;small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
La explicación de los parámetros es la siguiente:&lt;br /&gt;
*'''CID_NUM:''' representa el call ID de la llamadas &lt;br /&gt;
*'''cola:'''representa el número de la cola que se quiere espiar (${QUEUE} ).&lt;br /&gt;
*'''vdn:'''   representa el número del VDN que se quiere espiar (${VDN} ).&lt;br /&gt;
*'''agen:''' representa el número del agente que se quiere espiar.&lt;br /&gt;
*'''exten:''' representa el número de la extensión que se quiere espiar (${EXTENSION}) .&lt;br /&gt;
&lt;br /&gt;
Por ejemplo si queremos escuchar todas las llamadas en las que participa una extensión determinada pondremos en la macro de extensiones: &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,,,${EXTENSION}) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Cambios para el dialplan de asterisk==== &lt;br /&gt;
El funcionamiento de este tipo de servicio conlleva un cambio en el dialplan de asterisk. En cada macro correspondiente se pondrá los diferentes CallSpyee para VDN, colas  , extensiones y agentes. &lt;br /&gt;
Pasos a seguir: &lt;br /&gt;
*Paso 1. Creación de un código de intrusión para cada tipo según necesidad (cola, VDN, agente y &lt;br /&gt;
extensión). &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Ejemplo '''MD'''tel:  declaramos como código de intrusión a Agente *44*NUMERO &lt;br /&gt;
 ;========================================== &lt;br /&gt;
 ;======== Intrusion a Agente &lt;br /&gt;
 ;========================================== &lt;br /&gt;
 exten =&amp;gt; _*44*X.,1,set(CadMarcar=intrusionEspiado) &lt;br /&gt;
 exten =&amp;gt; _*44*X.,n,set(DesL=SERVICIO) &lt;br /&gt;
 exten =&amp;gt; _*44*X.,n,set(datoServicio=^${EXTEN:4}) &lt;br /&gt;
 exten =&amp;gt; _*44*X.,n,Goto(finMacro,1) &lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' En la tercera línea podemos observar la expresión regular que se le pasara al CallSpy correspondiente con el número marcado por el espia. &amp;lt;small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*Paso 2.Llamar a CallSpy con la configuración deseada.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Ejemplo '''MD'''tel:  llamada a CallSpy especificando que vamos a espiar una cola (la c del primer parámetro, con la&lt;br /&gt;
 extensión introducida en el código de intrusión y con whisper, es decir, función de intrusión habilitada. &lt;br /&gt;
 ;------------------------------------------------------------------------ &lt;br /&gt;
 ; Intrusion a Espiado &lt;br /&gt;
 ;------------------------------------------------------------------------ &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,1,NoOp &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,n,GotoIf($[&amp;quot;${datoServicio}&amp;quot;=&amp;quot;&amp;quot;]?colgar) &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,n,CallSpy(c,${datoServicio},w) &lt;br /&gt;
 exten =&amp;gt; intrusionEspiado,n(colgar),Hangup &lt;br /&gt;
|}&lt;br /&gt;
* Paso 3. Llamar a CallSpyee con la configuración de las llamadas candidatas a ser escuchadas.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Ejemplo '''MD'''tel: &lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,,,,${EXTENSION}) → Para extensiones &lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,${QUEUE},,,) → Llamadas espiadas por cola &lt;br /&gt;
 exten =&amp;gt; s,n,CallSpyee(,,${VDN},,) → Llamadas espiadas por VDN &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Calendarios ===&lt;br /&gt;
&lt;br /&gt;
Para la configuración de los Calendarios se hace uso de '''CalDAV''', estándar de Internet que permite a un cliente acceder a información de planificación en un servidor remoto. Permite que varios clientes accedan a la misma información, facilitando la cooperación. Muchas aplicaciones, tanto clientes como servidores, son compatibles con este protocolo.&lt;br /&gt;
&lt;br /&gt;
Si deseamos crear un calendario en la plataforma '''VIVAit''' podemos hacerlo siguiendo el  siguiente enlace:  &lt;br /&gt;
Para comprobar que el servidor de calendarios funciona correctamente bastaría con cargar en la barra de direcciones la siguiente url: [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Calendarios |Calendarios]]&lt;br /&gt;
&lt;br /&gt;
http://${NODO.HOST}/dav/html/cal.php/calendars/${DAV.CUENTA}/${DAV.CALENDARIO}&lt;br /&gt;
&lt;br /&gt;
donde,&lt;br /&gt;
&lt;br /&gt;
* '''NODO.HOST:''' es la ip del servidor calendar&lt;br /&gt;
* '''DAV.CUENTA:''' hace referencia a la cuenta de usuario&lt;br /&gt;
* '''DAV.CALENDARIO:''' hace referencia el nombre de la cuenta&lt;br /&gt;
&lt;br /&gt;
Una vez que se carga la url sabremos que el servidor funciona correctamente si visualizamos lo siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla de 2016-07-21 12_43_58.png || 1020px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si el sistema nos pide usuario y clave querrá decir que el servidor de calendarios está operativo en esa maquina&lt;br /&gt;
&lt;br /&gt;
Para comprobar que funciona en la consola de asterisk usaremos los comandos &lt;br /&gt;
 calendar show calendars&lt;br /&gt;
 calendar show calendar [nombreCalendario]&lt;br /&gt;
&lt;br /&gt;
 '''Nota:''' Debido bugs detectados, el proceso requerirá:&lt;br /&gt;
       - La realización de una sincronización manual de la sección &amp;quot;mdcal&amp;quot; desde el portal de administración&lt;br /&gt;
       - Añadir la línea '''''#include &amp;quot;/etc/asterisk/mdcal.conf&amp;quot;''''' en el fichero calendars.conf y hacer &amp;quot;reload&amp;quot; de asterisk&lt;br /&gt;
       - En la máquina donde esté instalado el servidor de calendarios apuntar a la IP de la BDTR (/var/www/dav/config.php)&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Syslog de agentes ===&lt;br /&gt;
'''''Syslog''''' es un estándar para el envío de mensajes de registro en una red informática IP. Por '''''Syslog''''' se conoce tanto al protocolo de red como a la aplicación o biblioteca que envía los mensajes de registro. Se lanza automáticamente al arrancar un sistema Unix, y es el encargado de guardar informes sobre el funcionamiento de la máquina (eventos, seguridad del sistema, etc) pero puede contener también cualquier información como mensajes de las diferentes partes del sistema (núcleo, programas...) y los envía y/o almacena en diferentes localizaciones transmitiéndose mediante un puerto UDP. Esto permite concentrar los registros de múltiples máquinas en un único punto simplificando la labor de gestión al administrador siendo habitual que múltiples dispositivos lo soporten.&lt;br /&gt;
&lt;br /&gt;
El formato del mensaje se compone de tres campos :&lt;br /&gt;
&lt;br /&gt;
* La cabecera contiene la prioridad, fecha y hora del mensaje, máquina, proceso (nombre e identificador) que lo ha generado y la versión del protocolo utilizado.&lt;br /&gt;
* Una serie de pares clave-valor con metadatos.&lt;br /&gt;
* El texto del mensaje.&lt;br /&gt;
&lt;br /&gt;
Si es necesario podemos activar el registro de todos los eventos telefónicos que realiza un agente ACD llamado '''Syslog de agentes'''. Su activación se realiza mediante el '''portal de administración ''VIVA''it'''  configurando unos parámetros para un usuario llamado ''Rastreo BBDD&amp;quot; y ''Rastreo Syslog''. Para más información[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Pesta.C3.B1a_ACD | ver sección  Portal de administración - General - Usuarios - Pestaña ACD  ]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot;  align=&amp;quot;top&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot; |&amp;lt;big&amp;gt;'''Elemento'''&amp;lt;/big&amp;gt; &lt;br /&gt;
|align=&amp;quot;center&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot; | &amp;lt;big&amp;gt;'''Procedimiento'''&amp;lt;/big&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Operacion&lt;br /&gt;
|-&lt;br /&gt;
|Ubicación del proceso||Script arranque: /etc/init/ rsyslog.conf&lt;br /&gt;
Configuración :&lt;br /&gt;
/etc/rsyslog.d/30-vivait-&lt;br /&gt;
desk.conf&lt;br /&gt;
|-&lt;br /&gt;
|Arranque||service rsyslog start&lt;br /&gt;
|-&lt;br /&gt;
|Parada||service rsyslog stop&lt;br /&gt;
|-&lt;br /&gt;
|Reinicio||service rsyslog reload&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; width=&amp;quot;60 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Diagnostico&lt;br /&gt;
|-&lt;br /&gt;
|Registro de logs||/var/log/MDtel/vivait-desk.log&lt;br /&gt;
Fichero del día actual. se guardan los 30&lt;br /&gt;
anteriores comprimidos en tar.g&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
==Funcionalidades específicas ==&lt;br /&gt;
=== Mecanismo de prioridad adaptativa ===&lt;br /&gt;
&lt;br /&gt;
El mecanismo de prioridad adaptativa permite en una plataforma '''''VIVA'''''it Suite establecer prioridades en las que se tenga en cuenta el tiempo de espera de las llamadas en cola, proporcionando una alternativa al mecanismo de prioridad absoluta que existe por defecto&lt;br /&gt;
&lt;br /&gt;
==== Introducción ====&lt;br /&gt;
&lt;br /&gt;
Este documento presenta una propuesta de mecanismo de asignación de llamadas en colas a agentes basado no solo en las prioridades de agente a cola,&lt;br /&gt;
sino en un factor de corrección de prioridad derivado del tiempo de espera de una llamada&lt;br /&gt;
&lt;br /&gt;
==== Terminología ====&lt;br /&gt;
&lt;br /&gt;
* '''Prioridad de llamada:''' A cada llamada susceptible de ser atendida en el ''Call Center'' se le asignará una prioridad de llamada; dicha prioridad será asignada cada vez que un agente quede disponible.&lt;br /&gt;
* '''Prioridad de grupo ACD:''' Los agentes del ''Call Center'' tendrán configurada una prioridad para cada grupo ACD al que pertenecen&lt;br /&gt;
* '''Tiempo de espera:''' Tiempo que una llamada lleva en espera en un determinado grupo ACD; si la llamada cambia de un grupo ACD a otro el tiempo de espera pasa a cero&lt;br /&gt;
* '''Objetivo de servicio:''' Tiempo objetivo máximo de espera por cada grupo ACD&lt;br /&gt;
&lt;br /&gt;
 '''Nota.-''' ''En terminología Asterisk el aumento de prioridad corresponde con números descendentes, es decir,&amp;lt;br /&amp;gt;&lt;br /&gt;
 prioridad 50 es mejor que prioridad 70''&lt;br /&gt;
&lt;br /&gt;
==== Mecanismo de asignación de llamadas ====&lt;br /&gt;
&lt;br /&gt;
En el momento en que exista un agente disponible para recibir llamada, el agente recepcionará la llamada con mejor prioridad de llamada (menor número). La prioridad de llamada para cada llamada se establecerá de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
- Agentes con prioridad de grupo ACD de 1 a 99 utilizarán el mecanismo convencional de asterisk de prioridad absoluta; será útil para grupos ACD críticos o en Call Centers muy convencionales&lt;br /&gt;
&lt;br /&gt;
'''Si un agente tiene prioridad menor de 100 en grupos ACD y hay llamadas en dichos grupos, estas llamadas serán atendidas por el agente con prioridad absoluta.'''&lt;br /&gt;
&lt;br /&gt;
- Agentes con prioridad de colas de 100 en adelante; se utilizará el siguiente mecanismo de prioridad ponderada:&lt;br /&gt;
&lt;br /&gt;
:*Si el grupo ACD de la llamada está dentro del objetivo de servicio, la prioridad de llamada será la prioridad de grupo ACD (a efectos prácticos se aplicará el mecanismo convencional de asignación de llamada a agente, equitativo entre grupos ACD con misma prioridad)&lt;br /&gt;
&lt;br /&gt;
:*Si el grupo ACD de la llamada está fuera del objetivo de servicio, se aplicará una ponderación que mejorará la prioridad de la llamada a medida que aumente el tiempo de espera:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Formula.png |center]]&lt;br /&gt;
&lt;br /&gt;
En una configuración de igualdad de prioridad de agente y objetivo de servicio, el tiempo de espera influiría de manera determinante (más o menos en&lt;br /&gt;
función del peso) en la asignación de la siguiente llamada&lt;br /&gt;
El peso podrá adquirir tres posibles valores: 0, 1 y 10&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Esquema.png |center]]&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;span style=&amp;quot;color:#000080&amp;quot;&amp;gt;- Calculo prioridad de llamada: se calcula por llamada cada vez que un agente queda libre&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span style=&amp;quot;color:#000080&amp;quot;&amp;gt;- Agente atiende llamada con mejor prioridad de llamada&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Medio:Asignación de llamadas por prioridad adaptativa.pdf|Asignación de llamadas por prioridad adaptativa]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Marcación saliente ===&lt;br /&gt;
Dentro del ACD hay un comportamiento especial que es la marcación saliente. Esta puede ser de tres tipos:&lt;br /&gt;
* '''Vista previa''': El agente demanda la siguiente llamada a realizar.&lt;br /&gt;
* '''Progresivo''': Se llama al agente y se lanza la llamada al contacto.&lt;br /&gt;
* '''Predictivo''': El sistema calcula cuando va a estar libre el agente y se adelanta lanzando varias llamadas (configurables por parámetros). La llamada que es contestada primero, se pasa a una cola (el resto se cuelgan) a la espera que el agente se quede libre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Esquema de funcionamiento====&lt;br /&gt;
[[Archivo:esquema funcionamiento marcador.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
Los contactos se agrupan en listas para su facilidad de asignación a campañas, aunque finalmente lo que se asigna a una campaña es un contacto.&lt;br /&gt;
&lt;br /&gt;
Las campañas tienen estrategias. Las estrategias definen como se ha de llamar (del primero al último, sólo los pares, etc.). Tienen una serie de parámetros que  dependiendo de la estrategia pueden tener distinta utilidad. Desde el punto de vista de la base de datos, las estrategias se definirían en la tabla ACD_CLASES_ESTRATEGIAS y se les da valor en la tabla ACD_ESTRATEGIAS_MARCADOR.&lt;br /&gt;
Una vez establecida la campaña y asignados sus contactos y dependiendo del modo de marcación (que se define en las colas) el proceso motorSal crea los intentos de marcación (siempre y cuando no estén en las listas Robinson), que serán leídos por el proceso myAcdSuperv que los convierte en llamadas para el Asterisk.&lt;br /&gt;
&lt;br /&gt;
====Flujo de estados====&lt;br /&gt;
&lt;br /&gt;
El flujo de estados es el reflejado en la figura siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:diagrama de flujo motorsal.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
Los diferentes estados de un contacto son:&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Estado !! ID_Estado!! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| Planificable || 0|| El contacto está preparado para que lo gestione motorSal y según la estrategia definida se establece el campo ACD_CONTACTOS_CAMPANNAS.D_HORA_PROXIMA&lt;br /&gt;
|-&lt;br /&gt;
|Planificado||10||Cuando ha llegado el tiempo marcado en HORA PROXIMA, motorSal ejecuta la 2ª fase de la estrategia, generando el intento de marcación.&lt;br /&gt;
|-&lt;br /&gt;
|Intento||20||El control pasa a myAcdSuperv, que a su vez genera la llamada en Asterisk. Cuando termina, se pasa a Planificable o Finalizado.&lt;br /&gt;
|-&lt;br /&gt;
|Finalizado||100||Las gestiones con este contacto han terminado.&lt;br /&gt;
|-&lt;br /&gt;
|Abortado||110||&lt;br /&gt;
|-&lt;br /&gt;
|Obsoleto||200||Se ha agotado el tiempo para contactar sin agotar todos los intentos. No se le vuelve a llamar nunca.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Carga de contactos====&lt;br /&gt;
&lt;br /&gt;
===== Descripción =====&lt;br /&gt;
&lt;br /&gt;
A continuación se explica la configuración y funcionamiento de la utilidad encargada de asignar contactos a campañas.&lt;br /&gt;
&lt;br /&gt;
===== Configuración =====&lt;br /&gt;
&lt;br /&gt;
El archivo de configuración recibe el nombre de '''cargaContactos.pconf.''' Este archivo reside en '''/etc/MDtel.''' El formato se describe en la tabla siguiente. Hay que tener en cuenta que las columnas empiezan a numerarse en 0.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Parámetro !! Valor !! Obligatorio !! Defecto&lt;br /&gt;
|- &lt;br /&gt;
| db|| Nombre de la base de datos|| SI || nimitz&lt;br /&gt;
|- &lt;br /&gt;
| dbHost|| Host MySQL || SI || localhost&lt;br /&gt;
|- &lt;br /&gt;
| dbPort|| Puerto MySQL || NO || 3306&lt;br /&gt;
|- &lt;br /&gt;
| dbUsuario || Usuario de acceso a la base de datos|| SI ||&lt;br /&gt;
|- &lt;br /&gt;
| dbClave || Clave del usuario || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| rutaContactos || Ruta hasta el archivo de contactos || NO || /var/spool/MDtel/contactos&lt;br /&gt;
|- &lt;br /&gt;
| obsoletos || Si vale 1, marcar como obsoletos los contactos anteriores || NO || 0&lt;br /&gt;
|- &lt;br /&gt;
| diasCaducidad || Número de dias a partir de los cuales caducarán los contactos || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| idCampanna || Número de columna que contiene el ID de la campaña || SI||&lt;br /&gt;
|- &lt;br /&gt;
| idLista || Numero de columna que contiene el ID de la lista || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| prioridad || Número de columna que contiene la prioridad || NO || Nota: El valor es de 0 a 99. A mayor número menor prioridad (se le llamará más tarde)&lt;br /&gt;
|- &lt;br /&gt;
| tipoTarea|| Número de columna que contiene el tipo de tarea || NO || Nota: los posibles valores de la columna son : &amp;lt;br /&amp;gt; *A: Alta &amp;lt;br /&amp;gt; *M: Modificación &amp;lt;br /&amp;gt; *B: Baja&amp;lt;br /&amp;gt; Por defecto el valor es A&lt;br /&gt;
|- &lt;br /&gt;
| codCli || Número de columna del CSV que contiene el código de cliente || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| nombreCon || Número de columna del CSV que contiene el nombre || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| apellido1 || Número de columna del CSV que contiene el primer apellido|| NO ||&lt;br /&gt;
|- &lt;br /&gt;
| apellido2 || Número de columna del CSV que contiene el segundo apellido || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| empresa || Número de columna del CSV que contiene la empresa || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| direccion1 || Número de columna del CSV que contiene la dirección || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| direccion2 || Número de columna del CSV que contiene la dirección 2 || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| codPostal || Número de columna del CSV que contiene el código postal || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| localidad || Número de columna del CSV que contiene la localidad || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| provin || Número de columna del CSV que contiene la provincia || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| email || Número de columna del CSV que contiene el email || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_1 || Número de columna del CSV que contiene el primer número fijo del contacto || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_2 || Número de columna del CSV que contiene el segundo número fijo del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_3 || Número de columna del CSV que contiene el tercer número fijo del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valFijo_4 || Número de columna del CSV que contiene el cuarto número fijo del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_1 || Número de columna del CSV que contiene el primer número móvil del contacto || SI ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_2 || Número de columna del CSV que contiene el segundo número móvil del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_3 || Número de columna del CSV que contiene el tercer número móvil del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| valMovil_4 || Número de columna del CSV que contiene el CUARTO número móvil del contacto || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| edad || Número de columna del CSV que contiene la edad || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc1|| Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc2 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc3 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc4 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc5 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc6 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc7 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| nOpc8 || Número de columna del CSV que contiene dato numérico opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc1 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc2 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc3 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc4 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc5 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc6 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc7 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|- &lt;br /&gt;
| cOpc8 || Número de columna del CSV que contiene cadena opcional || NO ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Funcionamiento =====&lt;br /&gt;
&lt;br /&gt;
Para ejecutar la utilidad se debe teclear la siguiente orden en la línea de comandos:&lt;br /&gt;
&lt;br /&gt;
'''cmd# cargaContactos.pl /&amp;lt;ruta hasta el conf&amp;gt;/cargaContactos.pconf &amp;lt;archivo CSV&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
El archivo con los contactos deberá ser un CSV con los campos separados por ';'. La utilidad parsea el archivo conforme a la distribución indicada en la configuración y crea las correspondientes entradas en las tablas '''ACD_CONTACTOS''' y '''ACD_CONTACTOS_CAMPANNAS.'''&lt;br /&gt;
&lt;br /&gt;
La utilidad crea un log en '''/var/log/cargaContactos.log''' en el que vuelca toda la operativa.&lt;br /&gt;
Por pantalla se va mostrando un lista con el ID asignado al contacto y el ID de campaña al que se le ha asignado.&lt;br /&gt;
&lt;br /&gt;
Un ejemplo de fichero de carga de contactos sería el siguiente: &lt;br /&gt;
&lt;br /&gt;
 #&lt;br /&gt;
 # Configuracion de recordGwd.pl&lt;br /&gt;
 #&lt;br /&gt;
 # Conexion de base de datos&lt;br /&gt;
 $db='nimitz';&lt;br /&gt;
 $dbHost = 'localhost';&lt;br /&gt;
 $dbPort = '3306';&lt;br /&gt;
 $dbUsuario = 'nimitz';&lt;br /&gt;
 $dbClave = 'LA QUE SEA';&lt;br /&gt;
 $diasCaducidad='300';&lt;br /&gt;
 $rutaGrab = '/var/spool/MDtel/contactos';&lt;br /&gt;
 $idCampanna = '31';&lt;br /&gt;
 $idLista = '32';&lt;br /&gt;
 $obsoletos = 0;&lt;br /&gt;
 $codCli = '1';&lt;br /&gt;
 $nombreCon = '2';&lt;br /&gt;
 $apellido1 = '3';&lt;br /&gt;
 $apellido2 = '4';&lt;br /&gt;
 $empresa = '5';&lt;br /&gt;
 $direccion1 = '6';&lt;br /&gt;
 $direccion2 = '7';&lt;br /&gt;
 $codPostal = '8';&lt;br /&gt;
 $localidad = '9';&lt;br /&gt;
 $provin = '10';&lt;br /&gt;
 $email = '11';&lt;br /&gt;
 $valFijo_1 = '12';&lt;br /&gt;
 $valFijo_2 = '13';&lt;br /&gt;
 $valFijo_3 = '14';&lt;br /&gt;
 $valFijo_4 = '15';&lt;br /&gt;
 $valMovil_1 = '16';&lt;br /&gt;
 $valMovil_2 = '17';&lt;br /&gt;
 $valMovil_3 = '18';&lt;br /&gt;
 $valMovil_4 = '19';&lt;br /&gt;
 $edad = '20';&lt;br /&gt;
 $nOpc1 = '21';&lt;br /&gt;
 $nOpc2 = '22';&lt;br /&gt;
 $nOpc3 = '23';&lt;br /&gt;
 $nOpc4 = '24';&lt;br /&gt;
 $cOpc1 = '25';&lt;br /&gt;
 $cOpc2 = '26';&lt;br /&gt;
 $cOpc3 = '27';&lt;br /&gt;
 $cOpc4 = '28';&lt;br /&gt;
 $prioridad = '29';&lt;br /&gt;
 $tipoTarea = '30';&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ENLACES QUE HABIA&lt;br /&gt;
[[Medio:CargaContactos300.pdf|Instrucciones para carga automatizada de contactos]]&lt;br /&gt;
&lt;br /&gt;
[[Medio:EjemplocargaContactos.pconf.pdf|Ejemplo de fichero de carga de contactos]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Movilidad ===&lt;br /&gt;
La movilidad es una función integral de las comunicaciones en la empresa. Cualquier empleado (usuario) es móvil en cierto grado, sea dentro o fuera de la organización.La solución óptima debe proporcionar continuidad de servicios y acceso a nuestros servicios, sin importar donde se esté.&lt;br /&gt;
&lt;br /&gt;
==== Ofrecer movilidad a un usuario ====&lt;br /&gt;
&amp;lt;!--parte daniel--&amp;gt;&lt;br /&gt;
Para permitir la movilidad a un usuario, puede ser en el momento de crear o editar un usuario en el apartado ''Administración de usuario'' en ''General'' del '''portal de administración ''VIVA''it'''.  Asignándole un '''''numero login''''' (numero personal corporativo para el usuario) y una '''''clave login''''' ( se debe asignar una clave por defecto, pero puede cambiarla en el [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Documentaci%C3%B3n_de_usuario_VIVAit_Call_3.0#Portal_de_usuario |portal de usuario]]). &amp;lt;br/&amp;gt;Para más información[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Pesta.C3.B1a_Centralita | ver sección Portal de administración - General - Usuarios - administración de usuarios - Pestaña Centralita]].&lt;br /&gt;
&lt;br /&gt;
Además, de crear un permiso de la '''aplicación ''Centralita''''' a cualquier nivel, desde el apartado ''Permisos de usuarios'' en ''General'' del '''portal de administración ''VIVA''it'''.&amp;lt;br/&amp;gt;Para más información[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Asignaci.C3.B3n_de_Permisos_de_Usuario_por_Administrador | ver sección  Portal de administración - General - Usuarios - Permisos a usuarios]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''La movilidad permite''' disponer de las extensiones telefónicas empresariales en cualquier lugar. Por&lt;br /&gt;
ejemplo, con un ordenador portátil o smartphone en una ubicación remota con conexión a Internet,&lt;br /&gt;
podríamos tener registrada nuestra extensión remotamente, y así las llamadas hacia/desde nuestra&lt;br /&gt;
oficina serían enrutadas por Internet hasta el equipo en cuestión sin coste alguno.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--parte daniel--&amp;gt;&lt;br /&gt;
Todo terminal tiene asociado una extensión y deberá permitir la movilidad de usuarios. La extensión se configura cambiando a '''''SI''''' el campo '''''Hay Movilidad''''' desde el apartado ''Extensiones'' de ''Dispositivos'' en ''VIVAit Call'' del '''portal de administración ''VIVA''it'''. Para más información [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Extensiones | ver sección Portal de administración - VIVAit Call - Dispositivos - Extensiones]]&lt;br /&gt;
&lt;br /&gt;
==== ¿Cómo funcionan las extensiones? ====&lt;br /&gt;
&lt;br /&gt;
Primeramente el usuario debe tener los ejes apropiados en la tabla '''COM_USUARIOS_APLICACION''' (aplicación centralita).&lt;br /&gt;
&lt;br /&gt;
La extensión debe de tener ''un teléfono'' y por tanto ''un modelo de teléfono asociado.''&lt;br /&gt;
&lt;br /&gt;
Es tan simple como especificar '''la extensión, el usuario y la clave de este.'''&lt;br /&gt;
&lt;br /&gt;
Para corroborar el funcionamiento de esta hay ''dos métodos'':&lt;br /&gt;
&lt;br /&gt;
'''* CLI asterisk:'''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenEntraUsuarioMovil 25001 20001 1234'''&lt;br /&gt;
&lt;br /&gt;
Y como resultado obtenemos lo siguiente:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br /&amp;gt;&lt;br /&gt;
 MOVIL_TIPO_RESET='10'&amp;lt;br /&amp;gt;&lt;br /&gt;
 MOVIL_CAD_RESET='notify_yealink'&amp;lt;br /&amp;gt;&lt;br /&gt;
 MdintzRes='OK'&lt;br /&gt;
&lt;br /&gt;
El usuario con el login numérico 20001 se ha &amp;quot;movido&amp;quot; a la extensión 25001&lt;br /&gt;
&lt;br /&gt;
Ahora ''nos quitamos de esa extensión mediante el siguiente comando:''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenSaleUsuarioMovil 25001'''&lt;br /&gt;
&lt;br /&gt;
Resultado del comando:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MOVIL_TIPO_RESET='10'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MOVIL_CAD_RESET='notify_yealink'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzRes='OK'&lt;br /&gt;
&lt;br /&gt;
Las pruebas anteriores han sido '''con extensiones con movilidad y con usuario con/sin&lt;br /&gt;
propietario.'''&lt;br /&gt;
&lt;br /&gt;
Ahora las realizamos '''con extensiones sin movilidad'''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenEntraUsuarioMovil 25002 20001 1234'''&lt;br /&gt;
&lt;br /&gt;
Obteniendo:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzRes='movil_error_datos'&lt;br /&gt;
&lt;br /&gt;
Como era lo previsible no nos deja &amp;quot;movernos&amp;quot; a esa extensión ya que no tiene movilidad.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;Si un usuario ya se ha movido a una extensión no se puede mover a otra si no es deslogandose de esta antes.&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
'''mdintz qry * nimitz bd extenEntraUsuarioMovil 21000 20001 1234'''&lt;br /&gt;
&lt;br /&gt;
Con salida:&lt;br /&gt;
&lt;br /&gt;
 mdintz Variables:&amp;lt;br/&amp;gt;&lt;br /&gt;
 MdintzIdentif='cms1'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MOVIL_EXTEN='25001'&amp;lt;br/&amp;gt;&lt;br /&gt;
 MDintzRes='movil_ya_login'&lt;br /&gt;
&lt;br /&gt;
'''* Dialplan'''&lt;br /&gt;
&lt;br /&gt;
Para llamar a la función de movilidad hay que marcar el '''9992.'''&lt;br /&gt;
&lt;br /&gt;
 Nota.- Para comprobar que se realiza todo correctamente habría que mirar las trazas de Asterisk&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Grabación ===&lt;br /&gt;
&lt;br /&gt;
La grabación en '''''VIVA'''''it Call está diseñada para ser lo mas flexible posible.&lt;br /&gt;
&lt;br /&gt;
====Configuración====&lt;br /&gt;
&lt;br /&gt;
Si deseamos grabar, debemos activar que alguno de los dispositivos/elementos que intervienen en la llamada se grabe.&lt;br /&gt;
&lt;br /&gt;
Estos dispositivos/elementos son:&lt;br /&gt;
&lt;br /&gt;
* Nodo.&lt;br /&gt;
* Usuario con Centralita.&lt;br /&gt;
* Agente.&lt;br /&gt;
* Grupo ACD corporativo y de Contact Center.&lt;br /&gt;
* Enlace exterior.&lt;br /&gt;
* Extensión.&lt;br /&gt;
* Facilidades.&lt;br /&gt;
* Grupo: grupo de salto o grupo de operadoras.&lt;br /&gt;
* Sala de conferencia.&lt;br /&gt;
* VDN corporativo y de Contact Center.&lt;br /&gt;
* Pre-rutas.&lt;br /&gt;
&lt;br /&gt;
Por otro lado necesitaremos que la llamada pase por un nodo que sea grabador, es decir, que si la llamada esta configurada para que se grabe pero no pasa por ningún nodo grabador, la llamada no se grabará.&lt;br /&gt;
&lt;br /&gt;
Al configurar un nodo existen cuatro campos que intervienen en la grabación.&lt;br /&gt;
&lt;br /&gt;
''''Grabador''''&lt;br /&gt;
&lt;br /&gt;
Se configura en el portal en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Este campo corresponde con el campo [[BD.COM_NODOS#B_ES_GRABADOR|B_ES_GRABADOR]] de la tabla [[BD.COM_NODOS|COM_NODOS]] , este campo define si el nodo va a grabar las llamas que pasen por el que necesiten ser grabadas y no se estén grabando ya.&lt;br /&gt;
&lt;br /&gt;
Es un campo booleano los posibles valores en el portal son si/no y en la base de datos 1/0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''''Modo grabación infraestructura''''&lt;br /&gt;
&lt;br /&gt;
Su configuración se realiza en el portal, en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Este campo define como está configurada la infraestructura, este campo existe por compatibilidad con '''''VIVA'''''it suite y para poder configurar la grabación bajo demanda.&lt;br /&gt;
&lt;br /&gt;
Este campo corresponde con el campo [[BD.COM_NODOS#E_MODO_GRABACION_INFRAESTRUCTURA|E_MODO_GRABACION_INFRAESTRUCTURA]] de la tabla [[BD.COM_NODOS|COM_NODOS]], Este campo usa los valores del enumerado BD.ENUM.TModoGrabacionInfraestructura|TModoGrabacionInfraestructura]].&lt;br /&gt;
&lt;br /&gt;
La formula que se seguiría para ver si una llamada se graba en ese nodo es:&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 (NODO.E_MODO_GRABACION_INFRAESTRUCTURA) AND (NODO.B_ENRU_GRABAR OR CEN_PRE_RUTA.B_ENRU_GRABAR OR &amp;quot;OBJETO&amp;quot;.B_ENRU_GRABAR)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Que sería que si la infraestructura esta en NoGraba no se graba nada de lo que se rute en ese nodo y en cualquiera de los 2 otros caso (GrabaTodo o GrabaPorPeticion) se grabaría dependiendo de la configuración del Nodo, la ruta o el objeto en cuestión (preruta, grupo ACD, extension,...).&lt;br /&gt;
&lt;br /&gt;
''''Grabar enrutamiento''''&lt;br /&gt;
&lt;br /&gt;
Se configura en el portal en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Este campo define si van a grabar las llamadas que se enruten en este nodo.&lt;br /&gt;
&lt;br /&gt;
Campo [[BD.COM_NODOS#E_ENRU_GRABAR|E_ENRU_GRABAR]] de la tabla [[BD.COM_NODOS|COM_NODOS]] que usa los valores del enumerado [[BD.ENUM.TTipoEnruGrabar|TTipoEnruGrabar]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''''RecordCentral''''&lt;br /&gt;
&lt;br /&gt;
Se configura en el portal en la sección general/nodos.&lt;br /&gt;
&lt;br /&gt;
Define que instancia del recordCentral es la encargada de tratar las grabaciones de este nodo.&lt;br /&gt;
&lt;br /&gt;
Para aumentar el rendimiento a la hora de traerse las grabaciones, se pueden definir varias instancias de proceso recordCentral, este campo define cual de estas instancias se encargara de este nodo.&lt;br /&gt;
&lt;br /&gt;
====Vivait Tracker====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL LA ÚNICA REFERENCIA A VIVAIT TRACKER EN LA DOCUMENTACIÓN &amp;quot;Vivait supervisor&amp;quot; QUE TENGO DICE LO SIGUIENTE. &amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Desde '''''VIVA'''''it Supervisor,  que es la aplicación dirigida a Supervisores, ofrece la posibilidad de supervisar y gestionar grupos ACD, agentes, asignaciones, prioridades,etc. Se puede obtener acceso directo a las aplicaciones de grabación ('''''VIVA'''''it tracker) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL FIN EXPLICACIÓN. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL De la documentacion creada por ivan. &amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Esquematico actual del proyecto tracker &lt;br /&gt;
[[Archivo:Esquematico_tracker_1.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1º El tracker web llama al web service Remote login para iniciar sesión y determinar si tiene permisos para la escucha y descarga de grabaciones.&lt;br /&gt;
&lt;br /&gt;
2º Si la ubicación de la grabación es local, mira la ruta de esta y se procede a la escucha o descarga de esta.&lt;br /&gt;
&lt;br /&gt;
3º Si la ubicación de la grabación es remota, entra en escena el proxy. Es el que realiza la petición.&lt;br /&gt;
&lt;br /&gt;
4º Si utilizamos el tracker windows, este, como el tracker web, llama primero al web service remote login para la autenticación y tema de Permisos.&lt;br /&gt;
&lt;br /&gt;
5º Para descargar o escuchar una grabación desde el tracker windows, se llama al web service servidor de grabaciones pasándole simplemente el ID de segmento.mp3. Este web service, con el ID de segmento, se encarga de determinar la ubicación de la grabación.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#FFAA00&amp;quot;&amp;gt; DANIEL De la documentación creada por ivan. &amp;lt;/span&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Esquematico actual del proyecto tracker &lt;br /&gt;
[[Archivo:Esquematico_tracker_2_https.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1º El tracker web llama al web service Remote login para iniciar sesión (comunicación https) y determinar si tiene permisos para la escucha y descarga de grabaciones. Se elimina el proxy&lt;br /&gt;
&lt;br /&gt;
2º Si la ubicación de la grabación es local, mira la ruta de esta y se procede a la escucha o descarga de esta.&lt;br /&gt;
&lt;br /&gt;
3º Si la ubicación de la grabación es remota, se realiza una petición al host remoto. El tipo de petición vendrá fijada por base de datos (http, https, ftp,ftps)&lt;br /&gt;
&lt;br /&gt;
4º Si utilizamos el tracker windows, este, como el tracker web, llama primero al web service remote login para la autenticación y tema de permisos (comunicación https extremo a extremo).&lt;br /&gt;
&lt;br /&gt;
5º Para descargar o escuchar una grabación desde el tracker windows, se llama al web service servidor de grabaciones pasándole simplemente el ID de segmento.mp3. Este web service, con el ID de segmento, se encarga de determinar la ubicación de la grabación.&lt;br /&gt;
&lt;br /&gt;
[[#Grabación_(Vivait_Tracker)| Volver arriba]]&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operación_plataforma_VIVAit Volver al indice]]&lt;br /&gt;
&lt;br /&gt;
=== Enrutamiento ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Enrutamiento.png|885px |center]]&lt;br /&gt;
&lt;br /&gt;
==== Funcionamiento ====&lt;br /&gt;
El proceso de enrutamiento, como vemos en el esquemático, se compone de dos fases:&lt;br /&gt;
&lt;br /&gt;
# Preenrutameinto, que se encarga de tratar todas las llamadas&lt;br /&gt;
# Enrutamiento externo, que tiene módulos dedicados al enrutamiento hacia:&lt;br /&gt;
:*Enlaces externos. &lt;br /&gt;
:*Extensiones. &lt;br /&gt;
:*Usuarios de telefonía corporativa. &lt;br /&gt;
:*Facilidades. &lt;br /&gt;
:*Salas de conferencia. &lt;br /&gt;
:*Agentes de grupos ACD. &lt;br /&gt;
:*Grupos ACD. &lt;br /&gt;
:*Vdn. &lt;br /&gt;
:*Buzones para dejar mensaje. &lt;br /&gt;
:*Buzones para su gestión.&lt;br /&gt;
&lt;br /&gt;
Se asume que existen rutas directas entre todos los nodos de la red.&lt;br /&gt;
&lt;br /&gt;
Se asume que están directamente enrutadas todas las direcciones IP involucradas, tanto nodos, como terminales.&lt;br /&gt;
&lt;br /&gt;
Se asume que todas las facilidades están disponibles en todos los nodos, aunque es posible que la implementación sea diferente entre ellos.&lt;br /&gt;
&lt;br /&gt;
Los datos de entrada básicos al proceso de enrutamiento (pdEntr) son:&lt;br /&gt;
* Dispositivo&lt;br /&gt;
* Cola&lt;br /&gt;
* Origen&lt;br /&gt;
* Nodo entrada&lt;br /&gt;
* UCID&lt;br /&gt;
* CALLER_ID_NAME&lt;br /&gt;
* CALLER_ID_NUM&lt;br /&gt;
* DNIS&lt;br /&gt;
* Desvío por dialplan&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A partir de los datos de entrada básicos anteriores se pueden deducir los siguientes valores:&lt;br /&gt;
* Sede del dispositivo de entrada&lt;br /&gt;
* Sede del nodo de entrada&lt;br /&gt;
* Ancho de banda disponible en la sede del dispositivo&lt;br /&gt;
* Ancho de banda disponible en la sede del nodo&lt;br /&gt;
* Categoría entrante&lt;br /&gt;
* Valor del eje1 asignado a la llamadas&lt;br /&gt;
* CALLER_ID_NUM_EXTERNO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los datos de salida globales del proceso de enrutamiento (pdSale) son:&lt;br /&gt;
* Categoría saliente&lt;br /&gt;
* Código de cliente (opcional)&lt;br /&gt;
* Tipo de destino:	&lt;br /&gt;
:* No existe&lt;br /&gt;
:* Ruta externa&lt;br /&gt;
:* Extensión&lt;br /&gt;
:* Usuario de telefonía corporativa&lt;br /&gt;
:* Facilidad&lt;br /&gt;
:* Salas de conferencia&lt;br /&gt;
:* Agentes de grupos ACD&lt;br /&gt;
:* Grupos ACD&lt;br /&gt;
:* VDN&lt;br /&gt;
:* Buzón para dejar mensaje. &lt;br /&gt;
:* Buzón para dejar mensaje por ocupado. &lt;br /&gt;
:* Buzón para dejar mensaje por no contestación. &lt;br /&gt;
:* Buzón para su gestión.&lt;br /&gt;
* Destinatario (cuando se trata de un usuario o de un agente)&lt;br /&gt;
* Valor del eje1 asignado a la llamada&lt;br /&gt;
* Buzón de las extensiones y usuarios que los tengan asignados&lt;br /&gt;
* Si el buzón está en nodo distinto al de entrada&lt;br /&gt;
* DESVIO_INCONDICIONAL (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable) &lt;br /&gt;
* DESVIO_NO_CONTESTA (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable) &lt;br /&gt;
* DESVIO_OCUPADO (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable) &lt;br /&gt;
* DESVIO_FUERA_SERV (sólo extensiones y usuarios) (valor MENSA=desvio_mensajeria en variable)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los datos de salida para cada una de las posibles rutas en orden son (nn va de 01 maxRutas [nn son dos dígitos decimales]):&lt;br /&gt;
* CONTADOR_ABDE_nn (contador para control de ancho de banda en sede de dispositivo de entrada).  &lt;br /&gt;
* CONTADOR_ABNE_nn (contador para control de ancho de banda en sede de nodo de entrada).  &lt;br /&gt;
* CONTADOR_ABDS_nn (contador para control de ancho de banda en sede de dispositivo de salida).  &lt;br /&gt;
* CONTADOR_ABNS_nn (contador para control de ancho de banda en sede de nodo de salida).  &lt;br /&gt;
* CALLER_NAME_SAL_nn , puede salir de una extensión, un usuario o de un agente. &lt;br /&gt;
* CALLER_NUM_SAL_nn, puede salir de una extensión, un usuario o de un agente.  &lt;br /&gt;
* DESTINO_SAL_nn , en general, el valor C_NOMBRE o destino de salida.  &lt;br /&gt;
* RUTA_NODO_nn , Cadena de marcación para ir la nodo que soporta DESTINO_SAL_nn, si es distinto del nodo de entrada.  &lt;br /&gt;
* RUTA_SAL_nn &lt;br /&gt;
:* Extensión: cadena marcación. &lt;br /&gt;
:* Facilidad: E_CODIGO_FACILIDAD obtenido de la tabla CEN_FACILIDADES. &lt;br /&gt;
:* Usuario: cadena marcación de la extensión asignada al usuario en movilidad o en propiedad. &lt;br /&gt;
:* Agente: cadena marcación de la extensión a la que está conectado el agente. &lt;br /&gt;
:* Ruta externa: contexto que gestiona la llamada saliente.&lt;br /&gt;
&lt;br /&gt;
=====Fase preenrutamiento =====&lt;br /&gt;
&lt;br /&gt;
La fase de preenrutamiento (basada en la tabla CEN_PRE_RUTA) se usa en todas las llamadas entrantes, tanto internas, como externas. Permite desarrollar un “prerouting” estándar para ACD y para telefonía corporativa.&lt;br /&gt;
&lt;br /&gt;
Los datos de entrada al proceso de enrutamiento son iguales a los del proceso global de enrutamiento, excepto en que este proceso no usa el nodo de entrada ya que es independiente de éste.&lt;br /&gt;
&lt;br /&gt;
Los datos de salida de la fase de preenrutamiento:&lt;br /&gt;
* D_CATEGORIA_SAL &lt;br /&gt;
* COD_CLIENTE (opcional) &lt;br /&gt;
* TIPO_DESTINO_SAL&lt;br /&gt;
:* No existe.   &lt;br /&gt;
:* Volver a preenrutar.   &lt;br /&gt;
:* Ruta externa.   &lt;br /&gt;
:* Extensión.   &lt;br /&gt;
:* Usuario de telefonía corporativa.   &lt;br /&gt;
:* Facilidad.   &lt;br /&gt;
:* Sala de conferencia.   &lt;br /&gt;
:* Agente de grupos ACD.   &lt;br /&gt;
:* Grupos ACD.   &lt;br /&gt;
:* VDN.   &lt;br /&gt;
:* Buzón para dejar mensaje.   &lt;br /&gt;
:* Buzón para dejar mensaje por ocupado.   &lt;br /&gt;
:* Buzón para dejar mensaje por no contestación.   &lt;br /&gt;
:* Buzón para su gestión. &lt;br /&gt;
* COD_CLIENTE &lt;br /&gt;
* Valor del eje1 asignado a la llamada &lt;br /&gt;
* CALLER_NAME &lt;br /&gt;
* CALLER_NUM &lt;br /&gt;
* DESTINO&lt;br /&gt;
&lt;br /&gt;
El proceso de preenrutamiento consiste en seleccionar un único registro de la tabla CEN_PRE_RUTA y, con sus valores y con los valores de entrada al proceso, generar los datos de salida.&lt;br /&gt;
&lt;br /&gt;
Un posible tipo de salida es &amp;quot;Volver a preenrutar&amp;quot;. Esto permite realimentar el proceso un máximo de &amp;quot;max_pre_ruta_regs&amp;quot; veces (en archivo .conf) para simplificar configuración. Sólo tiene sentido realimentar si se ha hecho alguna modificación en los datos de selección de registro, ya que en caso contrario se produciría un bucle que el proceso de preenrutamiento es capaz de detectar y evitar.&lt;br /&gt;
&lt;br /&gt;
Para elegir el registro de CEN_PRE_RUTA, se tienen en cuenta los datos de entrada de la llamada, de modo que se cumpla con todos los puntos siguientes: &lt;br /&gt;
* ID_CATEGORIA_ENT igual a la del dispositivo de entrada.  &lt;br /&gt;
* CALLER_NUM de entrada  &lt;br /&gt;
:* Debe comenzar por la cadena C_ORIGEN_ENT_PREF o C_ORIGEN_ENT_PREF=NULL, con menos prioridad. Es conveniente rellenar este dato del modo más restrictivo que sea posible, independientemente de C_ORIGEN_ENT_EXPR. Ello permite disminuir el uso innecesario de recursos de evaluación de expresiones regulares.    &lt;br /&gt;
:* Debe de tener un número de dígitos igual o superior a N_ORIGEN_ENT_MIN_DIGITOS, si este valor no es NULL o cero.    &lt;br /&gt;
:* Debe de tener un número de dígitos igual o inferior a N_ORIGEN_ENT_MAX_DIGITOS, si este valor no es NULL o cero.    &lt;br /&gt;
:* Debe cumplir la expresión regular C_ORIGEN_ENT_EXPR, si ésta no es NULL.  &lt;br /&gt;
* DNIS empiece con C_DESTINO_ENT_PREF o C_DESTINO_ENT_PREF=NULL. Es conveniente rellenar este dato del modo más restrictivo que sea posible, independientemente de C_DESTINO_ENT_EXPR. Ello permite disminuir el uso innecesario de recursos de evaluación de expresiones regulares.  &lt;br /&gt;
* Si varias entradas cumplen la condición anterior, se prueba primero la que el campo C_DESTINO_ENT_PREF tenga una longitud mayor y, de entre éstas, la que C_ORIGEN_ENT_PREF tenga una longitud mayor.  &lt;br /&gt;
* DNIS tenga un número de dígitos igual o superior a N_DESTINO_ENT_MIN_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* DNIS tenga un número de dígitos igual o inferior a N_ORIGEN_ENT_MIN_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* DNIS cumpla la expresión regular C_DESTINO_ENT_EXPR, si ésta no es NULL. &lt;br /&gt;
&lt;br /&gt;
Si no se encuentra ninguna entrada adecuada, quiere decir que es una llamada prohibida y se devuelve el tipo de destino &amp;quot;No existe&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Puede conseguirse un destino &amp;quot;por defecto&amp;quot; diferente, creando una entrada que encaje siempre para cada categoría: C_ORIGEN_ENT, C_ORIGEN_ENT_MIN_DIGITOS, C_ORIGEN_ENT_MAX_DIGITOS, C_ORIGEN_ENT_EXPR, C_DESTINO_ENT_PREF, N_DESTINO_ENT_MIN_DIGITOS, N_DESTINO_ENT_MAX_DIGITOS y C_DESTINO_ENT_EXPR a valor NULL.&lt;br /&gt;
&lt;br /&gt;
Una vez elegida una entrada, ésta puede transformar o sustituir el valor de ID_CATEGORIA, CALLER_NAME, CALLER_NUM, DESTINO, COD_CLIENTE y/o EJE1_MSK a la salida del proceso. &lt;br /&gt;
&lt;br /&gt;
Si ID_CATEGORIA_SAL es cero, se propaga a la salida el valor de la entrada. En caso contrario, se sustituye. &lt;br /&gt;
&lt;br /&gt;
Si C_CALLER_NAME está vacío, se mantiene el valor hubiese a la entrada. En caso contrario, se sustituye. &lt;br /&gt;
&lt;br /&gt;
C_CALLER_NUM puede contener una cadena que identifica el nuevo CALLER_NUM. Además, si la cadena comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo CALLER_NUM es igual al de entrada al proceso. &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo CALLER_NUM es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo. &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;. &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al CALLER_NUM de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo CALLER_NUM de salida. Si la expresión regular no se cumpliese, se propagará el valor de entrada al proceso. &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante que sustituye el valor a la entrada.&lt;br /&gt;
&lt;br /&gt;
Cada vez que se utilice una preruta, se incrementará el valor de N_CONTA si el valor de N_UMBRAL es mayor que cero.&lt;br /&gt;
&lt;br /&gt;
Un valor N_UMBRAL mayor que cero permite modificar el destino de salida cuando el valor de actual de N_CONTA (antes de incrementarse) supere o sea igual el valor de N_UMBRAL. Si se cumple la condición indicada, se usa como destino tras el preenrutamiento, los valores de los campos E_TIPO_DESTINO_SAL_2 y C_DESTINO_SAL_2.&lt;br /&gt;
&lt;br /&gt;
Si el valor de N_UMBRAL es menor o igual a cero o si N_CONTA es inferior a N_UMBRAL, se usa como destino tras el preenrutamiento, los valores de los campos E_TIPO_DESTINO_SAL_1 y C_DESTINO_SAL_1.&lt;br /&gt;
Con este mecanismo de N_CONTA y N_UMBRAL, se pretende facilitar el discriminar a los llamantes reincidentes, cuando sea necesario. &lt;br /&gt;
&lt;br /&gt;
Un proceso periódico externo debe encargarse de poner a cero o decrementar el valor de N_CONTA.&lt;br /&gt;
Como resultado de los procesos de filtrado y de verificación anteriores, se habrá obtenido un TIPO_DESTINO_SAL y un C_DESTINO_SAL a partir de los campos con sufijo &amp;quot;_1&amp;quot; o &amp;quot;_2&amp;quot;, con una metodología similar al caso C_CALLER_NUM.&lt;br /&gt;
&lt;br /&gt;
C_DESTINO_SAL_x puede contener cadena que permite obtener el nuevo destino. Además, si la cadena comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo destino es igual al de entrada al proceso.  &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo destino es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo.  &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;.  &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al destino de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo destino de salida. Si la expresión regular no se cumpliese, quiere decir que es una llamada prohibida y se encaminará hacia una facilidad por defecto.  &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante que sustituye el valor a la entrada. &lt;br /&gt;
Información de salida del proceso de preenrutamiento: Cuando TIPO_DESTINO_SAL_x toma los valores que se indican, el proceso global de enrutamiento sólo requiere de preenrutamiento y la información a devolver se obtiene dependiendo de TIPO_DESTINO_SAL_x: &lt;br /&gt;
* No existe: Se asume que no se conoce un destino para los datos de entrada, por lo que la llamada se encamina hacia una facilidad por defecto que gestiona su tratamiento.  &lt;br /&gt;
* Extensión: A partir de las tablas CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar la extensión en el nodo principal y en el secundario.  &lt;br /&gt;
* Facilidad: A partir de las tablas CEN_DISPOSITIVOS, CEN_FACILIDADES y CEN_NODOS.  &lt;br /&gt;
* Usuario de telefonía corporativa: A partir de las tablas CEN_USUARIOS, CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar al usuario en el nodo principal y en el secundario de la extensión que corresponde en base a movilidad, con prioridad, o en base a propiedad.  El caso de movilidad no se tiene en cuenta si el proceso de enrutamiento se realiza en &amp;quot;modo supervivencia&amp;quot;.  &lt;br /&gt;
* Sala conferencia: A partir de las tablas CEN_SALAS_CONFERENCIAS y CEN_NODOS.  &lt;br /&gt;
* Agente de ACD: A partir de las tablas ACD_USUARIOS, DAT_TR_ACD_EXTENSIONES, CEN_DISPOSITIVOS, CEN_EXTENSIONES y CEN_NODOS, se devolverán los valores que permiten alcanzar al agente en el nodo principal y en el secundario.  &lt;br /&gt;
* VDN: A partir de las tablas ACD_VDN y CEN_NODOS, se devolverán los valores que permiten alcanzar al VDN en su nodo.  &lt;br /&gt;
* Grupo ACD: A partir de las tablas ACD_COLAS y CEN_NODOS, se devolverán los valores que permiten alcanzar al grupo ACD en su nodo. &lt;br /&gt;
&lt;br /&gt;
El campo B_GENERAR_SEGMENTO de la tabla CEN_PRE_RUTA indica al proceso de preenrutamiento que es preciso generar un segmento de tipo &amp;quot;preenrutamiento&amp;quot;. En el segmento generado, se rellena el campo C_ETIQUETA1 del nuevo segmento con el valor que contiene el campo homónimo del registro asociado en la tabla CEN_LISTA_PRE_RUTAS.&lt;br /&gt;
&lt;br /&gt;
===== Fase de enrutamiento en casos en que el destino no es externo =====&lt;br /&gt;
Datos de entrada al proceso de enrutamiento externo: iguales a los de salida del proceso de preenrutamiento (pdPreSale), uniéndose a éstos los datos globales de entrada al proceso (pdEntr). &lt;br /&gt;
&lt;br /&gt;
Datos de salida de la fase de enrutamiento: iguales que los del proceso global de enrutamiento (pdSale). &lt;br /&gt;
&lt;br /&gt;
Específicamente y sólo para los casos en que el destino es una extensión (tipo de destino extensión, usuario de telefonía corporativa o agente) es cuando son válidos los datos correspondientes al buzón asociado y los datos de los posibles desvíos previstos. &lt;br /&gt;
&lt;br /&gt;
También en este caso, se prevén dos posibles rutas, una se corresponde con el acceso a la extensión en el nodo principal de ésta y la otra en el nodo secundario. &lt;br /&gt;
&lt;br /&gt;
En el resto de tipos de destino, sólo se prevé una ruta que puede incluir o no un enlace internodal. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Fase de enrutamiento en el caso de destino externo =====&lt;br /&gt;
Datos de entrada al proceso de enrutamiento externo: iguales a los de salida del proceso de preenrutamiento (pdPreSale), uniéndose a éstos los datos globales de entrada al proceso (pdEntr). &lt;br /&gt;
Datos de salida de la fase de enrutamiento: iguales que los del proceso global de enrutamiento (pdSale). &lt;br /&gt;
&lt;br /&gt;
Se elige los primeros &amp;quot;max_ruta&amp;quot; registros (configurado en archivo .conf) en CEN_DESTINOS_EXTERNOS unido con CEN_RELACION_DESTINOS_ENLACES_EXTERNOS que, teniendo en cuenta los datos de entrada al proceso de enrutamiento, cumpla con todos los puntos siguientes: &lt;br /&gt;
* ID_CATEGORIA_ENT igual a la de salida del proceso de preenrutamiento.  &lt;br /&gt;
* C_DESTINO_SAL de proceso de preenrutamiento empiece con C_DESTINO_ENT_PREF. &lt;br /&gt;
* Si varias entradas cumplen la condicion anterior, se prueba primero la que el campo C_DESTINO_ENT_PREF tenga una longitud mayor.  &lt;br /&gt;
* C_DESTINO_SAL tenga un número de dígitos igual o superior a N_DESTINO_ENT_MIN_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* C_DESTINO_SAL tenga un número de dígitos igual o inferior a N_DESTINO_ENT_MAX_DIGITOS, si este valor no es NULL o cero.  &lt;br /&gt;
* C_DESTINO_SAL cumpla la expresión regular C_DESTINO_ENT_EXPR, si ésta no es NULL. &lt;br /&gt;
&lt;br /&gt;
Aparte de la longitud del campo C_DESTINO_ENT_PREF, se usa N_PRIORIDAD como campo para ordenar los registros y seleccionar lo &amp;quot;max_ruta&amp;quot; primeros. &lt;br /&gt;
&lt;br /&gt;
Una vez que un registro es válido, se descartan todos los registros cuyo C_DESTINO_ENT_PREF es diferente del primero seleccionado. &lt;br /&gt;
&lt;br /&gt;
Como resultado de los procesos de filtrado y de verificación anteriores, se habrá obtenido hasta un máximo de &amp;quot;max_rutas&amp;quot; valores para posibles rutas. Las posibles propagaciones y transformaciones en los datos de cada ruta son función de los datos de cada registro seleccionado: &lt;br /&gt;
&lt;br /&gt;
CALLER_NAME_nn: Si C_CALLER_NAME está vacío, se propaga el valor de entrada. En caso contrario, se sustituye. &lt;br /&gt;
&lt;br /&gt;
CALLER_NUM_nn: Sale de C_CALLER_NUM que puede contener una cadena que identifica el nuevo CALLER_NUM_n. Además, si C_CALLER_NUM comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo CALLER_NUM_nn es igual al de entrada al proceso.  &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo CALLER_NUM_nn es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo.  &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;.  &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al CALLER_NUM de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo CALLER_NUM de salida. Si la expresión regular no se cumpliese, se propaga el valor de entrada al proceso.  &lt;br /&gt;
* &amp;quot;&amp;gt;&amp;quot; Si existe valor para CALLER_NUM_EXTERNO, se propagará éste a la salida. En caso contrario y si no está vacía la cadena que queda al eliminar el prefijo &amp;quot;&amp;gt;&amp;quot;, se susituye en la salida por el valor de la cadena sin prefijo. Si la cadena estuviese únicamente constituida por el valor &amp;quot;&amp;gt;&amp;quot;, se propaga el valor de entrada.  &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante sin ninguna modificación. &lt;br /&gt;
&lt;br /&gt;
C_DESTINO_SAL_nn: Se obtiene a partir de C_DESTINO_SAL que puede contener una cadena que identifica el nuevo destino. Además, si la cadena comienza por los caracteres que se indican, el significado es especial: &lt;br /&gt;
* &amp;quot;=&amp;quot; o cadena vacía, el nuevo destino es igual al de entrada al proceso. &lt;br /&gt;
* &amp;quot;+&amp;quot; el nuevo destino es igual al de entrada al proceso, con los caracteres a continuación de &amp;quot;+&amp;quot; como prefijo. &lt;br /&gt;
* &amp;quot;-&amp;quot; se quita el número de caracteres que se indica a continuación de &amp;quot;-&amp;quot;. &lt;br /&gt;
* &amp;quot;_&amp;quot; lo que sigue al carácter es una expresión regular que se aplica al destino de entrada. Dicha expresión regular tiene obligatoriamente que contener una subcadena (definida entre paréntesis, según el estándar de expresiones regulares) que nos da el nuevo destino de salida. Si la expresión regular no se cumpliese, se propaga el valor de entrada al proceso. &lt;br /&gt;
* cualquier otro valor del primer carácter determina que es una constante sin ninguna modificación. &lt;br /&gt;
&lt;br /&gt;
RUTA_NODO_nn: Sólo se usa si el nodo de salida es diferente del nodo de entrada. Contiene la cadena de marcación para ir la nodo que soporta DESTINO_SAL_nn. Sale del campo C_FORMATO_DIAL (sustituyendo variables) correspondiente al tipo de dispositivo del enlace exterior. &lt;br /&gt;
&lt;br /&gt;
RUTA_SAL_nn: Es el campo C_DATO_ASTERISK obtenido a partir del registro en la tabla CEN_ENLACE_EXTERIOR que se corresponde con ID_ENLACE_EXTERIOR de la tabla CEN_RELACION_DESTINOS_ENLACES_EXTERNOS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
=== Control de ancho de banda ===&lt;br /&gt;
&lt;br /&gt;
Para el control de ancho de banda, primero hemos de tener en consideración que una llamada puede tener asociadas hasta cuatro sedes&lt;br /&gt;
:* Sede del terminal origen (terminal A)&lt;br /&gt;
:* Sede del nodo de registro del terminal origen (nodo A)&lt;br /&gt;
:* Sede del terminal destino (terminal B)&lt;br /&gt;
:* Sede del nodo de registro del terminal destino (nodo B)&lt;br /&gt;
&lt;br /&gt;
Además hemos de tener en cuenta que el audio de la conversación podrá ir:&lt;br /&gt;
:* De manera directa entre terminal A y terminal B&lt;br /&gt;
:* De manera indirecta, a través de los nodos A y B&lt;br /&gt;
&lt;br /&gt;
[[Archivo:ancho de banda.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Cuando se va a cursar una llamada de terminal A a terminal B, el proceso de enrutamiento del nodo A devuelve 4 variables de canal al dialplan:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! Variable!!Campos &lt;br /&gt;
|- &lt;br /&gt;
|R_ABDE_xx||R = Variable de rutas --- AB = ancho de banda --- D = dispositivo --- E = Entrante --- xx = de 0 a 3&lt;br /&gt;
|-&lt;br /&gt;
|R_ABNE_xx||R = Variable de rutas --- AB = ancho de banda --- N = nodo --- E = Entrante --- xx = de 0 a 3&lt;br /&gt;
|-&lt;br /&gt;
|R_ABDS_xx||R = Variable de rutas --- AB = ancho de banda --- D = dispositivo --- S = Saliente --- xx = de 0 a 3&lt;br /&gt;
|- &lt;br /&gt;
|R_ABNS_xx||R = Variable de rutas --- AB = ancho de banda --- N = nodo --- S = Saliente --- xx = de 0 a 3&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El valor de cada variable es una cadena del tipo '''AB.wwww.xxxx.y.z''' donde cada valor es:&lt;br /&gt;
:* '''wwww''' --&amp;gt; id de sede&lt;br /&gt;
:* '''xxxx''' --&amp;gt; ancho de banda total de la sede&lt;br /&gt;
:* '''y''' --&amp;gt; número de llamadas a sumar si conversación directa&lt;br /&gt;
:* '''z''' --&amp;gt; número de llamadas a sumar si conversación indirecta&lt;br /&gt;
&lt;br /&gt;
Por otro lado tenemos que tener en cuenta que el dialplan tiene control de las llamadas que cada sede puede cursar&lt;br /&gt;
&lt;br /&gt;
De esta forma, cuando existe una nueva llamada el dialplan aplica la fórmula, suma el resultado al número de llamadas en curso y lo compara con el máximo...si el resultado es mayor que le máximo la llamada no se cursará por congestión&lt;br /&gt;
&lt;br /&gt;
Configuraremos el ancho de banda por sede en el portal de administración y el consumo que hace cada llamada en la variable '''AB_CONSUMO_LLAMADA''' del fichero '''ext_MDtel_particular.conf''' de cada nodo de conmutación; el valor por defecto es 32&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Puesto de trabajo ==&lt;br /&gt;
El puesto de trabajo del agente en la plataforma '''''VIVA'''''it  (para el producto '''''VIVA'''''it Suite) estará compuesto por:&lt;br /&gt;
* PC (típicamente windows) en el que reside la aplicación '''''VIVA'''''it Desk&lt;br /&gt;
* Terminal telefónico con extensión física asociada.&lt;br /&gt;
&lt;br /&gt;
Para más información [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Puestos | ver sección Portal de administración-VIVAit Suite ACD+ - Puestos]].&lt;br /&gt;
&lt;br /&gt;
=== Relación PC/teléfono en puesto de trabajo ===&lt;br /&gt;
&lt;br /&gt;
Existirá una relación única entre nombre PC y extensión física asociada, si bien los agentes se identificarán por su login que les acompaña al puesto de trabajo en el que se loguen&lt;br /&gt;
Existe un procedimiento documentado para la operativa de cambio de puesto de trabajo, en caso de ser necesario el cambio de PC o de teléfono de un puesto de trabajo.&lt;br /&gt;
==== Procedimiento para un cambio de puesto de trabajo ====&lt;br /&gt;
Se basa en una asignación de PC a teléfono relaccionando la extensión telefónica del terminal físico con el nombre del puesto de trabajo. La configuración de dicha asociación se realiza en el portal de administración de la plataforma. &lt;br /&gt;
&lt;br /&gt;
Cualquier cambio que se realice en terminal telefónico o PC de agente ha de mantener la asociación en el portal a efectos de permitir el funcionamiento del sistema.&lt;br /&gt;
&lt;br /&gt;
A continuación se reflejan los cambios más habituales:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cambio !! Procedimiento !! Punto de acción&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| Cambio de ubicación de un PC || Opción 1.- Renombrar el PC para que conserve el nombre que tenía el anterior en esa ubicación || PC de agente&lt;br /&gt;
|-&lt;br /&gt;
|  Opción 2.- Rehacer la asignación extensión/puesto || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot;| Instalación de PC nuevo en puesto existente || Opción 1.- Renombrar el PC para que conserve el nombre que tenía el anterior en esa ubicación || PC de agente&lt;br /&gt;
|-&lt;br /&gt;
| Opción 2.- Rehacer la asignación extensión/puesto || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| Cambio de nombre en un PC || Rehacer asignación extensión/puesto || Rehacer asignación extensión/puesto&lt;br /&gt;
|-&lt;br /&gt;
|Cambio de ubicación de un teléfono  || Rehacer la asignación extensión/puesto&lt;br /&gt;
 || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| Instalación de un teléfono nuevo en puesto existente || Rehacer la asignación extensión/puesto || Portal de administración&lt;br /&gt;
|-&lt;br /&gt;
| Instalación de un nuevo puesto de agente|| Hacer asignación extensión/puesto || Portal de administración&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:relacion_puesto_agente.png|center|500px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Estructura de aplicaciones en puesto de trabajo ===&lt;br /&gt;
Las aplicaciones del puesto de trabajo pueden estar ubicadas en cualquier carpeta del sistema. Es importante tener en cuenta que los procesos de actualización, logs… escriben en dichas carpetas, por lo que el usuario de windows deberá tener permisos de lectura/escritura y borrado sobre dichas carpetas&lt;br /&gt;
La instalación del puesto de trabajo es muy liviana para el sistema; las aplicaciones ocupan poco espacio y no se modifican ficheros del sistema operativo (registry o similares)&lt;br /&gt;
Los ficheros importantes son&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Fichero !! Descrición&lt;br /&gt;
|-&lt;br /&gt;
| Vivait-desk.exe || Contiene la aplicación '''''VIVA'''''it Desk de agente&lt;br /&gt;
|-&lt;br /&gt;
| vivait_desk_dll.dll||Este fichero contiene controles sobre los formularios (controles de&lt;br /&gt;
texto, algunas reglas de obligatoriedad…)&lt;br /&gt;
|-&lt;br /&gt;
| nimitz.ini || Configuración del puesto de agente&lt;br /&gt;
|-&lt;br /&gt;
| lanzador.exe || Aplicación de actualización de versiones&lt;br /&gt;
|-&lt;br /&gt;
| lanzador.ini || Configuración del actualizador de aplicaciones&lt;br /&gt;
|-&lt;br /&gt;
| Carpeta forms || En esta carpeta están ubicados los formularios que se abren ante llamada entrante o saliente&lt;br /&gt;
|-&lt;br /&gt;
| Carpeta imágenes || Contiene las imágenes izquierda y derecha de la barra de '''''VIVA'''''it Desk&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Secciones de utilidad en nimitz.ini ===&lt;br /&gt;
&lt;br /&gt;
==== Configuración del puesto de agente ====&lt;br /&gt;
&lt;br /&gt;
El fichero nimitz.ini contiene la configuración del puesto de agente; sus principales parámetros son:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;background:#ffffff&amp;quot; align=&amp;quot;top&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| |''' Fichero'''&lt;br /&gt;
|| '''Descripción'''&lt;br /&gt;
|-&lt;br /&gt;
|Sección [bd1]&lt;br /&gt;
||host=&amp;quot;ip_BBDD_tiempo_real&amp;quot;&lt;br /&gt;
puerto=&amp;quot;Nº puerto&amp;quot;&lt;br /&gt;
basedatos=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
usuario=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
clave=&amp;quot;UIk5jMY9PVX6ogg=&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Contiene información para la conexión a BBDD de tiempo real, en la que '''''VIVA'''''it Desk fundamentalmente inserta información&lt;br /&gt;
|-&lt;br /&gt;
|Sección [bd2]&lt;br /&gt;
||host=&amp;quot; ip_BBDD_replica &amp;quot;&lt;br /&gt;
puerto=&amp;quot;Nº puerto&amp;quot;&lt;br /&gt;
basedatos=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
usuario=&amp;quot;nimitz&amp;quot;&lt;br /&gt;
clave=&amp;quot;UIk5jMY9PVX6ogg=&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Contiene información para la conexión a BBDD de réplica, en la que '''''VIVA'''''it Desk solo leerá información&lt;br /&gt;
|-&lt;br /&gt;
|Sección [telefono]&lt;br /&gt;
||pruebas=1 (Valores válidos 0 ó 1)&lt;br /&gt;
Activación de funcionalidad &amp;quot;servicio técnico&amp;quot; en '''''VIVA'''''it Desk.&lt;br /&gt;
&lt;br /&gt;
puesto=&amp;quot;Nombre puesto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Sección [trazas]&lt;br /&gt;
|| nivel=3&lt;br /&gt;
&lt;br /&gt;
archivo=1&lt;br /&gt;
&lt;br /&gt;
consola=0&lt;br /&gt;
&lt;br /&gt;
sobreescribir=1&lt;br /&gt;
&lt;br /&gt;
Activación de generación de ficheros de trazas &amp;quot;viva-desk.log&amp;quot; en carpeta de aplicaciones &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Parámetros en invocación a '''''VIVA'''''it Desk ===&lt;br /&gt;
&lt;br /&gt;
La aplicación '''''VIVA'''''it Desk puede ser invocada con una serie de parámetros que condicionan su funcionamiento; los parámetros son:&lt;br /&gt;
* Primer parámetro: Nombre del archivo .ini; usado como alternativa al fichero por defecto &amp;quot;nimitz.ini&amp;quot;&lt;br /&gt;
* Segundo parámetro: Nombre de puesto; usado como alternativa al nombre de puesto del ordenador&lt;br /&gt;
* Tercer parámetro: Nombre de login; para forzar un usuario; es de utilidad si el sistema está configurado como &amp;quot;confiar en sistema operativo&amp;quot;, en cuyo caso no permite seleccionar un login de agente para acceder a la aplicación&lt;br /&gt;
&lt;br /&gt;
=== Instalación y actualización de aplicaciones de puestos de trabajo ===&lt;br /&gt;
La instalación y actualización de las aplicaciones en el puesto de trabajo pasan por disponer de los ficheros “lanzador.exe” y “lanzador.ini” (debidamente configurado) dentro de la carpeta en la que se desee instalar.&lt;br /&gt;
Lanzando la aplicación “lanzador.exe” se instalará o actualizará el sistema. &lt;br /&gt;
&lt;br /&gt;
El fichero “lanzador.ini” tiene el siguiente aspecto:&lt;br /&gt;
 URL=&amp;quot;http://IP_Servidor:8180/WSActualizaXML/actualizar.xml&amp;quot;&lt;br /&gt;
 BASE_URL_DESCARGAS=&amp;quot;http://IP_servidor:8180/XMLFILES/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Servicio técnico en '''''VIVA'''''it Desk ===&lt;br /&gt;
La activación de la funcionalidad de servicio técnico en '''''VIVA'''''it Desk nos permite realizar sincronizaciones manuales de la aplicación y activar trazas a nivel de Base de Datos o a nivel de log sobre el propio '''''VIVA'''''it Desk. Pulsando el botón derecho del ratón sobre la barra '''''VIVA'''''it Desk accederemos a las capacidades de soporte técnico&lt;br /&gt;
[[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]]&lt;br /&gt;
&lt;br /&gt;
== Funcionamiento de la plataforma en modo emergencia ==&lt;br /&gt;
== Accesos Web ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Aplicación !! Enlace&lt;br /&gt;
|-&lt;br /&gt;
|Portal de administración '''''VIVA'''''it Suite || http://ip_admin:8180/Vivait-Call&lt;br /&gt;
|-&lt;br /&gt;
|'''''VIVA'''''it Tracker||http://ip_tracker:8180/Vivait-Tracker&lt;br /&gt;
|-&lt;br /&gt;
|Monitor Web||http://ip_monitor:8180/MonitorWeb&lt;br /&gt;
|-&lt;br /&gt;
|Monitorización Zabbix||http://ip_zabbix:80/zabbix&lt;br /&gt;
|-&lt;br /&gt;
|Base de datos tiempo real||http://ip_bbdd_tr:80/phpmyadmin/&lt;br /&gt;
|-&lt;br /&gt;
|Base de datos réplica||http://ip_bbdd_replica:80/phpmyadmin&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Permisos de aplicaciones ===&lt;br /&gt;
Se crean a través del '''portal de administración ''VIVA''it''' . Debe conocerse como funcionan los ejes [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Ejes| ver sección Portal de administracion - General - Ejes]] y que existen cuatro aplicaciones creadas en la plataforma:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:17_2 Pestaña Genera - Usuarios - Explicacion permisos.png|center]]&lt;br /&gt;
&lt;br /&gt;
La forma como dar permisos de aplicaciones a un usuario esta explicada en la [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Portal_de_administraci%C3%B3n_VIVAit#Asignaci.C3.B3n_de_Permisos_de_Usuario_por_Administrador | sección  Portal de administracion - General - Usuarios ]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elementos monitorizados del sistema ==&lt;br /&gt;
===Generalidades de Zabbix===&lt;br /&gt;
====Zabbix ====&lt;br /&gt;
Zabbix es una solución de código abierto que ofrece características de monitorización avanzada de forma tecnica y para el negocio, para todo tipo de servidores, aplicaciones y equipos que forman parte de una red. La versión que utilizamos en '''md'''tel es Zabbix 2.2.2.&lt;br /&gt;
&lt;br /&gt;
Zabbix  monitoriza los  recursos  de un equipo en forma remota, permite centralizar la información en un servidor que permite visualizar el monitoreo, cuenta con una interfaz de administración vía web y utiliza un mecanismo flexible de la notificación que permita que los usuarios configuren las alarmas basadas email para informar virtualmente cualquier acontecimiento. Esto permite una reacción rápida a los problemas del servidor. &lt;br /&gt;
&lt;br /&gt;
Para acceder al servidor Zabbix abrimos el navegador y ponemos la dirección de red (IP) de la maquina donde se encuentra instalado el servidor de Zabbix seguido de &amp;quot;/Zabbix.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Direccion.IP.Zabbix.Server/zabbix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Zabbix posee documentación tanto en wiki, foros y comunidades.Para ampliar la información se puede visitar:&lt;br /&gt;
[[http://www.zabbix.com Sitio oficial de Zabbix]]&lt;br /&gt;
===== Glosario Zabbix =====&lt;br /&gt;
Se trata de una lista de conceptos básicos de Zabbix, pero para ampliar la información sobre otros términos, visite el [[http://www.zabbix.com Sitio oficial de Zabbix]].&lt;br /&gt;
* '''host''' &lt;br /&gt;
:En Zabbix, un host es una entidad que define el elemento en red que se desea monitorizar/supervisar activamente sus recursos locales y aplicaciones. Este puede ser una impresa, router, switch, sensores de temperatura, un servidor, un ordenador,etc, o también una aplicación. La característica de un host es que debe poseer una dirección de red (IP).&lt;br /&gt;
&lt;br /&gt;
* '''host group'''&lt;br /&gt;
:En Zabbix, un host group (grupo host) es una agrupación lógica de los host, como una forma de organizar los dispositivos &amp;quot;Host&amp;quot; registrados en Zabbix para su monitorización. Puede contener hosts y templates.  Los grupos host se utilizan en la asignación de derechos de acceso a los hosts para diferentes grupos de usuarios.&lt;br /&gt;
&lt;br /&gt;
* '''item'''&lt;br /&gt;
:En Zabbix, un item (medida) es el parámetro que deseamos obtener del host, básicamente es una medida especifica que el servidor Zabbix recogerá de los agentes de Zabbix instalados en los host.&lt;br /&gt;
&lt;br /&gt;
* '''trigger'''&lt;br /&gt;
:En Zabbix, un trigger(disparador) es una entidad que define un umbral para detectar la existencia de un problema en un dispositivo.  Son valores recolectados por los &amp;quot;items&amp;quot;, se usa para &amp;quot;evaluar&amp;quot; los datos recibidos con condiciones definidas. Las condiciones son de tipo aritmético y lógico.&lt;br /&gt;
* '''event'''&lt;br /&gt;
:En Zabbix, un event (evento) es la aparición de un suceso en Zabbix que necesita atención. Por ejemplo, el cambio de estado a raíz de un trigger, el descubrimiento de un nuevo agente (autoregistro),etc.&lt;br /&gt;
* '''action'''&lt;br /&gt;
:En Zabbix, una action(acción) son reglas predefinidas para reaccionar a un evento disparado por los triggers, es decir, define qué hacer ante un evento. Consta de operaciones (por ejemplo, una notificacion, comandos remotos) y condiciones (cuando  la operación se lleva a cabo).&lt;br /&gt;
* '''notification'''&lt;br /&gt;
:En Zabbix, una notification (notificacion) es la entidad con que Zabbix nos puede notificar (Correo Electrónico,mensajes vía &amp;quot;SMS&amp;quot; o Jabber).&lt;br /&gt;
* '''template'''&lt;br /&gt;
:En Zabbix, un témplate (plantilla) viene predefinida en la instalación de Zabbix Server, con el fin de ser aplicada en base al tipo de sistema operativo(Linux, Mac, Window, etc) o en elementos que comparten los mismos parámetros de medición, por ejemplo la carga del procesador, uso de memoria y  uso de recursos de red. Las plantillas son un conjunto de módulos &amp;quot;ITEM, TRIGGERS y GRÁFICAS&amp;quot;, que están preconfigurados y listas para ser aplicadas a uno o varios hosts.&lt;br /&gt;
* '''application'''&lt;br /&gt;
:En Zabbix, una application (aplicación) es una agrupación lógica de los items.&lt;br /&gt;
* '''Zabbix server'''&lt;br /&gt;
:El Zabbix server (servidor de Zabbix) es el proceso central donde están definidas las configuraciones y donde se almacenan todos los datos y estadísticas recogidas de los agentes Zabbix.Consta de una base de datos, una interfaz web y el propio server. Como servidor, se encarga de recoger los datos de los agentes, calcular los triggers, enviar notificaciones, etc. &lt;br /&gt;
* '''Zabbix agent'''&lt;br /&gt;
:El zabbix agent (agente de Zabbix)  es un proceso desplegado en los host que son supervisados, que funciona como un servicio y puede funcionar de forma activa y pasiva simultáneamente.&lt;br /&gt;
&lt;br /&gt;
=====Discovery=====&lt;br /&gt;
La funcionalidad discovery(detección) lista los dispositivos que se integran en nuestra red y el tipo de servicios que proporciona. Por ejemplo, si la empresa tuviera cien colas ACDs, y veinticinco VDNS, y en cada cola como veinte medidas, seria muy laborioso registrar una por uno cada uno.  &lt;br /&gt;
Gracias a esta funcionalidad, se descubre todas las interfaces de red que se tiene, automáticamente y tanto para colas nodos o IVR. Para utilizar esta funcionalidad , se hace el uso de dos script, que se instalan en el momento de instalación de Zabbix en el directorio &amp;quot;/usr/local/sbin&amp;quot;, que son:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
'''zabbixDiscoveryQueues.pl''' : script utilizado para buscar colas ACD.&lt;br /&gt;
&lt;br /&gt;
'''zabbixDiscoveryVDN.pl''' : script utilizado para buscar VDNS.&lt;br /&gt;
|}&lt;br /&gt;
La explicación de como configurarla se encuentra en el manual oficial [[https://www.zabbix.com/documentation/2.2/manual/discovery/network_discovery/rule | Zabbix detección de redes]].&lt;br /&gt;
&lt;br /&gt;
=====Notificaciones=====&lt;br /&gt;
&lt;br /&gt;
Necesariamente, debe darse de alta al usuario y darse de alta el servidor de correo electrónico para poder ser capaz de enviar correos.&lt;br /&gt;
&lt;br /&gt;
Por otro lado, el formato del correo electrónico y las condiciones de envío de correo al usuario se configura en las acciones. Véase  el [[https://www.zabbix.com/documentation/2.2/manual/quickstart/notification  | manual oficial de Zabbix 2.2]]&lt;br /&gt;
&lt;br /&gt;
=====Usuarios=====&lt;br /&gt;
Zabbix permite la organización de usuarios en grupos para establecer los permisos adecuados de acuerdo al tipo de perfil que deseemos crear. Necesariamente un usuario debe permanecer a un grupo o varios grupos.Todos los usuarios acceden a la aplicación de Zabbix a través de la interfaz Web. &lt;br /&gt;
&lt;br /&gt;
Cada usuario Zabbix se le asigna un nombre de usuario único , una contraseña y podemos indicarle que tipo de comunicación que posee, normalmente es vía email, pero puede ser vía a otro tipo de medios. Para mas información ver el [[https://www.zabbix.com/documentation/2.2/manual/web_interface/user_profile || manual oficial ]].&lt;br /&gt;
 &lt;br /&gt;
=====Visualización=====&lt;br /&gt;
Con Zabbix es posible visualizar los datos como  gráficos, pantallas, mapas y hasta presentaciones cambiantes, entre otros. En este apartado solo nombraremos características esenciales que se tendra que completar con el [[https://www.zabbix.com/documentation/2.2/manual/config/visualisation | manual oficial]]&lt;br /&gt;
======Graphs======&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''Nota:''' Debe crearse algun item dentro del host para poder utilizar una gráfica.&lt;br /&gt;
|}&lt;br /&gt;
En Zabbix una gráfica sirve para representar gráficamente los resultados obtenidos de uno item o varios items.&lt;br /&gt;
[[File:EjemploGrafica.png|center|750px]]&lt;br /&gt;
Los valores min / avg / max que Zabbix obtiene y representa son de un registro de datos de la tabla tendencias.&lt;br /&gt;
&lt;br /&gt;
======Screens======&lt;br /&gt;
La pantalla refiere a otra característica adaptable de ZABBIX cuál permite que los usuarios creen las pantallas personalizadas dentro de ZABBIX para exhibir la información. Se considera como una colección de gráficas y no depende del host. Una pantalla puede consistir en gráficos simples, gráficos personalizados, integrar mapas, Alertas, gráficos estadísticos o texto llano tal como los 5 valores pasados de un item particular entre otros; y mostrar la información de forma dinámica.&lt;br /&gt;
&lt;br /&gt;
[[File:EjemploScreen.png|center|750px]]&lt;br /&gt;
&lt;br /&gt;
======Maps======&lt;br /&gt;
En Zabbix, un map (mapa) es una representación gráfica de la situacion de nuestros dispositivos en red. Es un escenario que muestra nuestra red, aplicaciones y servicios a través de figuras o iconos.  Dichas figuras toman vida en respuesta a los eventos que se dan en nuestro entorno.&lt;br /&gt;
[[File:EjemploMaps.png|center|750px]]&lt;br /&gt;
[[File:EstadosMaps.png|center|750px]]&lt;br /&gt;
===Zabbix en '''MD'''tel===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Configuraciones de Zabbix ====&lt;br /&gt;
&lt;br /&gt;
===== Agentes Zabbix =====&lt;br /&gt;
{|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 '''Nota:''' Hay que instalar un agente Zabbix en cada maquina que se quiera monitorizar.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El agente de Zabbix puede recoger datos: &lt;br /&gt;
*'''De forma pasiva:''' el server contacta al agente pidiéndole un dato (por ejemplo el consumo de CPU en ese instante) y el agente responde al server con ese dato. A esta acción del agente le llamaremos '''Agente activo'''.&lt;br /&gt;
*'''De forma activa:''' en un primer momento, el server le enviará al agente el listado de items a monitorizar. A partir de ese momento, será el agente que de forma periódica recogerá datos sobre esos ítems y se los hará llegar al server. A esta acción del agente le llamaremos ''''''Agente pasivo''''''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== Configurar agente de forma pasiva======&lt;br /&gt;
Para configurar el agente de Zabbix necesitamos acceder a la maquina que actuará como agente, y en el directorio /etc/zabbix modificar el fichero '''zabbix_agentd.conf''' e indicar cual es la dirección de red (IP) del servidor Zabbix.&lt;br /&gt;
&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 ##### Passive checks related&lt;br /&gt;
 ### Option: Server&lt;br /&gt;
 #       List of comma delimited IP addresses (or hostnames) of Zabbix servers.&lt;br /&gt;
 #       Incoming connections will be accepted only from the hosts listed here.&lt;br /&gt;
 #       If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1'  &lt;br /&gt;
 #       are treated equall$&lt;br /&gt;
 #&lt;br /&gt;
 # Mandatory: no&lt;br /&gt;
 # Default:&lt;br /&gt;
 Server= IP.Server Zabbix.&lt;br /&gt;
|}&lt;br /&gt;
Tras la configuración del fichero, debemos reiniciar el servicio de los agentes.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 sudo service zabbix-agent restart&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====== Configurar agente de forma activa ======&lt;br /&gt;
&lt;br /&gt;
Para configurar el agente de Zabbix necesitamos acceder a la máquina que actuará como agente, y en el directorio /etc/zabbix modificar el fichero '''zabbix_agentd.conf''' e indicar cual es la dirección de red (IP) del servidor Zabbix.&lt;br /&gt;
&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 ##### Active checks related&lt;br /&gt;
 ### Option: ServerActive&lt;br /&gt;
 #       List of comma delimited IP:port (or hostname:port) pairs of Zabbix serv$&lt;br /&gt;
 #       If port is not specified, default port is used.&lt;br /&gt;
 #       IPv6 addresses must be enclosed in square brackets if port for that hos$&lt;br /&gt;
 #       If port is not specified, square brackets for IPv6 addresses are option$&lt;br /&gt;
 #       If this parameter is not specified, active checks are disabled.&lt;br /&gt;
 #       Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12$&lt;br /&gt;
 #&lt;br /&gt;
 # Mandatory: no&lt;br /&gt;
 # Default:&lt;br /&gt;
 ServerActive=127.0.0.1&lt;br /&gt;
 --------------------------sección separada----------------------------&lt;br /&gt;
 ### Option: UserParameter&lt;br /&gt;
 #       User-defined parameter to monitor. There can be several user-defined pa$&lt;br /&gt;
 #       Format: UserParameter=&amp;lt;key&amp;gt;,&amp;lt;shell command&amp;gt;&lt;br /&gt;
 #       See 'zabbix_agentd' directory for examples.&lt;br /&gt;
 #&lt;br /&gt;
 # Mandatory: no&lt;br /&gt;
 # Default:&lt;br /&gt;
 # UserParameter=&lt;br /&gt;
 User_parameters:asterisk.pid, /usr/bin/asterisk -rx 'core show chanels'|grep 'active calls'| cat -d -f 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El parámetro '''User_parameters''' tiene un formato de este estilo:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 User_parameters: NombreMedida, comando.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El nombre de la medida se refiere al nombre que demos a la aplicación , no hace falta que exista una aplicación con ese nombre en Zabbix, y el comando , es el comando remoto que tiene que ejecutar el servidor Zabbix. Posiblemente necesita darse permisos para ejecutar el comando y siempre debe devolver un valor (un numero o un tiempo) que el servidor Zabbix puede manejar.&lt;br /&gt;
Tras la configuración del fichero, debemos reiniciar el servicio de los agentes.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 sudo service zabbix-agent restart&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Scripts del Servidor Zabbix =====&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''': &amp;lt;small&amp;gt;No olvidar que en la misma maquina del server Zabbix, debe configurarse como agente de Zabbix.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Después de realizar la [[# Instalación de Zabbix | Instalación de Zabbix ]] correctamente. Se han creado otros ficheros scripts (''scripts propios de '''md'''tel'') que facilitarán la petición del servidor a los agentes activos, para poder parametrizar todos los elementos del negocio que suelen monitorizarse. &lt;br /&gt;
Dependiendo de lo que vaya a monitorizarse necesitaremos algún script o todos. Algunos nos informan sobre elementos de negocio, saber si asterisk funciona , monitorizar el CTI (lanzara nc localhost 1111) , controlar el Intz-Nimitz, comprobar si funciona motalsal, ect.&lt;br /&gt;
&lt;br /&gt;
Cada script se exportara a los host, para que pueda facilitar los datos que pide el servidor Zabbix y configurarse.&lt;br /&gt;
Por ejemplo,para monitorizar las llamadas en curso del ACD, agentes conectados, agentes desconectados, etc.&lt;br /&gt;
Todos los scripts se deben colocar en el directorio /usr/local/sbin con permisos 755, su nombre es parecido a &amp;quot;zabbixSenderXXXXX.pl&amp;quot;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 ls /usr/local/sbin/ |grep zabbixSender&lt;br /&gt;
 '''zabbixSenderACDBD.pl'''&lt;br /&gt;
 '''zabbixSenderACD.pl'''&lt;br /&gt;
 '''zabbixSenderCTI.pl'''&lt;br /&gt;
 '''zabbixSender-intz-nimitz.pl'''&lt;br /&gt;
 '''zabbixSenderMotorSal.pl'''&lt;br /&gt;
 '''zabbixSenderMyACDSuperv.pl'''&lt;br /&gt;
 '''zabbixSenderRecordNodo.pl'''&lt;br /&gt;
 '''zabbixSenderRecordCentral.pl'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Se crea una tarea programada en linux para poder ejecutarse los scripts, programando el tiempo en que debe ejecutarse.&lt;br /&gt;
&lt;br /&gt;
Si visualizo que &amp;quot;............&amp;quot; aparece:&lt;br /&gt;
&lt;br /&gt;
*****  root zabbix&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderACDBD.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtiene diversos valores por cada cola, estados de agente por cola y estados de agente generales.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor BDTR.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:''' Ruta al archivo de configuración (Por ejemplo: ''/etc/MDtel/zabbixSenderACDBD.pconf'')&lt;br /&gt;
&lt;br /&gt;
'''Archivo de configuración:''' zabbixSenderACDBD.pconf&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''$db:''' Nombre de la BBDD (normalmente nimitz)&lt;br /&gt;
 '''$dbHost:''' Dirección IP del servidor de BBDD de TR (normalmente BDTR)&lt;br /&gt;
 '''$dbPort:''' Puerto MySQL (normalmente 3306)&lt;br /&gt;
 '''$dbUsuario:''' Usuario MySQL (normalmente nimitz)&lt;br /&gt;
 '''$dbClave:''' Clave del usuario&lt;br /&gt;
 '''$sZab:''' Dirección IP del servidor Zabbix&lt;br /&gt;
 '''$hZab:''' Nombre del host Zabbix (normalmente el nombre de máquina, tal y como se configura en &lt;br /&gt;
 zabbix_agentd.conf o en el host en la web de Zabbix)&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderACD.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener el PID de Asterisk para revisar si se ha reiniciado en caso de que cambie.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor ACD.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:''' Ruta al archivo de configuración (Por ejemplo: ''/etc/MDtel/zabbixSenderACD.pconf'').&lt;br /&gt;
&lt;br /&gt;
'''Archivo de configuración:''' zabbixSenderACDBD.pconf.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''$db:''' Nombre de la BBDD (normalmente nimitz)&lt;br /&gt;
 '''$dbHost:''' Dirección IP del servidor de BBDD de TR (normalmente BDTR)&lt;br /&gt;
 '''$dbPort:''' Puerto MySQL (normalmente 3306)&lt;br /&gt;
 '''$dbUsuario:''' Usuario MySQL (normalmente nimitz)&lt;br /&gt;
 '''$dbClave:''' Clave del usuario&lt;br /&gt;
 '''$sZab:''' Dirección IP del servidor Zabbix&lt;br /&gt;
 '''$hZab:''' Nombre del host Zabbix (normalmente el nombre de máquina, tal y como se configura en&lt;br /&gt;
 zabbix_agentd.conf o en el host en la web de Zabbix)&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
======zabbixSenderCTI.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de vivait-cti.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute vivait-cti. Normalmente el servidor ACD.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======zabbixSender-intz-nimitz.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de intz-nimitz.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute intz-nimitz.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
======zabbixSenderMotorSal.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de motorSal.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute motorSal.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderMyACDSuperv.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de myAcdSuperv.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute myAcdSuperv.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderRecordNodo.pl======&lt;br /&gt;
&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de recordNodo.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute recordNodo.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======zabbixSenderRecordCentral.pl======&lt;br /&gt;
'''Uso:''' Obtener estado y los distintos valores de recordCentral.&lt;br /&gt;
&lt;br /&gt;
'''Ubicación:''' Servidor donde se ejecute recordCentral.&lt;br /&gt;
&lt;br /&gt;
'''Parámetros:'''&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
 &amp;lt;small&amp;gt;'''--sZab:''' Ip del servidor Zabbix. Si se omite, se asume localhost.&lt;br /&gt;
 '''--hZab:''' Nombre del host Zabbix. Si se omite, se asume el nombre de máquina local.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A continuación se muestra una tabla resumen de los distintos scripts y sus funcionalidades: &lt;br /&gt;
&lt;br /&gt;
[[Archivo:Zabbix_scripts.png |960px]]&lt;br /&gt;
&lt;br /&gt;
====== Dimensionamiento del servidor (Startpollers) ======&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''': &amp;lt;small&amp;gt;EL parámetro StartPollers es un &amp;lt;u&amp;gt;parámetro numérico&amp;lt;/u&amp;gt; que forma parte del fichero de configuración &lt;br /&gt;
 del servidor Zabbix(zabbix_server.conf). Por defecto el servidor Zabbix esta configurado para&lt;br /&gt;
 iniciar con cinco startpollers.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
El servidor Zabbix puede hace peticiones a los agentes de las medidas que necesita o quiere. O en caso contrario los agentes envian en un tiempo determinado la información al servidor. Para recibir todas estas peticiones necesitamos los pollers.  &lt;br /&gt;
&lt;br /&gt;
Los poller son los procesos encargados de recibir todas las peticiones de medidas. Aumentaremos su cantidad dependiendo de la necesitad que tengamos. Para ello podemos observar la queue , que es la encargada de almacenar un listado de todas las cosas que están pedidas para medirse y recibirse.  SI por ejemplo esta cola (queue) muestra mas de mil medidas seguramente estos pollers sean un cuello de botella y habrá que aumentar su numero.&lt;br /&gt;
&lt;br /&gt;
=====Templates=====&lt;br /&gt;
&lt;br /&gt;
Zabbix cuenta con templates (plantillas) que facilitan la tarea de &amp;quot;Registrar Equipos y Dispositivos&amp;quot; y agregarles métricas; acelerar el despliegue de las tareas de supervisión en un host; aplicar cambios masivos a tareas de supervisión. En '''md'''tel hemos creado plantillas propias que facilitan estos procesos, los cuales necesitaremos [[#Importar templates |importar templates]].&lt;br /&gt;
&lt;br /&gt;
Las plantillas están vinculados directamente a los hosts individuales, por tanto se necesitaran utilizar en cada host.&lt;br /&gt;
&lt;br /&gt;
Automáticamente, cada template rellena por item las aplicaciones, trigers, alarmas,gráficos,... etc. &lt;br /&gt;
&lt;br /&gt;
A continuación, se muestran los distintos bloques de funciones de la instalación en función de cada template:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! Se instalan en general &lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| SI (si clúster)&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| si&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| -&lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| si(si no posee ip virtuales de clúster)&lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| si&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ '''Dependiendo del tipo de nodo:'''&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! ACD !! Corporativo/GW&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| Si || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - || Si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - || Si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ '''Dependiendo del tipo de Base de dato'''s:&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! BBDD &amp;lt;br /&amp;gt;Tiempo Real !! BBDD&amp;lt;br /&amp;gt; Réplica !! BBDD Copia&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| Si(si ACD) || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| si || si || si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| si || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - || - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! Administración&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - &lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - &lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal||SI (si posee servidor calendarios)&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! Servidor de grabaciones&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - &lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| Si&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - &lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal||-&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - &lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+ '''Monitorización'''&lt;br /&gt;
|- &lt;br /&gt;
! Templates !! General !! Contact Center&lt;br /&gt;
|- &lt;br /&gt;
| DRBD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| motorSal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite ACD|| - || - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite BBDD|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite Record|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Suite GW|| - || - &lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call Asterisk|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdCentral|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Vivait-Call bdNodo|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| cambiarPerfil_Cal|| - || -&lt;br /&gt;
|- &lt;br /&gt;
| Template App Zabbix Server|| si || - &lt;br /&gt;
|- &lt;br /&gt;
| Template_OS_Linux*|| - || - &lt;br /&gt;
|- &lt;br /&gt;
| Template_App_MySQL|| - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 * El template OS Linux tiene asociado el Template App Zabbix Agent.&lt;br /&gt;
 Una '''base de datos unificada''' es una base de datos de tiempo real junto a  una base de datos de replica&lt;br /&gt;
&lt;br /&gt;
====== Importar templates======&lt;br /&gt;
&lt;br /&gt;
Las plantillas propias de '''md'''tel se encuentran en la ruta &amp;quot;'''/usr/src/nimitz/archivos'''&amp;quot; y empiezan con el nombre de &amp;quot;TemplateXXX.xml&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 ls /usr/src/nimitz/archivos | grep Template&lt;br /&gt;
 '''Template DRBD.xml'''&lt;br /&gt;
 '''Template motorSal.xml'''&lt;br /&gt;
 '''Templates Vivait-Suite_GW.xml'''&lt;br /&gt;
 '''Templates Vivait-Suite.xml'''&lt;br /&gt;
 '''Template Vivait-Call Asterisk.xml'''&lt;br /&gt;
 '''Template Vivait-Call bdCentral.xml'''&lt;br /&gt;
 '''Template Vivait-Call bdNodo.xml'''&lt;br /&gt;
 '''Template Vivait-Call cambiarPerfil_Cal.xml'''&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La importación se realizara una vez a través de la web, no hace falta desde el servidor Zabbix, puede ser en cualquier  computadora con acceso a la interfaz web de Zabbix.&lt;br /&gt;
&lt;br /&gt;
[[File:ImportarTemplates.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
Hay opciones varias opciones a elegir para importación de templates, pero podemos dejar por defecto las señaladas y pulsar el botón &amp;quot;import&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Configuración para un primer funcionamiento de Zabbix===&lt;br /&gt;
Se describe una básica configuracion de Zabbix para cualquier equipo que utilice Windows o linux. Pues  mediante la definición de hosts, items, triggers y acciones, Zabbix permite efectuar un monitoreo efectivo de plataformas IT heterogéneas. &lt;br /&gt;
&lt;br /&gt;
====Configuración de los equipost (host) para la monitorización====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''': Tenga en cuenta que debe de estar previamente configurado el agente Zabbix del &lt;br /&gt;
 dispositivo a ser monitorizado apuntando a la IP del &amp;quot;Servidor Zabbix&amp;quot;.&lt;br /&gt;
|}&lt;br /&gt;
Existen dos tipos de host:&lt;br /&gt;
* '''Host físico''': donde la dirección de red que registramos en Zabbix, corresponde al dispositivo que deseamos monitorizar.&lt;br /&gt;
* '''Host virtual''': es una dirección IP virtual, que puede relacionarse con un servidor Web, clusters, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:CreacionHost.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
﻿Las opciones basicas para configurar un host son las siguientes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center ;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Host Name'''&lt;br /&gt;
|  | Definir un nombre para el host.&lt;br /&gt;
||Se puede utilizar números, letras, espacios y guiones bajos están permitidos.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Visible Name'''&lt;br /&gt;
|  | Identificar con un nombre, la maquina a la que se refiere el host.&lt;br /&gt;
||Si no tiene valor, se mostrara como nombre &amp;quot;Host Name&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Groups'''&lt;br /&gt;
|  | Seleccionar al grupo de host que pertence.Seleccione uno o varios grupos de la caja derecha.&lt;br /&gt;
|| Los valores que puede seleccionar por defecto:&lt;br /&gt;
Discoverd hosts.&lt;br /&gt;
&lt;br /&gt;
Switches.&lt;br /&gt;
&lt;br /&gt;
Templates.&lt;br /&gt;
&lt;br /&gt;
Templates MDtel.&lt;br /&gt;
&lt;br /&gt;
Zabbix servers.&lt;br /&gt;
&lt;br /&gt;
Linux Servers.&lt;br /&gt;
&lt;br /&gt;
Hypervisors.&lt;br /&gt;
&lt;br /&gt;
Virtual machines.&lt;br /&gt;
&lt;br /&gt;
O crear uno nuevo en '''New group'''.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Agent interfaces'''&lt;br /&gt;
|  |Se recomienda usar una dirección IP, en vez de un nombre de la maquina para resolver por un servidor de DNS que puede fallar.&lt;br /&gt;
|  | 10050 por defecto&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cuando termine, haga clic en nel boton &amp;quot;Save&amp;quot;.  Su nuevo &amp;quot;Host&amp;quot; debe ser visible en la lista de &amp;quot;Host registrados&amp;quot;.Despues el zabbix, intentara configurarse el zabbix para conectarse a la IP.... cada x tiempo hace un barrido. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Comprobación de disponibilidad del host=====&lt;br /&gt;
Para saber si todo esta bien debemos ver la Z de disponibilidad.   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:EstadosZHost.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Indicacion de los colores del icono Z:&lt;br /&gt;
&lt;br /&gt;
* Si el icono Z en la columna de disponibilidad es de color rojo, indica que hay un error en la comunicación - mueva el cursor del ratón sobre él para ver el mensaje de error. &lt;br /&gt;
&lt;br /&gt;
* Si el icono es gris, significa que esta en proceso de comunicación con el &amp;quot;Agente Zabbix&amp;quot;. Compruebe que el servidor Zabbix está en marcha, y pruebe a actualizar la página más tarde.  El tiempo estimado para revisar si existe problemas es de 5 minutos.&lt;br /&gt;
&lt;br /&gt;
* Si el icono es verde, esta funcionando correctamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Indicar que plantilla(template) tendra el host [opcional]====&lt;br /&gt;
Tras [[#Importar templates |importar templates]] nos dirigimos al host ya configurado, y en su pestaña de templates pulsamos &amp;quot;add&amp;quot; y añadimos la plantilla/s adecuadas.&lt;br /&gt;
&lt;br /&gt;
====Asignar items al host ====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 '''Nota''':Un host puede tener un ITEM sin necesitad de tener template.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Todos lo ITEMS se agrupan por HOST, esto significa que cada HOST tiene sus propios &amp;quot;Módulos que recogen datos del Host&amp;quot;.   Para agregar un nuevo módulo vamos a &amp;quot;Configuration → Hosts&amp;quot; y localizamos el &amp;quot;Host&amp;quot; al cual queremos agregarle un nuevo &amp;quot;Item&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:CrearItemEjemplo.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
Parametros o campos a rellenar para una configuración básica :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center ;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Name'''&lt;br /&gt;
|  | Definir un nombre para el item.  Este nombre va a ser nuestro identificador para todas la gestiones en donde lo involucremos como el caso de Triggers.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Type'''&lt;br /&gt;
|| Indicar de que entidad queremos recibir informacion.&lt;br /&gt;
||Puede ser al &amp;quot;Agente Zabbix&amp;quot; o a el Hardware como impresoras, switch o routers.   &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Key'''&lt;br /&gt;
|  | los &amp;quot;Items&amp;quot; utilizan &amp;quot;Key&amp;quot; que son parámetros de Zabbix.  Los &amp;quot;Key&amp;quot; nos permiten indicar específicamente que tipo de información vamos a solicitara a la entidad. Se puede considerar también como el nombre de alguna aplicación.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''host interface'''&lt;br /&gt;
|  |Es la direccion de red del servidor zabbix (puede ser uno o mas)&lt;br /&gt;
|  | &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Units'''&lt;br /&gt;
|  |Es la dirección de red del servidor zabbix (puede ser uno o mas)&lt;br /&gt;
|  | &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Type of information'''&lt;br /&gt;
|  |Tipo de unidades con el que mostrar Zabbix el valor segundos, minutos, euros,....&lt;br /&gt;
|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cuando termine, haga clic en Guardar.   El nuevo elemento debe aparecer en la ITEMLIST. &lt;br /&gt;
Para mas informacion [[http://entation/1.8/manual/config/items#zabbix_agent. ver documentación Zabbix]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Ver la información recolectada por el item =====&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;small&amp;gt;'''Nota:''' Normalmente para ver la información lo encontraremos en &amp;quot;Monitoring → Latest data&amp;quot;,luego &lt;br /&gt;
 clic en el signo &amp;quot;+&amp;quot; en &amp;quot;other&amp;quot; siempre que no pertenezca a una aplicación. &lt;br /&gt;
 En caso contrario, estará bajo el nombre de la aplicación.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Después de definir el &amp;quot;Item&amp;quot; vamos a revisar la información que esta recolectando.  .  La información comenzará a ser recolectada según el tiempo que le indicamos en el &amp;quot;Item&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:VerInfoITEM.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
La espera para recibir la información varía dependiendo del tiempo de recolección del item, la mayoría suele ser aproximadamente al minuto de generar el &amp;quot;Item&amp;quot;. Zabbix le ofrece la opción de visualizar la información en forma gráfica (sencilla).  En el &amp;quot;Item&amp;quot; en lista haga clic en la columna &amp;quot;History - Graph&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:VIsualGraficaValorItem.png|center|750px]]&lt;br /&gt;
Si en un caso usted no observa información le recomendamos:&lt;br /&gt;
  &lt;br /&gt;
* Ingrese al &amp;quot;Item&amp;quot; y revise que la información del &amp;quot;Key&amp;quot; este igual al ejemplo &amp;quot;system.cpu.load&amp;quot; &lt;br /&gt;
* Verifique que el agente este funcionando en el &amp;quot;Servidor a ser monitoreado&amp;quot; y que &amp;quot;El Servidor recolector Zabbix&amp;quot; este funcionando. &lt;br /&gt;
* El icono &amp;quot;Z&amp;quot; en el host debe estar en color verde. &lt;br /&gt;
* Asegure que esta monitoreando el servidor que le agregó este &amp;quot;Item&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Configurar los Triggers para los host====&lt;br /&gt;
A partir de la información que captura los agentes , el servidor de Zabbix comienza a efectuar la recolección de estos items en la base de datos. Con esto se tiene un registro histórico de tales mediciones, que pueden ser tan simples como un simple ping hasta datos de uso de disco, memoria, cpu, etc.&lt;br /&gt;
A partir de los datos que se reciben de los agentes lo que sigue es definir y configurar Triggers, que son evaluaciones que hace Zabix de estos datos para determinar la existencia de un Problema en un dispositivo.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 Nota: Un trigger necesita una accion, que indica que hacer cuando se activa el trigger.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un trigger(disparador) es un tipo de reacción ante unas medidas, como un disparador en el que si pasa algo se activa. Los Trigger en Zabbix son módulos que creamos a uno o múltiples &amp;quot;Items&amp;quot; para evaluar o comparar los valores recolectados por los &amp;quot;Items&amp;quot; con condiciones que nosotros definamos.  Las condiciones son de tipo aritmético y lógico.&lt;br /&gt;
&lt;br /&gt;
Para configurar un &amp;quot;Trigger o Disparador&amp;quot; seleccionamos &amp;quot;Configuration → Hosts&amp;quot; localizamos el &amp;quot;Host&amp;quot; de ejemplo que creamos y luego hacemos clic en &amp;quot;Trigger&amp;quot;, después haga clic en &amp;quot;Create Trigger&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Parametros o campos a rellenar para una configuración básica :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; border: none;&amp;quot;&lt;br /&gt;
! align=center ;border-top:0.05pt solid #000000;border-bottom:0.05pt solid #000000;border-left:0.05pt solid #000000;border-right:none;padding:0cm;color:#ffffff;&amp;quot; | '''''Campos''''' &lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Explicación'''''&lt;br /&gt;
! align=center ;border:0.05pt solid #000000;padding:0cm;color:#ffffff;&amp;quot; | '''''Valores posibles'''''&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Name'''&lt;br /&gt;
|  | Definir un nombre para el trigger.  Este nombre va a ser nuestro identificador para todas la gestiones en donde lo involucremos como el caso de los eventos.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Expression'''&lt;br /&gt;
||  Hay que indicar para que medida se crea (item) y sus funciones con los parametros adecuados. '''''Recomendación usar expression constructor que pedirá siempre al crearlo, para que item es y sus funciones...'''''&lt;br /&gt;
||Ejemplo: {New host:system.cpu.load.avg(180)}&amp;gt;2 &lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Key'''&lt;br /&gt;
|  | los &amp;quot;Items&amp;quot; utilizan &amp;quot;Key&amp;quot; que son parámetros de Zabbix.  Los &amp;quot;Key&amp;quot; nos permiten indicar específicamente que tipo de información vamos a solicitara a la entidad. Se puede considerar tambien como el nombre de alguna aplicacion.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Descripción'''&lt;br /&gt;
|  | Una descripción breve sobre el trigger.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| font-weight: bold;&amp;quot; | '''Severity'''&lt;br /&gt;
|  | everidad distinguida por colores,&lt;br /&gt;
|| No classified&lt;br /&gt;
 Information&lt;br /&gt;
 Warning&lt;br /&gt;
 Average&lt;br /&gt;
 High&lt;br /&gt;
 Disaster&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Comprobar el estado del trigger =====&lt;br /&gt;
Podemos ver el estado del &amp;quot;Trigger&amp;quot; en &amp;quot;Monitoring → Triggers&amp;quot;.El  color en caso de que se active depende de la severidad definida. Por ejemplo,  si el &amp;quot;Trigger&amp;quot; esta en color verde indica que el resultado de la métrica se mantiene por debajo de la condición que indicamos.  Por el contrario si el resultado esta &amp;quot;sobre lo indicado&amp;quot; su color sera rojo.&lt;br /&gt;
&lt;br /&gt;
[[File:EstadoTrigger.png|center|750px]]&lt;br /&gt;
&lt;br /&gt;
====Asociar un Action al trigger====&lt;br /&gt;
&lt;br /&gt;
Una action(acción) sirve para configurar un mensaje de alerta o una accion para Zabbix, ante un problema. Hay varias formas de gestionar un problema a través de una acción:&lt;br /&gt;
&lt;br /&gt;
# A través de mensajes simples, alertando al instante.&lt;br /&gt;
# Escalar los mensajes hacia el jefe y/o otros grupos.&lt;br /&gt;
# Ejecución de commandos remotos.&lt;br /&gt;
# Notificaciones repetidas hasta que se resuelve el problema.&lt;br /&gt;
# Notificaciones y comandos retardados.&lt;br /&gt;
# Escenario complejo, la combinación de todo lo anterior.&lt;br /&gt;
&lt;br /&gt;
Para crear una configuración en &amp;quot;Configuration-Actions&amp;quot;. La explicación esta en la [[ https://www.zabbix.com/documentation/2.0/manual/config/notifications/action documentación de Zabbix]].&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integraciones con servicios externos ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Presencia con Openfire ===&lt;br /&gt;
'''''VIVA'''''it se integra con servidor XMPP Openfire en su versión 3.10.2 (última probada)&lt;br /&gt;
&lt;br /&gt;
Además del servidor, es necesario instalar un plugin de integración con asterisk 13, denominado &amp;quot;asterisk IM&amp;quot;, versión 1.4.1&lt;br /&gt;
&lt;br /&gt;
La instalación del servidor Openfire es una instalación estándar, realizada de paquete&lt;br /&gt;
&lt;br /&gt;
La instalación del plugin es un &amp;quot;jar&amp;quot; que se carga desde la pagina de plugins de openfire&lt;br /&gt;
&lt;br /&gt;
Con esto conseguiremos comunicar asterisk y OPenfire de manera que:&lt;br /&gt;
*Los estados telefónicos de una extensión '''''VIVA'''''it  se reflejen en Openfire&lt;br /&gt;
*Poder marcar desde los clientes de IM instalados en los puestos&lt;br /&gt;
*Ver en el cliente llamadas entrantes al teléfono&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;Enlaces de interes:&amp;lt;/big&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
[http://www.igniterealtime.org/projects/openfire/ Página proyecto openfire]&lt;br /&gt;
&lt;br /&gt;
[https://community.igniterealtime.org/thread/56076 Página proyecto &amp;quot;asterisk IM&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reuniones virtuales con Openmeetings ===&lt;br /&gt;
'''OpenMeetings''' es un sistema de vídeo web-conferencia en tiempo real. Usando recursos como audio (micrófono), vídeo (cámara web), posibilidad de subir y convertir presentaciones (en PDF , PPT o ODP que se convierten a Flash), compartición de la pantalla de tu ordenador, o pizarra digital compartida, panel de administración, posibilidad de grabar las sesiones… y completo soporte multiplataforma, es decir, que aparte de poder grabar las sesiones, se puede compartir un escritorio también desde una máquina Linux.&lt;br /&gt;
&lt;br /&gt;
Para instalar '''OpenMettings''' debe seguir el [[http://vivait-wiki.mdtel.net/wiki/vivait/index.php/Manuales_de_instalaci%C3%B3n#Instalaci.C3.B3n_de_Openmeetings | manual de Instalación de Openmeetings]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[http://vivait-wiki.MDtel.net/wiki/vivait/index.php/Manual_de_operaci%C3%B3n_plataforma_VIVAit | Volver al índice]] &lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:VIVAit Suite]]&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Howto%27s&amp;diff=5877</id>
		<title>Howto's</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Howto%27s&amp;diff=5877"/>
		<updated>2017-04-26T06:12:08Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* Integración con Outlook */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!! VIVAit Call&lt;br /&gt;
VIVAit Suite&lt;br /&gt;
&lt;br /&gt;
VIVAit Fax&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Como parar asterisk ==&lt;br /&gt;
En situaciones límite en el que es necesario parar el asterisk y volver a arrancarlo hay que realizar los siguientes pasos:&lt;br /&gt;
&lt;br /&gt;
 Entrar en la consola de asterisk e introducir el comando core stop now&lt;br /&gt;
&lt;br /&gt;
 Si esto no funciona, tendremos que matar el proceso a mano. Esto es, primero el safe asterisk y luego el asterisk mediante el comando &lt;br /&gt;
 kill -9 nºPID&lt;br /&gt;
 &lt;br /&gt;
 Tras estos pasos, volveremos a arrancar el servicio asterisk mediante /etc/init.d/asterisk start&lt;br /&gt;
&lt;br /&gt;
== Como configurar la megafonía ==&lt;br /&gt;
&lt;br /&gt;
El servicio de megafonía se basa en el protocolo multicast.&lt;br /&gt;
&lt;br /&gt;
Para configurar la megafonía tenemos que activar en los teléfonos que para que estén &amp;quot;escuchando&amp;quot; en una dirección multicast y tener un emisor en esa dirección multicast.&lt;br /&gt;
&lt;br /&gt;
Los teléfonos suelen tener en su configuración un apartado para configurar el multicast. Por ejemplo en los yealink está en la pestaña directory sección multicast IP.&lt;br /&gt;
&lt;br /&gt;
En los teléfonos se puede configurar manualmente o incluirlo en las plantillas de aprovisionamiento.&lt;br /&gt;
&lt;br /&gt;
El asterisk tiene un canal para hacer multicast. Este canal es MulticastRTP.&lt;br /&gt;
&lt;br /&gt;
Para esto podemos crear un VDN que contenga la siguiente línea. (en el ejemplo la dirección multicast es 239.0.126.1 y el puerto es el 10001).&lt;br /&gt;
&lt;br /&gt;
 [Cen_VDN_90000]&lt;br /&gt;
 exten =&amp;gt; _X.,1,NoOp(MDVDN_90000*****EXTEN=${EXTEN}**CID=${CALLERID(NUM)}**UCID=${UCID}*)&lt;br /&gt;
  same =&amp;gt;     n,Answer&lt;br /&gt;
  same =&amp;gt;     n,Dial(MulticastRTP/basic/239.0.126.1:10001)&lt;br /&gt;
 include =&amp;gt; Cen_finLlamada&lt;br /&gt;
&lt;br /&gt;
== Como configurar el candado ==&lt;br /&gt;
El candado permite prohibir temporalmente la posibilidad de realizar llamadas hacia fuera. Sí se pueden seguir haciendo llamadas a extensiones fijas de la plataforma, es decir, llamadas sin coste.&lt;br /&gt;
&lt;br /&gt;
Para configurar dicha funcionalidad basta con crear extensiones con la categoría mas restrictiva posible y habilitar la movilidad, con lo que la extensión solo tendrá &amp;quot;permisos&amp;quot; para realizar llamadas internas.&lt;br /&gt;
&lt;br /&gt;
Para permitir llamadas externas solo hay que &amp;quot;mover&amp;quot; a un usuario con categoría suficiente a la extensión deseada.&lt;br /&gt;
== Como crear un grupo de captura y que se vea en cada teléfono el número que llama ==&lt;br /&gt;
&lt;br /&gt;
'''ATENCIÓN: SE CREAN CONFIGURACIONES NO REFLEJADAS EN PORTAL DE ADMINISTRACIÓN'''&lt;br /&gt;
&lt;br /&gt;
Para la simulación de grupos de captura y conseguir que todos los terminales vean el ANI del llamante:&lt;br /&gt;
&lt;br /&gt;
- Hacen falta teléfonos con dos líneas&lt;br /&gt;
&lt;br /&gt;
- Cada teléfono del grupo tiene en la línea 1 su extensión habitual (por ejemplo 40000)&lt;br /&gt;
&lt;br /&gt;
- Además, en el fichero &amp;quot;sip_Estatico.conf&amp;quot;, creamos una segunda extensión para cada teléfono, que le ocupará la segunda línea (por ejemplo 42000)&lt;br /&gt;
&lt;br /&gt;
- En esta segunda linea ponemos que cuando se llame tenga otro tono de llamada (un beep o nada...) que se asemeje en funcionamiento al de un mensaje de llamada en otra extension de mi grupo de captura&lt;br /&gt;
&lt;br /&gt;
- Se ha creado una variable global por cada teléfono en el fichero de variables &amp;quot;ext_MDtel_Particular.conf&amp;quot; de nombre EXTxxxxx (por ejemplo EXT40000); esa variable contiene las otras extensiones virtuales del grupo&lt;br /&gt;
por ejemplo EXT40000=&amp;gt;SIP/42001&amp;amp;SIP/42005&lt;br /&gt;
&lt;br /&gt;
- Hemos creado en el dialplan programación para que cuando exista esa variable global se añada a la marcación el contenido&lt;br /&gt;
&lt;br /&gt;
== Como crear supletorios ==&lt;br /&gt;
&lt;br /&gt;
'''ATENCIÓN: SE CREAN CONFIGURACIONES NO REFLEJADAS EN PORTAL DE ADMINISTRACIÓN'''&lt;br /&gt;
&lt;br /&gt;
Igual que el caso anterior pero en la variable ponemos números reales. Debido a un bug en el enrutador, que no devuelve la variable R_PARA, en el fichero ext_MARCAR_Extension.conf hay que sustituir la siguiente linea:&lt;br /&gt;
 &lt;br /&gt;
 ;same =&amp;gt;                   n,ExecIf($[&amp;quot;${EXT${R_PARA}}&amp;quot;=&amp;quot;&amp;quot;]?NoOp:Set(ENR_CADMARCAR=${ENR_CADMARCAR}&amp;amp;${EXT${R_PARA}}))&lt;br /&gt;
Por esta otra:&lt;br /&gt;
  same =&amp;gt;                   n,ExecIf($[&amp;quot;${EXT${R_DEST_${ENR_RUTA_CAD}}}&amp;quot;=&amp;quot;&amp;quot;]?NoOp:Set(ENR_CADMARCAR=${ENR_CADMARCAR}&amp;amp;${EXT${R_DEST_${ENR_RUTA_CAD}}}))&lt;br /&gt;
ATENCIÓN !!! en las llamadas salientes cada uno presenta su número&lt;br /&gt;
&lt;br /&gt;
Para emplear números externos en los supletorios hay que poner, al crear la variable que hemos explicado en el apartado anterior en el ext_MDtel_Particular.conf: &lt;br /&gt;
&lt;br /&gt;
 EXT335=&amp;gt;SIP/0999999999@Trunk_Movil ;En este caso suena en la ext 335 y en el móvil 999999999&lt;br /&gt;
&lt;br /&gt;
== Generación de llamada automática ==&lt;br /&gt;
&lt;br /&gt;
Para activar la funcionalidad es necesario lo siguiente: &lt;br /&gt;
&lt;br /&gt;
* Definir una variable ID_LISTA_LLAMAME con el ID de la lista que se va a usar para generar la llamada. Cuando se cree la lista hay que asegurarse que el campo &amp;quot;Nº segundos límite&amp;quot; tiene un valor lo suficientemente amplio para evitar que la llamada caduque antes de ejecutarse.&lt;br /&gt;
&lt;br /&gt;
* Establecer un timeout para la cola (en el Gosub Cen_Sub_GrupoACD se indica justo después de ${COLA})&lt;br /&gt;
&lt;br /&gt;
* Llamar a la función de MySQL ACD_FUNC_LLAMAME_CREAR a través de MDintz&lt;br /&gt;
&lt;br /&gt;
* En la función se usan los siguientes elementos variables:&lt;br /&gt;
&lt;br /&gt;
        ${ID_LISTA_LLAMAME}: Definida antes clienteTOCola: &lt;br /&gt;
        Nombre del cliente. Al no tener ningún nombre, se usa un denominador genérico&lt;br /&gt;
        ${CALLERID}: Número llamante, donde se dirigirá la llamada.&lt;br /&gt;
&lt;br /&gt;
Ejemplo:&lt;br /&gt;
&lt;br /&gt;
 [Cen_VDN_99001]&lt;br /&gt;
 ;----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 ;----------------------- VDN 99001 ------------------------------------------------------------&lt;br /&gt;
 ;----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 exten =&amp;gt; _X.,1,NoOp(MDENTGW_99001*****EXTEN=${EXTEN}**CID=${CALLERID(NUM)}**UCID=${UCID}*)&lt;br /&gt;
  same =&amp;gt;     n,Set(__COLA=89001)&lt;br /&gt;
  same =&amp;gt;     n,Set(ctiDiriTrato=0)&lt;br /&gt;
  same =&amp;gt;     n,Set(ctiDiriInterface=)&lt;br /&gt;
  same =&amp;gt;     n,Set(ID_LISTA_LLAMAME=2)&lt;br /&gt;
  same =&amp;gt;     n(cola),Gosub(Cen_Sub_GrupoACD,${EXTEN},1(${COLA},10,,Si,))&lt;br /&gt;
  same =&amp;gt;     n,GotoIf($[&amp;quot;${QUEUESTATUS}&amp;quot;!=&amp;quot;TIMEOUT&amp;quot;]?colgar)&lt;br /&gt;
  same =&amp;gt;     n,MDintz(nimitz|bd|sqlDato|select ACD_FUNC_LLAMAME_CREAR(CURRENT_TIMESTAMP\,${ID_LISTA_LLAMAME}\,&amp;quot;&amp;quot;\,&amp;quot;clienteTOCola&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,1\,&amp;quot;&amp;quot;\,&amp;quot;${CALLERID(NUM)}&amp;quot;\,1\,3\,1\, \,0\,0\,0\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;))&lt;br /&gt;
  same =&amp;gt;     n,GotoIf($[&amp;quot;${MDintzRes}&amp;quot;=&amp;quot;OK&amp;quot;]?colgar)&lt;br /&gt;
  same =&amp;gt;     n,NoOp(ACD_FUNC_LLAMAME_CREAR ${MDintzRes})&lt;br /&gt;
  same =&amp;gt;     n(colgar),Hangup&lt;br /&gt;
&lt;br /&gt;
== Como &amp;quot;dar paso&amp;quot; a través de un enlace exterior si hay una llamada para una extensión creada en el sistema pero no registrada ==&lt;br /&gt;
&lt;br /&gt;
Este procedimiento es de utilidad en procesos de migración, en los que recibimos las llamadas de la RTC, nos las quedamos si la extensión ya está registrada en VIVAit y la mandamos hacia la plataforma a migrar si aún sigue migrada ahí&lt;br /&gt;
&lt;br /&gt;
El procedimiento es:&lt;br /&gt;
* Activar desvío por no contesta en la extensión (portal de administración - VIVAit Call - Dispositivos - Extensiones - campo &amp;quot;Desvio no contesta&amp;quot;, indicando como destino un prefijo (por ejemplo &amp;quot;99&amp;quot;) seguido de la extensión destino&lt;br /&gt;
&lt;br /&gt;
* Creamos una preruta en vivait-call - rutas -prerutas con origen &amp;quot;99&amp;quot;, le quitamos el prefijo en campo &amp;quot;Destino saliente 1&amp;quot; (valor -2) e indicamos en campo &amp;quot;Tipo destino sal. 1&amp;quot; como &amp;quot;Ruta externa&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Debera existir una ruta externa para esa numeración&lt;br /&gt;
&lt;br /&gt;
== Comprobación de versiones de elementos de la plataforma ==&lt;br /&gt;
&lt;br /&gt;
'''Aplicaciones'''&lt;br /&gt;
:* Botón derecho del ratón, Acerca De&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Portales'''&lt;br /&gt;
:* En el Vivait-Call, en la pantalla de inicio de sesión pone el número de versión del portal.&lt;br /&gt;
:* Tanto en el Monitor como en el Tracker no se puede saber.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Demonios'''&lt;br /&gt;
:* Mediante el comando nc localhost &amp;lt;Puerto demonio&amp;gt;. Ejemplo:&lt;br /&gt;
::nc localhost 1120&lt;br /&gt;
::motorSal sis ver='03.02.00' inic='20150427 123457' alarmas=0 ultAlar='00000000000000'&lt;br /&gt;
::motorSal gmp msj=253/256 buf=256/256 tarea=99/102&lt;br /&gt;
::motorSal tmp uptime=12624 (0d 3h 30m 24s)&lt;br /&gt;
::motorSal mtr mys=1 ocup=0% planif=13(0) intento=11(0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::Ejemplos puertos demonios:&lt;br /&gt;
:::*1111: vivait-cti&lt;br /&gt;
:::*1112: myAcdSuperv&lt;br /&gt;
:::*1113: recordNodo&lt;br /&gt;
:::*1114: recordCentral&lt;br /&gt;
:::*1115: intz-nimitz&lt;br /&gt;
:::*1120: motorSal&lt;br /&gt;
:::*1123: phoneprov-tftp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Base de datos'''&lt;br /&gt;
:* No se puede saber la versión a no ser que se comparen esquemáticos con los subidos en el redmine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:administrador]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:VIVAit Suite]]&lt;br /&gt;
[[Category:VIVAit Fax]]&lt;br /&gt;
&lt;br /&gt;
== Añadir Auto-Answer a la cabecera SIP ==&lt;br /&gt;
&lt;br /&gt;
Si queremos que un teléfono tenga autoanswer:&lt;br /&gt;
* En el peer poner: headeraa=Call-Info: answer-after=0, esto tiene que ir en la plantilla de la extensión o como campo en la extensión. Dependiendo del terminal que utilicemos el valor de este campo variará:&lt;br /&gt;
&lt;br /&gt;
    Aastra: Alert-Info: info=alert-autoanswer&lt;br /&gt;
    Grandstream: Call-Info: answer-after=0&lt;br /&gt;
    Linksys: Call-Info:\;Answer-After=0&lt;br /&gt;
    Polycom: Alert-Info: Ring Answer&lt;br /&gt;
    Snom: Call-Info: answer-after=0&lt;br /&gt;
    Snom (nuevo firmware): Call-Info: &amp;lt;sip:IP&amp;gt;\;answer-after=0&lt;br /&gt;
    Yealink: Call-Info: answer-after=0&lt;br /&gt;
&lt;br /&gt;
* Luego en el diaplan añadir lo siguiente: exten =&amp;gt; _[*#%0-9a-zA-Z].,n,set(__AutoAnswer=AA) (Esto tendremos que ver como ponerlo de manera automática). De manera provisional si queremos que sea para llamadas salientes pondremos esto en el ext_n_marcador.conf. Si queremos que sea llamadas entrantes lo pondremos en ext_n_MARCAR.conf&lt;br /&gt;
&lt;br /&gt;
== Configuración de los portales web en HTTPS ==&lt;br /&gt;
&lt;br /&gt;
Desde /usr/lib/jvm/default-java/bin/ ejecutamos:&lt;br /&gt;
&lt;br /&gt;
keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/share/tomcat7/.keystore&lt;br /&gt;
&lt;br /&gt;
Escriba la contraseña del almacén de claves: (t0mc4t)&lt;br /&gt;
 Volver a escribir la contraseña nueva: (t0mc4t)&lt;br /&gt;
 *Personalizar para el cliente&lt;br /&gt;
 ¿Cuáles son su nombre y su apellido?&lt;br /&gt;
 [Unknown]: VIVAit Suite&lt;br /&gt;
 ¿Cuál es el nombre de su unidad de organización?&lt;br /&gt;
 [Unknown]: Desarrollo&lt;br /&gt;
 ¿Cuál es el nombre de su organización?&lt;br /&gt;
 [Unknown]: MDtel&lt;br /&gt;
 ¿Cuál es el nombre de su ciudad o localidad?&lt;br /&gt;
 [Unknown]: Madrid&lt;br /&gt;
 ¿Cuál es el nombre de su estado o provincia?&lt;br /&gt;
 [Unknown]: Madrid&lt;br /&gt;
 ¿Cuál es el código de país de dos letras de la unidad?&lt;br /&gt;
 [Unknown]: es&lt;br /&gt;
 ¿Es correcto CN=VIVAit Suite, OU=Desarrollo, O=MDtel, L=es, ST=Madrid,&lt;br /&gt;
 C=Unknown?&lt;br /&gt;
 [no]: si&lt;br /&gt;
 Escriba la contraseña clave para &amp;lt;tomcat&amp;gt;&lt;br /&gt;
 (INTRO si es la misma contraseña que la del almacén de claves)&lt;br /&gt;
&lt;br /&gt;
nano /var/lib/tomcat7/conf/server.xml&lt;br /&gt;
&lt;br /&gt;
Descomentar la línea:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; protocol=&amp;quot;HTTP/1.1&amp;quot; SSLEnabled=&amp;quot;true&amp;quot; &lt;br /&gt;
&lt;br /&gt;
 maxThreads=&amp;quot;150&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Añadir después de sslProtocol=&amp;quot;TLS&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 keystorePass=&amp;quot;t0mc4t&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Crear un motivo desconexión para el Supervisor en '''''VIVA'''''it Suite==&lt;br /&gt;
&lt;br /&gt;
Para crear motivos de desconexión adicionales a los que ya ofrece la aplicación tendremos que añadir una nueva entrada en la BD. El comando que emplearíamos seria el siguiente:&lt;br /&gt;
&lt;br /&gt;
INSERT INTO `nimitz`.`COM_ENUMERADOS` (`ID`, `C_NOMBRE`, `C_TEXTO`, `N_POSICION`, `C_OBSERV`) VALUES(1000700, 'TSesAgMotDesc', 'Nombre Motivo de desconexión', 60, ' ');&lt;br /&gt;
&lt;br /&gt;
El ID debe ser mayor o igual a 1000700 y menor a 1000800. El N_POSICION debe ser mayor o igual a 60 y menor que 100.&lt;br /&gt;
&lt;br /&gt;
== Envío de variables CTI al ACD ante un GW con asterisk 13==&lt;br /&gt;
Dado que para un GW con asterisk 13 un nodo ACD es considerado un elemento externo, por defecto, no se envían variables CTI (UCID, ...). En una fututa versión del nodo ACD, ya no se considerará un elemento externo por lo que si se enviarán dichas variables. Para lograrlo en la versión 3.0 de la plataforma Vivait hay que modificar el fichero ext_MARCAR_Externo_Particular.conf del GW. Deberemos poner la siguiente linea.&lt;br /&gt;
&lt;br /&gt;
 same =&amp;gt; n,Macro(escribirDatosCti)&lt;br /&gt;
&lt;br /&gt;
== Script para cambio automático de claves en salas de conferencia estáticas ==&lt;br /&gt;
&lt;br /&gt;
Para cambiar la clave de las salas de conferencias crear un script llamado cambioClaveConfe.sh con el siguiente contenido:&lt;br /&gt;
	&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 CLAVE=$(shuf -i 1111-9999 -n 1)&lt;br /&gt;
 &lt;br /&gt;
 echo $CLAVE&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;update CEN_SALAS_CONFERENCIAS set C_PIN='$CLAVE' WHERE C_NOMBRE='$1'&amp;quot; | mysql -u nimitz -pivivanimitz nimitz&lt;br /&gt;
 &lt;br /&gt;
 FROM=sat@mdtel.es&lt;br /&gt;
 FECHA=`date +&amp;quot;%Y%m%d%H%M%S&amp;quot;`&lt;br /&gt;
 CLIENTE=&amp;lt;PONER EL CLIENTE&amp;gt;&lt;br /&gt;
 TO=&amp;lt;DESTINATARIOS&amp;gt;&lt;br /&gt;
 ASUNTO=&amp;quot;Nueva clave en sala $1&amp;quot;&lt;br /&gt;
 CUERPO=&amp;quot;La nueva clave para la sala $1 es: $CLAVE&amp;quot;&lt;br /&gt;
 /usr/sbin/sendmail -oi -t -v -f $FROM &amp;lt;&amp;lt;EOF&lt;br /&gt;
 From: $FROM&lt;br /&gt;
 To: $TO&lt;br /&gt;
 Bcc: $BCC&lt;br /&gt;
 Subject: $ASUNTO&lt;br /&gt;
 &lt;br /&gt;
 $CUERPO&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
El script cambiará la clave de la sala pasada por parámetro por una aleatoria de 4 dígitos y la enviará por correo a los &amp;lt;DESTINATARIOS&amp;gt; (direcciones de correo electrónico separadas por coma).&lt;br /&gt;
&lt;br /&gt;
Hay que crear una tarea en /etc/crontab añadiendo una linea como la siguiente:&lt;br /&gt;
 30 6	* * 7	root	cambioClaveConfe.sh 6173&lt;br /&gt;
&lt;br /&gt;
Esto ejecutará el script todos los domingos a las 6:30 horas cambiando la clave de la sala 6173. Añadir tantas linéas como salas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Monitorización en Zabbix de un trunk caído ==&lt;br /&gt;
Para monitorizar un o varios trunk por separado y saber el estado de cada uno es necesario lo siguiente: &lt;br /&gt;
&lt;br /&gt;
*Añadir el UserParameter adjunto que contiene el siguiente texto:&lt;br /&gt;
&lt;br /&gt;
 UserParameter=asterisk.trunkEstado[*],sudo /usr/sbin/asterisk -rx 'sip show peers' | grep  --text -i '$1' |  grep OK &amp;gt;/dev/null; if [ $? -eq 0 ]; then echo 1; else echo 0; fi&lt;br /&gt;
&lt;br /&gt;
*Añadir en el portal de zabbix un item por cada trunk. En el campo Key se pondrá &amp;quot;asterisk.trunkEstado[nombre_trunk]&amp;quot;, donde nombre_trunk es el nombre del trunk tal y como se ve en Asterisk.&lt;br /&gt;
[[File:zabbix_item_trunkEstado.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Crear un trigger que avise cuando el último valor sea 0. Por ejemplo:&lt;br /&gt;
 {corp-bdtr:asterisk.trunkEstado[PrePro-ACD].last()}=0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:zabbix_trigger_trunkEstado.png]]&lt;br /&gt;
&lt;br /&gt;
== Agendas en terminales Yealink ==&lt;br /&gt;
En la agenda se mostrará como nombre lo que contenga el campo CEN_AGENDAS.C_NOMBRE_MOSTRAR y como teléfono el indicado en CEN_AGENDAS_TELEFONOS.C_TELEFONO&lt;br /&gt;
Para hacer funcionar la agenda:&lt;br /&gt;
&lt;br /&gt;
*En el archivo de aprovisionamiento correspondiente (Yealink-XXXX-comun.cfg) establecer los siguientes parámetros:&lt;br /&gt;
&lt;br /&gt;
    remote_phonebook.data.1.url = http://&amp;lt;direc IP&amp;gt;/vivait-agenda/yealink/contactData1.xml &lt;br /&gt;
    remote_phonebook.data.1.name = NOMBRE DE LA AGENDA EN EL TELEFONO&lt;br /&gt;
&lt;br /&gt;
*En el archivo /etc/apache2/apache2.conf añadir tras el último Directory:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Directory /var/www/html/vivait-agenda/&amp;gt;&lt;br /&gt;
             AddType application/x-httpd-php .xml&lt;br /&gt;
             Options Indexes FollowSymLinks MultiViews&lt;br /&gt;
             AllowOverride None&lt;br /&gt;
             Order allow,deny&lt;br /&gt;
             allow from all&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Ejecutar el comando:&lt;br /&gt;
&lt;br /&gt;
    /etc/init.d/apache2 reload&lt;br /&gt;
&lt;br /&gt;
== Calendarios ==&lt;br /&gt;
&lt;br /&gt;
=== Enrutamiento inteligente ===&lt;br /&gt;
&lt;br /&gt;
Ante una llamada a un destino, si hay cita de ocupado en el calendario se desvia al número indicado en el campo &amp;quot;location&amp;quot; del calendario o a su buzon de voz si hay valor en dicho campo&lt;br /&gt;
&lt;br /&gt;
 same =&amp;gt; n,Set(CalendarBusy=${CALENDAR_BUSY(GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,Set(id=${CALENDAR_QUERY(GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,NoOP(hay ${CALENDAR_QUERY_RESULT(${id},getnum)} eventos)&lt;br /&gt;
 same =&amp;gt; n,Verbose(3,The state of GoogleCalendar is $&lt;br /&gt;
 {DEVICE_STATE(Calendar:GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,Set(CalendarLocation=${CALENDAR_QUERY_RESULT(GoogleCalendar,location)})&lt;br /&gt;
 same =&amp;gt; n,GotoIf($[&amp;quot;${CalendarBusy}&amp;quot;==&amp;quot;1&amp;quot;]?:conCategoria)&lt;br /&gt;
 same =&amp;gt; n,GotoIf($[&amp;quot;${CalendarLocation}&amp;quot;==&amp;quot;&amp;quot;]?buzon)&lt;br /&gt;
 same =&amp;gt; n,Goto(Cen_iniLlam,${CalendarLocation},1)&lt;br /&gt;
 same =&amp;gt; n(buzon),Playback(Particular/buzon)&lt;br /&gt;
 same =&amp;gt; n,Hangup&lt;br /&gt;
 same=&amp;gt; n(conCategoria),Goto(Cen_iniLlam,${EXTEN},1)&lt;br /&gt;
&lt;br /&gt;
=== Integración con Outlook ===&lt;br /&gt;
1.- Instalar Calldavsincronizer&lt;br /&gt;
&lt;br /&gt;
2.- Entrar en Synchronization Profiles en la pestaña Calldav Syncronizer        [[File:Syncronizer.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.- Añadir nuevo perfil (tecla +)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Nuevo.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A tener en cuenta:&lt;br /&gt;
&lt;br /&gt;
*Crear un nuevo “Outlook folder”, entendemos que es adecuado.&lt;br /&gt;
*Lo mejor es haber creado antes el calendario en el servidor.&lt;br /&gt;
*Dando al botón “Test or discover settings” se nos muestran todos los calendarios del servidor y elegimos el que queramos; en “elementos de la carpeta” diremos “elementos de calendario”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Calendario.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
== Uso de reloj hardware en nodos de procesamiento ==&lt;br /&gt;
&lt;br /&gt;
=== En nodo de procesamiento ACD ===&lt;br /&gt;
En un nodo de procesamiento ACD es obligatorio instalar dahdi y una tarjeta de primario para emplear reloj hardware, ya que el reloj software que va en el asterisk 1.4 es defectuoso.&lt;br /&gt;
Para configurarlo basta con instalar la tarjeta en el servidor, instalar dahdi y posteriormente ejecutar el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
 dahdi_cfg&lt;br /&gt;
&lt;br /&gt;
Este comando generaŕa el fichero /etc/dahdi/system.conf&lt;br /&gt;
&lt;br /&gt;
Para comprobar que el comando se ha ejecutado satisfactoriamente lo abriremos y tendrá que tener un formato semejante al siguiente ejemplo:&lt;br /&gt;
&lt;br /&gt;
 # Autogenerated by /usr/sbin/dahdi_genconf on Tue Oct 22 17:42:59 2013&lt;br /&gt;
 # If you edit this file and execute /usr/sbin/dahdi_genconf again,&lt;br /&gt;
 # your manual changes will be LOST.&lt;br /&gt;
 # Dahdi Configuration File&lt;br /&gt;
 #&lt;br /&gt;
 # This file is parsed by the Dahdi Configurator, dahdi_cfg&lt;br /&gt;
 #&lt;br /&gt;
 # Span 1: WCT1/0 &amp;quot;Digium Wildcard TE110P T1/E1 Card 0&amp;quot; HDB3/CCS/CRC4&lt;br /&gt;
 span=1,1,0,ccs,hdb3,crc4&lt;br /&gt;
 # termtype: te&lt;br /&gt;
 bchan=1-15,17-31&lt;br /&gt;
 dchan=16&lt;br /&gt;
 echocanceller=oslec,1-15,17-31&lt;br /&gt;
 # Global data&lt;br /&gt;
 loadzone        = es&lt;br /&gt;
 defaultzone     = es&lt;br /&gt;
&lt;br /&gt;
=== En nodo de procesamiento de corporativa ===&lt;br /&gt;
En un nodo de procesamiento de corporativa no obligatorio instalar dahdi y una tarjeta de primario para emplear reloj hardware, ya que el no se han detectado errores en el reloj por software. Sin embargo si instalamos dahdi y una tarjeta de primario para emplear reloj hardware, el sistema funcionará mejor.&lt;br /&gt;
Para configurarlo basta con instalar la tarjeta en el servidor, instalar dahdi y posteriormente ejecutar el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
 dahdi_cfg&lt;br /&gt;
&lt;br /&gt;
Este comando generaŕa el fichero /etc/dahdi/system.conf&lt;br /&gt;
&lt;br /&gt;
Para comprobar que el comando se ha ejecutado satisfactoriamente lo abriremos y tendrá que tener un formato semejante al siguiente ejemplo:&lt;br /&gt;
&lt;br /&gt;
 # Autogenerated by /usr/sbin/dahdi_genconf on Tue Oct 22 17:42:59 2013&lt;br /&gt;
 # If you edit this file and execute /usr/sbin/dahdi_genconf again,&lt;br /&gt;
 # your manual changes will be LOST.&lt;br /&gt;
 # Dahdi Configuration File&lt;br /&gt;
 #&lt;br /&gt;
 # This file is parsed by the Dahdi Configurator, dahdi_cfg&lt;br /&gt;
 #&lt;br /&gt;
 # Span 1: WCT1/0 &amp;quot;Digium Wildcard TE110P T1/E1 Card 0&amp;quot; HDB3/CCS/CRC4&lt;br /&gt;
 span=1,1,0,ccs,hdb3,crc4&lt;br /&gt;
 # termtype: te&lt;br /&gt;
 bchan=1-15,17-31&lt;br /&gt;
 dchan=16&lt;br /&gt;
 echocanceller=oslec,1-15,17-31&lt;br /&gt;
 # Global data&lt;br /&gt;
 loadzone        = es&lt;br /&gt;
 defaultzone     = es&lt;br /&gt;
&lt;br /&gt;
== Aprovisionamiento terminales Cisco ==&lt;br /&gt;
=== Configurar protocolo SIP TCP o UDP en terminal Cisco ===&lt;br /&gt;
&lt;br /&gt;
Configuración de terminal Cisco para para funcionar bajo TCP o UDP:&lt;br /&gt;
Modificar parámetro&lt;br /&gt;
 &amp;lt;transportLayerProtocol&amp;gt;X&amp;lt;/transportLayerProtocol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde X es:&lt;br /&gt;
    1: TCP&lt;br /&gt;
    2: UDP&lt;br /&gt;
    4: Valor por defecto del firmware (al menos en la última versión equivale a TCP)&lt;br /&gt;
&lt;br /&gt;
=== Habilitar/Deshabilitar llamada en espera en terminales Cisco ===&lt;br /&gt;
&lt;br /&gt;
En el fichero de aprovisionamiento del terminal añadiremos la siguiente linea&lt;br /&gt;
 &amp;lt;callWaiting&amp;gt;X&amp;lt;/callWaiting&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde X es:&lt;br /&gt;
   0=off but can be changed through the settings menu.&lt;br /&gt;
   1=on but can be changed through the settings menu.&lt;br /&gt;
   2=off and locked so it can't be changed through the settings menu.&lt;br /&gt;
   3=on and locked so it can't be changed through the settings menu.&lt;br /&gt;
&lt;br /&gt;
== Como configurar servicio DHCP en Ubuntu Linux ==&lt;br /&gt;
=== ¿Que es un servicio DHCP? ===&lt;br /&gt;
Un servidor Dynamic Host Configuration Protocol (DHCP) asigna dinámicamente las direcciones IP y otras configuraciones de red a otros terminales que están conectados a la red.&lt;br /&gt;
&lt;br /&gt;
=== Instalar un servicio DHCP ===&lt;br /&gt;
Para instalar el servidor de asignacion automatica de direccion IP ejecutamos el comando:&lt;br /&gt;
 sudo apt-get install isc-dhcp-server&lt;br /&gt;
&lt;br /&gt;
=== Configurando el servicio DHCP ===&lt;br /&gt;
Editamos el archivo /etc/dhcp/dhcpd.conf creando primero un backup del mismo:&lt;br /&gt;
 mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.original&lt;br /&gt;
 nano /etc/dhcp/dhcpd.conf&lt;br /&gt;
&lt;br /&gt;
El archivo debe quedar de una forma muy similar a esta:&lt;br /&gt;
 authoritative&lt;br /&gt;
 subnet  10.254.239.0 netmask 255.255.255.254&lt;br /&gt;
 {&lt;br /&gt;
 range dynamic-bootp  10.254.239.40 10.254.239.60;&lt;br /&gt;
 option domain-name-servers ns1.example.org, ns2.example.org;&lt;br /&gt;
 option domain-name &amp;quot;example.org&amp;quot;;&lt;br /&gt;
 option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org ;&lt;br /&gt;
 option broadcast-address 10.254.239.255;&lt;br /&gt;
 default-lease-time 3600;&lt;br /&gt;
 max-lease-time 7200;&lt;br /&gt;
 option option-150 10.254.239.25&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Donde los campos:&lt;br /&gt;
*subnet: Direccion de red&lt;br /&gt;
*netmask: Máscara de red&lt;br /&gt;
*range dynamic-bootp: Rango de IPs que va a proporcionar el DHCP&lt;br /&gt;
*option domain-name-servers: Direcciones IPs de los DNS&lt;br /&gt;
*option domain-name: Nombre de dominio&lt;br /&gt;
*option routers:IPs de las puertas de enlace&lt;br /&gt;
*option broadcast-address: Dirección de broadcast&lt;br /&gt;
*default-lease-time: Tiempo de concesión por defecto&lt;br /&gt;
*max-lease-time: Valor máximo del tiempo de concesión&lt;br /&gt;
*option option-150: IPs de los servidores TFTPs que tiene la red&lt;br /&gt;
&lt;br /&gt;
===  Reiniciamos el servicio ===&lt;br /&gt;
 service isc-dhcp-server restart&lt;br /&gt;
&lt;br /&gt;
=== Direcciones IP estáticas basadas en la MAC ===&lt;br /&gt;
Pueden conocerse las MAC de las máquinas conectadas a la red ejecutando el comando arp desde la terminal.&lt;br /&gt;
&lt;br /&gt;
 host ejemplo {&lt;br /&gt;
        hardware ethernet 00:0B:82:19:A8:04;&lt;br /&gt;
        option option-150 10.254.239.0;&lt;br /&gt;
 #      fixed-address 10.254.239.52;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Protocolo Skinny en VIVAit Call mediante uso de Chan-SCCP ==&lt;br /&gt;
=== Instalación de chan_sccp ===&lt;br /&gt;
*Copiar el fichero chan-sccp-4.2.1.1.tar.gz en el directorio donde estén los fuentes de Asterisk (normalmente /usr/src/MDtel)&lt;br /&gt;
*Descomprimir&lt;br /&gt;
*Entrar al directorio chan-sccp-4.2.1.1&lt;br /&gt;
*Ejecutar: ./configure --with-asterisk=../DIRECTORIO_ASTERISK --enable-conference. Donde DIRECTORIO_ASTERISK es el nombre del directorio donde están los fuentes de asterisk.&lt;br /&gt;
*Tras el ejecutar el configure (si todo va bien al final se verá un resumen con el S.O, arquitectura, etc), ejecutar make y make install&lt;br /&gt;
*El nuevo módulo chan_sccp.so se generará dentro del DIRECTORIO_ASTERISK en lib/asterisk/modules/ y se deberá copiar en /usr/lib/asterisk/modules/&lt;br /&gt;
*Copiar el fichero sccp.conf a /etc/asterisk&lt;br /&gt;
*Entra a Asterisk y ejecutar: module load chan_sccp.so&lt;br /&gt;
*Si se ha cargado correctamente, desde dentro de Asterisk, si se teclea sccp show version deberá devolver: &amp;quot;Skinny Client Control Protocol (SCCP). Release: 4.3.0 4.3.0 - unknown (built by 'root' on '2016-06-01 10:42:32 UTC')&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Crear extensiones ===&lt;br /&gt;
*En el portal crear una nueva clase de dispositivo (Vivait-Call/Dispositivos/Clases de dispositivos), donde la clase sea extensión la subclase H323 (todavía no existe la subclase SCCP) y el formato SCCP/${DEST}&lt;br /&gt;
*Crear la nueva extensión, pero el dispositivo debe ser el creado en el campo anterior.&lt;br /&gt;
*Las extensiones creadas habrá que añadirlas al fichero sccp.conf así como los teléfonos que las usarán. En el fichero sccp.conf incluido hay ejemplos.&lt;br /&gt;
&lt;br /&gt;
=== Aprovisionamiento ===&lt;br /&gt;
Los terminales se aprovisionan de la misma manera que los SIP, exceptuando que las plantillas XML no tiene referencias a SIP. Se incluye un xml genérico con todas las opciones.&lt;br /&gt;
Dentro del directorio chan-sccp-4.2.1.1 hay un directorio conf con todos los archivos de configuración necesarios. Las versiones annotated contienen todas las opciones posibles comentadas.&lt;br /&gt;
&lt;br /&gt;
== Instalación y configuración Postfix en RedHat7 ==&lt;br /&gt;
&lt;br /&gt;
'''Postfix''' es un ''servidor de correo'' de software libre/código abierto, un programa informático para el enrutamiento y envío de correo electrónico.&lt;br /&gt;
&lt;br /&gt;
=== Instalación ===&lt;br /&gt;
 yum install postfix&lt;br /&gt;
&lt;br /&gt;
=== Configuración ===&lt;br /&gt;
Sobre la configuración de postfix por defecto (recién instalado):&lt;br /&gt;
Editar el fichero /etc/postfix/main.cf&lt;br /&gt;
 inet_protocols = ipv4&lt;br /&gt;
 relayhost = smtp.renfe.es&lt;br /&gt;
Revisar la configuración:&lt;br /&gt;
 postfix check&lt;br /&gt;
Configurar postfix como servicio (sólo en redhat y similares)&lt;br /&gt;
 chkconfig postfix on&lt;br /&gt;
Iniciar postfix:&lt;br /&gt;
 service postfix start&lt;br /&gt;
Instalar mailx para disponer de los comandos mail y sendmail:&lt;br /&gt;
 yum install mailx&lt;br /&gt;
Probar configuración:&lt;br /&gt;
 echo &amp;quot;Prueba de correo&amp;quot; | mail -vs &amp;quot;Prueba&amp;quot; correo@destino.soy&lt;br /&gt;
&lt;br /&gt;
=== Como crear un TRIGGER en Zabbix ===&lt;br /&gt;
&lt;br /&gt;
'''1.''' Hay '''dos posibilidades''' dependiendo si el trigger es para un solo host o es para varios, los cuales tienen en común un template:&lt;br /&gt;
&lt;br /&gt;
:# Si es para ''un host'': Ir a '''Configuración/Hosts'''&lt;br /&gt;
:# Si es para ''un template'': Ir a '''Configuración/Templates'''&lt;br /&gt;
&lt;br /&gt;
'''2.''' En la fila correspondiente al host/template al que queramos añadirle el trigger, pulsar sobre la '''columna triggers.'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''3.''' En la ventana de triggers, pulsar sobre el botón '''Create trigger''', situado en la esquina superior derecha.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''4.''' Aparecerá la ventana de creación de triggers, que tiene los siguientes campos:&lt;br /&gt;
:1. '''Name:''' Nombre del trigger, que deberá ser lo ''suficientemente descriptivo''. Aparecerá cuando se&lt;br /&gt;
active, en la ventana principal de Zabbix así como en los correos de aviso.&lt;br /&gt;
:2. '''Expression:''' Define la fórmula cuyo resultado activará el trigger. Hay que pulsar el botón '''Add'''. Se mostrará una &lt;br /&gt;
nueva ventana donde habrá que elegir el item (medida) sobre el que se basará el trigger (evidentemente la medida deberá &lt;br /&gt;
existir previamente) y la función necesaria para el cálculo. Para una descripción de las disponibles dirigirse a &lt;br /&gt;
https://www.zabbix.com/documentation/2.2/manual/appendix/triggers/functions.&amp;lt;br/&amp;gt;&lt;br /&gt;
Tras rellenar los campos anteriores y dar a la función los valores que necesite pulsar el botón '''Insert.'''&lt;br /&gt;
:3. '''Expression constructor:''' Permite crear expresiones complejas, uniendo varias.&lt;br /&gt;
:4. '''Description:''' Una explicación del trigger&lt;br /&gt;
:5. '''Severity:''' Criticidad el trigger&lt;br /&gt;
:6. Para una descripción del resto de campos visitar la página: https://www.zabbix.com/documentation/2.2/manual/config/triggers/trigger&lt;br /&gt;
'''5.''' Tras rellenar los campos, pulsar el botón '''Save'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''6.''' Si el trigger se ha añadido en un template, aparecerá en todos los hosts que tienen el template configurado.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''7.''' '''El trigger por si solo no envía ningún aviso''', solo se activa si se cumple la expresión definida.&lt;br /&gt;
Para enviar un aviso (normalmente un correo electrónico) cuando se active el trigger, será necesario definir una acción (Configuración/Actions).&lt;br /&gt;
&lt;br /&gt;
 '''NOTA.-''' Para consultar cualquier cuestión relativa a Zabbix, se encuentra a su disposición el manual: &amp;lt;br/&amp;gt;&lt;br /&gt;
 https://www.zabbix.com/documentation/2.2/manual&lt;br /&gt;
&lt;br /&gt;
== Como mostrar callername queues FOP2 ==&lt;br /&gt;
&lt;br /&gt;
Es necesario añadir el siguiente código al contexto de entrada:&lt;br /&gt;
&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Connect connid localhost usuario clave bd)&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Query resultid ${connid} SELECT\ firstname\,lastname\ from\ fop2\ where\ phone1=${CALLERID(num)}\ OR\ phone2=${CALLERID(num)})&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Fetch fetchid ${resultid} nombre apellidos)&lt;br /&gt;
 exten =&amp;gt; _X.,n,GotoIf($[${fetchid} = 1]?:noExiste)&lt;br /&gt;
 exten =&amp;gt; _X.,n,Set(CALLERID(name)=${nombre}${apellidos})&lt;br /&gt;
 exten =&amp;gt; _X.,n(noExiste),Continuar&lt;br /&gt;
&lt;br /&gt;
En la primera línea cambiar según lo necesario:&lt;br /&gt;
&lt;br /&gt;
*localhost: Dirección IP del servidor de MySQL donde está la BBDD de FOP2&lt;br /&gt;
*usuario: Usuario con permisos de acceso a la bbdd de FOP2&lt;br /&gt;
*clave: Clave del usuario&lt;br /&gt;
*bd: Nombre de la BBDD&lt;br /&gt;
&lt;br /&gt;
== Como ver los directorios de un NAS a montar con NFS ==&lt;br /&gt;
&lt;br /&gt;
Con el siguiente comando vemos los diferentes volúmenes de un NAS:&lt;br /&gt;
&lt;br /&gt;
 showmount -e IP_NAS&lt;br /&gt;
&lt;br /&gt;
Ejemplo de salida:&lt;br /&gt;
&lt;br /&gt;
 Export list for 192.168.10.10:&lt;br /&gt;
 /Backup/backup       *&lt;br /&gt;
 /DISCOS_1/VOL1_AUDIO *&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
	<entry>
		<id>https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Howto%27s&amp;diff=5876</id>
		<title>Howto's</title>
		<link rel="alternate" type="text/html" href="https://vivait-wiki.mdnova.local/wiki/vivait/index.php?title=Howto%27s&amp;diff=5876"/>
		<updated>2017-04-26T06:11:44Z</updated>

		<summary type="html">&lt;p&gt;Imatarrubias: /* Integración con Outlook */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Producto:  '''!! VIVAit Call&lt;br /&gt;
VIVAit Suite&lt;br /&gt;
&lt;br /&gt;
VIVAit Fax&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Como parar asterisk ==&lt;br /&gt;
En situaciones límite en el que es necesario parar el asterisk y volver a arrancarlo hay que realizar los siguientes pasos:&lt;br /&gt;
&lt;br /&gt;
 Entrar en la consola de asterisk e introducir el comando core stop now&lt;br /&gt;
&lt;br /&gt;
 Si esto no funciona, tendremos que matar el proceso a mano. Esto es, primero el safe asterisk y luego el asterisk mediante el comando &lt;br /&gt;
 kill -9 nºPID&lt;br /&gt;
 &lt;br /&gt;
 Tras estos pasos, volveremos a arrancar el servicio asterisk mediante /etc/init.d/asterisk start&lt;br /&gt;
&lt;br /&gt;
== Como configurar la megafonía ==&lt;br /&gt;
&lt;br /&gt;
El servicio de megafonía se basa en el protocolo multicast.&lt;br /&gt;
&lt;br /&gt;
Para configurar la megafonía tenemos que activar en los teléfonos que para que estén &amp;quot;escuchando&amp;quot; en una dirección multicast y tener un emisor en esa dirección multicast.&lt;br /&gt;
&lt;br /&gt;
Los teléfonos suelen tener en su configuración un apartado para configurar el multicast. Por ejemplo en los yealink está en la pestaña directory sección multicast IP.&lt;br /&gt;
&lt;br /&gt;
En los teléfonos se puede configurar manualmente o incluirlo en las plantillas de aprovisionamiento.&lt;br /&gt;
&lt;br /&gt;
El asterisk tiene un canal para hacer multicast. Este canal es MulticastRTP.&lt;br /&gt;
&lt;br /&gt;
Para esto podemos crear un VDN que contenga la siguiente línea. (en el ejemplo la dirección multicast es 239.0.126.1 y el puerto es el 10001).&lt;br /&gt;
&lt;br /&gt;
 [Cen_VDN_90000]&lt;br /&gt;
 exten =&amp;gt; _X.,1,NoOp(MDVDN_90000*****EXTEN=${EXTEN}**CID=${CALLERID(NUM)}**UCID=${UCID}*)&lt;br /&gt;
  same =&amp;gt;     n,Answer&lt;br /&gt;
  same =&amp;gt;     n,Dial(MulticastRTP/basic/239.0.126.1:10001)&lt;br /&gt;
 include =&amp;gt; Cen_finLlamada&lt;br /&gt;
&lt;br /&gt;
== Como configurar el candado ==&lt;br /&gt;
El candado permite prohibir temporalmente la posibilidad de realizar llamadas hacia fuera. Sí se pueden seguir haciendo llamadas a extensiones fijas de la plataforma, es decir, llamadas sin coste.&lt;br /&gt;
&lt;br /&gt;
Para configurar dicha funcionalidad basta con crear extensiones con la categoría mas restrictiva posible y habilitar la movilidad, con lo que la extensión solo tendrá &amp;quot;permisos&amp;quot; para realizar llamadas internas.&lt;br /&gt;
&lt;br /&gt;
Para permitir llamadas externas solo hay que &amp;quot;mover&amp;quot; a un usuario con categoría suficiente a la extensión deseada.&lt;br /&gt;
== Como crear un grupo de captura y que se vea en cada teléfono el número que llama ==&lt;br /&gt;
&lt;br /&gt;
'''ATENCIÓN: SE CREAN CONFIGURACIONES NO REFLEJADAS EN PORTAL DE ADMINISTRACIÓN'''&lt;br /&gt;
&lt;br /&gt;
Para la simulación de grupos de captura y conseguir que todos los terminales vean el ANI del llamante:&lt;br /&gt;
&lt;br /&gt;
- Hacen falta teléfonos con dos líneas&lt;br /&gt;
&lt;br /&gt;
- Cada teléfono del grupo tiene en la línea 1 su extensión habitual (por ejemplo 40000)&lt;br /&gt;
&lt;br /&gt;
- Además, en el fichero &amp;quot;sip_Estatico.conf&amp;quot;, creamos una segunda extensión para cada teléfono, que le ocupará la segunda línea (por ejemplo 42000)&lt;br /&gt;
&lt;br /&gt;
- En esta segunda linea ponemos que cuando se llame tenga otro tono de llamada (un beep o nada...) que se asemeje en funcionamiento al de un mensaje de llamada en otra extension de mi grupo de captura&lt;br /&gt;
&lt;br /&gt;
- Se ha creado una variable global por cada teléfono en el fichero de variables &amp;quot;ext_MDtel_Particular.conf&amp;quot; de nombre EXTxxxxx (por ejemplo EXT40000); esa variable contiene las otras extensiones virtuales del grupo&lt;br /&gt;
por ejemplo EXT40000=&amp;gt;SIP/42001&amp;amp;SIP/42005&lt;br /&gt;
&lt;br /&gt;
- Hemos creado en el dialplan programación para que cuando exista esa variable global se añada a la marcación el contenido&lt;br /&gt;
&lt;br /&gt;
== Como crear supletorios ==&lt;br /&gt;
&lt;br /&gt;
'''ATENCIÓN: SE CREAN CONFIGURACIONES NO REFLEJADAS EN PORTAL DE ADMINISTRACIÓN'''&lt;br /&gt;
&lt;br /&gt;
Igual que el caso anterior pero en la variable ponemos números reales. Debido a un bug en el enrutador, que no devuelve la variable R_PARA, en el fichero ext_MARCAR_Extension.conf hay que sustituir la siguiente linea:&lt;br /&gt;
 &lt;br /&gt;
 ;same =&amp;gt;                   n,ExecIf($[&amp;quot;${EXT${R_PARA}}&amp;quot;=&amp;quot;&amp;quot;]?NoOp:Set(ENR_CADMARCAR=${ENR_CADMARCAR}&amp;amp;${EXT${R_PARA}}))&lt;br /&gt;
Por esta otra:&lt;br /&gt;
  same =&amp;gt;                   n,ExecIf($[&amp;quot;${EXT${R_DEST_${ENR_RUTA_CAD}}}&amp;quot;=&amp;quot;&amp;quot;]?NoOp:Set(ENR_CADMARCAR=${ENR_CADMARCAR}&amp;amp;${EXT${R_DEST_${ENR_RUTA_CAD}}}))&lt;br /&gt;
ATENCIÓN !!! en las llamadas salientes cada uno presenta su número&lt;br /&gt;
&lt;br /&gt;
Para emplear números externos en los supletorios hay que poner, al crear la variable que hemos explicado en el apartado anterior en el ext_MDtel_Particular.conf: &lt;br /&gt;
&lt;br /&gt;
 EXT335=&amp;gt;SIP/0999999999@Trunk_Movil ;En este caso suena en la ext 335 y en el móvil 999999999&lt;br /&gt;
&lt;br /&gt;
== Generación de llamada automática ==&lt;br /&gt;
&lt;br /&gt;
Para activar la funcionalidad es necesario lo siguiente: &lt;br /&gt;
&lt;br /&gt;
* Definir una variable ID_LISTA_LLAMAME con el ID de la lista que se va a usar para generar la llamada. Cuando se cree la lista hay que asegurarse que el campo &amp;quot;Nº segundos límite&amp;quot; tiene un valor lo suficientemente amplio para evitar que la llamada caduque antes de ejecutarse.&lt;br /&gt;
&lt;br /&gt;
* Establecer un timeout para la cola (en el Gosub Cen_Sub_GrupoACD se indica justo después de ${COLA})&lt;br /&gt;
&lt;br /&gt;
* Llamar a la función de MySQL ACD_FUNC_LLAMAME_CREAR a través de MDintz&lt;br /&gt;
&lt;br /&gt;
* En la función se usan los siguientes elementos variables:&lt;br /&gt;
&lt;br /&gt;
        ${ID_LISTA_LLAMAME}: Definida antes clienteTOCola: &lt;br /&gt;
        Nombre del cliente. Al no tener ningún nombre, se usa un denominador genérico&lt;br /&gt;
        ${CALLERID}: Número llamante, donde se dirigirá la llamada.&lt;br /&gt;
&lt;br /&gt;
Ejemplo:&lt;br /&gt;
&lt;br /&gt;
 [Cen_VDN_99001]&lt;br /&gt;
 ;----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 ;----------------------- VDN 99001 ------------------------------------------------------------&lt;br /&gt;
 ;----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
 exten =&amp;gt; _X.,1,NoOp(MDENTGW_99001*****EXTEN=${EXTEN}**CID=${CALLERID(NUM)}**UCID=${UCID}*)&lt;br /&gt;
  same =&amp;gt;     n,Set(__COLA=89001)&lt;br /&gt;
  same =&amp;gt;     n,Set(ctiDiriTrato=0)&lt;br /&gt;
  same =&amp;gt;     n,Set(ctiDiriInterface=)&lt;br /&gt;
  same =&amp;gt;     n,Set(ID_LISTA_LLAMAME=2)&lt;br /&gt;
  same =&amp;gt;     n(cola),Gosub(Cen_Sub_GrupoACD,${EXTEN},1(${COLA},10,,Si,))&lt;br /&gt;
  same =&amp;gt;     n,GotoIf($[&amp;quot;${QUEUESTATUS}&amp;quot;!=&amp;quot;TIMEOUT&amp;quot;]?colgar)&lt;br /&gt;
  same =&amp;gt;     n,MDintz(nimitz|bd|sqlDato|select ACD_FUNC_LLAMAME_CREAR(CURRENT_TIMESTAMP\,${ID_LISTA_LLAMAME}\,&amp;quot;&amp;quot;\,&amp;quot;clienteTOCola&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,1\,&amp;quot;&amp;quot;\,&amp;quot;${CALLERID(NUM)}&amp;quot;\,1\,3\,1\, \,0\,0\,0\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;\,&amp;quot;&amp;quot;))&lt;br /&gt;
  same =&amp;gt;     n,GotoIf($[&amp;quot;${MDintzRes}&amp;quot;=&amp;quot;OK&amp;quot;]?colgar)&lt;br /&gt;
  same =&amp;gt;     n,NoOp(ACD_FUNC_LLAMAME_CREAR ${MDintzRes})&lt;br /&gt;
  same =&amp;gt;     n(colgar),Hangup&lt;br /&gt;
&lt;br /&gt;
== Como &amp;quot;dar paso&amp;quot; a través de un enlace exterior si hay una llamada para una extensión creada en el sistema pero no registrada ==&lt;br /&gt;
&lt;br /&gt;
Este procedimiento es de utilidad en procesos de migración, en los que recibimos las llamadas de la RTC, nos las quedamos si la extensión ya está registrada en VIVAit y la mandamos hacia la plataforma a migrar si aún sigue migrada ahí&lt;br /&gt;
&lt;br /&gt;
El procedimiento es:&lt;br /&gt;
* Activar desvío por no contesta en la extensión (portal de administración - VIVAit Call - Dispositivos - Extensiones - campo &amp;quot;Desvio no contesta&amp;quot;, indicando como destino un prefijo (por ejemplo &amp;quot;99&amp;quot;) seguido de la extensión destino&lt;br /&gt;
&lt;br /&gt;
* Creamos una preruta en vivait-call - rutas -prerutas con origen &amp;quot;99&amp;quot;, le quitamos el prefijo en campo &amp;quot;Destino saliente 1&amp;quot; (valor -2) e indicamos en campo &amp;quot;Tipo destino sal. 1&amp;quot; como &amp;quot;Ruta externa&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Debera existir una ruta externa para esa numeración&lt;br /&gt;
&lt;br /&gt;
== Comprobación de versiones de elementos de la plataforma ==&lt;br /&gt;
&lt;br /&gt;
'''Aplicaciones'''&lt;br /&gt;
:* Botón derecho del ratón, Acerca De&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Portales'''&lt;br /&gt;
:* En el Vivait-Call, en la pantalla de inicio de sesión pone el número de versión del portal.&lt;br /&gt;
:* Tanto en el Monitor como en el Tracker no se puede saber.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Demonios'''&lt;br /&gt;
:* Mediante el comando nc localhost &amp;lt;Puerto demonio&amp;gt;. Ejemplo:&lt;br /&gt;
::nc localhost 1120&lt;br /&gt;
::motorSal sis ver='03.02.00' inic='20150427 123457' alarmas=0 ultAlar='00000000000000'&lt;br /&gt;
::motorSal gmp msj=253/256 buf=256/256 tarea=99/102&lt;br /&gt;
::motorSal tmp uptime=12624 (0d 3h 30m 24s)&lt;br /&gt;
::motorSal mtr mys=1 ocup=0% planif=13(0) intento=11(0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::Ejemplos puertos demonios:&lt;br /&gt;
:::*1111: vivait-cti&lt;br /&gt;
:::*1112: myAcdSuperv&lt;br /&gt;
:::*1113: recordNodo&lt;br /&gt;
:::*1114: recordCentral&lt;br /&gt;
:::*1115: intz-nimitz&lt;br /&gt;
:::*1120: motorSal&lt;br /&gt;
:::*1123: phoneprov-tftp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Base de datos'''&lt;br /&gt;
:* No se puede saber la versión a no ser que se comparen esquemáticos con los subidos en el redmine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:tecnico]]&lt;br /&gt;
[[Category:administrador]]&lt;br /&gt;
[[Category:VIVAit Call]]&lt;br /&gt;
[[Category:VIVAit Suite]]&lt;br /&gt;
[[Category:VIVAit Fax]]&lt;br /&gt;
&lt;br /&gt;
== Añadir Auto-Answer a la cabecera SIP ==&lt;br /&gt;
&lt;br /&gt;
Si queremos que un teléfono tenga autoanswer:&lt;br /&gt;
* En el peer poner: headeraa=Call-Info: answer-after=0, esto tiene que ir en la plantilla de la extensión o como campo en la extensión. Dependiendo del terminal que utilicemos el valor de este campo variará:&lt;br /&gt;
&lt;br /&gt;
    Aastra: Alert-Info: info=alert-autoanswer&lt;br /&gt;
    Grandstream: Call-Info: answer-after=0&lt;br /&gt;
    Linksys: Call-Info:\;Answer-After=0&lt;br /&gt;
    Polycom: Alert-Info: Ring Answer&lt;br /&gt;
    Snom: Call-Info: answer-after=0&lt;br /&gt;
    Snom (nuevo firmware): Call-Info: &amp;lt;sip:IP&amp;gt;\;answer-after=0&lt;br /&gt;
    Yealink: Call-Info: answer-after=0&lt;br /&gt;
&lt;br /&gt;
* Luego en el diaplan añadir lo siguiente: exten =&amp;gt; _[*#%0-9a-zA-Z].,n,set(__AutoAnswer=AA) (Esto tendremos que ver como ponerlo de manera automática). De manera provisional si queremos que sea para llamadas salientes pondremos esto en el ext_n_marcador.conf. Si queremos que sea llamadas entrantes lo pondremos en ext_n_MARCAR.conf&lt;br /&gt;
&lt;br /&gt;
== Configuración de los portales web en HTTPS ==&lt;br /&gt;
&lt;br /&gt;
Desde /usr/lib/jvm/default-java/bin/ ejecutamos:&lt;br /&gt;
&lt;br /&gt;
keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/share/tomcat7/.keystore&lt;br /&gt;
&lt;br /&gt;
Escriba la contraseña del almacén de claves: (t0mc4t)&lt;br /&gt;
 Volver a escribir la contraseña nueva: (t0mc4t)&lt;br /&gt;
 *Personalizar para el cliente&lt;br /&gt;
 ¿Cuáles son su nombre y su apellido?&lt;br /&gt;
 [Unknown]: VIVAit Suite&lt;br /&gt;
 ¿Cuál es el nombre de su unidad de organización?&lt;br /&gt;
 [Unknown]: Desarrollo&lt;br /&gt;
 ¿Cuál es el nombre de su organización?&lt;br /&gt;
 [Unknown]: MDtel&lt;br /&gt;
 ¿Cuál es el nombre de su ciudad o localidad?&lt;br /&gt;
 [Unknown]: Madrid&lt;br /&gt;
 ¿Cuál es el nombre de su estado o provincia?&lt;br /&gt;
 [Unknown]: Madrid&lt;br /&gt;
 ¿Cuál es el código de país de dos letras de la unidad?&lt;br /&gt;
 [Unknown]: es&lt;br /&gt;
 ¿Es correcto CN=VIVAit Suite, OU=Desarrollo, O=MDtel, L=es, ST=Madrid,&lt;br /&gt;
 C=Unknown?&lt;br /&gt;
 [no]: si&lt;br /&gt;
 Escriba la contraseña clave para &amp;lt;tomcat&amp;gt;&lt;br /&gt;
 (INTRO si es la misma contraseña que la del almacén de claves)&lt;br /&gt;
&lt;br /&gt;
nano /var/lib/tomcat7/conf/server.xml&lt;br /&gt;
&lt;br /&gt;
Descomentar la línea:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Connector port=&amp;quot;8443&amp;quot; protocol=&amp;quot;HTTP/1.1&amp;quot; SSLEnabled=&amp;quot;true&amp;quot; &lt;br /&gt;
&lt;br /&gt;
 maxThreads=&amp;quot;150&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 clientAuth=&amp;quot;false&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Añadir después de sslProtocol=&amp;quot;TLS&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 keystorePass=&amp;quot;t0mc4t&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Crear un motivo desconexión para el Supervisor en '''''VIVA'''''it Suite==&lt;br /&gt;
&lt;br /&gt;
Para crear motivos de desconexión adicionales a los que ya ofrece la aplicación tendremos que añadir una nueva entrada en la BD. El comando que emplearíamos seria el siguiente:&lt;br /&gt;
&lt;br /&gt;
INSERT INTO `nimitz`.`COM_ENUMERADOS` (`ID`, `C_NOMBRE`, `C_TEXTO`, `N_POSICION`, `C_OBSERV`) VALUES(1000700, 'TSesAgMotDesc', 'Nombre Motivo de desconexión', 60, ' ');&lt;br /&gt;
&lt;br /&gt;
El ID debe ser mayor o igual a 1000700 y menor a 1000800. El N_POSICION debe ser mayor o igual a 60 y menor que 100.&lt;br /&gt;
&lt;br /&gt;
== Envío de variables CTI al ACD ante un GW con asterisk 13==&lt;br /&gt;
Dado que para un GW con asterisk 13 un nodo ACD es considerado un elemento externo, por defecto, no se envían variables CTI (UCID, ...). En una fututa versión del nodo ACD, ya no se considerará un elemento externo por lo que si se enviarán dichas variables. Para lograrlo en la versión 3.0 de la plataforma Vivait hay que modificar el fichero ext_MARCAR_Externo_Particular.conf del GW. Deberemos poner la siguiente linea.&lt;br /&gt;
&lt;br /&gt;
 same =&amp;gt; n,Macro(escribirDatosCti)&lt;br /&gt;
&lt;br /&gt;
== Script para cambio automático de claves en salas de conferencia estáticas ==&lt;br /&gt;
&lt;br /&gt;
Para cambiar la clave de las salas de conferencias crear un script llamado cambioClaveConfe.sh con el siguiente contenido:&lt;br /&gt;
	&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 CLAVE=$(shuf -i 1111-9999 -n 1)&lt;br /&gt;
 &lt;br /&gt;
 echo $CLAVE&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;update CEN_SALAS_CONFERENCIAS set C_PIN='$CLAVE' WHERE C_NOMBRE='$1'&amp;quot; | mysql -u nimitz -pivivanimitz nimitz&lt;br /&gt;
 &lt;br /&gt;
 FROM=sat@mdtel.es&lt;br /&gt;
 FECHA=`date +&amp;quot;%Y%m%d%H%M%S&amp;quot;`&lt;br /&gt;
 CLIENTE=&amp;lt;PONER EL CLIENTE&amp;gt;&lt;br /&gt;
 TO=&amp;lt;DESTINATARIOS&amp;gt;&lt;br /&gt;
 ASUNTO=&amp;quot;Nueva clave en sala $1&amp;quot;&lt;br /&gt;
 CUERPO=&amp;quot;La nueva clave para la sala $1 es: $CLAVE&amp;quot;&lt;br /&gt;
 /usr/sbin/sendmail -oi -t -v -f $FROM &amp;lt;&amp;lt;EOF&lt;br /&gt;
 From: $FROM&lt;br /&gt;
 To: $TO&lt;br /&gt;
 Bcc: $BCC&lt;br /&gt;
 Subject: $ASUNTO&lt;br /&gt;
 &lt;br /&gt;
 $CUERPO&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
El script cambiará la clave de la sala pasada por parámetro por una aleatoria de 4 dígitos y la enviará por correo a los &amp;lt;DESTINATARIOS&amp;gt; (direcciones de correo electrónico separadas por coma).&lt;br /&gt;
&lt;br /&gt;
Hay que crear una tarea en /etc/crontab añadiendo una linea como la siguiente:&lt;br /&gt;
 30 6	* * 7	root	cambioClaveConfe.sh 6173&lt;br /&gt;
&lt;br /&gt;
Esto ejecutará el script todos los domingos a las 6:30 horas cambiando la clave de la sala 6173. Añadir tantas linéas como salas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Monitorización en Zabbix de un trunk caído ==&lt;br /&gt;
Para monitorizar un o varios trunk por separado y saber el estado de cada uno es necesario lo siguiente: &lt;br /&gt;
&lt;br /&gt;
*Añadir el UserParameter adjunto que contiene el siguiente texto:&lt;br /&gt;
&lt;br /&gt;
 UserParameter=asterisk.trunkEstado[*],sudo /usr/sbin/asterisk -rx 'sip show peers' | grep  --text -i '$1' |  grep OK &amp;gt;/dev/null; if [ $? -eq 0 ]; then echo 1; else echo 0; fi&lt;br /&gt;
&lt;br /&gt;
*Añadir en el portal de zabbix un item por cada trunk. En el campo Key se pondrá &amp;quot;asterisk.trunkEstado[nombre_trunk]&amp;quot;, donde nombre_trunk es el nombre del trunk tal y como se ve en Asterisk.&lt;br /&gt;
[[File:zabbix_item_trunkEstado.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Crear un trigger que avise cuando el último valor sea 0. Por ejemplo:&lt;br /&gt;
 {corp-bdtr:asterisk.trunkEstado[PrePro-ACD].last()}=0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:zabbix_trigger_trunkEstado.png]]&lt;br /&gt;
&lt;br /&gt;
== Agendas en terminales Yealink ==&lt;br /&gt;
En la agenda se mostrará como nombre lo que contenga el campo CEN_AGENDAS.C_NOMBRE_MOSTRAR y como teléfono el indicado en CEN_AGENDAS_TELEFONOS.C_TELEFONO&lt;br /&gt;
Para hacer funcionar la agenda:&lt;br /&gt;
&lt;br /&gt;
*En el archivo de aprovisionamiento correspondiente (Yealink-XXXX-comun.cfg) establecer los siguientes parámetros:&lt;br /&gt;
&lt;br /&gt;
    remote_phonebook.data.1.url = http://&amp;lt;direc IP&amp;gt;/vivait-agenda/yealink/contactData1.xml &lt;br /&gt;
    remote_phonebook.data.1.name = NOMBRE DE LA AGENDA EN EL TELEFONO&lt;br /&gt;
&lt;br /&gt;
*En el archivo /etc/apache2/apache2.conf añadir tras el último Directory:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Directory /var/www/html/vivait-agenda/&amp;gt;&lt;br /&gt;
             AddType application/x-httpd-php .xml&lt;br /&gt;
             Options Indexes FollowSymLinks MultiViews&lt;br /&gt;
             AllowOverride None&lt;br /&gt;
             Order allow,deny&lt;br /&gt;
             allow from all&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Ejecutar el comando:&lt;br /&gt;
&lt;br /&gt;
    /etc/init.d/apache2 reload&lt;br /&gt;
&lt;br /&gt;
== Calendarios ==&lt;br /&gt;
&lt;br /&gt;
=== Enrutamiento inteligente ===&lt;br /&gt;
&lt;br /&gt;
Ante una llamada a un destino, si hay cita de ocupado en el calendario se desvia al número indicado en el campo &amp;quot;location&amp;quot; del calendario o a su buzon de voz si hay valor en dicho campo&lt;br /&gt;
&lt;br /&gt;
 same =&amp;gt; n,Set(CalendarBusy=${CALENDAR_BUSY(GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,Set(id=${CALENDAR_QUERY(GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,NoOP(hay ${CALENDAR_QUERY_RESULT(${id},getnum)} eventos)&lt;br /&gt;
 same =&amp;gt; n,Verbose(3,The state of GoogleCalendar is $&lt;br /&gt;
 {DEVICE_STATE(Calendar:GoogleCalendar)})&lt;br /&gt;
 same =&amp;gt; n,Set(CalendarLocation=${CALENDAR_QUERY_RESULT(GoogleCalendar,location)})&lt;br /&gt;
 same =&amp;gt; n,GotoIf($[&amp;quot;${CalendarBusy}&amp;quot;==&amp;quot;1&amp;quot;]?:conCategoria)&lt;br /&gt;
 same =&amp;gt; n,GotoIf($[&amp;quot;${CalendarLocation}&amp;quot;==&amp;quot;&amp;quot;]?buzon)&lt;br /&gt;
 same =&amp;gt; n,Goto(Cen_iniLlam,${CalendarLocation},1)&lt;br /&gt;
 same =&amp;gt; n(buzon),Playback(Particular/buzon)&lt;br /&gt;
 same =&amp;gt; n,Hangup&lt;br /&gt;
 same=&amp;gt; n(conCategoria),Goto(Cen_iniLlam,${EXTEN},1)&lt;br /&gt;
&lt;br /&gt;
=== Integración con Outlook ===&lt;br /&gt;
1.- Instalar Calldavsincronizer&lt;br /&gt;
&lt;br /&gt;
2.- Entrar en Synchronization Profiles en la pestaña Calldav Syncronizer   [[File:Syncronizer.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.- Añadir nuevo perfil (tecla +)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Nuevo.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A tener en cuenta:&lt;br /&gt;
&lt;br /&gt;
*Crear un nuevo “Outlook folder”, entendemos que es adecuado.&lt;br /&gt;
*Lo mejor es haber creado antes el calendario en el servidor.&lt;br /&gt;
*Dando al botón “Test or discover settings” se nos muestran todos los calendarios del servidor y elegimos el que queramos; en “elementos de la carpeta” diremos “elementos de calendario”.&lt;br /&gt;
&lt;br /&gt;
[[File:Calendario.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
== Uso de reloj hardware en nodos de procesamiento ==&lt;br /&gt;
&lt;br /&gt;
=== En nodo de procesamiento ACD ===&lt;br /&gt;
En un nodo de procesamiento ACD es obligatorio instalar dahdi y una tarjeta de primario para emplear reloj hardware, ya que el reloj software que va en el asterisk 1.4 es defectuoso.&lt;br /&gt;
Para configurarlo basta con instalar la tarjeta en el servidor, instalar dahdi y posteriormente ejecutar el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
 dahdi_cfg&lt;br /&gt;
&lt;br /&gt;
Este comando generaŕa el fichero /etc/dahdi/system.conf&lt;br /&gt;
&lt;br /&gt;
Para comprobar que el comando se ha ejecutado satisfactoriamente lo abriremos y tendrá que tener un formato semejante al siguiente ejemplo:&lt;br /&gt;
&lt;br /&gt;
 # Autogenerated by /usr/sbin/dahdi_genconf on Tue Oct 22 17:42:59 2013&lt;br /&gt;
 # If you edit this file and execute /usr/sbin/dahdi_genconf again,&lt;br /&gt;
 # your manual changes will be LOST.&lt;br /&gt;
 # Dahdi Configuration File&lt;br /&gt;
 #&lt;br /&gt;
 # This file is parsed by the Dahdi Configurator, dahdi_cfg&lt;br /&gt;
 #&lt;br /&gt;
 # Span 1: WCT1/0 &amp;quot;Digium Wildcard TE110P T1/E1 Card 0&amp;quot; HDB3/CCS/CRC4&lt;br /&gt;
 span=1,1,0,ccs,hdb3,crc4&lt;br /&gt;
 # termtype: te&lt;br /&gt;
 bchan=1-15,17-31&lt;br /&gt;
 dchan=16&lt;br /&gt;
 echocanceller=oslec,1-15,17-31&lt;br /&gt;
 # Global data&lt;br /&gt;
 loadzone        = es&lt;br /&gt;
 defaultzone     = es&lt;br /&gt;
&lt;br /&gt;
=== En nodo de procesamiento de corporativa ===&lt;br /&gt;
En un nodo de procesamiento de corporativa no obligatorio instalar dahdi y una tarjeta de primario para emplear reloj hardware, ya que el no se han detectado errores en el reloj por software. Sin embargo si instalamos dahdi y una tarjeta de primario para emplear reloj hardware, el sistema funcionará mejor.&lt;br /&gt;
Para configurarlo basta con instalar la tarjeta en el servidor, instalar dahdi y posteriormente ejecutar el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
 dahdi_cfg&lt;br /&gt;
&lt;br /&gt;
Este comando generaŕa el fichero /etc/dahdi/system.conf&lt;br /&gt;
&lt;br /&gt;
Para comprobar que el comando se ha ejecutado satisfactoriamente lo abriremos y tendrá que tener un formato semejante al siguiente ejemplo:&lt;br /&gt;
&lt;br /&gt;
 # Autogenerated by /usr/sbin/dahdi_genconf on Tue Oct 22 17:42:59 2013&lt;br /&gt;
 # If you edit this file and execute /usr/sbin/dahdi_genconf again,&lt;br /&gt;
 # your manual changes will be LOST.&lt;br /&gt;
 # Dahdi Configuration File&lt;br /&gt;
 #&lt;br /&gt;
 # This file is parsed by the Dahdi Configurator, dahdi_cfg&lt;br /&gt;
 #&lt;br /&gt;
 # Span 1: WCT1/0 &amp;quot;Digium Wildcard TE110P T1/E1 Card 0&amp;quot; HDB3/CCS/CRC4&lt;br /&gt;
 span=1,1,0,ccs,hdb3,crc4&lt;br /&gt;
 # termtype: te&lt;br /&gt;
 bchan=1-15,17-31&lt;br /&gt;
 dchan=16&lt;br /&gt;
 echocanceller=oslec,1-15,17-31&lt;br /&gt;
 # Global data&lt;br /&gt;
 loadzone        = es&lt;br /&gt;
 defaultzone     = es&lt;br /&gt;
&lt;br /&gt;
== Aprovisionamiento terminales Cisco ==&lt;br /&gt;
=== Configurar protocolo SIP TCP o UDP en terminal Cisco ===&lt;br /&gt;
&lt;br /&gt;
Configuración de terminal Cisco para para funcionar bajo TCP o UDP:&lt;br /&gt;
Modificar parámetro&lt;br /&gt;
 &amp;lt;transportLayerProtocol&amp;gt;X&amp;lt;/transportLayerProtocol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde X es:&lt;br /&gt;
    1: TCP&lt;br /&gt;
    2: UDP&lt;br /&gt;
    4: Valor por defecto del firmware (al menos en la última versión equivale a TCP)&lt;br /&gt;
&lt;br /&gt;
=== Habilitar/Deshabilitar llamada en espera en terminales Cisco ===&lt;br /&gt;
&lt;br /&gt;
En el fichero de aprovisionamiento del terminal añadiremos la siguiente linea&lt;br /&gt;
 &amp;lt;callWaiting&amp;gt;X&amp;lt;/callWaiting&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde X es:&lt;br /&gt;
   0=off but can be changed through the settings menu.&lt;br /&gt;
   1=on but can be changed through the settings menu.&lt;br /&gt;
   2=off and locked so it can't be changed through the settings menu.&lt;br /&gt;
   3=on and locked so it can't be changed through the settings menu.&lt;br /&gt;
&lt;br /&gt;
== Como configurar servicio DHCP en Ubuntu Linux ==&lt;br /&gt;
=== ¿Que es un servicio DHCP? ===&lt;br /&gt;
Un servidor Dynamic Host Configuration Protocol (DHCP) asigna dinámicamente las direcciones IP y otras configuraciones de red a otros terminales que están conectados a la red.&lt;br /&gt;
&lt;br /&gt;
=== Instalar un servicio DHCP ===&lt;br /&gt;
Para instalar el servidor de asignacion automatica de direccion IP ejecutamos el comando:&lt;br /&gt;
 sudo apt-get install isc-dhcp-server&lt;br /&gt;
&lt;br /&gt;
=== Configurando el servicio DHCP ===&lt;br /&gt;
Editamos el archivo /etc/dhcp/dhcpd.conf creando primero un backup del mismo:&lt;br /&gt;
 mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.original&lt;br /&gt;
 nano /etc/dhcp/dhcpd.conf&lt;br /&gt;
&lt;br /&gt;
El archivo debe quedar de una forma muy similar a esta:&lt;br /&gt;
 authoritative&lt;br /&gt;
 subnet  10.254.239.0 netmask 255.255.255.254&lt;br /&gt;
 {&lt;br /&gt;
 range dynamic-bootp  10.254.239.40 10.254.239.60;&lt;br /&gt;
 option domain-name-servers ns1.example.org, ns2.example.org;&lt;br /&gt;
 option domain-name &amp;quot;example.org&amp;quot;;&lt;br /&gt;
 option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org ;&lt;br /&gt;
 option broadcast-address 10.254.239.255;&lt;br /&gt;
 default-lease-time 3600;&lt;br /&gt;
 max-lease-time 7200;&lt;br /&gt;
 option option-150 10.254.239.25&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Donde los campos:&lt;br /&gt;
*subnet: Direccion de red&lt;br /&gt;
*netmask: Máscara de red&lt;br /&gt;
*range dynamic-bootp: Rango de IPs que va a proporcionar el DHCP&lt;br /&gt;
*option domain-name-servers: Direcciones IPs de los DNS&lt;br /&gt;
*option domain-name: Nombre de dominio&lt;br /&gt;
*option routers:IPs de las puertas de enlace&lt;br /&gt;
*option broadcast-address: Dirección de broadcast&lt;br /&gt;
*default-lease-time: Tiempo de concesión por defecto&lt;br /&gt;
*max-lease-time: Valor máximo del tiempo de concesión&lt;br /&gt;
*option option-150: IPs de los servidores TFTPs que tiene la red&lt;br /&gt;
&lt;br /&gt;
===  Reiniciamos el servicio ===&lt;br /&gt;
 service isc-dhcp-server restart&lt;br /&gt;
&lt;br /&gt;
=== Direcciones IP estáticas basadas en la MAC ===&lt;br /&gt;
Pueden conocerse las MAC de las máquinas conectadas a la red ejecutando el comando arp desde la terminal.&lt;br /&gt;
&lt;br /&gt;
 host ejemplo {&lt;br /&gt;
        hardware ethernet 00:0B:82:19:A8:04;&lt;br /&gt;
        option option-150 10.254.239.0;&lt;br /&gt;
 #      fixed-address 10.254.239.52;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Protocolo Skinny en VIVAit Call mediante uso de Chan-SCCP ==&lt;br /&gt;
=== Instalación de chan_sccp ===&lt;br /&gt;
*Copiar el fichero chan-sccp-4.2.1.1.tar.gz en el directorio donde estén los fuentes de Asterisk (normalmente /usr/src/MDtel)&lt;br /&gt;
*Descomprimir&lt;br /&gt;
*Entrar al directorio chan-sccp-4.2.1.1&lt;br /&gt;
*Ejecutar: ./configure --with-asterisk=../DIRECTORIO_ASTERISK --enable-conference. Donde DIRECTORIO_ASTERISK es el nombre del directorio donde están los fuentes de asterisk.&lt;br /&gt;
*Tras el ejecutar el configure (si todo va bien al final se verá un resumen con el S.O, arquitectura, etc), ejecutar make y make install&lt;br /&gt;
*El nuevo módulo chan_sccp.so se generará dentro del DIRECTORIO_ASTERISK en lib/asterisk/modules/ y se deberá copiar en /usr/lib/asterisk/modules/&lt;br /&gt;
*Copiar el fichero sccp.conf a /etc/asterisk&lt;br /&gt;
*Entra a Asterisk y ejecutar: module load chan_sccp.so&lt;br /&gt;
*Si se ha cargado correctamente, desde dentro de Asterisk, si se teclea sccp show version deberá devolver: &amp;quot;Skinny Client Control Protocol (SCCP). Release: 4.3.0 4.3.0 - unknown (built by 'root' on '2016-06-01 10:42:32 UTC')&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Crear extensiones ===&lt;br /&gt;
*En el portal crear una nueva clase de dispositivo (Vivait-Call/Dispositivos/Clases de dispositivos), donde la clase sea extensión la subclase H323 (todavía no existe la subclase SCCP) y el formato SCCP/${DEST}&lt;br /&gt;
*Crear la nueva extensión, pero el dispositivo debe ser el creado en el campo anterior.&lt;br /&gt;
*Las extensiones creadas habrá que añadirlas al fichero sccp.conf así como los teléfonos que las usarán. En el fichero sccp.conf incluido hay ejemplos.&lt;br /&gt;
&lt;br /&gt;
=== Aprovisionamiento ===&lt;br /&gt;
Los terminales se aprovisionan de la misma manera que los SIP, exceptuando que las plantillas XML no tiene referencias a SIP. Se incluye un xml genérico con todas las opciones.&lt;br /&gt;
Dentro del directorio chan-sccp-4.2.1.1 hay un directorio conf con todos los archivos de configuración necesarios. Las versiones annotated contienen todas las opciones posibles comentadas.&lt;br /&gt;
&lt;br /&gt;
== Instalación y configuración Postfix en RedHat7 ==&lt;br /&gt;
&lt;br /&gt;
'''Postfix''' es un ''servidor de correo'' de software libre/código abierto, un programa informático para el enrutamiento y envío de correo electrónico.&lt;br /&gt;
&lt;br /&gt;
=== Instalación ===&lt;br /&gt;
 yum install postfix&lt;br /&gt;
&lt;br /&gt;
=== Configuración ===&lt;br /&gt;
Sobre la configuración de postfix por defecto (recién instalado):&lt;br /&gt;
Editar el fichero /etc/postfix/main.cf&lt;br /&gt;
 inet_protocols = ipv4&lt;br /&gt;
 relayhost = smtp.renfe.es&lt;br /&gt;
Revisar la configuración:&lt;br /&gt;
 postfix check&lt;br /&gt;
Configurar postfix como servicio (sólo en redhat y similares)&lt;br /&gt;
 chkconfig postfix on&lt;br /&gt;
Iniciar postfix:&lt;br /&gt;
 service postfix start&lt;br /&gt;
Instalar mailx para disponer de los comandos mail y sendmail:&lt;br /&gt;
 yum install mailx&lt;br /&gt;
Probar configuración:&lt;br /&gt;
 echo &amp;quot;Prueba de correo&amp;quot; | mail -vs &amp;quot;Prueba&amp;quot; correo@destino.soy&lt;br /&gt;
&lt;br /&gt;
=== Como crear un TRIGGER en Zabbix ===&lt;br /&gt;
&lt;br /&gt;
'''1.''' Hay '''dos posibilidades''' dependiendo si el trigger es para un solo host o es para varios, los cuales tienen en común un template:&lt;br /&gt;
&lt;br /&gt;
:# Si es para ''un host'': Ir a '''Configuración/Hosts'''&lt;br /&gt;
:# Si es para ''un template'': Ir a '''Configuración/Templates'''&lt;br /&gt;
&lt;br /&gt;
'''2.''' En la fila correspondiente al host/template al que queramos añadirle el trigger, pulsar sobre la '''columna triggers.'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''3.''' En la ventana de triggers, pulsar sobre el botón '''Create trigger''', situado en la esquina superior derecha.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''4.''' Aparecerá la ventana de creación de triggers, que tiene los siguientes campos:&lt;br /&gt;
:1. '''Name:''' Nombre del trigger, que deberá ser lo ''suficientemente descriptivo''. Aparecerá cuando se&lt;br /&gt;
active, en la ventana principal de Zabbix así como en los correos de aviso.&lt;br /&gt;
:2. '''Expression:''' Define la fórmula cuyo resultado activará el trigger. Hay que pulsar el botón '''Add'''. Se mostrará una &lt;br /&gt;
nueva ventana donde habrá que elegir el item (medida) sobre el que se basará el trigger (evidentemente la medida deberá &lt;br /&gt;
existir previamente) y la función necesaria para el cálculo. Para una descripción de las disponibles dirigirse a &lt;br /&gt;
https://www.zabbix.com/documentation/2.2/manual/appendix/triggers/functions.&amp;lt;br/&amp;gt;&lt;br /&gt;
Tras rellenar los campos anteriores y dar a la función los valores que necesite pulsar el botón '''Insert.'''&lt;br /&gt;
:3. '''Expression constructor:''' Permite crear expresiones complejas, uniendo varias.&lt;br /&gt;
:4. '''Description:''' Una explicación del trigger&lt;br /&gt;
:5. '''Severity:''' Criticidad el trigger&lt;br /&gt;
:6. Para una descripción del resto de campos visitar la página: https://www.zabbix.com/documentation/2.2/manual/config/triggers/trigger&lt;br /&gt;
'''5.''' Tras rellenar los campos, pulsar el botón '''Save'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''6.''' Si el trigger se ha añadido en un template, aparecerá en todos los hosts que tienen el template configurado.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''7.''' '''El trigger por si solo no envía ningún aviso''', solo se activa si se cumple la expresión definida.&lt;br /&gt;
Para enviar un aviso (normalmente un correo electrónico) cuando se active el trigger, será necesario definir una acción (Configuración/Actions).&lt;br /&gt;
&lt;br /&gt;
 '''NOTA.-''' Para consultar cualquier cuestión relativa a Zabbix, se encuentra a su disposición el manual: &amp;lt;br/&amp;gt;&lt;br /&gt;
 https://www.zabbix.com/documentation/2.2/manual&lt;br /&gt;
&lt;br /&gt;
== Como mostrar callername queues FOP2 ==&lt;br /&gt;
&lt;br /&gt;
Es necesario añadir el siguiente código al contexto de entrada:&lt;br /&gt;
&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Connect connid localhost usuario clave bd)&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Query resultid ${connid} SELECT\ firstname\,lastname\ from\ fop2\ where\ phone1=${CALLERID(num)}\ OR\ phone2=${CALLERID(num)})&lt;br /&gt;
 exten =&amp;gt; _X.,n,MYSQL(Fetch fetchid ${resultid} nombre apellidos)&lt;br /&gt;
 exten =&amp;gt; _X.,n,GotoIf($[${fetchid} = 1]?:noExiste)&lt;br /&gt;
 exten =&amp;gt; _X.,n,Set(CALLERID(name)=${nombre}${apellidos})&lt;br /&gt;
 exten =&amp;gt; _X.,n(noExiste),Continuar&lt;br /&gt;
&lt;br /&gt;
En la primera línea cambiar según lo necesario:&lt;br /&gt;
&lt;br /&gt;
*localhost: Dirección IP del servidor de MySQL donde está la BBDD de FOP2&lt;br /&gt;
*usuario: Usuario con permisos de acceso a la bbdd de FOP2&lt;br /&gt;
*clave: Clave del usuario&lt;br /&gt;
*bd: Nombre de la BBDD&lt;br /&gt;
&lt;br /&gt;
== Como ver los directorios de un NAS a montar con NFS ==&lt;br /&gt;
&lt;br /&gt;
Con el siguiente comando vemos los diferentes volúmenes de un NAS:&lt;br /&gt;
&lt;br /&gt;
 showmount -e IP_NAS&lt;br /&gt;
&lt;br /&gt;
Ejemplo de salida:&lt;br /&gt;
&lt;br /&gt;
 Export list for 192.168.10.10:&lt;br /&gt;
 /Backup/backup       *&lt;br /&gt;
 /DISCOS_1/VOL1_AUDIO *&lt;/div&gt;</summary>
		<author><name>Imatarrubias</name></author>
		
	</entry>
</feed>